<mxfile host="app.diagrams.net">
  <diagram id="p1" name="セキュリティ・認可アーキテクチャ">
    <mxGraphModel dx="0" dy="0" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="5880" pageHeight="3930" math="0" shadow="0" background="#F6F4EE">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="c1" value="図 7. セキュリティ・認可アーキテクチャ図" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=30;fontStyle=1;fontColor=#0A2828;" vertex="1" parent="1">
          <mxGeometry x="335" y="30" width="1200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c2" value="as-built 2026-09-19 時点 — 1 リクエストが通る防御の断面と、分離の単位の定義。数値は同日のコードの宣言（rls.sql / openapi.json ほか）と本番 DB の読み取り専用の実測。しきい値の実数は非掲載" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontColor=#6B6457;" vertex="1" parent="1">
          <mxGeometry x="335" y="100" width="1400" height="20" as="geometry" />
        </mxCell>
        <mxCell id="c3" value="" style="ellipse;fillColor=#0E7C75;strokeColor=none;opacity=50;" vertex="1" parent="1">
          <mxGeometry x="56" y="125" width="4" height="4" as="geometry" />
        </mxCell>
        <mxCell id="c4" value="" style="ellipse;fillColor=#0E7C75;strokeColor=none;opacity=50;" vertex="1" parent="1">
          <mxGeometry x="1254" y="125" width="4" height="4" as="geometry" />
        </mxCell>
        <mxCell id="c5" value="入口と最外殻 — 2 ドメイン分離" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="1">
          <mxGeometry x="60" y="160" width="5680" height="550" as="geometry" />
        </mxCell>
        <mxCell id="c6" value="この基盤に到達する 3 者" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c5">
          <mxGeometry x="30" y="50" width="1100" height="470" as="geometry" />
        </mxCell>
        <mxCell id="c7" value="&lt;b&gt;社内ユーザ&lt;/b&gt;（全部署横断）&lt;br&gt;Google 認証（&lt;b&gt;hd は付けない&lt;/b&gt;）／ MFA は &lt;b&gt;Workspace に委任&lt;/b&gt;&lt;br&gt;入口 = /sign-in/internal" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c6">
          <mxGeometry x="70" y="40" width="1010" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c8" value="{{icon:google}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAACXBIWXMAACxLAAAsSwGlPZapAAAfMElEQVR4nO2dB3hUZdqGySQzk0JC70UUEQUUiAVBUQEhhFAUAQGFxbrCv/vLagKsK8rSpQhIE1HpvYYqISG9V+yu8gMqUiXUFJI5939955xJJpOBBUycTPLd1/Vek4yTmTOz9z7v937nhFSrdpNMmjSpZsiECaPeHh+yImR8SGbw+JDs4PEhyJKfQfD4kGzhRIhwY0LIKOFKtbJiwoQJLcaNHzdPCidFC76Fz0DIKNy5bfGExcGaeDLl5GfA7X4GIrxuORGFuSHjQ47KD17+ny+4DD4D4dJNp2FISEiH68n37vsTOXAwjJ+OHOH8+fNIJILc3FzVidDdu5g2c/p1JQx5J6TDbSWfeFLxAhLJzZCalupQxBsmoTrlOpAvdHeoarhEcivk5Oawc3eoQwkdrgkdDRxhB8Nu6UUlEnvEks3RYFKq9TpKPomkLHCUhCVasdizsV/zybYrKct2bL8mDBkfMl+Vb+zYsTXt7RSLSImkLBFDrJ1n2epaUJw6sU8/iaQ8mPj+xJIpOCFkVKn2K9d+kj9rIHl7QsiKasHahQVFd8r9Psmf1YZDxo/LrGZ/VYtYMEok5YE4e2a/DhQClrhTIilP7H2TAkr+VKSAEqciBZQ4FSmgxKlIASVORQoocSpSQIlTkQJKnIoUUOJUpIASpyIFlDgVKaDEqUgBJU5FCihxKlJAiVORAkqcihRQ4lSkgBKnIgWUOBUpoMSpSAElTkUKKHEqUkCJU5ECSpyKFPBWOHUSEmJRtm3FMvsDLMH/QBk5DMvIYSgB3VF6dSuuZ/uhjBiGIh4zaSLKmpXqz6rPISlCCngjrlyGsP2abCOGYQnojqVXN4dVQj4ho331sn7dA2XkcJQ5s1DCDsCVK1RlguW/jOCAw5lqclme7edYOBsRhVT2AuJIQCGeWk+j9O6lV2+tJk+FxCSqIlJAK1cuo6xdieW5vlgChGQ26WYVzoF4tt8XpZ+tjL1txCuSL0CXrw9Kn74ofQagBA1EefkNCI+C02eoKkgBhXjrPscyJAhL4FNYeusVcJ3ku04bLtGCi1qxVb4eKL2EgD018QJtxOv7HErfQSh9B0O/oSj9hqG8+iZExFAVqNICKof2YRkeiKXfE1iCnsDSx07AG6z5/quADtuukC8IJagfSp9nUIKEfIOh/zCUfsNR+r+A0v9F0Et5ZSyEV24Rq6aAZ35DmTQGy8AuWJ55HMuArlj6CgGf1FIwsBuW3nobDrhB+tm2ZEdtWJXQmnx62w3sixL0rCZfv+dR+gvxhHAjYMBI9Vb9vp+oF1Q5mbcETp+mMlLlBFS+2IDySg+UIZ1QBnVGefYxLAMex9K/q5aCgZqEiq2ANxCvlIBFa0A9AXvr8gUGaumntl3Rcp+H/kIwId9ITb4BI1Gs4vUbBn2HQt8hEPQciPXhl19R2ag6Al69hLJ+NsrIB1FeeBhlaCeUIZ1RnuuCxSqhSMEgPQXVVmyXgteRr1QLLho8dAEDe6P0EfL119Kv3xCt5QrZhHQi/UT1EzIK+YR4gzXxgp6FPs9AYH8I7Adr11GZqBoC/n4CZeoQlFc7wEsPoox8CGX4wyjPP4oyuDOWgdYUfAJL3yeLW/H1UtDajh21YGsJCXvr7Veknxg6AvvrQ4feetUWK4QTNbw48foO0sUbAH36QWBfCOwDvQOhd29YupTKQuUX8PdfUSb1RBlzP8pf26O80hFl1IMoIx6C4Y9oEg7qrKdgVyz99FZslTDAOpDceCou0X4DuqH0fAqlVw+bbZeg4u0WVbJhmnSi1fazttpB0EcXT6Rd7yBNuoDeENBLq149IeBpiI+nMlC5BTz/C0zvDm/dh/L3tpqEr+sS/uVBlBcfRhmmtWKL2or1taC1FRdNxcUCqvt/jhLQ/lScep8+/VrXfyIBgwZq7VWVcIhN4g2EQF28wKDitFPF6wm9noaAHtCrO6xeRWWh8gqY/QvMfRL+eQ+EtIZ/CAnboYx+AOX1Digv+6P85SGUFx7R1oODu6CIVvyMSEHRirVtGcV+Ii6Szm4jWgwdpUTUEzAgQEuzPv31tipSbqAmnbXVlhAvAHoL8Z6GXj008QK66/KtpDJROQW8+Assfhwm3wXv3Q3/bKVL2EZLQiHha7qE6npQtGJtKtZS8HF9b9B+W8Z6RsTBEKKLp535sJ2CNQHF5rO6liuSUFT/YvECbRPPmna6eKp83SqdfJVTwLyL8NmjMLsZzGgBk++E91rqEt6LokrYDuWNB9ShRHnJ2oofKZ6Kn7G24iexBHUrHkis8tmKqH5tn37aelBIVHTeV0zCqoSiRBqKtLMOFgHF4vWyabVF1Q3E1TSVkMonYPxEWNQI5jfRJbwDpogkbAnv3FMs4d+EhGI92AFllL8modqKO2utWEzFaiu2rgVFCtoMJLYDiBBkYH+UEUO1KrooQSSYdg5YbalqaxUpp98WidezdKsNsJGvEiZf5RTw24/h83qwrAEsbgjzG8Mcq4R6Er5zD4qthNbJWF0P6lszg/S9QetAIgQs2pZ5CmX0ayhLF8GB/XDqlHbZliN++hHi41A+XgJj3tBEsy+rePbS9dKuqqnM8lUuAa8eh20tYE0dWFEXlteHpY3go8YwtynMtJVQb8dj26D8j74983LH4vXgkEf1DequxWvBwUEoa1b8sQtKxc/OngUjX7xO4nXTS/++krbdyilgbB/YWgM21oS1tWFlXfhMSNgQFjaGD5vCB81h6p3wfrGEqBKKybg9ykv+6v6gujUjNqif7YIyPFC9Wua6KXe77NgGI4aVXOf1qjrJV7kE/HUN7PWB0OqwzQ8214T1tWB1HfhMb8mLGsO8JjBLSNgCJlnXhPfB2La6hPpQMqITytBH4fP5ZS9eqUScWZx6vbpVmeSrXALGtYYD3rDPB3ZXhx2+ehrWgrWiJdeDT+rDkkawQAwnzWGaVcJWEHwvyptio7o9ltc6ogT3g2/S/7zj376l0k+7lVfAY1MgygyHPOGgF3zhraehb3EarqsNq+rCp3pLFhLOaQ7TW6BMaonyTmuU4DZY3nyAwulD4dyJP/99iIFlx1aqGq4tYN4xSG8FsSaINkOkGcI9Icwb9tuk4ZYasKGWNqCIdeGyRigfNUGZeweWGXdSOKkV195pw7V5g1FyLjn7XVUpXFvAs6sg0QgJRog3QaxZE9FhGtaATVpLVlbUx/JJYwoXNadg7l3kzWxN3rJBKLlSvj8b1xbwcCtINmqVaIIEE8SbIUakoSdEeNmkoS/s8EPZUgvL+noUrGxI/ifNyFl0F1c/7YHlghPargTXFTA7FNJMkKpXigmSTJqIIg3j9DQUIoZ7wwEflL2+WHbWoGBrXfLWN+LqqhZcWN4ay6Vfnf1uqizBLivgsVch3QzpJu02zQypZki2FdEMsZ4Q7YkS4Y0SVp2CfbXI21WPK1ubkL2+JTlZi5z9Tqo0wS4pYOEFyPSEDE9dQnNJCUUaqiKaIcEMcZ5Yor0oPFSd/LBaXN3fgOxdLTi3r7uz30mVJ9glBbywGzK9bMpWRk8bEUUieqIkemKJ96Ygxo+cQ3W5eLAJp/e2Iu9sirPfSZUn2CUFPP46ZHlDpnexhBnWEiLqleYJqZ4oKZ4UJvqQH1+DyzH1ORdxB2dSRzn7XUhw1Rb8bRvI8tEqU5RVRjsh07WypPpQkOJHbmJtLsQ25mRkK66ePuTsdyHBFQXMPw5ZvpBV3UHZCJlRXJZ0HwpS/biSVI/f45tzMqmns9+FxGUFvBwLh33hsB9k+ekyWstGxkzrrQ+WjOrkp9XicnIDziTcxbnv3y23w8s4WkjmsUIyj1qrQK0svQ4X1TW70u63Pi7rWEHRc2QctWh1zEK6g8qw1lGLw9f+6WQhFRXXE/DUDE0++8qy3pYUUsnyxZJZg/z0OlxKbsyphLvJvZBabofXeWqeXeXSZUoOj03J4fEpV+k6+QpPTLnCE5Mv88S/L/Pk5EtFX3edfIXHJ1/lsclX6TI5h85T8nh0Sh6dpubTado1tR6ZVqBWJ/X2Go9M1e4Xj3l0ar72mlPy6DI1V3/NHCZsyqOi4noC/jwaDteAL2vCYVE17KqkjMphP03AjLpcTG3K6ZSHy/XwHppWyEPTLMU13cKD6teFPCxqaoFaqkhTNYGESNb7HxK3+nOoPzdd4cFpCg9Ot+A/TcF/enGJ+/3F4/TX0B5v0V5nmnge7XUGLCygouJ6Ah7pq8mnVi1dQlsZbaXURLRk1SQvox4XU5tz/tuR5Xp4toL4Twf/adBR3JYoIZTNY/T7/Es9rmR1dPC9o+cWoornV0t8Pc1CRcX1BPzPE5p4RWUroK2UmoTK4ZpYDtciL7M+l9KacfnYtHI9PFsxbrb8y/Dx/jMcSQknLlAhcT0Bv7lTF6+2XrqEqnj2iVhTF7A2+Zn1uZzWjJxfF5Tr4d2yfDMcC+bvQLjbkdtaUsCyokT66cIVpaCtgNY2XBNLVi2uZdbjSkYT8s+W70WfNxLlZgTyv03BbJPP0fOkHadC4noJWEq+0qmnCVk8mChZNSnIqkNORkOund1crod3uwn1R9p2h5sQWQpYVtjL5kC44gHEug6sQWFmLfIy6lNwbhPliaM26ijVSg0Xdmu3jjb3O2rHN0pCRz+fKhOwjCjVYu2lsy9t01psxVzLqE3huQ2UJzezxvujLdd/xs2tHW1LClhWfNfObgPa18EGdOkzI5ZMXwoyalDw2weUJ2XdYv3/S4pe72ftBZUClhXfttWlu8H5YOs54SwfFFHidFymD9cyfLl2bDTlye2mmqOf87d/jI1UN/sa1sfJNWBZ8VNgsWQlroixfu+NkmktL7UsmV4UZnqRn+5N/nddKE9upn3ekqTTbk9k+8Hk+wr6j+y73hR8/K/atYBZ9pdg2QiX4YmS6aneFmZ6UpBh5lq6mfx0T3KyGpbr4V0vgTrcrEgzbl7AUolpl5C2a8JLuVRIXE/AM4tKXPen6LJZhdPKTGGGmYIME9cyTOSnm8hNN5KTbuJyupmCS9Hldngdpis3vVa73fK/QSt2tP4TVVFxPQEv7NIvwTdr4mWYsWSYVOmspYqXbiQ/3UieKp6RK+lGLqYb+T3NyOWf3yq3w+s4w0LH6aKEiKVlvO2acXNJaBXQ9r6hn1FhcT0BCy+o0imZVvFMFOpVkG60E8+Dy2keXEzz4HyaO2fT3DmV5sGJjLrldngnLih6UWb11larTIrjFmvXpu1T8bW1VFhcT0DA8lUrLBlGCtONRdJdS/cgL92D3HQPVbwr6UI892LxUt05kWrgWKqBH1PduXopClfh+c8UtbVbS4jYYZouo/XWTj61DetiLq3Af27ONQX85S0K0j1U6fJtxLua5s6VNBvxUg2cSjVwItWd46kGjqQa+C7FwJcpBn74zjV+JfPEBWg/o5AOMyzFVdTeS7b5EhvRNqkY+QMVFpcUUMneSX66uyZemrsq3uU0d108A+dS3TmtimdQxfu/VAM/pBr4KsWNjGQ3kpLdiE52I/tixU/BJbEWHphRQPuZogq1mlGorTXVUtSyDj+OJuGKeiWMywpIYTZ5mXW4mm4rnjvn0gyqeL+lGvhZF+8/qW58k+JGVoobKcluxCW7cSjZwP5kA4e+9Kei0+vjPO7/IF+rmfk88EEB7WcU0GGmSMVCOswUqahLaCOiNR2DFlOhcU0BgZwfunMxzUC2EC+1WLxfUt04muLGjymi3brxZYob6SkGEvXUC0s2sDvJwNYkA+sS3fn6ZPleH/hH2P51AW1mX6bN7Cu0nX2VtrNyuX9WnibizGs8oKaiLqMqorUUfRJWeG83FRqXFbDgUlSReCdV8bQB46cUN75PceOrFAMZKW4ki9RLMRAhUi/JwM4kNzYnubM60Z1PEj34KMHI6auHqWj8crGQpz7NpvWH2bSem829cy7SZo4u46wc2n2QywMfiETMp/3Ma8UtWl8vdtRFrKjngF1eQMGpjNq6eG5F4n0t2m2yG6nJbsQnG4hKNhCW7MaeJDe2JbmxIcnAikQDHyd6MD/ByMwEM/PS7+V8bsX6Xyr4YDZ3LThJy/mnuXveGVrN+517hIhzL9Bm7iXazBGJeJV2H+TwwKz8kqkoWvSMQvosUajouLSA2ScmcSTVjR9StHXe4RQ30vQhIybZTU89N0KT3NiSZGBtkoHPEt1ZkujBhwlGZiSYeD/ei/HxPszKfJyrBRVjtb78cDZNFh2h6aJjNP/oZ1osOMGdC07Rcv4Z7v7wLPfMPc+9cy9y39zLtJ0j2nMO7UR7Fqk4SxNRJOJ7eyruLyNVCgEthdl8n15L3VbJSDGo7TY+2Y1INfUMaurtSHJjY5IbqxMNLE90Z1GiO3MSPJieYOI9Xb434/x4I64OEzO6c7XgolPf05e/51B32VfUX/otjZb+QOPFP9Fs8TGaL/yZOz76VU3Fuz4UiXhOTcTWcy7YtOaremvOU1tz6nGZgOXOyROT1Ok2QU+9cJvU25rkxvpEN1YmGliW6M5CXb5pqnxmxsV76/LVZlRsfYbGNuX1lK6cynXOP1i5+/hZ7libSq1PU6mzPLNIxIZLhIhHaK4m4i9qIt41/xQt553hng9/p/WcbO6bc5H7Zl+m7ewrtJuVw+AV+bgCLp2AgsLCbBLTaxOpT7h7kw1q6m1KcmNtohufJ7qxNNHAgkR3Zid4MDXeyHvxnrp81XkjriYvxdZjeGxjBsa0ICjmHl5IDiD6bOSf+j4WfncU79XhVF8Zhd+KePw+S6bWp+nUXpZFvY+/puHS72m85EeaLPo/mi88TosFv9JSXyO2+vAcrT88T+u5F7hvziV1ct75VcX9ZfRKJaDgt7Mr1NTbpQ8a1pb7WaKBJYkG5ie6MyvRgynxRibGmxkf78XY+OqMjqvJy7F1eSG2IYNimtM3uiU9o9vwRFQHOkV1YuJ30/k19w/8aa6b4NiVy/QKj8S8LhSvtfvxWn0Qn1XRVF8Rh99nSdRcnkadT7Kot+xrGiz9nkZCwsX/R7OFx9U0vHPBb2oa3j3vLK1EGs7NpsfycvzjOmVMpRBQEPttN3XQWJ9kYGWiG8sTDSxONDAvwZ0PEjyYkmDk3XgT4+I9GRvnw+i4GrwSV4cXYxsyOKYp/WPuond0a56Kvp/OUQ/xYORjtIvsRveEkWz5LbzMjzf7Wh6Tv02jwc71mDZtwLRhC+b1oXiu3Y+3kHBlFL5qEiZR89M0ausS1l/6HY2W/EdtyU0XFrfkO+efVFvy3R+eY/s3rtF+K5WAV/KOsim1ltpylyUaWJhoYG6COzMTPPh3vI188T6MifPjlbjajIitz/OxTXgmpgV9olvRI7odj0f580jUo7SPfJL7DvXk7kN9uOPQADrFj+Z/v1nC8dyzf+g4o88dZUjKNhrsXYx5+2LMW5dj2rJKl3Ab5nW7VAm9VofjvTKK6no7tkoo1oX1ln5Hw6VCwp9ouuioPqCISfkkb+zKxpWoNAIKvv5tPh8nGvgoQZNvhiqfB/+KNxFSJJ8vr8bVYmRsPYbGNmKgaL0xd9Mz+j6eiO5A56hH8I98nHaR3bnnUG/ujOhHs4hnaRQxhHrhw6gT/gJdk/7FP39Yy54z6Xx56TgXCq46PJ7juefYczqLxceieD59BY3D/o33nvfw3DUVz9BZmHcswLTtY4xbP8e0eS3GjZswbdiBae1uPNccwHOVkFC043j8PtckrPWJPpx8/A0Nl/5Ao8U/qetCa0sWG9iuRKUSUBB99B/MSTAwLcGdSQlG3tGT7804b8bEVee1uJqMjK3LsNiGPBfTjH4xdxIQ3Zpu0ffTJeohHorszAORT3Gvmn5BNI8YQOOIQTSIeJ664cOpHf4iNcNHUkOtv+AX/hdqhI9Sb9vFvU27uBD8wl/G7+Ar+IW9ju+BN/A98Deq7/8HPvvG4b3nX3jt/jeeoTMw7/wQ0/ZFmLYuw7RlJabN6zFt3IJp/U7Ma/diXnMAr9WH8F4ZUyIJhYR1ln1JvY+/oYGQUF8Xzk2uGPuYVVrAvIJsPj3sr8r3rwSRfGbGxlvlq8Go2DoMj23AoNimDIi5k97Rrege1Zau0R3VwaNjZFfaFqVfXz39BlMvQku/WuEjdAGLxStZo/A7+JIm4MHX8AsTAv4P1b94E599b+O995947dZS0LxzFqYd8zFtW4Jx66cYN6/GuGkDxg3bMK0Pxbx2H+Y1YXit0iX8XJOwxnJ7Cb9n4E7X/FsnlU5AQXbeMWaltdLl89Ll8+OluNq8EFufwbGNeSbmDvrorffJqAf0waOLnn69aKmnXxO79KtlTb8Ie/GK07CGKqBIwVfxDfsrvmGj8T3wd6rvfwuffePx3vsuXrsn4xk6E/POuZi2L8SopuDnGPVWbNywHeO6XZjW7se8+iCeqyL1JEzAV0hYlIRf4b/uP/x86RquSKUUUHA+7xiT0+5lTJwPr+vyvRhbjyGxjXhW3XK5i1566308+kEejnyUDpFP0PZQj6K1X9Oi9BtaIv1qCtEiitPPmoTa7ShqhFsFfAXfsNfUNlz9i79R/Yux+OwP1lJwz/t47ZqGeedsLQW3ixTUBhLj5nUYN27GuGEHxnW7Ma3Zj+fqcF3CWKqvSFTXhELCFqu+5Pgl15l6q4yAgt/zjvHP1La8FFdLle95m3Vf7+h76BHVVt3zE4OH2Ha5P7JbUfrdoa79nlPTr15R+hULWCSfLqKafOrXo0q0Yd+Dr2kp+MUYqn/xv/jsfxvvfRPw2jMRr91T1BT0VNeCCzFtX6YOJB6b1+AhWvHGrRg37MS0bi/mtQdUCb1WRakS+nyuJeGeY6419VYpAQVnc4/zj9SODI1pwKCYJgyIaUFgtNZ6n4puT5cokX6d1fRro6dfCz39GkYMpn64ln61VflG6Gs/XbgSyVeyDfsVpeCr+B18XW3D1b/4Oz7qMBKiDyOT8BQpGDob8475mLcvwbR1OcYtK9UU9Ni4CY8N2zCuD9UkFJPx6gg8hYQrYlnzYwX9bfNboNILKDib9zNjUjrxTExzgmJaqq23e3Q7ukZ15NGoTvir6aet/e7W00+s/Roeel4dPmqr7fdFGwEdDR/2qfiSPg1rApYYRkQb3mOfgnMxixRUt2U+w7hZa8UeaivejnH9LkzrtKGkwYZook+63sRbZQUUXCm4yCdHJmutN1q03vbq4CG2XdqL9IvU0u+uQ9Z9v8E0iBhqs/VSnH4lW6598umTsN007Hvgr/gesLZh2y0ZPQXVteA8TNsXY9z6CcatKzBuXoNx00Y8Nm7BQ6wH1++m1Y4oDv9eef6ucZUR0Mq2X1fTN/4xHovyV7dd1E3nQ2LtF6Cu/VocGkDTiOdoaLPxbLv1cqPkKzEJqwloOw2/XjwNfyEEtA4j7xWloFmdiD/CuG2pOpCIVuyxaS0eGzfisWErPcLjOHolh8pElRNQcDL3BGOy3uChyC7qKbc2kU/b7fsNor7YeokoOXzcioBaCr5EjRICvkH1ojasDSPee97VN6anqyko1oIiBU3blmHcIgaS1dTdvoUFP1Tg3638A1RJAa2EntxHQOIwm8m3P00iBqrDRz19+NDkE+13pMPhw9HXJSV8Gb9wsR2j7wmqbdg6jIzDe+87+pZMyRTUNqeX0yNqP0evus7VLbdKlRZQcKngMh8dXUPXhFdoFvFMcfqFD7NLv9IJ6Gj6LRbR+t+sbVhsx+jT8AHbPUGRgmIYmYznrul4iol453yejtlB9JkTVHaqvIBWfsk9zebfDvFwwhjq68NH8eRb+ryv401ox6flituwkFCbhn3VNizOjIzDZ++/8NozCa/dU+kZv4Hos79QVZACOmDfmVRGHJ5XvPF8ndNu9pvRN14HWlPQvg2H0DhsMtP+E0n0uWNUNaSAN0BcZrXnbDqjv/mEdvFvX3f/7/r7grqA4S9TQ92O0daBzQ69RWDKAqb9uJ+Y33+iKhNc1deAt4K4GFVcAzj9yA6GH15AUPoM7o9/m2bRo0sNIs2jx3B/XDCPJb/H6G8+ZfwP61l3Ip4vL/9y3esHqyJSQIlTkQJKnIoUUOJUpIASpyIFlDgVKaDEqUgBJU5FCihxKlJAiVORAkqcihRQ4lSkgBKnIgWUOBUpoMSpSAElTkUKKHEqUkCJU5ECSpyKFFDiVKSAEqciBZQ4FSmgxKlIASVORQoocSpSQEmFEzDb9o7z58879wgllZac3Bx7AbOFgJm2d/505Iizj1NSSRFu2boWMn5cZrXgCeNW2t4ZdjDM2ccpqaTs3B1aUsAJISuqhUwIGWV758RJ7zn7OCWVlGkzp9sLOKra2LFja9qvA2UblpQ1qWmppQaQSZMm1awmeHt8yHzb/yBMFQtGiaQsEC45SL8V1axMmDChhb2dobtCy+TFJZJQu7WfKOFckYBaCr5dIgXlQCIpCw4cDCslX8j4kPnV7BFrwZDx4446SkLZjiW3inDGUfIJx4rWfvaIWHQkoejfYhEpkdwMYoi1X/NZ5SvVeu0JCQnp4EhCq4ihu3epLyBTUWJFnD0TTog95Hffn1jKG6t8wq0byvffklCW/AyCb+MzuKnkc4SjwUSW/AyCb0m+kPnXXfPdbBoGTwgucbpOlvwMgm/8GWQL8W4r9a6HsFg9bafJmGl/9kRWlf4MsoUTb08IWSEcuZXE+39luPz4pTvy4QAAAABJRU5ErkJggg==;" vertex="1" parent="c6">
          <mxGeometry x="20" y="60" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c9" value="&lt;b&gt;社外ユーザ&lt;/b&gt;（取引先・委託先・顧客等の担当者）&lt;br&gt;メール + パスワード or Google（任意選択）／ &lt;b&gt;メール OTP の MFA を全員必須&lt;/b&gt;&lt;br&gt;入口 = /sign-in/external" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c6">
          <mxGeometry x="70" y="200" width="1010" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c10" value="{{icon:user-check}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9IiMwRTdDNzUiCiAgc3Ryb2tlLXdpZHRoPSIyIgogIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICBzdHJva2UtbGluZWpvaW49InJvdW5kIgo+CiAgPHBhdGggZD0ibTE2IDExIDIgMiA0LTQiIC8+CiAgPHBhdGggZD0iTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=;" vertex="1" parent="c6">
          <mxGeometry x="20" y="220" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c11" value="&lt;b&gt;未認証の受取人 / 提出者&lt;/b&gt;（アカウントを持たない）&lt;br&gt;token + 因子（パスワード・受取人 OTP・提出者 OTP）だけで受取ホストの 2 画面に到達する&lt;br&gt;本体ホストの公開ページ・ヘルプも未認証で読めるが、&lt;b&gt;そこに権能は無い&lt;/b&gt;（右端の表）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c6">
          <mxGeometry x="70" y="360" width="1010" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c12" value="{{icon:key}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9IiMwRTdDNzUiCiAgc3Ryb2tlLXdpZHRoPSIyIgogIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICBzdHJva2UtbGluZWpvaW49InJvdW5kIgo+CiAgPHBhdGggZD0iTTIuNTg2IDE3LjQxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNGE2LjUgNi41IDAgMSAwLTQtNHoiIC8+CiAgPGNpcmNsZSBjeD0iMTYuNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9IiMwRTdDNzUiIC8+Cjwvc3ZnPgo=;" vertex="1" parent="c6">
          <mxGeometry x="20" y="380" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c13" value="2 つのホストは Cookie も WAF も独立している" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c5">
          <mxGeometry x="1160" y="50" width="1900" height="470" as="geometry" />
        </mxCell>
        <mxCell id="c14" value="" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#D8D2C2;strokeWidth=1;fontSize=10;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="30" y="40" width="240" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c15" value="portal.example.com — 本体" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="270" y="40" width="800" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c16" value="inbox.portal.example.com — 受取専用" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="1070" y="40" width="800" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c17" value="認証必須の面" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="30" y="80" width="240" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c18" value="業務の全機能（/boxes/* · /admin/* · 業務 API の /api/*）。主語は Better Auth のセッション" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="270" y="80" width="800" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c19" value="なし（&lt;b&gt;Better Auth セッションは使わない&lt;/b&gt;）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="1070" y="80" width="800" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c20" value="未認証で開く面" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="30" y="120" width="240" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c21" value="公開ページ 4（index 付与）・ヘルプ 7 画面（noindex・匿名層の記事 21）・認証系の一過性画面 4・&lt;b&gt;未認証の API 端点 13&lt;/b&gt; — いずれも&lt;b&gt;権能を持たない&lt;/b&gt;（右端の表）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="270" y="120" width="800" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c22" value="受取 2 画面（/s/[token] · /r/[token]）＋ 受取 API 9 + 7 端点。url-map に在るのは /api/share-links/* · /api/file-requests/* の 2 プレフィックスだけ" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="1070" y="120" width="800" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c23" value="Cookie" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="30" y="160" width="240" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c24" value="Better Auth のセッション Cookie" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="270" y="160" width="800" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c25" value="共有リンク独自の短命認可 Cookie のみ（署名付き・HttpOnly · Secure（本番）· SameSite=Strict · Path=/ · 短時間で失効 · Host-only）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="1070" y="160" width="800" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c26" value="WAF" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="30" y="200" width="240" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c27" value="Cloud Armor ポリシー（本体用: ⓪ パス限定の allow 3 本 → ① WAF プリセットの deny 6 種 → ② レート制限 → ③ 既定 allow）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="270" y="200" width="800" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c28" value="証明書" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="30" y="240" width="240" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c29" value="Google マネージド SSL &lt;b&gt;1 枚に 2 ホスト SAN&lt;/b&gt;。ロードバランサは単一でホストルール分岐" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13">
          <mxGeometry x="270" y="240" width="1600" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c30" value="※ Cookie を Host-only（Domain 属性なし）にしているため、2 ホストは同じ登録可能ドメイン配下でも &lt;b&gt;相互に Cookie が漏れない&lt;/b&gt;。共有リンクの認可 Cookie は名前を token 別にし、payload に share_links.id を封入して「ある link の Cookie を別 link へ持ち込む」経路も塞ぐ。" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#C4925A;strokeWidth=1;fontSize=12;fontColor=#4A4436;align=left;verticalAlign=top;spacing=10;" vertex="1" parent="c13">
          <mxGeometry x="30" y="400" width="1840" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c31" value="{{icon:cloud-load-balancing}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOm5vbmU7fS5jbHMtMntmaWxsOiM2NjlkZjY7fS5jbHMtM3tmaWxsOiM0Mjg1ZjQ7fS5jbHMtNHtmaWxsOiNhZWNiZmE7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5JY29uXzI0cHhfTG9hZEJhbGFuY2luZ19Db2xvcjwvdGl0bGU+PGcgZGF0YS1uYW1lPSJQcm9kdWN0IEljb25zIj48ZyBkYXRhLW5hbWU9ImNvbG9yZWQtMzIvbG9hZC1iYWxhbmNpbmciPjxyZWN0IGNsYXNzPSJjbHMtMSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PGcgPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iMTgiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSI0Ii8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxMSIgeT0iMTIiIHdpZHRoPSIyIiBoZWlnaHQ9IjQiLz48cmVjdCBjbGFzcz0iY2xzLTIiIHg9IjQiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSI0Ii8+PHBvbHlnb24gaWQ9IkZpbGwtMiIgY2xhc3M9ImNscy0zIiBwb2ludHM9IjEzIDExIDExIDExIDExIDcgMTMgNyAxMyAxMSIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iNCIgeT0iMTEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIyIi8+PHJlY3QgY2xhc3M9ImNscy00IiB4PSI2IiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iNSIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iMTIiIHk9IjIiIHdpZHRoPSI2IiBoZWlnaHQ9IjUiLz48cmVjdCBjbGFzcz0iY2xzLTQiIHg9IjE2IiB5PSIxNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iMiIgeT0iMTYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiLz48cmVjdCBjbGFzcz0iY2xzLTIiIHg9IjUiIHk9IjE2IiB3aWR0aD0iMyIgaGVpZ2h0PSI2Ii8+PHJlY3QgY2xhc3M9ImNscy00IiB4PSI5IiB5PSIxNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iMTIiIHk9IjE2IiB3aWR0aD0iMyIgaGVpZ2h0PSI2Ii8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxOSIgeT0iMTYiIHdpZHRoPSIzIiBoZWlnaHQ9IjYiLz48L2c+PC9nPjwvZz48L3N2Zz4=;" vertex="1" parent="c13">
          <mxGeometry x="1840" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c32" value="share ホストの表面は 2 段で削られている" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c5">
          <mxGeometry x="3090" y="50" width="1300" height="470" as="geometry" />
        </mxCell>
        <mxCell id="c33" value="&lt;b&gt;① エッジ（ロードバランサ）が API 面を削る&lt;/b&gt; — share ホストの url-map には /api/share-links/* と /api/file-requests/* しか無く、本体 API のパス群はそもそも API バックエンドへ向かわない&lt;br&gt;&lt;b&gt;② アプリ（副作用も I/O も時計も持たない純関数 1 本）が web 面を削る&lt;/b&gt; — 残った非 API パスは web に届くので、proxy の最初の判定で受取 2 経路以外を落とす" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#0E7C75;strokeWidth=1.5;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="20" y="40" width="1260" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c34" value="share ホストへの要求" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="20" y="140" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c35" value="結果" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="640" y="140" width="640" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c36" value="/api/share-links/* · /api/file-requests/*" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="20" y="180" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c37" value="ロードバランサのパスルールで API バックエンドへ" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="640" y="180" width="640" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c38" value="/s/[token]/* · /r/[token]/*" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="20" y="220" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c39" value="通す（受取画面）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="640" y="220" width="640" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c40" value="bare の /s · /r" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="20" y="260" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c41" value="&lt;b&gt;404&lt;/b&gt;（2 段リダイレクトにしない）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="640" y="260" width="640" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c42" value="その他のパスの GET · HEAD" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="20" y="300" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c43" value="本体ホストの同一パスへ &lt;b&gt;307&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="640" y="300" width="640" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c44" value="その他のメソッド" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="20" y="340" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c45" value="&lt;b&gt;404&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="640" y="340" width="640" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c46" value="本体 API のパス群&lt;br&gt;/api/boxes/* · /api/files/* …" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#D8D2C2;strokeWidth=1;fontSize=10;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c32">
          <mxGeometry x="20" y="400" width="560" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c47" value="share ホストからは到達しない" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c32">
          <mxGeometry x="680" y="400" width="600" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c48" value="認証 — 2 つのドアと、その奥にある境界" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="1">
          <mxGeometry x="60" y="790" width="1180" height="2210" as="geometry" />
        </mxCell>
        <mxCell id="c49" value="&lt;b&gt;ドア 1 — /sign-in/internal（社内）&lt;/b&gt;&lt;br&gt;Google（prompt=select_account）。&lt;b&gt;hd は付与しない&lt;/b&gt;&lt;br&gt;MFA は Google Workspace に委任（アプリ側で 2 要素を持たない）&lt;br&gt;Box の作成ができるのは社内ユーザだけ（プラグイン側の述語で判定）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#0E7C75;strokeWidth=1.5;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c48">
          <mxGeometry x="30" y="50" width="1120" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c50" value="&lt;b&gt;ドア 2 — /sign-in/external（社外）&lt;/b&gt;&lt;br&gt;メール + パスワード or Google（利用者が任意に選ぶ）&lt;br&gt;&lt;b&gt;アプリ側のメール OTP MFA を必須&lt;/b&gt;（6 桁 / 5 分 / ハッシュ保存）&lt;br&gt;信頼デバイスと暗号化保存のバックアップコードを併用&lt;br&gt;社外は /two-factor/disable を 403 — &lt;b&gt;MFA を外す経路が無い&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#0E7C75;strokeWidth=1.5;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c48">
          <mxGeometry x="30" y="150" width="1120" height="90" as="geometry" />
        </mxCell>
        <mxCell id="c51" value="&lt;b&gt;※ ドアは経路整合の UX ガード。真の認可境界はサーバ側のメールドメイン判定である。&lt;/b&gt;&lt;br&gt;&lt;br&gt;・Google の hd はプロバイダ単位のオプションで&lt;b&gt;ドア別に出し分けられない&lt;/b&gt;。社内 / 社外で同一の Google クライアントを共用しているため hd を固定すると社外の Google ログインを一律拒否し、hd:'*' も個人 Google アカウントを拒否する。&lt;b&gt;だから hd は使えない&lt;/b&gt;&lt;br&gt;・境界は user.create.before が &lt;b&gt;INSERT 前に userType を注入する 1 点&lt;/b&gt;に集約する（列は NOT NULL・既定値なし）&lt;br&gt;・誤ったドアからの Google ログインは /callback/:id で &lt;b&gt;ドア意図 Cookie（使い捨て）↔ メールドメイン&lt;/b&gt;を突合し、不一致なら &lt;b&gt;セッション Cookie 削除 + サーバ側セッション削除 + 監査 + 正しいドアへ誘導&lt;/b&gt;（fail-closed）&lt;br&gt;・&lt;b&gt;ドア意図 Cookie の欠落は素通しでよい&lt;/b&gt; — 守っているのはドアではなくドメインだから" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#C4925A;strokeWidth=1;fontSize=12;fontColor=#4A4436;align=left;verticalAlign=top;spacing=10;" vertex="1" parent="c48">
          <mxGeometry x="30" y="260" width="1120" height="160" as="geometry" />
        </mxCell>
        <mxCell id="c52" value="{{icon:key}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9IiMwRTdDNzUiCiAgc3Ryb2tlLXdpZHRoPSIyIgogIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICBzdHJva2UtbGluZWpvaW49InJvdW5kIgo+CiAgPHBhdGggZD0iTTIuNTg2IDE3LjQxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNGE2LjUgNi41IDAgMSAwLTQtNHoiIC8+CiAgPGNpcmNsZSBjeD0iMTYuNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9IiMwRTdDNzUiIC8+Cjwvc3ZnPgo=;" vertex="1" parent="c48">
          <mxGeometry x="1120" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c53" value="&lt;b&gt;完全セッション生成の単一 choke point&lt;/b&gt;&lt;br&gt;databaseHooks.session.create.before&lt;br&gt;credential / Google / 2 要素完了の &lt;b&gt;3 経路がすべてここを通る&lt;/b&gt;。&lt;br&gt;users.status = 'disabled' なら&lt;b&gt;新規セッションを生成しない&lt;/b&gt;（既存セッションの側は claims 解決が 401 で受け止める）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#0E7C75;strokeWidth=1.5;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c48">
          <mxGeometry x="30" y="440" width="1120" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c54" value="Better Auth プラグイン 6 種（うち 1 種は自作）" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c48">
          <mxGeometry x="30" y="970" width="1120" height="350" as="geometry" />
        </mxCell>
        <mxCell id="c55" value="&lt;b&gt;admin&lt;/b&gt; — 全社ロール（system_admin）を users.role で管理" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c54">
          <mxGeometry x="20" y="40" width="1080" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c56" value="&lt;b&gt;organization&lt;/b&gt; — &lt;b&gt;Box を additionalFields で単一テーブル管理&lt;/b&gt;（Box 専用テーブルを作らない。organization 15 / member 6 / invitation 1 列を追加・所属上限は既定から引き上げ）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c54">
          <mxGeometry x="20" y="90" width="1080" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c57" value="&lt;b&gt;jwt&lt;/b&gt;（EdDSA） — 署名鍵を jwks テーブルで管理。&lt;b&gt;RLS のホットパスには関与しない&lt;/b&gt;（層④）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c54">
          <mxGeometry x="20" y="140" width="1080" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c58" value="&lt;b&gt;twoFactor&lt;/b&gt; — メール OTP・信頼デバイス・バックアップコード。既定と&lt;b&gt;同値でも明示宣言&lt;/b&gt;する（上流の既定変更で画面の文言と資料が黙って嘘になるのを防ぐ挙動不変のドリフト対策）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c54">
          <mxGeometry x="20" y="190" width="1080" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c59" value="&lt;b&gt;emailOTP&lt;/b&gt; — 生やす 9 端点のうち&lt;b&gt;使うのは 0 本&lt;/b&gt;（全数封鎖。下記）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c54">
          <mxGeometry x="20" y="240" width="1080" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c60" value="&lt;b&gt;matsubaInvitation（自作）&lt;/b&gt; — 招待受諾の 2 端点。native の acceptInvitation は member を二重化するため使わず、native の招待メール送信は&lt;b&gt;到達したら throw する（fail-loud）&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c54">
          <mxGeometry x="20" y="290" width="1080" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c61" value="{{icon:better-auth}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZyBmaWxsPSIjMEEyODI4IiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+QmV0dGVyIEF1dGg8L3RpdGxlPjxwYXRoIGQ9Ik0wIDMuMzl2MTcuMjJoNS43ODNWMTUuMDZoNi40MzRWOC45MzlINS43ODNWMy4zOVpNMTIuMjE3IDguOTRoNS42Mzh2Ni4xMjJoLTUuNjM4djUuNTQ4SDI0VjMuMzkxSDEyLjIxN1oiLz48L3N2Zz4=;" vertex="1" parent="c54">
          <mxGeometry x="1060" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c62" value="認証手段そのものの設計" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c48">
          <mxGeometry x="30" y="1340" width="1120" height="200" as="geometry" />
        </mxCell>
        <mxCell id="c63" value="MFA 未登録の社外ユーザは業務 API を&lt;b&gt;全件 403&lt;/b&gt;にする（判定は userType === 'external' かつ 2 要素未登録の 1 行）。解消の経路だけは別のミドルウェアを通して自分自身を弾かないようにする" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c62">
          <mxGeometry x="20" y="40" width="1080" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c64" value="認証手段の追加（パスワード設定）は&lt;b&gt;機密セッション + メール OTP の step-up 再認証&lt;/b&gt;が必須。信頼デバイスの長期セッションを乗っ取られたときに手段を足させない" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c62">
          <mxGeometry x="20" y="90" width="1080" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c65" value="認証手段は&lt;b&gt;追加のみで削除・解除を持たない&lt;/b&gt; — 「最低 1 つのサインイン手段を常に維持する」を操作の不在で保証する" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c62">
          <mxGeometry x="20" y="140" width="1080" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c66" value="★ 使わない端点は閉める（プラグインが生やす面を削る）" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c48">
          <mxGeometry x="30" y="1560" width="1120" height="400" as="geometry" />
        </mxCell>
        <mxCell id="c67" value="&lt;b&gt;① 3 系統を 404 = 存在秘匿&lt;/b&gt;&lt;br&gt;/update-user（完全一致）· /admin/* · /organization/*（prefix）を丸ごと落とす。Box の作成・更新・削除は自前のルータ 1 本に固定してあり、prefix の 2 系統は&lt;b&gt;バージョンアップで生える新端点も自動的に封鎖される形&lt;/b&gt;にしてある（パス単位で列挙すると新設分が素通りする）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c66">
          <mxGeometry x="20" y="40" width="1080" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c68" value="Better Auth native の管理端点" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#D8D2C2;strokeWidth=1;fontSize=10;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c66">
          <mxGeometry x="20" y="100" width="480" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c69" value="404（存在を秘匿）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c66">
          <mxGeometry x="620" y="100" width="480" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c70" value="&lt;b&gt;② 403 で 9 端点&lt;/b&gt;（emailOTP プラグインが生やす全数。使うのは 0 本）&lt;br&gt;・&lt;b&gt;/sign-in/email-otp&lt;/b&gt; … メール OTP だけで完全セッションを発行でき、2 要素の後段フックにも降格ブリッジにも掛からない&lt;b&gt;単一要素サインイン経路&lt;/b&gt;だった&lt;br&gt;・リセット代替 3 本 = /email-otp/request-password-reset · /email-otp/reset-password · /forget-password/email-otp（松葉はトークンリンク式のみ使う）&lt;br&gt;・検証とメール変更 5 本 = /email-otp/send-verification-otp · /email-otp/verify-email · /email-otp/check-verification-otp · &lt;b&gt;/email-otp/request-email-change&lt;/b&gt; · &lt;b&gt;/email-otp/change-email&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c66">
          <mxGeometry x="20" y="170" width="1080" height="70" as="geometry" />
        </mxCell>
        <mxCell id="c71" value="&lt;b&gt;★ とりわけ request-email-change / change-email は「メール変更の第二の扉」&lt;/b&gt;&lt;br&gt;step-up ゲート・保留照合・後勝ち阻止・完了副作用をすべて迂回する。社外ユーザが自分のメールを社内ドメインへ替えると &lt;b&gt;userType は external のまま「社内メール」&lt;/b&gt;になり、境界の不変条件が壊れる" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c66">
          <mxGeometry x="20" y="250" width="1080" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c72" value="&lt;b&gt;③ 条件付きの拒否 4 種&lt;/b&gt;&lt;br&gt;・/sign-in/email に社内ドメイン → 401（ドア整合）&lt;br&gt;・/request-password-reset に社内ドメイン → 400（社内は Google 専用で credential を持たない。リセットを許すと credential が新規作成され「社内 = Google 専用」が破れる）&lt;br&gt;・社外の /two-factor/disable → 403&lt;br&gt;・/reset-password のパスワード複雑性 → native は長さしか見ないため&lt;b&gt;フックで 4 種混合を強制&lt;/b&gt;（直 POST の迂回を塞ぐ）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c66">
          <mxGeometry x="20" y="300" width="1080" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c73" value="&lt;b&gt;事前プロビジョニング招待 — 権限ゼロの行を先に作る&lt;/b&gt;&lt;br&gt;SECURITY DEFINER の provision_box_invitation（&lt;b&gt;EXECUTE は authenticated のみ&lt;/b&gt;）が&lt;br&gt;1 トランザクションで「認証手段を持たない user ＋ &lt;b&gt;accepted_at = NULL の member&lt;/b&gt; ＋ 保留中の invitation」を作る。&lt;br&gt;claims は &lt;b&gt;accepted_at IS NOT NULL のメンバーシップだけ&lt;/b&gt;を集約するので、招待中の行は RLS 上ゼロ権限。受諾はこの 3 点セットを&lt;b&gt;有効化する操作&lt;/b&gt;であって、権限を新たに与える操作ではない。" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#0E7C75;strokeWidth=1.5;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c48">
          <mxGeometry x="30" y="1980" width="1120" height="90" as="geometry" />
        </mxCell>
        <mxCell id="c74" value="&lt;b&gt;認証面（/api/auth/*）のレート制限&lt;/b&gt;は Better Auth 側の store（Postgres の専用テーブル・IP × path キー）が担う。業務 API 側の 2 系統は層③ に置いた。&lt;b&gt;この表は RLS を無効にしている 8 表のうちの 1 つ&lt;/b&gt; — Better Auth が自分で整合を取る領域には RLS を掛けず、境界の主語をアプリ所有のテーブルに揃える。" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c48">
          <mxGeometry x="30" y="2090" width="1120" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c75" value="1 リクエストが通る防御の断面 — 4 層（アプリ層は web / api の 2 段）" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="1">
          <mxGeometry x="1320" y="790" width="1580" height="2210" as="geometry" />
        </mxCell>
        <mxCell id="c76" value="&lt;b&gt;※ 4 層は「同じことを 4 回やる」のではなく、それぞれ違うものを守り、違う言葉で断る。&lt;/b&gt;各層の右下に&lt;b&gt;守れるもの&lt;/b&gt;（淡い藍）と&lt;b&gt;断り方&lt;/b&gt;（赤）を並べた。上から下へ貫く太い矢が 1 リクエストの通り道。" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#C4925A;strokeWidth=1;fontSize=12;fontColor=#4A4436;align=left;verticalAlign=top;spacing=10;" vertex="1" parent="c75">
          <mxGeometry x="30" y="50" width="1100" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c77" value="層① インフラ — Cloud Armor / Cloud Load Balancing" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="c75">
          <mxGeometry x="30" y="130" width="1460" height="270" as="geometry" />
        </mxCell>
        <mxCell id="c78" value="{{icon:cloud-armor}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNhZWNiZmE7fS5jbHMtMntmaWxsOiM2NjlkZjY7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5JY29uXzI0cHhfQ2xvdWRBcm1vcl9Db2xvcjwvdGl0bGU+PGcgZGF0YS1uYW1lPSJQcm9kdWN0IEljb25zIj48cG9seWdvbiBjbGFzcz0iY2xzLTEiIHBvaW50cz0iOS43NiAyMC42IDguNzIgMTkuNTUgMTQuMTcgMTQuMDcgMTUuMjEgMTUuMTIgOS43NiAyMC42Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0xIiBwb2ludHM9IjcuMDMgMTguMzIgNS45OSAxNy4yNyAxMy4zNCA5Ljg4IDE0LjM4IDEwLjkzIDcuMDMgMTguMzIiLz48cG9seWdvbiBjbGFzcz0iY2xzLTEiIHBvaW50cz0iNS4zNCAxNC45OCA0LjMgMTMuOTMgOS4xOCA5LjAzIDEwLjIyIDEwLjA4IDUuMzQgMTQuOTgiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xMiwzLjYxbDYuNzgsM3Y0LjU1QTkuNzEsOS43MSwwLDAsMSwxMiwyMC40OGE5LjcsOS43LDAsMCwxLTYuNzgtOS4zMVY2LjYzbDYuNzgtM00xMiwyLDMuNzUsNS42OHY1LjQ5QTExLjE3LDExLjE3LDAsMCwwLDExLjg1LDIyTDEyLDIybC4xNSwwYTExLjE3LDExLjE3LDAsMCwwLDguMS0xMC43OFY1LjY4TDEyLDJaIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTIiIGN4PSIxNC42OSIgY3k9IjE0LjYyIiByPSIxLjQyIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTIiIGN4PSIxMy44NSIgY3k9IjEwLjQ1IiByPSIxLjQyIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTIiIGN4PSI5LjY5IiBjeT0iOS42IiByPSIxLjQyIi8+PC9nPjwvc3ZnPg==;" vertex="1" parent="c77">
          <mxGeometry x="1400" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c79" value="&lt;b&gt;Cloud Armor&lt;/b&gt; — ⓪ パス限定の allow（本体ホストだけ 3 本・WAF の誤検知を避ける経路）→ ① OWASP プリセット由来の deny 6 種（sqli / xss / lfi / rfi / rce / scannerdetection）→ ② レート制限（throttle）→ ③ 既定 allow。&lt;b&gt;ホストごとに独立した 2 ポリシー&lt;/b&gt;で、本体の負荷が受取経路の制限に影響しない" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c77">
          <mxGeometry x="20" y="50" width="1420" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c80" value="過検知は&lt;b&gt;ルール単位で opt_out&lt;/b&gt;して運用する（例: 整数オーバーフロー検知が、ファイルサイズの境界値を SQL インジェクションと誤判定する）。ポリシー全体を緩めるのではなく 1 ルールだけ抜く" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c77">
          <mxGeometry x="20" y="100" width="1420" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c81" value="&lt;b&gt;Cloud Load Balancing&lt;/b&gt; — TLS 終端 / HSTS 付与 / ホストルール分岐。マネージド証明書 1 枚に 2 ホスト SAN。share ホストの url-map は受取用の 2 つの API prefix しか持たない" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c77">
          <mxGeometry x="20" y="150" width="1420" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c82" value="&lt;b&gt;この層が単独で守れるもの&lt;/b&gt;&lt;br&gt;量で押す総当たりと、既知の攻撃シグネチャ。&lt;br&gt;そもそもアプリに届かせない" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#D3ECE9;fontColor=#0E7C75;" vertex="1" parent="c77">
          <mxGeometry x="20" y="200" width="700" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c83" value="&lt;b&gt;断り方&lt;/b&gt;&lt;br&gt;429 / deny&lt;br&gt;（アプリのログにも現れない）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c77">
          <mxGeometry x="740" y="200" width="700" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c84" value="層②a アプリ層（web）— proxy が「到達してよい URL の形」を決める" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="c75">
          <mxGeometry x="30" y="440" width="1460" height="280" as="geometry" />
        </mxCell>
        <mxCell id="c85" value="{{icon:shield}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9IiMwRTdDNzUiCiAgc3Ryb2tlLXdpZHRoPSIyIgogIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICBzdHJva2UtbGluZWpvaW49InJvdW5kIgo+CiAgPHBhdGggZD0iTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6IiAvPgo8L3N2Zz4K;" vertex="1" parent="c84">
          <mxGeometry x="1400" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c86" value="&lt;b&gt;判定は 7 段。順序そのものが仕様である。&lt;/b&gt;&lt;br&gt;① share ホストガード（&lt;b&gt;最初&lt;/b&gt; — LP も封鎖対象に含める）&lt;br&gt;② 公開パス 14 プレフィックスはヘッダを触らず素通り&lt;br&gt;③ メンテナンス応答（運用バイパスは秘密値が&lt;b&gt;空文字のときは絶対に通さない&lt;/b&gt;。判定不能はメンテ側に倒す = fail-closed。認証導線だけは塞がない — 解除できる唯一の人がログインできなくなるため）&lt;br&gt;④ トップ（LP）の分岐 → ⑤ デザイン確認用ルートを本番で遮断&lt;br&gt;⑥ &lt;b&gt;楽観セッションゲート&lt;/b&gt; — Cookie の存在だけを見る（&lt;b&gt;NOT SECURE&lt;/b&gt;。実検証は各ページと API が行う。userType / 2 要素 / admin の分岐は入れない）&lt;br&gt;⑦ 要求パスの内部ヘッダを&lt;b&gt;無条件に上書き&lt;/b&gt;（クライアント由来の同名ヘッダを信用しない）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c84">
          <mxGeometry x="20" y="50" width="1420" height="110" as="geometry" />
        </mxCell>
        <mxCell id="c87" value="&lt;b&gt;/admin は 403 ではなく 404 で返す&lt;/b&gt;（存在秘匿）— 判定するのは proxy ではなく管理面の layout（サーバ側で本人のプロファイルを読み、非 system_admin には notFound）。Box 越境の参照も同じく 404 — 「権限が無い」と答えることは「そこに何かある」と答えることでもあるため、&lt;b&gt;管理面と他 Box の存在自体を漏らさない&lt;/b&gt;。真の認可境界は下の 2 層で、この段は UX と URL 面の整形" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c84">
          <mxGeometry x="20" y="170" width="1420" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c88" value="&lt;b&gt;この段が単独で守れるもの&lt;/b&gt;&lt;br&gt;到達してよい URL 面の形。ホストとパスの組み合わせ、存在の秘匿" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#D3ECE9;fontColor=#0E7C75;" vertex="1" parent="c84">
          <mxGeometry x="20" y="220" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c89" value="&lt;b&gt;断り方&lt;/b&gt;&lt;br&gt;307（本体ホストへ戻す）/ 404（存在秘匿）/ 503（メンテナンス）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c84">
          <mxGeometry x="740" y="220" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c90" value="層②b アプリ層（api）— authMiddleware = 全業務ルータが通る単一 choke point" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="c75">
          <mxGeometry x="30" y="760" width="1460" height="330" as="geometry" />
        </mxCell>
        <mxCell id="c91" value="{{icon:user-check}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9IiMwRTdDNzUiCiAgc3Ryb2tlLXdpZHRoPSIyIgogIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICBzdHJva2UtbGluZWpvaW49InJvdW5kIgo+CiAgPHBhdGggZD0ibTE2IDExIDIgMiA0LTQiIC8+CiAgPHBhdGggZD0iTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=;" vertex="1" parent="c90">
          <mxGeometry x="1400" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c92" value="&lt;b&gt;処理は 8 段。① と ⑤ が設計の核。&lt;/b&gt;&lt;br&gt;① &lt;b&gt;冪等ガード&lt;/b&gt; — claims が既にあれば素通り。これは保険ではなく&lt;b&gt;現行動作の前提&lt;/b&gt;（同一 prefix への多重マウントで本ミドルウェアは実際に 2 回以上積まれる）&lt;br&gt;② セッション取得（Web 標準の Headers をそのまま渡す）→ ③ user / session を文脈へ&lt;br&gt;④ &lt;b&gt;MFA 登録ゲート&lt;/b&gt; — 社外 × 未登録は業務 API を全件 403&lt;br&gt;⑤ &lt;b&gt;認可クレームを毎リクエスト live 解決&lt;/b&gt;（SECURITY DEFINER 関数を 1 リクエスト 1 回・キャッシュしない）→ ⑥ 文脈へ注入&lt;br&gt;⑦ 信頼デバイスの遅延捕捉（best-effort・throw しない）→ ⑧ 次へ" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c90">
          <mxGeometry x="20" y="50" width="1420" height="90" as="geometry" />
        </mxCell>
        <mxCell id="c93" value="&lt;b&gt;クレームは 4 キーだけ&lt;/b&gt; — sub / user_type / is_system_admin / box_roles。&lt;b&gt;box_roles は「承諾済みのメンバーシップ」だけ&lt;/b&gt;を集約する。関数は users.status = 'active' の行にしかクレームを返さないので、&lt;b&gt;アカウント無効化とロール変更はセッションを待たずに次のリクエストから反映&lt;/b&gt;される（返り値が NULL なら 401）。Cookie キャッシュで前段の DB 往復を削っても、&lt;b&gt;認可だけは毎回引き直す&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c90">
          <mxGeometry x="20" y="150" width="1420" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c94" value="&lt;b&gt;業務 API 側のレート制限は 2 系統&lt;/b&gt;&lt;br&gt;・&lt;b&gt;汎用基盤&lt;/b&gt; — 27 ルールの registry（識別軸は 4 種 = user / ip / user+ip / user-or-ip）。固定ウィンドウを&lt;b&gt;1 文の原子 upsert&lt;/b&gt;で数え、ハンドラより前段で独立接続から発火する&lt;br&gt;・&lt;b&gt;token 単位&lt;/b&gt; — 未認証の受取面 16 端点（共有リンク 9 + ファイルリクエスト 7。ホスト全体の量的制限の内側にもう 1 段）。カウンタ障害時の既定は open だが、&lt;b&gt;未認証面だけ closed&lt;/b&gt; に倒す（DoS の標的になる面では「数えられないなら通さない」）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c90">
          <mxGeometry x="20" y="200" width="1420" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c95" value="&lt;b&gt;この段が単独で守れるもの&lt;/b&gt;&lt;br&gt;本人性・登録状態・呼び出し頻度。&lt;br&gt;そして「認可の主語」を 1 箇所で作ること" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#D3ECE9;fontColor=#0E7C75;" vertex="1" parent="c90">
          <mxGeometry x="20" y="260" width="700" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c96" value="&lt;b&gt;断り方&lt;/b&gt;&lt;br&gt;401（未認証・無効化）/ 403（MFA 未登録・権限不足）/ 429（頻度）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c90">
          <mxGeometry x="740" y="260" width="700" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c97" value="層③ DB — Postgres の行レベルセキュリティ（PostgREST を経由せず自前で 3 経路に実装）" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="c75">
          <mxGeometry x="30" y="1130" width="1460" height="500" as="geometry" />
        </mxCell>
        <mxCell id="c98" value="{{icon:supabase}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZyBmaWxsPSIjMEEyODI4IiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+U3VwYWJhc2U8L3RpdGxlPjxwYXRoIGQ9Ik0xMS45IDEuMDM2Yy0uMDE1LS45ODYtMS4yNi0xLjQxLTEuODc0LS42MzdMLjc2NCAxMi4wNUMtLjMzIDEzLjQyNy42NSAxNS40NTUgMi40MDkgMTUuNDU1aDkuNTc5bC4xMTMgNy41MWMuMDE0Ljk4NSAxLjI1OSAxLjQwOCAxLjg3My42MzZsOS4yNjItMTEuNjUzYzEuMDkzLTEuMzc1LjExMy0zLjQwMy0xLjY0NS0zLjQwM2gtOS42NDJ6Ii8+PC9zdmc+;" vertex="1" parent="c97">
          <mxGeometry x="1400" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c99" value="{{icon:postgresql}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZyBmaWxsPSIjMEEyODI4IiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+UG9zdGdyZVNRTDwvdGl0bGU+PHBhdGggZD0iTTIzLjU1OTQgMTQuNzIyOGEuNTI2OS41MjY5IDAgMCAwLS4wNTYzLS4xMTkxYy0uMTM5LS4yNjMyLS40NzY4LS4zNDE4LTEuMDA3NC0uMjMyMS0xLjY1MzMuMzQxMS0yLjI5MzUuMTMxMi0yLjUyNTYtLjAxOTEgMS4zNDItMi4wNDgyIDIuNDQ1LTQuNTIyIDMuMDQxMS02LjgyOTcuMjcxNC0xLjA1MDcuNzk4Mi0zLjUyMzcuMTIyMi00LjczMTZhMS41NjQxIDEuNTY0MSAwIDAgMC0uMTUwOS0uMjM1QzIxLjY5MzEuOTA4NiAxOS44MDA3LjAyNDggMTcuNTA5OS4wMDA1Yy0xLjQ5NDctLjAxNTgtMi43NzA1LjM0NjEtMy4xMTYxLjQ3OTRhOS40NDkgOS40NDkgMCAwIDAtLjUxNTktLjA4MTYgOC4wNDQgOC4wNDQgMCAwIDAtMS4zMTE0LS4xMjc4Yy0xLjE4MjItLjAxODQtMi4yMDM4LjI2NDItMy4wNDk4Ljg0MDYtLjg1NzMtLjMyMTEtNC43ODg4LTEuNjQ1LTcuMjIxOS4wNzg4Qy45MzU5IDIuMTUyNi4zMDg2IDMuODczMy40MzAyIDYuMzA0M2MuMDQwOS44MTguNTA2OSAzLjMzNCAxLjI0MjMgNS43NDM2LjQ1OTggMS41MDY1LjkzODcgMi43MDE5IDEuNDMzNCAzLjU4Mi41NTMuOTk0MiAxLjEyNTkgMS41OTMzIDEuNzE0MyAxLjc4OTUuNDQ3NC4xNDkxIDEuMTMyNy4xNDQxIDEuODU4MS0uNzI3OS44MDEyLS45NjM1IDEuNTkwMy0xLjgyNTggMS45NDQ2LTIuMjA2OS40MzUxLjIzNTUuOTA2NC4zNjI1IDEuMzkuMzc3MmEuMDU2OS4wNTY5IDAgMCAwIC4wMDA0LjAwNDEgMTEuMDMxMiAxMS4wMzEyIDAgMCAwLS4yNDcyLjMwNTRjLS4zMzg5LjQzMDItLjQwOTQuNTE5Ny0xLjUwMDIuNzQ0My0uMzEwMi4wNjQtMS4xMzQ0LjIzMzktMS4xNDY0LjgxMTUtLjAwMjUuMTIyNC4wMzI5LjIzMDkuMDkxOS4zMjY4LjIyNjkuNDIzMS45MjE2LjYwOTcgMS4wMTUuNjMzMSAxLjMzNDUuMzMzNSAyLjUwNDQuMDkyIDMuMzcxNC0uNjc4Ny0uMDE3IDIuMjMxLjA3NzUgNC40MTc0LjM0NTQgNS4wODc0LjIyMTIuNTUyOS43NjE4IDEuOTA0NSAyLjQ2OTIgMS45MDQzLjI1MDUgMCAuNTI2My0uMDI5MS44Mjk2LS4wOTQxIDEuNzgxOS0uMzgyMSAyLjU1NTctMS4xNjk2IDIuODU1LTIuOTA1OS4xNTAzLS44NzA3LjQwMTYtMi44NzUzLjUzODgtNC4xMDEyLjAxNjktLjA3MDMuMDM1Ny0uMTIwNy4wNTctLjEzNjIuMDAwNy0uMDAwNS4wNjk3LS4wNDcxLjQyNzIuMDMwN2EuMzY3My4zNjczIDAgMCAwIC4wNDQzLjAwNjhsLjI1MzkuMDIyMy4wMTQ5LjAwMWMuODQ2OC4wMzg0IDEuOTExNC0uMTQyNiAyLjUzMTItLjQzMDguNjQzOC0uMjk4OCAxLjgwNTctMS4wMzIzIDEuNTk1MS0xLjY2OTh6TTIuMzcxIDExLjg3NjVjLS43NDM1LTIuNDM1OC0xLjE3NzktNC44ODUxLTEuMjEyMy01LjU3MTktLjEwODYtMi4xNzE0LjQxNzEtMy42ODI5IDEuNTYyMy00LjQ5MjcgMS44MzY3LTEuMjk4NiA0LjgzOTgtLjU0MDggNi4xMDgtLjEzLS4wMDMyLjAwMzItLjAwNjYuMDA2MS0uMDA5OC4wMDk0LTIuMDIzOCAyLjA0NC0xLjk3NTggNS41MzYtMS45NzA4IDUuNzQ5NS0uMDAwMi4wODIzLjAwNjYuMTk4OS4wMTYyLjM1OTMuMDM0OC41ODczLjA5OTYgMS42ODA0LS4wNzM1IDIuOTE4NC0uMTYwOSAxLjE1MDQuMTkzNyAyLjI3NjQuOTcyOCAzLjA4OTIuMDgwNi4wODQxLjE2NDguMTYzMS4yNTE4LjIzNzQtLjM0NjguMzcxNC0xLjEwMDQgMS4xOTI2LTEuOTAyNSAyLjE1NzYtLjU2NzcuNjgyNS0uOTU5Ny41NTE3LTEuMDg4Ni41MDg3LS4zOTE5LS4xMzA3LS44MTMtLjU4NzEtMS4yMzgxLTEuMzIyMy0uNDc5Ni0uODM5LS45NjM1LTIuMDMxNy0xLjQxNTUtMy41MTI2em02LjAwNzIgNS4wODcxYy0uMTcxMS0uMDQyOC0uMzI3MS0uMTEzMi0uNDMyMi0uMTc3Mi4wODg5LS4wMzk0LjIzNzQtLjA5MDIuNDgzMy0uMTQwOSAxLjI4MzMtLjI2NDEgMS40ODE1LS40NTA2IDEuOTE0My0xLjAwMDIuMDk5Mi0uMTI2LjIxMTYtLjI2ODcuMzY3My0uNDQyNmEuMzU0OS4zNTQ5IDAgMCAwIC4wNzM3LS4xMjk4Yy4xNzA4LS4xNTEzLjI3MjQtLjEwOTkuNDM2OS0uMDQxNy4xNTYuMDY0Ni4zMDc4LjI2LjM2OTUuNDc1Mi4wMjkxLjEwMTYuMDYxOS4yOTQ1LS4wNDUyLjQ0NDQtLjkwNDMgMS4yNjU4LTIuMjIxNiAxLjI0OTQtMy4xNjc2IDEuMDEyOHptMi4wOTQtMy45ODgtLjA1MjUuMTQxYy0uMTMzLjM1NjYtLjI1NjcuNjg4MS0uMzMzNCAxLjAwMy0uNjY3NC0uMDAyMS0xLjMxNjgtLjI4NzItMS44MTA1LS44MDI0LS42Mjc5LS42NTUxLS45MTMxLTEuNTY2NC0uNzgyNS0yLjUwMDQuMTgyOC0xLjMwNzkuMTE1My0yLjQ0NjguMDc5LTMuMDU4Ni0uMDA1LS4wODU3LS4wMDk1LS4xNjA3LS4wMTIyLS4yMTk5LjI5NTctLjI2MjEgMS42NjU5LS45OTYyIDIuNjQyOS0uNzcyNC40NDU5LjEwMjIuNzE3Ni40MDU3LjgzMDUuOTI4LjU4NDYgMi43MDM4LjA3NzQgMy44MzA3LS4zMzAyIDQuNzM2My0uMDg0LjE4NjYtLjE2MzMuMzYyOS0uMjMxMS41NDU0em03LjM2MzcgNC41NzI1Yy0uMDE2OS4xNzY4LS4wMzU4LjM3Ni0uMDYxOC41OTU5bC0uMTQ2LjQzODNhLjM1NDcuMzU0NyAwIDAgMC0uMDE4Mi4xMDc3Yy0uMDA1OS40NzQ3LS4wNTQuNjQ4OS0uMTE1Ljg2OTMtLjA2MzQuMjI5Mi0uMTM1My40ODkxLS4xNzk0IDEuMDU3NS0uMTEgMS40MTQzLS44NzgyIDIuMjI2Ny0yLjQxNzIgMi41NTY1LTEuNTE1NS4zMjUxLTEuNzg0My0uNDk2OC0yLjAyMTItMS4yMjE3YTYuNTgyNCA2LjU4MjQgMCAwIDAtLjA3NjktLjIyNjZjLS4yMTU0LS41ODU4LS4xOTExLTEuNDExOS0uMTU3NC0yLjU1NTEuMDE2NS0uNTYxMi0uMDI0OS0xLjkwMTMtLjMzMDItMi42NDYyLjAwNDQtLjI5MzIuMDEwNi0uNTkwOS4wMTktLjg5MThhLjM1MjkuMzUyOSAwIDAgMC0uMDE1My0uMTEyNiAxLjQ5MjcgMS40OTI3IDAgMCAwLS4wNDM5LS4yMDhjLS4xMjI2LS40MjgzLS40MjEzLS43ODY2LS43Nzk3LS45MzUxLS4xNDI0LS4wNTktLjQwMzgtLjE2NzItLjcxNzgtLjA4NjkuMDY3LS4yNzYuMTgzMS0uNTg3NS4zMDktLjkyNDlsLjA1MjktLjE0MmMuMDU5NS0uMTYuMTM0LS4zMjU3LjIxMy0uNTAxMi40MjY1LS45NDc2IDEuMDEwNi0yLjI0NTMuMzc2Ni01LjE3NzItLjIzNzQtMS4wOTgxLTEuMDMwNC0xLjYzNDMtMi4yMzI0LTEuNTA5OC0uNzIwNy4wNzQ2LTEuMzc5OS4zNjU0LTEuNzA4OC41MzIxYTUuNjcxNiA1LjY3MTYgMCAwIDAtLjE5NTguMTA0MWMuMDkxOC0xLjEwNjQuNDM4Ni0zLjE3NDEgMS43MzU3LTQuNDgyM2E0LjAzMDYgNC4wMzA2IDAgMCAxIC4zMDMzLS4yNzYuMzUzMi4zNTMyIDAgMCAwIC4xNDQ3LS4wNjQ0Yy43NTI0LS41NzA2IDEuNjk0NS0uODUwNiAyLjgwMi0uODMyNS40MDkxLjAwNjcuODAxNy4wMzM5IDEuMTc0Mi4wODEgMS45MzkuMzU0NCAzLjI0MzkgMS40NDY4IDQuMDM1OSAyLjM4MjcuODE0My45NjIzIDEuMjU1MiAxLjkzMTUgMS40MzEyIDIuNDU0My0xLjMyMzItLjEzNDYtMi4yMjM0LjEyNjgtMi42Nzk3Ljc3OS0uOTkyNiAxLjQxODkuNTQzIDQuMTcyOSAxLjI4MTEgNS40OTY0LjEzNTMuMjQyNi4yNTIyLjQ1MjIuMjg4OS41NDEzLjI0MDMuNTgyNS41NTE1Ljk3MTMuNzc4NyAxLjI1NTIuMDY5Ni4wODcuMTM3Mi4xNzE0LjE4ODUuMjQ1LS40MDA4LjExNTUtMS4xMjA4LjM4MjUtMS4wNTUyIDEuNzE3LS4wMTIzLjE1NjMtLjA0MjMuNDQ2OS0uMDgzNC44MTQ4LS4wNDYxLjIwNzctLjA3MDIuNDYwMy0uMDk5NC43NjYyem0uODkwNS0xLjYyMTFjLS4wNDA1LS44MzE2LjI2OTEtLjkxODUuNTk2Ny0xLjAxMDVhMi44NTY2IDIuODU2NiAwIDAgMCAuMTM1LS4wNDA2IDEuMjAyIDEuMjAyIDAgMCAwIC4xMzQyLjEwM2MuNTcwMy4zNzY1IDEuNTgyMy40MjEzIDMuMDA2OC4xMzQ0LS4yMDE2LjE3NjktLjUxODkuMzk5NC0uOTUzMy42MDExLS40MDk4LjE5MDMtMS4wOTU3LjMzMy0xLjc0NzMuMzYzNi0uNzE5Ny4wMzM2LTEuMDg1OS0uMDgwNy0xLjE3MjEtLjE1MXptLjU2OTUtOS4yNzEyYy0uMDA1OS4zNTA4LS4wNTQyLjY2OTItLjEwNTQgMS4wMDE3LS4wNTUuMzU3Ni0uMTEyLjcyNzQtLjEyNjQgMS4xNzYyLS4wMTQyLjQzNjguMDQwNC44OTA5LjA5MzIgMS4zMzAxLjEwNjYuODg3LjIxNiAxLjgwMDMtLjIwNzUgMi43MDE0YTMuNTI3MiAzLjUyNzIgMCAwIDEtLjE4NzYtLjM4NTZjLS4wNTI3LS4xMjc2LS4xNjY5LS4zMzI2LS4zMjUxLS42MTYyLS42MTU2LTEuMTA0MS0yLjA1NzQtMy42ODk2LTEuMzE5My00Ljc0NDYuMzc5NS0uNTQyNyAxLjM0MDgtLjU2NjEgMi4xNzgxLS40NjN6bS4yMjg0IDcuMDEzN2ExMi4zNzYyIDEyLjM3NjIgMCAwIDAtLjA4NTMtLjEwNzRsLS4wMzU1LS4wNDQ0Yy43MjYyLTEuMTk5NS41ODQyLTIuMzg2Mi40NTc4LTMuNDM4NS0uMDUxOS0uNDMxOC0uMTAwOS0uODM5Ni0uMDg4NS0xLjIyMjYuMDEyOS0uNDA2MS4wNjY2LS43NTQzLjExODUtMS4wOTExLjA2MzktLjQxNS4xMjg4LS44NDQzLjExMDktMS4zNTA1LjAxMzQtLjA1MzEuMDE4OC0uMTE1OC4wMTE4LS4xOTAyLS4wNDU3LS40ODU1LS41OTk5LTEuOTM4LTEuNzI5NC0zLjI1My0uNjA3Ni0uNzA3My0xLjQ4OTYtMS40OTcyLTIuNjg4OS0yLjAzOTUuNTI1MS0uMTA2NiAxLjIzMjgtLjIwMzUgMi4wMjQ0LS4xODU5IDIuMDUxNS4wNDU2IDMuNjc0Ni44MTM1IDQuODI0MiAyLjI4MjRhLjkwOC45MDggMCAwIDEgLjA2NjcuMTAwMmMuNzIzMSAxLjM1NTYtLjI3NjIgNi4yNzUxLTIuOTg2NyAxMC41NDA1em0tOC44MTY2LTYuMTE2MmMtLjAyNS4xNzk0LS4zMDg5LjQyMjUtLjYyMTEuNDIyNWEuNTgyMS41ODIxIDAgMCAxLS4wODA5LS4wMDU2Yy0uMTg3My0uMDI2LS4zNzY1LS4xNDQtLjUwNTktLjMxNTYtLjA0NTgtLjA2MDUtLjEyMDMtLjE3OC0uMTA1NS0uMjg0NC4wMDU1LS4wNDAxLjAyNjEtLjA5ODUuMDkyNS0uMTQ4OC4xMTgyLS4wODk0LjM1MTgtLjEyMjYuNjA5Ni0uMDg2Ny4zMTYzLjA0NDEuNjQyNi4xOTM4LjYxMTMuNDE4NnptNy45MzA1LS40MTE0Yy4wMTExLjA3OTItLjA0OS4yMDEtLjE1MzEuMzEwMi0uMDY4My4wNzE3LS4yMTIuMTk2MS0uNDA3OS4yMjMyYS41NDU2LjU0NTYgMCAwIDEtLjA3NS4wMDUyYy0uMjkzNSAwLS41NDE0LS4yMzQ0LS41NjA3LS4zNzE3LS4wMjQtLjE3NjUuMjY0MS0uMzEwNi41NjExLS4zNTIuMjk3LS4wNDE0LjYxMTEuMDA4OC42MzU2LjE4NTF6Ii8+PC9zdmc+;" vertex="1" parent="c97">
          <mxGeometry x="1340" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c100" value="&lt;b&gt;rls.sql の宣言 ＝ 本番 live の実測（同じ日に bit 一致）&lt;/b&gt; — ポリシー &lt;b&gt;103&lt;/b&gt; 本（TO authenticated 99 / TO anon 3 / 両方 1）／ RLS 有効 &lt;b&gt;53&lt;/b&gt; 表・無効 8 表（Better Auth 管理）／ ポリシー 0 本の &lt;b&gt;deny-all 5 表&lt;/b&gt;（レート制限カウンタ / アップロードバッチ / ヘルプ計測 3。authenticated / anon からは 1 行も見えず書けない）／ public スキーマの SECURITY DEFINER 関数 &lt;b&gt;54&lt;/b&gt; 本（&lt;b&gt;全数が SET search_path を持つ&lt;/b&gt;）&lt;br&gt;命名規約 p_&amp;lt;table&amp;gt;_&amp;lt;action&amp;gt;[_&amp;lt;suffix&amp;gt;] の準拠 &lt;b&gt;103 / 103（違反 0）&lt;/b&gt;・ロール明示（TO authenticated / TO anon）&lt;b&gt;103 / 103（違反 0）&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="20" y="50" width="1420" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c101" value="経路（同一の接続プールから借りる）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="20" y="110" width="320" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c102" value="Postgres ロール" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="340" y="110" width="260" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c103" value="注入するクレーム" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="600" y="110" width="380" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c104" value="評価されるもの（本番コードの出現数）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="980" y="110" width="460" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c105" value="&lt;b&gt;dbForActor(c, fn)&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="20" y="150" width="320" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c106" value="authenticated" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="340" y="150" width="260" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c107" value="sub / user_type / is_system_admin / box_roles" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="600" y="150" width="380" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c108" value="TO authenticated のポリシー（&lt;b&gt;259&lt;/b&gt; 箇所）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="980" y="150" width="460" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c109" value="&lt;b&gt;dbForShareLink(id, fn)&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="20" y="210" width="320" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c110" value="anon" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="340" y="210" width="260" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c111" value="&lt;b&gt;share_link_id のみ&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="600" y="210" width="380" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c112" value="TO anon の 3 ポリシー ＋ 両ロール宛の deny-all 1 本（&lt;b&gt;わずか 6 箇所&lt;/b&gt;・1 ファイル）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="980" y="210" width="460" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c113" value="&lt;b&gt;dbAsSystem(fn)&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="20" y="270" width="320" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c114" value="service_role" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="340" y="270" width="260" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c115" value="なし" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="600" y="270" width="380" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c116" value="RLS を bypass（直呼び &lt;b&gt;167&lt;/b&gt; ＋ batchTx 等のポート経由 85）※ BYPASSRLS は GRANT ではないので明示 GRANT が別に要る" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="980" y="270" width="460" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c117" value="&lt;b&gt;クレームは JWT ではなく JSON を直接渡す（署名しない）&lt;/b&gt; — Postgres 側に検証者が居ない（PostgREST が不在）ので署名は意味を持たない。RLS のヘルパは設定値から JSON を読むだけ。&lt;b&gt;jwt プラグインは鍵基盤と将来の外部トークン用で、RLS のホットパスには関与しない&lt;/b&gt; — 「やらない」を明示して境界を単純に保つ" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="20" y="340" width="1420" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c118" value="&lt;b&gt;クレーム述語ヘルパ 8 本の呼び出し 196 箇所すべてが (select …) でラップされている（素呼び出し 0）&lt;/b&gt; — 初期化プランにキャッシュさせて行ごとの再評価を防ぐ規約が、例外ゼロで機械的に守られている。&lt;br&gt;&lt;b&gt;鶏と卵&lt;/b&gt;（box_roles は RLS 有効な members を読む）は、所有者権限の関数 1 本で 1 往復に畳んで解いた。この関数の EXECUTE は &lt;b&gt;service_role だけ&lt;/b&gt;に開く" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c97">
          <mxGeometry x="20" y="390" width="1420" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c119" value="&lt;b&gt;この層が単独で守れるもの&lt;/b&gt;&lt;br&gt;上の 3 段（インフラ・web・api）をすり抜けた Box 越境。アプリのバグでも越えられない" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#D3ECE9;fontColor=#0E7C75;" vertex="1" parent="c97">
          <mxGeometry x="20" y="440" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c120" value="&lt;b&gt;断り方&lt;/b&gt;&lt;br&gt;&lt;b&gt;0 行&lt;/b&gt; — 拒否ではなく「存在しない」。だから情報が漏れない" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c97">
          <mxGeometry x="740" y="440" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c121" value="層④ ストレージ — 短命な V4 署名 URL しか存在しない" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="c75">
          <mxGeometry x="30" y="1670" width="1460" height="510" as="geometry" />
        </mxCell>
        <mxCell id="c122" value="{{icon:cloud-storage}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNhZWNiZmE7fS5jbHMtMntmaWxsOiM2NjlkZjY7fS5jbHMtM3tmaWxsOiM0Mjg1ZjQ7fS5jbHMtNHtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5JY29uXzI0cHhfQ2xvdWRTdG9yYWdlX0NvbG9yPC90aXRsZT48ZyBkYXRhLW5hbWU9IlByb2R1Y3QgSWNvbnMiPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMiIgeT0iNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjciLz48cmVjdCBjbGFzcz0iY2xzLTIiIHg9IjIwIiB5PSI0IiB3aWR0aD0iMiIgaGVpZ2h0PSI3Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0zIiBwb2ludHM9IjIyIDQgMjAgNCAyMCAxMSAyMiA0Ii8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIyIiB5PSI0IiB3aWR0aD0iMiIgaGVpZ2h0PSI3Ii8+PHJlY3QgY2xhc3M9ImNscy00IiB4PSI2IiB5PSI3IiB3aWR0aD0iNiIgaGVpZ2h0PSIxIi8+PHJlY3QgY2xhc3M9ImNscy00IiB4PSIxNSIgeT0iNiIgd2lkdGg9IjMiIGhlaWdodD0iMyIgcng9IjEuNSIvPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMiIgeT0iMTMiIHdpZHRoPSIyMCIgaGVpZ2h0PSI3Ii8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIyMCIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iMjIgMTMgMjAgMTMgMjAgMjAgMjIgMTMiLz48cmVjdCBjbGFzcz0iY2xzLTIiIHg9IjIiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSI3Ii8+PHJlY3QgY2xhc3M9ImNscy00IiB4PSI2IiB5PSIxNiIgd2lkdGg9IjYiIGhlaWdodD0iMSIvPjxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iMTUiIHk9IjE1IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIiByeD0iMS41Ii8+PC9nPjwvc3ZnPg==;" vertex="1" parent="c121">
          <mxGeometry x="1400" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c123" value="全バケットが&lt;b&gt;均一バケットレベルアクセス + 公開アクセスの完全禁止&lt;/b&gt;。オブジェクトに到達する唯一の方法は署名 URL で、&lt;b&gt;発行するのは api と同一イメージのバッチ Job だけ&lt;/b&gt;（鍵ファイルを持たず実行 SA 自身の signBlob で署名。scanner / sync / thumbnailer は発行しない）。パスを推測しても、URL が無ければ何も起きない" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="20" y="50" width="1420" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c124" value="用途" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="20" y="100" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c125" value="TTL — 用途ごとに違う（既定値を 1 つにしない）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="720" y="100" width="720" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c126" value="アップロード（Resumable）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="20" y="140" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c127" value="&lt;b&gt;短時間&lt;/b&gt;（大きなファイルの再開に耐える長さ）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="720" y="140" width="720" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c128" value="ダウンロード / inline 表示 / 派生の書込" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="20" y="180" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c129" value="&lt;b&gt;短時間&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="720" y="180" width="720" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c130" value="共有リンクのフォルダ ZIP" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="20" y="220" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c131" value="&lt;b&gt;短時間&lt;/b&gt;（大きな ZIP の取得を途中で切らさない）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="720" y="220" width="720" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c132" value="監査エクスポート（画面から都度発行）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="20" y="260" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c133" value="&lt;b&gt;短時間&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="720" y="260" width="720" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c134" value="隔離ファイルの取り出し" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="20" y="300" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c135" value="&lt;b&gt;短時間&lt;/b&gt;（借用トークンの寿命も短く絞る）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="720" y="300" width="720" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c136" value="配信の Content-Type は &lt;b&gt;DB の値を素通しせず正規値を使う&lt;/b&gt; — 登録時の MIME を信じて inline 配信すると、細工したファイルを text/html として開かせられる。アップロードの署名には Content-Type を含めず、代わりに&lt;b&gt;実サイズを署名に束縛&lt;/b&gt;する（x-goog-content-length-range）。拡張子とサイズは api が再検証し、マジックバイトは検査サービスが見る" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="20" y="350" width="1420" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c137" value="&lt;b&gt;★ ワーカーに永続権限を持たせない&lt;/b&gt; — サムネイル生成のワーカーは&lt;b&gt;ストレージの権限を 1 つも持たず、DB にも接続しない&lt;/b&gt;。api が発行する短命 URL だけを受け取って原本を読み派生を書く（capability URL 方式）。権限ではなく&lt;b&gt;期限付きの能力&lt;/b&gt;を渡す設計で、ワーカーが漏れても持ち出せる面が時間で閉じる" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c121">
          <mxGeometry x="20" y="400" width="1420" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c138" value="&lt;b&gt;この層が単独で守れるもの&lt;/b&gt; — オブジェクトパスの推測と URL の使い回し" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#D3ECE9;fontColor=#0E7C75;" vertex="1" parent="c121">
          <mxGeometry x="20" y="450" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c139" value="&lt;b&gt;断り方&lt;/b&gt; — 期限切れ・改竄された署名はストレージ自身が拒否する" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c121">
          <mxGeometry x="740" y="450" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c140" value="Box 認可境界 — 分離の単位は「テナント」ではない" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="1">
          <mxGeometry x="2980" y="790" width="1300" height="2210" as="geometry" />
        </mxCell>
        <mxCell id="c141" value="&lt;b&gt;※ 用語について（この図でいちばん誤解されやすい点）&lt;/b&gt;&lt;br&gt;本プロダクトは&lt;b&gt;単一の組織が運営する 1 つの基盤&lt;/b&gt;で、複数の顧客企業にサービスを切り売りする SaaS ではない。分離すべき単位は「テナント」ではなく &lt;b&gt;Box&lt;/b&gt;（案件・取引・部門共有などの単位）であり、&lt;b&gt;同一のユーザが複数の Box に異なるロールで同時に所属する&lt;/b&gt;。「テナント」という語彙はこの&lt;b&gt;多重所属&lt;/b&gt;を表現できない。&lt;br&gt;そこで本プロダクトは一貫して &lt;b&gt;Box 認可境界 / Box 越境&lt;/b&gt;と呼び、「メンバーは自分が招待された Box しか見えない」を &lt;b&gt;DB・ストレージ・URL のすべてで強制する&lt;/b&gt;。" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#C4925A;strokeWidth=1;fontSize=12;fontColor=#4A4436;align=left;verticalAlign=top;spacing=10;" vertex="1" parent="c140">
          <mxGeometry x="30" y="50" width="1240" height="90" as="geometry" />
        </mxCell>
        <mxCell id="c142" value="{{icon:lock}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9IiMwRTdDNzUiCiAgc3Ryb2tlLXdpZHRoPSIyIgogIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICBzdHJva2UtbGluZWpvaW49InJvdW5kIgo+CiAgPHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjExIiB4PSIzIiB5PSIxMSIgcng9IjIiIHJ5PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDExVjdhNSA1IDAgMCAxIDEwIDB2NCIgLz4KPC9zdmc+Cg==;" vertex="1" parent="c140">
          <mxGeometry x="1240" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c143" value="Box ロール 4 種（権限は累積する）" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c140">
          <mxGeometry x="30" y="170" width="1240" height="330" as="geometry" />
        </mxCell>
        <mxCell id="c144" value="&lt;b&gt;viewer&lt;/b&gt;&lt;br&gt;閲覧・ダウンロード・プレビュー・&lt;b&gt;コメント投稿&lt;/b&gt;&lt;br&gt;（会話への参加は「閲覧のみ」哲学とは別軸と判断した）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c143">
          <mxGeometry x="20" y="40" width="1200" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c145" value="&lt;b&gt;uploader&lt;/b&gt; = viewer +&lt;br&gt;ファイル / フォルダの追加。ただし&lt;b&gt;ファイルは自分がアップロードした分だけ&lt;/b&gt;更新・削除でき、&lt;b&gt;フォルダは作成のみ&lt;/b&gt;（改名と削除は editor 以上）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c143">
          <mxGeometry x="50" y="110" width="1170" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c146" value="&lt;b&gt;editor&lt;/b&gt; = uploader +&lt;br&gt;&lt;b&gt;他人の&lt;/b&gt;ファイル / フォルダの更新・削除、フォルダ階層の変更、ファイル / フォルダの hold とアーカイブ、&lt;b&gt;共有リンクの発行&lt;/b&gt;、&lt;b&gt;ファイルリクエストの発行&lt;/b&gt;（社内外を問わず）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c143">
          <mxGeometry x="80" y="180" width="1140" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c147" value="&lt;b&gt;owner&lt;/b&gt; = editor +&lt;br&gt;Box 設定の変更（可視性・保持期間を含む）・メンバー招待・ロール変更・参加申請の承認 / 却下・Box の無効化 / 再有効化 / 削除・Drive 同期の ON / OFF" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#0E7C75;strokeWidth=1.5;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c143">
          <mxGeometry x="110" y="250" width="1110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c148" value="&lt;b&gt;擬似ロール internal_viewer&lt;/b&gt;&lt;br&gt;可視性 internal_open の Box に対する&lt;b&gt;社内の非メンバー&lt;/b&gt;。メンバー表に行を持たないまま read-only の到達権を得る。&lt;br&gt;アップロード / コメント / 共有リンク発行は &lt;b&gt;UI で非表示にするだけでなく RLS が INSERT・UPDATE・DELETE を拒否&lt;/b&gt;する。アクティビティはメンバー限定で非メンバーには出さない。&lt;br&gt;★&lt;b&gt;監査ログの actor_type にも独立した値を持つ&lt;/b&gt;（6 主体の 1 つ）— 「メンバーではない人の操作」を後から区別できるようにしてある" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#0E7C75;strokeWidth=1.5;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c140">
          <mxGeometry x="30" y="530" width="1240" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c149" value="可視性 3 段階 — 作用するのは「社内の非メンバー」だけ" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c140">
          <mxGeometry x="30" y="640" width="1240" height="290" as="geometry" />
        </mxCell>
        <mxCell id="c150" value="visibility" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c149">
          <mxGeometry x="20" y="40" width="300" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c151" value="検索" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c149">
          <mxGeometry x="320" y="40" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c152" value="メタ" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c149">
          <mxGeometry x="460" y="40" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c153" value="一覧" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c149">
          <mxGeometry x="600" y="40" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c154" value="DL" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c149">
          <mxGeometry x="740" y="40" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c155" value="書込" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c149">
          <mxGeometry x="880" y="40" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c156" value="参加申請" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c149">
          <mxGeometry x="1020" y="40" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c157" value="members（既定）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c149">
          <mxGeometry x="20" y="80" width="300" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c158" value="✗" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c149">
          <mxGeometry x="320" y="80" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c159" value="✗" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c149">
          <mxGeometry x="460" y="80" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c160" value="✗" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c149">
          <mxGeometry x="600" y="80" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c161" value="✗" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c149">
          <mxGeometry x="740" y="80" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c162" value="✗" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c149">
          <mxGeometry x="880" y="80" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c163" value="✗" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c149">
          <mxGeometry x="1020" y="80" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c164" value="internal_searchable" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c149">
          <mxGeometry x="20" y="120" width="300" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c165" value="✓" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#C8EFD9;fontColor=#115A36;" vertex="1" parent="c149">
          <mxGeometry x="320" y="120" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c166" value="✓" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#C8EFD9;fontColor=#115A36;" vertex="1" parent="c149">
          <mxGeometry x="460" y="120" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c167" value="✗" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c149">
          <mxGeometry x="600" y="120" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c168" value="✗" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c149">
          <mxGeometry x="740" y="120" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c169" value="✗" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c149">
          <mxGeometry x="880" y="120" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c170" value="✓" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#C8EFD9;fontColor=#115A36;" vertex="1" parent="c149">
          <mxGeometry x="1020" y="120" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c171" value="internal_open" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c149">
          <mxGeometry x="20" y="160" width="300" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c172" value="✓" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#C8EFD9;fontColor=#115A36;" vertex="1" parent="c149">
          <mxGeometry x="320" y="160" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c173" value="✓" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#C8EFD9;fontColor=#115A36;" vertex="1" parent="c149">
          <mxGeometry x="460" y="160" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c174" value="✓" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#C8EFD9;fontColor=#115A36;" vertex="1" parent="c149">
          <mxGeometry x="600" y="160" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c175" value="✓" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#C8EFD9;fontColor=#115A36;" vertex="1" parent="c149">
          <mxGeometry x="740" y="160" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c176" value="✗" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c149">
          <mxGeometry x="880" y="160" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c177" value="✓" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#C8EFD9;fontColor=#115A36;" vertex="1" parent="c149">
          <mxGeometry x="1020" y="160" width="140" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c178" value="&lt;b&gt;社外ユーザには可視性を問わず「メンバーのみ」&lt;/b&gt;が適用される（この表は社内の非メンバーにだけ効く）。&lt;b&gt;書込は 3 段階すべてで ✗&lt;/b&gt; — 可視性は読める範囲を広げる仕組みで、書ける範囲は増やさない。&lt;br&gt;メンバー一覧の開示粒度も分けてある: 非メンバーの社内ユーザに見えるのは&lt;b&gt;表示名とロールだけ&lt;/b&gt;で、メールアドレス・企業ラベル・最終アクセス日時・招待状態は&lt;b&gt;メンバーだけ&lt;/b&gt;（社内であってもプライバシーに配慮する）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c149">
          <mxGeometry x="20" y="210" width="1200" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c179" value="★ 権限マトリクスの外にある 2 軸述語（共有の SSOT を 1 箇所に置く）" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c140">
          <mxGeometry x="30" y="960" width="1240" height="280" as="geometry" />
        </mxCell>
        <mxCell id="c180" value="&lt;b&gt;既にアカウントのあるユーザを Box に追加できるか&lt;/b&gt;&lt;br&gt;= &lt;b&gt;owner ∨（社内 ∧ editor）&lt;/b&gt;&lt;br&gt;ロール × ユーザ種別の&lt;b&gt;2 軸&lt;/b&gt;なので、ロール単軸の権限マトリクスでは表現できない。社外の editor に開くと「取引先が取引先を登録できる」形になるため開かない。&lt;br&gt;→ マトリクスに無理に押し込めず、&lt;b&gt;共有パッケージの述語 1 本&lt;/b&gt;を単一の真実にして FE と BE が同じ関数を呼ぶ" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c179">
          <mxGeometry x="20" y="40" width="1200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="c181" value="&lt;b&gt;未登録アドレスからアカウントを新規作成する招待ができるか&lt;/b&gt;&lt;br&gt;= &lt;b&gt;owner だけ&lt;/b&gt;（Box メンバーの立場では絶対に広げない不変条項。system_admin の代行は別の層を通る）&lt;br&gt;★理由の連鎖がそのまま設計判断になっている: 事前プロビジョニングの関数は &lt;b&gt;users 行を新規作成する&lt;/b&gt;。ここを editor に開くと社外の担当者が&lt;b&gt;任意のメールアドレスでアカウントを発生させられる&lt;/b&gt;。しかも &lt;b&gt;userType はメールドメインで解決される&lt;/b&gt;ので、社内ドメインのアドレスを入れれば&lt;b&gt;社内アカウントの事前プロビジョニングまで起こせてしまう&lt;/b&gt;。&lt;br&gt;「招待できる」を 1 段緩めることが「社内アカウントを作れる」に化ける — この連鎖が見えているかどうかが分かれ目" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c179">
          <mxGeometry x="20" y="120" width="1200" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c182" value="&lt;b&gt;招待候補を検索できるか&lt;/b&gt; = 上の 1 つ目の&lt;b&gt;別名であることが仕様&lt;/b&gt;（「探せる人 = 追加できる人」を不変条項にする）。&lt;br&gt;スコープの広狭（社内は同席不問 / 社外は同席 Box のみ、社外の広域検索は owner または system_admin に限定）は入口ではなく、&lt;b&gt;所有者権限の検索関数の WHERE 節が SQL で強制&lt;/b&gt;する。全件列挙の経路は Data API を無効化し、この関数だけを露出することで断つ" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c179">
          <mxGeometry x="20" y="210" width="1200" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c183" value="{{icon:shield}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9IiMwRTdDNzUiCiAgc3Ryb2tlLXdpZHRoPSIyIgogIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICBzdHJva2UtbGluZWpvaW49InJvdW5kIgo+CiAgPHBhdGggZD0iTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6IiAvPgo8L3N2Zz4K;" vertex="1" parent="c179">
          <mxGeometry x="1180" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c184" value="system_admin — Box の外にある横断ロール" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c140">
          <mxGeometry x="30" y="1270" width="1240" height="170" as="geometry" />
        </mxCell>
        <mxCell id="c185" value="/admin 配下は&lt;b&gt;三層で守る&lt;/b&gt;: ① web の管理面 layout（Server Component）が非 system_admin に 404 を返す（存在秘匿）② api の requireSystemAdmin（live claims で判定・403 ではなく 404）③ RLS のポリシー（多層防御として残す）。&lt;br&gt;②で弾けるものを③でも弾けるようにしておくのは冗長ではなく、&lt;b&gt;ルータの配線ミスが越境に直結しないための余白&lt;/b&gt;。権限そのものの付与 / 解除は左列の 9 段" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c184">
          <mxGeometry x="20" y="40" width="1200" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c186" value="admin 操作は actor_type = 'system_admin' で監査に残り、&lt;b&gt;重大操作&lt;/b&gt;（CRITICAL_OPERATIONS が単一の真実: MFA リセット / 全セッション失効 / ユーザ削除 / メール変更の代理 / システム管理者権限の付与・解除 / Box の無効化・オーナー強制変更 / 保持期間の変更 …）は&lt;b&gt;さらに理由テキスト（10〜256 字）が必須&lt;/b&gt;。&lt;b&gt;critical 区分は system_admin 全員へメール通知&lt;/b&gt; — 権限を持つ人が増えるほど「誰が何をしたか」が全員に見えていることが効く" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c184">
          <mxGeometry x="20" y="110" width="1200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c187" value="境界は 3 つのレイヤで同時に効いている" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c140">
          <mxGeometry x="30" y="1470" width="1240" height="200" as="geometry" />
        </mxCell>
        <mxCell id="c188" value="&lt;b&gt;DB&lt;/b&gt; — クレームの box_roles × 103 ポリシー。承諾済みメンバーシップだけが主語になる" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c187">
          <mxGeometry x="20" y="40" width="1200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c189" value="&lt;b&gt;ストレージ&lt;/b&gt; — オブジェクトキーは Box の配下に置き、取得は api が出す短命署名 URL 経由だけ" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c187">
          <mxGeometry x="20" y="90" width="1200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c190" value="&lt;b&gt;URL&lt;/b&gt; — Box 越境の参照は &lt;b&gt;403 ではなく 404&lt;/b&gt;。「権限が無い」と答えないことで&lt;b&gt;資源の存在自体を漏らさない&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c187">
          <mxGeometry x="20" y="140" width="1200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c191" value="公開 2 経路 — アカウントを持たない相手に渡す / 受け取る" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="1">
          <mxGeometry x="4360" y="790" width="1380" height="2210" as="geometry" />
        </mxCell>
        <mxCell id="c192" value="&lt;b&gt;2 経路に共通の token 規格&lt;/b&gt;&lt;br&gt;32 バイトの暗号学的乱数 → base64url 43 文字（&lt;b&gt;256 bit のエントロピー&lt;/b&gt;）・UNIQUE 制約つき&lt;br&gt;&lt;b&gt;短縮 URL は提供しない&lt;/b&gt;（推測不可能性を担保するため）／ Cache-Control: no-store, private で CDN にも残さない&lt;br&gt;&lt;b&gt;token それ単体が認可&lt;/b&gt;なので、生成は CSPRNG のみを使う（時刻由来の乱数や UUID は使わない）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#0E7C75;strokeWidth=1.5;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c191">
          <mxGeometry x="30" y="50" width="1320" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c193" value="{{icon:key}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9IiMwRTdDNzUiCiAgc3Ryb2tlLXdpZHRoPSIyIgogIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICBzdHJva2UtbGluZWpvaW49InJvdW5kIgo+CiAgPHBhdGggZD0iTTIuNTg2IDE3LjQxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNGE2LjUgNi41IDAgMSAwLTQtNHoiIC8+CiAgPGNpcmNsZSBjeD0iMTYuNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9IiMwRTdDNzUiIC8+Cjwvc3ZnPgo=;" vertex="1" parent="c191">
          <mxGeometry x="1320" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c194" value="共有リンク（渡す経路）— 判定の順序が UX 判断そのもの" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c191">
          <mxGeometry x="30" y="170" width="1320" height="440" as="geometry" />
        </mxCell>
        <mxCell id="c195" value="順" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="20" y="40" width="120" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c196" value="判定" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="140" y="40" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c197" value="区分" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="760" y="40" width="540" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c198" value="1" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="20" y="80" width="120" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c199" value="token が不明 → not_found" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="140" y="80" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c200" value="状態（認可の前に開示してよい）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#D8D2C2;strokeWidth=1;fontSize=10;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="760" y="80" width="540" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c201" value="2" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="20" y="120" width="120" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c202" value="期限切れ → expired" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="140" y="120" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c203" value="状態" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#D8D2C2;strokeWidth=1;fontSize=10;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="760" y="120" width="540" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c204" value="3" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="20" y="160" width="120" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c205" value="発行者が無効化した → revoked" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="140" y="160" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c206" value="状態" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#D8D2C2;strokeWidth=1;fontSize=10;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="760" y="160" width="540" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c207" value="4" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="20" y="200" width="120" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c208" value="ダウンロード回数の上限に到達 → limit_exceeded" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="140" y="200" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c209" value="状態" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#D8D2C2;strokeWidth=1;fontSize=10;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="760" y="200" width="540" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c210" value="5" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="20" y="240" width="120" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c211" value="パスワード（任意・既定 OFF・scrypt）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="140" y="240" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c212" value="認可" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#D8D2C2;strokeWidth=1;fontSize=10;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="760" y="240" width="540" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c213" value="6" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="20" y="280" width="120" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c214" value="受取人メール OTP（任意・既定 ON・6 桁）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="140" y="280" width="620" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c215" value="認可" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#D8D2C2;strokeWidth=1;fontSize=10;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="760" y="280" width="540" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c216" value="&lt;b&gt;★ 状態系（2〜4）を認可系（5〜6）より先に開示する&lt;/b&gt; — 認可を通さないと理由が分からない設計だと、受取人が&lt;b&gt;合言葉を探し回った末に「期限切れでした」に着地する&lt;/b&gt;。セキュリティ上失っているものは無く（状態は token を知る人にしか返さない）、失われるのは受取人の時間だけなので、順序を入れ替えた" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="20" y="330" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c217" value="パスワードと受取人 OTP は&lt;b&gt;独立に設定でき、両方あるリンクは AND 通過&lt;/b&gt;。通過済みの因子は&lt;b&gt;署名付きのステートレス Cookie&lt;/b&gt;の因子集合（p / o / po）で表し、検証は ①署名（timing-safe）②リンク id の一致 ③期限 ④必要因子 ⊆ 検証済み因子 の順。&lt;b&gt;Cookie 単独では何も開かない&lt;/b&gt;（状態判定が先に立つ）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c194">
          <mxGeometry x="20" y="380" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c218" value="★ ロックの単位を、脅威モデルから逆算して分けた" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c191">
          <mxGeometry x="30" y="650" width="1320" height="200" as="geometry" />
        </mxCell>
        <mxCell id="c219" value="パスワードは&lt;b&gt;共有リンク単位&lt;/b&gt;でロックするが、受取人 OTP は&lt;b&gt;（リンク × 入力メールアドレス）単位&lt;/b&gt;で独立にロックする。&lt;br&gt;&lt;b&gt;理由&lt;/b&gt;: 案内メールの宛先は最大 10 件に届く。素朴に「リンク単位」で揃えると、&lt;b&gt;1 人の誤入力や、URL を知る第三者の故意の失敗操作が、他の宛先まで巻き込んで締め出す&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c218">
          <mxGeometry x="20" y="40" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c220" value="判定は「連続失敗」ではなく &lt;b&gt;「一定の窓の中の失敗件数」&lt;/b&gt;。&lt;b&gt;検証の成功はアクセス台帳に行を残さない&lt;/b&gt;設計なので、そもそも &quot;連続&quot; という概念がデータモデル上表現できない — 脅威モデルとデータモデルの両方を見て決めた帰結" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c218">
          <mxGeometry x="20" y="90" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c221" value="&lt;b&gt;★ 母数は「認可を破ろうとする試行」だけに限る&lt;/b&gt;（全因子を通過した後の成功操作は数えない = 正規の一括ダウンロードで誤って警報を上げない）。&lt;br&gt;★そのうえで&lt;b&gt;レート制限に当たった記録（認証端点のぶんだけ）も母数に含める&lt;/b&gt; — 含めないと検知が飽和して成立しない。ロックが立つと以降は 429 で返るため&lt;b&gt;失敗そのものの行が積まれなくなる&lt;/b&gt;という、2 つの機構の相互作用を織り込んだ" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c218">
          <mxGeometry x="20" y="140" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c222" value="★ ファイルリクエスト（受け取る経路）— パスワードを「理由を明示して入れない」" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c191">
          <mxGeometry x="30" y="890" width="1320" height="300" as="geometry" />
        </mxCell>
        <mxCell id="c223" value="「すべてのアップロード者は認証済み」という原則を、&lt;b&gt;OTP 検証済みのメールアドレスで代替する唯一の経路&lt;/b&gt;。担保は 3 つ — ① 提出者メールの指定が&lt;b&gt;必須&lt;/b&gt; ② 提出時の 6 桁 OTP 検証が&lt;b&gt;必須・常時&lt;/b&gt; ③ 全提出ファイルは&lt;b&gt;ウイルス検査で clean になってからしか Box に現れない&lt;/b&gt;。提出者に Box のデータを読ませないので、&lt;b&gt;この面は anon ロールに一度も落ちない&lt;/b&gt;（共有リンクとの最大の構造差・下のサンドイッチ構成）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c222">
          <mxGeometry x="20" y="40" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c224" value="&lt;b&gt;共有リンクと対をなす経路なのに、パスワード保護を意図的に持たない。&lt;/b&gt;根拠を 4 段で書き切って不採用にしている:&lt;br&gt;① 共有リンクは本人確認が任意なので「本人確認なし + パスワードあり」が正規に作れるが、&lt;b&gt;ファイルリクエストは提出者メールが必須で、本人確認を外す構成がそもそも存在しない&lt;/b&gt;&lt;br&gt;② その上にパスワードを重ねて効くのは「&lt;b&gt;提出者の受信箱が乗っ取られたときのなりすまし提出&lt;/b&gt;」だけ&lt;br&gt;③ それはウイルス検査・発行者への提出通知・提出者本人への受付確認メールで&lt;b&gt;多層に検知できる&lt;/b&gt;&lt;br&gt;④ 一方で提出者に二重入力を、発行者に&lt;b&gt;全件へのパスワード伝達作業&lt;/b&gt;を課す&lt;br&gt;→ 多層防御を「足し算」ではなく&lt;b&gt;どこで何を担保しているかの配置問題&lt;/b&gt;として扱った例" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c222">
          <mxGeometry x="20" y="90" width="1280" height="90" as="geometry" />
        </mxCell>
        <mxCell id="c225" value="取込ファイルの &lt;b&gt;uploaded_by は発行者&lt;/b&gt;（提出者はアカウントを持たないため）。検証済みの提出者メールは&lt;b&gt;アクセス台帳と監査ログ&lt;/b&gt;に残し、ファイル詳細に「ファイルリクエスト経由（提出者メール）」として表示する" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c222">
          <mxGeometry x="20" y="190" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c226" value="アクセス台帳の outcome には&lt;b&gt;書き込み経路が消滅した死蔵値&lt;/b&gt;が 1 つ残っている（PostgreSQL は enum の値を DROP できず、型を作り直すと全行の書き換えと索引の再構築を伴うため残置し、&lt;b&gt;新しい書き込み経路を作らない&lt;/b&gt;と決めてある）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c222">
          <mxGeometry x="20" y="240" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c227" value="★ 未認証ロール anon の権能 — 読取は 3 表 19 列、書込は SECURITY DEFINER 1 本" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c191">
          <mxGeometry x="30" y="1230" width="1320" height="630" as="geometry" />
        </mxCell>
        <mxCell id="c228" value="&lt;b&gt;未認証端点 29 本のうち、Postgres の anon ロールに落ちるのは共有リンク受取面の dbForShareLink だけ（呼び出しは 1 ファイルの 6 箇所・読取専用の 3 段目）。&lt;/b&gt;&lt;br&gt;anon が持つ権能は下の 2 つで尽きる — &lt;b&gt;テーブル単位の GRANT は 1 つも無い&lt;/b&gt;（rls.sql の宣言と本番 live の実測が一致）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#0E7C75;strokeWidth=1.5;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="20" y="40" width="1280" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c229" value="表" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="20" y="110" width="340" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c230" value="読める列（これ以外は列レベルで不可視）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="360" y="110" width="940" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c231" value="share_links（6 列）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="20" y="150" width="340" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c232" value="id · box_id · target_type · target_id · revoked_at · expires_at&lt;br&gt;→ &lt;b&gt;token · password_hash · recipient_emails は読めない&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="360" y="150" width="940" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c233" value="files（7 列）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="20" y="210" width="340" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c234" value="id · box_id · folder_id · ancestor_folder_ids · deleted_at · name · current_version_id" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="360" y="210" width="940" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c235" value="file_versions（6 列）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="20" y="270" width="340" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c236" value="id · file_id · size · category · gcs_object · scan_status　→ &lt;b&gt;sha256 は読めない&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="360" y="270" width="940" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c237" value="anon（未認証の受取経路）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#D8D2C2;strokeWidth=1;fontSize=10;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="20" y="350" width="400" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c238" value="テーブルへの直接の書込（INSERT / UPDATE / DELETE）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;align=center;verticalAlign=middle;fillColor=#FFDADA;fontColor=#850000;" vertex="1" parent="c227">
          <mxGeometry x="620" y="350" width="680" height="50" as="geometry" />
        </mxCell>
        <mxCell id="c239" value="&lt;b&gt;書込の権能は SECURITY DEFINER 関数 1 本の EXECUTE だけ&lt;/b&gt;（touch_last_accessed_via_share_link・&lt;b&gt;anon 宛の GRANT はこの 1 文のみ&lt;/b&gt;）。実際に変わるのは files.last_accessed_at の 1 列（SET 句は 2 列だが anon では last_accessed_by が COALESCE で前値のまま）。主語はクレームのリンク id — &lt;b&gt;NULL なら 0 行&lt;/b&gt;（fail-closed）。さらに&lt;b&gt;リンクの生存&lt;/b&gt;と&lt;b&gt;到達性&lt;/b&gt;の 2 述語で対象を絞る" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="20" y="420" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c240" value="&lt;b&gt;残りの書込はすべて service_role が端点の認可ゲートの後で実行する&lt;/b&gt; — 未認証端点 29 本のうち業務表への書込が起きるのは 19 本（OTP の発行 / 検証・アクセス台帳・監査・イベント発行・提出ファイルの取込・購読解除・Webhook。レート制限カウンタ表への upsert は数えない）で、anon は 1 バイトも書かない。書込先が deny-all 表（ポリシー 0）だけに閉じる端点は 1 本（ヘルプ計測）で、他は通常表にも及ぶ — だから「経路の数」ではなく「権能」で読む" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="20" y="470" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c241" value="&lt;b&gt;★ 列 GRANT の落とし穴&lt;/b&gt;: PostgreSQL は&lt;b&gt;テーブル権限と列権限を OR で合成&lt;/b&gt;して検査する。既存のテーブル SELECT が残っている限り、列 GRANT を足しても&lt;b&gt;完全な no-op&lt;/b&gt; になる（全列読めたまま）。だから REVOKE → 列 GRANT の 2 行が対で必要。&lt;br&gt;なお folders の anon SELECT は&lt;b&gt;開けていない&lt;/b&gt;（一覧や ZIP の構成は system 側で組み立てる）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c227">
          <mxGeometry x="20" y="520" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c242" value="{{icon:shield}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9IiMwRTdDNzUiCiAgc3Ryb2tlLXdpZHRoPSIyIgogIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICBzdHJva2UtbGluZWpvaW49InJvdW5kIgo+CiAgPHBhdGggZD0iTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6IiAvPgo8L3N2Zz4K;" vertex="1" parent="c227">
          <mxGeometry x="1260" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c243" value="サンドイッチ構成 — 読む所と書く所を別のロールに分ける" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c191">
          <mxGeometry x="30" y="1900" width="1320" height="250" as="geometry" />
        </mxCell>
        <mxCell id="c244" value="&lt;b&gt;step ① system&lt;/b&gt; — token でリンクを検索する。&lt;b&gt;失効・期限を WHERE で絞らず「読んでから判定」&lt;/b&gt;する（結果を台帳の outcome として残すため）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c243">
          <mxGeometry x="20" y="40" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c245" value="&lt;b&gt;step ② system&lt;/b&gt; — 1 トランザクションで副作用（アクセス台帳・OTP 発行 / 検証・監査・総当たり検知）を原子化する" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c243">
          <mxGeometry x="20" y="90" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c246" value="&lt;b&gt;step ③ anon&lt;/b&gt; — ここで初めて anon ロールに落とし、&lt;b&gt;読取だけ&lt;/b&gt;を行う。ファイルリクエスト面は anon に一度も落ちない（ESLint が経路を静的に固定: 共有リンク面 = dbForShareLink / dbAsSystem、ファイルリクエスト面 = dbAsSystem のみ）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c243">
          <mxGeometry x="20" y="140" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c247" value="&lt;b&gt;★ 書込を anon に開かない理由&lt;/b&gt;: 実行経路の無い権限は攻撃面にしかならない。たとえば OTP の失敗カウンタを書き換えられれば&lt;b&gt;ロックそのものが無効化される&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c243">
          <mxGeometry x="20" y="190" width="1280" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c248" value="監査ログの完整性 — 「消せない」を権限の不在で作る" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="1">
          <mxGeometry x="60" y="3080" width="1500" height="630" as="geometry" />
        </mxCell>
        <mxCell id="c249" value="&lt;b&gt;★ ポリシーは 2 本だけ&lt;/b&gt; — p_audit_logs_insert（INSERT）と p_audit_logs_select（SELECT）。&lt;br&gt;&lt;b&gt;UPDATE と DELETE のポリシーは存在しない&lt;/b&gt;。「更新・削除を禁止する」のではなく&lt;b&gt;許可を書かない&lt;/b&gt;ことで追記専用にしている（RLS は許可の列挙なので、書かれていない操作は実行できない）。加えて権限側でも REVOKE UPDATE, DELETE, TRUNCATE を明示 — RLS だけだと 0 行で黙り、検証時に気づきにくいため" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#0E7C75;strokeWidth=1.5;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c248">
          <mxGeometry x="30" y="50" width="1440" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c250" value="{{icon:shield}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9IiMwRTdDNzUiCiAgc3Ryb2tlLXdpZHRoPSIyIgogIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICBzdHJva2UtbGluZWpvaW49InJvdW5kIgo+CiAgPHBhdGggZD0iTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6IiAvPgo8L3N2Zz4K;" vertex="1" parent="c248">
          <mxGeometry x="1440" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c251" value="書込方式は&lt;b&gt;ポリシー方式&lt;/b&gt;（所有者権限の書込関数を作る案は不採用 — 関数にすると「関数を呼べる人＝書ける人」になり、行の主語がアプリ側に移る）。authenticated からの書込は&lt;b&gt;まとめ INSERT が必須&lt;/b&gt;（値を返す INSERT は SELECT ポリシーに弾かれる）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c248">
          <mxGeometry x="30" y="170" width="1440" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c252" value="主キーは &lt;b&gt;(occurred_at, id) の複合&lt;/b&gt;。月次レンジパーティション（本番の子パーティション 14・既定パーティションを含む）に載せるため時刻を先頭に置く（単一の連番主キーではパーティションを切れない）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c248">
          <mxGeometry x="30" y="240" width="1440" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c253" value="&lt;b&gt;「誰が」を 6 主体で型付けする&lt;/b&gt; — user / system_admin / &lt;b&gt;internal_viewer&lt;/b&gt; / share_link / file_request / system。&lt;br&gt;そして actor を指す 3 列（ユーザ id・共有リンク id・ファイルリクエスト id）の&lt;b&gt;組み合わせを CHECK 制約の 4 分岐で強制&lt;/b&gt;する。「共有リンク経由なのにユーザ id が入っている」行は&lt;b&gt;DB が受け付けない&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c248">
          <mxGeometry x="30" y="310" width="1440" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c254" value="action は「{資源}.{動作}」の snake_case で、&lt;b&gt;184 件の as const が単一の真実&lt;/b&gt;。機械検査（単体テストの grep gate）が文字列リテラルの直書きを止めるので、&lt;b&gt;新規は SSOT に追記してからしか実装できない&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c248">
          <mxGeometry x="30" y="380" width="1440" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c255" value="DB には 2 年分を必ず残す（25 ヶ月を超えたパーティションを&lt;b&gt;切り離してオブジェクトストレージへ退避&lt;/b&gt;）。退避物は一定期間の後に purge — バケットの Lifecycle ではなく月次の worker が object と台帳行を対で消し、監査に 1 行残す。DB の大きさと監査の保存期間を切り離す" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c248">
          <mxGeometry x="30" y="450" width="1440" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c256" value="&lt;b&gt;責務の分離&lt;/b&gt;: 共有リンクのパスワード / OTP の失敗は&lt;b&gt;監査に書かず&lt;/b&gt;アクセス台帳が持つ（業務イベントと試行ログを混ぜない）。逆に&lt;b&gt;token が不明なケースだけは台帳に書けない&lt;/b&gt;（存在しない行への外部キーが張れない）ので監査側に残す" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c248">
          <mxGeometry x="30" y="520" width="1440" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c257" value="隔離の関門 — 「削除できるが読めない」" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="1">
          <mxGeometry x="1640" y="3080" width="1260" height="630" as="geometry" />
        </mxCell>
        <mxCell id="c258" value="&lt;b&gt;★ 隔離バケットに対する api / バッチの権限は「delete 1 つだけのカスタムロール」&lt;/b&gt;。恒久削除と検査用ファイルの後始末に必要な最小限で、&lt;b&gt;read は開けていない&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#0E7C75;strokeWidth=1.5;fontSize=13;fontColor=#0A2828;align=center;verticalAlign=middle;" vertex="1" parent="c257">
          <mxGeometry x="30" y="50" width="1200" height="80" as="geometry" />
        </mxCell>
        <mxCell id="c259" value="{{icon:lock}}" style="shape=image;html=1;imageAspect=1;aspect=fixed;noLabel=1;image=data:image/svg+xml,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0ibm9uZSIKICBzdHJva2U9IiMwRTdDNzUiCiAgc3Ryb2tlLXdpZHRoPSIyIgogIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIKICBzdHJva2UtbGluZWpvaW49InJvdW5kIgo+CiAgPHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjExIiB4PSIzIiB5PSIxMSIgcng9IjIiIHJ5PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDExVjdhNSA1IDAgMCAxIDEwIDB2NCIgLz4KPC9zdmc+Cg==;" vertex="1" parent="c257">
          <mxGeometry x="1200" y="10" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c260" value="バケットは&lt;b&gt;検査前 / 検査済み / 隔離&lt;/b&gt;の 3 つに分離し、検査サービスが判定に応じて&lt;b&gt;バケット間で書き換える&lt;/b&gt;。名前だけの分離ではなく、&lt;b&gt;バケット単位の IAM が裏打ちする&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c257">
          <mxGeometry x="30" y="180" width="1200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c261" value="取り出しは system_admin の操作のときだけ成立する。api が&lt;b&gt;隔離読取専用のサービスアカウントを借用（impersonate）&lt;/b&gt;し、その ID で &lt;b&gt;短時間だけ有効な&lt;/b&gt;署名 URL を発行する（借用トークンの寿命も短く絞る）。&lt;b&gt;借用の許可を持つのは api ただ 1 つ&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c257">
          <mxGeometry x="30" y="260" width="1200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c262" value="&lt;b&gt;実装がその設計の形をしている&lt;/b&gt; — 同じファイルの中に&lt;b&gt;署名用クライアント（借用あり）と削除用クライアント（借用なし・素の実行 ID）が別々に存在する&lt;/b&gt;。読みたければ借用を通るしかない" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c257">
          <mxGeometry x="30" y="340" width="1200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c263" value="取り出しは prepare / execute / commit の 3 段（&lt;b&gt;外部 I/O をトランザクションの外に出す&lt;/b&gt;）。監査 + 取り出し記録 + 通知イベントは後段の 1 トランザクションで原子化する" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c257">
          <mxGeometry x="30" y="420" width="1200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c264" value="そもそも受け入れない形も併用する: &lt;b&gt;拒否拡張子は既定 30 種の 2 層&lt;/b&gt; = 不変の床 16（実行ファイル系。設定で外せず、TS の定数から検査サービスの Go 実装へ codegen される）＋ 既定 ON で管理者が理由つきの重大操作でだけ OFF にできる 14（マクロ入り Office 9 ＋ 旧 Office のテンプレート / アドイン 5。doc / xls / ppt は許可）。後者 14 種は&lt;b&gt;専用のエラー文言&lt;/b&gt;で返し、利用者が理由を取り違えないようにする" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c257">
          <mxGeometry x="30" y="500" width="1200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c265" value="入力検証と OWASP — 外周のレイヤ" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="1">
          <mxGeometry x="2980" y="3080" width="1580" height="630" as="geometry" />
        </mxCell>
        <mxCell id="c266" value="リスク" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="50" width="340" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c267" value="対策（as-built）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="370" y="50" width="1180" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c268" value="SQL インジェクション" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="90" width="340" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c269" value="ORM のパラメタライズド。生 SQL は Gateway 層に閉じ込め、&lt;b&gt;ルータ / presentation からの直発行を ESLint が禁止&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="370" y="90" width="1180" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c270" value="XSS" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="130" width="340" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c271" value="React の自動エスケープ + Markdown は &lt;b&gt;rehype-sanitize の明示スキーマ&lt;/b&gt;を通す（生 HTML 挿入はモジュール定数の静的文字列だけで、利用者入力は 1 つも通らない）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="370" y="130" width="1180" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c272" value="CSRF" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="170" width="340" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c273" value="許可オリジンの明示 + Origin チェック" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="370" y="170" width="1180" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c274" value="ファイル型の偽装" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="210" width="340" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c275" value="クライアントで先に見た拡張子・サイズを api が再検証し、マジックバイトは検査サービスが読み、実サイズは署名 URL に束縛する。配信時の Content-Type は正規値" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="370" y="210" width="1180" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c276" value="Office マクロ" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="250" width="340" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c277" value="拡張子で拒否（専用文言）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="370" y="250" width="1180" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c278" value="IDOR" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="290" width="340" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c279" value="RLS + アプリ層の検査 + &lt;b&gt;存在秘匿の 404&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="370" y="290" width="1180" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c280" value="token の総当たり" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="330" width="340" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c281" value="32 バイト token + 端点別のレート制限 + 一定の窓の中の失敗件数によるロック" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="370" y="330" width="1180" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c282" value="OTP の総当たり" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="370" width="340" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c283" value="コード単位の誤入力上限（超過でそのコードを失効 = 再発行が必要）+ IP 単位のレート制限" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="370" y="370" width="1180" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c284" value="&lt;b&gt;CSP は 12 ディレクティブ&lt;/b&gt;。default-src 'self' / object-src 'none' / base-uri 'self' / frame-ancestors 'self' を土台に、&lt;b&gt;用途ごとに必要な外部オリジンだけを開ける&lt;/b&gt;（署名 URL の PUT と Range 取得・PDF ワーカー・印刷用 iframe・Google のドキュメントビューア・Google 由来のアバター・ヘルプの埋め込み動画）。純関数 1 本で組み立て、開発時だけ差分を足す" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="430" width="1520" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c285" value="&lt;b&gt;★ script-src の 'wasm-unsafe-eval' は「消すと静かに壊れる」設定&lt;/b&gt;&lt;br&gt;これを落とすとブラウザが WebAssembly のコンパイルを拒否し、アップロード時に申告用の sha256 を算定する Worker が落ちる。算定は&lt;b&gt;失敗しても通す（fail-open）&lt;/b&gt;実装なので&lt;b&gt;画面には何も出ず、整合性の検証チェーンだけが黙って無効化される&lt;/b&gt;。しかも開発環境では別の許可（React Refresh 用）が WebAssembly も通してしまうため&lt;b&gt;ローカルでは再現しない&lt;/b&gt;。&lt;br&gt;→ こういう設定は「動いているから正しい」が成り立たないので、&lt;b&gt;理由をコードのコメントに残して消せなくしてある&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="480" width="1520" height="70" as="geometry" />
        </mxCell>
        <mxCell id="c286" value="script-src の 'unsafe-inline' はフレームワークのインライン起動スクリプトのための&lt;b&gt;明示的な妥協&lt;/b&gt;（nonce は静的シェルの事前生成と両立しない）。妥協であることを記録に残し、代替手段が使えるようになったときに外せるようにしている" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c265">
          <mxGeometry x="30" y="560" width="1520" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c287" value="凡例" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#EDEFEA;strokeColor=#0E7C75;strokeWidth=1.5;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontSize=17;fontStyle=1;fontColor=#0E7C75;container=1;collapsible=0;" vertex="1" parent="1">
          <mxGeometry x="4640" y="3080" width="1100" height="630" as="geometry" />
        </mxCell>
        <mxCell id="c288" value="&lt;b&gt;太い実線&lt;/b&gt; — 1 リクエストの通り道（本図の背骨）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c287">
          <mxGeometry x="30" y="50" width="1040" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c289" value="&lt;b&gt;実線&lt;/b&gt; — 同期の呼び出し（セッションとクレームの受け渡し・記帳）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c287">
          <mxGeometry x="30" y="100" width="1040" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c290" value="&lt;b&gt;破線&lt;/b&gt; — 非同期（検査結果による隔離バケットへの移送）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c287">
          <mxGeometry x="30" y="150" width="1040" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c291" value="&lt;b&gt;赤い × の線&lt;/b&gt; — 設計で封鎖された経路" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c287">
          <mxGeometry x="30" y="200" width="1040" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c292" value="&lt;b&gt;盾&lt;/b&gt; = 機械的な強制・検査　&lt;b&gt;鍵&lt;/b&gt; = 認証・認可のしくみ　&lt;b&gt;錠&lt;/b&gt; = 隔離と境界" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c287">
          <mxGeometry x="30" y="250" width="1040" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c293" value="&lt;b&gt;淡い藍のチップ&lt;/b&gt; = その層が単独で守れるもの　&lt;b&gt;赤のチップ&lt;/b&gt; = 断るもの ・ その層の断り方" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c287">
          <mxGeometry x="30" y="300" width="1040" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c294" value="&lt;b&gt;緑の ✓ / 赤の ✗&lt;/b&gt; = 可否（可視性マトリクス）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c287">
          <mxGeometry x="30" y="350" width="1040" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c295" value="&lt;b&gt;アイコン&lt;/b&gt; = 公式の素材は原色のまま ・ 単色の素材（Simple Icons）は墨 ・ 汎用の記号は藍" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c287">
          <mxGeometry x="30" y="400" width="1040" height="40" as="geometry" />
        </mxCell>
        <mxCell id="c296" value="&lt;b&gt;※ しきい値の実数は本図に載せていない。&lt;/b&gt;レート制限の上限値・総当たり検知の件数・OTP の試行上限・ロックの継続時間は、&lt;b&gt;機構名と単位設計だけ&lt;/b&gt;を示している。&lt;br&gt;一方で token の長さ（32 バイト）と OTP の桁数（6 桁）は&lt;b&gt;推測困難性の説明に必要なので載せている&lt;/b&gt; — 公開してよい仕様と、公開すると攻撃の下調べに使える運用値を分けて扱う。数値はすべて as-built 2026-09-19 時点のコードの宣言と本番 DB の読み取り専用の実測。" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#C4925A;strokeWidth=1;fontSize=12;fontColor=#4A4436;align=left;verticalAlign=top;spacing=10;" vertex="1" parent="c287">
          <mxGeometry x="30" y="530" width="1040" height="70" as="geometry" />
        </mxCell>
        <mxCell id="c297" value="" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#0A2828;strokeColor=none;fontSize=13;fontColor=#C8E0DC;align=left;verticalAlign=middle;spacingLeft=12;" vertex="1" parent="1">
          <mxGeometry x="60" y="3770" width="5680" height="120" as="geometry" />
        </mxCell>
        <mxCell id="c298" value="4 層は同じことを 4 回やらない — &lt;b&gt;守るものも断り方も層ごとに違う&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c297">
          <mxGeometry x="280" y="30" width="1040" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c299" value="分離の単位は&lt;b&gt;テナントではなく Box&lt;/b&gt;（同一ユーザが複数 Box に多重所属する）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c297">
          <mxGeometry x="1340" y="30" width="1040" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c300" value="&lt;b&gt;未認証面には権能が無い&lt;/b&gt; — 端点 29 本に対し anon が持つのは 3 表 19 列の読取と DEFINER 1 本の書込だけ" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c297">
          <mxGeometry x="2400" y="30" width="1040" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c301" value="&lt;b&gt;ロックの単位を脅威モデルから逆算&lt;/b&gt;（リンク単位とアドレス単位を分ける）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c297">
          <mxGeometry x="3460" y="30" width="1040" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c302" value="&lt;b&gt;足さない判断&lt;/b&gt;も 4 段の根拠で書き切る" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c297">
          <mxGeometry x="4520" y="30" width="1040" height="60" as="geometry" />
        </mxCell>
        <mxCell id="c303" value="HTTPS リクエスト" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#0E7C75;strokeWidth=3;endArrow=block;endFill=1;fontSize=11;fontColor=#0A2828;labelBackgroundColor=#F6F4EE;exitX=0.554545;exitY=1;exitDx=0;exitDy=0;entryX=0.890411;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="c6" target="c77">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="700" y="750" />
              <mxPoint x="2650" y="750" />
            </Array>
          <mxPoint as="offset" x="-40" y="0"/></mxGeometry>
        </mxCell>
        <mxCell id="c304" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#0E7C75;strokeWidth=3;endArrow=block;endFill=1;fontSize=11;fontColor=#0A2828;labelBackgroundColor=#F6F4EE;exitX=0.890411;exitY=1;exitDx=0;exitDy=0;entryX=0.890411;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="c77" target="c84">
          <mxGeometry relative="1" as="geometry">
          </mxGeometry>
        </mxCell>
        <mxCell id="c305" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#0E7C75;strokeWidth=3;endArrow=block;endFill=1;fontSize=11;fontColor=#0A2828;labelBackgroundColor=#F6F4EE;exitX=0.890411;exitY=1;exitDx=0;exitDy=0;entryX=0.890411;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="c84" target="c90">
          <mxGeometry relative="1" as="geometry">
          </mxGeometry>
        </mxCell>
        <mxCell id="c306" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#0E7C75;strokeWidth=3;endArrow=block;endFill=1;fontSize=11;fontColor=#0A2828;labelBackgroundColor=#F6F4EE;exitX=0.890411;exitY=1;exitDx=0;exitDy=0;entryX=0.890411;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="c90" target="c97">
          <mxGeometry relative="1" as="geometry">
          </mxGeometry>
        </mxCell>
        <mxCell id="c307" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#0E7C75;strokeWidth=3;endArrow=block;endFill=1;fontSize=11;fontColor=#0A2828;labelBackgroundColor=#F6F4EE;exitX=0.890411;exitY=1;exitDx=0;exitDy=0;entryX=0.890411;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="c97" target="c121">
          <mxGeometry relative="1" as="geometry">
          </mxGeometry>
        </mxCell>
        <mxCell id="c308" value="セッション" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#0E7C75;strokeWidth=2;endArrow=block;endFill=1;fontSize=11;fontColor=#0A2828;labelBackgroundColor=#F6F4EE;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.121212;entryDx=0;entryDy=0;" edge="1" parent="1" source="c53" target="c90">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1280" y="1270" />
              <mxPoint x="1280" y="1590" />
            </Array>
          <mxPoint as="offset" x="0" y="0"/></mxGeometry>
        </mxCell>
        <mxCell id="c309" value="box_roles クレーム" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#0E7C75;strokeWidth=2;endArrow=block;endFill=1;fontSize=11;fontColor=#0A2828;labelBackgroundColor=#F6F4EE;exitX=1;exitY=0.363636;exitDx=0;exitDy=0;entryX=0;entryY=0.39819;entryDx=0;entryDy=0;" edge="1" parent="1" source="c90" target="c140">
          <mxGeometry relative="1" as="geometry">
          <mxPoint as="offset" x="-40" y="-10"/></mxGeometry>
        </mxCell>
        <mxCell id="c310" value="同一トランザクションで記帳" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#0E7C75;strokeWidth=2;endArrow=block;endFill=1;fontSize=11;fontColor=#0A2828;labelBackgroundColor=#F6F4EE;exitX=1;exitY=0.606061;exitDx=0;exitDy=0;entryX=0.466667;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="c90" target="c248">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="2850" y="1750" />
              <mxPoint x="2850" y="3030" />
              <mxPoint x="760" y="3030" />
            </Array>
          <mxPoint as="offset" x="-640" y="0"/></mxGeometry>
        </mxCell>
        <mxCell id="c311" value="検査結果でバケット間を移送" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#0E7C75;strokeWidth=2;endArrow=block;endFill=1;fontSize=11;fontColor=#0A2828;labelBackgroundColor=#F6F4EE;dashed=1;dashPattern=8 4;exitX=1;exitY=0.156863;exitDx=0;exitDy=0;entryX=0.444444;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="c121" target="c257">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="2880" y="2540" />
              <mxPoint x="2880" y="3050" />
              <mxPoint x="2200" y="3050" />
            </Array>
          <mxPoint as="offset" x="-310" y="0"/></mxGeometry>
        </mxCell>
        <mxCell id="c312" value="×" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#850000;strokeWidth=2;dashed=1;dashPattern=4 4;endArrow=cross;endFill=0;fontSize=12;fontStyle=1;fontColor=#850000;labelBackgroundColor=#F6F4EE;exitX=1;exitY=0.4;exitDx=0;exitDy=0;entryX=0;entryY=0.4;entryDx=0;entryDy=0;" edge="1" parent="1" source="c46" target="c47">
          <mxGeometry relative="1" as="geometry">
          </mxGeometry>
        </mxCell>
        <mxCell id="c313" value="×" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#850000;strokeWidth=2;dashed=1;dashPattern=4 4;endArrow=cross;endFill=0;fontSize=12;fontStyle=1;fontColor=#850000;labelBackgroundColor=#F6F4EE;exitX=1;exitY=0.4;exitDx=0;exitDy=0;entryX=0;entryY=0.4;entryDx=0;entryDy=0;" edge="1" parent="1" source="c68" target="c69">
          <mxGeometry relative="1" as="geometry">
          </mxGeometry>
        </mxCell>
        <mxCell id="c314" value="×" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#850000;strokeWidth=2;dashed=1;dashPattern=4 4;endArrow=cross;endFill=0;fontSize=12;fontStyle=1;fontColor=#850000;labelBackgroundColor=#F6F4EE;exitX=1;exitY=0.4;exitDx=0;exitDy=0;entryX=0;entryY=0.4;entryDx=0;entryDy=0;" edge="1" parent="1" source="c237" target="c238">
          <mxGeometry relative="1" as="geometry">
          </mxGeometry>
        </mxCell>
      
        <mxCell id="c315" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgOTk1IDM4NSIgaGVpZ2h0PSIzODUiIHdpZHRoPSI5OTUiPgo8cGF0aCBmaWxsPSIjMDYxODFBIiBkPSJNNjYxIDYyLjhDNjU4Ljk3MyA2My4xMiA2NTcuOTYgNjQuMDI2NyA2NTcuOTYgNjUuNTJMNjU4LjI4IDY2LjhDNjYxLjE2IDc0LjM3MzMgNjY1LjI2NyA4MS4zNiA2NzAuNiA4Ny43NkM2NzYuMDQgOTQuMDUzMyA2ODIuMTczIDk5LjE3MzMgNjg5IDEwMy4xMkM2ODkuNzQ3IDEwMy41NDcgNjkwLjMzMyAxMDMuOTczIDY5MC43NiAxMDQuNEM2OTEuMTg3IDEwNC43MiA2OTEuNCAxMDUuMDQgNjkxLjQgMTA1LjM2QzY5MS40IDEwNiA2OTAuNiAxMDYuOCA2ODkgMTA3Ljc2QzY4Ni4zMzMgMTA5LjI1MyA2ODMuODggMTExLjIyNyA2ODEuNjQgMTEzLjY4QzY3OS41MDcgMTE2LjEzMyA2NzcuNzQ3IDExOC44IDY3Ni4zNiAxMjEuNjhDNjc1LjkzMyAxMjIuOTYgNjc1LjI0IDEyMy42IDY3NC4yOCAxMjMuNkM2NzMuNDI3IDEyMy42IDY3Mi43MzMgMTIzLjE3MyA2NzIuMiAxMjIuMzJDNjYyLjkyIDEwOS40MTMgNjU2Ljc4NyA5MC41MzMzIDY1My44IDY1LjY4QzY1My41ODcgNjMuNTQ2NyA2NTIuNDEzIDYyLjQ4IDY1MC4yOCA2Mi40OEg2NDQuODRDNjQwLjQ2NyA2Mi42OTMzIDYzNi4zMDcgNjMuMjI2NyA2MzIuMzYgNjQuMDhMNjMxLjQgNjQuMjRDNjI5LjkwNyA2NC4yNCA2MjguNzg3IDYzLjQ5MzMgNjI4LjA0IDYyTDYyNy41NiA2MC44OEM2MjcuMjQgNjAuMjQgNjI3LjA4IDU5LjY1MzMgNjI3LjA4IDU5LjEyQzYyNy4wOCA1Ny42MjY3IDYyOC4wOTMgNTYuOTg2NyA2MzAuMTIgNTcuMkM2MzIuNjggNTcuNDEzMyA2MzYuNjI3IDU3LjYyNjcgNjQxLjk2IDU3Ljg0SDY0Ny4wOEM2NDkgNTcuODQgNjUwLjMzMyA1Ny4wNCA2NTEuMDggNTUuNDRMNjUzLjQ4IDUxLjI4QzY1NC4xMiA1MC4xMDY3IDY1NC45NzMgNDkuNTIgNjU2LjA0IDQ5LjUyQzY1Ni41NzMgNDkuNTIgNjU3LjI2NyA0OS43ODY3IDY1OC4xMiA1MC4zMkw2NjcuNCA1Ni41NkM2NjguNDY3IDU3LjMwNjcgNjY5LjEwNyA1OC4wNTMzIDY2OS4zMiA1OC44QzY2OS42NCA1OS41NDY3IDY2OS40OCA2MC4wOCA2NjguODQgNjAuNEM2NjYuOTIgNjEuNDY2NyA2NjQuMzA3IDYyLjI2NjcgNjYxIDYyLjhaTTU4Ni43NiA4OS41MkM1ODcuNzIgODkuNTIgNTg4LjYyNyA4OC43NzMzIDU4OS40OCA4Ny4yOEw1OTEuNzIgODMuNDRDNTkyLjE0NyA4Mi42OTMzIDU5Mi42OCA4MS43MzMzIDU5My4zMiA4MC41NkM1OTQuMDY3IDc5LjM4NjcgNTk0LjY1MyA3OC41MzMzIDU5NS4wOCA3OEM1OTUuNTA3IDc3LjQ2NjcgNTk1LjkzMyA3Ny4yIDU5Ni4zNiA3Ny4yQzU5Ny4xMDcgNzcuMiA1OTguOTczIDc4Ljc0NjcgNjAxLjk2IDgxLjg0QzYwNS4wNTMgODQuOTMzMyA2MDcuMjQgODcuNTQ2NyA2MDguNTIgODkuNjhDNjA4Ljk0NyA5MC4yMTMzIDYwOS4xNiA5MC44NTMzIDYwOS4xNiA5MS42QzYwOS4xNiA5Mi4yNCA2MDguODkzIDkyLjgyNjcgNjA4LjM2IDkzLjM2QzYwNy41MDcgOTMuODkzMyA2MDYuNDkzIDk0LjE2IDYwNS4zMiA5NC4xNkg1ODguNTJDNTg3LjQ1MyA5NC4xNiA1ODYuNiA5NC40OCA1ODUuOTYgOTUuMTJDNTg1LjQyNyA5NS42NTMzIDU4NS4xNiA5Ni40NTMzIDU4NS4xNiA5Ny41MlYxMTEuMTJDNTg1LjE2IDExMy4wNCA1ODYuMDY3IDExNC4zMiA1ODcuODggMTE0Ljk2QzU5MS4xODcgMTE2LjEzMyA1OTQuMjggMTE3LjUyIDU5Ny4xNiAxMTkuMTJDNTk4LjAxMyAxMTkuNjUzIDU5OC43MDcgMTE5LjkyIDU5OS4yNCAxMTkuOTJDNjAwLjMwNyAxMTkuOTIgNjAxLjE2IDExOS4zMzMgNjAxLjggMTE4LjE2QzYwNC44OTMgMTExLjk3MyA2MDcuNTA3IDEwNS44OTMgNjA5LjY0IDk5LjkyQzYxMS4xMzMgOTUuNTQ2NyA2MTIuNDEzIDkwLjQ4IDYxMy40OCA4NC43MkM2MTQuNjUzIDc4Ljk2IDYxNS4zNDcgNzMuODkzMyA2MTUuNTYgNjkuNTJDNjE1Ljc3MyA2Ny42IDYxNi42OCA2Ni42NCA2MTguMjggNjYuNjRDNjE4LjkyIDY2LjY0IDYxOS40IDY2LjY5MzMgNjE5LjcyIDY2LjhDNjMyLjIgNzAuNDI2NyA2MzguNDQgNzIuOTMzMyA2MzguNDQgNzQuMzJDNjM4LjQ0IDc0Ljc0NjcgNjM4LjAxMyA3NS4xMiA2MzcuMTYgNzUuNDRMNjM2LjUyIDc1Ljc2QzYzNS4wMjcgNzYuNTA2NyA2MzQuMDEzIDc3LjU3MzMgNjMzLjQ4IDc4Ljk2QzYyNi40NCA5Ni44OCA2MTcgMTEwLjk2IDYwNS4xNiAxMjEuMkM2MDQuMzA3IDEyMi4wNTMgNjAzLjg4IDEyMi44NTMgNjAzLjg4IDEyMy42QzYwMy44OCAxMjQuMjQgNjA0LjIgMTI0Ljk4NyA2MDQuODQgMTI1Ljg0QzYwNy4wOCAxMjguNzIgNjA4LjIgMTMxLjcwNyA2MDguMiAxMzQuOEM2MDguMiAxMzcuMjUzIDYwNy40NTMgMTM5LjMzMyA2MDUuOTYgMTQxLjA0QzYwNC41NzMgMTQyLjY0IDYwMi44MTMgMTQzLjQ0IDYwMC42OCAxNDMuNDRDNTk5LjI5MyAxNDMuNDQgNTk3LjggMTQyLjk2IDU5Ni4yIDE0MkM1OTUuMDI3IDE0MS4yNTMgNTk0LjI4IDEzOS45NzMgNTkzLjk2IDEzOC4xNkM1OTMuMjEzIDEzNC4yMTMgNTkxLjY2NyAxMjkuNzg3IDU4OS4zMiAxMjQuODhDNTg4LjY4IDEyMy42IDU4Ny45MzMgMTIyLjk2IDU4Ny4wOCAxMjIuOTZDNTg2LjU0NyAxMjIuOTYgNTg2LjA2NyAxMjMuMjI3IDU4NS42NCAxMjMuNzZDNTg1LjMyIDEyNC4yOTMgNTg1LjE2IDEyNS4wNCA1ODUuMTYgMTI2VjE1Ni41NkM1ODUuMzczIDE2OC4wOCA1ODUuNzQ3IDE3OS44NjcgNTg2LjI4IDE5MS45MlYxOTIuODhDNTg2LjI4IDE5NC4wNTMgNTg1LjggMTk1LjA2NyA1ODQuODQgMTk1LjkyQzU4My4zNDcgMTk3LjA5MyA1ODEuMzIgMTk4LjEwNyA1NzguNzYgMTk4Ljk2QzU3Ni4yIDE5OS45MiA1NzMuNjkzIDIwMC40IDU3MS4yNCAyMDAuNEM1NjkuNTMzIDIwMC40IDU2OC4yNTMgMjAwLjA4IDU2Ny40IDE5OS40NEM1NjYuNTQ3IDE5OC44IDU2Ni4xMiAxOTguMDUzIDU2Ni4xMiAxOTcuMkM1NjYuNTQ3IDE5MS4xMiA1NjYuODY3IDE4NS4wOTMgNTY3LjA4IDE3OS4xMkM1NjcuNCAxNzMuMTQ3IDU2Ny42MTMgMTY1LjYyNyA1NjcuNzIgMTU2LjU2VjE0MkM1NjcuNzIgMTQxLjE0NyA1NjcuNTYgMTQwLjQ1MyA1NjcuMjQgMTM5LjkyQzU2Ny4wMjcgMTM5LjM4NyA1NjYuNjUzIDEzOS4xMiA1NjYuMTIgMTM5LjEyQzU2NS4zNzMgMTM5LjEyIDU2NC41NzMgMTM5LjcwNyA1NjMuNzIgMTQwLjg4QzU1OC45MiAxNDcuOTIgNTUzLjY5MyAxNTQuMzczIDU0OC4wNCAxNjAuMjRDNTQ2LjU0NyAxNjEuNjI3IDU0NS40MjcgMTYyLjA1MyA1NDQuNjggMTYxLjUyQzU0NC40NjcgMTYxLjMwNyA1NDQuMzYgMTYwLjk4NyA1NDQuMzYgMTYwLjU2QzU0NC4zNiAxNTkuOTIgNTQ0LjY4IDE1OS4wNjcgNTQ1LjMyIDE1OEM1NTQuMTczIDE0Mi42NCA1NjAuNzg3IDEyMi41ODcgNTY1LjE2IDk3Ljg0TDU2NS4zMiA5Ni44OEM1NjUuMzIgOTYuMDI2NyA1NjUgOTUuMzg2NyA1NjQuMzYgOTQuOTZDNTYzLjgyNyA5NC40MjY3IDU2My4wOCA5NC4xNiA1NjIuMTIgOTQuMTZINTU5LjA4QzU1Ni41MiA5NC4yNjY3IDU1My44IDk0LjY5MzMgNTUwLjkyIDk1LjQ0QzU1MC42IDk1LjU0NjcgNTUwLjE3MyA5NS42IDU0OS42NCA5NS42QzU0OC4zNiA5NS42IDU0Ny4yOTMgOTQuOTA2NyA1NDYuNDQgOTMuNTJMNTQ1Ljk2IDkyLjU2QzU0NS42NCA5MS45MiA1NDUuNDggOTEuMzMzMyA1NDUuNDggOTAuOEM1NDUuNDggOTAuMTYgNTQ1Ljc0NyA4OS42OCA1NDYuMjggODkuMzZDNTQ2LjgxMyA4OC45MzMzIDU0Ny42MTMgODguNzczMyA1NDguNjggODguODhDNTUxLjI0IDg5LjA5MzMgNTU1LjA4IDg5LjMwNjcgNTYwLjIgODkuNTJINTY0LjM2QzU2NS40MjcgODkuNTIgNTY2LjIyNyA4OS4yNTMzIDU2Ni43NiA4OC43MkM1NjcuNCA4OC4wOCA1NjcuNzIgODcuMjI2NyA1NjcuNzIgODYuMTZWODEuNTJDNTY3LjcyIDcwLjc0NjcgNTY3LjI0IDYxLjE0NjcgNTY2LjI4IDUyLjcyVjUyLjA4QzU2Ni4yOCA1MS4xMiA1NjYuNiA1MC40MjY3IDU2Ny4yNCA1MEM1NjcuODggNDkuNDY2NyA1NjguNzg3IDQ5LjM2IDU2OS45NiA0OS42OEM1NzcuMjEzIDUxLjM4NjcgNTgyLjIyNyA1Mi43NzMzIDU4NSA1My44NEM1ODcuODggNTQuOCA1ODkuMzIgNTUuNjUzMyA1ODkuMzIgNTYuNEM1ODkuMzIgNTYuODI2NyA1ODguODkzIDU3LjMwNjcgNTg4LjA0IDU3Ljg0TDU4Ny40IDU4LjMyQzU4NS45MDcgNTkuMzg2NyA1ODUuMTYgNjAuNzIgNTg1LjE2IDYyLjMyVjg2LjE2QzU4NS4xNiA4Ny4yMjY3IDU4NS4yNjcgODguMDggNTg1LjQ4IDg4LjcyQzU4NS44IDg5LjI1MzMgNTg2LjIyNyA4OS41MiA1ODYuNzYgODkuNTJaTTYyNS42NCAxNjkuMDRDNjI1LjIxMyAxNjkuODkzIDYyNSAxNzAuNTMzIDYyNSAxNzAuOTZDNjI1IDE3MS42IDYyNS4yNjcgMTcyLjEzMyA2MjUuOCAxNzIuNTZDNjI2LjMzMyAxNzIuODggNjI3LjA4IDE3Mi45ODcgNjI4LjA0IDE3Mi44OEM2MzguMTczIDE3Mi4xMzMgNjQ0Ljc4NyAxNzEuNiA2NDcuODggMTcxLjI4QzY1MC42NTMgMTcwLjk2IDY1NC41NDcgMTcwLjU4NyA2NTkuNTYgMTcwLjE2QzY2MS4zNzMgMTY5Ljk0NyA2NjIuMjggMTY5LjE0NyA2NjIuMjggMTY3Ljc2QzY2Mi4yOCAxNjcuMTIgNjYyLjE3MyAxNjYuNTg3IDY2MS45NiAxNjYuMTZDNjU5LjYxMyAxNjAuNjEzIDY1Ni40NjcgMTU0LjMyIDY1Mi41MiAxNDcuMjhDNjUxLjU2IDE0NS4zNiA2NTEuMzQ3IDE0NC4yNCA2NTEuODggMTQzLjkyQzY1MS45ODcgMTQzLjgxMyA2NTIuMiAxNDMuNzYgNjUyLjUyIDE0My43NkM2NTMuMTYgMTQzLjc2IDY1NC4wMTMgMTQ0LjA4IDY1NS4wOCAxNDQuNzJDNjY2LjM4NyAxNTAuOCA2NzQuNzA3IDE1Ny41MiA2ODAuMDQgMTY0Ljg4QzY4NS4zNzMgMTcyLjI0IDY4OC4wNCAxNzkuMTczIDY4OC4wNCAxODUuNjhDNjg4LjA0IDE4OS41MiA2ODcuMTg3IDE5Mi42MTMgNjg1LjQ4IDE5NC45NkM2ODMuNzczIDE5Ny4zMDcgNjgxLjUzMyAxOTguNDggNjc4Ljc2IDE5OC40OEM2NzYuNjI3IDE5OC40OCA2NzQuNDkzIDE5Ny43MzMgNjcyLjM2IDE5Ni4yNEM2NzAuOTczIDE5NS4zODcgNjcwLjIyNyAxOTQuMTA3IDY3MC4xMiAxOTIuNEM2NjkuMTYgMTg3LjYgNjY3Ljg4IDE4Mi42NCA2NjYuMjggMTc3LjUyQzY2NS44NTMgMTc2LjAyNyA2NjQuODkzIDE3NS4yOCA2NjMuNCAxNzUuMjhDNjYyLjc2IDE3NS4yOCA2NjIuMjggMTc1LjMzMyA2NjEuOTYgMTc1LjQ0QzY0Ny43NzMgMTgwLjg4IDYzMS4xMzMgMTg2LjUzMyA2MTIuMDQgMTkyLjRDNjEwLjU0NyAxOTIuODI3IDYwOS41ODcgMTkzLjQxMyA2MDkuMTYgMTk0LjE2TDYwOC4zNiAxOTUuMTJDNjA3LjgyNyAxOTUuNjUzIDYwNy4yOTMgMTk1LjkyIDYwNi43NiAxOTUuOTJDNjA1LjY5MyAxOTUuOTIgNjA0Ljc4NyAxOTUuMTczIDYwNC4wNCAxOTMuNjhMNTk2Ljg0IDE3OC45NkM1OTYuNTIgMTc4LjMyIDU5Ni4zNiAxNzcuNzMzIDU5Ni4zNiAxNzcuMkM1OTYuMzYgMTc1LjgxMyA1OTcuMzIgMTc1LjA2NyA1OTkuMjQgMTc0Ljk2TDYwNC4wNCAxNzQuNjRDNjA5LjA1MyAxNzQuNDI3IDYxMi44NCAxNzQuMTYgNjE1LjQgMTczLjg0QzYxNy4yMTMgMTczLjg0IDYxOC4zODcgMTcyLjgyNyA2MTguOTIgMTcwLjhDNjIxLjI2NyAxNTkuODEzIDYyMy40IDE0OC41MDcgNjI1LjMyIDEzNi44OEM2MjYuOTIgMTI2Ljk2IDYyNy43MiAxMTcuNjI3IDYyNy43MiAxMDguODhDNjI3LjcyIDEwNy43MDcgNjI4LjA0IDEwNi44NTMgNjI4LjY4IDEwNi4zMkM2MjkuMzIgMTA1Ljc4NyA2MzAuMjI3IDEwNS42MjcgNjMxLjQgMTA1Ljg0TDY1MS4wOCAxMTAuMTZDNjUxLjkzMyAxMTAuMzczIDY1Mi42MjcgMTEwLjc0NyA2NTMuMTYgMTExLjI4QzY1My42OTMgMTExLjcwNyA2NTMuOTYgMTEyLjE4NyA2NTMuOTYgMTEyLjcyQzY1My45NiAxMTMuMTQ3IDY1My42NCAxMTMuNjI3IDY1MyAxMTQuMTZMNjUyLjA0IDExNC44QzY1MC45NzMgMTE1LjEyIDY1MC4xNzMgMTE1LjQ0IDY0OS42NCAxMTUuNzZDNjQ5LjIxMyAxMTYuMDggNjQ4Ljg5MyAxMTYuNTYgNjQ4LjY4IDExNy4yQzY0MS44NTMgMTM2LjI5MyA2MzQuMTczIDE1My41NzMgNjI1LjY0IDE2OS4wNFpNODIwLjUyIDE1NC4zMkM4MjIuMjI3IDE1NC4zMiA4MjMuNTYgMTUzLjYyNyA4MjQuNTIgMTUyLjI0TDgyNy40IDE0OC40QzgyNy44MjcgMTQ3Ljc2IDgyOC40NjcgMTQ2LjkwNyA4MjkuMzIgMTQ1Ljg0QzgzMC4xNzMgMTQ0LjY2NyA4MzAuODY3IDE0My44MTMgODMxLjQgMTQzLjI4QzgzMS45MzMgMTQyLjc0NyA4MzIuNDEzIDE0Mi40OCA4MzIuODQgMTQyLjQ4QzgzMy42OTMgMTQyLjQ4IDgzNi4wNCAxNDQuMDI3IDgzOS44OCAxNDcuMTJDODQzLjgyNyAxNTAuMTA3IDg0Ni41NDcgMTUyLjYxMyA4NDguMDQgMTU0LjY0Qzg0OC42OCAxNTUuMjggODQ5IDE1NS45MiA4NDkgMTU2LjU2Qzg0OSAxNTcuMDkzIDg0OC42OCAxNTcuNjI3IDg0OC4wNCAxNTguMTZDODQ3LjE4NyAxNTguNjkzIDg0Ni4xNzMgMTU4Ljk2IDg0NSAxNTguOTZINzk4LjZDNzk3LjY0IDE1OC45NiA3OTYuODkzIDE1OS4xNzMgNzk2LjM2IDE1OS42Qzc5NS44MjcgMTU5LjkyIDc5NS41NiAxNjAuMzQ3IDc5NS41NiAxNjAuODhDNzk1LjU2IDE2MS43MzMgNzk2LjE0NyAxNjIuNDggNzk3LjMyIDE2My4xMkM4MDMuOTMzIDE2Ni45NiA4MTEuNTYgMTcwLjMyIDgyMC4yIDE3My4yQzgyOC45NDcgMTc2LjA4IDgzNy41MzMgMTc4LjE2IDg0NS45NiAxNzkuNDRDODQ3LjAyNyAxNzkuNTQ3IDg0Ny44MjcgMTc5Ljc2IDg0OC4zNiAxODAuMDhDODQ5IDE4MC40IDg0OS4yNjcgMTgwLjY2NyA4NDkuMTYgMTgwLjg4Qzg0OS4wNTMgMTgxLjIgODQ4LjczMyAxODEuNTIgODQ4LjIgMTgxLjg0Qzg0Ny43NzMgMTgyLjE2IDg0Ny4xODcgMTgyLjQ4IDg0Ni40NCAxODIuOEM4NDEuODUzIDE4NS4wNCA4MzguNiAxODguOTg3IDgzNi42OCAxOTQuNjRDODM2LjE0NyAxOTYuMzQ3IDgzNS4yNCAxOTcuMiA4MzMuOTYgMTk3LjJDODMzLjY0IDE5Ny4yIDgzMy4xNiAxOTcuMDkzIDgzMi41MiAxOTYuODhDODE0LjkyIDE5MC4wNTMgODAwLjY4IDE3OS4zMzMgNzg5LjggMTY0LjcyQzc4OC42MjcgMTYzLjEyIDc4Ny4zNDcgMTYxLjIgNzg1Ljk2IDE1OC45Nkg3ODUuOFYxNzEuNkM3ODYuMTIgMTgxLjIgNzg2LjM4NyAxODguNTYgNzg2LjYgMTkzLjY4VjE5NC42NEM3ODYuNiAxOTUuOTIgNzg2LjEyIDE5Ni44OCA3ODUuMTYgMTk3LjUyQzc4My42NjcgMTk4LjQ4IDc4MS41ODcgMTk5LjMzMyA3NzguOTIgMjAwLjA4Qzc3Ni4yNTMgMjAwLjgyNyA3NzMuNjQgMjAxLjIgNzcxLjA4IDIwMS4yQzc2OS41ODcgMjAxLjIgNzY4LjQ2NyAyMDAuODggNzY3LjcyIDIwMC4yNEM3NjcuMDggMTk5LjYgNzY2Ljc2IDE5OC44NTMgNzY2Ljc2IDE5OEM3NjcuMTg3IDE5My4yIDc2Ny41NiAxODYuNjkzIDc2Ny44OCAxNzguNDhWMTcyLjcyQzc2Ny44OCAxNzAuOCA3NjcuMjQgMTY5Ljg0IDc2NS45NiAxNjkuODRDNzY1LjQyNyAxNjkuODQgNzY0LjczMyAxNzAuMTYgNzYzLjg4IDE3MC44Qzc1MC41NDcgMTgyLjMyIDczMS44OCAxOTEuMDEzIDcwNy44OCAxOTYuODhDNzA3LjM0NyAxOTcuMDkzIDcwNi43MDcgMTk3LjIgNzA1Ljk2IDE5Ny4yQzcwNS4xMDcgMTk3LjIgNzA0LjU3MyAxOTYuOTg3IDcwNC4zNiAxOTYuNTZWMTk2LjI0QzcwNC4zNiAxOTUuOTIgNzA0LjU3MyAxOTUuNTQ3IDcwNSAxOTUuMTJDNzA1LjUzMyAxOTQuOCA3MDYuMjI3IDE5NC40OCA3MDcuMDggMTk0LjE2QzcxNS43MiAxOTAuNDI3IDcyMy42MTMgMTg1Ljg5MyA3MzAuNzYgMTgwLjU2QzczOC4wMTMgMTc1LjIyNyA3NDQuMiAxNjkuNDEzIDc0OS4zMiAxNjMuMTJDNzQ5Ljk2IDE2Mi4yNjcgNzUwLjI4IDE2MS41NzMgNzUwLjI4IDE2MS4wNEM3NTAuMjggMTYwLjQgNzUwLjAxMyAxNTkuOTIgNzQ5LjQ4IDE1OS42Qzc0OC45NDcgMTU5LjE3MyA3NDguMjUzIDE1OC45NiA3NDcuNCAxNTguOTZINzMxLjg4QzcyNS4zNzMgMTU5LjA2NyA3MTguMzMzIDE1OS42NTMgNzEwLjc2IDE2MC43Mkg3MDkuOEM3MDguMzA3IDE2MC43MiA3MDcuMjQgMTYwLjAyNyA3MDYuNiAxNTguNjRMNzA1Ljk2IDE1Ny4zNkM3MDUuNjQgMTU2LjcyIDcwNS40OCAxNTYuMTMzIDcwNS40OCAxNTUuNkM3MDUuNDggMTU0Ljg1MyA3MDUuNzQ3IDE1NC4zMiA3MDYuMjggMTU0QzcwNi44MTMgMTUzLjU3MyA3MDcuNTYgMTUzLjQxMyA3MDguNTIgMTUzLjUyQzcxMi4yNTMgMTUzLjg0IDcxNy44IDE1NC4xMDcgNzI1LjE2IDE1NC4zMkg3NjQuNTJDNzY1LjU4NyAxNTQuMzIgNzY2LjM4NyAxNTQuMDUzIDc2Ni45MiAxNTMuNTJDNzY3LjU2IDE1Mi44OCA3NjcuODggMTUyLjAyNyA3NjcuODggMTUwLjk2VjE0Mi44Qzc2Ny44OCAxNDEuNzMzIDc2Ny41NiAxNDAuOTMzIDc2Ni45MiAxNDAuNEM3NjYuMzg3IDEzOS43NiA3NjUuNTg3IDEzOS40NCA3NjQuNTIgMTM5LjQ0SDc1MS41NkM3NTAuNDkzIDEzOS40NCA3NDkuNjQgMTM5Ljc2IDc0OSAxNDAuNEM3NDguNDY3IDE0MC45MzMgNzQ4LjIgMTQxLjczMyA3NDguMiAxNDIuOFYxNDMuNDRDNzQ4LjIgMTQzLjk3MyA3NDcuNCAxNDQuNzIgNzQ1LjggMTQ1LjY4Qzc0NC4zMDcgMTQ2LjY0IDc0Mi40NCAxNDcuNDkzIDc0MC4yIDE0OC4yNEM3MzcuOTYgMTQ4Ljg4IDczNS43NzMgMTQ5LjIgNzMzLjY0IDE0OS4yQzczMi40NjcgMTQ5LjIgNzMxLjUwNyAxNDguODggNzMwLjc2IDE0OC4yNEM3MzAuMTIgMTQ3LjYgNzI5LjggMTQ2Ljg1MyA3MjkuOCAxNDZDNzMwLjQ0IDEzNi43MiA3MzAuODY3IDEyNy4zODcgNzMxLjA4IDExOFYxMDUuNjhDNzMxLjA4IDEwNC42MTMgNzMwLjc2IDEwMy44MTMgNzMwLjEyIDEwMy4yOEM3MjkuNTg3IDEwMi42NCA3MjguNzg3IDEwMi4zMiA3MjcuNzIgMTAyLjMySDcyMy4yNEM3MTkuNzIgMTAyLjQyNyA3MTYuMiAxMDIuOTA3IDcxMi42OCAxMDMuNzZDNzEyLjM2IDEwMy44NjcgNzExLjkzMyAxMDMuOTIgNzExLjQgMTAzLjkyQzcxMC4xMiAxMDMuOTIgNzA5LjEwNyAxMDMuMjI3IDcwOC4zNiAxMDEuODRMNzA3LjcyIDEwMC43MkM3MDcuNCAxMDAuMDggNzA3LjI0IDk5LjQ0IDcwNy4yNCA5OC44QzcwNy4yNCA5Ny40MTMzIDcwOC4zMDcgOTYuODI2NyA3MTAuNDQgOTcuMDRDNzEzLjEwNyA5Ny4yNTMzIDcxNy4yMTMgOTcuNDY2NyA3MjIuNzYgOTcuNjhINzI3LjcyQzcyOS45NiA5Ny42OCA3MzEuMDggOTYuNTYgNzMxLjA4IDk0LjMyTDczMC42IDg1LjJWODQuNTZDNzMwLjYgODMuNiA3MzAuODY3IDgyLjkwNjcgNzMxLjQgODIuNDhDNzMyLjA0IDgxLjk0NjcgNzMyLjg5MyA4MS43MzMzIDczMy45NiA4MS44NEw3NDAuNjggODIuOTZINzQxLjMyQzc0My4zNDcgODIuOTYgNzQ0LjM2IDgxLjg5MzMgNzQ0LjM2IDc5Ljc2Vjc1LjEyQzc0NC4zNiA3NC4wNTMzIDc0NC4wNCA3My4yNTMzIDc0My40IDcyLjcyQzc0Mi44NjcgNzIuMDggNzQyLjA2NyA3MS43NiA3NDEgNzEuNzZINzMxLjU2QzcyNS4wNTMgNzEuODY2NyA3MTguMTIgNzIuNDUzMyA3MTAuNzYgNzMuNTJINzA5LjhDNzA4LjMwNyA3My41MiA3MDcuMjQgNzIuNzczMyA3MDYuNiA3MS4yOEw3MDUuOTYgNzAuMTZDNzA1LjY0IDY5LjUyIDcwNS40OCA2OC45MzMzIDcwNS40OCA2OC40QzcwNS40OCA2Ni44IDcwNi41NDcgNjYuMTA2NyA3MDguNjggNjYuMzJDNzEyLjMwNyA2Ni42NCA3MTcuODUzIDY2LjkwNjcgNzI1LjMyIDY3LjEySDc0MUM3NDMuMjQgNjcuMTIgNzQ0LjM2IDY2IDc0NC4zNiA2My43NkM3NDQuMTQ3IDU4LjY0IDc0My45MzMgNTUuMTIgNzQzLjcyIDUzLjJWNTIuODhDNzQzLjcyIDUxLjcwNjcgNzQ0LjA0IDUwLjkwNjcgNzQ0LjY4IDUwLjQ4Qzc0NS40MjcgNDkuOTQ2NyA3NDYuMzg3IDQ5Ljg0IDc0Ny41NiA1MC4xNkM3NTQuMjggNTEuNzYgNzU4LjkyIDUzLjA0IDc2MS40OCA1NEM3NjQuMDQgNTQuOTYgNzY1LjMyIDU1Ljc2IDc2NS4zMiA1Ni40Qzc2NS4zMiA1Ni43MiA3NjQuODkzIDU3LjIgNzY0LjA0IDU3Ljg0TDc2My41NiA1OC4xNkM3NjIuMDY3IDU5LjEyIDc2MS4zMiA2MC40NTMzIDc2MS4zMiA2Mi4xNlY2My43NkM3NjEuMzIgNjQuODI2NyA3NjEuNTg3IDY1LjY4IDc2Mi4xMiA2Ni4zMkM3NjIuNzYgNjYuODUzMyA3NjMuNjEzIDY3LjEyIDc2NC42OCA2Ny4xMkg3ODcuODhDNzkwLjEyIDY3LjEyIDc5MS4yNCA2NiA3OTEuMjQgNjMuNzZDNzkxLjAyNyA1OC42NCA3OTAuODEzIDU1LjEyIDc5MC42IDUzLjJWNTIuODhDNzkwLjYgNTEuNzA2NyA3OTAuOTIgNTAuOTA2NyA3OTEuNTYgNTAuNDhDNzkyLjMwNyA0OS45NDY3IDc5My4yNjcgNDkuODQgNzk0LjQ0IDUwLjE2QzgwNi40OTMgNTIuOTMzMyA4MTIuNTIgNTUuMDEzMyA4MTIuNTIgNTYuNEM4MTIuNTIgNTYuODI2NyA4MTIuMTQ3IDU3LjMwNjcgODExLjQgNTcuODRMODEwLjkyIDU4LjE2QzgwOS40MjcgNTkuMTIgODA4LjY4IDYwLjQ1MzMgODA4LjY4IDYyLjE2VjYzLjc2QzgwOC42OCA2NC44MjY3IDgwOC45NDcgNjUuNjggODA5LjQ4IDY2LjMyQzgxMC4xMiA2Ni44NTMzIDgxMC45NzMgNjcuMTIgODEyLjA0IDY3LjEySDgyMS42NEM4MjMuMzQ3IDY3LjEyIDgyNC42OCA2Ni40MjY3IDgyNS42NCA2NS4wNEw4MjguMiA2MS4yQzgyOC43MzMgNjAuNTYgODI5LjM3MyA1OS42NTMzIDgzMC4xMiA1OC40OEM4MzAuOTczIDU3LjMwNjcgODMxLjYxMyA1Ni40NTMzIDgzMi4wNCA1NS45MkM4MzIuNTczIDU1LjM4NjcgODMzLjA1MyA1NS4xMiA4MzMuNDggNTUuMTJDODM0LjIyNyA1NS4xMiA4MzYuMzYgNTYuNjY2NyA4MzkuODggNTkuNzZDODQzLjUwNyA2Mi43NDY3IDg0Ni4xMiA2NS4yNTMzIDg0Ny43MiA2Ny4yOEM4NDguMjUzIDY4LjAyNjcgODQ4LjUyIDY4LjY2NjcgODQ4LjUyIDY5LjJDODQ4LjUyIDY5Ljg0IDg0OC4yIDcwLjQyNjcgODQ3LjU2IDcwLjk2Qzg0Ni43MDcgNzEuNDkzMyA4NDUuNjQgNzEuNzYgODQ0LjM2IDcxLjc2SDgxMi4wNEM4MTAuOTczIDcxLjc2IDgxMC4xMiA3Mi4wOCA4MDkuNDggNzIuNzJDODA4Ljk0NyA3My4yNTMzIDgwOC42OCA3NC4wNTMzIDgwOC42OCA3NS4xMlY4MC4wOEw4MDguNTIgODAuODhDODA4LjUyIDgyLjM3MzMgODA5LjM3MyA4My4zMzMzIDgxMS4wOCA4My43NkM4MTcuOTA3IDg1LjU3MzMgODIxLjMyIDg2Ljk2IDgyMS4zMiA4Ny45MkM4MjEuMzIgODguMzQ2NyA4MjAuOTQ3IDg4Ljc3MzMgODIwLjIgODkuMkM4MTguNzA3IDkwLjE2IDgxNy45NiA5MS40OTMzIDgxNy45NiA5My4yVjk0LjMyQzgxNy45NiA5NS4zODY3IDgxOC4xNzMgOTYuMjQgODE4LjYgOTYuODhDODE5LjEzMyA5Ny40MTMzIDgxOS44MjcgOTcuNjggODIwLjY4IDk3LjY4QzgyMi4zODcgOTcuNjggODIzLjcyIDk2Ljk4NjcgODI0LjY4IDk1LjZMODI3LjI0IDkxLjkyQzgyNy41NiA5MS4zODY3IDgyOC4wOTMgOTAuNTg2NyA4MjguODQgODkuNTJDODI5LjY5MyA4OC4zNDY3IDgzMC4zODcgODcuNDkzMyA4MzAuOTIgODYuOTZDODMxLjQ1MyA4Ni40MjY3IDgzMS45MzMgODYuMTYgODMyLjM2IDg2LjE2QzgzMy4xMDcgODYuMTYgODM1LjI0IDg3LjY1MzMgODM4Ljc2IDkwLjY0Qzg0Mi4zODcgOTMuNTIgODQ1IDk1LjkyIDg0Ni42IDk3Ljg0Qzg0Ny4wMjcgOTguMzczMyA4NDcuMjQgOTkuMDEzMyA4NDcuMjQgOTkuNzZDODQ3LjI0IDEwMC41MDcgODQ2Ljk3MyAxMDEuMDkzIDg0Ni40NCAxMDEuNTJDODQ1LjM3MyAxMDIuMDUzIDg0NC4zMDcgMTAyLjMyIDg0My4yNCAxMDIuMzJIODIxLjMyQzgyMC4yNTMgMTAyLjMyIDgxOS40IDEwMi42NCA4MTguNzYgMTAzLjI4QzgxOC4yMjcgMTAzLjgxMyA4MTcuOTYgMTA0LjYxMyA4MTcuOTYgMTA1LjY4VjEwOS4yTDgxOC40NCAxMjAuMDhWMTIxLjJDODE4LjQ0IDEyMi4zNzMgODE4LjA2NyAxMjMuMjggODE3LjMyIDEyMy45MkM4MTUuOTMzIDEyNS4yIDgxMy45MDcgMTI2LjM3MyA4MTEuMjQgMTI3LjQ0QzgwOC41NzMgMTI4LjUwNyA4MDYuMDEzIDEyOS4wNCA4MDMuNTYgMTI5LjA0QzgwMi4wNjcgMTI5LjA0IDgwMS4zMiAxMjcuOTIgODAxLjMyIDEyNS42OFYxMjQuODhDODAxLjMyIDEyMy44MTMgODAxIDEyMy4wMTMgODAwLjM2IDEyMi40OEM3OTkuODI3IDEyMS44NCA3OTkuMDI3IDEyMS41MiA3OTcuOTYgMTIxLjUySDc4Ni42Qzc4NS41MzMgMTIxLjUyIDc4NC42OCAxMjEuODQgNzg0LjA0IDEyMi40OEM3ODMuNTA3IDEyMy4wMTMgNzgzLjI0IDEyMy44MTMgNzgzLjI0IDEyNC44OFYxMjYuMzJDNzgzLjI0IDEyNy4xNzMgNzgxLjY0IDEyOC4xODcgNzc4LjQ0IDEyOS4zNkM3NzUuMjQgMTMwLjUzMyA3NzIuMDkzIDEzMS4xMiA3NjkgMTMxLjEyQzc2Ny44MjcgMTMxLjEyIDc2Ni45MiAxMzAuOCA3NjYuMjggMTMwLjE2Qzc2NS43NDcgMTI5LjUyIDc2NS40OCAxMjguNzczIDc2NS40OCAxMjcuOTJDNzY1LjkwNyAxMjMuNzYgNzY2LjIyNyAxMTguNDI3IDc2Ni40NCAxMTEuOTJWMTA1LjY4Qzc2Ni40NCAxMDQuNjEzIDc2Ni4xMiAxMDMuODEzIDc2NS40OCAxMDMuMjhDNzY0Ljk0NyAxMDIuNjQgNzY0LjE0NyAxMDIuMzIgNzYzLjA4IDEwMi4zMkg3NTEuNTZDNzUwLjQ5MyAxMDIuMzIgNzQ5LjY0IDEwMi42NCA3NDkgMTAzLjI4Qzc0OC40NjcgMTAzLjgxMyA3NDguMiAxMDQuNjEzIDc0OC4yIDEwNS42OFYxMzEuNDRDNzQ4LjIgMTMyLjUwNyA3NDguNDY3IDEzMy4zNiA3NDkgMTM0Qzc0OS42NCAxMzQuNTMzIDc1MC40OTMgMTM0LjggNzUxLjU2IDEzNC44SDgxNS4wOEM4MTYuNzg3IDEzNC44IDgxOC4xMiAxMzQuMTA3IDgxOS4wOCAxMzIuNzJMODIxLjY0IDEyOS4zNkM4MjIuMTczIDEyOC42MTMgODIyLjc2IDEyNy44MTMgODIzLjQgMTI2Ljk2QzgyNC4wNCAxMjYuMTA3IDgyNC42OCAxMjUuMzYgODI1LjMyIDEyNC43MkM4MjUuOTYgMTI0LjA4IDgyNi40OTMgMTIzLjc2IDgyNi45MiAxMjMuNzZDODI3Ljc3MyAxMjMuNzYgODMwLjAxMyAxMjUuMiA4MzMuNjQgMTI4LjA4QzgzNy4yNjcgMTMwLjg1MyA4MzkuODggMTMzLjIgODQxLjQ4IDEzNS4xMkM4NDIuMDEzIDEzNS42NTMgODQyLjI4IDEzNi4yNCA4NDIuMjggMTM2Ljg4Qzg0Mi4yOCAxMzcuNTIgODQxLjk2IDEzOC4xMDcgODQxLjMyIDEzOC42NEM4NDAuNDY3IDEzOS4xNzMgODM5LjQ1MyAxMzkuNDQgODM4LjI4IDEzOS40NEg3OTMuNjRDNzkyLjg5MyAxMzkuNDQgNzkyLjE0NyAxMzkuNjUzIDc5MS40IDE0MC4wOEM3OTAuNzYgMTQwLjQgNzkwLjEyIDE0MC44MjcgNzg5LjQ4IDE0MS4zNkM3ODkuMjY3IDE0MS41NzMgNzg5IDE0MS42OCA3ODguNjggMTQxLjY4Qzc4Ni43NiAxNDIuNDI3IDc4NS44IDE0My43MDcgNzg1LjggMTQ1LjUyVjE1MC45NkM3ODUuOCAxNTIuMDI3IDc4Ni4wNjcgMTUyLjg4IDc4Ni42IDE1My41MkM3ODcuMjQgMTU0LjA1MyA3ODguMDkzIDE1NC4zMiA3ODkuMTYgMTU0LjMySDgyMC41MlpNNzk3Ljk2IDk3LjY4Qzc5OS4wMjcgOTcuNjggNzk5LjgyNyA5Ny40MTMzIDgwMC4zNiA5Ni44OEM4MDEgOTYuMjQgODAxLjMyIDk1LjM4NjcgODAxLjMyIDk0LjMyVjg2LjhDODAxLjMyIDg0Ljc3MzMgODAwLjM2IDgzLjc2IDc5OC40NCA4My43Nkw3OTQuMjggODMuOTJDNzkzLjMyIDgzLjkyIDc5Mi41NzMgODMuNjUzMyA3OTIuMDQgODMuMTJDNzkxLjUwNyA4Mi40OCA3OTEuMjQgODEuNjI2NyA3OTEuMjQgODAuNTZWNzUuMTJDNzkxLjI0IDc0LjA1MzMgNzkwLjkyIDczLjI1MzMgNzkwLjI4IDcyLjcyQzc4OS43NDcgNzIuMDggNzg4Ljk0NyA3MS43NiA3ODcuODggNzEuNzZINzY0LjY4Qzc2My42MTMgNzEuNzYgNzYyLjc2IDcyLjA4IDc2Mi4xMiA3Mi43MkM3NjEuNTg3IDczLjI1MzMgNzYxLjMyIDc0LjA1MzMgNzYxLjMyIDc1LjEyVjgwLjg4TDc1MyA4NC4yNEg3NTMuMzJDNzUzLjEwNyA4NS41MiA3NTIuMzYgODYuNTMzMyA3NTEuMDggODcuMjhDNzQ5LjE2IDg4LjEzMzMgNzQ4LjIgODkuMzYgNzQ4LjIgOTAuOTZWOTQuMzJDNzQ4LjIgOTUuMzg2NyA3NDguNDY3IDk2LjI0IDc0OSA5Ni44OEM3NDkuNjQgOTcuNDEzMyA3NTAuNDkzIDk3LjY4IDc1MS41NiA5Ny42OEg3NjMuMDhDNzY1LjMyIDk3LjY4IDc2Ni40NCA5Ni41NiA3NjYuNDQgOTQuMzJDNzY2LjIyNyA4OS40MTMzIDc2Ni4wMTMgODYgNzY1LjggODQuMDhWODMuNzZDNzY1LjggODIuNTg2NyA3NjYuMTIgODEuNzg2NyA3NjYuNzYgODEuMzZDNzY3LjUwNyA4MC44MjY3IDc2OC40NjcgODAuNzIgNzY5LjY0IDgxLjA0Qzc3Ni4xNDcgODIuNTMzMyA3ODAuNjggODMuNzYgNzgzLjI0IDg0LjcyQzc4NS44IDg1LjY4IDc4Ny4wOCA4Ni40OCA3ODcuMDggODcuMTJDNzg3LjA4IDg3LjMzMzMgNzg2Ljg2NyA4Ny42IDc4Ni40NCA4Ny45MkM3ODYuMTIgODguMTMzMyA3ODUuOTA3IDg4LjI5MzMgNzg1LjggODguNEw3ODUuNDggODguNTZDNzgzLjk4NyA4OS41MiA3ODMuMjQgOTAuODUzMyA3ODMuMjQgOTIuNTZWOTQuMzJDNzgzLjI0IDk1LjM4NjcgNzgzLjUwNyA5Ni4yNCA3ODQuMDQgOTYuODhDNzg0LjY4IDk3LjQxMzMgNzg1LjUzMyA5Ny42OCA3ODYuNiA5Ny42OEg3OTcuOTZaTTc4My4yNCAxMTMuNTJDNzgzLjI0IDExNC41ODcgNzgzLjUwNyAxMTUuNDQgNzg0LjA0IDExNi4wOEM3ODQuNjggMTE2LjYxMyA3ODUuNTMzIDExNi44OCA3ODYuNiAxMTYuODhINzk3Ljk2Qzc5OS4wMjcgMTE2Ljg4IDc5OS44MjcgMTE2LjYxMyA4MDAuMzYgMTE2LjA4QzgwMSAxMTUuNDQgODAxLjMyIDExNC41ODcgODAxLjMyIDExMy41MlYxMDUuNjhDODAxLjMyIDEwNC42MTMgODAxIDEwMy44MTMgODAwLjM2IDEwMy4yOEM3OTkuODI3IDEwMi42NCA3OTkuMDI3IDEwMi4zMiA3OTcuOTYgMTAyLjMySDc4Ni42Qzc4NS41MzMgMTAyLjMyIDc4NC42OCAxMDIuNjQgNzg0LjA0IDEwMy4yOEM3ODMuNTA3IDEwMy44MTMgNzgzLjI0IDEwNC42MTMgNzgzLjI0IDEwNS42OFYxMTMuNTJaIi8+CjxsaW5lIHN0cm9rZS13aWR0aD0iNiIgc3Ryb2tlPSIjMEU3Qzc1IiB5Mj0iMjMxLjcwOSIgeDI9Ijk1Ni43NTgiIHkxPSIyMzEuNzA5IiB4MT0iNDQxLjc1OCIvPgo8Y2lyY2xlIGZpbGw9IiMwRTdDNzUiIHI9IjEyLjUiIGN5PSIyMzIuNSIgY3g9IjQ0MS41Ii8+CjxjaXJjbGUgZmlsbD0iIzBFN0M3NSIgcj0iMTIuNSIgY3k9IjIzMS41IiBjeD0iOTY3LjUiLz4KPHBhdGggZmlsbD0iIzA2MTgxQSIgZD0iTTQ5Ny4wMjIgMjc0LjE0NEg1MDYuMDYyTDUxOC4zMDIgMzI1LjI3M0g1MTkuMDM1TDU0OS4zMDYgMjc0LjE0NEg1NTguMzQ2TDU0Ny40ODUgMzM1LjczOUg1NDAuNEw1NDguNjUxIDI4OC45NDFINTQ4LjA0MUw1MjAuMjQzIDMzNS43MzlINTEzLjQwM0w1MDIuMTA5IDI4OC45NDFINTAxLjQ5OEw0OTMuMjQ2IDMzNS43MzlINDg2LjE2MUw0OTcuMDIyIDI3NC4xNDRaTTU2NS4yMzYgMzM1LjczOUg1NTcuMjk2TDU5MS4xMjMgMjc0LjE0NEg1OTguOTQxTDYxMS4wNDYgMzM1LjczOUg2MDMuMTA1TDU5My41NTggMjgzLjg4OEg1OTMuMDY5TDU2NS4yMzYgMzM1LjczOVpNNTcyLjQxMSAzMTEuNjc4SDYwNC40MTZMNjAzLjI1IDMxOC4yOTVINTcxLjI0NEw1NzIuNDExIDMxMS42NzhaTTYxOS43NTUgMjgwLjc2TDYyMC45MjIgMjc0LjE0NEg2NjcuODMxTDY2Ni42NjQgMjgwLjc2SDY0Ni45OTdMNjM3LjMwMiAzMzUuNzM5SDYyOS43MjlMNjM5LjQyMyAyODAuNzZINjE5Ljc1NVpNNzExLjAwOSAyODkuNTQzQzcxMS4xOCAyODYuNDk1IDcxMC4xMTEgMjg0LjEyOSA3MDcuODAyIDI4Mi40NDVDNzA1LjQ5MyAyODAuNzYgNzAyLjQ0NSAyNzkuOTE4IDY5OC42NTggMjc5LjkxOEM2OTUuODg5IDI3OS45MTggNjkzLjM4OSAyODAuMzU5IDY5MS4xNTYgMjgxLjI0MkM2ODguOTQ0IDI4Mi4xMjQgNjg3LjEyMiAyODMuMzM3IDY4NS42ODkgMjg0Ljg4MUM2ODQuMjc3IDI4Ni40MjUgNjgzLjM5NyAyODguMTc5IDY4My4wNTEgMjkwLjE0NEM2ODIuNzYxIDI5MS43ODggNjgyLjkwOSAyOTMuMjAyIDY4My40OTQgMjk0LjM4NUM2ODQuMTA0IDI5NS41NDggNjg0Ljk3MSAyOTYuNTIgNjg2LjA5NSAyOTcuMzAyQzY4Ny4yMjMgMjk4LjA2NCA2ODguNDM1IDI5OC42OTYgNjg5LjczMSAyOTkuMTk3QzY5MS4wMzEgMjk5LjY3OCA2OTIuMjM0IDMwMC4wNjkgNjkzLjM0MiAzMDAuMzdMNjk5LjM5NyAzMDIuMDU0QzcwMC45NTIgMzAyLjQ3NSA3MDIuNjYxIDMwMy4wNTcgNzA0LjUyNSAzMDMuNzk5QzcwNi40MSAzMDQuNTQgNzA4LjE1NiAzMDUuNTUzIDcwOS43NjIgMzA2LjgzNkM3MTEuMzkyIDMwOC4wOTkgNzEyLjYzMiAzMDkuNzIzIDcxMy40ODQgMzExLjcwOEM3MTQuMzM1IDMxMy42OTMgNzE0LjUwNiAzMTYuMTMgNzEzLjk5NyAzMTkuMDE3QzcxMy40MSAzMjIuMzQ1IDcxMS45OTQgMzI1LjM1MyA3MDkuNzQ5IDMyOC4wNEM3MDcuNTI0IDMzMC43MjYgNzA0LjU4MiAzMzIuODYyIDcwMC45MjMgMzM0LjQ0NkM2OTcuMjg1IDMzNi4wMyA2OTMuMDYzIDMzNi44MjIgNjg4LjI1OCAzMzYuODIyQzY4My43NzkgMzM2LjgyMiA2ODAuMDI2IDMzNi4xMSA2NzYuOTk5IDMzNC42ODZDNjczLjk5MiAzMzMuMjYzIDY3MS43NzcgMzMxLjI3OCA2NzAuMzUzIDMyOC43MzFDNjY4Ljk0OSAzMjYuMTg1IDY2OC40MjIgMzIzLjIyOCA2NjguNzcyIDMxOS44NTlINjc2LjU5QzY3Ni4zODMgMzIyLjE4NSA2NzYuODM4IDMyNC4xMSA2NzcuOTU0IDMyNS42MzRDNjc5LjA5MyAzMjcuMTM3IDY4MC42NjcgMzI4LjI2IDY4Mi42NzQgMzI5LjAwMkM2ODQuNzA1IDMyOS43MjQgNjg2Ljk2MiAzMzAuMDg1IDY4OS40NDYgMzMwLjA4NUM2OTIuMzM3IDMzMC4wODUgNjk1LjAxNCAzMjkuNjI0IDY5Ny40NzcgMzI4LjcwMUM2OTkuOTQ0IDMyNy43NTkgNzAxLjk5NiAzMjYuNDU2IDcwMy42MzQgMzI0Ljc5MUM3MDUuMjc0IDMyMy4xMDcgNzA2LjI5MyAzMjEuMTQyIDcwNi42ODkgMzE4Ljg5N0M3MDcuMDQ5IDMxNi44NTEgNzA2Ljc2MiAzMTUuMTg3IDcwNS44MjggMzEzLjkwNEM3MDQuODk0IDMxMi42MjEgNzAzLjU1MSAzMTEuNTc4IDcwMS43OTkgMzEwLjc3NkM3MDAuMDQ3IDMwOS45NzQgNjk4LjEyNCAzMDkuMjcyIDY5Ni4wMzEgMzA4LjY3MUw2ODguNzE3IDMwNi41MDVDNjg0LjA3NSAzMDUuMTIyIDY4MC41NTUgMzAzLjE0NyA2NzguMTU3IDMwMC41OEM2NzUuNzU5IDI5OC4wMTQgNjc0LjkyNiAyOTQuNjU1IDY3NS42NTggMjkwLjUwNUM2NzYuMjY2IDI4Ny4wNTYgNjc3Ljc0MyAyODQuMDQ5IDY4MC4wODkgMjgxLjQ4MkM2ODIuNDU5IDI3OC44OTYgNjg1LjM3OCAyNzYuODkxIDY4OC44NDYgMjc1LjQ2N0M2OTIuMzM3IDI3NC4wMjMgNjk2LjA3OSAyNzMuMzAyIDcwMC4wNjkgMjczLjMwMkM3MDQuMSAyNzMuMzAyIDcwNy41NTggMjc0LjAxMyA3MTAuNDQzIDI3NS40MzdDNzEzLjMzIDI3Ni44NDEgNzE1LjQ3NSAyNzguNzY1IDcxNi44NzYgMjgxLjIxMkM3MTguMjk3IDI4My42NTggNzE4Ljc4NSAyODYuNDM1IDcxOC4zMzkgMjg5LjU0M0g3MTEuMDA5Wk03NzUuNDA3IDI3NC4xNDRINzgyLjk4MUw3NzUuNzkgMzE0LjkyN0M3NzUuMDQ4IDMxOS4xMzcgNzczLjM3NyAzMjIuODk3IDc3MC43NzggMzI2LjIwNUM3NjguMjAzIDMyOS40OTMgNzY0LjkyNSAzMzIuMDkgNzYwLjk0NSAzMzMuOTk1Qzc1Ni45NjggMzM1Ljg3OSA3NTIuNTI2IDMzNi44MjIgNzQ3LjYyIDMzNi44MjJDNzQyLjcxMyAzMzYuODIyIDczOC42MDQgMzM1Ljg3OSA3MzUuMjkxIDMzMy45OTVDNzMxLjk4MyAzMzIuMDkgNzI5LjYxMSAzMjkuNDkzIDcyOC4xNzUgMzI2LjIwNUM3MjYuNzYzIDMyMi44OTcgNzI2LjQyOCAzMTkuMTM3IDcyNy4xNzEgMzE0LjkyN0w3MzQuMzYyIDI3NC4xNDRINzQxLjkzNkw3MzQuODUxIDMxNC4zMjVDNzM0LjMyIDMxNy4zMzMgNzM0LjUyIDMyMC4wMDkgNzM1LjQ1IDMyMi4zNTVDNzM2LjM4NCAzMjQuNjgxIDczNy45NzQgMzI2LjUxNiA3NDAuMjIxIDMyNy44NTlDNzQyLjQ5MiAzMjkuMTgzIDc0NS4zNjggMzI5Ljg0NCA3NDguODUgMzI5Ljg0NEM3NTIuMzMyIDMyOS44NDQgNzU1LjQ0MSAzMjkuMTgzIDc1OC4xNzkgMzI3Ljg1OUM3NjAuOTIgMzI2LjUxNiA3NjMuMTU3IDMyNC42ODEgNzY0Ljg5MSAzMjIuMzU1Qzc2Ni42NDggMzIwLjAwOSA3NjcuNzkyIDMxNy4zMzMgNzY4LjMyMiAzMTQuMzI1TDc3NS40MDcgMjc0LjE0NFpNNzg3LjI0NSAzMzUuNzM5TDc5OC4xMDYgMjc0LjE0NEg4MTkuOTcyQzgyNC4zMjkgMjc0LjE0NCA4MjcuNzkyIDI3NC44ODYgODMwLjM2MSAyNzYuMzY5QzgzMi45MzIgMjc3LjgzMyA4MzQuNjkxIDI3OS44MDggODM1LjYzOCAyODIuMjk0QzgzNi41ODcgMjg0Ljc2MSA4MzYuNzk3IDI4Ny40OTcgODM2LjI2NiAyOTAuNTA1QzgzNS44IDI5My4xNTIgODM0LjkzNiAyOTUuMzM3IDgzMy42NzUgMjk3LjA2MkM4MzIuNDM0IDI5OC43ODYgODMwLjk1MiAzMDAuMTQ5IDgyOS4yMjggMzAxLjE1MkM4MjcuNTI0IDMwMi4xNTQgODI1LjczNCAzMDIuODk2IDgyMy44NTggMzAzLjM3N0w4MjMuNzUxIDMwMy45NzlDODI1LjY0NCAzMDQuMDk5IDgyNy40NTEgMzA0Ljc2MSA4MjkuMTczIDMwNS45NjRDODMwLjg5NiAzMDcuMTY3IDgzMi4yMSAzMDguODkxIDgzMy4xMTcgMzExLjEzN0M4MzQuMDI0IDMxMy4zODMgODM0LjE5MSAzMTYuMTMgODMzLjYxOSAzMTkuMzc4QzgzMy4wNzQgMzIyLjQ2NiA4MzEuODcyIDMyNS4yNDMgODMwLjAxMiAzMjcuNzA5QzgyOC4xNTIgMzMwLjE3NSA4MjUuNTU3IDMzMi4xMyA4MjIuMjI4IDMzMy41NzRDODE4LjkgMzM1LjAxNyA4MTQuNzcyIDMzNS43MzkgODA5Ljg0NCAzMzUuNzM5SDc4Ny4yNDVaTTc5NS45ODYgMzI5LjEyMkg4MTEuMDExQzgxNS45NTkgMzI5LjEyMiA4MTkuNjM3IDMyOC4xOCA4MjIuMDQ2IDMyNi4yOTVDODI0LjQ3OSAzMjQuMzkgODI1LjkzNCAzMjIuMDg1IDgyNi40MTEgMzE5LjM3OEM4MjYuNzc5IDMxNy4yOTMgODI2LjU3OSAzMTUuMzY4IDgyNS44MTEgMzEzLjYwM0M4MjUuMDQ2IDMxMS44MTkgODIzLjc2IDMxMC4zOTUgODIxLjk1MiAzMDkuMzMyQzgyMC4xNDggMzA4LjI1IDgxNy44ODIgMzA3LjcwOCA4MTUuMTU0IDMwNy43MDhINzk5Ljc2MUw3OTUuOTg2IDMyOS4xMjJaTTgwMC45MDcgMzAxLjIxMkg4MTQuOTU1QzgxNy4yMzYgMzAxLjIxMiA4MTkuMzcgMzAwLjc3MSA4MjEuMzU4IDI5OS44ODlDODIzLjM2NiAyOTkuMDA2IDgyNS4wNTEgMjk3Ljc2MyA4MjYuNDEzIDI5Ni4xNTlDODI3Ljc5NSAyOTQuNTU1IDgyOC42NzcgMjkyLjY3IDgyOS4wNTkgMjkwLjUwNUM4MjkuNTM2IDI4Ny43OTggODI4Ljk4NCAyODUuNTAyIDgyNy40MDMgMjgzLjYxOEM4MjUuODI1IDI4MS43MTMgODIyLjk1OSAyODAuNzYgODE4LjgwNiAyODAuNzZIODA0LjUxM0w4MDAuOTA3IDMwMS4yMTJaTTg0NS43NDQgMzM1LjczOUg4MzcuODA0TDg3MS42MyAyNzQuMTQ0SDg3OS40NDlMODkxLjU1NCAzMzUuNzM5SDg4My42MTNMODc0LjA2NiAyODMuODg4SDg3My41NzdMODQ1Ljc0NCAzMzUuNzM5Wk04NTIuOTE4IDMxMS42NzhIODg0LjkyNEw4ODMuNzU3IDMxOC4yOTVIODUxLjc1Mkw4NTIuOTE4IDMxMS42NzhaIi8+CjxyZWN0IGZpbGw9InVybCgjcGF0dGVybjBfMTgzXzU2KSIgaGVpZ2h0PSIzNzgiIHdpZHRoPSIzNzgiIHk9IjciLz4KPGRlZnM+CjxwYXR0ZXJuIGhlaWdodD0iMSIgd2lkdGg9IjEiIHBhdHRlcm5Db250ZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0icGF0dGVybjBfMTgzXzU2Ij4KPHVzZSB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMC4xNjEzNzYgLTAuMTYxMzc2KSBzY2FsZSgwLjAwMjY0NTUpIiB4bGluazpocmVmPSIjaW1hZ2UwXzE4M181NiIvPgo8L3BhdHRlcm4+CjxpbWFnZSB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWZRQUFBSDBDQVlBQUFETDF0K0tBQUFRQUVsRVFWUjRBZXhkQllBZU5mWi9MOG5JWnl0MVJZc1ZwOFd0eGYyUWF3OE9EbmMvamdNT1RwWXo1TS9oMXVJT0xZY2ZEaTF1TFFWS1M2RUY2cjc2MlZpUy84dTNMUlJvdHkzc2RtMW1KeU5KSm5udmwrUzl2SmY1WmhuRVc0eEFqRUNNUUl4QWpFQ01RTHRISUZibzdiNEpZd1ppQkdJRVlnUmlCR0lFQUZwV29jY0l4d2pFQ01RSXhBakVDTVFJckJFRVlvVytSbUNPSzRrUmlCR0lFWWdSaUJGb1dRVGFzMEp2V1dUaTBtTUVZZ1JpQkdJRVlnVGFFUUt4UW05SGpSV1RHaU1RSXhBakVDTVFJN0FpQkdLRnZpSms0dmdZZ1JpQkdJRVlnUmlCZG9SQXJORGJVV1BGcE1ZSXhBakVDTVFJeEFpc0NJRllvYThJbVphTmowdVBFWWdSaUJHSUVZZ1JhRllFWW9YZXJIREdoY1VJeEFqRUNNUUl4QWkwRGdLeFFtOGQzRnUyMXJqMEdJRVlnUmlCR0lGT2gwQ3MwRHRkazhjTXh3akVDTVFJeEFoMFJBUmloZDRSVzdWbGVZcExqeEdJRVlnUmlCRm9nd2pFQ3IwTk5rcE1Vb3hBakVDTVFJeEFqTURxSWhBcjlOVkZMTTdmc2dqRXBjY0l4QWpFQ01RSS9Dd0VZb1grczJDTEg0b1JpQkdJRVlnUmlCRm9Xd2pFQ3IxdHRVZE1UY3NpRUpjZUl4QWpFQ1BRWVJHSUZYcUhiZHFZc1JpQkdJRVlnUmlCem9SQXJOQTdVMnZIdkxZc0FuSHBNUUl4QWpFQ3JZaEFyTkJiRWZ5NDZoaUJHSUVZZ1JpQkdJSG1RaUJXNk0yRlpGeE9qRURMSWhDWEhpTVFJeEFqMENRQ3NVSnZFcDQ0TVVZZ1JpQkdJRVlnUnFCOUlCQXI5UGJSVGpHVk1RSXRpMEJjZW94QWpFQzdSeUJXNk8yK0NXTUdZZ1JpQkdJRVlnUmlCQUJpaFI3M2doaUJHSUdXUmlBdVAwWWdSbUFOSUJBcjlEVUFjbHhGakVDTVFJeEFqRUNNUUVzakVDdjBsa1k0TGo5R0lFYWdaUkdJUzQ4UmlCRW9JUkFyOUJJTThTRkdJRVlnUmlCR0lFYWdmU01RSy9UMjNYNHg5VEVDTVFJdGkwQmNlb3hBdTBFZ1Z1anRwcWxpUW1NRVlnUmlCR0lFWWdSV2pFQ3MwRmVNVFp3U0l4QWpFQ1BRc2dqRXBjY0lOQ01Dc1VKdlJqRGpvbUlFWWdSaUJHSUVZZ1JhQzRGWW9iY1c4bkc5TVFJeEFqRUNMWXRBWEhvblF5Qlc2SjJzd1dOMll3UmlCR0lFWWdRNkpnS3hRdStZN1JwekZTTVFJeEFqMExJSXhLVzNPUVJpaGQ3bW1pUW1LRVlnUmlCR0lFWWdSbUQxRVlnVit1cGpGajhSSXhBakVDTVFJOUN5Q01TbC93d0VZb1grTTBDTEg0a1JpQkdJRVlnUmlCRm9hd2pFQ3IydHRVaE1UNHhBakVDTVFJeEF5eUxRUVV1UEZYb0hiZGlZclJpQkdJRVlnUmlCem9WQXJOQTdWM3ZIM01ZSXhBakVDTVFJdEN3Q3JWWjZyTkJiRGZxNDRoaUJHSUVZZ1JpQkdJSG1ReUJXNk0ySFpWeFNqRUNNUUl4QWpFQ01RTXNpMEVUcHNVSnZBcHc0S1VZZ1JpQkdJRVlnUnFDOUlCQXI5UGJTVWpHZE1RSXhBakVDTVFJeEFrMGcwQXdLdlluUzQ2UVlnUmlCR0lFWWdSaUJHSUUxZ2tDczBOY0l6SEVsTVFJeEFqRUNNUUl4QWkyTFFKdFg2QzNMZmx4NmpFQ01RSXhBakVDTVFNZEFJRmJvSGFNZFl5NWlCR0lFWWdSaUJEbzVBcDFjb1hmeTFvL1pqeEdJRVlnUmlCSG9NQWpFQ3IzRE5HWE1TSXhBakVDTVFJeEFaMFlnVnVndDJQcHgwVEVDTVFJeEFqRUNNUUpyQ29GWW9hOHBwT042WWdSaUJHSUVZZ1JpQkZvUWdWaWh0eUM0TFZ0MFhIcU1RSXhBakVDTVFJekE5d2pFQ3YxN0xPS3JHSUVZZ1JpQkdJRVlnWGFMUUt6UTIyM1R0U3poY2VreEFqRUNNUUl4QXUwTGdWaWh0Ni8yaXFtTkVZZ1JpQkdJRVlnUldDNENzVUpmTGl4eFpNc2lFSmNlSXhBakVDTVFJOURjQ01RS3Zia1JqY3VMRVlnUmlCR0lFWWdSYUFVRVlvWGVDcURIVmJZc0FuSHBNUUl4QWpFQ25SR0JXS0YzeGxhUGVZNFJpQkdJRVlnUjZIQUl4QXE5d3pWcHpGRExJaENYSGlNUUl4QWowRFlSaUJWNjIyeVhtS29ZZ1JpQkdJRVlnUmlCMVVJZ1Z1aXJCVmVjT1VhZ1pSR0lTNDhSaUJHSUVmaTVDTVFLL2VjaUZ6OFhJeEFqRUNNUUl4QWowSVlRaUJWNkcycU1tSlFZZ1paRklDNDlSaUJHb0NNakVDdjBqdHk2TVc4eEFqRUNNUUl4QXAwR2dWaWhkNXFtamhtTkVXaFpCT0xTWXdSaUJGb1hnVmlodHk3K2NlMHhBcXVIZ05aWVZWVWx6cnpsbHZSWjk5M1g5ZVE3N3VoMzJqMjNiM0RHZlhkc2NmcDlkMjUzMmtOMzduYmFnL2Z1ZWRwRDl4eHd4aU4zSFhMNkkvY2RkdHFqOXh4dXppYWM4Y2k5aDFBNDhMU0g3OW43aklmdjN2MnMrKy9lL3B3SDd0cnlyUHRHYm5qbTNYZjNQK2Z1Rzd1ZmVOZGRtVk5IakxBMDFiVjZ4TVc1WXdSaUJGb1RnVmlodHliNmNkMHhBa3NRR0RWcGxQM0VCNjkySFRYKzNRRzN2djdjb04zUFBYSG9Kc2NjY2VqR0p4eDkzSVluLys2U1RjOCs5YVlOenpuanlmNm5udmp1aURtenZuN2kwMC9uUERUbTlabVB2L2ZXVjQrKzlmWm5qN3o5emtlUHZmUFd1NlBmZkhmTTZMZkd2anpxcmJlZWZmU050NTRjOWVhYmo0OSs0ODNSNWp6cXpiR1BQL2JtVzA4Kzl1WWJ6enorNXRzdmpucnpyZGNmZm1QTVd3KytNZVlqVThaajc0NlordEJiSDh4ODV1M1haNzg0L29QcEE4ODcrK1BOemozN3BVMU9QL1hlRFU4NjZkL2JuSEhHV1Z1ZWR0cHZOdjd0Ny9ZOTdPLy8zdkhlVHo3YzlKR1AzKzR6YXRLWWRNc3IveVZBeGFjWWdSaUJGU0lRSy9RVlFoTW54QWcwTHdKVnVvb05HMVZsSDMzampXWEhqYngyMDZOdXYvYmdJMis1NXZlSDMzemxkUmZmOE5UOTU5NDI0dUVMYnJ0eDFIVlBQVGw2UWszdFkyR3ZYZy9VdVBhSUdzZjY1d0ttejZybTh0QmN5dG1obUhiV3lxZDRXVlNSU01wMElxRXpTVmVuRWpZRkhxVmNab0pNMGpuaHNOQzFseHVDaE0xTW9PZXRLT2xZUWRKeG9yVHJRR1hhVlpYcHNnWUgrOHdPY2x2Tmp2TDcxQ2I1Y1ExcGNjbE04SzlmWU90N0NqMHpqNHlybmpucWIvZmMrL2o1ZDl3MjZ0eWJSejYwN2puSDN6NzAyci84OWNqN2IvcnR3VGYrYzRlejdydTU2L05UcHpxazZIbnpvaGlYRmlNUUk3QWlCR0tGdmlKazR2Z1lnVitBUUpYVzdKNHhZeXJ1ZU8rTlRZNjk0YXFoRzUxODdERjNuL2psMzhhL01mdTUxeWVQbi9UOHg1KytQK2FMS1UrOE5YMzZ0V09uVEQyLzFuSi80MWQwMmNjdjY3SjFqWERXZFhyMTdWNmpkVHBNcDUwb21lSys0MkJnMlJBNUZvUUNRUW9HekxWQjI0SkM0MWxaRm9EZ0ZDelFuRkVRZE4xNHZ6VCt4MmR0MjRDdVd3cFMyQkFDQjhtb0hEY0pQRk1HbU01QUFSbDR0bzJxTENNODEwbGtMVkdaZDUxK05NSFkyTTlVN095WFZSNVNuMGllT25IKzRzdGYvL3lMKzkvL2R2cnJvOFo5Tk9XTW02OTRiOERaSjl3eThQUmpUdnZkVFZmdU8vS2RsN2Q2K1AxWGU0NFlONDRxK0FYZ3RzQ2pjWkV4QWgwQkFkWVJtSWg1aUJGb1RRVEdhQzB1ZXZxdXpMQXJxZ1ljOXArcWc3YTc5TnlxMjA3NnpmMFgzbi9MVXhmZWRlc1RMMDZkOGtodHdobFJhMXVYeWt6Rlhzck45Tk5XTXExRlV0UjZDbGg1ZDVDSmNpZ3dGeUk3Q1Q1YWtKY0lrcnNRYW9CQUttS1BnU0NGeTBqaGNoUmdHYVdyRUFRcFd3NUlzWTBCbFFZZFNUQm5pMUVLM1RNcVkwVkJtR2NqQUJjczRDR0FheWVBVVdsYUFtaU5qWUhLQVM1QVV0NFNQVlJtTVl4QVdHa0FhWUgyQldWMklhTHJRQW91cldSQzJwbHVPZTV1bGJYZGsydWQ1UFd2VFo3NjRGV1BqSDc4b3R2dmZQcGYxMTd4eUM1L1BPK2FYLy9ueW1NUHY2NXFtL09mdktkaXF0WU94RnVNUUl6QUwwSWdWdWkvQ0w3NDRjNkt3UCs5OUZKcTh6T09HOVRqdDRjY2Z2d1p4MTErLzNOam5uMzVxMG1mdmpsdDJ0TmZWRmYvTGUrNFIrZmQ1TzVoTXJWeGpWSTk2NVJLS2ljbFpzeWZqd0Z5c0pJWnlJVWhXS2trRkFNZkNyNUhDcE9VTVNKd1M1U0NSL0ZDMERYbm9FaUIrb1VpUUNpQkt3QW1OWWhJZzBWS2wwc0pFRVRBb2dpU3BPelQ5SXhEeWg0OEQ4ak9KbVVOa05Ec3U3T2pOWmgwODZ3cHp4WU9xV29BemhoRWZnQ2haK3gwRGlaZVVqM2NLSGdxVDFKOWdsbkFtS0hKZ255eEFJb21Ia1FTV01LbE1td28wck5oaUJCUS9rQng5Q1RqOVlGMjg0eDNtNVV2cnQ5Z09kc1hLeXFPbUZLZi9jTnJYM3grNzZzVEo3MXozL1AvZTJlM1U0KzZwZDhKUnh4ejNtUDM3bllIV2ZGVlk4WUk2REJiekVpTXdKcEJnSzJaYXVKYVlnVGFMd0swRG95M2pCbVZQdWFxZjJ6MDYvOWNNV3pYcWovZGVzMmo5LzF2Z2NJbnJCNTk3NjZWK3VMUXNuZXp5eXFUekU0eXg4MkF4UjFJMldsZ2trUFNTZ0JHUU5hdUJwRndvQkFXWVY3TmZDaEdIdFEzTElaQ29RNEVrL1NNZ21LaEh2SzVPaUROQ2t5RlVHaW8xMGlhbEd1bElBcWxDdndvOG9waFdDUnRIUVk1djdhdVZoUzhCWTRYenRiMTJSbjUrUXUvTGk1WS9CWExGNllrSlh5QkRmbEowSkQvbk01ZjBKbnVjMU1nbS85UzErZW15bXp1YXhWRzA0dEJjVzVOWGZXaVVBWjE1S25QMmhZdktobjYyYnJhU0FlQmpJcEZHZVh6aXVyVkptUVhMd0lkQm1BekRoRkt5UHQ1YU1qVjAveWhBRWplQkJPMEYwR1U4MEFGa3FZREhHenlQQ1F6bGVDV2R3T1AyK0E3aEVsNUJmTHlTdGNxNnpaUVpzcFBxR2JpOWtmZmZ2UFJ2OXg3OTNQMy92ZWV4M2I3NngvT08vYTJxN1o3cTY2dWt0cUFRN3pGQ01RSU5Ja0FhekkxVG93UjZNUUkzUGo4ZzJYL2ZITFVkcnVkZjliSk56MzQzSWdQdnBuNXh0aFBKei8wN2VLRzA1MnV2WGNQdUx0V0VVVzVTSmZ4a0Zzb21RV2VKRjFNdG1xZUxGMHllY0ZOSmtDU0JaMUlXc0NGcHBRSXRBcWdvaklENWE2QUx1VEs3czQ0dU1XaTB0WFZBYXVyS3laeStYbzNsNStUeU9ZL1R6WmszN0pxYXA5UTgrYmRMZWZNdVQ1UlgvL3ZTdC83UzNteDhQdXlZdUhrUGh5UDNISGR0UTQ1WnNpdSs1ODc3TmQ3blRQODBOM1BPUERRWFk3ZmE3OGRqdDdud08yUC92WHc3Yzg0K1BEdFR6dmswTUcvTytMSWJVL2JlNzl0VDlqcmdPMVBQdkRnSGMvWTk2QmRUemhvLzZFSGI3SGwzdXRZenNHWlhPNDNZdkhpazkzNnVuUEs4dmxMa2cwTi8rUUxGMTFuMWRiY0xXcHIvMnZWMW82cDhJTlBNNzQvSSsxNXRlSDh1WVd3ZXFHWFJoM2FNdEFabTBGRndnWWhJMGdJQnFta1E1TVVCdWwwa2h3SXhEY0NCS2dnSkU4QXVqWjRaTVZyRU5CUThHaGl3RmxsMy82cDBMWjdCK25NWUYxWmVmZzNoZXkxYjAyYjl2THhsNTAzZXVlTHo3N3cvMTU1Y3NnZHJ6N2RrNVE3bGRTSk8rYVBXSTl2WXdTV0loQXI5S1ZJeE9kT2o4Q1liNzkxZHp6em1BRWJuWGpFOE43SEhuekhYeDhhOWVxSTE1NS9ZbUt1N3Zwc01uRmtNZW4wRkdYbGx1WTJGZ3Rrb1pLYjJTY1hNd2lyOUFLYVQ2NXM1UWhBVW1TcEhoWGdpd2h5VVI2a0pTRUNIemhHdWpKbEJlVU9xNVAxaXljRkN4ZSsyVlBDcUswcSsxeTNmYSsxejkraGU5L2h1L2RaYTg5ZGU2Njk2N1pkKyt5eFU0OStCMTd4dTVPSFBmcVhmNTQwOXZyYnp2djR5V3N1dmZuK1IvOCtZK1I5VjgrKzYvNFIwKys4LzdFcEkrOTcrYW1McXo2ODVzaGpQNi9hNzFmVC9uWHc4RGxYREIrKzZLcmh3K3V2L3RXdnN0ZnN1MisrNnVDREN5YVVyb2NQejVtMEt3NC92UHJmUnh3eDcvcjlENXYrMEltblQ1NTZ5OGdQNXQ3OTBNdno3M3RrMUp5NzdyOTd4aDMzM0hEN1E0Lzk4OTIvL2YyeVYvN3Yrdk5mdS9tS1U5NFljZU9SMTUxeDBrRjc5KyszeDhBRTMzWDNkZnZzczAzWHJrZnV1RmEvMzVkSDNuL1Vvcm1QaW1MZFdCSG1KcnRXVkF2ZytjeUtWS2lMV2xzUmdDMGhKTytFbWRoSThqN1lER25sWGtDUHNxNGdGSU13NjRHS0VNSUFJRnNJSWVRMkM2eEV1Wi9LN0RIRDh5OGYrZklyai8xOTlPaVhOdi9EYWFOMytlc0ZycWF1YkFBQUVBQkpSRUZVWisxMThkbWJ2NzFvU3FiVGQ5d1lnQmlCSlFqRUNuMEpFUEdwY3lLZ3RjWi9QZnh3enlPdnZ2dzM1L3pyejFmUDhzS1g1Z1RSZzhWazV1U292R3piZVlIZk4wcTZ5VG9kc1VYNUhIaWdvYWdqQ0xRRXpRRXk1V1hrTWkrVXJIQnlWd1BYQ3ZMMU5TQ2lVR094R0xGQ1B0ZlRFVE9jWEc1c1JSRGNZVlZYWCtMV0xqcWhwNFpmblhySXJ2dE52dVdPSTEvKys5OHZlUG52Lzd6cDFhdXVlZnJGSzY1NTcvbXJycHI0L0JWWGZQWGNWVmZOUEdQZmZSZnV2Zjc2OVlQNzlDbHNpcHNHd3hFbEltb1RXcXJGVE5rbW1MbzIzWFRUd05ROXVNdjY5ZHRrZWk4YXZ0Vk9jNTY0OHJwdnhseDN4NlJYcnJqNW5RK3V1K1hwVnk3Nyt5Mno3bmp3ajJjUDJPTG9pdzQ1YXI5VGp6ajRvS0VETnpvdVdjaGU0dWF5STJSTnpkZ3lwV2F3Ykw2QmU0V2cwcmEwS3dQUWZnRkNyd2doTGNLYmlaSHZoK0M2U1VnbTBoQ1JnaS80R21yeVJXaUlGT1lZZDJibmNqMktibkxMaFFxT21EQjczZzJmVk5lK2ZPeUYvN2oxekx0R25sSTFhdFRBRWZIYjh5M1FKZUlpMnhNQ3NVSnZUNjBWMDlvc0NJd2FOWW9mZjEzVk90dGRjTkt3TGY1dzFrTTN2UGJpRzJPL25Ybm5iTFRPak1xN3JjZkt1MW5nWkVBekJ4SnVtdXBrUUN2WUlHd0xDcW9JZFg0RHJRTUhrSk1GYU1qV2dGbFhSbHByZHBUTzZvYmN0UEpJdlZ3WnFsdDI2ci8rU1h1c3YvSHVXMWIyMmVtVUlVTVB2K2NQZno5djl0MVAzRERyM21lZm1qYnlzYSt2RzM1QjBTaE9xcUJEN0ZWVlZlcmNBdzd3LzdudjhHOGZPUG1DWjJmYzhlaU5EMTUyeFFXbjdibjdFVnQxNjc3emp1dXR1L3N1Nnc4NFFTOVlmSzNJWnAreC9IQXlUYWpxNndxNVNKUFpIdEdDUkhWOUE5Um04eEJHR3Z4QUVpNDJ5SkNCUmdjNFQ0TUVGNWhJZ2VXV2MweFg5S3JOSkgvNzhQajNicmpybmRkZit1ZkltNTdmOGVMZm4zZGcxWVdidlR0clZnTGlMVWFna3lFUUsvUk8xdUNkbVYxandaMTQwMVdEcjNyamhZdGVuZkRaWXdzRGZkOXNMenBTVlhiYnFCNUVtbFYwNGZXaEFtVzdJTGtGSUN6Z3BNUTU1OENaZ29URklNa0J5dWhjTHBpV05ZdUtvcjUyVVg5SHZDYXFGMXhuVlM4NmRhTkVldmlmamovazBDLy9jOXU1TDEzMDEvdWZ1NmpxNDJjdXJwcDc1ZEZuMWc1ZGQxMlBGTGpxTEcxZ2VEVThHOTZmKy9PLzVqeC9VZFVuei8veHJ3L1B2dXZCUDE1MnhPK0c5N1ZoZUxubm55SnFhdjVQTk5TL0lITFplV1V5eW1WSWYyY0k4NVF0d0JVVXFBMFljbkFjRnd4NENqZ3dhaVBGU2Rrbmt5elByVVRlc2Z0NTZkUmVzMEx2Lzc2cWIzanltTDllZk1WWkQ0NDg2TXBSbzhvaDN0b3NBakZoellzQWE5N2k0dEppQk5vV0FtWmQvSUpINzlsaHN6TlByUHJuN2RlLy8reUVpYTh1UVBkeVhkNTdXNCtsRXR4Tlk4SHpJWm5PUUNnakFGclhOVXE4UUd1OWtpbHlyWWZBSFRCdm9TdnRaN01KTHoreHQ5SjM3N25lK2hmOGVvc3RkL3JWZ00wM3UveFhRdzk5YXZSemY1cjd3T09QanJ2cDlna1g3RFM4UTFuZXpkMmlwT2kxc2VRL3ZlVytTVFB2ZldEME00Lzk5NjlYRFB2TnNDTTIzblRMUFRZWXNPdFdYY3AvbnlqVzNHVVY2aWU2cXBnTkMvVlNJSm5zWko4RGhVaEZwTmdWa0hVUENWTHVqa0lBYWpveTg2SFdWMVl4MVdYOVJhbjAyZitkOE5ralY3Mzg3UHViL2ZIczI3WTU3NVI5NzVrd3BxSzVlWW5MaXhGb1N3aXd0a1JNVEV1TVFITWg4UHRSMXlZT3VhSnF2NlAvOHNmL1BQaktxNk5uZThGZkdvUzlUWjFtNVl1RHlLcVhDZ3VnSVI5NUVLR0NBcTNuY3RJTGxnQ1FoUnlVMDBVWm9PWU5EWG0xWVBIRThpQzhxNGVDVXcvYmJvZmYzRHJzdU5NZU9mZmk2eDhtaS9PQnFxcUZ4KzU3Ykg0b21oK21OUmYxbmFzY2c5MXBCeDljdU9mU1N4ZU52dWl5VDE3NysxVTNuSERrU2FmL1pyZWhSeWJxNnMvb3B1VDlVRk16V2RaV1oyMHR0UVUweWFMSkZxZmc1M05RbGt5QWtoS2lLQUxoSm1IMjRzVVlDSnZYQkRLdDArVWJ6OGw3cDM1VGwzdW82dnJiYnp2czMzODk3cEpiYjYzc1hBaDNWbTQ3SDkreFF1OThiZDVoT1I2anRmalZ2Lzgwc085SncvNzUwTmh4bjd3K1krclRVYy91WjRTWlREKzdvcElCRjVBc1Q5SHl1QTFBVm5kUkY4Q1RlWENTQUVIWUFJRmZyL1BWODMwMzhtYW9lZk1lMnFaTGo3T1AyR0xid2VjZmQ5QjIwMjk3K1BRdmJuLzQwVnRQK2YwWFE0Y09KWHV3dzhMWUpoaXJJb3h2T3ViRXlkL2M5OWhEVis1NTRDbUg3N0RiZG9kdHQ4c09nOWJxZDdhc3JYNGt5dGJNek5jdERLVDBkYTVRRDM0eEM3YUY0T2Nhb0RLUkFJdlczeE5rdVdNUWdjTnQxclZiejY1Ukt2T2J6eGN2dnZPUlNSOTh0czdaeDkyOTBabS9IVnIxL0lObGJZTGhtSWdZZ1daQUlGYm96UUJpWEVUcklqQkthMzdtTGRjT3VPYmZsLzMxMDNuekhtbXduWXRybE5oUVp5cnN1a2hqUVFQa3lKMk9DUnMwMDJDUjROY1FRSG5hZ1FxSDZhVDBaZElyTEM0UC9QZjZjSFpaUDRUZlh2V0h2NTc2NHAvL2NldTk1MXc0cFdyb0NaMXE3YnQxVy9PbnRROGZQbHlPUE8yMHdqMm5uejc1eFF2L2ZPdTE1NTl3eW9DeTlOSGRORmJaZnVFRG5jMVZWenFXdEpYVTVVa0xiUEs0cEJOMEZod0VNZ0JhZjYvTjUwRzVTVnpvK1NKSVpmb3RSbjVzMWswLy9PU3I3OXh5MWoyMzczM2gvZitYZ25pTEVWZ05CTnBpVnVydGJaR3NtS1lZZ1pVamNNVmJ6MVgyT3VhQTRlZWRPdnlGaDk1L1krS244eGI4SmVlekxWQWxSSmRrVjBDZnVqYzVhQzB5d2RHeG9LN1FRT3ZrUG1qbGdVc09XbWlvblZ2dTVlL1p2TExpeEdPSDdMSHh2SkdQN2p6cjdzZi84OG10RDc1NzJ1REJoWlZURU9kb0RRU08zWExmL1BqL2pIeDc1bDJQWEhITzJwdnVmTlRlZTIzdUZBcW5ZNjdoWWZEeUMwRjZ5ZzhMRUdnZmxNTWdGQWpvSk9pZUFiTlNVUEFSaEYzR0E1WG9OYnZXTytiSjE5LzkzOU52VFA1Z3N4TitkOWsvUmoyd1VXdndGTmNaSTlBY0NKREVhNDVpNGpKaUJOWU1BbHByOXNyWFg1Y1B2L0dmQjkvNjJJTjMxcWRTSStxVHliMjhaTnF0RGtLUUZ2blNVWkRpQnRDUkJnc1pSTDRQK2VwcTNhZWlRanBGcnlHYXUvQ1QzcHhkZGRTUVBZLzgwNGtYbmZQcVpkZmVmOHR4WjFldkdRN2lXcG9UQWZOVHVaRy9PMjNldDNjOWN1ZlZGNTkzWmgvR2Z0c0QrSTEyUGpzcHFhSWNrNzdVNUpZSGdiUzhFa0tnRlBpaEFxVUZlQ0dBS09zQ1dObk5xZ1krY0I2eXY0MTg4ZVVIZHY3RDJaZGNjczl0NjR6VE5CdHNUbUxqc21JRVZobUJuNWVSL2J6SDRxZGlCTlk4QWlQR2plbTIxa20vUHVQa2F5OS82WU92djNuQ1o4bkRiYmVzd25VeW1DVEJyRzBiUEFUSTZRQWF2QndKYngra1Q2N1dodXFvSzhDTTRPdHZienBxaHgyUCtQMnVCKzc4K1RYMy9QbW1ZYWU4ZFZwc2lhLzVobXloR28vWllJZUdDYmZjOTlyRUcwYisvb3g5ZDl2aHdNMjJPRHhWeU45Y1hMeG9SaEJrUTQwUitJb21mU1QxY3JrY1NOQlFrQkt5VWtIZzJHaDM3Vzdsa3NsdHAvbit2MGQvOHZHN1I1eDAxQzFYdi9iTU5tWVMyVUlreDhYR0NEUXJBdFMxbTdXOHVMQVlnV1pGd0x6bzlxZFJkM2MvOE5yTGo2dTY1Kzc3b0dmdnF4cGNkN3RhalVJS0Yyd25EZm1HUEFBSjVaU2JBTExIb2N5MW9kTGwwdkh6TlhiZDRna0R5eXYrdVdQL3RZOFlmZVVGZjdydHhITmZyYUwxMkdZbE1pNnN6U0ZRTmZ5czNKMm5uLy9LVFpkZmNPbmVXMnd4ckRmREs3eTVjeWNrWkZDVDRpQWRyblV5YVlPeWFRYVlGT0JrVWxCYkpEYzlFNkNUR1Z3UVFlK2dyT0tFbTU1NDZvR2RML245Rlg5NjlMNE40NC9WdExsbWpnbjZFUUtycXRCLzlGaDhHeVBROGdpTUdEZXVmUGl4QjE1NHk4dlB2RGptcXkvdThsS3BBM0lLVWdFNktPMDBlQ0JBUmhyU3RENXFrU3FYK1FLWWo1SzQrWWI1eVliYU84ODg0SURoVllmL2R1ZFByci85OHVlcS92M3gwSFdIZWkxUGRWeERXMExnNEQ2REM4OWNYRFh1cXh2dSt0c0ZCdy9idFZ1eGNCVFdMYnJEMXQ2Y0lLclhXbmhRQ09vQkJDM1BDQTVNazRKWERCaDNhZTA5S1FLM2JPQlhEYm1MSG54MXpCdEhYL1Q3MjY1ODV2Rk55V0tuVEcySnk1aVdHSUZHQkZqaktUN0dDTFFOQkVoWXNoZG5UZXF5Mzc4dVB1YnFCMjkrTEtyc1VwVVg5dFk2bWVhZTFGRGJVQUFoYk1pVDhrYXRBV2g5UEtsQTY0YUdZcGtNdnl6My9Yc1AzMm03STU3NDEzVVhYRDNzbU5jdUdENjgyRFk0aTZsb2JRU3VPZmJZL0xmM1BmYnlBWU1HWHJ4MTE2N0QxazBrUnZDR21zKzdKbGl4dUhpK2RuUUlLVzZCbDhzRGFnYjVYQUIxaFFCeW1rT0RiZldTUGJvZmMvTVRveC9mN2VKenI2cjY3MFBybVk4V3RUWlBjZjB4QXNzaTBEWVUrcklVeGRlZEZvR3FVYVBzalU0ZmRzeUovNng2NUsydnB0eTlPQWozQlhDY0xwbHVxQU1GZ2l5bnlrd1oxQzljQUNuTEJqZUt3Q29XUTdsbzBXY0hiamY0VDJjYzhxc0RwdHgrMzBtM25uamV1K1lmaW5SYUlHUEdtMFRnb1hPckdzYis2OXIzUC92M2pXZnMzS3Yzd2NucTZvdFRYbUdjRy9oQm9Yb0J1RFJSZENJZzVXNURSU0lEYmpJTkFiY2hhd3VlVGFjMm5weXR2ZkRoZDk5NDZmUXJMLzM3djU4ZjFiM0p5dUxFR0lFMWlBQmJnM1hGVmNVSUxCZUJVWk1tcFlkY2NzNWU5NzMyMzdzWFJQckd2SEQyNXVXVmxwVXFoMGdobUxmVnk5MGtTTEtjRWxMQ1dsMjdxbklWMW1OZDNWc2JkcW04YlBqdU94MTZ6eWxuMy95bmc0NzRCaEhKYkY5dU5YRmtqTUJQRUhpeDZ2cnBWKzA5L05hZCtxMXp4S1k5dTUvWHgzVmVTYWh3VWNZVjBtWWFDb1VjVUo4QzRJeGM4eUhZWlJVUU9Rbk1BbCsvVGxqblhmZllvMC9zL3BmZm4zbnBBeU42RysvU1R5cUlJMklFMWlBQ25VR2hyMEU0NDZwV0Y0RnpuN2h6cy9Pdi85c05uOHllTmJvdTBML3RVdG16SExXRmpraENQdStEN1NiSW42N0JWaHA2SkZQQTYycEN1MmJ4UnpzTVdQZTB2NXp5dXlQZXV1YUcvN3Yrak45UEo2RXJWN2Z1T0grTWdFRmcrUERoOHVsL1hUdnJwYXFyYjcvNHpHT0g3N1RWcGlmbHN2UEdGRlY5a2RtaGRtd0ZTWWFRQmdGQlhSWll4Q0JYQ0ZHN0dWdVdWKzd5eVlLRi83bC83SnVQYm5ieU1VZU9HREhDTW1YR0lVYWdOUkNJRlhwcm9ON0o2elNXekRIWFZnM1k2cnlULy9qd3k2ODlWUXZpZUx1eVd3VlBabkQydkJxd1JBcnFhSzA4bVVpRDUzbmdGWXBhZVg1OVZGZjlacDlNNHV4OXR0bnkwUCtlZDhtb2MzYzdZRkVuaHpKbXY1a1JPR0hyb1hXUG5IWEJzNy9lZGFjak4raFNmbklxOGw4dExwaGJ3d3M1bmRBS1hDYUFBUWNoWE1nV0lzZ0dBSkdkZE9zUmQ4M2F6cTFYdmZ2Ni9iLyt4NStIeEcvRU4zUER4TVd0RWdLeFFsOGxtSnJJRkNldEZnSlZZOGFJQTYvODIyR3ZmRGJwb1dway8yWnVabjNHYlJZeERtQzVrQ2l2aEVJb3dYRlRVRjFkQ3pKVVVvRDZOdlN5NS9Zc2QzNzN3ZlYzanJ6MXJJdm1rMFVldTlaWEMvazQ4K29nWUQ0MDlPRS9ybnY0a2lOL2MvUmVtMjUycXZDTGs3UGtIYUxKS09SelJRQUZJTFNBcEVWMk8wOUF1bHN2ckZHcTNDOHZILzdlaks4ZitPMWw1LzYxNnFVbmVxeE9uWEhlR0lGZmlnRDdwUVhFejhjSXJBb0N6MCtkNnZ4eDFQMjdQL0RRM1E5K05uUFdmYXlzeTdaNWpjSlhET3hraHVTakFOOFB3ZUtDaENRSDRmbkZIcmIxV1Zua1g3TFplbjJHN3I3ZkVRK052L0dCbWF0U1Y1d25ScUM1RURCZW9QLys0Yy8vUFh5WG5mWlp2MHZsNzZPYWhSK1djNVYzd2dCY1ZPRFEybnJnK1pETEZpQ1pLb2U4Qk9ZN3liNjZhN2MvM3ZmVWs4OXRjL1lKeHp6eHhRZGRtNHVldUp3WWdhWVFpQlY2VStuVzM3TUFBQkFBU1VSQlZPaTBmbHFIb09DbCtaK21Mcm5seWd2dWZlWDVoMnNFRzVaRFNFbUp5TUVHYlRuZ2tSTlQwUm9sQndtUXJ3TzdvVGJmRDhOLy9IYVhIWTVjZU5lRDE3eHp5VlV6Unc4ZlRva1FiekVDcllMQXpTZWRNM2Y4ZGJmZWV1WkJCeCtUYXFpK0xPblZOS1IwRGdSNjRGZ01NQXFCaHdwc2JZT01MTXdHZ21jeE9YaTJyMjc3NjIxMy85L3B0MTIzVHFzUUhsZmFxUkJnbllyYm1OazFpc0Q5bjc2VU91ci9Mai80MkQvOFpjemNJTGk4NkxoOWlxaFp5QVFVSXdrQkNjRW84Q0ZGN3Zhd3ZrNmxFUmYyTDB2ZHRtNTVhcy9QNzdqdml1dVBQZVdMTlVwd1hGbU1RQk1JbUdXZWZ4NTl3dFJ2Umo5M3d5RzdiTGQ3Q3VSMTJacUY4L1BaYXBWMEJmVm5IM3l5M0cwM0FVb3owTnpHMEVxazZ3R1BlM0hDaERjUC9mZWZ6N2pud3pHOW1xZ2lUb29SK0VVSXhBcjlGOEhYemg5dVFmS3JYaHpWNVY5M1AvYnZNYk9tM3hGMjc3WXRjMUtXSTF4STJna1Fna0dVNUJEeUNNcFFhcnRtVVZoV0xMNTV5STQ3SExmZEpsdGYrUFlOSXo5b1FkTGlvbU1FZmpFQzE1OTYwU2NYWHZ5dlM4dUZmVUlDOVpqRjlZdURBbmphd3dBYUN2VmdrMlRGTUNRTEhxQ29OZlBTeWY3dnpwdHgxVC91dmVQdWE5NTlhV05haThkZlRFUmNRSXpBanhDZ2J2ZWptUGcyUnVBWElHQitVNzdsbVNmODVxYlJUL3h2ZGlUUHFVZmUwMk1PaEdTeE1PRGdGNzNTdXFOTEVpL0pkT2hrR3o0YzJMUDdSWDgvOGZSRGIvM2R5UytPakwrei9ndlFqeDlka3dpY3NPNjYzc245TjNwNTdWN2RoaVdENEk5dUZMeFRrYktDZE1vQ3grVUFUSU5tQ0ZiQ2dSeFo3aXhWbnFsQnR0K1ZkOS85M01DelR6cnYvMTU2S1g1cGJrMDJXQ2VvSzFib25hQ1Ixd1NMeHVJNDlZSHJlbGZkZjh2ZnZ2VHl0NnJ5eXUwVlQ2QXJ5c0RSRG9BVzVJYlVrRTZtSU1qbE5RbkF1blFoZjgvZlR6L2wyRmYrZmQyTnArMjlkLzJhb0RPdUkwYWdPUkdvcXFwU0U2KzhyZmJPaDQ2K1pZZWUvWSszYStwdjFibUdoWG12UVdHS2c3YXc5TlBMQk5MYWVvTVBhYnNDbFpWZWJ3SGl2MjU0OXRIcmZudjcxUnZRMklubGNITTJTaWN1Sys1SW5ianhtNHYxY1ZwYlI0KzRZdituM25qbjhYbGU4WHk3UzljdXRWa1BWUWlRcmN0Q1ZQUkwzOGNXV29ITzUvTnBGYjJ5eDhETmo3NTZ4T0ZuSHJmOVhsL1IycVJxTGxyaWNtSUVXZ09CNFRoY3Z2RFAvL3Y2cEhVSC9tSFlycnNlWGFia00xRElOWUFNQUpVRUhsSGZqelFFaFFpa3NsRHlaTEplNFpGalAvNzA2U052K1BjeG85NTlOOUVhZE1kMWRpd0VZb1hlc2RwempYTlROZWJKaXJQKzhmdnpYdnY0MDl0RGJ1OW9ZMEl3RDZCcnVweGM2d0s2bEdWQWswQXJUMXJTVzFROVo1T2VQUysvNVUvL1BQYitrODk5d1FqQm4wMXcvR0NNUUJ0RXdGanN0eDU3eG12WG5uUHB5UU1ydTEyUzl2MlpJZ3dqUkEzQUdVaEE2RkplQ1VsdFE4b3VaNWd1My9qdHFWOWZlOWs5dDE5MTFjdFA5eUZySGRzZ1d6Rko3UVNCV0tHM2s0WnFhMlFhd1hQSjA0OXNmZHZEajQyWXNUajdEMldsK3R0V0NzMTMxOGtFQVVaS25La0lRajhITHRrbG1NczlzZTJHNngzNW4zOWNkZjJ2MWpNZVJ5UGgyaHBYTVQweEFyOGNBZkk0NmNNMzJhUzY2aC8vdWVQWS9RNFlYb0h3U0lKaDFtSWFVbWtIY3RrR0NMd2lXZTRBQlYramNwSmRnMVQ2alAvYzkrQjl1NTEvemo3anhvMnpmamtWY1FtZEVZRllvWGZHVnYrRlBJL1Q0NnhCdnovbHNGdisrL2c5dnJTUDhBcm9RbWlCanNpNDBCcUVvQXBzQ2I2c1Y5cXZuOTdGd1l1SHJEM2d6RmN2ditydHdZamtpS2YwdHIzSDFNVUkvR0lFaGlKRy96ajBxQS8rZE5vSjU2WmtkSzcyODE4VnZZWklDUjlzRjBGR1BpUjVBcng4Qk5sUWl6Q1YzT01ici82dUUrKys4Y3pucTZlVy9XSUM0Z0k2SFFLeFF1OTBUZjdMR0s1NjR2NGU1L3p4L2d2bkZJT2JyVXlYTFRSM09SY0pDSlVHTDVJUTZnanFHeFpEUS9VOHY5SmlUenRCNGFTdmJycm41a2VxcWhiL3NwcmpwMk1FMmljQ0oydzl0RzdpclhmZnUvKzIyeDNMc3ZYMzYzdzJKOE1jaEZFUmN2a3MySllEZ1ZUZ0EyTTV4dnBXYS9YUHM4Njk4SXBUci9uM3h1MlQ0NWpxMWtJZ1Z1aXRoWHc3cTVkYzdPemtPLzV2M1lkZmV2VzJxZFhWZnlsNHNyY2pFbGllcmdRL0NrRTZBa1I1QWhyQ0JpV1ZONzlNQlg4L2FMZk5UNWgvL3pOajJobXJMVTl1WEVPblJPQ2UwODcvNE9YN2JqbDMzVXo2NGpCZk94MVpJRGs1MTJuMEFPY0lsdXNBWFVCZTZyUk1aMDRaTTJuQ28yZmZmdTFnODlKcHB3UXNabnExRVlnVittcEQxdmtlSUdXT3Y3MzF5bjJlZWYrRCsrY0UzcTh3azBsMDdkNjc5TzMxMmtJOVdBa0J0c05BZXRsSUZQTHZyVmVXUG4yL1RZZmNNSEw0SmZWWWVodW84MkVXY3h3anNEd0V0c1JlK1l0UHZlRE9iZFpaNTBTcjBQQ1NCVkVZaFhuSUpCTWdRTk9ZSWpkOFdUa0V3ckk4TjdubDgrOSs4T0MxLy9uSENWVzZLcGJWeXdNMGp2c0JBbkVuK1FFYzhjMlBFYmpyN2FjemE1ODA3SGZQVDV4d1h6NlQzTmwzYkI1UXBwcWFHakltRUhpWlJjTEgwekpmVjljVmNlU3RmL25IOEtrM1Avck1BMy84WXg3aXJUVVFpT3RzNHdnTTMzVFQ0TFcvM3pqbWlwUFBPTDRjdzV0Y0RCZUgyUnF0QXcrNmxWV0FDczM3SnhweUVpRG51QnVPK2Z5TGE1NDVkL2FWdDR6NVgveloyRGJldHExTlhxelFXN3NGMm5EOTE3NzdidUtxaHg3L1U1VE9YTnVnb0x1MkUyZ25VNURONTBEWUZsa1RSY2pYekFjM0tNNm1jT2tmempqdTRwTTIzbVp1YkpXMzRVYU5TV3N6Q0p5NDJ3R0wvbkRTYi82UzhZc1h5b2E2cjVOa29YdTVIQ3hhdEFpUU82Q0VEWUh0SU90U21Wa0VjUGIxanp4eTNZWDMzN0Z1bTJFZ0pxVE5JUkFyOURiWEpHMkRvS3VmZjNMOWtmZmY4VkN0Wkg4c0t0YTFXMFZQdEtRQWlEU2tVaW1RTnBMNENZS2VHdDQ5Yk5PdERwcDM5K08zbjdYcDBGemJvRDZtb3NVUWlBdHVWZ1JPRzN4d1lkcmRqOTkveEc1N0hJQis4U1dRMHUvU3BRdG9qY0M0QTh4S2dFZk8rRnFsRXcyT1BmemhNUzgrVWZYa0kwUE1NaGpFVzR6QWp4Q0lGZnFQQU9uc3R5UW8ySUYvK2NPZzZ4NTU1TVphd0lONHBseUVZRUVvRVFxRkFsZ013VUlGeXMvbnlDcC82TUN0dGo3bGpqTXVuSWp4V25sbjd6b3gvejhUQVROMmJqL3QzR2tIYmJ2Tm1XNCtmN3VzYjJnb2QyM1FNZ0pGMCthSXBMUklKa0U2RG91Y3hCWVB2Zmo4elFmLzdhTGhrL1FrKzJkV0dUL1dRUkdncnRKQk9ZdlpXbTBFakRMZi9vOW43aitodW5wMG1DN2J2NkM1VlNoRTREZ0p5UGxGc0JJMmVGRVJ1QW9XYjlTdHk1LytjdVRKWjR3NDk5TEpSaUN0ZG1YeEF6RUNQMFdnMDhhWU1YVGJtWC82NXFrL1hQYkhyc1hDK1U2WW40czZyMEFFb0RDQ2tOYlhWYWpJUVNhWVp5VTIvV1RCb3J0UCtOUElVK05QeG5iYUxyTmN4bU9Gdmx4WU9sL2tHUDJ0dTkwZnp6aHB0bGU4b1lCc0hXVTVTUG9jekgrTFdtcVp5NkNvS2dVYjN3WGxXYi9kY3VlN3pqM2dBTC96SVJWekhDUFFjZ2dNSGp3NHZPR0s2eDVPRlBLbnVvSC90bDlYcllTS3dId1B2b0hXMSsxa0NuSlJCTFMybnB4ZG4vdmJoYmY5MzEvSGZQdHRSY3RSRkpmY25oQ0lGWHA3YXEwV29uWEV1SEhKUDE1MDlVbnpmZTk2N2lUWHQ3aU5uSE5hdzlPZ1VVSjVXUktZOUFPUnpZN1owRTcrN3NzYkh4eDF3ZkRoeFJZaUp5NDJScUJsRUdnbnBSNnd3UWIrSjNjOStyL05LM3NjbnlsRUw3RnNJVkRrZnM5MHFZQ2lqZ0FzRzJ6aEVEZllMVW9rL25EcFhkZjk5Y1kzbis5T0VmSGV5UkZnblp6L1RzLysrZmZjVTNINWRWZFVUYSt0cThwSGtKVEFnVFE1Rkh4YUw3YzRKQk1XRk9xcnc3NXU4dDZ0ZTY5ejZwdFgzL3BGcHdjdEJpQkdZQTBnOFBJMU4zOTc2UWxubnA3eXdoRVpMcnhpTHF1TGdROFNORERGekJHVW03Q21WOWVjOHArNzdyNzFvZ2Z2NkxjR3lJcXJhTU1JeEFxOURUZE9TNU4yd3QwM2RuL2s3VmN2YWtpbXp3dVowdzJZQTlYWkxPUkRIeXhIUUNROWtFRytMcW1pRVVNMjNPcjNiMTk1M1RjdFRWTmNmb3hBTzBXZ1JjZytmKys5WjE3NGwrUCtDSFgxLzNHVld0ZzFuUVpIV0dBVXV3S0VyQmNBSkZQcGdtMGY4ZVFiYjF6Myt6dHZHZEFpaE1TRnRnc0VZb1hlTHBxcCtZazg3NDdyZXo3L3hwdTNGRjMzSEpWTTI5ek5rQUxYNExya1htY01QSytnZzF4MlFTWlNsMi9kWjhQTFJwNTJXcUg1cVloTGpCR0lFVmdaQXVkdWNJQi80VEduWHRIWGRpL3k1aS84VmhYekt2VHp3RzBPbFpWZEllOEZ3Sk5waEZUbWtDZGZlLzNCUHo5MHp3WXJLek5PNzVnSXhBcTlZN1pyazF5ZGZ0dTFmWjk2LzRPL0ZtMzNpRUR5ZE9RcllEVHJOOEhMNTRDcGtDeno0dXdNcXI5dTIzMmRXMStvcW1wb3NzQTRNVVlnUnFCRkVmamp2dnZtaDNYdDkyQjN3TE1jci9oVlpWa2Fjb1VzQkY0SUVERkF6U0ZiOUczUnRmdjJvMTkvN2VhVGI3MStpeFlsS0M2OFRTTEEyaVJWTVZFdGhzQkZkOTNWNStsMzNybDdzZEluU010bVNkdUJwRzFCdnBndi9hYzBOMkVyRElJdnVpTTdaMUNpMTMyanE2cklwOWRpNU1RRnh3akVDS3dpQWxWVlZlcWY5ejM2OGg1YmIzdVM4dXJmVGR0V0pIMFBLbExsb0FNRnR1MUNUb1pRaDdEbmE1K09mK3lza1RkdnFzMFhhaURlT2dzQ3JMTXdHdk1KY1BwdDE2M3o4THV2LzE5UVZyNDNjOU1KSFNISWhnSTRVZ0puQ3J3b0J6SXFUcTNrZU9iMSt4engzQXMzM2VTdmFkeEdqUnJGWXlHMHBsR1A2L3M1Q0doZHRjYmw1M0JFK2VCNWYzaDM2TmFEVHRmRjNNY3NpblRnRlFDbEFxMFFBcVZCSnhLOFFiQ05ueG4vM20xbjNubmpOcXZBVzV5bGd5Q3d4anRrQjhHdDNiRnh3ZDIzOUg5aDNQZ0hQTmNkSHJrcDVFNFNHQk5nQ1lCaXJnYWlZbFptbUg1NzdZcnkzeDEvMjRBM2h3OGZMdGMwazBhWlI5a3Z6M3hoOUhXN3JlbTY0L3BpQkZZSGdXY2YvdmZHajR5TWZqOXUzQWhyZFo1cnJyejNubmJCeEszWDZ2ZTdwSlNQOHlqd09FZkk1aHRBSW9DdkpSUWpDY3BKN1B6YWgrTWVQdjIyR3pacnJucmpjdG8yQXJGQ2I5dnQweXpVblU1cjVxUGZmdWVmUVNhOW83SmRFVVVLb2tpQ0VBeVVKY0d5RlZoQllWSkZGSjd6K1JXM2pLdkNLdFVzRmE5bUlldXRWOHNjTGplcnExNXczdFRuYnpRL3RGM05FdUxzTVFJdGo0QWVOODRLY291UHp6aDh2MFNpa2xSb3k5ZTV2QnFlcjdyMnE3MTMydjVpdjdibVhTOHlQenJsQUVLRFpRbW9TR2JBSy9pc29HREEySTgvdnZZUEQ5NCtjSGxsckpHNHVKSTFoZ0JiWXpYRkZiVUtBbWJOL0lXUHh0MGZaakpIMXdVaGo2U0dCQTM0c0ZnRXdUVUFDd0ltL1ZGYjlPazdmUHJJVVorYVQxQzJDcUZVNmFCdktoWFJOaU5ocXoyL3pkWU4wK1IrcCtoNGp4Rm9Nd2lZUHZueTVLZTNTVnA0aWkxVWZ1SEM3cTB5K1YwS3lKMm5uUFB0d1R2c2VqeEUvcDFhRmozSEZ1QVhpZ0JCQkE2elFITE84clNtL3ZpWXNZK2RjUHMxc1ZKZkNsd0hQY2NLdllNMnJHSHJEeU5HZEx2bjlmOWRWa3dtZDRtRXpiMWlVQnJvSW93ZzVYTFFVVkd5eVB0d3lJNkRMbm5uNnR1K0JFUnRubXV0Z01iTnI3MnZITEl5Q2cyMXg3L2tUNDcvVldSck5VWmM3M0lSZUswNG9RTEN3dEVKak1xNURLWVBHZkpHcXlwMFErUTlmL2pEclAxMjNQcnYzUFBmOXJKMVVZSXh3RkFDMXd3ME1nZ1lZMkV5dGNuckV5Yjg1NXg3UjZ4dm51bEFJV1psR1FUWU10ZnhaUWRDNE5pYi85MzF5WS9lSE1tNmRqc3RoOExPa2pMdjFiTW5RQlJDVU1pQzlvc2g5L0ozNzdYWjlyOFpkZktmcDdjVjFoTzJtT1pZTU1kaTBhNTN1ZExsQUFBUUFFbEVRVlNGZlBYSnJmSGlVVnZCSXFhamJTRmdYdGIwZ3ZCUW02dGp2WHlkTDNSQUhxM1dXWjc2TVRJUG5uYlp2SFc3Slk1S1J2cGFQNWZ6SWhybm9WWVFLcHFqMnc3a3dwQXIxOTN2bWRkZkhYM2FEVmZIdjFQL01ZQWQ1RDVXNkIya0laZGw0NXdiYnl4N2RmeUVzNm9SOXdxNXhZV3d3ZVlXQkVVUE5LTTFObHVFU2E0LzNIdUgzZjcrNkRrWHoyMU5OL3V5ZEp0clpvZlZNZ2htSnl4dXBXMXg4UGhYZTJkTWZCeGlCRm9iZ1MvZnVUdE55MVREQWkrWEFla1ZHRk56VzV1bVplc2YvNTlIRmgreXd3Ny9oNFhpSzU2S3ZOQW04ZTQ0NUgxWDVKRkxRckhnZzNMdHpkNmVNdkdLYys4YnNkYXl6OGJYSzBDZ25VVlRpN2N6aW1OeW0wVGcybEdqRWs5OTlzN2xOUW92azY2Yjhmd1FGQVZPaWx5ckFGeXpyQllWSDlobmkyMk9ldWlVYzJjM1dWZ3JKRm85dWk2V1VrNlJvUTlTZWh2Ty9mYUx3NHhsMUFxa3hGWEdDSHlId0xoeEk2ejVzMmJzcGZ6OHJod1ZKaEtKMlpxeE5xWFFEYkVqVDd0dzhmQjk5amdSaXRrYmxReENMWDNncUVIVG1qb29CQkNPVlJlcUk1NTQ0L1dSSjk1MVV4L3pUQnc2RGdLczQ3QVNjL0x1ckZtSmg4ZTljMUxPenZ3T001VzJSQnVZUWxCaEVVQjVwQ0R6SVFUNTkvZmJmcXUvM0hQV0gyYTFSY1IyM0hIclVGdldOMHBGV3VpUWk2ais4QStldUxwdlc2UTFwcW56SU9EUG5GY0pZZlVoRm5xdWpEeUlaUGdOYXIyNExTSmdsUHF2ZHQzcDZrUlllSTJGaFVMazVVREpDQ3dtU0E0dzB1czJZS3JycnY5Nys3Mkxmei9xemk1dGtZZE9RbE96c3hrcjlHYUh0SFVLSEtVMXYvRDZLODZjdW5EUlZTSHlyc2tFZWFvbGdCQU10SllRZUZsdFI4R3pQVjEyM04wblhkem1MSXZ2VVJzaWcwaCtYaXdXSTF1WTEvU0tlK1ZxWngzeWZYcDhGU1BRQ2dqb1lOdlF6KzRYQmpsbXhsU0UxbGRGTGRyc0o1SHZQL3ZTNnAwMzN1d0V1MWk4SjIyeGlLYjFFQ0d0cVFOQ3hBUVVwVXdxeXo3ajVYYy8rS3N4QkZvQjBiaktGa0NBdFVDWmNaRnJHSUV4ZW95NDh2Y24vR3BCNUorYlRLV1NOaW55cURZTHJnSW9Ca1Z3S2NaRm5OakxUbDAyOGNaSDIvUi9URFByK1YzTHUzNkR5QXRTU25BczIvVjg3N0J4ejQ1SXJtRlk0K3BpQkVvSTZERmpSQzZiUFZBSTBUMlZTb0VtdjVkbTRvdDlCbTRRbERLMDBjUG9pNnJtSDdMTGtDdWkydnEzZ3NEelJjcUdBb1lnQllEZ0hJZ2ZxN2JvSFhQeHJWY2ZQM1hxVktlTnNoR1R0Um9Jc0dYenh0ZnRFNEdxeXg0Zk9qdFh1R1ZCUHQrL0dJUWdTT1E0MUxJcGkwRlowZ0h0RmQ1TEt2YTd6MjY2NTB1ak1OczZsOTE3OWw5VVZsYTJ4SjNKa0lIYWV1R0MyVnZIYStsdHZlVTZKbjNURW5ONlpWeDdmMUNLUjRwbXkxemt1SlArQ0FiTm81dTJ6ZlB0WjF3dzU1Q2RkenNsTGRpTHRJeEZrM3NYTk5lMC9FYUtQZEtnR08vNjlid0YvM2Z1eUJ1UHB2RkZVcU50OHhOVDF6UUNjUU0yalUrYlR4MTh3VWxiZjFYWDhKZklkbnRaVGhLZGhBdVNGTHJXSVhqNUJxWHI2NmYxc2R3TFo5M3g4TVQyb013TjRISnV4bWZNbmtvV3VyWnRHOHJLMHVXUnpCMHdmZnJZMklvd0FNVmhqU0dnOVNpK1lNNk0vYlNTUFJrZ21NOGxhMll0NnRHejcwekVLZ1h0WUJ0NTdrVmZiN0hPZW4vR1l2RXpGWGtrSGhUNFlRRElpU05tQVRpSjFKVHE2a3QyUGUva2ZVaXBZenRnS1NaeEJRaXdGY1MzUUhSY1pITWpjT1l0dC9TYVVaKy9JUWRzSnhRT09IWUNzdms4K0g0UmtOR2d6ZForMDBXejg0YmZmUGRIMk1vZmpWa2QzZ2NPR3hhR1duOGlwWmFCSHdGSXhTMFJIVDd2MHdueDcyZFhCOGc0N3k5R1lQYW4wQ3NvMUIrQlVycU80d0MzSEYzMG9pKzJxRi9iKzhXRnI4RUNucnYwWDVNTzNIbW5VN0FoLzdtbE5aREhIZEFXdENRbndVbFhnRXdrQm54YlczZlRmaGVkdmZVYUpDdXVxcGtSaUJWNk13TzZwb3E3N2FXWGVyenkwUWRYaHN6ZDJiWlNITTMvUkNZSG9MRm8wMlZKWFZlM2FINy9IdDB1LytjQmg3NVVoYWpXRkYzTlVZK1pmTmpjL2N4eUVsbkxzb0FMaGdrTDE4dmxGc1UvWVdzT2dPTXlWZ2tCWTYxT25UcDVUNmE5blRrQ2VsNEFZYVRDUkdYbGg2V3ZHcTVTS1cwakV5THF1NDQ3OThNRHR0L2xENDd2ZjgxUUt6L3lhUzNkaG1JaGhJTFNHRG5PK3RQbUxmalh2NSs0YjhPMlFYVk14ZW9pMEdFVSt1b3kzcDd6VjJuTnJuL29nVC9tR1IvR3VNTjhYd0pIQVRJSXdVS0FzSkJ0NkpIT1hELzhpR01mSDI0K3A5b09tUzJFY2lMamZCb3dUdFFyQ0lPOEhma05CODM1OE1uNFp6YUVTTHkzUEFLTEpvOU9jVm40clMxMEJyVUVNMW5tcnR2ZyszcEN5OWZlTWpVY2Y5cTViMkI5OWxMdWUzTzUxaVdlU2wrVFE0dlcxbTBNSEd2UGUvLzd6TlhQamhzWHY0VGFNazNRb3FYR0NyMUY0VzMrd205OC9ubG45QmtubkpSUE9HY1d1VWhxeFlBcGhCQVVDRWZRZFZUSU1IYkRnUDd1RFZWRGg3WXJ0K0N5YUcyejdhQVp5TjJwVWdPUXBRUU1TYUNpM09pTHJ5WU9vWHVhdGl5Yk83Nk9FV2hlQktpUHNjOG1mYkVqaE1XdFVRYWsrQVJJUlgwUitOU2UvZnArMGJ5MXJiblNoaUpHOTUxeHdSTTlIZWRLNWhYcS9LQUlWc0lGQVNSRHdnaWttN0R5Q2Z1Z1MrNjg3bSszakJtVlhuT1V4VFUxQndLeFFsOGxGTnRPcG9mSFBETjRUajU3a1NkWXdpMHJBOFlZUklFUFVSUkE0T1dsempVOGZ2eGh2N3BoYk5XOTdWYVpHN1M3RjlmekkyRi9pVXpRclFMTCtEeDFsQXE5aG9PL0dUKzZqQ0xqUFVhZ3hSQ1lOLzQ1VnhXemV6THBWN3FDUVJBRW9KRkQzcGVmZDF1L29nMS94Mkhsa0F3ZE9qUTYrL0JqSDZ3QWE1UlFFWW1PQWhTTFJiQ1RLZkNKMXlpVDV2TUM3L2hiSG5scS81V1hGdWRvU3dqRUNyMHR0Y1pLYVBudGRmL2E2dXVhNnZ0U2ZYcXZIMmpBdk84QmR6a2swZzRwODJ3a0MvV1BEeHl3OW5sVit3MnZXVWxSYlQ5NTBLQW9tU2w3SjFBNjlNS0FsaFFZMkF3NTErSEIzMzcxeFhadG40R1l3dmFLQUZubk9IMzJwSzBzQ0lkenJTeFNlUkNHSVpDQnJpeVJuTERPT3NmNzdaVzNwWFNmdHZmZTlSZWZlUHFGS1MxSE14Vkd3bUhrNVlzZ1MyTXRUNXpLUktwN1hSUmRkOXIxVis1bThGajZYSHh1MndqRUNyME50TStxa0hEcWlHdTZ2ZmZWcEV0VUtybnVndm82dEJKSlFLYkJEL0lRRkJ0MHBlTk1PM25Za1ZlUHJicStibFhLYSt0NUVGRm55aXErQXNZTFdpT1lqc3EwQXBmclNqOWIveXM5YWhTSGVJc1JhQUVFcGsxN3djN1ZWZStySTM4dGdRQytWd0RORUNTeU1GbGUyVzUrL3JreWFFN2FaWmRzMzJUcXlxQys1aE5RVWhrZUhaSXJkQUVhT0pLVzcvUGlPKy85NmVLYmIrNjlzckxpOUxhQmdKR1RiWU9TbUlvVkltQSt6ZmpPaEVubk40VHFrRWh4YWpNQk1vckFLRGlHQ2lwVHpseW5rUHQ5NnVNcG42eXdrSGFZWVBGK2RXaGJVeTNiSnBYT1FVY1NtQXJRUW4vbytQVDhkZG9oU3pISmJSd0JZNDNPL1dKOEh4YjVoMWhhY3FZQk9MZEEwN0NMQUJlblJJOHYyemdMcTBYZW05ZmZPbkhyZGZwZjZPVWJ2dFkwWWVZS1FFZ0dMck5wVlYyZzNiUDdIZytQZmVIUzY1NjhwMksxQ280enR3b0NyRlZxalN0ZFpRUzAxdmluRzY4NXFGN0tNNnhFV1lLQkJTNTNnTHhrSUdudFhQdUZyT1g1VngvL3dCTXZWMVZWMFhDRUgyM3Q5M2FqbmN1S2ZoaTlDd3dsUndHY1JJeFdBZDBHL1d1cVp3elZPcmJTMjIvcnRsWEtSN05pUTI1SHdkWGFYR3VJd2hCczI0WklTUjFJK1dWOUFyTnRsZktmUXhlU0orejFmOS80NWthOSsveEhlY1VHQ0NLd2FQcXNpaEh4N1VKOUdOblFwZngzVDc3LzRkSG1FOU0vcDQ3NG1UV0hRS3pRMXh6V1A2dW12Zjk2d1diVDYrc3VDUml2REVJTkdHaElNUXRRQTFtck1uQkNlZWVRN1FZLzJONSthNzRxWUNBT2paVFNIMHFwY3hTQWhBOHBjd21vdzVTZnp4ODEvcVU1UFZhbG5EaFBqTUNxSXZEaGg4V0swR3ZZajBkaG1RcEM4MUVqOGtaclVBb2k4a04vTUdUSWpHQlZ5Mm92K1doYzZjRWJyUFdvRzhwcm1PY1hYT1FndllpV0drSmdOSm5KTXl6N05sdDc0YVdYUEx4bmUrR3BzOUlaSy9RMjNQSTN2L3BxMTZuejUvODlCM3BMNXRJd3N4M2duRnpQWVFEb0YxVUsxWHNIRE5ybWlydE92cUNtdGRobzZYcFRaVjArVjV6UEtwQTNJcEFSS1BwRGlKaHI0ZmJ6NXMzYlhtc3lKMXFhaUxqOFRvTkF0SERPaGtJR2U5c1c1NHlrSTdNNGVOVDNrTEU4Q21jQ1lzZnlnaTF0MkpHblhWSi8wSzc3WHU4Ry9zdGhQcXRTWlNrUXJnMGVMWFBaeVF6VVIycXRMMmJOL2t2VjB3OE1XUHBNZkc1N0NGQ1hiWHRFeFJRQm1OK2IzL0R3M1djVzBONVgyUTQzQTB1QkJFOFhRR0lBSWl4TUtZLzhQOTl6N3FXTE9qSmVtMjIwNjlmSTNNbFNhTkFPZ3ErQzBxUW1JVmlLQjhHaDVnV21qc3gvek51YVErRGJiOGU0K2NYemZwMjBzSWRYekFLM0dJUk0wdlJSUTRnNE01SjZ5cHFqWnMzWGRQZEpKMlY3T2VLZm9QS2YxUHJWRURtYXhocDVBNlVBaGdrbWtsMjJILzNpeTVmY0V2OCtmYzAzemlyV0dDdjBWUVJxVFdiVFpIVSsvK0diTythUm5SRUJjeG0zSUl3aThyRkxzR3hxc3FCUTJ5dVQrTXQ1WjE3OHdacWthODNYQmRCOTRCc0ZMOUlUSXRCYW9Tb0pXU1FJUUdsZ09oZzhkL3pFOVZxRHJyak9qb2ZBd29uamVxUHlkZ1Vka3FmWmhrRExrcDlkVW45VHlMNUtwWHJPN0hoYy81Q2pTKzU0NkpOZHR0N2lRc0gxZ2lEd3RaUmtSSGdCMkZZU2JDY3BjcEVhOXN3cjd4Mml0ZVkvZkRLK2F3c0lVRmR0QzJURU5DeUx3Ryt2KzhmQXFYTm5YNk81Nk8wSUMzUDFEV0M1RnZpK0J4WVpxZVdPYysrdmU2ei96R21EQjRmTFB0Y1JyNDJMTStra1ArYmNDaUlsZ1FSSktTQUpXMXVJZFdyckYrd1IvNFN0STdiOG11V0oraFZXMTh6ZkNRRTNFQ2hvWWFleHIzRmE0bUpjZ0NYY3ovcHN1bDV4elZLMTVtc2JqaWkzT0ZlL2tRWTJNdks4SXBDSHdrazY0QldMVU1qbGdWbDIyWmV6Wi83MWxHdi90ZTJhcHk2dWNXVUl4QXA5WlFpdDRmUXpSOTJTSGpQaDR3dnF3M0FMdEVUcEMxV3BoQU9NUkl4akMrWFgxcjEwNG0rT3VLNnFxb3BNOWpWTVhDdFZseW1yK0paeHExNHBBTVlFa1BBdFVTSVlrSGRVSHZOUmFsSDNVc1JxSHVMc01RSkxFWmoyd1VNWnBjUDloUkFaQ21BK0pzTnAvUGxCQkY2Z1BLbkZPd01IRHVzVVk2NEtxOVE2RmQxdWQ2UGdmd1NFTEJRYklKTk1RR1ZsSlRUNFB1aEVZc0RiRXlkZStNclhYNWN2eFM4K3R3MEVZb1hlTnRxaFJNVW9jbU5ObURoMWVKQndqbFNPYXluR1NJRXhzRGlEZkM0TDJpdE03eUtjZi94NTkwTm5RU2ZhTUNucUl3MWZBekt5bEdoeVE3Z29GWUZXQVhJbXQycW9uN2NES1htRWVJc1IrQmtJbUw0emU4NzBnYWlqZlFYalhHc0VZNWtEYmR4eUFaaXpzRExaZXlvaXJmbFFYR2ZZMzduNjVybGRrUDhyWmZHdmdOenV1VndEMUpNTUF2SldSTUxtUmRzNTRNODNYM1h5cEVtVDdNNkFSM3ZoTVZib2JhaWwvbjdxVWR0LzlOVVhGeXMza2FSRlBKb2NLeHBMRWlJL0FKZEJmZC9LeXF1T1hXdmpqOXNReVd1RWxFenZBUTFhOHZka2hGR2tOUUFKWFBPelBVUUFpMFZPSVZ0M3lMUVhibXBqZ21XTlFCTlgwZ3dJVEo0ODJvcTg3QkU2OUxxYTRzeG5YbTNYSWNzOGdLSWZhTS9YbjZUSzNWcVQxcG5DbDNjOU9sSFcxRjV0YTFrakxBNG9PQ1JTYVFoby9FazNtVmlROXk2NDkrTzM5dWhNbUxSMVhsbGJKN0N6MEZjMWFwUmRIWVZuWkhyMFhLL2dSOEEwT2RuRENDekxBa2FLQzNQRlZ3YTRxYWZJMWE0NkN5WkwrUnd3WVA4UXVmMkpRcEdUWktxVFJWWDZUYnBnaXJCUnlDRVlOTFZtVlJ1WjJBQUFFQUJKUkVGVTN2cEw4OGZuR0lIVlFTQllXTjJIc1hCSHgyS0lXcFllUlVTYU56SkFab2VXU0h3OGNFajNEcjkrWG1KOG1RTWlxaU4yMnV0Wlhpdzg3Z2Y1VUNSc3lCWHlKVnhxQ3g3VUIxR3ZKMTU3L2V3Unp6NmJYT2F4K0xJVkVXQ3RXSGRjOVJJRVJvMGF4Ujk5OWVsZjE0TTZvalpib0NVOEcwSmpsZHNPQ0k1SzVuT2Y3TDM5Vm45NHN1cWFoVXNlNlZRbkkxZ0FyZmU0Y0w1bGdpWTRUQUNROTFNYnQzdm9RVHBoclJka2M3dVNvdTgwL1JuaXJWa1FNSDFtL3ZUcE8wUmVicE9rSThEMEtScUE1QjJMd0hJU3BMejRZckNTN3lFT2I5VDB6VkpyK3lua2xyUFBydTZmTHF0eUdmdFF5cERtMUJ5QU1YRGNKUEJFa2dXYzczZlQ0dytjT1NwMnZiZUpSbzBGWUJ0b2hpZW5UTnk0T2d6K3lKeGtJcE5NZzBNMnAvbUdkT1FWQVgwdm53YTRkZGg1VlhQYUFLbXRSa0wvZnYzbjIzWnFxdWZMa3RmQ0NGMEdDR1JWa1FzK1RBcU1mdlBCQ3pjUlZLMUdZbHh4TzBSZzh0aGJTWStyZ3dSQ09kQUVFWlV1Y2FFUkFXbmlxTFg5YmU5ZTYwNHNSWGJTdzhFakhsaFF6dG5OMmkvVU9ZSW1QYlRzaFlRRktnU1JTUE5BV0NlUGZ2aStyU2dxM2xzWkFkYks5WGY2NnNsQ3dBKy8vdXA4RC9UbWJpSUZEbmNneUhrQVVvSExlWlRoK09qdFZWZmViMzVPMHBuQkdnZ0RQYkNUYjlsdVF2bEJWSHEzQUVDVnpscUdMSjJ3dC9jYnF1T1g0NXFsazNTT1Fzell5MmNiTnBGQjdtQ21GVy9rV2dHaUJvME1KSjNzWk9WNDZEWm9jV05hNXp4V0lhb3JSaDR4dW5zcU5VSUZmbUJ4QkZYd1FUQUxBcG9BRlFFMitHcnV2QXZqYjcyM2Z2K0lGWG9ydG9FUktIdjk2Yng5YTBMdk40bE1HVGNTSlBKOGNNaWxsYkNFTHRUVmZuYjY3NDcvendFYmJPQzNJcGx0b21vY09qUUNkRDRtMTNzdW9NbU9Wa2lDbHdTTFVzQUFTYmpvUkNGYmQrRDA2ZmM2YllMZ21JZzJqOEEwODI5U3MvVUhnd3pUeGlNbXd3Z2k2VU9rSXdpbEJEOVVZVU5ENGNOQmd3WkZiWjZaRmlad09DMDViTlNsMTIyeW1CdWp3MUNsaENCUElwWndjc3JLV0U2R0IvNzFqSWQvVFRLTnRUQXBjZkZOSUJDRDN3UTRMWjEwNVJNUHIvdkp0OTlVV2VVVkdZWUNaQ0RCL1B0Q2w5YUppOW42M0RhYmJITHJlVHNQL2FxbDZXZ3Y1ZmZvVVRrcmxEQmRjRnNqWnhDUmRjQzVBTTQ1UkVFUm1mSjIrL3FqR2ZHWDQ5cDRnN1lWOGhaKy9uay9DQXREQlFObWtVV3VJdzNtNTVCMENZZ0lHbGhkbjdVM21JQklKbnRiSWJvVjZYajZ6LythMWN0SjNtS0Z3V0tJL0JKV3duSmdjVjBEa05zOU9TOWJkK2xmSDdwMzAxWWtzZE5YelRvOUFxMEl3R092dm5LRVc5bGx5MUFURVFxQWtZL1BzaXhBR2lvSndOZUhiTFh0VXhnTEV3S25jZSsrMFlBYXFmRWpZZHVFRmpuY2xRSkdFeUZGWjAzcm40N04xc3N1bUxkalkrNzRHQ1BRTkFMNVhNMTJXZ1VEYWJ4UlJnWm9qb3kwT3pNWFhBT3p2N0RCN3REL0s0RTRYYTE5MkRhN3ZGYUcrQ2huMnVjV1RhcTFBdkl1QWlaY3lJSGU1TkhubmptNXFxcktJTGhhNWNhWm13ZUJHUGptd1hHMVMvbnROZjljZTJGRDlveENFTHFhaElpVUdvd3lsMXJwMFBPK09HUy9mZjUwNmVHSFY2OTJ3UjM0Z1o0OTl5a1NUdS83WGxna0hRN214VGl0RVh3L0JKc3pFRXhsTEV1Zk5HYk1MZkhMY2RCWnQxWGplOWE3b3hJNjlBNERIVlhRK2puTkRqV0FKbkdJQ2dLeVBqM1BpOGp0L3Y3V2EyOWZ2Mm9sZG81Y1ZhZWRWamhrNkI3WDJSWitrZy95T29oQ2NydEg0TkVTUlVRRFVsU1VIZlBvcFBIbUZ5ZG1mdFE1UUdsRFhGSVBia1BVZEJKU0h2cnNyY3EzeDMvMDUxVFhMbXZaYmdJc3hxSG9lNEEydWQzSmI5eXRXK1hJRTM5MzhyUk9Bc2NxczBuZUNsWFJyY2U3NUdxZnBjeFRKSUNOWWplWGpDWkZTb2JvT3JoWk1QZWJiVXhjSEdJRVZvVEExSmtUTjVReTNJT1VPUzJmU3pBVFF3Qkdad2xoNklPVUttdHgrME1ZT0RCY1VSbWROWDZiSTQrZmxVeTdJMzB1ODdickVtd0NBa1FBMTRKYXIxQVpPdnp5Uno5NWYrM09pazlyOGgwcjlGWkEvN1lISHQxWlZGWWNVVnNzOGxBcThMd0FVdVN5OHJNTjJnckREL2JaZGZEOWd4RmpRYktjdGhuUWIvUHBscHY4RWhpQ0gzcWxIRGEzZ1pRNVJGRUFJSU0wZVRqMjFXUEdpRkppZklnUitCRUNldHc0UzBiaFFSWlRYVXJmTTlDYUZMa0cwNmNZRThDWURaYWJudEcxc3ZJai9OR1MxNCtLNnBTM3d4SGwzcHZ2OUJnMjVONGc5NWowZlIvQ2tNUVZzd0RjSkVhV3M5TTFOOXg0Y0tjRXA1V1pqaFg2R202QTg1KzhwMkplc1hCaGZSQlY4SFFhSWs2RFFIQlFVYWlUTXB5KzQ5cnJYSDc5WVNmVXJXR3kyazExdmI4cCtpUnd4eFY4VHdraFNpL0VHV0ZpTEhTT3BNL0p1bklaN2pJdnM2aFB1MkVxSm5TTkl2RGV2RGQ3aEY3RHpnd2o0TWpBZkgxUWdRK3VTeDR5c01pRjdHaXA3SW5keS92RzYrY3JhSmxyamowMnY4K0dBNjlJS1AwdHAva1FTc3FJRm9EbFFLMVVWZzJITTA2NStUOGJVbXk4cjBFRTJCcXNxOU5YTlk0c2c2ZWVmdkg0eGZuYzlwbXUzYkErVzZSbE93UmJXQkFWQ2xvWEMwK2ZkOHhKNzNkNm9Kb0FBSWNQbDVaYk5zRjFrNTRFRFpMVzdteWJMSFNsU2xaVzBrMWdGQVFEdi94cThzQW1pb21UT2pFQ1hqRTN3TFpnQ3hsNXFNazZkOGx0ckhRRTVwK1BCTDRDTHB3b2tQcWRkWVljdjRaL0x0cStHdVdNWGZjWkg5VTFQQ3VVMHFsVXFtU2xGLzBBa3VXVmtOZDZnMWMvZk8vc3FoRWprdTJMcS9aTkxXdmY1TGN2NnE5NzllbU5DMTd4Yk5kSk9uVzVQS1RMeThDc24yTVE2REpoVFQzbCtCTnZHTHJ1dW8xKzVQYkYyaHFsRnBtZVNVc1ZDMGlGZzBJRnRIeGVVdWFJREl6TDFPSzh5NklGODQ2UDNlNXJ0Rm5hUldYRzNaNnRxLzIxelVXUGhKMEFWQm9FNXlWUGoxSHNUakpGazJ4ZW02bnM4bkhzYm0rNlNZY09IZW9kc3QrZU44dENibW9VZVpyYmhDTXlRRWxqRWdXUEVJLzhhUHFVUVUyWEVxYzJKd0tzT1F1THkyb2FnUysrK2ZZSVlkbnJBRERrbHFDMWN3OTBVQVJMeVdMR3NtNnAydit3NlUyWEVLY2FCTXJLVW9zaXhiNGtzYUU1NTZXMWMwUU9DSnlXMENVNGpzTlN5ZVJ1Ynk3NGNBT0l0eGlCWlJENExEdWhaekpoSDBBelFJc2hnaUxQanZIeUdMZTdsQnJDUU9xYTJ2b1ppV1JpL2pLUGRZakxsbURpdGhQUC9LYlN0a2M0RElxZ1FocUJDSnlVdXVXNEtKRjNtMVZUZldTVjFyR2VnVFd6eFVDdkdaemg3SHR2Mm5sdUxuZUNreXJqVVNSSnB3dFNSQkc0d0tDY3M1ZitldHE1ajY0aFV0cDlOWnYxN2xOckNlZGRwVEhVNXI5amtaV09pSURZR0l5UXJpaFBkYXR1V0hSSWJLVzMrK1p1TmdhMDFtengvRGtIT1J6NjBlQURwZ0VTNUc2bkNTQllsZ1ZBazBKdVd6S1pxdmhncmEwRzFrQzhyUklDdXcvYTdFRVIrUy9ZbE50MUxQRDhFSEtlQnlLUnhweFVoejkzemtuN0V2Wkl5Zkhld2dqRUNyMkZBVGJGajFrNEtmMzBhNitlS3NyUy9VSVNJa0FUVm1NTnBCd1hkQ0VYc0lMM3lQQnR0bW1WRjNEK2N0TzFtOTh6Wm94cjZHdzNZZUN3Q0JQSmNZR0NobEJHSkl3RkdWeWFBb0p0dWVBWDhoQkdubkNGMnY2cnpMeUtkc05YVEdpTElqRHg3WWZMdlZ6RGppcnlCUU1rVnp0QzZIdVF6MmNoQ0NKUU5Ma09RL0NaY0Q3dDNmc2dyMFdKYWViQ3o3bnhSdWZvdjV5M2JXdDgxT1dlY3k5ZHRNMzZHejRZWmV1THhXSUJ1R3VENHlZaEpCVWVPVTZQV2RXTGo3LzhoWWN5emN4eVhOeHlFR0RMaVl1am1obUJ2MTE3eTA1RkxvNW84RU5XSklsQm5qMXlEWWVnZlY5MmQ1T1BETC8vMGY4MmM1V3JWSnlaTlQvNTZndS8vODlOLzNmcmlHZWY3YlpLRDdXQlRJaW95bE5kUGtMTC9Wb2pTUTNPUUJOZGpEVXFkc1lZaE1VY1doYnVQRy9HdDV0VFVyekhDRUErdTNCZ0ptMFBjYTFTVHdGRm5qTHpRaVVpQWxubXRGVGpRcWpZakhRNjhScFNINE4yc3UxL3pqbGx6NzcyVE5XblgwdzVmZXpZc2F3MXlON3FJbmltWDdyOG5sVFNEWE4rSHJKRkR5TGd3R3lYV1dWZERucnRyWEY3dEFaZG5hMU8xdGtZWHRQOGpoZzN3dnAyOGZ5amxTMVN6SFpBT0M2VTFuMzlBQnlwNWg0NmRNKzd6SDh6V3ROMExhMVBKcEpDVjVZZGRkL1RqNTAxYXRRb3ZqUytyWis3cHJ2bUVvbk1aOXl5dFZrRE5TS2FNd3Q4M3dkYVB3ZEdibmlhTlhXcHIxdDBrTmJ4YjlMYmVudTJOSDE2ekJpUnJWbTBRMUJzNkJrRlJUQWZqK0ZrcFp1K0k0Uk4vVVdRVndlQUNXdmFCdXR0djZDbDZXbXU4czJrZkdwMjBhOUZKbk5TTmdpTjE3dTVpbDZ0Y3Fxd1NpWEM0TDR3MXpCRENGNTY0VmRwSk5kN0NFcFl5VzlycTQvWjU4SUxVNnRWNkRLWjQ4dFZReUJXNkt1RzA4L0taUWJiMzY5NTZsZDV6UTVHY2dVckpCZWZrbFNXQWxjcjZKVktQNzNIa2NlOFJ4R3R0b2NKUjBmcGxKdDF4SG1YUGZYQTc2cEk4TFVhTWF0UjhUcERqdmNqSlY2UkNqeEY1cmxDb0pVTUJFUUV6eXVDbTdCQm9CSU94OFBHam41L25kVW9PczdhQVJINFZFM3BpZG8vemhMb2dKWmdjVkY2SVU2SXhuZFp1SEJJb2V1UVdZa3h2UWVOYnhmdWRpTmYxai82TjN1eWRMcEt1VTUzYVFzWU1tU0lhcTNtMi9mT0RjYzVnSTg1bktsY3JnSHNaQUtNNjkyTE5LQ2QzRy95L0c5UEdLVTFieTM2T2tPOXJETXcyVm84WHY3UVF4bTdvdktZWXFUS2cwaUIwaHFFSU1pMTFGQW8xRzI2M3JxUERFV01Xb3MrUkJKeDVIaU1YQWNLdHFpQTh2TEwzbjNscWFGR1VMUVdUYXRhcjZFOVdkSDFXOHRKTG1aTVFFU1FSbEZVOG41WUZnZWtpWk9NZkVBWjlQQUxkVHUxQjU1V2xmYzQzK29oUUczUEd1b1c3NmhEZnkydG9sTGZVSXJHSXdKWjZoS0U1UUNRZ2ljUFdrTW8rU2RJMXVicTFkQTZ1YysvODdiTmVXWG1ueUZqZmQyeWNraVdWYWkvL2UxdnVuV29BVEJXK3VCTk5ucFk1Zkx6eXBJSkhkTDRLL2dlV0xZTnRkbHNraWZjSXlmY2Ywc0Z0TG10NHhCRTJxWGpNTlBXT1BsNCtzU3RhdktGL1VqTk1FdTRrRTVtb0pETFFsTHdxRnZLdVdQQUZ0dDgyT28wV3hZR2pFRVJBUXVNRFpoUjMzRER1b2NkdUdXcjA3VUtCUFRzM1c5R3JoQjhGRXF0ak51VWN3Nk1BekJRSUVtNVc4Z0FwSjhJL2NKZTB6NklYOHBaQlVnN1pKWXYzM2ttVmNnMjdJazZUSnMzMjJreUNPUU5Ca2I5WHBDRmJ1NXBRcWp6aFdDcWNGTnQvcWVqVlZxenMyNitadTJYMzN2M1JtMjcyNGZFaWE4MEZJTlF0bllEanZyRDM2YjBzaE5YMjZnTEhJRW0yQWptOS8wMkYwajBiVGZ1NjIvaXRmUVdiQ1NTZUMxWWVpY3Vlc1M0Y2RhTStkVy9SdUhhNlV3RjVQTkY4SEo1cU15VWcxZFhNN052ZVhwVTFkQ2hVV3REeElXbHM3a0NpRVFhV0RvRERXRzRRZVFtcWc3Ni9lLzd0alp0SzZ0L2dGcXZqdHZKRHdDdFVDT1NrRFpXbHdKTkxsVmpvUXVTS0JibjZESzEzYUtacytOL0ZyRXlRRHRvZXI3dW0zNmd2TzA0UTVKM0NoZ3Bja1RxTHpUMUM2SVFpbjRJeUlSaXdwMnc5Y0RXK2JYSjZrRC82UldYVmo3OXh0aXpQRnRzNndHQ1NLVkFJVTFqVmF0NTI3OGpIeEhWYi9iYi94V1piWmdtVUlFZ2oyUmR0Z0VjSndISUxldkxtYk4vVS9YOGcyWGZQZEFKTHRZa2k5VEIxMlIxbmFldTk5NTlmWWVGZGZXSElMTXdDaVJVbGxVQ1NCSW1KRUI2cHRQL08zUEhQU2UwQlRTVWxNeHhYSEk5UmxBb0JxQWNWOGlrZStEa1JiTXZHRlpWMVdvdjJhd0tOamg0Y05pNzUxclBjNUZZN0ljaGVHRlFVdVpDaU1iSENXOVhXTWc1VzI5UnpheUR4clNUOXdNYWlZK1B6WUhBdUhFanJQcjYrZHNLa0JzejFLaEk2ZEdTTGszK2FEaHFCVzRpQlc0eUJWNGdDNUZtci9mY1lvbUJnaGtBQUJBQVNVUkJWSjlDYzlUYlVtV2NPbUtFOWM2NHo0NHZPczQ1UlNhU0h2RWpOVm5DMU9jVDZWUkxWYnRhNWY3NXNOOU02Wk11ZXdxOW9sTG1IeWFCZ3RKeUdNa1pkSjA5N3J4LzlFRzBESUtyVldpY2VaVVFpQlg2S3NHMGVwbk1OOXMvbmpUcHQ0bnk4cjZKUkliY1RoYmtjamtRakdzL1d6OHY3ZGozRFI4K1hLNWVxYzJmMnd5cW9GQmtPcElnUXdWTVdDQ1pBSjh6VVMvbGJ6NmNNdUhBWWFQYTlwdnZ3aGJUdzBoOUxVbXdsUlE1UTlCQTBHb05RRzVJSTFCUUJwWUFkWWl6NkoyZXpZOWlYR0tiUm1CZXR0ejNzc001MHdrem9UWmFoUG85YU9vbjVrWEtlbG9DRTl3Q3JYSFdXbXYzZVJjUnFlTzBUWTdNYjh6ZmZQdlZuVENWUEJrejVhN0hPSTFYRGxtU0xhRlV4SjV1RS9MY1lMamxoaHM5eklyZVZLWVVRVXQ0V2h6SVFLZUpreW9Yam52Y3hYZmZuYWJZZVAvRkNQeXdBUGJEMi9pdU9SQjRjT0piZlJmbEc0NEFZUWx0cEliUkx5UkFTTkdFWFRObGQ1NXd3bGtUbTZPZTVpakQ0VFltVUlETk9QaGtvVE1TYm1TMmdDN1A5TTR5L2M5Wlk1OXQwLzh4YWVDUVJRVlE3RzNHbUJRMko4RXNRWkZ5TjBMYjRCUDZBVEJFU0NiRVJyV0Y2cDBwM3NoMGs3VGNNSW9tTVBmY1UrV3VMTjl5SDQ0ajJ4UUNtdHF5b2JCb0VHTnFVTWs2bHlIMUJVRjloSFEyOVFua0FKWmxnYVNZVU1sUHRxN3IyYVovcmpZN0FYM20xdGIrTStEV0JwSHRnRWM5R1drU2pvaWxQZytSWW0ybEFVYWVkY0cwakJBM1JiNVhJRE1kSXBwbWwvNS9SYnFNZ1dhN1BqMzJ4VzNiQ3EwZGlZNDIwd0U2Q3Fpa0NOaFg4eGNkWlZkMDdWWXdGaUlOT2kwaktITXNZSjQzODdjSEgvREVhZVFxYmd2OFhuNzU1U1RUa09YemVmQUtSVWlUNjdIMHhTeFM3aXpoTXVXNkc4K29xZnZURmM4OVJPc0ZiWUhpbjlKZzNraG1xWW9QUTRuNUtBaEJFZGFNSVhCT3lwMndSODZBazNVQU9zcUUrZnFkSjQrOXRVbS9aUGZ1azVGRnVRMGZlT0NQU1dwTEtnSGlyWTBob0t1cTJLaFJJOHBYUnRZN3pyZEppQXE3dVJ5N2dDUUxWa3BBUklqb0xDbVlpUjh5QmdXdkdOako5RHZtUC9tdHJNeldTci9xNmFjejczMzU1Ujh5Zlh2dnhNdFNuSlBQaVE1UUtCVEFva2tKOVZVek1Xa3o4aHdSMVpIN0hmQ3lRUHhhMGpJakk1elRaUm5JNVFzUUlIZkJUcHdVcjZVM2YyOXE3ZzdRL0JTMnN4SlArTThWRzM0OGJlYXd4VkdFUlk3Z1F3anBCQWZ1NVdDOXlzeWJseDR3N0xNMnc5TGZBRUtsRUFYUlJ3b3dLSHJBa1JGNURQeFFBM05TakNYTEQ3N3Q3b2VIa2NCb3M4cXRHT0UzZ2lWbUM4MTEyclloOVBJUXFCQ2tZQ0F0RGw3a0ExTWhUMWxzdDdvRjAzczJ4Y3VRSVgrVEtmUjVKdlIzSGpueU5FRmd4SHNiUXNDMDNiM2xkV1hGNmkvWE05Y3JJcTJVNWxmM3NVSzVxNGlVaFdTVTI1WUxvUXlBa1hJeG5ibmtQZU1NcUtzM1NLMCtYMUZaclIxdmVCbjV5SDBIVkhQeDI0TGowT0tCQzBER2drVkxaVW55cUpsM2RCUXhwRW1MbWtsNmE5Tzd0UDQvSC9IYmFTa3V4akFsTlpCczBVRUU2RGpBTXluTUtyM1BRL2MvdmV2U3ZQRzVlUkF3MHJ0NVNvcExJY2VkeHBmZmVlZW9BTm1tNkNUQkwyR2l5R29Nd0lyOGhSdjA3bkV2alRsVmltNERoNEdqQjZLRW41TERTUGdCY3ZKa1crQnpYaDdaeWFwRC9ueng5bTJBNU9XU1VGYlJiWGFvOWFjbDcwSVlnY1U0YUJKd2Z1aVJGMUtDSk9XT1FDSlArZ01LMllhZEowOGViUzIzSUlwRVJNMHNOVlA1eGNIckpNcjZVVlM4dHlFRW5odDVlVUlJY1pnT3c0YW15Sm8rOWw0SEkzOHpVaVpiMFFDa1Z0Vm1mQUthem8wS3FJY0FRK29WR25XazRhdDBSZThaMEVhM28vN3gxNjJxVlhSTkViRTdTNlRBODBNd2syOUIvZHozZmVBMEdjOGJMNXZ2dFNsNWpvVDZXbjE2UGNEOVlIWW1tZEtTeG1iZUt3TGhEVnFJcnFFRkp3NGIxYmJmMFdtalhXS0ZaTFdwRHJCQ0twY210UEh6NWFNdnQwUXFkVFFpdDBGRlpCV1N1cVF6Q1E4cFVEMjU2ejQ3alc5ckxOQ2dLL1VCcEJrL2FBMmtCd0dSa3hVakFNejZYQ0tCb210RjcwblR2NzNvNFMvSHRjbnZ2ZStTMmlUckpsSWZjbUVwaFF3WXVTT05HNUl4QnNSZktaQkpBM1NiRHNOZzJLejMzbXZ5aFp3bzBUMnJFUmRGTXRoRjZ5clcxdHFzczlKakxGVm1zL1dGelh1djNXdmpCZFMyZWtWWVRNL05TTXNvK2hVOWs2WkEyUlFBS1hMVEQwalB3TktOYkVjeTFQbUV0U3A3TEZ3YTE1Yk8xNDBaVS9IKzFDL1BUMVJVOUtOK2pZSzBvYUNsY3MwUUpQVk1tenhTbkJTNithMTNKcFdDU1FNSFlsdWkvOWhkOTUyVVlueDBMcGVWVnRLR3NyS3kwbmowb3hBanhvZDJyWjdSdFMzUjI5NXBvUzdSM2xsb08vUi8va1d3WjZoeGJVTVJSd1kyS1VhYjFyZVVYMXk0UWQ5MUh6NXQ4TUVGazlhV0FtcWp5UmtOTWw0aWkya0dkQWRHR1JxRkxrazUrallIcTJlM2ZhdXV1UHFzTWJvTmZoZDl5QkRwdU00ckVyRFc4d05hRS9VaERFTXdhNlNXWUdBc0dhVEppc1U0dU1MYVBGRFI1aVRrRVZhd0RSOWVGYVFydTQ4bmorWStZeDVobThSS2ZRVkFyZUhvOGMrTlRHUnpkWWRFUWZqNWtHRm41bGRVdldtdnFMNWhnRlRSRGtwRjFQU04xam1BQWdSZENvM0tuWmFjcFBJczVyN1liOGRoM29yS2E2MTQ2cVBzZ1djZk9WNlZwWDdsZHFrRXkzYkJ1Qk1jSmtBSXNobW9Uek1oSUdmZWNxZis3dmsrRG1zdFlsZFE3d2xEaDNwYmJqemdTVkRSUXFrbEZJdjV4bkZKdkNnaEt0NmVNT0ZJNG5PRlkzRUZ4Y2JSSzBDQXJTQytNMGIvSXA1SHZmdHU0dDFKbng4bWtrbUJnZ1A1ZVdud1NiQVFBYVg2Zk5oZUI3WCtWK0YreE9Ia3laTzFBcTZYUmlOaTZSSVJBWkVCY2dZK0lzaUVBMFhYVGxvOXU1Ly8rRjJUZGk5bGFrTUhSTlJ1ZWMvWnduSm1HcUhIdUVVQ1Q0QkZreWtwUXlETEhLU01TSlJMNElKMWQwQnZPbmJzNWRSSUsyYWlkK1hHWDJvTzZBVjF4My93UXBjbUxmb1ZseEtuTkJjQ0pQVFpndmt6ZHJZZGF3dW5MUE9KYWZNVmxUMTJMTEJJaGxzQzZONzBIR0JKa1N2Z3FJRzZDajJtS0FBb2pUUk0yZnhrc3N1SFRaVlh5dHdLaHpQdXVtN3dmTS83SSsvYXBjeThZQ3RSbEtoZ2FPaFdRSXRJNUZUVHdNbENOMzA5blU1aEtVTWJPK3l6NGFEeERvZkpDaFVnU1J3cEpkQTBDd0pxalVYNXdzRkhYWDE1N3paR2Nyc2xoN1ZieXRzWTRYKy8vWVk5cGVQOENsMkhoQVNBb0VHbW94Q0NmSzY0MlFZYlBHQm1xbTJNNU8vSVFVVFFEQUdCTkJoZEEyMk03aGh5U0phVlE1NEdZTDJPb0dCYjVTOTgrTjVmLy9INFF4dFFscmExVjBLaEdNZzNBb1V5VWhxaVNFSGcrYUNsZ2taQlR2d1ozcFIwYWI2MUYxOWtOL25tL2hiN2ZGTmthSS94Z3Z3QkN4Wit2UlVwQm14YkRIY3VhdDU1NXVwZXlPU1pXcXRaM2RjYU1yY3A3bVd0WGM2WjNoRzBTZ0NvNzdLaUJtQVVUSVFtNjFacFZCckVSNzNUNlNiWDQwMytOUjJ1ZkdiVVdxOVArT3p5Vk04ZXZldWpDTFZGMDFCZ0FEUW1UV0JNZ05ZSStXSVJPSG5SbE5ZUVJGS2JTVHEwc2UyQzRjT0xGWTc3WURGZlgrQkdMbElqSU5IdjBoS0JVMTZ4ODRlVEovMnFqWkhjYnNtaEh0SnVhVzlUaE9jUmY4UFNxVzY1SUFDakhJczAwTkt1b3l1RStQRFFQZlo2SGRvVXRUOGtodVFDQUNJb2pxRHBqTWdBamVBQUlIZGVIdXhrQ2xncUNZc0xlVXoyNnJuam95KzkrT2RSbzBiWmxOeG05c0dEVHd0dE8vRWhjanZIdUFPTVhKR2NoQWNYU0ZZQkFIRUVnakdqM0ducW9nYjdYbDAzRXVxNElnWVFxMVN5ck10Ymp1TVV5Ym80OHJPWHIwbXVLRzhjMzdJSW1IYnlHckxiSVZOYkpsS0oxNFlPWGZFbmt5a3Y4M0oxUFVCR081TXk1NGlOVFd3czg5SWxLdW9QRWlRcHdFaXJBQzMzblFIN254TzBMQWVyVnpxTkxYNzNzMCtkbjdQRTdrVU5HRVlBakZ6c2FGa1FVTy9WRmdkdVc4QVlnM1E2RFRhdG81c2FjdVI2SDlqRzF0QU5YU2FjZWR6eHI1Y0o1NU1vQ3JSR0tNbElYMUZiME9KL1FldGZWMVZWTVlpM1g0eEFET0l2aGhEZ3pIdHU2UlZ3dGc4cGMyWWxYRkRVVVJsb0NBczVmLzArZlI0K2ZjYzltclFvbW9HRW4xMEVBcExuam9ORVZocGtpcVNlWGxJYXFUOUkyZzc0QlIvTUcrVEppa3FvRHlNcnkvQ0lKMmJOT0c2TTFtSkoxalp4a2lJeDJZdjBESThrWUVscUVGVTJGNkJvN1U2YU45MkpOODRSZEJUMjBrSHhrS2JlZHFkSFlmM0szak5CNjZlMERQZWNPWC8yUVRyK2RLeUJaWTJIcjkrOHA1OEt3MU9SNmEvS2s1a21YeXlsTmhVMnF0MTBGSzJGdXJFbkkySWp6YWhLWjNQVWxLWTBXNmlGL1NrYWJWOUthZjBEMGNVZSt1clRYeGNjOTNpcm9qSlJpQlRZYmdMeStRSXdzc1NCbEhtb05ma2ROQWlhdElhMGR1NzdmbWw1S1psT3RUNERLNkRnekcxM200M0Y0bjIyeFgyYVNFRkFoZzlEQVFXcDBFNlZEWHI0eTRsdCtnTldLMkNyelVXek5rZFJPeVRvM1E4KzJZKzV5UzYyUThxY0ZEa2pxeEJVQkdFK3QzQzdqUWUrc2dZRXhzOUQ3VzhBbWpTNEpKcU5kYTVvOWk4RktYWUtadmJQU1I0eXFTSEJMWUJRUXhoSVVLVGd3MFFpK2Vuc21hZGZmOFhsYldvUXJyM2VnT25rZGZ6VWRwSWdpVzdUdVZVa0FhUUNJL3lvSFNoZUFwcGZweVBzWGYzeDFLNU5BYmZ1MEJNOGdPU2JtcVk2TnRmSHZETC9oUjVONVkvVG1oK0JXZStPU253MTVhdGpHYW90VWVQVE94MjJkblZUdGFSbG1Jcjg0Z0dPSld6VDNpWUE5V3RGazJ4elRRb1RPUFZuai9wRnFIR3lsUzZiMWxSNWF6cnQrUC83NTdxZno1bDlEcVJURlFYcXcwQnpaazFueTdKS2ZkZndJcWxqRzE0TWJTWmVrR0tYdEN3bVF3bVRoMDJtVVd0UzJsWWdldldodSs3eGtwZkx6cEUwd1hab1ltSW9ST0NnR0U4clllMWZwVFZ4QnZIMkN4Q0lBZndGNEpsSEw3ei8vaDd6RytxT29IVmJycEdEK1hLVGpBSndCZFBsampQdUg4TisxMmIvSGFQNUhUb0pDS1FBZ0FoR3FkUDRBcVBZWWNtbWdoQnN6Y0ZGRzJnY0d0MElPcEhBV2hWczhkbk02WCsvOU9FNzJzejMwUWRzYitmZGRQbXorVUlRUktFQzQzSmZ3Z1lZUVY0UzZrd0Rwd2tYMStFbWhTaTc1ZEwwRloyN2xmV2ZaTnZKMlNpRElhajh2YjRkYzQrN29yeHhmUE1pUUcyRzAyZC9QZEN4OFVUSGNYUGNUcjJEMlBUL1FQaHF3dVJOYlFzM0wrU3paTXd5YW5leXprbFBVRmtBeUNFMGlrOEI5UUZYUlZLOTJhVnZ4U0pvSTl0dnI3aWs4cFdKbjF4Y0ZHSndoQnc5UHlUNk5aQ0xxYlQyVDEwWGtHNE51Um9STkZJUzNTaHpwc0FRc1RTbUthNHQ3amVmZE5iTXJwbnl0eXlFa3FnaDVtaVNvb0ZaRnF2TjVRNEpINzJuemYrSHg3YUk2N0kweFFwOVdUUit4dlh6WTE3ZE1VUzJLMmtRVkZFRWFWcHZUam9PZUEwTlhybHRQVTVqYk1rUS9CbUZyNGxIR05QR0dpYzZTN1VwT3BJZFRpNDlTVmNLT0VWd0RXRFJXWk9BTWE0eVRSYThid3RSSTRNRFh2N280NVBPdWZGR2h6SzMrbTZFZldWbG43SENkdVlTdVNBanNxMDFFVzhvSTZGZVV1aUlZREVPQ0xLckNncUR0Rzc2d3haOExhdEJSL3dkcnNIU1llSG9yMnUrN0VQS2djU25LVFFPTFluQU84OWNuWTRLdVNOcGJyeTI1d2RUayt1VVRXMnFQbW9YRmtXRkhSTVc3MjNaMU1KYWdXYlVWS2E5a1pQK01QMkI0cWtRWktMQlNhV2VIelRvMUlodVczMDMvOW53MVU4Ly8wMlFjSTZrQ2JOVDhBT3dCUTByNnNqRUYyZ2FrVUQ4Y09yUEptanF4NG94TUpOeFJBUkcxd3BSdFZVTEhXaERSRjJHYkJRTHducEovSm5sTDRxR01KVG9WbFpzTytxNTUrSXZ4eGxBZmtHZ0h2RUxubzRmaGZvZ2Y2aW5aWVp4RG81alFhR1lnOGdyNm9UU24vYktWTHdQYlhnemc5OTBBQm9zSUtJaEFBQVFBRWxFUVZSb1A2RXlJaEVpTlVrVHprQ1NsUTZSQkFzWnJTUm9DSHhLSlplWlhWR1JtRlZkZmZMVGI3KzJLd2tkL0VraHJSQ1JBV2hBRkJPSUo1SjNESWd1b0dzQUV1ekVEV2lGZEsrQjFtTnRodUZlbjczc05XbHhHNEhQaFAwNlk2eE9oOEdPckZqNGpma0tXU3V3MXFtcU5QOVlwWDdCZ3QxQkZYNHRsYThDR2IyMjQ0NE5mbE1nZlBieUF3bWFBT3hWTERRNHJtVTNaaVZGYnRwZGtNdGFLZFB1QW9EaS9BaW5WblJkNTFza0pRT3R2RkVmeFhIZlROcXFJUGlaT3BGTUY0bGd3VzFRTk82VWtxQTFSUmphNlJyTldSdUNTd2ZxeXdoMEFOTy9TYWREVzk5MjJXYXJjVmowM2tnbEVqb2lBMGdBbGtnT1FLVjh4bzhrWmhzalNySHhZWFVSTVBKOGRaK0o4eTlCNE1wUkk4cUxNdHd0a1VreDRBeDgzeWZyajRHZ1ViaDJyeDdQbnJ6ZGJqT2hqVy9JTlEwZ0JWdzNCaVMvdWdaSmZ3b2lWR0RXdTZTS0FEV0F3d1E0d01qeWpTQ2k5ZlNRNGxoWjJkb0YxRlhuM1QreS84OWt0VmtmRzVEckZTbGc3d0h5VUJ2V2lGNUdGcG9KR2hFaTRsUFNaRVVnb01YWkZ2WDE4elp0aWdBa2dlK2tlazZSRXQrMmdDVXRGZjUyOXR6WVNtOEtzK1pJbTVqOHVpeGg2ZVBETU4rUEljeEtsblVaWTM1NTBGVFp2cjk0bmNxSzFOWmx5UVRLS0FTak1FeCtSVW9EaFFXQjZSbGs5V29RVVNFSTN0eStoMU0wNmEwZHpyL3poaDZMaXZsLzhGUjZVOFhKSVkwY1BDOEE2bnMwN2pRRkNYckp1RVN5MUJuMVlTREZiaFM5MXBTTzFKa3BNQXF0emN2SzZyL3B4SE1YRGV6Yi8xbVNONEVpdVdKNE1lM0VFdzZFTm01OSt2MjM5MWxaR1hINmloR0lGZnFLc1ZscHlwc2ZUOW94a1VyMmFDamtRU05BSXVGQ0dIZ2d0R3JZWmF2dG5oOCt2T24xdnBWVzBNSVpTdXR0Umg1b0FDSWZ1SUpTTUd0MWhoK0pBR2F4Q3kwQlNpbmlMUUFnd2VKeUN6ZzlZUVppTmd5WUtDc2YvT1FyTDUxMjQvUFBPOURLR3hMbXpIYkpOY3NhRE0ySUNJaEk3V1BPdkVTZEVZTG1RbkJkM3RBd2I5alVxVTNUM1hQZyt0VTYwR01Gc3p3SWdnMkNvSDZmOTk2N3JrbkwzcFFmaDUrSGdMSE9GeTlldEEyb3dwNnV6YkVZRk1ZNGtHaHljcXpIamJOcUZzdy8zQy9rdXhSeURkUmZJN0J0c25JUlNBVlNvQTZ0S0NBcFMxcUpLWENlR0llRFR3dC9Ib1hOOTlRNFBjNzY3K3R2SFZ2UnJlY3VURGlra3prd00zRzJYWkJTa2pKWHdJeGxUdVBPVEtxWEtuWkdYSEVOcE9oMUtUUWZSUzFmMHVCTk5uNmx2cTU2b1UwZVRVV2VQOWQyb0NCRDhKanU5dlJMeisvUjhoUjAzQnBZeDJXdFpUa2JOV3FVUFgveG9qMjRFSWxVS2dYRk1JQmNzVUFXT3RjNmlLWlVyTE5CbS8zdlRVdVJNUzUzWktnUWtTWWhXRkxTSkZIQWJCb1ZTRWFCazBTME9Ja1BDZVluTXB5VXZnREtUOEd5SENqcjBoV2s0OWdoRTZjOC9lWXJiY0wxemkxbk1nS2ZhdWhENHExUmdUTUFFdVltbUhzVFNDanlLTWp2OXMybkg2NExUV3dEQnV3ZnVNbk1XMHpoQXBDUkVVTkhaZWN2WHAvS0lIQ2FlREJPK2xrSXZCWk43U2FEd25FeXlKVURSQTFTd2ZPem9WOTlVNFZOODJldHhUbmJQNTFKY2M0WnVLNVJpQkZwUEFhSURNeXZIb1Q1RlFvcDlVanEyY25LTGw4MFZkNmFTdnZUNVE5dEtkUDJtZm1pbjBnNlNmQUtQb1FlelRNWTBwalRZSlMyR1hPY3JIS2p6Q09VNUQzVHdHUmpBRVZhZlUwUjIwejEvT2VFTTJlN25IOG9kYVFGUi9EOEFqQmJnTFM1cld5Mjc3Q0xMNloyYjZiS09sa3hySlB4MjJ6czN2UFJXLzBYNXd0N2g1b3hhVW9sMTVkNTJZcWhqdEsyOVZ6VjBCVi8vTUprYnpNQlNWSXNRNHl4emhrZ0lEWUdXZnBOdHk3ZFc3UU9hVnlYRWEzdCtVVVBUTjZHWWhGOHJWRmt5cnQvTTIvZTM5Yy9lSjhCeXhUWEtwZmRLOWViQTV4L1F1SWNrS3dkQlF5SVJHQ0l3RkVBQUFsNDBHQmNmdVZwYTRQcTJUTlg2bmJ2WHRibEd6K0N5WXlSazFENmc4TnN3L0RZU2ljb20zazNreVNWcjltRFk3aFgwcld4NkFYZjl1amYrOTJWZWJ1K21URnBJTWh3dzJ4OUF3aHFjMFJPN1V0S2p3TVlCVy9hMm5FY1VwSUlVb2t2ZXZic01xT1pTVi90NG82c09ydlBsQm16LzV5UDFGckpURGw2eFFES1VtVkFmWXdtSUJJUWtmcXQvbEc1MUplWHhCQldwZlNsWjlER2hsK1MySVpQaUtpN3B6TFBRaUZmMUZvQjR4eWlVTkVrTE1GQVdIdE9Xamh0WTRpM240VUErMWxQeFE5QkZuRTNuYW5ZQk8wMENyQkw2OHMyZ1BiejlkTXFrb25uMnd0RTVPa2lVaG1FSk9vMFExQW1rSHZkMGh3RUdRbzJLVDhkUkNRNEtBMEJBa25YaklQakpFQXJCTUZ0NEhZU1BNM0FaL1pnbGF3OG83VmQ3MXZzNDNxU08wOUhLUEswK2dobU01TVByaGlnSWlhSVZoTDFKRWdBQkVabERxcjlqWnZYNUZ0UjJPaVFkUXVRU3Y2dm9NS0NiWXVFSFhoSDVXY3Y2TDZpL0hIOHowTmcvT2lyeWl5b1A0bkpvR2NZcUFpWSsxbytDWXViS3MzOE14YjBHNFp3OU1zZFdpdVhFUUk1ektodm1sVVJCVXA3SUN4RmloM0JEeURLbFBWK2Nhc2g1emMwVldaTHA0MFpNMGE4TldYbWlaR1YyTmRPbGpHZktrVExCaitrUVVjdWRocGNKYThaVUYrVk5CWVZtSW1vQUFRT2lCd2tZNkRJdWdVYXJ3QU1hUGlDZVFiYXlYYkJzY2UrV1JiSlR3VURuZk9Ma0xZVEFBVUZtVVJGajF5SSs3VVROdG9jbWF6TlVkUU9DTkprN2kzTzV3K01oR1VIU3ROc1drTkFGaXZYQ3NxVDdtdEg3cnJmVisyQURmZ2IvRTBEYXRKdENKb0lOaCtzb0ZOcFI0b3d3U0pod1pHQnNScU1JREg2VUZKdVJZOFJEb0FrWEVqL2cwUUcwazFZZWRESFhqM2kxZ01vRFVzRnRjSUJjYmkwa2wybkFCT3ppTGxHQ2tydFJKUVQzWVptc2hJZ0lzSWpyOGhUQ2I3cmgySmhSV1BHNVI5Tm1TeFQvcjZkVEgxbDNoMndtVjZiNTcyREp0SFN5L0tmaUdOWEZ3RXpxY3I1czdaRFdkemU0dVQ1aW5TdEJ2dU5JVVArSnBzcWEvTFk3a2taWnZjRUZRaExDTXBLV2tMeDBwa1pDWWNLVFAvMS9SQWNON1VZRXVteDFQNktNclRhZnQ0amR3L3lIZWRFa2lHT29nbXlRZ1lSRFRqejNvZW1QbW9tb09ZTVlJWVJCVTA4MFZoazVxenBIcUNrdzRIaTZMTGQ3UU41YXJZVGhHTnoyWHBJSnBNa2hnQXN0TWxTcDlVRXdDR0RUajNWYW5kTXRRR0NXUnVnb2QyUmNOTDFWNjViRElMQkdnQ05vSERJbFpkSUpDRGJVQmNkdU52UVo4dy9JNEIyc3JHUzQ3eVIyRVlCMG5qOTR5TWlscUpNbnFYQlJFZ3k4WVBBQThPLzVUcUE2VlJYS012ODdZemJiMnpTalcyZWJjblFvN3hQTlVuc3NjQjRoSXlFUEFuTnBYU1R4NjlVdGJrSFlPQTZ6cnFMNnI0NlltV2ZkazA0WGI0Sk5Qd3ZCQlV4eGl6VTBURUxzdU0zS1JYV0VvZE9WdWE3WW5MWHlBdVBWYURUMUc0cVF2RmFxRVNULzFsTjZ6Rmk5dXdaZTFtQ2IxelNDcVRtVFB1YVlKU2pDVWhXYlNnMTBOcTVaa3lNNzFIbXpJZFczTTRkY2YxYUM3TzUvMFBiV1lmNFJOcEsxSmorYUVMcDVrZUhwZkZMeno5S2JuZTNnd2NQRG52MzZQNFNUVng4UTN3WVNnaGxCQkVaUlc0bXRkRzhodm1ibWZnNHJCNENzVUpmUGJ4S3VUK2VPSEZIRkx5YjZYeVJqaUNmejRKVUVUaGMxTm0xNm9OU3BuWnlvR1czSC9RQkl6Qk1NT1FiUVdNRW9na21ibWxZY2srM0dtd3V3TFp0eUJjTFVLQzFkWld3SUxENEprK09lZjFFNDFZMDViUkcyR0tmYjJoOURqOEJqUjZTRjRGekRxU0VBY2hhQTlxUUpBbWRnSE1MeURDeVFpKy83MXYrSjAyNjBJdUp6UXNBMXR1TVd5VjNMYTJtYnhWbzc2aHg0MFpZcHF3NC9Id0VqTnU4ZW5ITkVNdG1leWhnNEVVeTRGWml6TVpycjd1NHFWSW52REN4c2xqTUhwNUlPSTVwWHpQQk5QMTI2YlY1R2M2ME1lbHpZRnhFWHFqSERZU0JYbE5sdG1RYURScjI5RnR2SHlQU21XMjQ1UzdwamN2VXlCQ0lmcjFNelBlWHFqR2ErdXYzY2N0ZWFjQmxiOXY2OWRhYkRmaFloZEhpWEVPMlJDb1hOZ2pMQmcyOE11OTVPNEJlNG9vb3BjYUhWVUdBclVxbU9NLzNDTnd5WmxSNlVYM3QzdVJpVHBDbEJrWlIyQWtiU0lEb2hCQWYzWFR1dVNWaC8vMFRiZmZxY3JoOHBRS0FCQkNOSy8zakVKRlNyNUZTcW1LeENLVkNtQUJKYTNyU0lTd3F5MnhWbmpubGI2LzliemQ2dnBTOHBsRXd2MW0yN2JLSmdjUUZrdVNDTWdRMENrc1NHTExFRHdsTzBPU2FOYXNPbVFUYjNwcy9kM09UYlVWaDZOQ2hVYmRNdHc5Q3hhWUJlVFkwcUlTQTZLanFxVE43dFJhZks2SjFGZUxiVkpieHovVjJiYWFQSnhkNUwrU2swRU05ejNJU3J6VDFuOUFNNW5PcTUyN3FPbUlYUlo0aTQ1UlcxTHFBQ2t3dzdWc0sxRGU1Y0VHQ1ZTZmMxRWRJN1FpdHRCMzhyNHNIRnl4eGdTTGZmMFNUU2RVNGVwYWxSaFBORFJSK3NNeXdWRkFUejJDQ2VXQnBuTGsyd1R4b3p1MGxYSDNTeGRseU4vRkIwbkVWbzRhblVRa2hUVnA4cVp6eXJsMzMyL0dDa3l2YkN5OXRoYzRmOTRtMlFsZWJwZVBOTno1Y0J5eG43MEJKeG9XQW9sOEF5K1pRS09TQ2ZFUDJoVFpMK0lvSUl5bXdvaVFUVDRJRlRGZ3FSRXdjWFdNWXlYbGhHRll6eEpLRmpvaUFOTHVPeUJJdWFJREljZEt6YXFvdlAramkzMjlzbm1tTjBLZDd0eStwbGI2ZzJRZEVKQ2dhYVNDUnI0MnNWQ0JJaUdpaTFRZ1RpK2x1a2F6ZjN2RFdtRy81UjN2RGdZVmNNWHBKSWZpQzA4TTY3TTM5M0dGang5N3JMUCtKT0habENCak1jL2tGbXdyT2RpQzNLOU9jS1Nic2oxS1ZHeXhBNHp0ZlFRR1RKNCsydVBJMmR5enNWY2czZ1BHNlVKT1djaU8xdDZEeHlVaVpCNUVFNURaNWtOVFhYWHYwYmJXZms5N3h3VXZydmp0NVNwVlRXZG5GZkEzT0Q2SVNyZVpBR0FCTmtrRkpsUU9FT1JTblRCeWRTd3JjWEp1SnA3SE9qWFBKbkUzYXNvSFNkZW5iRXN0R3R2SHJRajczZ2w4c2VtYlp6cklzMEF6SjI2a3hVSHJIdVhNWHJOUEd5Vzl6NUxFMlIxRWJKK2pMYjJidHdCTnVqd2dSZ0RxZklHVWVrYnNkUVUzdjJiMzdPMjJjL0IrUVp3WS9ROFFmUkM3bnhnZ1RFMHdTSWdJaU10Q3FLS1djeU1rVWFxaXRBMGxyWHphdG9XZHpCZUNPQzh4TmdzL0ZEcC9OblhVbVBZdm0yVFVkTnQ2elI1MWpaWjRIdE1KSUtWcGRKUXA0WTVjbm11Z0dTaDRXSkwwTVVlaWdDdmNmLzl6bGlWTENDZzZiYmpvOFNLUzZ2QUxJNXBEeTBJSkowdXZxbUdqbU4vRmErcktZcmNiMWwrL2NuWlpCNFNpR3VvS2hvQ2RGdlVobC9qdm9vSGtyZEkxVCsrRlhINzZiNUN6YUg2S0Eya3pCc3JxL2RHMW1hMVNha2hxaWlDbkJrKzl1dlVmWmJJcHFsZjNmdDk5MVlsbnZ2bnZtd2dqZFZCa2dMVmNoY0RDYlVlWlJGR21wb3E5a0tCY1RmNEtDU2ZwQldCcUhOR0VwOWRzZnBMYS9tLzEySC9wK3VaT1lacGJ1YURJSElmRWxTYndveHJ1Q2s5aXAvWEhVdWhRM1NyZldwYUhkMUU2RENiT1J2eHQxT0c1MFFLaklTY1FRUXQ4RDE3RStTS2phTDlzTk0wU28rYkFNbmI3YmlUOHc0YnVJSlJjbXpnUnppNGpBU0pNaDRnQUVlQ1BiMERDenZMeGNjOXVDdW9ZR1NDZFRJQU1KTWlLSHRMQ0ZUcFVmTmVpTUV3K3MwbnFOOXpYelpub3FWZkVHRTg3Y2tpT0Myb3BJSjhHUEpUNk5FTlUwRVFHYWtIRkVzQkEybXI4NFAwaHJUYXpCQ3JjdWZkZjlndFRIRzBFVWFrRVBSbUZ4TTlEK0VhMzV6c0FLaVcwSENRdS9tYjBUS2VYRGpCSzIzWVNXWEx6bk9tWHZtMldURlpJL2RpeFB1MnhkSFhwYnl5Z0FXa012dFN0Tk1rdG4wMGRMMTZRd2hYQkpVV0EyVlY3NWpPa1RLeXl6aFJKTWZ6cjZwbi92bkVjNDBVZG1BM2VnSVpjSDIzTElKa0JBRWlha3liV01aQTJGL3ltdDFxZG5TbjEwZVNTWi9FdmpsNzBHQlAzak1iMDBYMXM5SHpoMDdGSE1VQUFBRUFCSlJFRlUzNmxoTHZzZVo2emtvZURrVmVHdURTQnNWbFI2SjZpcVltMlY5clpJVnd6V2FyVEs1YU5IcHdKZ0crZkRFSUZ6Mm5scEpaV2pWaWxodnp0KzVMTUZhRzhiU1ZFalBCQ3hSUG5TYTZQc1NoRjBRRVJBUkxxQ3BXZWtyUklSTm5NYzY5bUdob2JRNUVla1BPWURFV2dCTi9xYnpqcVY3REs3VVB4VC9yNzcxb1ZXMkpJaU9jK1g4QWxvcGd4dkprU2tBR3poZ0F3aklERUNSdkF6RXZ5T3NDcUNzT2F3OGVOSGtzVUhLOXkySTh1ZjI4blhJcVhDS0lyQXRZVlpTei9jV1RTaDV3b2ZpaE9XaThEVTU1OTNHQXVQRmFqN0M4WXhwTG1nRi9EbmRobUdUVm5TOEVMeGphU1d4WVBwdWU2Y3VoMXBBOXBWYVV4U1F6ZTJLU2tKUklRZ1VtQTdxZWsydDZjc2w0Z1dqdnpEUGJmMmUvV2pqLy9PeXNwNmUrVCtOMzNRY1J3SWdxQkVKeUxSR1BpU0ppSFBrNnZMMXFDN2MxN2k2aWRLSGRFdzIwaXdLUWNSUzN3alVqeXl4b1IyZEJ5KzZhYkJobXV2OVE2WGtYSXNRWjZVQ0h4YWltRGNBZ200OFZwZmZWVGVqdGhwZFZMYlh3OW9SY2hlZXYyNWdZcXhQazR5VVZKc2ZxRUlrUXdBb2pCcmhmNXJyVWphTDZoYS9VQm9JSkpnb05LTXNLRFRUM2FqdUUyYUNRQzRzMkJzbk1YWjUwWkpKbTBIa2pRUWk5a2NPSllEUGluTWhsQmlva2YzUWY4ZCs3Snh2VE5Zdzl2bUIyNlNGWTc3UGpBZWtqK0YxdElsR0dGS3doTWExMWlCenFUV0pZQ01JaFFRN2x3M2MxNi9wc2tjcG9SZDhRNmdOVmRZanBiRXB3cjlkWElOY3cvUzQ4YkZiN3czRGQ1M3FkU0gySUthZDdZT2kvVjd1SzdOSmJuR3BXTFZmZnV1L1hLVDFqbVY0T2FpM2pvTTkyU2FSaVFvaWdFd2ZoWFYySDFMOStZUWtRSmxqTXRpcE4vcnVjV1c5U1p1VFFiaUVWLzQ4TVBUUE12YVNWbzJSa29EWTZTNC9BQmNVdXJtdjhKcG9sRUlhN29LZ3Fjc3h6NUVSdEl5azh6VnA5TWdzUHBQdGZZVFc2emRmNnlmejlVYlQ2ZGxXU0RJU2pmL1B0WkpwUHJzdHN1ZThjL1hWcU9CMkdyazdmUlpjMUlQQk51dXlKSWl0NFFEbVV3R0xJYVFUcmd6Ky9mZnRFbUxvcTJEaDRnL0laR0VVU2tPRVVzVG1OTE5rZ01qNjBjSTBZV3NvUW9ONm5ZVlJFV2JzUER5ZWFoSXAwRjZBU0F3c0ZNcHFBOGp4N2VkNC9lNzdPTGRxVXlFTmJnaERvMzhRRTJTbW1VQk9ZUmhDRVpZZXA1WG9rS2F0Nk9KRndBQkRBWGFGcTZmcTV2VHBEY0JFZlZhdlpNTFFTVGY4VU90Yk5zRzFOSVZYQjArZHVvcmZVc0Z4NGVWSWtCcjV5a04wV0VxOHJ2SjBBZkxkclVmNGFmWnhMWXptbnBZanhyRmczek51aHpVeGpRVm85WllrbHV6NzVVNkttQWFnSE1PVW9GWHpQdmoxMWxuU09rM3o3Q3lyUm5UOTd2ODRtM25GL0luT1JVVmJrQ3pEVTJCa1ZKM2JBc2s5Y1U4alJlaTBYaTRIdUtXSmFqcXZxN3RJSTB0Y0YyWGJodDNSU2NUNkxUQ0hRR1plUzltaFJuYWFBS1gxc0tNYTM4TE1nS0VSaTZSeG1RRVVEYm1uZmMzWGRNeW80M0N0RXBrc1ZYS0ZXZUNVMGRVSlhOQnNJdm13clVjRjN3L0JQTXltUGthZ3N3V1h6dHo0TUN3UGNLa0pJMmhKWVFqa2toWUVwWkVBUTJtMGlVaWttWEJBTEh4Yk5GTTJyWnRSM0MrQzYwNGpLMUlwbDhJQzU1S3V3bGFrcVpDS1I4SktzZ1hQWkJJRHUxTXBuSjJRL2FLdmM4NlpZMi85ZTY0WFQvV0lLWXl4c0VTRGpBbWlDOGtZVytCQmtuWEVnQVpDR0diZGZSeUZZVkRqZEtBSnJiK08xMVE5TFY0U2lxc05sWlhXU2FGS3ZSMkNyemFWdjFLWGhNa3Q3bWttb1VMZC9ieURVY2xVdzQzMzNUd3dqQ0hhSTgyUHc5c2l0aHA2Zm5DdHZoMklHVWw5Y2p2c3BLdUJGcGErZTdlWENBaVpkT0x5c29yUDhmdlZiOUphdkZ3MndzdnJETmg4bGYvN05aL3JSN1pJcm5YU1ZjbDNWVEpSUjdSc2c4WENCWGxHZTE3M2tkbFRtSjB3bmIzb01RMHAwbUltWEFXQ3N0ZndWdldEbC8ydXNVWmFxRUtianpubk5CQjlnb1pSMkV4bDZYMmtvMlRHZVFPRGRMOUQ3djg4dklXcXJyREZjczZIRWN0eE5EaWVZVXVtckVoa25RVE1JUW9pcUJMZVJkSUNsRmd2di9lOE9GdCsxK2xMZytXMVpuTmt6RDhRUkhtbm5PT3Jwdll0a2VQbnZhNmEvZC9sRXpVT2lFWXVkcEplRkhQMG9SVHduWWdsY3BBTmdnd3gySFFQQmtkUjVNRS9FRmhMWHhUdmw1cVlRVDZvNkxubFY3ZVl6VDdKOW9CcENKNXdVbUdLb2kwb2x0Uzc0RVNhV0h2K21XZmJISmxaS1VyK242SVBQV3hJTG1UeldZaGszSlNVYkgrNEdrdjNHU3Y3Tm5Pbmo1dTNBZ3IzMUJ6Q0VMUUI1bEU2aE9nTkoreVR2LzEzMW9aTnJtRVREQ0Z1ekxOTEVhWk9TSVlSWTZJWUpUNnNrcXU5Si9MbEo3ZWI5ME5wbExXTmJyZitleC9qeXp2MDNlM2huekF6RVNTb3lCRHdLZUpJd096VkVmRHgzaU1hTWFySHFVdUZHcXRka29tazh5MjdkTG5VRjNYQmNPTENVc0pYL1o2YWR6U3N5SVVsMTYzcHpNaXVWUDh3Z2UwZEptdktDOHZLZlNRdkJkT3dtV1c0K3l3YU1ITW51MkpuOWFrMVl5SDFxeS8zZFJkMjFEWXBoRDZmYzNMR293SklPa1BYallQZmo0L2FjdE5OL3lnM1RDeURLSG1qVmpHUVMrTjBscVR0ZG9ZbHNZdFBTK2J0dlRhcktlVCs3cS9BREY4b3kyM2VaYUhhclRuRnlJM25RRE5FWHh5b1VYRkVPcHI2b0RaRG9SQ2lCb1ZuckxlMFljZE0wcHJ2clRzbGo0UEduUnFsTERUenhCejlZWjJQNlRsQVBVOW4wYVprK3VoUkFZSERnNFRBK2RQLzJZdnlzdWdpUzNWYi9mNWJxTHMyY0FQbGVQWTRIdEZUS2ZjYldiV0xkeVpuaVV0MDhURG5Ud3BQMjNoZ0NnczdKdEtXOXp6Q2hCRzFBb1NuOStvYk10dm1vS0djR1d6di81MlVPZ0hXMXEwMW9wTGVpOHBCWHJNTkJjRnZTUlFET1VuUlluUGJseW9yS2ZiTmJLYnZyM2hzWWNmTm1YK25ITnE4Z1c3dmlFSFpla0t3RWdiQlE3R0dMQWNBVUhnS2Ivb3ZYN1U0YjkrRUtYWW5ZYkhocHkwZkM2WG83U2dsSGRaZ3BjcWN6TnBNV0haTkhQTk5MYmJQbmZLY1NkOHFLTG9zNGE2T2tCUUlNaGJacnlnUVNTN09PbXlYUTEvY1ZnNUF0VHpWNTRwemdHd29LRm1lMkU1RHVtQkVodzArRUNUaGVjS2UycS83dG01cGNoMmZDREI5eFBxRVJFUThRZnhpUGlET0hxTzExVlg3NThwRmpPOXVuZS9uZHRzVm9SU28ydlJzTlNRVENSSW1KV0RJcGQybGhScGxIUXI2MVYwMWdkMzNiS1NGODkrVU8wdnVrRkVuZW1hbW0wbGtyTk1RWFJmRWhpY0U0MUtsZmdoNjRab0JIQXNzb29pbGNuVjFnejk3T1VIRWliL2lzS2dRWU1pNFphUFFlR1FuMUNCNDFnUUJvVkt6NnZiYS94ekk1dDhka1ZsZG9iNE1XUEdpS0pYdTRkZ1VlOUNJVWNzS3lCRkZtZ1Fid0JoU2hFcjNxZTlZSEdOZTlCU1Q2WCtnVlpqcFptcFh1WkpvK3lwM0dvNzRZN0ZOZmgxdUJkdnZycm5vdEE3TDlHclIyK25yQXpUNlhMSTFXWUJJeUF2VGdvQ0dZQm1HaUlWTHU3YnQvZjFicGN1WHJIZ0hXRno0UmlaUWpTRGtTK080NVQ2cHVtdlFONHVjNmJ4UnZQU3hzbW9Lbkg4UGNQVWgvWGtZWk9YaGVEN3hEWisxYSs2T04vbWJKTGhrYndVb0doY0doeHN4eEh6RnN6Zmh2akdOczVDbXlBdlZ1aXIwQXpYdnZ0dW9oaEcyekxIUWttRHlLTDE0ekNVWUROVTNaTEpOMGVlTnJKZHJwOGJsN3RHeHN3Z1dnb0REWnpTNWRJNFRjUEl4Sm1nS0lVeEJveHpJNEFiaFkzZ2tNZ2tOdnJ2Zi8rNzU0SERoazFXQmY5dVJpWklVTWlDUzFZcldTR1F6MmZwU1FBU3JPQnJRTGRMMTBGdmZQVHhXVlFtS3lXc2dRTUtQYjhZUkcrVGRXNStIbFFTaWxFUUFpTTNxQkVjUm9CSXVqZUNWQ3ZKT0VaN1pyTnptL3hTRldHa2s2bXVNNlhTNDRGWktnZ2lTTHEyc0xVOGJuRnU5cUExd0ZhN3JNTEp2VGNBZFhTc0k0VHIyZzRBNDRETW5ySE9SdXVQUTBUZEZGTnZmL1pwWC9KSTd5R2w1SnhiQUVqQldPU2d3RmgySmdCNWNJRTJpVXdGRWo4cXIrZ3lrMjdYeUU1OUdqK2UrdVdwVmxubGpwSUp6QmNDSUo3QWpDTnVNU2dXODFDZVNrSUNRY3A4OXRFakRqcjAzY2NlZkhCWHgrRmJHZ0tWaWtycng4UWYrTDV2b240UUZQN2dsbTRVaGNhZGtOTm1URGZldGEraldiTGNhdE5OMzJaS1NpOXYzaDFRWUhpVmlKQ0w1S2JIWEg1dXBuMXgxRHJVcmpHQjJqcnNOVSt0a2E3ckV3anNyWVZWY3BlVmhENjVwMG1DaDV2MDZ2MUo4OVN5NWtzeExuY0VFa0hFeTlMYUViRWtnTXc5cFpnVGtOYURwV0xqdXpoS1VRd0JMQTZGWWpIRmcyQzc3V3diZHhxNHhWTld0amkzQzdjMStrV0l5Q3poU1J1WVZtRGM3NjZUaEpCV0ZHY1h2Q1AzL3YzdjE5aTMzZ2VKN2ZQS2NqLzN0ZmFOMExTUWxBaXBEaU0wSWlXSkRRUkxJRVNCUi9wRm9aWEFmdlcxc3dZUW0wM3VYOWE3WGlURWE1NkVRQ3NCVEdsTUNOWVRjZzM3NlZHamVKTVBkOEpFODA5WXZGeHVwNHlUMkp4clJLWUZPSFpHWmZQeS9Ybmhlc1dWUWNLdFFuOUVmMzFrREVPTklMa05vV1pBN2pKQXNud1RYSU9LUXRCY2dBOGl5alByNDBHOWg2d3hkL3VPNTUrMjNlSWdPbG94aCtiN0xpRFJxSWtwWlNIa3RRZUpwQVcyQ2tGVzF5emVjOUIyajAvNjVodC9jZTJpYlp5azAwWFJSSVNUMG8rSUR5R0lKK285TkJ5aE1TQ2RFUVN5MGhrUmdhNmdjVk0waXBlTzBNYVlGanEyYUxHMlYvd0VvN0NJSkcwMHlTUmtqSmJwT0lTdTNXZlFiZ2YyYjlIS08wamhySVB3MGFKc2pMejczb0crVm4wMURUTGpCbXRvYUlCVTBpWEJFY3dyaDJTVGEzNHRTbGd6Rlc0RXppb1hSWUxFNURXSzBKdzFaOEJzaTNQYk91ald4eDdyOXVSNTUzM2UxYkdySENtekFpUUlFbENhM0l0S2tjQ1JDa2lXQVJNdWhMYmRiOHJpK2RjZWNmYlphNWx5V2p3TUdTSkZvbndzRS9Zc0JReklpUUFXNHlRSXNWUTFHaUZDOUFLZEVUWEZxUXdUOHRCeDQ1citUMnJHc2tDYnY2QzArTUt5WGRBRWpQSkRIbm1GWDcxZStLeEpDNThxNlhUNzVQZjZWU2kvK0x2SXl5ZW9XMEFvRWFRU0M4RzJIbC9aMisxbU10QlF1M0QvSUNwMDVUVDVRaWFvdFFBMFRTd1pTVExqZE5kazRaSVdCVW1Lendlc2Q4c3EzMXVwRzcrWld1R2d5MzdmOSt0NWM2OHJSbm85eFN6ZzVFR3dMRkxndGswMGx2b1VGTWh6bGF1djgvdFZkTDMxNlhNdmVtdnJ0ZGV1Nk5tOTJ3RWtVeXp6TGdFaWd0UVIrRFFwTWMrdURtazBkMmpzekt2elVCdkttMG80YzhOQ1lTNG5ETXhTWGFRVk1QUHpQczU3M0hUdlhadTBJVkxiTENrMEROb3NiVzJDTUpvcFlpSHcxM1ZkTjJrR3FDRktrQ0tRZ2EvTDNPUjBMUE5ERTlmUkF5S1dMSU5sK1VSRThKZjhITWNUMEs4dUtHNW4wbjl6K0xCWGF4Y3YrcGkwbXlhY1FFZlNSRU5KUUFVUjZEQUNublF3cThMTnAyYXJqNnlpTmRWU2hoWThJS0pldTN2M21aeUxpVlNOTnQrTkJ2N0Q3bThVRE9XalpBQkdGMHpqVnRrWjgxYitoaTJ2K0NhVXdYZ3Y5SFFZaHFYSmdtMWpmeStzSXc5RWJLV1hBS1dER1VzTFpzemNXakMxc2VCSS9ZRVVzZ2J3SXZWcHVWTTVqckkwdVg4eWR1MHlJY1NPTktsbWpLRjVYd0ZBYVdCVUJrV1UrcWVraVNORERwcTBHMTNPN3QydHh4cjV1VnFWMW16S3JCbS9VdHpheG5aY3BxaitnSlN5QWcyRmZCNGdDTWhmRUJsYXRjM3dpMFAzTytBeHcrd0xyNzZ3TnNtWGpXelhRUXBnbHZSSSt3T2p5UXIxUXFENVlTbVl2Q2FZZTNNMmdhb3dwKzhDYXFyc3U3djJkM0hFcmdjRkZhbjBOTUdBbko4ZXRhR21KWW9pMkk2VEtJVGhCc05pajlkS0cvV0hFbTJsMlR0ZmhwSGpuMHVrTTJWRHcwRGFabDNMRE5Ca01rbUt6SlBGZlBiRFlXZit6ZXQ4cUVCSmVBSnRSdkRZaVNTSWRDTHg3WnhaeDFlTkdwVytlT2pRMlJ1czFmZWVzSkQxVUVaZ3JGOFNybjZra1FBQUFCQUFTVVJCVkNUQUhiRFJBa1VLSFFRSHU3SmN6Q2htejczenVxc09JV0hmNG4xeDRKRHVSZkt1UDZpUk5aaDIxT1RpSkkwQTMyK3FkSW1JUVBvZmtPR0Erc1YxKzYyTXRyMjZiNTlQbFZjK1J3TGNRK0tMVmhUQXNWamFFZno0OTU2YjNhdFVhSHlBZDk2NU8rMEhEYi9TS3V6S0NmdVNhOWx4U1FlNnorMTZUTGlnS1loTUd5eWM4OVZlb1I5dURoR0FzY1NOVXRka3hXbE5tb3hDNC9NTUdDMk5LVTI1R1A5ZlZNNFdOc2EzM0pIcXgxc1AzbjJ2bWlEOG85dWwwaWxHRWRpMkRZSkNXUHB3RVVLS0xIVkJnMEFWaTJIWHN2SUgvcnpmSVZOSGpCdG5mVEhwaXpOczIrbkdoS0JGZFYwSzVsMFRtNTROYUJLd0lxcC9yTXhOUG9wRGMyNnY0YUJCZzN5L2tIcy84SHdaZWo2NGxrMFlXdUNyeUhJeXFmMzhjZU9TN1pXM05VVjNpd3ZSTmNWSVM5WHowZHVmWmFycmFnZWg0R2lzTHpPRGpxSUF5cEtKMEVFMmRRalFwTHFsS20rajVTSTJ5ZzBrUzBpUVd6RUlKUlJJV0lITnQ4aWswNXNac25mWmROQ3pPbGY0akdtdE9PY2txQ1N0VDRkZ2NRR0NXVURlZHdob0tnN2xaYjF6RGw1dzBiMjM5akRQdFdRdy81Z0RuY1RYZ05ZTVlFeExVZ2FOOVJsRmJrTGpuVGthcTQ5cm5lQU1kdjNnaFlmU0ptNUZ3YnhCVFpPOENZRU81d0d0Q25PT1ZMeGlVVmpZS3ZMejIwSzhnZFlhNjcvNWNpTUxvd01GS0lHcTBiRVZLVllIcWN6WWxYM3ExWHhWcnBodkdHSUxLMk42bjVRU2JPby9uTXhTUmdHVmlVWFF5RUFCZzBEcHVrUXE5ZnJnd2FlRkxRMy9hU1AvMHpWdjJYK0FzdlJhZWEyQk9TNzROR2sxOHNJbXhXd1pPcU1JMEE4MTk0TVpnOWJmOEFsRVZQTm1UbHMzbmNrTVRxWlRMQ0F2bGlaQ2tiR1NoOGNzQ1FFelBGSGtLdTVNNCtvOXNJcmxycWxzaUNnZEliNjJPSG9KMXlibkMyR0d4SkxnVUYvTUR4dzMrZU5mOHYvUjF4UWJyVm9QYTlYYTIwSGxOVjVoSThhdEhyYVRBTWE1RVV5a2pDSnlJL3Z6dDl0MnF3bUlKRTNhQVI4cklwR0VpRnhSMnZMaWlkOVM5Tkl6RXc2dGd3SWsweG13SEx2M3pYZmN0Z3NKYjNibDBVZlhIakJrdDcvSVFtRWhNOExYNHFBaUJkSUlOaEphcFlrUklMQkVFakZUc2NQTEgzOXlzbmtPV25oTHBydk9VU0ErMUZ3b3MwWm4rR0NHRGdLaVZEVXFPaWt3OFNSS09CTzRheUUzcHpkRk5yMWo1V0xIU2J4Y2pBSVptcGVhTEFhY3FiSnM3YUpoMzQ2NXgyMzY0WTZmT25ueWFBdWxmeGlxYUIzQ0JTVlpyalRSVTU2RzhRbDM3WlcraFY1YnQ3aGZ3clgyU1RvdTV5Z0F5ZFZpWG03a0RJQlJmNksrUTRxY2NHUWNwQUl0Slg3U1BkTnJLc1cwNkU3MTRndXZ2ejFNbEZVTUxkSnNJdE90QnhSSm1STlJ3RGtuZVNHaG9hRUdPRkZucWFpZWU5Ni83ajM5L0JubXVYc2ZmWGpIckZjWVVQREl5WWNJd3JGTHp4aGxUaXhRRWNSY2kxTGY5Z3JmZHV2QkUyUVlVWC9RcFlsTjBmZkFjUlBncE5JVnJDeFZNaGJhSHRWdGg2TE8xMk5XRS92cDAyZHRvVG0zOC9raUNYa0dXTEsrQUtKaVljYmdIYmI4YWpXTGExUFovd1ovMHpTcHg1OUxsQVlrWmE2QmtZdVQzR1NnQVd5ck1ySHZDelhUU2hidElZT0hmSmhoK0VwVXpHdWhFUkFCZkxPdVNHZmtEQmkzR3A5UHBmaU1iTjJKVzUxMXZQbVlDNlgrWElwVy90d3VxUjJ5RXRsRWpSZ0FjcUpwU1hWR2tadXdwQWdTdUhSRnZNbW9KOVBoTm5UVDVEN29vSG1lbFU2OXdUaXZNVzhyRzJYajJJSThFckROM0xxNk5mNjUyeWFKYllYRTZpbFR5YzBlN2lLRFBDTi9LbW5jQ0VpUkZVbUxQYi85L25hK0taSzBIc1d6OVlzM1UyRytiN2FoQVkwN2xuRWdBMWFXRkx0QUdvOGxid3NqdGNtQWpGMEozUDQ0dWNHQVJVMlYyeHhwbHo4MWVrdFAyQ2M0aVRKTE13Y1cxdFFDdWk2TkNRNWg1SlByWFlBdEdNaXdDS3BZZkdmZzJodS9USjFPajUwKzNaSGNHdXBtMGdrYUNDVlNBaG9iWnFKcnV3NDRqZ05Hc1pjUzZLQ0lSeFBvOHJ0ZExibENwRVM2MXFBWW5kcjF2dDkydTN5clZEQ2RsRHFZZDI0TURnV3ZDS0VHTHV6RTVtMld1VFpDV0x2dkFDMk5ZMjAydjdGbHV6UmlFSXlianpGbVhteUJ0WHYyK09yaVhYNlZiZW42VzdMOHkrRnljaEFEOGJacXRTQTJaa1g4L215RWpsSUtCRmxOb1l5d1BncDJ1UHV1dTB1L3FSMCtlSEQ5dXBVOWIrRTBJa012MXlpM09BTnVDYXFVZzVJU1hEY0pIbGswZHBjdWE4OHRGQzY3NllNWE1xdEd6Yy9NTldTSWxKcS9KVUVzQXFLRnRBSWdZaWtzTFpGcEJrZzN4dmRpQ1o0a0MrdWdxVk9mZHlocWhidHhHVGMwNkRlNWEzL3NKRndJd3dBNEZjQzFXcXQyL3N3OU8vTi9ZYVBKRWVhejFkc3lWSnM0NUtreFRpMmJySzR3MGw5NUFieU0yUFJuazhlT3pWc3E4dmRMSmR5a1lKd0V2UU1POWFHSXJIeEpybnNxSDBvQkdBQmFFQUhQTTJHTkd6QmcveEJhY0x2eCtlZWR1NThZZlFrbUUxdEw2di9wZEJsTktEaG82azhoZVJBUUViSmtuU2NUTmlqZkN6WmF1Ly90YjExLy9UeEQwbVUzWDlPekFIb3ZFSndIWVFoSWJtWE9PWml4NVB0KzZXenVUZDRmQjQzZnh5QXVjL045ZEx1OU9tSG9VSzkvbjc1VFVnbnkvSVUrSUNJRTVObGp0b05TeTQycnFxcW9rZHN0ZXkxT2VBeE9FeENiQVNzWlc4dW5LYi9nTm9rTERrYXBLeG1xOWZ2My82S0pSOXROa2lwWk5zc25GeEZMQXdxeDhidzBseEdlUnZCSVVzaG1IWnJSSkNjS1FnaVZCbGFXVG4zNHhaUmo3eGt6eGpYNTl6cncwUEd1NTk4cmxQU2tqbWh3K2hESUNCamxkYlFBakFBY093WFpNR0pPang0NzNIanJmY1BObDhUTXN5MFJFRkd2dC82bTA3UVFuMGNhTk1sZElEZEZxU3BLSzUyWEhzemdRRTJxSDZOdFo0d2Z0OFhTK0JXZEIrNDJwQnFFOVVha1pJVElBSUZEMHJZUzFHdU9Hai8zN1pXNzdhRmpicCs5L0VBU3RUOVVCY1Z5UkNBdmpRUkoyR3NtM3R0eTNRMi9hWXByNm1zWVRQOXFIYkxzQndkK0htd3V5THBYUUJvUG1BYXd5VHNVa2tJVVFnQ3piTkNFdVJmSW1jSk5mb0NJcXFteWYwbWFvZXVWRDhmc0hkbk8vaXlaSkxWc2dRNDBKQzJIemhHUnA0QXhvcyt4SUZkWEhlbGk4ZmtCcWU2dm1qcEhqUnJGcDh5YU9ZeVhwWHRHcHBlVUZEbUFKaFBjOUVWT25xdklMRTBoVWlvckJjT3JDZVo1UktSVEkydEVCNWhBRVhRR1BibDdkNU5vYnR0dDZOZXo1NmU1YkgzRWtaWGtyVzNiSlc4RlRYejZyYmZqam9sMnk5alBKM3lWbjJTcm5MTVRaa3lWbFhXVkNEMEZEVktmTEM2andGeHlwNm5BRDNQVk5aOTJCa2lNc0ZnYWx1VVhFWUhHRzlpMkFNdXlLSWxCSW1rVWM0QTVwWGJ5SUYvNktFdlYwS0hSd1VQM3VDV29yNXZpMkFpT3l5bXZBc2V5Z1JheEFVaXJHcXZMY1pOUWxOTE9DM2JCcmUrOHNWSVhOeFh5cy9lTjVtWUtYaWlmakJSNnlqQ3huSklRc1JUTGFCSmlDK3p2RityM1habVZQV0RBL2dIeTVHdklyWG9TNXlTSUFaUU0wYkZ3czhVTDVnd2hIQnNMTFpYY2VRNVNMbHlieWZCd2l6T2JNQUNHSFBKZTVJZktlbkdkSWNmN1RTTXhtcUZRdXpzV1c0L0FwTDFSV1pwbkJDbnhJQWpBV0xKU2FrQW13QXRVWkRucFYwWDNJWE5ObnBZS3Y3NzgwbzBtenB4MUtVdW55anlhOEROaGswTFZJUDBJSEpwMHVPUkIwRElFSFhyQXcyQ1dFMFQvdWJlcWloYkxBZVozNzk2YkpkeGZlUWhDTVFCSjB4Qk5oSkkrQjcwcVBZUW13NVFkNENmekZWUURGeTB5UlVGNzNvTDYrczhjSm1oNnBFb1RJd0JHY3NZQnkwMzJJSmRlaTc4ODI1NnhvKzdVbnNsdldkcW56cHJTazdSVk4xcERwOEdLU3pvWFVQZUNiSmZLeXVrdFczdmJLTjBJNEtXVUxIdHQ0aEFSeUZ5Q2JMYmUzTkthYUFCdXNnSWtFMnZkUG1yVVZxVklPdXpacGRlWDNjdlNvNHIxaThsNERRZy9CVjZPckMzR3dhRzFRdlBKVkIwb0NBTUp2S0ppZzA5bWZuUHhwRW1UYkdpaERZY1BsK215YmhQZGRHWWVhRWExTUhLVm1nQjBwa0JzVVNUUlNiSlJTYkJRMjlJcjdQdWw5MmwzRTcraWdJZzYyU1V6eTVQNkUwU0w3SFFOdnUrQllOSzJlWGpndEE4ZWF0bmxoQlVSMW9yeFpoTFVVTGY0UU5SUkg4ZmlnRFNCWXR6UklWaGY5K2pUOTFPRFdWUGtUWDZ2b1R3Szg3dFppQW1MbnVVY0NVOEFxWTJKcnlHVlNnR1ZBVWFaNTNNZU9LbE1kU0pkOGR4UW1rZzJWZTR2U1J1ang0Z0owNys5TUhDZGJTSk8vWWEwTUJKdnBzd0VlUWdFVFZJVmVhd2tHUUhGZXByYkZiMW5Mei8zNHU5K1ozLzkzYmR0UVlwcDQ0Z2g5YmZHL2dmVTJ4cURLWVVDbFdtMHV4bHpTTHlpcHJnZjdXdzVjVC9LMGk1dnU2WExxaUVLcXcxL1JqNllmMWJqZXlGd1lYVzU5cmJiT3EybmExVWEwL1NtVmNuM2d6eWQ1ZWE1RjEvcER0d3FDNlVDU3pqQXlSVldMT2JKdXVSemhtNC9LTmNaY0VERUZiTkp5czY4NE9UWW5HQVN3TzBFaEJLQU9lbmsvTHFHb2FlT2FQeksybkJTb0VNMjMrS0J3dUtGMHhLMHNPd3dCaGFuSlF6a0VOSDZ1NktRSU0rSFMxWjZvRkg0VHVLQS83enp4bTdRZ2hzbTNCazFkUTNtNWJnbXhTTHBEOUFxWk1LU0ErZk9tYmJ1eWtoSzlWaW5KZ3p3SldDV3IwQkRPdW1DNElBeXltOHphZHg3bmU1clY1L1h2ZDNGeXpic1FSYXJzQXdRMU9hU1dSSzQrMGFmUHBzdVhobWVDNytlMWdXa3Q0Tmd3SkMwR25VZllJd21YUXBBVXNzMTVMSWxkMnpKY3dhb0czTDVxY0R4NjVXViswdlM3NzVoM0NCSUpYOVRBSFJDc3BhNXpTR0lJcENtSHpzdUVFR2dveEJjamxEcE9IVmJyTFArbldadDJOUkpDcHI1Q0RzVXBDcFBsbFZTRktOZVFxZmw3TVF1RUt2ZnBaVHVkZU90dVc2ODZuakhIUWZ0VXJRUVp4RXlXcEgzSTBGeUpla2tJWXgwbWJiNXlqLzAxUEVnV1dXT2x1MHZxL3hRWjhrWU1kMWJJa3VSM2lwWkFZWnZSWnVPMU5UdE54NWNOUGVkTFpCQWdtV0RiV0ZKd0laYW1kLytBa01YYkRmRFFqc3g1SldQeG5hQkpkc2Q1MXcwcDRmdFhsNm9YYnk0V01nREJ5eWxhSTRnU0NCaUJNQWtRa0F6QXUwNDdzdmozLy9UUDE1NGVxTlNwaFk0RE9tNVIzVTZYZjYrQmtiMkZJa09vSUNOWVdsMVpuQUlPZ2ltd0JWUWtjL1c3S2RYOGxXN2dRT0hoYTdUN2NWSWlhbUt5dlM4QW1rZmo2NWt2MjQ5eXZZZHQ1SlB5UzZ0dXlPY3RkWnMwYnpGMjlPU3cxYW1uOUI5eVNJTkpWc01kdnJGM29NT2FuSU1tVy9oU3dpM1R6bFdYOFlZYWlsSlYxSkhXUUlPeFVFaWtRQ0h2RHdOdVFJazAyVUswZjVndlcxMmJ2SWpOVXNlLzFtbksxNTRjcDNYM3YvZ0w1ak1wTGp0Z3FZSkx5ZjNlaWdqVUtSbGZSV0FvU3RqQ3hCRlA2ZnJzbGZ1Y2NoUjM3MXY4NnVyTDA1cHl6NUlXSTR3SGluUTFNR29kM3hIakVhZ1FtbHE4bDFNNmRyaytqNm04UXAxNDdtakhYKzE1MFlGTFlNdlFHc2xoQUNMbHZROHp3TS9paElGaUFiRUw4YXR1TVdYMTA5V25IdU5wTFNOU2t5bktRYlJBS21WeFN3YnpIOVhreVJRYkdHUk42MDR0ZGg5cHQ4MktHMVpLaEFSRUhINWxkQWFuc1VRdkVJREJDVFFBcHBOTzA0U2xPWlFXL1Q2eTFEdHE3V1JVR0RLMEwvZFk4Z0xTUzdlZDkzRzlVYmdES1RXWk5sYlZFWVJRbHAvZE4wMG1EVko1U1ozdmUvSi81NEhMYlVOR2hTRlNyMEZ3QnBNRlFvQmxMbWdZQ2cyYjdxYkdLVWlReWJRWWlnVFRPL3diakR1dTBrS1pmM0pqbVJHVnBiMys5cVhlcnlrU1k1bWt2QUl3YmE0azYydCtUVmtvZnduRDNYUWlIbmpSN29xS096cENONVYwOWhSSVNsanRFQno5L091bFd1OVo3QnFpdlh4aVZvbkNITjdJa1NPSW9zWGdWTS8wcURKRjZ0SkNTb0ZVTWg3UURNeUVMWU5aQ0VYR2VmdnJidnVVQTlhYUx2andVZk82TEx1Mm52VkZYM3EvUUkwTWpCOVJORE16M1lkNnJ1UjFtdDZBQUFRQUVsRVFWUStNSUVncUY4eno1OTQ3QUVIUFdMZUl6SGttTEV3NGFQSk80WWFOaFRjUlRRTDZDYUJBcVhSOFllN2ljTWxTcnZ4bW02VUxyME0rTU9jSGV1dUgvUUw4ZzNaYVZFVXFVS0JKc1RFbmhBQzBwbU04RUFPbnR1N042ZW9lRjhPQW13NWNYRVVJVkRkcFl2bEp0MmRBQmxISkdsUGNZZ2tXcUlvQUdUVEJ1UGdrS0k2L0c0RWlRa3JZdFRBa1NTM01tTU1NcGx5eU9kOGlFS0V0ZGNmWUMzTU52eG05SVMzdWkxOTlxclRMcWt2czV6cmFiYTlNSmxKUTMxRERvbytEVmhFc0VrZ3U1WURvQUM4WWdCMk9tM1Z5dURvZmYvK3gxMlhQdCtjWjBUVUd3em9QMUZxUFY0Qm1lQXJLcHdFczVZaGtOZ214YTYycnBtL2NDamgwZGdoVnZETW9QU0dBVm1OejVNeko4OUowQnVCVDR5aFk0bU41bncxZWFYUHI2RFlkaGY5elp4aWYxTGt2OVpLV2lvaVpRNEdOb3lFN2J3NHFGaFoyeFJEQnVQNjNMeXRaT2p2cENJZnFCd1FuSVBwWjlSMnBVY1Z6YnpTNlhUcFdpdUVobnh4OWpwcmIvUk9LYUlGRGdmLy9aSnRXWmV5RTJkVlZ6dWMzTURNVEU2b2Y1aXFPR05BWFFvaUN5QkVDV0hCSyt5dytWYTNYWDNLdWJOTnVnbVhQM1JUaHZyMWlUUUxTRm5VMXkxQi9SME1KaVoxK1lGd0lFTlZBejNUR0phZnJVUEZVdnZLUGoxN1R5WGU4NDdqUU1IM0FKR1QwYUNRbHNvR1QvcjZBMXJYNkZBc054c3pyTmxLYWljRnJTcVprdGRZUllRTmhCQW95UVNnTTFpTWc1ZkwxcVVjcDBYWDZGYVZ4dWJKMTJnREtKSXJqVmMvTEpVR1ZVbWdtUFBTRkJwd1lBSUhCTTdKNGlMQkNyUVo5ekxuQ0c3U2dlcWFPc2gwNjdiNWJVK08ycENTdnRzdnZPelVkOU5TUFZxM2NIN1lwV3M1Sk5JWkNHbE53N2dzdGRIbVpIWmxhR0t3c0s0T25NcXVtZkZmZlgzQnNIOWUxdmU3QXByeFlzRE1Ybm1KL0JsYTYvWk1zWnprSnBJTDFBU2FWeEExRERRWEVOSmlyVVZucGxRWnlPeU83NzEzWFpNQ3BmUXBXTGZpYzhYWUxLbTBObTVoOHpFVTF4RjJJc0YzaC9FamhhbXZJd2ZxTHl4WE4zOVhSTDhuNmhBUUdUQmhRNmloaGdsM3JIa3hzU24rSjQ4ZWJmbGVZZGVVYmE5bENRRkdZV3VhVm9WS1EwVHRZZnFmb1BpaWx3ZWo1RU9wSWhUMm13dGhuY1ZObGZ0ejA0NzYxNlU5My8zMHMvT3pvZXppWnNxSUR3MjBRZ1NhUEZTR2ppQUlvRkR3d0JZT2NDV2w1ZnN2L1c3L1E1NWR0cjZIbm41eFBVL3BMYTFVQ29nTjhIMS8yZVRTTlpiNklBRGhSOXpTbWNhbFNWQjBOc0ZjbTBCT0NqcjlXSHd2R1lpVTB0NzNIUVp0UDlWbVdFM3VVRWhRdjFGS2daRVRPYy92dVU2L2pUcU5sMnQxMi9ISFBXSjFuKyt3K2ZNaTJiTWhDaW9rSUNSdEJ5UzVEQ012Z0JRWEN3WnVzTTZYSFlWeC9WMFBNQmVOZ1ZHa0VSaElVa2NqS1RVS1FJS3JVVnpRUFYyZ1F0Q0tBeGxmRUNrQkhEUndGZ0czSXZCbEFVVENBWFRjbnA5L00rY0hGdllKNUE0OWY5aHY3a3BoOUszdjVXZ3BJeVFCVFdoYUNJcExBQlZSbkE5dXFnTHFBMENWcWpoZy9OUnA1MnBObFZLMjV0eU5VdEd1KzJFQWVwYVpyREhpRndOTjdsSUxwRmFnTFE0UkN1Sk1nRUhHNVZxNFdOamRyMjVJcll5TzdsdXVOZGVUZkt6R2hBd0RnRlF5Q2VTNkFCWDRPenczY2ZyNkszdSt2YWVQZjNWa1JvQzNqK3RJSHNraXRiRW1nU3kwUW50Qy93RWJ6MXdaZjM1NldybWpDdnR3SlYwZFVWc3dUZ3BVZ0VLYVFKcWdOZlcvQUFTbkxrUHIxdHh5NnkyNy9IOHQ5WGI3QjE5K2N3YW1LNDVRV2pCRURwcmM2cjRLd1NnYWJib210eUZCeTBXQ1ppeFdJWnk5M2JvYi9PZXdyYmV1VzVaUGRKS0RmY3RleXlOZWpITGluSGpTeEp2V3BXeU1Ub3g2bXdtY0ZEalFOWm96b3lza2ZrdWhsSlVPRkVsSEdoZUFoaDU2bG5KUVRNZlllL1l0bXc1RmI1RVZSR0FUQm1hWlJSTExkc0oxa1lzMTh5K1gyeUdVQkZFN3BIb05rRnpuKyt0eXM5aExvaHhKMERPZ1hvVUtMTVZxRmt5cnIxNCtDWjB0RmtueEVTNUdvSlZZVjNTTUtKQ1FNa2ZHTGJRVEI1cjNFZWoydS8yOC9RNlp0RTdQcnYrem1GU3VaWU50MjhCSmdta3RTVUJHcGNtVG1VQXhzb3ExY096NlFCLzl4enR2Mi95N0Fwcnh3ckxMdmdtay9wenFvMmtNbGo1Y3dxaXRKUWxUbnpTeDRRUkxXb1A0RENWeWpOWk5jOWwvWlNRTUdHRG5rNm15VjZVVWRWcVRBaUNoYlJHUEtjZGV6MmE2OUNXOWxaWFJudE85K2tVYlFGVGNJcUFsRlNGSVJURU9ZYVI5end2SEROaTYrMHJjN1ZXc3JxNitCMEswaFFCdFBObWdhUndxQW9UdVFGTlQwQ1hGQUpnK1k5b3VDT1hYNlM3ZHBwajQ1ZzVuM0hyclJrV3BmOGZKOVpSSVpjaXlEaW40WURzQ0hHR0I3NFZnTVFzRTlSdFhnbHE3b3V1cmZ6dnl5STkrVEVjMkNQZGpic0pCeXdZM21RQ0NCRW9LKzhjWlYrTWVxZGQrbjMwSk1OOUh0TityRDZmbGJNREZEbU1RNVBOZzJwd1QzcHBRWXdqcnRWL0dXcFp5MXJMRnQ5L1NKMCtldkw0R3NBMEhaamFObkFIbm5Mb1RuejkreEVpanRVeFNISlpCQUVtNGNPQWtwSEJKNEJnb3ZkbTh0WHI5NEZ2bWlDajMybkhuMjdCWW1CQUdCU1ZwalpTUkZjWWtnaVlsRGhhVklSVndEY0FRSWQyMW90ZkRMejUzMmI4ZXZxUFpmN0t5NTFyN05HVEtLc2NCRnlwU0VpSmE2dzFsVUdwcmJ0b2JFQVF5bW1pUWF0Y2tUcFRJRkxMNWZjd2IyTXV3L3BOTDh6blRaTmV1YnlIam55RzNTcytIWVFoU0JXWDVmTVB2dmgzVGNmOWh5NmhSbzdpWGE5Z0pOZlJqSklrNThXOFVMeUU0aHl6cGx4Q0hOajEreHU3T1ZDaDMwVnFiMzNXVnNHVlVXT2tDTkpoTGJMd0JZVG1BekFiRytFZnJWUGFZdFNTNjJVNy9mdUsrcmkrODlmcEZhTnRyR3o0aXFwem9Bb2Y2dVlnMG1DOGt1bzVEdlVSQ1FqRHRoTjVYKys2NjNjMmJicnBwc0N3UnA0NjRycmZJcEhleWJKZlRCQVNNdXoyaXZtYnlJQzdseHR6OS9FRGRFN3QzYi85ZmlqTUlrQkdnT01QU3g0RVV0Ym5CSExFUnA3a0w1NjlqOHNUaHB3aXduMGJGTWRSNTBFa24rNGVLTkF4MUlrUUV4RkxRWE12NVFIcW5OVkJxYTNXYW4ra0FxTy9JWXJyeGtwT3dRK1FBRkJLcFpObGI3Nzg3ZkpReFUrSDc3YzhISGZGMUR5ZHhzNGo4bkpBU0xHUlVWQWxqY3FQYUpMUTFJTVZMR1VJeGluaVVTaHowK0J0dkhHM2E1dnRTbXVGcTBDQVpCWHFzSDBSWlpBeTR6WUhSR1JHaDBaMHFTeDREYzIzVFdoNmoxTHJhK2gzZmd2bGRWbFo3UmIrMTY2VEVNU1JvUTZESkRqRUl0aEE4YWZPZEZoU3pIZGJLMktKUE5xbGsrQnViaTRSdHVXUkZhOUJJTzJNZjl1dzI0S3VWNGZaQmNXTFNENExkNkhsdThpS2lPUUZOcThBb2RsemEwU2hXRXE1K0pDT3B4ZnY5ZGh6bVUxU3o3aU1mZStMWFdaQy9CaUdZV1lieGFOM2JySms3WnVKSjdtQlVSSnVNYVBLcElLaXJ6bGNJZnZQdWh3NzdmRmtpVEo5OWU5eTRYMnZiN2VIVGtwSjUza3dXVFVDazV5a3pZdU9aTHIvYkVYOGE5MTFpSjdqbzM3dmZ2Q0FNdFUwZVBNTnVSSk4rNUF5K21UNmp0OEhVeE1YaGh3aXdIOTdHZHdhQnNXUEg4bm56RnZaTkpocmZvRFVkeWlnV1JUNURtcEYvOTlhcXlSdUhSZ1FhUlE4alJjd293Z1JTWHhUSmJKdmxnMkNJL2ZsSGZTamh1eDBSMWFHNzd2MU1HY0pIbGhGeXlJRGlhRDFlbHhTcHNjNHRobUMrQkJhUUFCZGR1aVRuRmIxVDFqOXdydzIrSzZRWkxxaE9CWGFYTHlUQTU3Uk9welVqZTBETEVpMUVFWkEyb2wzU21aRXlzWUZ6aDg2d2JWMXgxdllycTM3Z3dHR2hsY2k4Zzh5dVkrU2FOWk9DME0rRENncmxpMlpQMzgvOEY3R1ZsZEhlMG8yZ25UWHpteTBqMzl1U3hnM2paSjAzem9zeEFHYTlPT2lnVTRzcjQybisvQVdiY2RUYlVrOG90WVBKejJpdEdWRURkWVZTTUhFS0dFZ05FRW1jWDFhZWVhdlVsaWFobWNKQkY1KzdWZzcwNlU1Rmw3SUlhU3FCSElCeDZnK20wcENVT0FEeENGNnhDQm1MZytWN254eTI4ODZQRDBYOGdRZmloUWtUdWhVMTdoMWFuREhDQXdBaHBJa0JUZTRnM2xhTUFLMTRUZzlDVDVvNUUrZThoRHRqREFwRnI5ZTlZOGM2SzM2eTg2YXd6c3Y2aWpsdnNLeEVaVVdYcnNZRkc5RHMyNHpqaUFSS0ZBVXFJVVN6dS9WV1RNa2FTTkZBMHNuVTgvT0NOaEtXQkMyUXBZUkxBa0ZGaFNHUStJV0loQmM0enFiWDNuTGJUeFJ4MWZEaE5aV1dkWnZPNTJxRFlvR2VXYklyVXFxazVJMEFMOUlhcktReWlqU3FBOHRkdjVoTW4zN2lWVmMxNnlkVUs5ZXJMSEE3K1lSRVZnekpEUnFwc0tRME9HTkFPM2tNT0FqR0lRZ0NNQlpabVp2cXhsVTRkTktrVWZZU2lwZDdRbUxBU1NhK3pYbmhKREl1dExITWJCTDhtWXpETWc3c011ZERVYkhjQjl0eDVMUnBMOWlXVnZ1WHBSUEpLQXhLbkNneXFSV0tXY2xNMlRpRFNTbHlCUWVhRURDQmN0ZUViZmRYMUFlZzVBSFNRRVZRTDFEZkJSTHZWQUlqaGM1REZNNEx6dHJkUys1WmlteVcvWjR4WTl5SnMyYWY0blRydGtrRDlRazdsUUtOVUZJcWhpN1VRTk1KQkMwVk9FeEEvY0lGdWY1ZEsrKzU3TGUvL2NsSGJXYmtGcTdyQVc3Rm5DUUNUZXc4ais0UXdiamNFUkVRRVpwam8yS0lxdVlvcVcyVVVXakl6a1pFS2NsTHgwbWhHMlZ1NUxDYlRGV1FObSswdHRvR3FXMkdpbGloTDZjcDN2bHlRcWFtdnJhU2hBdVlUaFRTMmljWE5PaTAwdVhwektMbFBOSitveEN3T1luWEpaSENRSk1DbHFEQldGQk9PbDFCbHM1eVArVjYwRGE3dk5JM25YNHlLQlNpMHRvMU11QVVGRWdTNVJKQ3JjQzhpQ1RzSlBCVW1SVWtVeWRNbXpmN2tPYWtlZkRnMDBJRjFxZkF4UUswR2FEZ1lOcWVQREpFaTJGSWdla0hOTThBR1duZ2pGbW9pbnN2L0hSeTJjcm82TmR6ZlJMdzlwdVJoRWdTR0lGWGdNakxnKy9sdHZqcW13bWxmMkN6c2pMYVUvcjBDUi8wMUVGeDJ5Z29vTVVSRUFsTEVGb3FNYjczZWh1VS9uVm9VL3lNSHovU0RmM0Mzakx5Yk1jV0FBeUJoUG95anlpNk5nR29kNEY1MGE0QlJlSkYwNGFVMEd6N3ZVODh1bmRPNjFPS1Nqc2VOYndtUlJ3Qmt2ZUlqcHJxUmtWOU80TFFUUExDVUlwaThYKzdiam40NmVVUk1QS2VoM1p3eThwNitLVDhQWm9jSUNtbnlzcEtVRHBhWHZZNGJna0NhZHV0b2RFWW1UNmdUQnNZNFVMOVNYR3NmTytqaitLZnJpM0JhZGtUVy9ZbXZtNUVZUDFOTml4THB6S1Z0dTJTY2VtQUYzcGdPWUtFdlBUS0UxWk5ZNjZPY2FReDhndjdnQkd1Q2t3aFZCYUJ3Z2duRGFUUFFWTlNSR0tYQkJuUEJlSGVJNVo4MjUweWZiZFhIWE5NdzNhYmJIU3p3M0ZlRlByMHpQZENUdEd6bklSZlNGNFN6dzhocEVJeGxTNmZVZDl3OXAvdXZydjdkNFUwdzRYdHBpZUhtbjBhR0ZNYW9hVEFUZDJhbUFxSkxpREZJb1FBUm4razFWRkF0SzRYMW14TTZkaFU5YlN1NjJtUmZGNXBzUkM1QlVZNUNjRWc1ZkkrWVRHLy9jcWViNnJzTnBubWVac2d5czB5aVFSWnJ5U0xHWU5RUW9GV1FsOWNhL1BmMWpkRnM4R2lidHE4ZnBtRTJGS0RaSFJmeW00c1kzUEJnRHFVdWZndWtNTG5pYWtKSnozcHU2aG11Qmp4eXFqeTZkVzE1NHBNZVErMEU1QXFyNEJzMFFORGgwMkszWGdMQWgxQ1JBcVpLUWxlWGUzaVhiYmErdFlyamp2dUo3OStJUjVZYVBNRHMwWGZWa2lqaERNUXRnVTFOVFdsdm1Bc2ZXaXVUYU5lMUFIKzI5cFNPQ3d0YzZUSUMyYmNtVEZJMTQxTEhINlllZXVqajVyVlM3ZTB6dlorcGg3VzNsbG9mdm8vK3VqalZLZ2dxYVNHL0JKWHNPbFVxSFhPQ215LytXdHNXeVdTRUlLbHdWQzI5SHBsWnlPY0ZDbEE4MHdwY0NBckJFRnpqZ1RheGxOc3VVTXAva2VIUGJyMi8wemw2MStPQ25sSlh1cVM1V044M3BMSzRrajZraFM1SWtWcld3a2dBWXZTY1RaNzlLWG5kL0RLWFFBQUVBQkpSRUZVanh5ak5VbjBIeFgyTTI5N2JEcXdScmlwY1FFNUJoQ0pacXBiazhzWE5ZQlI3T1QzS3dsMDVEU3hJMnZCWWpxbHdkc054bzRsTGxkY0tSSkRYZFA5cGtqTnlPMU9FeDNLeWhGb1RoQzRFUG0vbVR6MjFoUkZkWWg5M0xnUmxzWDQ3bHhEdHlBc1VOdEhVQ0QzTWhQdWpNcmU2NzFLV1B4WUkvK0FiN0xPUlZnb0RpVnNLOGxKUXVwYlFrUllhNXBNQmVSMkxmVUh6a0ZSWEtnMHRRY0RYK0tFOVhjYjFHenZ0VkFmNTgrOE5lRlFsVXdPOHFqaWtOcGZHMFZNTkJqaU9XT2xOOXVOVXZacG9oOFdjeXFob2pleWN4Wjg4QU5tbHR4Y2NNY3Rtd1MyczRWaW5Cdy9Ga1Jrb1lmVXI0VE52eHRqVk9jS3J3MnZKcXdvejVKcUdrK29POHhiN29ZaHg3RUR6akVyZ1JxQklvUVFaRnlGSkI5MGtyc2lUVkh4L2lNRVlvWCtJMERNN2NSSmt4T0k2SnBCNURoT2FWWm8va1dvelZrMjB5TVRtRHlkS1JBVzhPTmcrR2RrZ2lPTk5VYkIzR3V5WGhGSlVKSHdNd3JaUE1NNUo2R3N3VXFsS3Y0MzlzM2hvMmE5bXpCNWx3M0RodytYTzIyeTJZMDg4Q2Fyb0tpbDhrdWVFZGUyUVhBYnpHOThFNGtVS0ZLRUlmbXVPZDNJUlBMU3U2NjlhcnZHY243NWNlREFZU0huNlJjc0oxa1hTbDFTR29iMnhwSVphSEt4YXFxZnBpaWxLRWJVQ0tWM0cxdnpScTlTUkJPSGJQY05hYVlpWGlDbDdodE1GQ2trV3NGQmh0SEFyMmZPM2FxSlI5dFZVdmFiZVYyOWZQMFJNZ3FFTmtyTHNvQTdyb29rdnJOOXJ0ZEszZTNacithVk0rVVBEYjA4SjN4SStRVUFwaThSQ293VXFSbVBpckF6ZlF5Wm9FVVpUZ0xmZWJOMzc0TTh5dElzKzVGWC9YV3pUNzc1OXErUlpWZVVkelZmTFdiQTZVOFRIWkVNUUlVQmxLV1RwRmc4U0xpT1ZvWDg5QjdKMVBVdjNIUVR6VmwvU01LWU1XUEVTK00rSEVabVpqZUx2SDJNZUREQjhHR1VrK2xmalgzcWg4OHRlMmY2UzFOaDJid2Q3ZnJFSTQ4UGlQYzZ3a3NiT1ZNS2lPQW1VNGw2UCtnd0UrSG1iRGZXbklWMWxMSWFjbm1YY2NzMndzTU13Q2dLd0hWc0FDM3pRN2ZiTHV3b2ZCbythSHdvYzE1UlFNVGxKaUVpSUM0VGdKWHVGUW0rSmZxOTlKeERTbGxUUHVZbU1TOWhwN2VlSC9lRHQ5MUxtZWh3OXU1N1QrNGkyRzNLTDRhRlhCWUVsWlBQNWtDU3F5U2dkVXJURnBTTmxEc25GNjVHVnBucE9XN0tsSE9lbnZKMnM3amVrQ3pwQ3FmSHQ0RFdCNXhieWxoU3ByNmxRYUc1YW9TS2tmVnVoQXNIdFZWRFhlMDJKcVdwWUw1ZVpsbnBqME9KMWNqczd5WUxsdUFabCtIT0hlRnRkNjJyV0ZUTWJlOEswUzloMjZpMUpJV3J3UTlrTVVMeEJ0S2tyU21NVEZvMlY3K3BJL1FnV3lBd0FsZ0lVZXBUR2hDUUVkcWd3WGhLa0RIUVNQMGcwclBzc3U3bW43d29hSWJ0K2FsVG5jK256emxMbGFYWDFtNENhK3JxQVRVQ2RRYmduRU15bVNRNk5Kais2ZWNLRU9aeWthUGx5Rk9PL04zSHk2dStvWGQ1ajJvdjJNV3Q2TUpKbkpCbEg1VDZOWUVENXIwYzMvY0JFWnNNeXl1M3M4U2xLa1JFTGQ0UVJXSEpnMkg0TnUwUERKMHdDR0lMM1FEeW84QitkQi9mRWdKdUtwT01JdVV5WXdWSVdSSWlaS2xyR1VSMU8yL2VzUlE2alJRa2xsZTQwK3g0aFdrQXpCamkzNlVySU12V0JLUW8xSFJRWVA1L3ZDYWhXRi8wMFNrcjMraXRqeWRzUmdrLzJZM1MrOVhnM2U1bGhkekVDcko4Z2tJUkhNc0ZSbTNnT2dsUXBCNlVpc0FSRm5pQkQzbXAwWGVjL1M2cnVtNFkwZGdzL1hqejFDYlpLR0tQa3pXVk53UlN1WFJpUUFmYUZTaXkwaVUwNmc1VElWZlF4UUxjaS9JWmppblBpdmNlL2ZwK0dTa2NyeGtuT0FnM3hrQWdZNFc2dWwxZmVmVGJadjlnRHF6aGJmWjdBeDFVY2lobk5HNm83WTNnOWJ4QWU1R2VYbDdlYThMS3lERWY2a0VaRGtVWjlHY293U2c3d3BYUVp1VGhvYmswY2lxQ0ZEbXdVcDhnOTNzUUFmNTNyWVE5bnhKKzhVNTE0ZE92dlhCd3dSS0hnK3Z5a0Z6NkdWbzd0MjBiZ0x3Q1VSVFFLV29NcEdDNlpETGdST3JMSS9ZKzVQWnpEempBWHg0QjE0NjRaMzJudkdMTGlERTBDanlpaVNsSEJoWm5KU1Z1T3c0MDYxYXlZNXUxeEZZdFRQa1dyVTdJT2tWQ2lpUFNlQkVRU1ExRlA3UzVhemZyT3pTdHltZ3pWczZhc2F3T1U1UVgrdVUwQUlVWmZKSVV1dXU2VU1nMmFMTE02dER6T3BTRnZqcU5Sa0tQaHBiK1NRQ0ZGR2QwR2pPWFFQcTdWQ3lDZ3FUakFqQUVaanVnSFNkUjQva0hVVGtJeTltdXUrQ0NZaGxUdDZ0c2ZkWWhBVzdiTGcxZ0Jjd1N3RWtRYWhtQmhxaGtLZmxhUTE3cnNoekQ4Ly95MkFNYkxhZTQxWTdDb1VNako1R2FHSVJxamtYdVlzVHZ5VFN5VXBPaTBhVFVGUVVHSENnSW04Rk9rMGRmYnEyc3NzMTZsOWRxNFl5VkNrTkFpL0FxUFk4OXVsUnVqa0ZEdS8vSXpPd0ZYL2VrOXRreURJb29hY25Fc2h4ZzNLSDVpL3RSdHo0YnpWa1pQdS9CYk5zV01CUjBST2E5Qk1hTUhsVmcraElkUzQ5cjB4NmMraGdoTHhYVU1jZDlaOEQrNTVCZnZwVDhpdzUvZnZTZWZpKzkvODZGdVNDc0xFU0tlaTVDTHBjakYzc0V0aERBYVpKaVhzd0MwSkJKSmlDb3JTOVloZUNPa2FlZFZyK2lpdWRsNi9jTWtGZmtDeDRJbWhpWUpTUm1makdqQVVJbEFiaWdmdkRUOFVUajQ3djRGWlg5NDNoRXBDamRvVjZLNjVKSWhGcXFla0g0TXhRMG1WTEF5Vk9pRVJoeXV5dkUyMDhRb0dIems3aE9IeUY5MmQyMkxXNnNCRVFzZFNKRnMzVGtXTWNTRFNGMHBBMUpValhCejhxRWl4RWpTenVSc1YxcHNJRlJlQURtamdRWENiQXdrS1NZTmZnYVdRRnd6M1dHSDdMQ1R6ZnV2OUYyanpyRjhGN2wrVHFLSXBCVWVJRXNja2FDMUNIRkhnUWVBQWN3RXdSbFdjenAwblh6T3grOC84SnIzeDJWYUlLTlZVN3ExVytkS2JsOGNTS1FaOEE4aElpd2xLZWxmQ0VpZ0daRUJrZUxzUTNxYlhmbEV3cGFveS9MZEh0Y1NqWUxTYUZMY2lhYVBsVXM1bnA3UmY4QTQ3STI5YlhYa00wWDE3ZUV0WW5GQ1MwZEFTQlNEK0JGWCtHekE3YmZQd3NyMld3cjZrTktjek9MSXhvWHQrUGFCREhoREtibEtTQjFCTHBtMUM2bEYrV1FmMUZlMFdzOEl1cVZGTDNTWlBOeTVUdWZmMzZ1VHFhM3RkSTBwU1FXeklRazZTUkJVaDgwVlhBaXhiRTRhT01wQ2lNZDF1VWVHeko0aHdkV1ZQZzZoeDVhc1NnTURwYWNpNGlzZmFPVWdCQXhhL0FXdzVMQ0x2b2VLQ3AzUldXc2ZqdzJhMm1yWDMvelByRXduNDhpR2VXUUdzQ01sY0I0T0VpaEU1Ym9oMEdQNXEydFk1Um1Sa25INEtRWnViQnN1NmRsMldnNkVXT3M5RUVSWTZVTGpmbGtOa25TcWhrcmErTkYwV0FpMll6ZmhSV1QyOWlWbHMxdnhCOUpMa2pSMnFNR0JFbENtYnVKUGdIZ1lhTzA1c3NyNjlhcXF0enUyd3dlNFhCUnE4Z0t0eEpKWUlJRGlYUndMU1FCcUtBaFQydnI1RGtoOHc5cVNTZ21lL1hZKzhuL3ZybmI4c3BiM2JpTjNNaXpiSGNjZVdoSzdheXBaaURsVFRJZVRHaFU2Z0JJY1VnUlhxR1l5aTJ1M2tPUEdTT2dpWTF3MGIzU3lRVVM4QU1GcExPSU4wM1Bjd1pXTW1IdE4rVzFkYi83YmptMHM4MjR5MVdvZG1JTUsybk9CVkw2cFRIaitlRnN4KzFpMXJoMVV5elJwSkUxRkFvN2F4V1ZVUUFUQ0grZ2VEQjl3RHhMK0FFWVJVZzNrWlJhMlBhbmR1L1VRcnI5eGZzL0xqaGptNi9telRra3NBVXJCaUVrM1NRVWMzbFFOSWwzeUMxT1ZpS1lTUWFDTHNVRmZyRmhuOTEyR2ZId24vNjAzSDh5UTNSajNsRjdSNWE5WGtRYUc1RkRycEF2clpzN0ZnZWowRTI1M0xKK01lMm1nQkkycFl1TzlaWjdqMEpCSWNPaTZRc2xIblVqL29nTWxJWjJ2MHhsbXF5NUEydnVBanRDZWFHRy9yNFhzTktnNDBqV1pRQTB0Z0VRaTdNSHpKYlFrVFpOVW1vMStERUQ2OGRCSXhJMG1nS2R0WUx2M25wbkhHaHlCSG12V0hJeDJyWU5rWkkydVRpR2Rwa3paWVZmU1h2bzBxckpPcGQ5M0dFNktoYXl3R2xXN3ZzK0ZQSmV5ZDF1a1NCazFITkRzcDU0S2dVRnpmcCtNMmRPMWJCLy8ra1hyNnZoNE5QQ1pHVzNWNE5JMXdGeVFFM2drSXNkU0lMUTFmZTdVUzZVbUhBc1JrYmpYalA0N0pYV3ZjRUI1L3FLNDJ1QTRLR3g3K21DVVRtaG4xODNVcmxCMEFMYm1pank3ZVRpTWc3aG9VcjZOcWNaQ3VjV1FlY28yMDYvNGZUYmFhVWZZdnBtL09oTU1WKzlwMlZ4czRHYlNFSGdoMkJiTGlFRXdCa0RDd0c0QW1vUFJuMklGWUFuWHh0TWJRVy9jTnYvbkhQS0pzK2U4MmNpZGoxZnl0SWt3aWlRWkNZTlJxRkhGR2VxNEtSRXFMbkJGVHppZ2Yvc2YvOTQ2WEovcG1ieXZyemdzMlNFZkcrMDdJeWk0V1hib3RUL0djMTJPQzFGNUFyRjBvU0hJd0xpencvVU82azZBb1dPamJ2cHJJMVhIZUU0YWVCQTZRcXJLTU5BYzRGZ0w1bGMwVElva29IVmd4b0xPd0tmemNrRGE4N0NPa1JaV21QQVdUZkxkVkNSNjFCU1lKd2IxbWlTSHVXR3dKQmxSNUNKYjljQkd6Y1NMRVlZR05hV2hpVnNHU2xtd3BKYmdLWHBqV2Z6bENhRlY3SmNNUUpPQ3AxVEpKSUZDMXBBUVdxSU9JTGxjSm9ZZWVBSWptNGl2ZFZ0RDQ3dTlWMlJ5N2s0NFlqRGI5YjFOUitsYU1naUNWWEdiVUFyQVdGQVpkR2FtZ3FLNE5nQ0lyUWhGQ21tRStuQm4zM3g5UW5tcDBMTEtXNjFvcVRkZXlhMzArLzRvVlNvUXhDMDNpbU1BbGFjeWlHRlFuaEVLRUVSMzVIMmFYVlBianYxbXk5VytyWTdQUXpjdGFZQXh3V29OVEFnNWxRRWdrTnF4dXhwTzJnOXpqSjUybFBRV21OeDhleHRMRjVjbTZPWitGSjcwenFKQnA0UEZZNHhMenV1akovWjMwN2VOR0hEVGd3MFNnWGdSUXFZblNDbEY0Rkx5bHdWY21DcEVHaUNSOUNobHBKL2EzWHI5c25LeWwxWitxaFJvL2o3ODZjZEhXVFMrNUczUjVoK3k2aGRnVUlVQmFBWkFpSUhaQllJNm51Q2xMcnd3ODlPTzJyNERVMlZYVk9ydW5OaGI4OUttd1l2OUlDVE1qY2VxcXlNQUcwSGJMU0EwN0lMMDAyVkJFRDQvaVQ4K0FrRUFnMDBFTFh3eG84VDIvSDlNTU8raklvcHg5VWh5UURGRVNJemlVZUVFR1dYWWFOSHMzYk1Yb3VRSGdQeUkxaXJMcjhjcFZabGlnYUlHVXlLVEhNVGFGU3BaREpoMWdMMWp4N3BFTGVHMStVeFl1S2JDcEp3TWtHVElqZUJaa0VBWk0weWpVQlJwTWp0VWtCRWtESXNEVWlrSlkwR1QyMjl2UHFXeHYzMTBPRVROK3pWYXdRM3JoSWF4SWdJSkdIcGVRa1JyY25iUWtDQkJIMFFTWExsYzFMc1hQZ0F4ejM1eGZndGw1YnhzOC9wRGV1S29YN1pjcHdpa3JBMGdaVmEzUXdYRTRDNHBrQUszVmdPa2ZJcmd5Qy9wM0U5cjZ6TzduM1htUnBFYWdJaTZrZ0dRUG9La0duQlZiajl0eDk4dGRMLzRMYXk4dGRzT3NDMGFTL1lBUG1kR1lSbENCRzFzYWJtNStDSGVub3FXVFp4WmZTWWR3ZnlOZk4za1lIWFgyc0p3Qmt3YmdGakFvU3dTeStsdVJiZDA2UXFESHlJUWhrZ2Q1N3V0YzZHQzFaVzlzclNMMzN5c1kybDdaNFVXc0lpRXhBUXNmUUlVbDJtTHh0NnlCcWtpVVVBbW1ZYUtjc0plNlF6STZvT1BHcGNLZU1LRHRmZmROdUd5Zkt5OVpCRFk0SFVoMHhXR2hLZ2tZR2lZSHFSbVVDQTBxRDFpb041Ym5YQ3dBNzBwVGppV3lmZGRKYkduaUxQSG5sbVFoQTBZRXA0S1ZWV1dWdHJZS1JzOGI0VWdSaVFwVWdzYzlaU0owdWRoZ1lhSWdJbkM1MWNieW9Lb3p5U0lJYU90T0ZTb2ROOFRCRkczeFZtWnRRbUJHU1pDRkxDaVhRS09GMThObVhLdm9ReGZwZHhPUmZiYjczeFU0bFFUbUJCWUg1aEFLVDRTTWh6Q01NUUxDNmdMRlVHeG1veXZ3OTJVa2x5dmFzTkgzL3BwY3VybmgyUlhFNXhxeHcxWk1nUUtXejNVNlgxQWcwTVRJRHZZRkx3M1VZS1haTVNJZ3ZiVWlvWU1ybGZRL2wzYVN1NDJGcHVYb3RndjZpQTBWU1JCRGxaNkhYdEY5RUFBQkFBU1VSQlZLQWtVdkdiejU3NXpkb3JlS3pOUnRkTytxSUh5bWduQUVXdEtvQnhEcmFiMUlsazJmc2JyYlhsVEZqSk52NjUzcTRsMk40SjI3Rk5teUlpVFFva21DVVdHZmlrL0FBczJ5NjFBUmNXemVsNEhiZXM5d2NNMkQ5WVNkRk5KcDl6NDQxT1VVVi9zQ3huTTV1YmNsbXBydEpEWnR5YlVGSzJFaW95R1VoeHJ2M3E2a203YmovbzhWS2VKZzVPTW5GZ3RsaElMdTBwcUlHV0Nob0RMTmxNbXNZbE44MTRtdHk5ZXd1VTJvd0Vya1pSYUdTdFZqbEZ3cGVSSWxjMFlzemo1bG9xbFhSOG41bjdPSHlQUUF6STkxaDhkMFZpMWlGbEE5U2h5Q0tNd0NJTGdZTE1wTXR5MzJYcUtCZkU3STlaTVh3dmpUUFhxeEtnNUo1RU1JT05BNTBwY0VRd2d4Q1JZdWc2Q0NXNUh5TlFqR0c2c255N3kvLzN4THJReEhiVjhOUHFlVDUvbytYNU5RbHlXZWJ6T1FocFlwQ2tkWFBHQk9TekJaQmt2UWNrK0VNcVgyVEtoYWpvc3ZmYmIwN2N2NGxpVjVxRUpFajZkZXMvMlEvMEZPTW0xZGdvSTQxZ0ptc0JHTGtlRUZSSlNKTWFvUEkwV29Ldm94djhsWG9IY09qUXlIYlRMd1pLTHVJMkIwMWxPWFMyQmUrWks5VHZwclZ1VjJPeUdHYjdPMEpzRGxLaHNXWUx2Z2U1ZkNFc0JQQjh0NTBQYVhLOEVLL29GUmYySjNRM0pUQUpYa2w0U09DRWdNMFoyTFlOcGt3dkNDRHZrLzVHQzd3Zy9KYUIvUmxTR3hId1Azdi9lTWFrM1FMQmp1VGtoakY5U1FPMUpGTEZkQzRWcXNoYlFHMUQzUnJ5OVhWQW5xSjZ5UG0zWFR2c3BPVytDRmQ2aGc3L2Z1S0pydC9NbWJPVGxVZ3d5M0ZCSVVYU2pvcHFXS0xZaVcrS0FWRG1TQlVRTDdDaVlMS1lzR3k2dWU4c1Fja29MNldTSkg5TExCdnNHS08yMHRxcDgzMVJpb3dQM3lGZ2V2QjNOL0VGd0tTQkEya0lvbXNHa01HRGs4VmhPaEZaaFdHcUxGRnY0anBVUUJLbFpJMHNqNmVsR0N3djdiczRKTEZrZ2hGUDVreGltVXFrWkpKZVpGYzVsbDF5VnhKK29FbDQyY2tVR09XYjlmMjFSai81M0s4SVcwNlpWN2hmZVBTeFQxVW14S1BGaG1xZFRqbGdPVFlVUEIveXVTSWtuQ1FrWFJkTUczbVJCSi9hS2txbXJVbHo1cDcrejZjZTZiL0NRbGNoWWZOZTIrVTBpdGNWQ1BLMzBqRFJGT2c1WEJMb1ZOb05SbEhvZzJ1THpKeTVNL2FjT3ZWNXA1VFF4R0c5dGJkY0hFajVBWExVa3BZaDZBU29BZ3VVZCtENFYwZG1tbmkwVFNXTkd6ZkNDdkxaUGJRT3V5dkRCK0Z2dXc0SU4vRk4xN1hYSDBQWW1FNndRcHJIamgzTEM3bmFJWWlxaXlKUFJXTlFZQVEybzE1aFBES09Zd0duQ2JWTmJjM3NoRkxjK25DZDdsMS9rYnQ5My9QUDcvM2xySG5udVYyNnVsdzR3RkZRVDJWQU5kTzVrVnpUemliV1pocG83VjQ3UWZqNHYzLy9oMGNSVVRmbStPbVIrakkrK2Z6VGg3Q2tzMUZFMmN6a3h1UmkxSGZvRmpnOXlXbTRVSkZBZVV2QnBEY1ZxTDZTc204cVQwZE82OTl2clR6blRCbThEQmFjK3BpNTFrcUpkQ3F5T3pMdlA0ZTNSaW4xYzU3c29NK1lkUmtOdXRSUlRBY2lQMkxKU3BDMGRlL2VxOUJCMlY0aFc2WEJRd3AvZVdleXAwcENhV2xhcVJDeVJJQUMwalBtSEpGbFpRWmhJcEVBeGkzd1NmSG15YXAyeThwc0x3eUhmREo5ZXBNSzdMU0REeTVzMUxYMzNTcWJxL2ZKUWkva3NpV1BTVHBkVnFyT0sxQ1RrSVEwUDI5enl5b2dweFI2dHJ2and5KytPTHlVNFdjZWNQRGcwRTRtMzliQXF5VUpmSVdNTEhOVG1LS0RLbDFUdFFCa3lSbHJFblRJdlVKMjk3b3Z2K3hMR1pyYysrMDQyZGVXTzlhWFVVQ2FISXkxcjJSQXFrSnVNRy91MXl2L1RYdVRwYSs1eE9KOG1SWmE3c01oc2dpSWt2Y2tpSlRNRllKM0J1MTFhc1BLS01sRUg2UTQxOXZiRnJQSTZBTFRUelF0WVNoUzdtYWk0M21GMHZwMVJQMHBKS1ZZMjVEUEtYUmVIN0IvVGJpeXNwdEtuN1J3NWdIcFByMTN6Z1loYW1IVXRoR0RKZ0NZTVErbHJiR2R1WTZBZVlYOFJtdjF1K3VZSFhab2txZkppeGFsWmkxZXVIczJESk9KZEFac3g4enRHc3MxUjZQVWw1NU5GWnBtRFV2SHpvck9KbDluRGx0dHRXV1Ira1VVQkVFSkJycGVLby9SaTFLaUZCa2Z2a1BBOUsvdmJ1SUxnTks2ak5iZmRSVFRrY3dnZHh4SDl1elYwK3RvR0dsbEJOY3Y1OHBZVTBhb2Z4OGF5elFUSXBBS1BDOG9MVjhBWjVBMFB3bXlPS01Wc0cxdmVPUytKdDkyTjZWc3N2YmFrNU1nSHdTdkdOZ1dRcWhDS0pBaU4wSXdrVTZBY2V1Yk5kY0c4M01ndEtDaVQ3OWtUU2d2T1BMNmYyOXZudis1b1dkbDk2a1NyZWNWbXZlUmlUTVN3RWFKbTdDMFRFT0RSUzV6TXJVeGs3WTJyNnRmdU5YU3RCV2RFYXRVSWxNK0x0UjZua3NlQm9zOEY3U1FESTR0dWtJWWJtZGVGRnZSczIwbG52akdRc09pd1ZIa2JRUXlBaU5vZ2R6VjNFN2tlQ0pqL3JPYVhobXREWXZyTjFhUk4wUkhJU3F5OEpuUjZ2UVFGNHl3c01EaUFwamdnTndDelMwbHlUcnYzVy90and4K2xPMW43Y2ZkZk9XbVljSytqQ1orNVZZeUE1SlpZSlpWcEVheXpoa1lGN2toWElFRTBDSGs2Mm9pdjJieDZGMDJIUGpweWlyODE2M1g5bkRLTXJ2MDdOK2YxWHMwR1NGY3FOalNZMGlGTGcxRzZDNk5MeVUyMzhFVTNYeWx0WUdTeXJ0MjhhaXZVV00wRWhNWmVVWGpCUmlpRTBVbHc2c3hKVDRhQkRwY0J6Qk0vWklnb3NoZ3dxa1RsWW94UXNZSXEwS2hvT2JQbi8rTExJTlNnVzNzb01rbWFZb2tSS1FjeXc4a2FrdHBCaVBFeGp3MDBFcHhpSTMzTW96QXBGdmtOa1ZCd3BNR3BFSUdCYkxjN2ZKTTE0VU5kVTIrN1c1b3F6cmhCRy9vNEczdjBQbjZLVG9Nd0xYRWQzV1lDWmR4NTZmVGFiQ1lBQ2VScEtYT0NFVlpSYzh4NDhZZDg5TDhUMU9tako4VEJ1N2JyejRDNngwRm9naGd1Z1dWZ2dxTVZRMW1vMnNoQklTMGJteHhEVnBHYVJXRk82NktRdTVTM3VzclVsSlRhSzVET2p3RVRRcEV5OEFTVEc2NWFQTEFYL1JTbnlHdDVjTm9wb1A4Rm83QWNpSWFMTXN4YjdaVFVQTVU0SlNWMVc5K0VhQlZ0QTFudWpmUzFwaGZsU1o5VWtvdzQwK0RBa1p0R2tsTm5oMElnQ2RmZC9yMlhOeVlkL1dQNWtXNDE4ZC9jalNteTliU3drRmo5U3RHU3B5Q0tRM3BnTWhCVWJzQ0VCYzZvZ1VYLzF0cTFEc3ZHRDZjK2dCbGFHSnZDS010TWVuMFdaeXRSK1FNQkdFQ3kyeUdKNlBVbDBZcHF0Q3czbFJZbW5kNVoxUGU4dUk3VWx5aFBoOEZZYWdza2grR3I0aThlNHpheTR5N1BBdTRpWXZEOXdnc2tWTGZSM1QySzk1TkdreE1LRUZoT285UkdvN2pxRVRDa2FYSURuVGdERW1zTkRLRWlJQklsb3JXcFFqRXhtc2pPRllVVE1aU0dra25yUnZ6SzFKUHBUaXRTU0NUd0NRbGpvZ21LMmpHeVdCWGdLU1VmUVRyczFuVER4bzFhaFF2SlRaeHVPL0NTeWYyenBUL0gwYWhYOGcyQUtjV1FrUkFHdHhtM1RZa0R3QVFEUnhJSUZNNU5LM25vcnppNklzdi84K3Y2UFpuN1lqRFpWbGw1VnVCaEZuSWpUSEFnSkg3WFpMQ1VjUVRNUWZTdkhGUHdzYmNDd3M1eW1EWEw1OUpySFFTc1lXOWNZMUM2eWttN01nUVY4SkxSc3dTdU5Pa2FWK3YxR3Robm1uTjhONUxzOHR0ampzaXVkc2I4UUN3N0FRVVEvM09vRzAybjdveTJxWjN6MXNxekIwb09Eb0kxQitvUWMwTGorWWRDZFA3ak91ZFVkc2FYQ2dWZ051TENKMDNOOTEwZUtQdmRXVVZMQ2Y5dlM4LzJ6Tk11Q2NHakhOQURreFlFR29GSUtqUFVIdFNaR2tpWWZnUkZvZDhRMjNVTFptNGNkcFRMNzIzbk9KK0VFVjBza1g1aHNNd2tYQVZsYWVwZkZPT3lZU0lnTmdZelAwdkRWUlhpVTVURGlLYVV5a29XcG9vWFhTZ1ExMXRiY1NRUmoyTk0wVnRaQlE1SWdMbk5OUzBGaEJ2UDBDQS9lQXV2dmtKQXA3bmtmVmhBV2RjZlRaeG9wRTFQOG5UbmlNUXNVbWVLUDA3WWJTODYyVjVOd1ZwaG1EQzByeWs0NWZOVXJwV3lFQ1JISW9ZUTZkcjVkWmZabUJBS2FHSkF4S2QvY3N6cjhtNjJzK1RERFVuUVJ5RUh1aVNOUVZBeFlIUVdEb1RBYUFZQ1d2R0srWTE1TTY5OU9FN2Z2Wm5JdnQzWDM4T3N4TmYrMEVFSllIQ09TVGRCQ0FKN1NoU1FJSUZLSUhxSmNXZ0phQU8rODN6aSt2RHlyWWhRNlJTenBpR2JLRWF1QUNqdkZ6SFFvYXliOUJRMitUYi95c3JlazJrS3ovc2JyRm9NODZSV1pZRm5oOUNHSUV2dVB0eXp5MitXYWsxVzUxZDBFTkYvZ0NtRlRVdExpSDVlM0ZrbEphSkpGUkozMXJnS3oyalY3KytLN1g4elRQTEN4ZmRkVmRtWWI1d2JoR3d1M2twTTZEMmpHaGRscm9NMEN3TlRNMHFraVh2RC9WT0tEVFVheGRoMm9BZVBaOGhBdlh5eWx3MjdsOHZQOTEzVVM2M2FTNElFQkRCS0I3U3VuU0pwV3lsZXVnS0VVdHhpQWpBa0dKK3p0NTVubm4xMVJkSzcxSFlOUGt5L1l3eEJtYWlSQjVUbmJBZDAyeWRCNHhWNERRRzVFY2cxWVNLTUVFS2pRbXBWS3JrQmd6Q2dHMng4ZWFkWWdRaXJqcWJYSE13QVJGTGdrb0RBeE1Vd2Jlc0VHTWtFazJnNk5LdUNXS0pBSXU4NHZxM1AvTFFFU3Y2dG5zcDg1TERpOWVObUwvWjJ1dGV4bjF2YnBCcmdJUnRsVklVbGNQb0NrRUJCNlEvMHJGSWdWbG9aOHEzZWVTNS81MDFhZElrbTdLczl0NXZSd2hDaGM5b1pEUjdZSkRQNXlHWEs1Q2JYSUpGTGxWRXFwVXNCMFFFVWs3QUdYVDE4L1c3YTkyMDF3RnBncEpjYThPWmJxTHNIY3RPcWlBSXFFeWZpSmJsa1ZjNFp0S2tVVCtMWGxnRG0rRk5GZXAzbEVGeGJWQVJtSFptd3FGRkEzdnFlbXV2LzlySzFyaEpXYlBhNm5tN09MYm9DMmg2Q2dEaFFlVlFvOEgzRytXamVBNVNjMGtyTk85dXQrZmkydTlUVi8zSzlLMW54cng4U2g3VUVPNjRqTnNPR0FYaFdEYk4vUkFNOW9sRUFnVG40Qlh6a0tKNEZ2ZzE2L2ZzZmZtelY5NHdlMlUxRVozNHdJTVBISmlQd28yZFZKcks1S0JDQlFJRjlRbEdQSmhBdkxXd0FxY2hwVHJZaDJXZ29xS2k5TG5ua0N4MG84Z0pheHAzRm1GS2VLNnNZVHBoT3V1RVBEZkpzdXVsTmREVTJnZ1lrOUVNZGs0RG5lNzFwNTkvMGlGN0VmRm1XQzJGWmE5TEVTczVtQUcyTkN6TnFnZ2xJK1ROL1kvTFc2clVrVkJXZ09DV2xWbmdKSWRPZnVpbWxNbmZWS0N5OU8wbm5qR21aeUw1VXJtYm9PWDB4bmNVS1I1SWNsS2dwOGxLQmxMc3BoNU5rNHNRbWZEUk91TGFWNS9ha0ZKWGV6ZHVkenVWSEErYXpTWUxRZHUyRGFVWDJjZ3FCVFRLQm9IU2dKSGxZSEJnREcxVTRRNVRQaXhXckt5eUlVT09EendKSCtTTEhubCtzVlNHSlFBNHlpMGJ2dnE2RDdUUmJmTFlSUWtMb3YyWkRoeERvaDlLY0JNWkZZVDQwY1o3TnYwbXVNay83WU9IYUpBRmc0UmdMbEJibWI2aWdGRVNJNlhPNll3VTZONGtVTHdmUm5rN2tYeHZaUk1GZW1pNSt3ZDMzZEt2T3ZCL3pWTnBXeU9EeUk5S1NydzB0cWtQS3VvemlBaW1EYmtHd0NEUVNlQmo5ajl3aitjUWw4dzRZTVhiWndzV0pFUEdkN2N6R2NjanhVUHpPN0RSQWlRUGp0WlVJRDJxS0JoMlRLREwwbzZOU2FYcjVqaG9qZGdjSDVacERscWFxNHlOTjlzTUE5OUhnNk1aZDVLV3Uwd3dNcG5ZTmJBMlYxVWRvaHdhTlIyQ2oyWmpJbGtvbUdFbVRZRTBtTTJwNU9JeEYxcHhJMm5NWlJ5V0lJRGFkS0hHSUVrNFN0QkdSSU01bTdBa0d4amh0VFFZWld1Q1NmTkRpWVVvM1BiaktiTjdtL3VWaFUwMzNUVFlaN3Z0cjlWZVlhWk5GZzlEcEJvQk5MV01jYjlycWdTMUFtYldFeWtFQ3RHcDdEcndmMjkvZFBXZm5yaXY2OHJLWDE1Nnd1bzdMZExxeVNDU2tSRW1VVVFLSVpUZyt6NVZMSUJaZGtrWkdKZThWclNRd0hDUEdWOTlQbkI1WlMwYmg0aEtPS21QcUxpRkxsbDJ4azByd3dBRXFuVWFhbXUySnlGR1hDMzdSTnU0cmx0UXZRbEczcllXS2l6UlRFNHQ4bGJueVNnbDYzeHd1RElxWjA2ZlBFQ3NyMmNNQUFBUUFFbEVRVlJ3T0RRTVBKcSttTDVETUpMaTFoVE1zNFRMLzdQM0hBQmFGRmUvTjdQMUsxZnBZTWNHaWdwWUVBdEViS2l4UkxCcjdGRmpFalVtMFpoNCtWTk1qTEZyN0JvMUpzRVVqUzIyWUluWXdBNmlvQ0NkNi9lMXJUUHp2L2tPRUJEdURqemc3dmoyZG5abnA3eDU4MmJtdGRsdlQ5K0tnZllseUxzZnYxMWRNZkR0WXNJNlhtNSsrbW43TDg4OS95UGh1aU5pUnBRVlFNS1cwN2FKQTBuWG9SbXJ3RFlOeVB0NWlPTVFLaElKbGE5cldyTDdWbHRkV3pOMllwc2Z4bG1PeWx0elA2NEV5enBRR2dhWGVzU0VCRVhCWUVheFIwSXRXeFBMN3N2cmRmWWRrUnJvYktDYkdONE8yKzJrZFN6U3RVZ1JvNFdpMGRIelF4RXJOa0xTekhSQ0theWdRT3RxV3ZGWWltVEt5bFJ4bFM4akJjMGtXcXNXRUN0bjNBQytMTG5IM2ZRaTBXRmRPMFpDWjVVcVdyRHFCSDNYb2NqZ2RNSktnV1F1QUFsYmZYY3RCeXpIVGJGMGNxK1ZpclFaUGZxZ3d6OG5LMnFTeFZpZzRlakMybjB2bUNSRmd0UUlzcmdvQ25xNEROTXQvb01Za1VxUCtzOUxyNCt2VVVVTlJGZnBjQmo5elhRaGtVeE5KZm9VT0RNQkdRUGJ0Z252QkNrU2pLWUxCMFdkUlVSQVJMQnNWcG5OTlkzUmIzSzMxOGlncmJiNlJESmpGdkYvQ01PUVBOZ2gySmJoS2hVTmhXblRqUGJxYit4ODNhY3dueGttZ2tJdkpHcnI4VmZrcWZBQ1VkdTNULzlQMjhOSDEvY0x1ZUZNcVFHZ095MFZ3UEloWVFqQVdwY1lJaFpCa1FJVk9tN2krZkp0cTl2OXIyM0ZDaXRkQ0RlYzlOOW45czliL0RpenN0SUN3d1JCV29lSzRpS3RDNFVjS1g2Q0ZqWFN1Q2thUXdGaDNvdjZWNVQvODZ3VGoveDRKVkJ0UnA5LzZaV2hqYmxNUlNFTXdMRVRnQVNSM0JWZ0lvUGxoMFRxSm9YbHp4dmlUbk53QTdld0liQnVHMlp6UXdOM2JCdTE0cGpMNVlDVHQxUUg0c2ZBYkV1MFhYdnp5LzF5eG0xK2ZWOWpqMFBMa3FBZ1hwNkppT0Q3UHJrVUhaUHU1dkwwMHIyVkFvaWFoeXdMSk5SMHFxU0xvblJFbmE2ZktLQUVSclk3YW1GTGR4M1hWcnFYTDRCbE92eWRENllmVWpPNTdmOHBUbUNMNTc1YmJPR2QrSzJUZmxlM2VPRWJKQUZCU2dreGltSlExQTRTZkU1V3VuNUp6akp0RU55Q1BHUGxuemJVWHZUNHhXZjNLd0paaDR0MnUwdXBwdEQ0ejBYT2lreUZtQ2Q0bmxlRUVrdFJ4SUdSb05lQitManAySGpRbTZrbHlXS0JOaTQ3UnR2V0F2Sm5DNTVQUkFJZ3R6NHdoaVpFNFlIVEZrOHJiNlBxSnNsNnpjNG1HRk1qTFJNVEJnMnY5bFp3Ym9CRS9sNmZnVU0rYVErcEQ4cS9jRXdyUGx5QmNEU1RKcUVMT2dETmptSWc0YTZRZzU0YmlFaDUyRkJkMVhmeStyemRmdVFWRjFaOHNtVEJoYXk4dkUvTUFLUlNZREVPTmpmQnNvd2lyWkVVQ2hReEdKWUpqTndHZ2U5OStNMXg0NitkT0hSc2g2eHozZCs2cHBaRGV2Y2Y0Q0Ezb0ZEd0FTblJwTGoreVNZcUFFUktJV1ZGNmFEajBIb3d5bXVOZGRKVktXcW9rMkIxRVREUHYvQ2lRK3VPR1lZQnJ1dUNQdlIrdXI3SEFZdjF2UlMrcEFCTjh5OGZTakdBZlBJTFNkWmVxOXVRRnA5ZWtLN2pFR01SSElBNVBZMUdDaEZYN3RQeUI4VFdHQ0lXR1JMaW11KzZMdUtxZVp5ZTF6U3hKT3JTUU15LzlRN0V4QzByQVlJeVlwUHRZZWFiZGxxZTA5NzltdU9PYXhqY3YvOTlLS0lzQ1FlZ0FRSW1GTG4ySlNBaWFJbWdpR1BxejI4U053QW5YWUYyV2VVZTg1YlduVmt6YVQxZU9CdTRjMzBpWGYyT1FpNzFiK2lGVXFCL0xvZWNVOU9FZ2Y0d0NzMFFTY3BGNUFka3FkbGJOelYrc1dONy9kRGZkazlVRG5pZW1WYURZVmlnaEFRWmV1ZzYxbzRpYWhyWVh2Mk5uZTlnWGFXVThRZ0REYWJmRkVlZy9tdktNK09sd1hzZjNxNFFiTTYyREVBaGQ5YmVDQm9rVUFnckRyM1dXaDhZcFJjRERhajVTYnF5VjRldDVkYjZBRFUxTmV5TCtxWkRJSmtlS3d5VDZkK2NreTRKSk5XSnhoRklHaTlCUVZHaVZzSUVLV2RXSEh2OVVva0hmemR4WXJ2L1ZHWjVPN2M4OTl5QXp4Zk9HOTdpZWNpNEJaekdrRE5TRGhnRHpobk5SU3E1ckdQTCs2cG9mbElPNWEzVWVTcFdPdGRBQVpTMjdUaW1GL2hFVDA3YklqRXdvbTA2a1ZTaFVZalhVR096VG1LYmRlL1gwUG1oTTJqSlN4bEswcVpKTkJBRFFKQVJ5WGNPbkZraXRZWXEzVG9KVzgwakxmK0tna2svTG1jenhiaTJZQ2pvdUE1VUNGWU9pZ29yc29aMVFMb1Q5V0Rsd0JRaitqQlEwQnJrU25lQkRBUVlFSlBGWkRybWxuZmNmZHRRS3R6aGM4TG92WitKdmN4a1JoTENwcVZ0UlFnMm1tUWw1VUFZQWdRNVd5UVR4QVFpTU9rdkR0Q3lrOVhuZkREN3d6MDczTWl5Z21QR2ZEdnd3SHFNSmthelFWYS9Jc3hwejVLNlNnMkRCTTFrRkFsampnSzA1Y29FOWtHRnRBL2U5dHZ1R2p4UDlwcG5XT2wzZ3lnc1Vzc2dhcGtZOW1xdVgzcVVkbEhyTWwwaEtLV3dibW45dGh6VkRwRkFSSmFBSUtLUjVmWml1Nkw2UDVRaTI4SlRmM0JINXJON3U1d1B0TXdFeElvWGkydGFjZ2FnNldlUU1GU3hBbVFXaElLSFhpaWYybkZSdWxBc3VBNlhPUTdiZWFrWFhCWGFUa1hNYkdEU0JFTVpORTRjdE5LbFpBaU1Td2pJbzJQWUJ0aHhxT3hzeTVUajl0MjczZittdGdvYWlXZ0FPTllBWmprUXhBeGl5V24wT0tESklZd0RVTnFJeE5ZNWdrclh4R1hMUjlGZEoyaVNyVDFvaFdQbEFDQkJ6N3ZXZ0tUQWFoZ2FMZ1dkU0xlZWRQcFI3SnJKSkVlYUlBSHhZY1pvb2hBL1lrUUZ4OVRFN1VtOS9mcDlZVjhmUk0rQ01IM0lFT1hZVGhBUmN6WU5lMFhuaU9sb0wyNlBFK2lhdVMzdkpCbTB5NlByZmRjd1ZnNHJBeUtCQUswS0FERXpiTTJKaEFER0RQQ0RJRE40MjIyWHRLWjI3SHJGaERQcnF5M25wampUc3BqUll0ZDdvN3J0ZERvTmt1QVhRZy9zaEYxc000b0VWSlJYUXhES2dhKys5Y0VKaytiUGIvWGZkYXdwWWgrbzdQS3FEOEYwdEpXdUVCRmlFVkp0Q1VCQ0FZcUhCTTIwR2ZGWWxNcFdVbzU3NjhYYWR0OTI1eFYrcGptYmU0M21XMmlRYTFGSlVrTENBdG4rOGRqWi9hQ3FDTG9MWEdiUGZzWnltVHFZTTVtaW5nSXpUT0NtcGZKaDlFNy82dTNhL1ljcE0xN3FuU0MxYmhSNU1CSUcxUldDVnBXaXVVQ0IzRFJBa3BhRXVxQ2VNaENLcTFqQXZLcmUvVi9GaVJOMUlxVjM3Snc2ZGFyNTR0dXZUN1FxS3JkWFFFS2NGQWRVak1hUUZ3RW9Sa0tWWXBMb3pJbktEVXVYUUxscE52WjFuZHV2UHZHc2RacURBT2FpSUFwcmc0Q1VSdE1DMjNaSnNJdmlDNU9HcGR1VHVpVUt5MCsyTEVJVGRGbXNyUnNpRXQ1ZmhsWExhdGl0S1l6bW5JNzF0Sit0TWNkeU01a01DMmg5MjdZTkJxMFBMZFNESUNCZG5zZTZ6Nlh3SlFXV3o2NHZVemJ6Mk5BWk04aFFFQVZKcnROV3QrQUtnbWhQY25yRlV5bFNwSUFXMHNYSWVseVcxN1U0QTlzMHZ6aHczTUh0N3NHdTNBeVNSVEx6anc5TzdzWE12MFBreDJUbFF5RUtJQVlFM3dzaDRTVEpXaStBWm51YXVUYmxNdUNra21hNnF1S0VQOTkvKzhpVllYVWtuaHhRdGlDVzdEK004VWpqdmx4NEw2K0xXakRSZzg2akc2UDhVY3IzdDZaNG0rZklrZWRIaVdUNkxjTjBtcU5sak1zMFNWaGFmSWU1WDN5eFRsNkxOaHY2bXBtRldiTjdJMU1Ia3BqaTJtb0VFb3pBekVDaU1YbkgwZC9NdHdmZUM3MUJmcEEvbURGbUtGTGtra2tYYUF5WFZaT2tERW1RY1ZSTUUwcktDTmp6MVgzWC9XTXl2M3RtMHJicEFmMVBpNlN5TFlWZ1N3WGtWUUFncWFlRk9SblNOQ2RJcUNzQWs5WjVuN0p5Z1g3dzFLVUhIZlU0NFNPWElkU2hXOE9pNXZwa01sbG5teFlFbmdlK1h5Q2h3MENQMzdKNUFQcWd1YUNiMTlGMUNvUlBrUjRyS3EwVVdSbitTc2s5S2lwOFAybVExdVZZRnVpMXNad25tNWJwOFY2OVJJL3FiQ2QwaG5VQ2pCNEZvdWJxcXhWNWNETzJhYXpvRnhKVFlCS1prQ0pCaXdoWFpQU3dDUFZ0dlhxazYrbXdwc282ZlhsWVU3N0JPQWxmRCtLQ3YrREFSTy82TlpWcEs0MFluaG82Y01DZk1BcG1oVjVCY2RMZ28xaENXYklNZ2tKQXpOVUNpNWhCVE5zQnRtc0JXZ2FnWS9kKzc5TlpWOVJNdW4rZFhwQWJNZUs4T0Zid0tvRFJwSEhpbktZQ1dlZElnb0ZwRVlIMFRCbWtaNENXNW5TdlhOcFF0eDhsdFh2dXRQUFE5NXR6MlUrNGFVSTJsd1BMc0dtclIxUVg4dlc3RWYxWXV3QTJRb0dtVE5PdVNzWGJTUlZUYXhJVUtUQkNxcnBrV2E5M0VMRk5RYWhVRGNzM3RlekZrQTlLSk1nOVRkNlRQUFhUWUt3b3NEaGo1S21oUUpDUkNFb3kyT2VHL2ZLT284L0tVVktIejJ1ZS9IUGwrL01YWHBXSjVGYkFUSEt6SXhpU3F0TmV1YUJ0RWttd2FiaEFJS05FQnNyelZhRytjY0hPMjIxNzk4UjE5QVFRQUpnT2o0cG1xazlLcVhMSmd0UnBtaTQ2Q0ZKYTlQT2FnOFppelRsclNpWDZycEtzNGErUzBBTWZxSThZUm5HUzFpK0w0eGkwRXFocGpEVHZ3b0tmMmZxTEwvUkU3SUU5WC84dTZWbTkvclY3YUUxdVFKTlc1ZzNleXFCMU4ybjVNU1c0ZHJsL21hZ3plbWlneGJUT1BWdlhPa2hFdFUwREdBbmJnWDM3Zmo1MjdOajFXcUEvLzlrMUgyM1hmK0RkVEtsUUkwMUdGK1J5QlNCdkhSaWNMS2NvSkhGTHlqelMwQmtjR2d0NU5Nckw5N3YzSDQ4ZFRqaFRvcTdWZmtDU05GdTRXODBveFBKemlnTWpxQ0NwRXl0VjFaWWdXYURBeUhvMUdKbzJaNk9tZCtDcmIxdGxCOVVsM0lybmtCdUNjMUp5L0pDRU9yTk5Ma2QvOE54RDdrcE5iSktvbWpTSnE5QWJna3BVS0JFREo4NFJTd21oeEkrMzdyUEZoKzBoTldQR0VDT0t3N0hwVkZLL3RReTJiVUpabVY1T1FIVEU0aHdvMGc0VTBKaUFBS3d0cTY1K2plaThLb0doN2VPMlIvNDJ0aGxnUERndXM1MEVHT1J1NXlRQW9BaVhsQkNDckNGSTNhcGlrT2FtTkQzdmtaTk9PWFNhVGwvWDhPakVSOFh1UTRiT0xHUnp3c3Zud0VBR0p1TjZaa0NSU0tBUHBpOXJDRnJUV0VOeU8wbWFQaXNYV2YxNTVieDFqSGUxNHNpa1NxazQ1dVEyQmYxaEdkMVgzL2ZCZFN3YTVsWXlkeldrTnlVK2E1dHBteEtuVGRzMk1XM2FIRjJnUU1ybDdoMk5rQ0lMWFVsUk5tM2FOSzZmZTFyUUMwWDNhZmxkeHpka1dONU9JWmNIRVFaaVlKKytNOWEzdlpHSTBiRkg3bjJIRVlXdnhGNUJHb0JnbXc1NFhnRGFUU2VJbVhQTGdEeTVRd1VEU0ZWVkFmbUhVNUhqWEhUMnRkZjJYNWQyaDB6bzdRbTBYMkNjaDlwcVdMa3VDUi9RUVZ2bkRCQzBQaGo0L3E3ejM1KzVQYlJ6NkxmZHJXVGxVMTRvYXQxa3N1aFo0TWhZd3VGNzVmMzZkY0t4bmFiV0szdGFaVk9LUVR5S00yV0JOc1laRWpmRjBIREtIdHR5djVOYjJnTzY1TU5QdHZEeUdlMXRRTlBpSUtPNCtCbGRRY0pXSWRCcWswUXhXUVJEZSt1a0t2QjNyZjY5YTRzSkhieWMvcHNycXFHczdHTGhKQ29sTTZHNU9RZEYySVN2L2xtamZrR3RPTytvVFpRSUdFc1ZaMXJlRzMvWW1Pc21ickd2MThGbXZsS3MzSFUvTmhBaWh5eDBUUlV0Y0xSMWJ0TXpBRnVsUEJrS3BMeEFFYTlWTXRieW9Balg1V0V0UlZaSm50RzdONjZTMEkwZlhnSmdOQ1BjT0l6Uk1reEFCVkRJWmNFZ2hZbUVlMjFOVFExbGQrTU9iZ0RVVjUxdEc2Q0I3Z2lTSlBaaVRyb2hZNW84akJiZnNydGlpV3gxTldWM3gxNXRISncxODJtcnBkWHpMWk9Eelhsc2dscW4vWE5ZN2JoMDM0a2V5MmR2VHlOdk5tSVM0VUtCNDVLRlpwbVFTQ1FnREgwb3EwaURUNjdlU0FFd0o0WE1UUTE3YmVhTUMvUkxWTkRCUS84bVBWbWVma2tJckYvZWw5WHZSVkFvaVFFSmN2MDdBNk93c0R1VndXSjZHeGZic0Jjd05EL001SHhsR2haRWZnQk1CUU9DUXROK0hhbmZCdWl2bmVVMUxTb1hjYkNid1lCcHBVV1N5QldLTFUxVzlubVpubVZiRGJUaTdnK3ZMRXR2Tkw5ZnpBQUFFQUJKUkVGVUdVWitVWGdUVHk1YTZWUVhkQkMwWTY1aDZEVkhjdFlIdEo4ZlFWc2NPcTBqb1VZcDl1SUhNMDdQeEdwZkV1WUl5b0NxeW1yUUNwemdDSkxUbkdBS09DaGdORGVBNWdoTkNzK1Y4Ui92UGVmU3hvNjBzYll5NUJkZUVIdGV5SlFFamI5RFd6dUdZUlFWbHVWMXFPbmwwUlYzMGlsV3hOY1dJZG9WUFJZcjMxY3VxOU5YZnU3UzhYVkVycytNR2N4ZzZBcFMvbEFwaUlJUUVyWURDY2RTbWFaTXV5OWhybU56UGFLNGxsUTlvaU9kMlFseUtkWjYrWUl5dWJFQ3JGNDRDaUFOeWNLWGlTdHlTNUdWS2FCcHRmTHoydUpNMjNpU25LdENOZ212c0dodDVUcWEvb2RycnA2Y1c3ajRyN2FRVWpQdElBakFKM2Q3R0FjZ2FkL1g4L1BndUM2RWNVVDhYSUVBeTh6RjZvempycjc2d0k2Mm9jc2xLL3Q4RUN2NVgyWllTcEdZMWdKSktab2RsS252T3FDa1o5cTNWWEdVZ2pnNitzMW5ia2xUZHB2bmlDTkhOSHNodnVxNDZhaWxKUXUyWTBMZzUwd1ZlMGMyem42bTNmcHRBdjhhbVdyeVpFUEcwVDVTQklNWUNVU2djWXVGb3BHRE4zdWIvUmEyQi9yemFZK1d4WkUveHZkeTViUWZXdlNhMkdTOVJqUStwQjZBUWdSTnN5SWN4cFZVL0dObEpmNkhxRzJ5WW1xN2w0ZFAvT1plb2V1Yzc2UXJMUnBlaUdNRnZ1K0RvUEVSMnM1akZDR3BxcjBuMUFMd0tBWWVSRS92T1hURWsrMENiNmRBd2pGYVRJUUdDa3JvK1JhR1FMaURhWnFyMUVSRk9CRHRWa2xzNTBIVFJZZDJpdlhJN0pheU1rN0MzTldkMDdUVVF0M2dISEtaTENSY3U5MS9tcVByYlc2aEpORFhNT0tHa3MxSjI0b2xXU0Z4SEFQUVhwdHQydUI1WHNyd1VxdXUwalhVNzFaSkNsSDNjem5UMEl4bzVYaDdmV0dBWkluQ1Z3SkowR0xhOGp1U2ZOTmg1Zkk2RDVSUVRJaEZsWkFvd05jOEptNDNzbVhzMEYzL2dMbENiY0t5bE80WEp3YWcyM1ZNQzRCRWtCNVBnMXVnWGZLU1RDU2VUQThJVGVOMGN0K3hqalkvWXN3T3phYVQvaDhKSGdFME40UVFBSXowUEFvYVBwSXdOOGdxUktVQVphUlJPSUJ6Yzh2MjRDT09qWmxoditjRmNjNXliQkp5cEhLUUwxZEYzcEJaTXo3ZHVyMzZHeXAvY1RwbnFjZy9OR25iVHNITGdTQUwxM1FUVWM2UHAyNDdEdHA5YWEyNWZrRnZrOEU0MCtSR0ZBVkZRUmQ0QmJyeklzb0tnY2huZ1drNVFGc09pbkhycFNGYkR2bXNtTm1CQzgxWDlHempSSjVJYkt0LzNlQmFpYUtsTEpGQkRMUjVSbU5CZzY5MUJ4Q2syQUVwZUlrb2F0bGo4UGJYL09XblAvM2FsdDQzeGgwWTJzeVlUL05aQ1ZJVXRMS2k1OTZxcUs4MHZWQlJsZ1JBQ2dDMGd0WWVPR1BBR1Z0N0dVUkFSTkFIelRmVmszNjJ4aEsrcVpoUndVMFRZK0xEMnZ1aDF4clJWL29GYi9WUEFXc1NiUGFCYmZZVVdBTUJiR2xrR1dEQWFhRm96VkFYSVcwZnF5cDc5Zjc5OWRlVFpOQXBQU1FnNElic0NlTGF3U01pY0FuU0JKaDV3WG5uK2RBSnh6OS8rOXZQazByZW5tbW9EVkpKWXV3a2ZCUzVWeldqSllZSDJoV3FteWxrODJBNUNjajdFVTlXOXpyMjlaYmFRMGd3TUozWGZoZ2prbVhWTC9neDFBTjVjVFNqMFhYMDNUSWRIUVV0dUVERzVES1g0SERvMWJCNDNuajlwbmN4czQzTGpzUDJtTWFZOVprRUJrSGdnMjFwaGk0SE50WXYycldOYWhzMGErYmNkN2NwNUhON01MSXVhZThTR0RlaE1aTnJTWlpYdjZlM0lOcHFYUGU1cGJGK3VGL0liaG5SZG9kbXpNdUZIZEVia0RNU3NpVFl5SUl1K0NFd3cvRWtUejR6YU5TRURzK0h3My8rdzVIS2RyNHRUY3UwU0NsUVFwSVlaMEFQeGZFT1BSODRNaG9MQUVaQ1ZJa3dTa2g1LzMrdXZ2cGQ2SVJqeDkwSEJ6SUtaakVwcE91Nk5QWlJzVjJwRUVoblhLVUZYT1VKT25YeEVUMnhKKzJoWTIxc29tRlVJaDNVTjlBSEk0b1JWYU9FYmEzekwySjAvWjRlV0UvdjRQcjBMK0U2WGhRR0FaSW16WmhCbG5sQWpOWEZTS3FLNWt5bVp3bDBSYnh2ZllpMFVoMWFieXM5dFViWGxLWnpsaTlNSGRmTVRjbFlGakxOczdQOSs0YzZyVFBDQ1ljZDhpOGVlQi9IdVF3WTFEM1RZRUQ3YmtDYVBXMmJrdEJnZXRxVElDSExPbEdXZ3BZb1RNMXBhUGpoYlUvL2M0dU90RTk5VXdQNjdMeFlNWGU2bGgwS0NKYUVWc0ZFQXFySXhDbUQwZndoNFFGY0NTN0RZSis2R1FjbTJvTmZENFg2UUZwVEloRXJ3N2FnbFY0eUFTTGFSd3ZIOXVwdmlId2V5eDFUanJGbEhBWVFoZVNVSUE4SE01UHpldmZiNHFQMjJwc3hZNGpCTWR3L1lSbTJiUm5BaVBaRVA5QkJTb0tsUkJHRUlxSUpDaEw0RjZsK3ZkNmxmRlhNYU9keTNlUW5lczJjditBeXA2eXlYTkFZYUdHdUxkK1k5dVN6Zm83MlhRTlNxRXhna1lDd2tBZU5nNE5xemtsSEhQRklSOXRvQndVWUJZUENmSE4yVGh5RjBqSTVEVlVNTkg1ZlZpTXZ6cGNQQURRdDZFTElRdWxvaXdLcDZtclRNSTBxcERranlOc2xwUVE5WjRRZkJpb1V1YmJxZG5wZU53R29PVnMzUVhYam9UbHNsNkVGQnNyVHpEU2svVEE3NGRJQzFRdVFwL3NQSE5oakJQcVFSNGRvbVZwa3JodUt1c1EwVjREVzlGeitvTk4xNElBK1EveDBMQ0x0YlN6UC9YcjNxMDg3YmNhT0EvdmVrQUJWc0lnSnhBVWZ2SHdCVUVrSUE2OG9KTFVscGZFSlNhaVU5ZW9Gb1dYdWU5dmYvbnBNUjF2dVAyS2FyNVQ5bUZRc2J4aEdrWVlrZzRuaDZIblNDc1VnNmpxV0NaeEpFTEUvOUkwM245K2hOV2Z0MTVFano0OXN0K3hKeVhpVC9rY3prZjdRakdFYUNZZU4vZkNwUGh2OW43WE1ldnBtRzBKdlR4T3hUQXNyNUl6V0FtMU4yOG5uNDNMVzdsdm9tVTgvRytEbmN5TlFoSWpMaExmdVBhZXRFSU9DOXB5UUp4NFVXYk9HN1VTQjRNK05PalRUck10MEpQempzV2ZHaDl3OE5CQ0tZRkFnQzl3d2llWVdCejB1bG1HQ2dheG9uVmVseWlCYld4ZndNTGoxRzMzN2RvcDFybkdrZVN5Mkd0ai9NNmFnRUFjaGNLSlJVZmlnenYweVVQNlhEOFhZbDNPbCtGaTZyRUtCK2t6R0RHVmNMaGd0WGFJbHAvbGlHUWJROXBrSFRHU2dkSHlGQXV3ckthVUVHTFhQM2ptTHM2d2lsWjhXS3hoa2tZQmlFSXM0MVpCcjdERUNmY2FFR2F0WVFicXZLdysvRm5nclA3Y1ZYN251eXZHMjZnQm9ocWFXamg5L3hEci84NDIyNEZMNzhtYy8rZGsvbzhibUY4Z2FrNjVwUU94N1FEd0JITXNHUmE3d21QWlNsY0VBRFE2QlVoQllqcFBoeHZsWFBuSjMzN1pnTDg5RHJKRzkrMnoxa21MV3g1eGdrakNpS1lJZ3lTTlFMRU9DUlpFeUVRVjVRUElFVkpZbCt4TVN3NGltR28xaWtiVmVUR011NWMySkpFa3BoaVNZR0ZsOS9wYTFUWXQzNlZCOXF0eFpaOGppcE9Qd0ExUWNFS1VRRkFuZUlGS05sbDMyakZZKzJtc25tMjBjd21TOE5jazQ0c3F5cVBERU5PeEkxcmlpQ0NNYUljMUNHak1Ra3RWeXkzbGEwN1k5dURyL1I0OC9udjY4dHU0aWxraVdGVC9WYkZ2QWJBNis4Q0dNUXpCcDNFRVM4RWdCeGhMaVhGNVZtUFliMTExOTVZUHIrODBEM2U2YXduNEhqSm9PU2l5T1NBSFRpb1FPdWs5cktsdEs2eGdGL3Y3MFB5MmFKaW5nRElEV2dWQUtwTjQraTJPUCtYR2hZMUM2UmFsT1E1SW8xV213ZWd5Z2lxcXlUQmlGVGNROGlaa2F4WitmbUtUMSsySGtHc3BzL1JwR1Qra3QwaXFodm13bzVxTnBTT0NMNThwdDZIUWRQTTlic04wTy9XWVZDM1RpNWRCKy9mTDdqUngrVytQQ1JRdGNia0paS2cyU2hJY2VSNDJIZnZ0ZGtja2t5R3FNeVhJSE40MW1SZFdPZjNyaWlaOU1tajQ1MVJGVUtuYmNhbFlzMUlzaHVYUEowQWRFRG9vNGtLNnIyNUNrT0FDUlY1SndpUU0vNlJqc3FHbFAzdVhxL0xhQ205cWlOcFRpYmNQaVVnc0czL2NCbVV3ckVSMEtNMmFZYmRYdHpEd2FIOWJVbU92dlpUSkRUSTZvdHhBTWJpbkRkRDhLTGQ3dVMydHE2bFRUNHJoUHlqV3JiWk9EU1JZV0kvY3B3UzJPUlJ6SHdCa2pKaDBESW9jZ2pLWlVEQnJZSWN2NTZWbXo3TDgrOHZCRnFkNTlkcGZjWWhaNTBVaFBnQWhpY2g4SVFGS3RZajhBYW9oT0NWd0JzQ0J1MkdmN25XNmRzTzJJVHJmdXRoNWMvVm5rQnd0czJ3WkJDcHllYTUwNUZwc2pyTTluZis0cWhta2FPbENJb09tcTUwd1krTG5lZlFkMitoajJCQnF6bnRDSnp1NURQbXJJUkVGY0ZPaWErU0FpQkVFQXFWVFNWSTdacDdQYjY0cndkTC9YRlM5RUJFUnNzeHJpS3Zsa0pMTTVQeHI5elEyeUgzYlludnU4VWwxVytXaW1vVWxvQnF1M1QrTFFCMllRRHB3Q0NSa3RNRVB5eENqSEJwOXhqQTN6MkQ4OStLOWhiWFppV2ViZ3dZZUhaQncrUll5bUVFU3Ryd0JvdXRGenNZVHVxa0dXaFdVWllCcU1SV0U0T2xuaERDcG10bkhaKy9CVGNyYWJlSXRnK2FCWVVTQTVsZ1dnb3BIemc5bTkycWphcVZrelpqeHFoTEYza0FHaWpDTURyVmhJcVlTVFNMMDVjUEEyN2I2VTlHN2hnNHF3VURoY2hJR3BmNkttbWJGR0VFbDRjeEx1QnVOQU9oVlo3Z0J4SktUSkV5K09HTE80UTc4SnYvNlBOdytSU2ZmTVVLR3B4VGVwQkJDU2NoYWhBdE0ySUVuamFTSzAwczV4Q0w2VUdLbm5qajd3c09jUXFaQkdwQk9EL2c1Q1dUTDVCU01GV1VvSnVxK0tsTGxPYkdLekEyVzV5WXBReG5Za2FIUVJBUkZCdjVUcDJrN1R1UDMzNy9DMnpPWkVPTGFtem03dWFjNG5MV1JPMlUwY2FCS1J5NDRUODlGdTFVREVyTDY1c1VNdlRuVVhHaUlkSGNWMWRUYW9xS0pDSU8wWlFFK2s1WUdTVjV4RnBvYmFkbHFSdENMQ3BCSURxeW8vSmhRMHFCWHBuUlU1Yyt4WS80SVRUN3dwcWRUNzBnOVYwaUhqbUJtZ2l0Z0NNWHNCZmh4Qk1wMkdndWVERjhWb2wxVU0vS0t4NGV4SkhmaGNxOGE3dkgvZjZZYnJ6cUU0NkhtQ2hMd2l0NkJtNmtoQ2tKUGJONG9Da0NxQThqS3Jhc21pTC9haUltMmVCRXRXVlBaK2c0VFYwbGhKU0NZUzVISVBnSVBZZWVhTTZkdTBXYmtUTXhlL1A2dFNoUGx2QUNnV2t3dUNtVVEvN21ZYk10blhod3laRUxYVmxGSUtGODJmdll0dHFwMU4weVJTbUVDYUZOR0k3bFJSMDZjMXhKVEdJUXhsVTdxeStnWEVHa25aYlo0YTlyeVdsbFBSZHJlSllvazJDZXhDd1FmTGRzRXdMQWo4Q0lJZ0FxSWp3VVlJQzFsbFJ1R2NZZHR1ZmMycCsreXp3U3k3YlFZTW5GRW81Q0ptY0dxWGs3TENOT21LZlVFOXc0c1hCUXFMU2EzNXJkSE91ZUp5eUowRGJsTkQ4VkQyNXVSOTBYam9zZFR6UmRCNm9HMk5saEZEaG13UUkwQzMxWjBEemJqdWpQNkd3WDNpeEluQ1pMd1dwUVFTQkpDMEhTalFIcXlSZEZsRElkZnU3NGszREZZYkNDcXhUNFpJekkrVGR4aGJHUkJ5ZXFhNGJwTHl5WHNKSkpFb241aVJkaW1UMWFoSUtDcEdJb1lSalVoZ0l6RXNpcEsxaGNBcER4alZwMkF3QUNSaG9PL2NRSWhsQkZySUtYSkxndWRIV3lZVDdYNEhITDdHY2VraGh5emNLcG00eXc1RlRvVVNOTTRSS1dtV1lZQUJDSklzOVR4NVgyenFzOE50Q0pscDVKajFyWi85ZXRLRVNVcng5cHJtVmIzeWdUQ2VRODdDT0N3QXA3MTVydnNNSmtSRXAwQUFNSlBhTW1LSW9oWlRlTTM3cUtsM3RrcTFOb0JYSmZ2TU1jM3lOemczVlQ2ZkJVWjBNN25vcGNMczREYXFkV3FXbExuQnlNSmRCUWFnVEJOQ3RNQ1Q3UE9oUTNkL0E5dXpjbWM4YWlhRjl3Mk9jVUlySllMcUNyQkJLZ1UwMHdDSk5vd3hRS1pvdnp0UXBDeThVMjQ3N1g0c1JBdnpuYzg2K1lEbVNKd1FNMlp5bSthVThBRVJnVk1iTEtRaEU3U1hicERybXhTcU1DcEEycUxVYk5QOVA3ejY0Sm13QVk4MHdFZHg2RVdoaXFnVkJNWTRvRVFLQ2hodEJRQUZRWXRFb2dTYWlLMEIxbjVRWDJGNVdMa1VJc0ZjRmxaT0I0VzBDbGRKNmRZUGpiNC9LRllHY1JFVFRES3FIUEowK1Y0QURISEp0QkZQK3QyNmN4c0llYmFCNExZQnRudGtEZXpYYjRIQm1MUk5DK0lnQk1NMklCUGdJenNBQUJBQVNVUkJWQ0xCSkRrYjBEMTYwREVzbWNMaUhOQ3NRQ0x4R0dLNGE2cXBDK213ZXA2dXN6eE41MnM0bWdtMXBrblE3bWZPR0VqYVQ0NXBMeGtSS1MwQ1Jta3B5OHFqbDVuWFduYkRYQkZSVGpqOGlDZk1LSG9Ud2hBc0VreTZiWTJuZnNIR0pJdU9FN09RVVF3Z0ZaMGNBczdMbXBnNjc5VS8zOUx1TjlTSERwMFkra0wrTjVzdjFFa3BxVjhJQ0tySWlHbS9HWkFacEE4cDZwd0VUc3djSU5qMWcyelE3b3QzVzQvNWRoQXAvbmdVeWF4Mk01b1doOWd2MkNMeTl0MVlQMS9qWEd4TG9VOU15b1FFQmprL29oRTBYOWh1MzgvYmRiZlBxSzJyUWhXTUFCVWhFQVVFSWtqVU00UklnU1RRNktiUGlCUTdnVXgvSC84L2d3Ky9PTlJwYllYTEgzcW9kMHVzTGpIVDVmME44cmdFdE5WUm5HTTBocEVmQWdjVGJDM01oUUk5NTlLMkJRMExGODc4NXRqUmo0N0ZzVFRJYlVIL2VubHg0QzJ5REI2NHJrMXpuRFE1bWs4YUl1cUxEc1YrUzFERnU2YUZEanBqelFGeFJjMVZDbnk1dmxaSjduRVA5ZG5NSUU0VDN6Q3M0amZjb3pDQVpESUoyMnk1MWFJYXJQbHlFdlc0bnE5L2g5cWVVZXNQdDl2WDdOMnYzMmUrNzRlYW1la1hxQ1F4YTcwdkZvYkJvSnBKazZ4dTM4SFZPckMrVElLcDFRQXRlMXdPRHhFQkVZc01UcnZMdU5WcW5Jb29WdG1Xek9JOWh1elN2S3pLQnJ0ZGZQVFJpN2JyUC9BcXI3bHBBWXREaGJRbnA0VTQ0MlNqazBCaE5MYUtna1pBTVFUR1RiUVRpYjFlZXVXdER2Mk1yVmUveXRjVHlmTFhGWEx3aWVrZ0tTdUdZWUErR0NBQU1YYVVDQVl5SGQraGZ1R1NkajhTZzRncWJWVzhHOGY0ZVJ4TGNtZ0lNQzNPM1lTeDc3UkhIVElHTmZRTkYvVG5Ya1hnN1JXSGtXdWJGZ2h5ZFZaVVZOUzdUdUxKanJqRjYrdnFoZ2dSRDFHa0lPcUFJSWdTQWhnU1BSVFJBVFUvWm9Ea3hwZk1tbG5XcXhlNTIxRzExNlBKYi8zdlFDdVJIT2ZGSWRQclVoSE5sVUl3bVFsYVFTT3lnUTRnSTdDb3FhQytzV212b2J2ODZ0YUxydWowRnk5WHg5VlVaZ3ZSYTNFY1JjbzJ6ZUkrK3VwbE91dFowM1IxV0ZqcytPcXAzZlNaQmpVU2FwQ2tNV1Mwbm5TZy9vR2t0VHVnWC8vNTNiUlhHeHh0dHNGYjJNZ05kRlp6dG8yZmlTaU05TUp4YUk5T1R5YkxjZ0E1NytPbWVJOTZNVTczY1cxMFE2UVZ0WmJNMWV0cEZrMjhkVVZwV3BORlN4VnBRUnEyQlhwUjZwY0xveWlDWk1KUjZXVHlzd08vY1dSaFJZVU5HRG5zdUwwK0dGQ1ovZ2Q2UVd4QXE5eEFSSkJoQkJBTDRNZ0lWeUNHUVlIaVZpTHROT1p5WjEzeHA3dmEvZTA0cjZqT21MYjdYOFpOUVlZaGNIS3hBMmVnbGNEV0xyRWliRTBQNHJsVmVjL3IwRDlicVI0MFlDbGo1Z2RCR0N2UEs0RHY1Mmd2M2QvbWk2YmE0VVQ3dFE5TWE2TmY2L3BhNWkxWFJtSmZVa3c0SXk5RFB1K3Bwa3ptTTh0MjJtV21VMmxMb2VCbGRsY0tlbXNrRkVpNlNjQmxkM29vbnEyallFTXM3VmY2RHV2MWFUR3hqY3NWLy94VGRVTSsrNTFFWlVYQ3NtMUF4b0FiRm8wWjBaY0l6OGxLVjZRNENDM01EUTZPa2lLTi9QbHZIWGp3ODBpRWJ3TjBwMlFkZGZqaHViUmx6NHE5UU9rNWJoQU9uUUo0TFVBVUVYZ3RXZDArK2Vabm5yR0NPQ3g2c2toSkF0dXl3Q0lGUENoNDBySHRkdWRndHlmQWVuYWdKTkRYUXJqbXBuaXhhNXN0eE42aDFVVUdRRXlCK0xUUmQvYnN6M2VDSG5MUW5tWXJYMjJqUDdyZmJXVERxbFk2c2UrVkRDM0ZzUGlDVWtTYU5SRVBkR0hEWk9RKzltUkxRKzMwOU5ZTitiWmdkMWFlZmd2NXlBUDN1eHQ5N3hPTExHWWhCR2lQQ3lmaGpVSUNJK0dnMHlRb2lFazQrSlRQRXFsZEgzL3B2NWM5K095enliYndHRG55L0VpQS9ieEFYcS9kd0FxcGYrU2NMdEtOTEg4T25JUU9nTkx0SUpvR1U4ZFBlK0d1c3JaZzZyekJlMXY1VUJwdk04T0pVK1ZsWU5rbUdFeTQ1VW56c05tem45bGdYaUtsSm5FdjB6VENkY3dkVUltaVlwSXVyNUNjdTIvdU8yeklFbzFibTZFSkVoaEh4ek5BRnlYcUlRZFVVV3NnMmlNUUxWQ0NKRHA1SWVhWmxYaHM2NjIvSFZEeVdzOUowNmRiZjMvc3FRdER4a2MzdG1RUVRBNTZUaW5GUU11MU9KSkVaU1RsUUFJajJDWUo5aWpUdEhSd245NTNuWC93d2JTTzF3cTYweksySGpNbTE5TFUrR0hDTUNRUzNaVHVLS3gwRUs0clBSV2pXaWpyVUh3b1hWWlFJQ055dlF4bTlySXNBNkk0QUJFclVtWmpNRGhHZnQ2ZnM2SmdLYklLQmRncVQ2V0hGUlNJWERkRUtmUy85RlNGd0MrbVIxRUVKSlJTVTk1K1l4dGFoRmhNN080WDZzajZkcUVveUtWcXM3cTJtb2luRTZNRllKeURGcHdHSTJic0YvenlaR3JtU0J4SlJHMFRSS2RsL3Zha2N6K3Vkb3c3TUF6ekpMVmJGVFRDU1pOQWgrVzRLWVlRS1ViaUtHblVSK0dSRDA5K3FsMEZic3ZLL25WQ21lK1FkMXpHa3R6TGlLUWFDQUNDbzJIclFMS2RoTHBBeThRdG0rc1hkT0NuY1JNa2dQMVd2aEMwaEZFTWlnUlZGSG1vWW05NGZ0NFh2VHFOTUtzQld2QTZXQ0lLRGlQQm1MQU1rM0laNVBKQkxKQjlBSU1QYjNlZjI4czJiVzJaNWxEcU0xTGwxbE1SL3NXZ2dOSmIwNUFEb0RPbjE2RHRaeUJpbXhOcDhwc3ZEOG9vZFlKYlhtbUJRZTUxa3BhV2t3QUZqSmc4NlRZMFpvS2VGQ21PQmdsemtjOUVMdUtqKyt5NngydXdrWTZ4aVBIV2Zmck5wUGxWNEp6bVVLUjFGUG5WMW1sT3JKNm9hYkk4ckp4SGRGbjVzYzA0YVJGdDByRE55bDBzYzhxMGFkc0J3ejY2LzNvT29sSVFoaUdZQ0EyUmxMVmRETjB1Z3c3ck1waDBNVVQyYm15TVJCQyt4VG5FQUJJNFJVelRCRzdhVmpibmJUOERabWhPMThXdzNuRG82SVcxSExwbVBNdmpBSXdZTk5LakJDMXdkQUFTUEpwbU9takx5WFZkc01obHB1c1ZYZTZCQjJXT1d6dmh5S1Bmb1lvYjdhUSt5TEc3Ny9zM21mY21ReFJKZWdhOU55d0kzMGhFTkxhY3JEd0dCaHJBVEF0Q3hzQ3A3alhndzNuekxyajU2YWR0YU9QWWR0eDVHY1g0WTZIRWZFdzhuQnNXMFVVVmxRWnRtZU15SnE1cGdCQTdrWjgvU085VHR3RlMxMVZiYkxmYmpFU3lZbm9rbE5JeWo5QkNsT0VRdjZGbGcvMThiZTdpaGYwNXlyMmxpRkNRcDhJd2JaQ0sxUTdlY1VpNy85SlU5OGtyTkk1aklNczQ2bmxCUFpTS1pva0VJS3VWaUVKM3l0WEpqUHRvcFA2eHgvNnBSbnBjNnpsaDBpVCsySXZQbjhXUzZaMDhJUkRJOWVwSElZRlNwQ0Fhb0pBQmNBcWdDSFlFR0ljS3ZNSUhoNHdjZlVQTm1XZjZzQkdQWXc0ZTkxYWNMeXlPZkE4NDhZd3ZtOWI0TFE5ZnBuWWtob2dkS2Raanl0QWF3Ym56dmhoaXVVNUZjZjRadEI1cExTTE5RaFdIYjQwYlYxbm9NWjN0NUk3b0dkYkpJSHNHdUpxYUdta2pteFg0ZnF5SUVjWGtRalZvWWdrcHVGdFd2ajJ2NzlNbWcxOGZLbXlTT29oSUM2aklIUFY5ZlhFZ2NWNnNLb24zcUdMc3k0dWl4RHp0QVlka1BkSGVPVmpFZkhOTlRZdHQxOVdmT1AyeTRFYUlYWGZlZVkydWxJOUE1R2Vqb0FCNlhJR3NPNDIvWnNCNjcxT0VBZ3h1UVlIMjEwTWE4eHhuNHg5OTdySERpVDdVdXpVanFja293WDNaU1piTkpNRmVMTVFCNlUrQ0pOT2M4c0ZrbE1JVWtQOFFIQU9HWmZzMWxSY0x0bkdwaGQ1K0xOampzVlNCSUlGbDJ5YmhCaFV0TGZVN3RsSHRhMlVKdjJtcmxHTnViekpFWm5BSVkwaytCK050STFRTDJ3UDhIcnlYNGhnUDk3dzhHQVlEM1c5ZFI2OGhKTUVPcE5nb0VzQ1NhS0dBTDRxazhTTGlSSEpsNkZKckRxODlldDhvbGl3N0lXYWNCN1J0RWNVeEpCSUoyc29KQUNTQzc0VWdpTWJhdDIrU2NzYkRJQ2hqN005bjdyUFBvalZEM0lDcFpma0ZDV1JMYmRvU0VMU1gzMWt0TGFkalcvQVlxWHh0NVhlWHZCa3pacGhCTExjTEltRXlFdVF4amJmZVI3ZVF4MHpKZDg0YmNSNFpXZDJsTnhzWFQ3WnhtK3RlclhFUWk0V0k4bm94YWFZYzBVNnBhZE8yb01FSFQzN25IYmQ3OWVhcjJPcC96cUtVQkwxb2xGTEYrL0srTHIvcldqcFBCeDNYUWVmcHV3NGtvb3BNVzZjcDFDa1NXaTEwS0I0YXRyYktiZHNtQm05QVROc1hLQVE0REQ2dk9lcW9qYTVwRTU3eThHOGUrMWpZM0RMWlFVWGlnV1FKK2ZFRXVXbTFNTGZJbld1U0o4YjNBN0NkRkhoQW5VcWwrczFwYWJuMC9sZWZhZFBOM1h2bkxUNlh6UGdmMmY2S3R2eUs5TlFXaHFhQnBwLysyYU9CakFReUkwK0FHRGIxblhlM2huYU9zV1BIeG1qWWI1cW11NGloQVJxZWFZQnJNamwyOHVUSkJuVHlNWFhxbmFhUzRWQ3ZrSzAyVEVhNmpnR3hnSnpwdW4vZFptejcxbTdkb3JxdGhmQjNTeVVka0ZSUjkxdjNud0VXRlJ1TFBEV3hKTGM3MFNHSTVGc2poKy9kcHBkbXdtOS9YRzQ2NVQ4SUFiZEZta01LR0Jqay9kQnpTaXZZK3E1ZldpV0NBamNRVEdvbGJHbDY2L1J4Unowd2N1VEcyODZCNWNmTFg0U0V3MmRLQ2lWRUJNdlhncUxGb1FNc080Z2FtaUxMbmxhOWFab3REeXZuME53RkhWWk9XeVhPVm5ucXRnOC9mZlRSaEpsTTdNSk5nOU5CSXlwQnIwa1JSYUVaaTFsRUE5VnRPN2VCRWU4aFUyRERVS25jY2V2S1VvbU0xclFUdGdPYU1la1hjYnd3NnZmMmpIYzY5TDN2RFlQWitrQmRXeDM4Mm90RFE1QWs5eVJaUjhTM1ZqU0VpaEdmWldCWk5zVGtoeFprOFpxR0FjTDN4VllEQnN4WVVYQWpSMjZZT05IYlkvQTJONGhDL2d1THMrSWJ5WHBiSUtJOXoxaEVZQmtHMkNROElsSTh0SlZlM3FzUDVnRkgvdXJPZXc1dUM5V1JJOCtQM0dUbDg4Q3RBcG0wUlViVVdsNkNwZ3N4SWxCTVFaR1pLOUVQSUJyUm10L08xWFErajRCOUVFWlNhUmlXWVNES1lPaVc4YWR0dnF6WER0UTFaZzhBTUIwVDkwc2xITHRRS0pBQnpFQnhlMTVsVmY4Ty9RTWRWT0VRMStTRG90QUhMY3cwdm9MVUprVGV1bjVJS1FhR0VBT1B3WEluOXgxMmlBZHRIUFcxM3NpUVcyUFJkQmlCQVMwVU5VeW1BTWkxQk9sMGtpejBQQ2tQRVlTNWpJb3pMVXQyMldiUXRWZWNja29UYklKRGUvYTI3dHYvQXhtRmduUDhLZ2EwSnI2YTJEa3BTcWcxTk5nNXNEY21GR2FHcmgrSXJRVU50dWE1TkxoQWxqbWtrNG5zOGQ4Nlp1bkd4S1c3dGNXNkc4SWJFOTh6SjM1N2NUN1RYQitHcmZ0MW1wRkljZ0V4eDBuTnI2dmJZSHVZRzdPUFVCUTFyUzFxcTZBMUJxRDdxc1BLYWJEc1dEa05pYkV1UzE3bHBqbUxubHlTWEtHNnZBNGFIaEJYbG1FUVdTTGVvRitJV3dXWk5UeWM5cDBqMzdLaXdxTVlCWktUbHdKb084QTBETEwrR0hna2pMU2JENUdCWlRyUTBKSUR1NnpjRFRnLzcvUmYvWFRnR3NDdFNGTEMra0FwYzc1QmxtaElTZ3lBQk5DS2pwWkFGSW8wZ09LUlFDR1BuOTZCVDh3ZWROTDI5YkhBS1c2aVRMbHVDcHFhbXNCMTdhM216UHVpMDMrK052dmpMOHF6bWVZOVFBbTBxQStrUWlqZzV0U3R0dWsvdDRoMUc1YzVrKzkzT0l1UDlQTFp0QlptdEZTS3BVbWRBU1RibVRFVElxSXprSEFQQkRSWUZaV3ZJS2tteFVKcnVOejUvUFBsUzdPRjd3akdxeGpuSk16MVpKTlVraUNTN05KektwZkxnRzB4U0RzbXBFMUxXVjd3MkUrKzk1MlhxTkFtT3cwWmZpRENJQ3dLb3pWaW9WZkdHak8rVmlMUlVoUG9hOEhvQ3BXVjRWWUVJUHRKSXBOZWh3bkhCVVY4cEtHK3ZtbXJyYlpjM0JWdzdLbzRFTW02S21xYkhxK1VhVFl5WUxVVjZYUnhRdWs5WUtrVU1NdTBqRlJGdXg4SDJmUTk2QWdHYXhQSkhhbjdaUmtkSXg0TDJrb3ZDakdRT29rWU9VQVVDZURNQU11d0lZNUM4aGNiR1FORnUvdXhSUUFiNkhMbU5tUDkwVU9HM2VjM05zMXlnS3VZOXZndHpnQTU0U3RDRWp3UklDSlpCbGpFTzVRS1lzUGE4NDNwTTg2YnFxYWFzSllqYWZWcTltUDFpcEFzQm1ERlVrZ2sxa0dSUU5jdkRXcXVpMG9oU2pITVg5U3lYYkdkSFhiNkFBQVFBRWxFUVZSUUd4ZTl4OHdkZDNJbTcyZjhJQUxidGlFSy9iUVEzamM2ODcrdktUV0pFd01keFZBTWFOMEROeUFXdEJkaG1HLzFIaktoM2UyUnBRMEx0dkN6TGFNdGc5d2VJZ0JtSUVnRVlMUlZvS2pUU2hKeHFaK1JVREtXYkZwMXhWWnJ0YlpJV1BNL1BmSEU2Vm1weHBIUEFCUnJGZWlJQ0pRSFVrcUNCS0EvSFdzUVhYTjE5Y3F2cjU4N2J0UStkeDdhYjdjOGJNTEQ1aWJ0b1J2TlF0SVVXSTZIUXRDNnM4WjllWksrSXlJZ3JqM29NaDBOQkJzN1dyWXJsOHY1L2k3TXNCSkFZODVOQS9RMmt3NHBOMUhIdzZDMksrTytxWEZyNVRpYkdvc3UydjYzeDR3SlZCVE1EL3dDTUtLVVpxUm1JZ0haSUdEdmZ6SnpGK0lzUFdBQmFVN3pkUWFnbFFURXIxY0FLVEp4U2tBS0RCRDB2akZIQmlRc3RKMm1MTTZYamg2K1ovT0tDcHNvOHJjcmF6N2R1cUwzalNLYnk5akVWRWxJUWlUSnVlMlE4dUhZb0wwSlhDZ3dGQVBMVEFCUEpCUE5FazcvNVZYL0luZjVtcEVlZHNocG5sVFdpM2t2YkRGTUM3UjFUcHljZURrUkF4UWdZakVBSFlpcWV1bUN6L2ZyQ0NPdTJuNjdHV2c2TTZRd2xHbllKTkFFQndpSGY1Ujl2NUpBZGNxNWVKcHJJOFQ3MjZiaEVrNmsxQ2dRQ2pNSksvMFNJcmtaMm1oRkt3TzVzSGxmRXVaOTlRdGhqQ0V4NGhpMEFzT0lLVXZGaThzRnVRR3hGTDVrOWd1NzdtZG0xZ2J5bGxlZnFWcnE1YytYamx0T0dnd1VGV21hVUp5VUJFRmpwQVU2NFVUVkJVaFNIcXBzdTFBSjdKWUhmL0RURHloeGs1Nzc3VFdpeFdCOEFlR29DUEZOaWt0M2JMeStNVGVjV2FZcFFkR2NVYTFkSUtaaWNtTkoyWUpNUzJ0QzZib21DckExSlpiU1dpbEFERU9OMkdPUEdYUW4yd0tMYjlXR2NReWNMS1JzNEEwZWVzN0VUbU9tclMxdS9Dc3h5bVVyWnQzYTFneC85UnF0MXZtcXFWcXpOc2lWclZNalB3RFRNRlFoay8xMDVMNGoxbUZoNnRvYkpweDJ4Rkgvd0VMNGxJMmNER2dKa2xaRWpBSkNzdElWU0NqYTJXUm9LZEo3dUoyQVpOL2VXeFpzZVJyMW53VHFWM0hTYzZXNm90K3JpSHc2bFFGNkJqTHpBWm1pT3dLQktWWkNpcUFDYnRsOGRQMG4vMDRWRTl1NGpCaHhucWVrK2RjZ0ZGNFl4aVRqVENTSHdpNzFDNVowMm4vL20vWDV6TDVoNU8wWmhqN2p0UDlMQ3BoVWlHLzBjdHpQMjBDdG1GVTNBOXpReTQxMmJOTU13d0FNazhHSy9nTVJWUm5VZDZOSUE0bnFzOHFLOGhlMDU2RlllYlZMalZMczNrZi9mWUp2R2p1QjR5QndEaVFjaVpZS2dNWkVrSFV1S1NhVUhpRUJGa09WcTY5OTRZZG5uUHNYU3Q3azUraWhJMXN5MlphUE9hY1JKbndWQ2FPVmtkSjBXZm41NjhRN0U5Ylh3YU96NnVyUGFqZTJOTzhrZ1ZSaEdtZWFnNkQ1QjJOTW1aeC9NbkZpMjcrSWdNMzhvSlcybVZPZ25lNG5YUGZEMFBOSmpzZkVVSkFzRmduY3NZQ1o5aFplWG03YlR2VXVuVDFqd2d3Rm9Ka09iTEJETXh3bGFIa3VhNEdlRlZQcTgzNWJobDNpM3gvKzhLaWo2b2R1cy8yOXd2T3pqSVNZUUFtMGZ3ZCtRRUtKY2RxWGRTREJUQWk4QVB4WVFEYUsyWnlsdFNjZi80dXI5bGpXcGEvY0Vsc2w2cDFFOGpXaGlDTnBRVTR3Z1JoN2ExaTF1SmZMN1Q1cjFxdzI5K1YxRFVSVWxwTitqL2JsNnd6TGdWeW1HUXdHdlFxNTV1MkpwcWpMZk4xZ291anZPb250bUo3cG5KR0ZIbnVTR1k5dlAvNTdRWHV3UC9sazlnREw0cnZtY2huVUREZ01RK0FXMTVDS25obEdOR1JvRkFVek02eXBBNFpXclBWVHIvT3UvZFgyZGJuY3R6R1o0aUVvaUZlYW90UlhBS0luNTYxQ1BsWVNDcm1jUDNyWUhuODZkOXk0dGJyd1lTTWVpM2Jjc1VCZUtmMDFzeThuL2hyYmJ5ZDdqWFhXbnFqbnlOcHp1MGZPQnpObTlQSERhSkEyQlBRWWM0NFEwbllZS1hSeXB4MTIzbVF2MG5ZUDZnR3c3b0xvcHNMVDlzSlphY3RxWmtRcHd6RTFrNFBBSjdlc2FmU0xWTnhEOXRIWG43b0tXK3ZxR3lQWGRPc1RnQ1FYdTZKRTI3WWhpb2hlbE9FWUhGZ2MrMzBxcTkvZm1GK0lvNmJiUEE4NDlLQlhWRDUzcXdpRFFreTRKbDBYVE5NRTFIMGdLekJieUVPNnZBd2tNUmRPZWNJeWQvendpN2xYVEo4K25YenFYd1U5WXNSNWNjeU41d0Y1TXhCTkVEalJBOGhpRllBa2dFQUowQWVqVk5kbTIrWHp1YjMwYzN1aHJDdzl5MlRXeDRIbmdaTk1rS2lUTHNwd3pMUnBkNUhwMjE3dHR2UFZwRW5jOHhxSGhZVnNGU0tTRzVzQm9yMkVJZitnN1pxNlh6VXMxMUs3QzhSaXAzU2lIS05BQUVOQ1Nlc3pER25OaElBR1RRYURGS01ZOHR4MC9qMTQ4SnIvczlva3BmaHJINzU3aVYxWlBveThZRVVsU2d0eFJBUkdkRlNrSE9vN0kzZ0tJckJFR0xxeC81YzlkdDdsS2VnaXgwUkVzV1dmdm0rcklNZ3l3a2tIYmFUcm9LZ2ZBTEk0RnhpcDA1UzkvaWZOTFYxWnc5R3dKZEprMVFuZE9Id3c0OE05bElIYlJFUWJabGhGQlZBTGRoYUZubVBnZTkyNGF4c0ZkVDNYTmtwRDNiV1I0L1k2TUZPQjVzZGt1YWs4dVdFdHl3SVZrNnN2Vm1ZYzRiYVRsU0xPMVYxN0IyQXdKT2FpZ0dtTmhicXhuSG1TUmt4UGJaKzZyQzRuaUk5Z2thT29JaXlGQURFREVIUVBSUXdHdVY5RkVJRERHY1Q1YlBOQisrMDlyVzNJR3plM1p1elkrUGlqeGoySVlmQVJ1ZDRoeUFUZ2NvZjRMa0xFQVl5VUN6bmFwMFc5RjB4aXRLWGdHNnlxK3FCZlAvdms3bXZDRkJGVlZhcnNjelROVHlSWVN0QVVrVVFVcGhVYUZaTlNFNUJ3RWxRMUptOThuQlIrL3RpT3ZPMis1OVpITklwWWZFeG9FSjBqUUNiUmtONXUzaExScnN1ZUdtdnpuREVVdUFtRjRiYWhUSXR4MnVjMndSUEdySzJIN1BSWm14VXBjOGFNSVlaaG1nZURNTW9va05nMWdRa0dXbTlCa2phSUVydzRENkVNUVpuT0lyUjZUVWRFWXRsVWViWHo2WnQvdjIxY25qNjZ5YytiaklRMkkrR25TeXFhVElRYW1NSUFqRWtnY3FwTzhGS2hQL3ZvMGFOdnE1azRNVndOMUNaOUhMUEg4SGNUK2sxK3FZRFRPaWl1RlpvN3ROQ0ErazdqRHNBWks5N1hGVkZkZjBVZ01paWFXNHJ1R3ZDUXVqb2RXMWVRWGFJODBRaTlPTnpPVnlJTnlBRm9Ia29LQnZFTlIwYUxXSzZ1OUVKY095UEYyc25mN0xNbmpCbFRpUE9aWjhuMUU1R3ZHQUl0bUJ3SFRNTW1XY2hIN0Fpd1JpdXR1eENPR0FGK0hWd1ZMVHpFVmhBY09QRVVEcUJZRWFRc0poTkxKa3ROLy9URXoyYkJSSmhIdDNhRlJCSEFScnhVbm5yQkxKS0tmelJERWFTNEJSYjFTemV2K3lCSmVNUlNRTkdOekV4SWxaVkRMb3JMcHM3OCtJZC9ldk9GYWwxdTlXQnZ2ZVhpU1BJbkZEY0R6bXhRa2tGSW5oMFpSOENKUVRGaTVzVEF3RElScFFyMnpzd25DM2QxSUtzL0R4a1NtYTc5ck8vN2dTQkxuNU9BTUJFR2Uwdm43Ymw2MFhWOVhqRHRyWW80em84Zy9KQ1RhR2ZjVmdaM3B3eHUyYWJkMzNPSHRRc0hxRmlNc3d5SGdRQmd3SUZ6WGtTaCtMYThiUUIxbDZhRml2MUFQTGRsditvMS9vT1gzejErYi9xL1UxKzdQQk9IZmF0Njl3YnRkaFhrTVhGTXF6aXZTRGFDcWNmR05DRW1MNFdsWk16eTJmc09yQno0ZnJHeExuUzU0ZFR6bHJBb25rdURXeFN3aUFpS3duSVU5ZGpMbGQrQ1g1NnhudmRpSTFTM2QrL2VTTGR1ZWM0R3NLVEI5akJzeTlDR1FEYVhBeWtsa0dZb2FNU2ZyN242K2x5MzdOaEdSSnB0eExhNlpWTkkvQllpT1Z1RnNjZUlveFNaakJCZ0dBWXl5eHI4dDhjZXM3cGx4NVlqVFIxY0hsMmZPd2NrQm82d0hBeFRVSXpyWngwMDQ5TEN5L2Z5a0VvbWxXMVlzKzg2Ly93SXV0aFJRK004ZXRlOUgxTXQyZGNZU1IyZjl1MjArYVNVQUtRK21kUkxpQVZFdERjTXBMQWdjc3g0L3JpLy8vdkpROWJVbFNGREprVFN0Si8zd25DeFZnWTRHcUFEY2dNaUVzYUJpRUVMUFUwYnBsUmxZOTJTUFlsV3VDWll5OU1RVVpVbHF6NUF3MWxDN1JlVE9jZDBFSGg3cWFsci95bGRzV0FiRjkydWlQMWRUTk1jbENSdlJFaEN0Q1dURFJYQ0ZCZ3pSclJSRlhUZGhvYmEzWldJK3hya2dWQWswUWxQMEVIWDAvM1RkeW9IWVJSbk9mTC83VGo2ckRYK3JPelBmLy8zbUpqeG81S3BDc3huQzhUSFFhOHowRnMya3VBS3N0YWxDWkRQNTZIQ3NwVnF6bjA4WXZDT2ozVEZGNldvLzZwM1ZkV25Rc1lra29RbWdaNUJ4VkI4b0F2UkY3VENTTkcxbnBwdWJZVzFWdXlHR2EvOCs5K1drSElvQ1hGMEVpNGtFZ2thZndaK1BoZXlXTHcvQkdpUHBSdjJhMk9pekRabVk5MjFyYjEzMjMybUFXcXB4UmdVTFUzZkw3NGNGNFBxLzg1SDAvcDMxMzUxQnQ2YWdYOEZEcG45aXJpVlprUWtjTWd5OWNFaVFTYkRNS3BJSjEvL1N2a3VrdkRBSlpjMDc3SDk0Sis0VXN5eURRNHhXZE5hbXVzN2pUL1l0QWRNOGgxOEduOUdBanBSVVZIeC9oZHpycnp3dHR0U3EzZEJNL1J0Um83K2tDWGN5VFJQaW1TaS9XOWdoZ1V4RlE0SXRtSUlJb3JKNm1RV1YvSFk1cmt2bFZOV20yZTVtMjQwck9UZkZmSklLd1FtUnpPZFRoNDhyWDVhbTUrbGJRdm8zTGt2MlNibmgwVkJVQldRd29JR1Z4V1Z2V1lNM0c3cmQ1Q1VpTGJxTG5qOVVTZkk1UTh3RUJNTUpCV1YxRWNFL2ZNL1JVK09rNEFnaU1nNlpTU2c4YU9CL1FlK1FEQjFRY3I5OHB3MGZicFZZTWJQVFRmWk55REZLU2EzdXNFdE1FMEwvQ2dFWkt5NDVnUUpkc3RpZ0RsdjBXNWJidnZEZi83bXhzVmZRdWxhTVZQaWEyUUFoUHJGUGIwV2RBQlFvTFUyUGZZMGhwMkxNRFZRMTQxZDdsTStmS3ZLc0ozQmNSeWpYbU5hY1JOeEROWGxsWTE3RFIveE1iWXpGenVYbU4wVEd1dWVhRzljckhjYnRlc0NVU2dzRWVUbTQwUXhiaUFJdWl1TE8wWWkyWUYvZzdseDhWMm4xb2dKckZQNU5SVFdJRllQeTRzcFl2S2FYcHB1VWVDSHhQeTduTHQ5T2E3NmZ0YXV3OS9QTDE3NlhOTGlraHVxNkNvR2NvMHFJY0ZrbkFTTUNZZ2NRbm91UkxTeFcxNjJ3OXVmVEJ0UC9VZGRmK1d3L2ZiakE3ZXNiREp5UnR1Q0FNS1BJYVo2cHUwQUk3ZTJJRStQSW12ZDRnb2RKb2N0WGZoNTM1WHJyeWsrK1BDTHcxQ3hxU0xHckdFWVZFU2lZL0hCOVhWTCs5RERlcDF6MzM2N3dqYllic2xFV245WUJnQlpsUFhEcHh2aTJpeTBjeXhzWGxMTlVlMXVHb3dKRVFHbmdTYlpDOFNVaXpXRmZ0K0VQRnNNTFdGWnpoUjMyeTB6eFl6VkxrKysrUFFCZ1dQdktpMEhZOHJUOVJ6TEFrMGpSZ0FOazlOTUVzV1FjaHdWTmJXOGVzcTNqKzZ5eWlGMUFaanZMNlJSRDBHN3JVaVFBOUZCMGZncnBYUjJLYXhPQVRjeE9FYmxTRnBKbkNPa3k1SWdhYXNyMDl5NFpOU3dZZTErcVhCMWNKdmpNNG1semJIYjY5Wm5mOXlNYklLYjAxa2NxOWdMZ0pzbVNGcVVaaUpodlBMTzI2TnBnZElVWERlWVhhVTBvdVkwWHhjYnphRGtsMEFVVFN2TnZJaEdNV25ZRmpkQUJnRllDRXQ3Vi9ZaEp2ZGwwYTRXSS9kdE9HNi80WDlZTkdmMkIweEdVcEV3TjBtWUdKeURpa21nQ01LWWtTQWw2em9tUVZOQU5CZGtjMWNkY05iNWUxRE9WODZtTUo0V0NQbVpiWm9LRWNsOUxFQWhCOFBpUUk5Z0VLbTRVc2hrc1BYU2VWK00rUXFBMVJLUXJCVHVscjlEVUdZQlVHWEtqNktnbCszdzlkNUh0MlIyQ3hFRnc2U1VhRG91R0s1YmExaXBGOGVPcmRHeWxWcFkrNW5MTHRySjRiQWJHZlVvU2FBejNscFdJWUNrNEpQNzNyUVMxTys0T1lyeDJlblR5Y1J1TGJMaSt0TS8zN1BWeSs5Ti9VbHNXWlpIcVlicGdwdE1nTGJRQ0tjaW5SUzVSa3dpTzZkNzArS0ZDOGZ1TWVLYXMzZmFyMTJGZzhCdHN2T0EzWWN2UmNVV0ZzY01GU0N0Q1pBU0ZCRkdFb0dFb3JoU1FQeGpyV0dka0tlRzFxbDhGeXY4djNlbkhRaWMyWWxVc29oWkx0TUNuR2lVTU8zUCsrVkVsL1hFRkpIdElwZFdqdEJGa09tcWFOUmdqUnk4eFlDM09FU3pwQUFBRUFCSlJFRlVFNXlUQXRtNkNDUFNIQVZSajZVU08vN2h5U2VydXlydUd4b3ZKS2FOaU1SMGx3WGd4Ymh1bHlrQWtua1FoajdZbktrd2w1dC8zRUZqMm4zSlN0ZmRsR0c3SDljczZKdE0zdUZJbWRWZkllUGtrU0U1U201a1FmeFlVbEFnQWFGVitLVlEydTZRZWovUUg1dkIxZkcyMDZsRkVacXZLMFJKOGdwQUdXUjFFbUZJTURFdWkvUkJZbHBNQkU1WWFQN21vcWxQSkZhSHNmcnpqbHNPbVkvY21TNkVVa2h6TUk1OGs0RVlOWGs5L3Z1YS9ya2FZOUZRcEgxOExWaVlaVUpMSnYrWjVJd1VodFZiWHZWNTZ0UTdUUkY0QjNHRzVVRHJnYU1FTFhoakZRTWo2YXVJUmtqS0QrTW02VUxHWjBMQXdva1R2L3Boa01lZitlOEVhU1ZHQllvWEZRcWZGS2ZtVEk2RWVncVFLS3BJQnhDa0xGaWtSR0hvZTF0VlZkOXoyYUdIZHVpZnhheUs4Y1o5T21EZk1VMFloM01sS1lXNlpRUUZEQkFRVVQvU0hHS1VVb3gyem9VR3NMdStGSGY5bENsdWpxa2REVklvUGM4akJUQUN4N2JCUkJEYkRPei8vcHJtVGVjUXJXZEJZVDJyT3h1dU41VjJjb3Jma21sbXhIeUorUUVuaGhVcEFFL0tQZTcvNTBNZCs2OVpHdzY5VFE1WkVvL1NnVzdBaUM0Y0VCQ0poU2tGbHNraENnUGxjRDVqdTIyR05HeHlaTnRCb0lhRTd3OVBPK3V2WGtQRHl4YU50NlQ5N3BBQ2RRaUtRcG5xQjJIYzZuYlhiNjRiSnM5eVBPWFVYLzV5RjhwYTVSdzM3c2NaMjBuK0krdjV6WUxZdDJuYXdPbFBDUko2ZWplZEJEdEhSWmE2ZHAzamJuV1pSZTErMjJEUXFBaytNdWU1R0NCQ1JPQWMwY3MwNzFYaHp4d0U2M2g4VVA2RmsydXVQNXkwRkZ1U2RrQWVZVURUZXZQd2dRZXU4VTMwbGNHemxtZ0FHYzFIZ29pNTdnL2hVUlRvMnFvMlRSTVV3V1BjaGpER21Cbk9mNlFxVzdCeWZSMC84c2MvM3JKZ21CY0s1QW5MZEtBbDY0RldBcExwTk9pWDRSQVJMTTZBb3dCT05PTmU0YzBUamp2NmpwRWpSMGE2ZmxjT0E0T2dFZVBvWXlUTkMyaWNFVnZYQkEwWEFQVUpFVHNYZmNST0J0aTU2TFVGN2JPWmJ3MHprc21SWGhTQy9zK0hCcm11VE9vT0R5UGZOWXdYMjZwYnl2dVNBdXpMYUNuV0ZnVk1JNjR0YysycEtveUpYOFZRL0dBS01YdHduYkttUW1FUFVvNjc1V0lpZVZ2RW0vQW5acXlLUWROQlArczdJcEljYXlPUW5RRmttZW15eGFEZDdXU0g2UHJhV2tNU1Z1UVNCb080ZnRMa0h4MCtlSEJZTE5mRkwrY2ZmSERMa0MwR1BSUzFORGR3Nm95MkVBM0xCQzNZa1ppeDdUclVJd2tHR2hCTEFKVjJxMTc2NklNem4zMy8vVlovNGJMK0lSR2dySHFMcVR6aHpJeVVKRWdBTW96QklvWUZOSDhZMFUvRFprUW5qckpxNGJ6WitqK290Ymt1TmN6eTZxcTMvVUFzamdta3dSRVlpa0VMRm4rK056V0EwTUZEbDEyMFlNRWd4NEFoaEJWb1laNFBJcEt2N3NzZGVMdWQxUytlT3h4bE5GQnFDNVRtZ0NLaHBSZ0Njb0ttOU4yazNuR0N5MnFCV2M4ZGVSNzRLNk4yODlOUDIrL04rL3prUEdjRFNhVUJFZEtWVzBSakFYcXJCa0NCOW80b2dtOHBBSkhMNUhidTIvOHZQeDEzOU5LVjRYVFZ1Rlk2eWhQcDZSeFVLTWc5UVZNQkpMbmNkU0RhQTVHb3E2SyswZkdhL05iVTNRdHgzQjlJRWRUZVQ4NFlZQndyVTZwUCt5WjZsZmJQT3pnaXJJUGxOdnRpZi83Sk5TMVlDSjVOdTA0a2d3Z2t1UVZOMndHQnpMTFNaUWYvNGhlL0lEYlcvY2lFQ01RcU94bHZxWURrRXlDQmphSUlrcWtFZU5sTXk4RUhIdlFLb3M2aGpHNXduclQvSVU4bmdEM0VxQk5hYUdvcmk1UFZHWVloRklVd1krU05ZRVdoSHBySVJjSTU2K29iLzNBa3JIYnMxZGluT1JORS94YUFFU2NGd0RZczRJckVWUndWR1R3ak9JZ0lJdlp0QThJOVAvbmszOG5WUUh6bHNWZXkzeUxMU1Q5QkNvYUlDWTdKVklvY0lhTmc3a3YyVndxdlBRRVRKdXdYeGVIV1drRlZOR0pvSmorMWUxVk54WGJHYWZic1owd200ejFKS1VraENYSWcwZDNhakFSSkF5OXBXa2tOajVFbzV2YnJWZFgydTRnMXNyVk02L1dCZno0MDJyZk03MFVHU1hGZ05HY1laVkJsdWhZRkhtbWJNZ3JCSUZnc2pJUWR5eWVQUE9Dd3YxSjJCODZ1VVdUOHVQMWZWZ1d2R1VsNUV4UTQ1NkRIZTdsUTd4cFlibG9zOUZaUlBnZ1B0ZE5wTzVGTUFzMDlDTW50Ym9LS1RScno3MTUrZVpmMzZtMWFDbjdaT3ZzeVdvcTFSUUdhWkxKM2RlWEhzZWRsR1NJRUJZK1VTUk1Db2RCT3BvZDhsa3hXdFZXL3ErWVJ6Mnpsb0d0QmNEbGpiZXV1bWJsYXBmNlhJRzNIaEd4ekM1U1hwUnZLbGRtbDMzQmZwUXYwY1A1UlJ4V08vc2FZKzRPR2hrOGRaSkRUTCttUVBwSW1wdU1ISGlBSkdwdFpwTndweUVjZUJEWXJXNWpQbkhuOXBFa3VWVjl4SXUwYjI2bUtWeUkwRmdGeVpTeGo2aFpaSTdxUXBxMW04R1NWSXVkaTVPSlAzbTMzYmZldHgzdzdLRVF3UlFITGFldFB4Z0hITU5wOTl2dzVhUTJ6STJIYXRMc2NFZmw3eEVIb0JLUVVrT01nOUlMNFB4V0R0bXB1cjM3TEIrOVdXYWoyQUNVTWpYOHhnR2l0cGhnb2t1cEtNb2dFNU1uZC91U0lJNi8yV2pOYnJ6V1RhcXc2UHpnM3RveCt3akFBRVlGTEFLM29hS2FrbEFTcDkrTHB6c2wxd0h4dlFTL1R1djE3NDhldjhTMTU2S0pIdmo2YUwvTit2ZjVOdFdJSWVuK1kwMXl5U0ljcDZrRmRGTytOaWRiamM5OUxCVXFOOE1PSUZRSWZ0TUxEeUNnUVhwQ3ZTcmp2ajBUczh0c3JHNU5lYmJXbDEwNWIrYVc4bFNodzJ0Rkh2NmZDYUxIK1BYbzZsWUpDemdQTGRDRHIrNzJVZ2Z1dVZIUXppUklIQmdtS3RJTGxIV1lLeVdxRkZZY1dObm8vREtXWVhYUG1tZjZLakc0U3VmSDBDejRjV0ZIMWw3QzVKVXlTNENFQkJvMU45ZUE0VHBIeDZGODk2UDFpeTdHaEFCSmx1bnpQbHo1NDU4RFZ1N2ZOTmtObnhjcWFRdHVwS2dnQ0lLTWZKTkVLRVl2eEtKWWdaWXcyZzIwTDlVMjdFVTF4ZFJnclB5T2lNcHprZXdwWWNWK2FNVVFHOGVCRnRmVVZLNWRySzk0NGEzR0Z3WXc5azhta2xwbkFIYWVGOGNUclE0Wk1hSmVCS2tQMGkwV3dDMk5BcUNCWjF3S0VhdDJ5SWR4Qk1RNjBJYUZpZ1hPOFVMNU5oVmJSK2Y3ODJEdjc1S1E2V0pnR2FrRkgvU2lpaWxTS3RqZ0lIZ0RxRiszbzJhUkoxTXRKL212ODNRKzlCbDNrNkNnYStpTktmY3JMUDhsbG1va3NBa3lURjlkTEhFWmdjVkprT2dxb0krV1V3dTc0Ty9TbDlmN3dSRmw1SHdRT01TbHZKczBkMTdhQVJXSHRPY2QrNngwb0hSMm1BT3R3eVZKQldQcjZCL1ZremN6VzduYWdpV2RvQms5MEVjaU10NmUvZjZCMkhkSGpabjBTMTFxbC8zci8zTEZOWVJ1OFcvNWpCUzJJUm15MzdaOGhYM2pGQ0luZGtEQk9KMXlJeUpMUXdnY0F3VEFzSUVFTmtoaVJTaVhMWDUvNXlkbi9mUC85Vlg0WHZ0TmVwemVaVHVVenBtVVhHRWxCQ1l6cVNLck42UzVBa2pnRzJueVcwa3NZR0J5MWVOcGRMclJ6OU5sNXEzbVJ4RThSRWZSdnRwT0pSQVVpN3RCT3RSWFoxUlVWdmNJZzJKb3hhcEZjMjM0UXprdFhWWDFJTU5TS1FtdUlxTW1UalRnSXhzYWgxOGVrUGxQNVlpazk5aVJUS0s3WkNnTkVMZzF1UDdmWFlmdXVzZ2Q2OGpVL3Fjd0NPOU1xSzZ0QVl1SkFCNmtEb01qQzE4S2NTUUFHc2lqUVNmdFJZVlBMQnp0dnZkVmROWWlTaW5hN3M4eXkzZ2NsaVdNb01JaG5JSkp2aHlpc0tLVlRPNE9vdXR0YjdqVktzWTgrLzNSc05sZXc5ZnpSOU5IS3JyYlFIV2JNa2RXTGl3cHJwOUtwQndOalBiaHZuZDYxbXBvYU9hQmZ2MWVUaml1aUlDUldoQkNHTWRpT0N5MmVQL292SDc2OVZhYzMyc1VCTXFVUkpENnJ5RG9qTjZ0K1Fycm9pYVZma3RJTHRGRElSVjZoOENFbGQ4dnpuc3QrT3ErU21iL25rV3pRZlJOQ1FDcWRnSUtYQTdKdUlkT1NCVkFNeXNzcm9kSDNlSHBBL3lQdS9OT2ZqbDY1czRnb1UrVURubFlLNXpDREFlY21pU3hXRk9iQURXRDBqQVlIRVlab01ySG5vc1VOVzY1Y2YwM3hZY01jbjV2VzZ3UmJGUE1SRTFJRyt4SmoxR2dXazlxNmNBVTdrM2VoakpGQ1lwS0hJUUkyWThET1F4ZTFWVWZuZlI1L212UUtMWWNtU0l0QW1nRFVQdldGU0tBVTNSVW9hbDNTdktEUWtxeW8rdHVBQVVjVmRMM2xZWEZEOW1CYU5NY0hqSEZkbDBBVTYwbXF6N1NMbllLMnprR1NqUS9Rc3Rmd1BYNy80SSt1K21SNS9lNTI5NW96SDltMlRib1hRRWhiRzNyK1dEVG14WDdRdkNuZVY3bXMvME4zczlCbjMvaWJ2dk9ibXZaV3lKRVRUUnduQWZxWEpJelV1WXAwMlp2bmoreDZuNGxlLzlIWjhEWFpobStpWjdWUW1VaStXbDlYMTJpYkRsa1JIQkE1ZUdFQWhtUHRQSG5LRzN0M3Q5NGlHUXVkaVRQeDhsWEFJZW9VYkNZTFpmNHFHZDNvQVJIVmlkK2ErRkxLNEU5NzJVd2NpeEFDcjFBVTVubTZheWFVZGxPUXplUWhYVjBOa1dtNVh6UTBuWFgzQ3krc3NoYys2dEN6bXpMNXdtdWhoa0NieTlwQWkwbndhYVZIYUNsSU0wb0xTSzZpZ2ZtR3pBZ1N6RzJ1VDhTSndyR2R5Y3pnRGRwckpPTUl3eUFhK2ZxemoxYTJSMTZsSnZHR3B0cFJOSDl0clpUR1FrWWtYbDhlUFBqd3NMMjY4NXNiaGlHSW5TMkRyMUtVNkFRNktJbGFGaXZTZTk2cDhMZDhmK1ZDOS96blAxVUxhdXZQUXplWlJNTUVSdDRLSWk4SU1zdDFBTnBZWnBMMEV5SU94ckhNdHpUL2IvQnVXLzZiNEpMV3VES2s3aFBmYmVndWkvT1piTFB1S3lsUUVNZHhVWkZ6YmJ0ek8wRVRwbk1CYm5obzB6NzZjRGhhMW5EVHRtaE4rZUQ3ZnZFOWczeTJKZGUvVCsrWE5qd0dQYXVGTmhsR3orcHE1L1RtNkVPT21OTzd2UHd0M3k4UUs1YkFnU3dTc2l5SUN5YUV5US91bkZZMkhoUzViQVpvZWFJdHBhKzJyQ2hKa1FVRnhVQVBLMDZrR1BGdXVpNERRakhRRmdjRm9hdlJNNUtWQlVHNDZNUnZIbDlQajkzMjFQK2VzOEl4YjArYjVteERTa1dtWlpINWtFU0NtQVNROXRpNGxnMEJ1ZVNGSmtmU0dmYVBwNTgraG5pc2ZpcjJtNFNTUXVhOHpBMjdJSWw0bXNGVGZsRUlhaVl2WlF3T0NVbUdrQ0FMZU5jWk14NDFpaFhidUZpR081ZWhPNFVaWEpvV0I1UEpJUTExbncxcm8wb3g2K05YbS9wSUx6Yzg0YmpJdFdCRlhsdGQxZXROaldPeHdGb3Ura00wbWN5aTNTMlQ5OUtLZ0ZDdGMwTVhwN3I2Vmd5YUpLRlV6d3lkdU9xL05YMzh4UmNQRlVaaVQrNG1NQVlFWFVjSFBWMEVyU1ZOTzBtdWR5WWo0SEZVTzZpODdKYnJEajA5WHdUYVRTOG5IblZjZzJzWml4UXBLOXFkckMxUXpoamtjNnM0TGpaYTc3cFNRN2tnT2toeG93SUF3VUFHcm1tQVRWcHR1ZU44ZlBDb01kM1dLd09iNkZqQmJEWlIrOTJ1MllzT09xZ1J2TUx6cVlRVlJtU3BRUnlCelEwUUNLd2xEc2RjTXVsNkY3clZ3Y2g0eGhVWTAxcWlwU1ZCVzAxYWhDdVVzRHdBeFpjSHNzRlcxTkVSYlpYcGJOQ1NpaXhOb2dmVkE3Q0VWR1krK0h6WTFqdlc2bkxkT2Z6Z3RydmUyYXF5N0EvTUQvTitJUURYU1JiN1NMeVp1b1UwRHl3d1NjQXBHWUxQWTNkbTNmekxULzdOVDFmNTJFd2tyUSt6dVhDMmFYS0loUWVheWNkQlNNeE1RTkprSUdrTFI0V3hrU3B6OTh2UHJhc2l3RzJlZXgxN1JWTTI1RThMeFFwQytzQlVvWGRjV0xxL1VwT050VlVrSlFMbnovN2tnSlFGUTBFTFRtNlNMSFZlU0NRVDdlNVhmcGo0ck13MW92MWtGTnRrUklOV0JNbEpSZk1GSVE1aU1CUUhJQzNSQzhUQ1h2MjJmSFZsSFA3eSt1dGJmN1o0eVNYS3ROSVJsUUZtUVV5U25BeHgwSG9mNHlaRXFDQWt3YWNDTDlpcXN1S1c0OGNkMGUydE5OcHVxaFdGL0J5dUJIa3RvaUxOYUF6QVhQWXJoNVZwdEs1eFdwMmdsU29OcnpnSTZ3cGdFNVkvNzg0N1RSL2dNSUhJWTZHSzMvWUlDd1d3WkJ3N1NqNjF5OEZtdCtjWkc1dThiR00zMk4zYkkydENmZk53empjQUFCQUFTVVJCVkdPZmZkN2tJRnEwVUNQK0E3NFhBdTFsQXJmc2ZrR3p2UW9ENytyOWxldUFJUEhlMVVwTElIb1UwN1RGeW9BWG56V1RCekl6R1NBZ3VaYVRuTStHenovUEZRdDI0OHRFUkxIZnpycy9pbDR3czFlNlFubjVQQmdrbUxsbEFPZWNCQmxSaUtTY3RzSkNqQkZUenRZTmhmQzBsYnZjM09MTkJjT2FFa1Noa2lvR1RUOGRPQ2hBVWdZNElEREdVTWh3ZTk5clh1WEZPbGpEUVhVbE41TWZLbUFOQmdJcEJySGxXR3FmTjUvNU1MR0c0cTFKTTJhWUxwTWpVUVJwUlpJMENDTFBzZE92N2o2bUpkTmFZTzNYbHFDbGtpdC9PSFdXR1lZRmluQU9TUWxCNU1TUVhlQWtsRzBycWJqcFROdGxsNTFXK1puaW8wODg4UzFJSlBZQTA2R3VJbWlMalBvSzJtSmxqR2hJMXBra2ZDQ0tnSWZSd20vc05mSUI3Um1CN243UTNIZHQ2M01nNWQ5eExkRGVHTk95U0ltUlg3dG5OUDVmd2xBS1oyenkvNGYrSlRydHhWekQyellmeGx1NHlSUkU1TklKUStLanhEeGN4dk9qOWh6NTlsZ2NHN2NIbzVTL0tnWFlxbytscDQ1UVlGQzY2ajJ2cFdXV1NRelVTU1NCR1NidC93VEVxeEwyVXk5UC91Wm05Ylk3Q2U0VlRJWGlRRUZiOTBnemk0RUVnMEhRZjBDZi8wNmNPRkYwaExaZHZjenZ6aisvSmNuWmRTMUxseTVKR0lhS2FLTllVbCsxWU5PNE14Sk1rcGhTS0JYdEN4dDg5b0lGeDE1eXh5MGpkWjRPcC8wdzVRbU9rd0loYzBEdWRVMDdSdlYxbm1idmluSFFRbzZNbEdxdmtKa3dkZXBVVStlMUZiYllldGZwVVN4bmttQW1ZUkdpeWRtd25KZnZ0Ylk2SHkyZVVpbkptNlNFTkFFUndsZ3VTbGYyZW4zMUQ3K3NYbi9XMHpmYlFiWmxIQUlPSWtrT1NPTnJvUW1NRkRsR2dqeFNBSVZBZ2hmR0lhRDk5N0pCaDY3NGJ2OGZKeit6OWZRRlg1eldFdmxHQUJHa1Vna0lBNC9jcTV3c2V5cHVJQlRJT3ROcmlrVnhycGRsM1hUdFNXZTMrNExlNmpoMnhXYzk5L3RYVlU4bTVUOGdtb09nT2FQeDFJSmQzenNqSUdKbmdObG9NR2k5NE9UWFhqKzh1bGQxb2ptVEFlU001bTRNTmluSUlncm1iVDJnOXhzYkRaa2UxQkRyUVgzWmFGM1J2NmZlWnNDQS84VUZUOVEzTlFLU1plRTREaGtXQXBockhYYnZ1eTl2dmRHUTZRSU5rZndDaFpxaGFKR2tBeUZGQWcwb3hFSFlzczJnbmQ2bWxCNXpubmZTcVUrWE0rTWZLWU5KVGx3YXlUcVhTa0VrWWtCRTRHUzVDdURnRTBsWU1ySGxpMis5ZWVhVStmT1hiY1ZjclJZM05uOGtEZjZKVkl6NG1nQkdkZlJPaGJaT0thRUlnNEhrTXZSSFY1anoybjNCYmNlb3pJdVZmQ2VJSXhtVGRSdDRoVjQwTjNjbVdJUUJySExvdFBsMTh3YUVvYjh0eGNubHJjZUx6N0xkZnZOV0tiaUdod1c1K1pWQ3hlTkJNVWZTZnIrS0JZZzRCZ09RbEJDRFhMOE0wSEloUk91TFhiYlo4Vm5VbWgwQVRGS0tUM3J5cVdNOWhqc28xNEdZSTJTeldYQ0pUaktJYUpzQWdCTU50V0xEaFZCdUdEMDc4ZWp4M2VxTGNOVE5Oczg5QnUvMnVnRXFFM2crOVpWVUllMkpJQ0hXWnFWMXpLUjVwSVoway8rSC91QmJMMVkxKzhGK2tWQm9rYmVDNW9vMmlNREw1dFJXL1FlK1gzUHNtV3Y4dU5FNmttU3pLODQydXg1M1VvZkRUUE1UTHNlNjhvb0tsZk1Ea0xRWnlOREFuQkM3VEozNTZUYzZxWmt1RDBZTGhlVkJnQUtGUU1ZYkNTbHlvVEVwbEFudzZmMC8rRUZMbCsvSU9pRDQ0Nk9Qem83ZmYvU05VVXZMUE00a2JRbHo0QVlqNFNiSnlwQWdrUUVZTmlndHNHelh6QXI1N2RzZnZHL0ZuTWhBbVNlWS9aOGdKZzJBR0x1aVBXUE4wSWkza1E2RVJEK3FEZ29NSlhhWVBuWHEwUFpRdzdGalk3ZTg2ci9jc0RKSWRIZE1kTExaaG4wQUhtVmZyZnNvQzNPNTNVMkRsMGx5K2Z0aEVCTkhmV2xJSFhoZkxmdGxpbEkxTEZjb0RFVXBkd1BDbVFPU0lxS0FVWHRNZ1U0aU9jOEJERWZrQXZIY05tTy9aTWpQM2ZTYm9VdHloVXRrT3VubUlZWUlxUUpLcW85Z2NRTWN5d2I5cjFJVHJnMGltMjhhdXUwMnY2ODU3dlFldFg5NjUzbm5aWGdjZjBvS29PS2MweHdCTUF3RE50ZmoxdnNlMkpPWHB3K01wS1RwWjlHNmlRR1VCSWV4Z3ZDOXh6Wlh1bnpkZnJPdkMyQnpyYitOVy9XeHlPZGU5UW81WmRvV3pVVUV3N2JCU0NadFlkbEhLS1ZJdFBWczZoQTdCK3Bua1RrdDc2a1c2dHJhUkttQUN5bE5oZThnYWc2K3ZFVFB1Tjl5L3ZtZkpVVDhVSnpMZXJIdkFmV3h1QmVzU0poVHp3R1pRY0dDUUFFNDFaV0pqK2JPT2VmZS8vMHZqWWlReVN3UXRVM1pxYmFUcXBkRURrMURIUUE1S0d5ZE5veElaaHF5TW1HeG5TaXYzWFhLRFpncnBKckpHRk1KOGhiUlB1UU9Tei93SFFLL3l2blNTNzNKb2NSM3NXM1RpRWtZMDA1K3ZaMHUvNS8rUE8wcUJWZDdtUDFNbFdsaXZBc28wWWZ3S2ZZWFFJTEJrQVN6QXUxR1ZvUi9JWXh5K1VDOURNdU9TWk1tOGFrelBqMHpkdDJCTFZFSVpqSkpXeEVBbnU4WGhibUdwWCtxWkZPL1ZjR0x5a3pqOFdkLzgvc2U1ZEhScEVCYUF6eUtwOUplZXF5OUd4SVVhUHJydk00TU03ckpIbnBvV09QSlFxK3dFeTdFdEhkTzVJSEk4NVdoMUFlREtpdW5kU1pOT2c2cis1ZHNsMUYwL3k1dW1CNU11djc2Smhma2l5YkR5UE04Y04wazVBcytoRkpoUVVRakw3di85a0VicHVYT2d6cmswU0ZJRXJsVmduUUtXQVVLaXlJS0dHbmJocFFoTWJGM093VjBGd1N5OS9DaDk1UVovTCtLOW9JRkNTdHVtV0JRSU9ZTnFGalJhdlhKcFp5bDBCU0wvVys4NTZhanh0U000Ym9yRXZHajVvdzNEYmtCaWthQXBrMVJTREkwb0xVK0NVdVFqcGRwT0hEYXRMdStJcGcxakpWRGN4WnFZNEgvcGJwUkhQcGdHN0RMbTFQZTIySGxNanBlRmM2czRrcG9kend3YmxLejFoUk0yWi9ydkxaQ0hXdE1Jb2JEUVFxYkFVMGJFQlNOUWNZQktCbFJYMk1nWlFKaUFaOE1HcnpEaWpGL3VYYlJ5SnlDbzN6S2RNc3F3WXRpS28rMGgxNEdlVktFZ0RNd1RBYVZqZ3RtRUg0d2VzaHVOMUFmOUNTQ25uWTRDTzlwUWltaVhSeEhvSlVaNklTRDZMVUN5bGUrT2J3aXArdEVMbjc0NXJLbXdQK0dXMWxoZUVGWS9Jd3k2YTlnSXNScGJqeDV6RTkvMWU2dkxicE9iN29XSnF4cm9kTjlzRUZTS2NmdlAvWWxMNU5wVHBPV0dRUUJNTXNHWnBxZ21GWDkwdHRUeDlHQ0pWYmRmZnIwZFRIVmdvbmtHQUJLSUhGR0xtT1o2VmRaOWdYMDBPUCt5NjZhdjNQL0xXNnV0TjBza0VCWDVFRXZkcFdJd0lrQ1hIRkFOSWw5YzhncFVka1FCRC9PeiszZGE5R2lTdFZVc09zRldFL1JwQWtsbGFXNVF2T0dBNUNBaDJYUFhFbFdWWjdZTzFpYTdWMkUyOGJGSFFnRmJqbHZTV1JaU1ZJMTVib0RtUlM3RWx4Y3Vkcjgrdm5rd28rSDZEZUtMU2NSQUxkZXJXakp0N2xmcWQzdEl0OVNvU0ovSkNyQkRHU0FpcFEzRlpFQTk0RXhDVUJ4R2NmS2orSVh5L3VNS083SFQxSHozUmZmZXV0N1BGMjJWY3dZMEJZRDJLWURObTFIeEtFby9tekxGeEdZWk9VSHpVMWl6OEU3M1Byd2ozODhmV1Y4ZTFMY1FUNC85THlzcVhrRTBjK3d6WjdVdlE3M1JSYk1BNFJoYktrL25hZjN6K013QW9oanN0U0QvSDc3N1BuU1JFVFJZV0RkcU9ER1FKVnRqRVo2YWh1amV3MlluV0k0QzhsbEpHZy8wckJNaUFVeE9zTXc2M3p2cUNzZmZMQ3FxL2VkNFZlbmdDSm1vd01wTFNTUVZwRUhvTk4xV042dmxlUDZwUzRoQkpVUjRIQU93aXNzL000NVovU0lONVdYOTNmMSt4RkhmUE9sL0tKRi96V2lNRTdZRnVnUHpBaGlUZ2JKT05wZUIwNzNNSmJnb1dJaWxSamFHR2RQYXhyUWhQWDFSVS85ZnlNdzVrZUs1Q0hqd0lsbVVSU0JhVm5GdUZSa3pVYitnTXpTeFljcXBkanFiYS84UEdiTTFTTGk1clFvVnZNMWt3UVp1aHpWS0hqcEpkSVNXa3ZxajhJWVF1ekpFZnBZbGdOaHBPcVF1NjhQbVhBMWNkVFdNbXU2em5nVWpDZ3E3R293Mk1vd0RKcnVJZEFkSWhHQzRvUWpJMnVUQkRQVnpYcCs4UGlJRVNOaWlzTzl0L3g1SEpZbGo4MUZzU0VWZ3NWTmlBb0JtRFRuOU56U1pjajFEeklLcFJXRzc1MTh6UDUvcDNTaW1NN3BlZUdBVVhzdk5CRVdSSUZQeWd3SGJRVFF1Tko2SVo2eGJNMnRUNjgxak9YMXV2cW5YNTlkc2lUNTlDdVREeGZjVEFqaWxYRWthVjRZWUNNSFI4cDVka1gvRmQ2ZDVYMHEzVHRPQWRieG9xV1NxMU5nNHNTSm9uY3k5YmdvNUVQVDVPQ0Yra01oSkFDUnNXd1VqZm5mQjIrUFhMMU9UM2dtcGx2c0J2VVVHRmxlUU94Yk14VWQxeTUzUWN3OTBudWtDdWZtYzdpNFdMaUhYczRmT1RMYW9XKy82eDBoNXhTYUdzQXhETkNDdlpESmdQUkRRQkxXV2xBenk0V0NCSjVYYk1LY2VkbHRVaWt1R3JOUmJVTTIvNEtkcWhCQWxua1l4R0RaYnV2UHQ4aUswNExaTkxoRis0cUh6L3Z3cWZLMlNFaGpvcmF2R2xUSERPY2QwM1lrNTl4TXArejkzbXQrTDdXODNqUzN5UTZEekg2T3hTekxkaUR2eXhuVlE3WnU5NSt4ekluOFpDRmZPSUlrVDRMVGxnREJCdTAyTm1qT0k2a0xVajhwcFFwaDhGSE1XTkY5Zjg5L0psVzk4ZjZINXhjQVhhQStBVEFRNUc2M3FaOGdWWkV1ZWk5WmlRQzRDQnI2cDlKL21EaDBiRzQ1cmozeFBuTEhrWXVZaU9aSTdja2hBWjZnTVFEeVpuVldYNG1xMkx0M2Ird3NlQnNDenJXL3YyWkk3TmhISWJlSVhiUnVMNms0QW90czlDVG56OTh3Y2FLM0lkcnQrVEJiZTFnUzZLMTBXTy9ydUwzMmZ0NFc4V2VjS2NVTURyWnBFZCtqTldYYTVRc2JHbytCTG56TW1EQkRMVWVQK1BIeTZDcjN0YVV2TDZTRkVDZkxVb2VZTEZPZG5rNm55UW9qdGgzRjc1ODFlblNQWnRLNnZ6Kzc4ZFlwZlZQSnU4c01JNVpCQVNUdHFXdWhuaVNMblN3eXNrREppaVdCSmhreE1DYzFOQjhaRXdDMmpnY095V2Q5NVU3TytpSmprTUMzSEJ1MGw4TTBiUWhJK09tNGZnUGVzZml1ZFl2bmZtVS9YTGU5Y2hoOGVHTWtGSC9HQzBYV0wzZ29nbUNMSlkwTGQ1NThmNDJqcmZQRzNHY1ZsUWxyRnhGSG5OemZVVEpkT1dYa1NKSzVLd05aUTV6SDNoWXlWbnNnalNvaUZwVTRJUVF3a3VaU0llUzlBQVRuVWN5TTUrYzFOZ2JubjMrK2NjZWpmejBpcThTK2VTRWhwbGtteUV1QkZMZUpCaUlJUVRNZTF6UWdhUnFTK2Y2Zkx6aHV3citoaHg5NkxkZ20vd0JrTEZBSzhQS0ZIdDdqcjNadnFaY2QzK0RsK3dzbGtjZ0FDQkpzNGgvSzkydXJFMlZQZkxWR0tXVmRLS0RYMWJxVUw1VmRqUUluN3paeVJyWGpQQ0VpL1Q2emhEQU1JZkFGY050bE1UZkcxanp5eUZvLzhMRWFxRTN5U05ZVnNkdU9ONDJJcXhSMlhSZTBpMWtSZzdjdEEwSnl3emEzTkFMUnc5dHY3NUhQSUdvYmRaVXFQZTVoTEdJOFp2U0JEL2lORFRNZEpXV1V6NUxBaWlHT1F4QXlLdlpYMDRrYkZubHhoSnVMOFFlNWFyN0Z4SW1QaWtVNS8rMG1MNXloWHhiVEFselBIOHQxQUpZSlMxMmZ3UGRmdW5UQkh0RE9nVmdqeXlyN1R2VUM4U0Z5UTFtMmtXWmg0UnQxWW43aW1TV1BKMVd1Y2FpSUN2MFFwSW9GMUFrejhYdzdJSXZaeUdCN2kxdGJjekJBa0p0VUoycUJUbk1IRkpwZ0pWSVFvYm1rcnNWN1BaZXJFeDhYdnVpMXFEbnpNMkhZRlhvN1FiLzRSRm91Y0FMRUdZS2lOV0p5QmhaRGxhdXZYVHp4cUVOdlB2M1FRL01hYms4T1NHdGgySTVELzJNWlprSFR3elEzcnozME81OTRJcEdKL2FNTjF6VkFrY2VHRkR1RDVnUUtVdmw4LyttTHYzdHk2ZTMycjdrQU5wUkEvNXBvZFovcUk4bmx1dU9BZmsraENEMUVJR3RNQXVjbWNHWkRFTXNCMDJaTzcvSXZuaXFsVmhCODVmaUt4RFlpU2tyUTFya1dScEhlL3lVbWxVd21JZlFLOWFDY1dXMVU3VkZadjVrd29ZSDcvdTBpbTIycExrdVJVbGNBUDh3RG1veDJKRWk0aHhFZ01USExTWk9oNjFhLy84WGlNeWRQbm15RFJFT2xBQUFRQUVsRVFWUXNTaVlYa3NQeDM0WnBSNVpsZ1dFWW9IODFJWWpSY1hMSklpSXBCcjdEVlRTMkkxK042N1hMYm90amhTOGo4Tmd2NUJtZ0dOblhjc3VGTFFsNnNCZEduc01KazBqaUd3TUdienNiMmptS0w4UkZzTHVCWmhxVUFYcWNtZDVtUVpyc1FIMkxFSVN5b01rVDd6Zkc4Y2RmRk1veHROd1RqRVRGWUZKeGtkRmEwSFgwSE5GVnBJekJzZzB3eWRVY1psckMzb2I1cHlNbW5ETy9IVFI2VExZWkdwOEUrWHdkS3FCUm9BdDA1a0h1a3M0RTE4bXdKcjMySEhsczRxMGlSWVpQRUVBNmtZUTRJdTlPRklmN2pkenIyWWs5Zk11bGs4bTVSbkJzamFtbHhIV2l3TEJ4NlNsa3VzeENSR1dTUU9QTUlBVWNnWnQyOHBNRlh4eC93K1IvVlVBWFBZaXhxSTZpdGlaaFg3VFV5RDNNa1JXLzlLVEwrUG04NmxQZDY2UHYvdUFIK1k3Qzd1N2xhT3psRmQ4KzkwOStTK01UemZWMWtwc0lkc29GL2VLWVpSbmdtaFl3UWNJdkprRm9KV0IrYythRU56THpkcjNsZTdjRWllckt2MHFBQlFFeE9ZTUV1a3NXcnlEZTdBVVJNTTZCNUNjelVJNXlzMjlXUXp2SDRNR0hod3l0MXdXb1BDS0N4ZGx1MmNiR0hSSWNreHlpM1YzSHdDajBvNXp2djdURGlKTWEyd0VIMDU3czd4Z0FCeG1jSFAvTUFwT1pnRXdCNDBCOVV4QUxCbjVrRkpwOStQTVNuMmVXNUxMYjF1YTkwNFZwSVRjY1FPVEFBVUhSUkFzakg0TFFBOE5nRU5LMmhNZ1hYanJwcUNOdkhvc1l0NGRIVDhrZnV1MjJubTJhSHppbUpZa2tRS1RzS1YxcnN4OFB2djlzOHNPNW54M0RMS1BjSmcrVS9zK0VZY0dIaE9NQ1NmVUZPdzJ1K2srYkFFcVpIYUlBNjFDcHJsYW9pK0ZUTTdZbUxrODRqOFlpREJFUk5HTld0R2RvT1M3TGhzRzRLZjk3YzNnWFE3bFQwRUZFVU9TN0xicVRPWUpQZTRMNkl5RnhISXQ4TnZQK0NBRFJLUTExRXlEbkgzVlVZYmZ0ZDdyWEJNajZmZ0Y4NFFGSlFOb2xWTFFGRVlNSkJxVGNGQmltQS9XRndyYVBQUDdrZDFxN2xxbnp2UEExeDNHRUVtUzloQ0dFY1F3RzJkUWttS0ZvRWF1b2IxTmowNEdrTUpGRzBGcHJUVmNrcFZJcTluNG1tMTlxR1Fad0JuMXNRKzJjWW53N0VYaERZOThES3BNejBQNlE2aXNLYlo3Wi9PSnRMY3ZhQWNGQXptM1FDb2V1SU9tQ3lNRXlVd0RvenFadGhQY1dMbHFnR2dML0pMdXlla2lpdkpvRVBnS2pQNkJEQ0FGQ3hVUUxBV0hra1FjbkYyNjN4UlozLy9Ub2s1ZFM5bVp6WGoxaFFrejd4KyswTkRmSGt0Yk81dEx4aHgvNjl5N0tNYjlKMWprVE5CZGFtcG9obFVoQTRCWGloT004VXpQeG90em1Rb3NOMlUrMklZRnZUckIzR0xEMVB4d0IwdzF5UVZ0a3Z0aW1SVXhaZ2x0ZFZUMm52dTVNWXNSZGs5YUVXRWZHYVczRk9EZEJrZGpXU293a04yclN0Y0UyZUNBTDNuUVNISnJ2ZHdSOGp5bHp3QTVEcGdhRjVyOGdrMFhsanBGNXJTMHhBdzNnM0lCSUtzaVRSeVBkcDUrUjUreVVLKzYvZnY4SkU2NzNNMzc4UXRielBOTzJBS2lNM3JiUWpBOHBIZ2MrMkNhejZ1b1hIbEgveVdza1Fkc20xL1lEeDlSWnJqc3RpQ0lwdzlDMVRPTWJKRXlIa2NLd1pVaUtaZ3pHbklxeXZ1L1QrTFFwME5YVXFhWVhlQ2R4aGxWU2tEQ211UzFwYmhNSUV1OEdHRFQyQXV4d1NWUCs2UVhOMmNZNmFlNmM1ODVGR1FsMnh2ZkJTYmlrejNEUWZaQlUxN1FjWUxRRlFVeGNzakI0ZHZkZGhuZG9ENy90M25hdlhLSzV0RU14MHpXTWtCTXQxaGQ3UFhEa3hGbmY2aHU5WGhibHQwTmdneEJOZEcwWEVpVE1hVXNJWENYbko1bDZaS01qMUVNYjdKcENadE1TZTcxYXYyUy9nejV6Y3Q1VHJsREtJcXZFRHdNUXBnSE5Jc0lsUVREcVYvOStlUHYxQXJ5aEt5RWdIZnJ5bFpaV0Z1SnJLb01TcWFjTXlDQUhacGlBbk5GV2d3RHk2V2FxVFdzSmJJWkh6Zm5uRjQ0NWFOd2ZvMEpoZWh6RVNrUUttRFFBaWZ2U0NZSWo4S1FEZVJHQ2NFanF6bGx5MmtzelhrbzJSSHhhd0szNWdwd2FqRXVJU1NCYWpBRW56bzBnSVFvTFlGdHM2TWVmdjdFRnRITzhtOHZGc1lIUFIwd1VUTnRnam1XTmhGanRqNmJ0Q01NVnZtSnZEeHJRejJzSERMelcrSDV2bThGSUppTTBMUVdTUE9NQ0VSUzNhSWVKRUFNRFBNWHFXMkkrcGI3QlYvV2VPTmt6bktUSE9VanFwNGo5NGh2L2FjdUdpTFlQaEZBUStCRkVlVzlPVXNnYmJ6N2xsR3g3T1BURS9CUEhIckxZUU5rUTBSd0FZTUFVc2VGbFFkSWtvUmtEdENEcFJOQ0hkc3Zyb09NNmFNclQwcVB4MEUrdG9WaFNBcnpjK3RpbHJsZi9lOUtXYytzYTk1RmdJeGNtcUpEUU16bXRpUmhTaGNMeko0OGU5d0dsbE01T29BRE5wRTZBVWdJQlk4ZU9qU2NjZXNpRElwOHZTSEtYTW1MR2tpRWdXVnkwcVRuby9rbC9PM2F5VWtaUEkxVWNScURmRzdCZEYwSnlGUk83QnhaSEN5ODU2OExpMThKNlduODcwcDk3THJ6OGcwSFZ2ZjVvS09sSEJSOXNza2dLcE9BcHprRFBpUWdraEdTeEtzTm1jMnViajU0NnYzYWYvdVAyK3pRZnF5a1pQMVNXNVlCTkhoNzlzNlk0RG9tK0hKSzA3OGhSYkpkcGF0NnBQUnowOXhIeWdYaUxXZmFIM0RRVkl1OXZKZEpIUmpGeWJxV2FUU3Y5OURaanovVGJnMU9vWDdxOW9XQW9WeVFwa0p6L09sQWxaQVp3Wm9GaU5yUUVjbXA5UnJ5MUpHTGJGWmg1WkdnWUxDYmhSRFdLV3dXNkg5bE1NNlRUS1pCeEJDblRGSDFTaWZzLys4dS85R2RxdFd3aWlKdlh1ZE9PMjg0TmN0bjVGZ20xWXM4VnJyZ3RGOVJhbVphcTQrUlpXZUFYZ1hXUkMvV0QzZjNvMzQ3eWdlOW8wM2FUYlRxZzEwUVkrclFONVVWSGpqM280Y3RQUHozZlJkRHQ5bWlVQkhvbkR1SHdVOCtlUTZiVXE0QmttZEVLMDIvMEFsbG9jU1F0YVRobi9Pdk8zMjhEbmRoZXA0QlMwSEd1c1lZR2JSSTAydDN1azBWcDJ6WVl4Snk4VEdhQkRiQlpXdWpMU1hUUnFXYzhsVkxzamFxeXRNd0ZlVWlVcHdDSWdWdVdCUWE1cmNtVkFWRWtRQnE4OTVQUC8vZktmRzArSVkzMEpEdFpsY243TVJSSUFYQVNOa2lPVVBUMlJCSFl6RWpFK2R3by9lYjU4bmJXZHU5ZFZUMVBTUFlmUVdhMW92WU0wN0hRU0tnZzVtOWJWdktqdGRWYkpWMktYUmpJS2pLbEtGblNSQkVVSkNDU0FLTHRneGl0WElNbi96SS9ESExOSWo0dk5zd3RHYWVSQndZY1RDQ0pEeEVxY0VtWVo3S05JUHlzTXNMOGpKMzdEWmhFQURmYjAydjA2aERsd3VMN0RFVmxxZTBscUlWOGR5WFdSYmRmUDFBSThXMndEVWNnQURNUUhOdUVsR01yTHVYSGZ0YWYybDM3MWhYeFpsMFJxZTZLay80R2NabHQzTWNnYmttblhRakpJbEVDd0xXVEdERnorNmtmZm5KQ1YrcmIxWEIxMjV5a0hXVDFubmxBVmprekdKZ1dKemF1UUFTK3FFeFh2ajFoekpqTld1dis3dWlERi9kUGxkMllhMnFvalNNUEpKTVFpQWhvTHhzTXd3Q0RXeEFUcDQ0WTRNTEd6S2gzM3Zua3VIa3R3UWVaQUQ2STBWVGNOTW41TGtBckFGeTdzR01Cam1rWkNkTTRVTDk1RHUwY1l5WmNuWStGOVZUTWpHWXdiUEFGQTI0bEk3UVMvMGx2MzM5aE85Vmg2dFE3VFF2Q2d4aEtHNlFBbERSVjZLNlZWRWxpUFZhR3lrVDQ0WUs4ZXFrK2lFZjZwdnN0a3R3Y0RSTU1acExRNTlSWGdDQUtJVlFSSkcwT0xvdXpoYVZMYmp2OWw5Y1d2eWJYSGc0OU5mOTc0OGNIMi9ZYitEb3BhREZEOG1sUkFJWkVzOVpBVmkwc0R5dlRnR3lFbFIrL0drZlNucjZhdWtsVFBsKzhlSHlnWUJnZ3c1am1UeTZYQTljeW9kRFFGS1lNOCtFYkxyMjAzYTJmVGRxQmJ0WTQ2MmI0ZG5sMFR6cjIwUDlHaGN4TFhpRkR6TmdBMDdRaGx3K0llWE0rcjc3cHlOLzk0K0VOK1YvWTFvayt2NEJmRUFjQlhLZEtxeFYyVTBucW13U1BMUFNZaEx1cFZIN2JnWDJmeHk3SVhGWkRmWU0rNnY2ZmM4ekU1eElvLzFaUjVzWkI3QUZ6a0lTY2hGaVFjQVJhZXNqQkV3THN5a3I3by9tMUo4eGRsRGNYWjhJWFFyUWliYzFvNGU5SFByaTBuV0VnMC92cXlPSndzTzgzakNDRzMrYTQ2ZmI3OWR2aFl3SG1MTUVzRXFrR0NWYXpzYXg2NFBNalI1NGZ0ZFY1RGR2N3ZLay94UGtScUNJbVZVd2luSVE2U1JSR01nTUo5MEFhY1dPZ1hsb2FZTlRFRTZlS2RIbEtPZzRBdDRCekV4aHlFTEVFdzNGcEs4YUhRa3U5Y29ULzM4dk9QV3VTVm54aE16KzJIdFQzUlJHR09hWEVWeWloRUVEU2VBUFFIUGxLYnZkSmVQaU5OOG8rVzdUNFdEUXQweWJ2bmFJdGhFUTZBWjVmZ0RURHFXZFBuUGpQN3RPYjdvRnA5NTR4WFpER1Z4NTNSc01PQS9yOURlSXc4dnc4UkhFTWhwVWdSczdCU2xjTXVmTmZqeDFNRXh1aGh4dyt1WWExNXAxSU9sQkd3ajNLNVJaWDllMjdXVnRneTRmMnpMRmovV01QR1g5dlMrM2llU1pUeXVMYVN1WVEwNXlRQ3NrQ1IwRFRBQjhZTGkzRSt5LzAvTEV0c1RtbG9Jekd2UDZLbHNGQWtxdGRrS2RIMXdFWkExTnhlVXZ6MHZGelgzckFYdDdPMnU0ampqelA4d1Urbm91Vno1d3k1Y1ZzNXQ2NWZwK3NyZnp5OUJrekhqV0YxM0EwcUxDZkFnbUM5dnVSWE1OYXFXQmEvK01HNUNWdldaS0wvN2NrQ0hmTWMvZUl5SGE1TkN3QXlrTm1nQ1NCcElQZWp1RlVOOG13dWNJMGJyL2l5Rk9hbHJlek9kOTNINzdiUWhiNjgwaEhVblFVU1NHeGVBTlN4b29SL2F5S3NhOWVxTjVYRTd0WXloUC9lM0YwYkpuRDBiWXhrOGtBWndCNUx3OGk5bFdmc3ZKL1hYNzRNU1UrMGNsalJpVHVaSWdsY0hEUThHRXZCTG1XbWVsa1FpRnlRTWJKd2pFQWJTZVZZL2o5OCsrNnFkMDNsVGNXR1luWGRud09ySWFVWmpaU3A5RktMUlFLa0c5cGtTbkxmditrbzA4cjZPUlNBRGg0Ny8wK0hWUmVlU2NVOHZuWUw1QXJWWURlRitmY0JNWTV4T1NHakJsQzdLVGNSUVZ4K1JlWlhITWV6USs1WlN2Zjg4QzJMQkxxTVNCSXNBd09yb21JVVdIL3orcSsyTFk5K2xKSlZkRjcwRFA1RUQ3eVF0Wm9KcW9tNGNTSm9yMTZpOTk3WjFBY1p3NlZ5ak1GUkNESlF0Y0NuZE9BYTBFU1NwUU5vWHg3VWFid2NXT0VQeXVBMFM4Q0JqR1NSREk1U09xUElJdzU5VThMY3hZR1VkalU5TGVmbkhQdW0rMjF2Ym5rbjdqZkVWNVZJakdOU1NGcFA0TzZMWXNCa1doSU1jVFdPeEJkRlFVdDNIV2dyTFdlaUVvTnFhdWpVVnBya1kyV01lbXpxZVh2enZyMDNGd3NLMk5xMWFKNTdKZ21XTFlCWlVsM3lUNjc3UFIzSklRcHEzUjJJZ1hXbTVsM0lnNDlEdFRWSjUzWFZHVTVmd3Rhc2lHUVMwMWJLWmFUQkQ5U0NNbkUwSGMvbjMxc1QrbTBJamVhWnR5T1pZSmpjR0dFOGZzd2FGRFlVL3IzZGZzeGZ2dnRnNnZQdXZoT1Y4WFRVaVpYVWVCQmtZOXBvVWV1ZDQ0TUpDQ0VoZ1ZSb256N3VVM1piOHh2YVBwWEtNRlR4TUZsRklPa3ZYZUdBR0ZVZ0ZnVU1HR3puWU9XdXUzMXAyUGJ3MjlVWXBlUGdibS9xMi9PMXBSWDkzKzB2ZkxUSjlWWURzcnRsQXgyUlNaUWtrQVg1RXNncVE3a2JTZUZoTk4rUE9hYkl2WG5MM3d4cklER3FJQnhqRWlNYUNHT3BIVFFkajNWRU1BNWdrbnl5bzdFL0FQMkdISExxZnVNejdUWC91YVN2elVOcDVmSlRnY2xpTWhFUEZwSFdsblMvU2RCcDIrdy9GNThXT2xDVTJHbHA1V2lpdXlHbFI0M1pmVHhaLzY3ZjNNVUhHSW1FNFpDRHRyRHhLUUM0ZVdGOHJ4L24zblJaVDM2M3lwdkt0cVhCUG9Hb0R3dFJISDIwY2M4YUlmQjZ5YTVLeGxqRUpEYk5FSmFpb1psTEcxdW5uRGJzNDkxRFNzZGlaT3NSZ05Fd25PMXRMVTk2b1dLdEZBMUdCVkgrWUdWbForczV4N3AycHJvOXVrVFI0NXNHYkhWdHJkRURVMU5Gb2xGZzRTNGx5K0FiZW9uQlNHNTRNbnREazJ4c0Jaa2cxTnEvV2krRitQblFqSWxpYmFnQTNGN1JSSVZtUVFsL2JUTHhGN3AzS2RXZThUQnNXUGpZODdZNWJFVHZuUDRIU1BIbmx6ZlZubFNDK1kwR1FBQUVBQkpSRUZVenBCVVVNZlBOZzZUS3V5alVBRFo1MFdYTzZNNVFWTVowTEJsSnBUdnpXN012azlPMUpPRmFaYUZrUUNUbVVBb2tzY2hBb1V4V0k1QlBZM0JWYkpRelkyYkhydjZ1by9iYW50enkwTkV1Y09nTFdZektiTjhHUmNtK2dNalhoSDZ3VmVGdWFKQ09pd25GS2xhTkR1V1A3WGVFYkExc21tdmYzNzExY3EzUHZ6b2ZNTk5KVWhuTFNKaldSYUlLSVFrOGxuYjkrMS8xMGp5TXhVelNwZE9wUUROa2s2RlZ3SzJqQUpYSFhQUy9LM0xxeDZMODFuTmdjRk1XR0FuazhESjFlcUYwYTZ2elpneGhoYndKbDJBVjhQVmloaUxXb2J5T3Q4MDhwWmhBQ2hCWjZ6ZmNHODQ0ZWlqNTY0em9NMmd3dG5IZitzVmxzbS9WR2xiaWpZUndYVXNpRVVJWk1TQ3lUbEVwRmZsRldBZStaQTVkZGx4VFlYNGJWOGkyYmNHS0lVUWtkQ1A0NURpQXNpcmJVSVU3T3RsNXRnZG1VT0lFd1hpMkxoOU12OENEUVpXd2pIM3RXMkxET3NZSkcwSjZIb2lsb1F2UWlGU3daS005K3JpWE5TdklWTGZvSDF6SlBSQUNrR09ZUVQ5QmovakFINlFnNlQyU0RRMnZYUEsrS1AvL1hYbW1XNi9KNGF4WTBmUFZsRllheGttY0pMRmNVVEtVQ3pBdG0zZ05DY0UwYlE3OXZ2cDk5OGE3U25jaTNFRGFYNlM0bXFDd1JrNEhHQ0xpdkwvalByMURlOTF4MzUxQjV4TEFuMERqdEs0UGZmOWV6S1NzMTFEZ1JmNjBKUnJJYWJISVprb1Q3OHlkZHJQdjkrRjl0TFhsd3lDWE1MYU1sUEUrSlVmekU1WjR0UDFoYlZCNjIxaTRPTzNIMTUzM3FrVHIyeGF1SENXS1dLbDk1YUxMOGtSSTJjVTlGNjZvSHZBVGVPTCtxWVRGdWNqcjRCT1V3UUdTRVJBSkc1SVRGRWlGSzA0am1LbmJFdkxqdFF0cE5BcDUwc3ZBUXVqekJhaDc0MGtnS2dGQ3FPSVFjSkZDKzJJR20rT29lNkxwc3pIOVRIK1BLOTRkYzczUUpJUWlzTUlsSjRMb0FDVkJCdEpieWxrbHU0MHFOL1BmM0xpaVY4UW1OSzVHZ1cyTFJ2d2VTR2JuMDNiTUVxUkJ5OXBPV0J5QXdUUk12SkRNSmxCdE1SaVdLMXFsMzI4K0w3N2VqLyswdVFhd1l6ZUVobnhPd1NIdHVPOFhCYjhUSGJwRG4yMnVMdUd2Qk5kdGdQZEhERzlYcnQ1RjdvdStpZVBIRm5IL2NLL2xGZUlVbWtMREFzaEluY2FBS0p5RTl1OCs5bmM0MkFUSHIrQVg2RFM1dC9Yd0VHN2p6a3RYQU5RT3B4L2NOYm9iK2ErQnJnZVhmVm5SNS8yeWFDS3luL3dJSXdNcFVoVUkzazNGRVJrbVFHNTFZdFdHYk1nSzNuditkbWd2TUFTVFFWRis0OFVnSEhnSkZpMTJ6c2l1NTNpVlFhSGI4eCs1aG16czRpV3pvRVZSNFhSUWtTOUNUMWl4QzZRMXgwUUVXSkE4SkNwcGxEVkxjNEVBN01TZDQrNGhTSGhiVmtHR0FiTkFDcG5NUTYyQWtnYkdKdUIvNS85YjdydFpVU1M3bEE2VnFmQWhGR2ovUDU5ZTcxak1CN0hRUWlDUERCQUE2eUZPaU42cjE2K096eS85dEZiUjZSNjl4cEcyNHNZQkJFQXpWVkY4enRwbXFMTXNwNDdic3doSlEvZUJoeEl0Z0ZoYi9hZ2h3NGRHbDV3NmhuWEowSDhUL29GSUFNTFRKT1RleFVnWWhiL2JOSGlVMnYrK3FjZHVpdWh0R1h1a0hzd2w4MlNsUlpsZHQ1aHA4MzF6ZFVPRCtIM3p6cm5mcFhKVEV1YnBncThBcEJqZ3dTNkFFNFNWQ3RHa29TM2RGSjhUcE4zeUlKQytMelA3VUxJVE5DQ1V5blU5aS9vYjZJTHBFU09ZejdPZmRDM3c0MjNVekRJUkwwbFk5L2dwbUdMUUFIR0NKeGM3WHJDNnBmZWNsSVdGbVJ6THk4cXhNZmxoSkVLbFFHRUVpQm5JQ25DYVRzSlF3V2NyTXZDa2lXZmp0aCt1NXRMMWhpczlVQWtmZHFQL2gwVi9LenJPS1FTS3dnOEh5Z2RERktRaUtocnJkc1ZNMzQ3YWRLVzgycVhudWxMYVJxT0M4d2lWenYxSTZJK0paRjl0a08vTGE4L2F1VEkwaTlnTnVEZ2xRVDZCaVN1Qm4zNWNjZlZWcnZ1M3pFS1FvWVNJdUxnQmRvUGpaQ0RWVjZ4MDZOUFBUMGVOdVdoa016RTlVZkFMM2lnWFlYa0pxd3RTN2p0Zm9Gcy9WdnFHVFZQSFQ1cXpvZ2RodHpmc0hpSmJ4S3prNkJBU2tuV3VnSkdjeU9XMUU4akNVdHlZYTlaUzV0Mkt6Q3JYaGdXQ0VYcENvRXpHNUNzZUVCT3N3bTJ0NlRvQloxd2FFOU5UdVQ2K2NJZlNuSWN0ZEtnUWdDTGhEYVNsVVVXbDhvSzJUaTNzWVUxU3pYTWw0eVNXNmRPUU81aWo5enRDQnkwUlcvRlNsWWIxcjhPUGZFYnBSZmhvTzFqdHgxM3FRdkRzTjdVbmcxU2pvdEtIZkdING5ZSDYxN3MrYjZuSm8zaGRuS1lZZHZRbEdrQm1xNjBYUVQ2MXk4cXBkaFRlMW5KMGo5aGFYczZmTzNjN2pWanZuWjNOdzJBZ3c4Yy9RK1g0MXNXY1UzaWc0Q1dEV0NZSU1CSXhxWlpjOEh0Tnc3Yk5KaDkvVlpOMHdRVkM4a1ptemJoMVBOYXZqN0VuZzBCRWNWdXpMaVhxZmlGT0E2RkFDUnZPZ2NMU1JoR05DUFFoSkRFZXdGdC9LeXVaWStsdVlJVmtLc2JtUUUwYVlCekc1QmJGQ1c2RzZ5UGJiR2RLZU5ybjRpb1lobHNGV004Q0RsRDEwNkFUVzNaeUFHa0FnVU1ja3I0QzVwYlR2Q0FPeEZ3RUpwamE3d1FBV2tlSURmQUJsTW0wSGpyK05NUCs5V1oyNHoxdnpaaVBSekErYWVkMWxTZVRFMHQ1UElpQ2tPd1RSUElCUTlBU2hTeGl4VzlaMFJydHVLcDYwWE92K09tN1FQTCtqM05sQXJxQWRnSkZ3UUM2UDlqNE5ydTNFUEdqUGxqVFUyTjdIcVk5eXlNdXZJYzZUR1UzdjJrYytwTjMzK0V4MkdlMDNaaVNCWU5JQ3QrOWpPeXpmSnBNejg4NCtsWnMreXUxR0ZhaTE5Qlo1VTBwYWNPQTkvM3dEUkFvdWZQN3QyN2Q0bUJmNFZxWDAzUWpDME43QUhJNWhxUmhLVmhPTUFZQTIycG13WUM4VzdBWkJuVStwRDRyTkdyYXBFV0NCS3Vtc0hMV0lCbTlvZ0lGamVjUXFGbFgwcGZaV2krMm1MN0tScUdiYmxET1JxV2pCVWdaOFdmb0VsUUVCTm56cE9pMFNMTS9rdDgwZHNqWENTbGc0eEJhSlVFQ1JlRFErZ1ZBTDFjWG1VeTk5YU1iZisvdWJXUDFXWlFndFpNMU5JeWl6T3BrT1pBcEdLaU80MHhkWjFyWlU4Qk1BcjB1T0lzUGk1YmY4c1RKUzZQYmZ6N1pEWFptUGJwOUpNOXhGNUFob3JtYjNwZTZQbVJOTXlRQjk2L2pqMWczSUtOajlubTF5TGIvTHE4OFh1c2Y1ZDkwdW5qNzBmUGU0NkxHRUFKWUtZQmt2YVlXbWdoTGczRFU1NTlmZktZalk4WkFPUGFjL3RseTVxSm9GUkZKc0tJVVNNeERoMFk4QlYvak5JWVNSMFNBZ0FHc1hZWitRa3ZtRGtXTWY0U1VpbldGZ1Z1dmZMY1o0M201cjlnSUNVemJDaEVFUTJHSWhZZVFCd1Z3S014Z1BLKytFbDlaTTMzREF5WUM5eldnaCtBTXdYNjVUTXF5REFzalAxODJxTmY1NXNHUlRRWHZQNm9BNUcxYjVsUmJ0aktvcTBod3NPS0lXSVNmRTdDT3RFTFBsalVrbXlHaENIc0pPRWd3VkFSTUtCdEpMSXNNZllnZ1NGRURVdWYrK2tQem51c0NMUjBhWmNDZXMyTTNubW5UNFdLdk5oV0VCQnZBTnFLTVdpYlJhODVVSXI0aFY2UGRDZGFrMjRGZ2dFSW1pbENKOUZhMUkzb3FLU1NPcjZ4d3hNUHo5bXJydUNmNlN0a2tyeVBpancxblBBRFB3Q2V6VXc3WmZ3aDErNjd4UmJleHNacmMyeVBwc2JtMk8yTjMrY2FzbGo2SjlOL0NscGFNbW1YZUdjVVFnd0tESEpOTmZ0aDc4ZWZlLzZLM3o0L3FYempZN2IyRmtsdXJNaGNNVkZJa0lNT3kzSU1rNUZsbHMrY2RPeHg4NVlsbFc0ZG9NQ2h1eDJhSHpOODk5dU5LSjZmYld3a2lqSndVMGt5dmdOd2tpWm80ZTFKQnJVQndOeEdEL0pnZ0JhZlNJTmlrcENWNU9WaFNvSnJtb01XelprNVJxbGxuTDBEYmErcHlOeWxpNGN3WU50emFsTy9rTVhJVTZDdHhaQWhSS1lEQzFvOFhOZ2NvTFJUNUVZVndCak5pS0pBUitDRVIremxsZC9ZVURkaTUrMnZQM25rMkhvb0hSMm13TDdEOTVpalpOZ2NDTTBUNG1JOTJsY0hIWW9Qb01VMUFEbjNnQ1lLU0FUUUVSb0JpclNlT3Axa3FNNXBUZGhJMTVySms1MUgvL1AwOXoyQmd3ekxoWkMyQ29BTUFSVUdFR2N5ZnBuQ1IzNTY5TWxMTnhJNm0zMHpLOCtKelo0WUc1b0F4eHh3Mk10VlR1SkpFdXJTTmdCaTM0TWc2d0h0VjdLQXM5RXZ2ZlRXMlYrWE1hOTdIMmoxcmFHU0xOcGVYMDRQUVpaQ01ZQnFaU2hVQnhGQmhqSEVnYjhvNmFRL3BxVFN1UTRVR1B6THhLd3dVMzlybWMxOWsyanBGUUt5akJHeXVRSkk3WG9sQnE4dDlRV056ZEFVQW9Sa3lTTUg0cGVTUmtFQTV3eE1qc2xjTm5mRXZBK2ZXbTlsVUUyZlpPVmJHbzYxRFQ1QU1MTHpxQTBDRFF3NUtSRW0rR2pCckFWTG9USHZnOEV0WUVYVGtHUUt6UWtwSXNBb2dEaWJpNWtmL1duaWtCR3JmcThkU2tkN0ZDQWVNRU5GOFNKRmE2azhsUWI5WGdvaWd1TTRxMVRWUWxzTGRkTHA0TXVWQ1RRZmxzbHhSWlZnNHg1di9QZXA0eVd6anZSOW53TkswQXErbmp0Uk5xdkttZkhXc1VlTy85Zkd4V2p6Ym0zbGViRjVVMklqOVA0bkV5ZTJ1TEc4eFFqOWVkTDNvYXE4REZMa3ZneERBYjVTZk9hU2hTZmY4OG9MK21NaEd3R2J0VGRSdEFDV1pTTXVZeGJMbmxlK0lWbG1aSjJwNnFyeUdZUGp1SG5sdkZLOGZRclVZSTBjMUx2aUtiOWg2YnZDODFRY3grQWswb0FrTkNNU2traFdNTE1UMEJncW1KY2g1YzlLZ21RY05PTUVrTURKaWthSTBUTGs4RVh6dnVnSDYzbk1xTTFYS1JtTllxZ01TYnNta2h5NlVncmc1RDZOREJkcVBRRnphaHRCVWx3cGhJVHIwdDY1QXM0NUlDa2RRdjhzaWNIY2NwUC9ZK0xFaVdJOTBkaHNxL2tUWm1UN1ZWVy9SenhCNWpKWkNBS2ZoTFNDZ0x4NGlxaENKQWNkS0xyaTFJSmRoeFVKT29KS0Y5ZXhqUkx1ZSt2WkxXWjhQdmMwWDhTdVlWazBMUlZJR1lPWHpVQzVhV1g2SkJOMzdUYmg5Q1ViQlpsU0kwVUtsQVI2a1F3YjcvTEJBMzkrWTJCNStVT21pS09tdWxvb2Z0T2JYRldHazhCQ0xJYjk4UzkvK2RHZFU2ZWFHdytqVlZ0YVdaaHJKaUpCZ2I2dkNDVEVGUVdwdVFsS2NnU0QxemRkOFhpSmthOUt4NDQrVGJ2N3dabmI5dW4xQitVWENwelljWVk4Tm96bWd4QUNFdWtVTURjQmdlSEE1NDA1eURJYll0cGJKVzVQSndsVW9Bb3FSZ1RaSDJKL3ZYOHAwWkNyM1RKaDhXRXk5R2xVWTVBc0J2TDlBNmQyWTdjTTVqYmxvVmtZSU1uZEx2V2JGQ1RJRmNrT2szRndLSUJmQ0xubjMzSENPUmRQN1dpL082bGNqd0NqRmJ0eTAzd3NaWmtGMXpUQU1reEFnd09RcWF2WG82UmU2dlduNDB3QjBDQzF2dU5DY1VhakQ1dmdxS21wWVQrLzZZNXpoTzBjeUpNSkJNVkltRXNvNVBKQS9WQmJWVmM5OVllVHYvMDMvZjdRSmtCdnMyMnlKTkEzd2RBUHFLaWFaQWJlSnhXT3JSQ1IzS3dLcEVJZ1JtN1dob1hqWm56MDlqZUpZVzZrc2FHVkNGODlDSjJ2SmxJS0lwSXdvZlZMREoyUWhqQ2ZxUy9qMWd6S0twM3JRUUZFVkVjTTNlTTU1dWVlc0tXSzlSdFBVbkZBYmtLbVFGWTV3ZlRSZ0lXNUNCWmtRL0NZQmNJd1FLRUNKVU5pN0JJc3BsemZhenA0NnRRN1RTcSt6bWNRNVVmYkhNcEY3QU1ucllLYjFENjFJYmtOV1hCZ2Jrc0l3aTJIQURndzB3Szl0OHNJSjBYN3BWRStwOUtjdnpGdWozMGZxaGs3bGpTQmRXNitWSUVvc04zV2cyY2JzYW8xU0Z4SGNRQ1JpQ0dXRVkwekZJTkVMZGFwSUoxYXFOTnRsUk1SVjNuZWtBOUtLWHlpY2RHK0dZbG5ObmllamFTQStHRUFCaWwzRmFtVUNwcWJGbTFWM2V1dXNhWDVzQ0dIWVkydzJScFRTNGtibEFJLy9QWHZadzdkY3RDdExBb0MyM1dnRUJHckpDWnVrdlVWMjA3NmdTZi9mZkZWRHo3WWY0TWlzVGJnV3I3cnNDeGZnQUp0R1N4N0JOQ01aVmtnblZ4VkpoT2ZqTmwvN3dZb0hldE5nWnFMTHNvZHN2ZGVkMWtpWE15Sk1jZVJBamRSQm93WVpVejcxUkV3eUNnVFBsN1lDRTB4UWtTdTcrS1lGSVY2REp3cEZoVXlvMm8vbUx1OVpyYnJnc2lpcVU4a2VPd2Znakl3TFlBMWc0UUFBQkFBU1VSQlZBNkFUQXNPQ1pwSkIyREJiUElNTEFtUTl1K1Q1TnkzU1psZ0VHcEJRMjc1bU9adHdtQ1pCTVIzM1hmRkZUM3ZSVGpZZU1lM1Q1dllSRTdyajZOQ1FXblBSeUtSQU9RYzVESVV5QmlubGRqNm9FWDM4cUJURVBVVHhkVHlDTVUzNEhucHZmZFd6bGxVZXpIWWlZR1ZmZnBEenFlWmtuVEoyNWdESG9leTNMSWZuSERtNFc5dFFCUktvTmRDZ1pKQVh3dGhObVR5V01UNGtHSDdQRWh1eXY4Mk45VkovWFl6SWtJUWsvZzBMVFNyS3ZkKzRvMlhMcHFzNWpnYkVvOVcyQ1FWV2lNcnJtb1pmMWllUUVLaUdFVmNOWU1KSWZOTkxSL3V2djBlbVdLQjBtVzlLWERpcm50TWNVWDRGNHppeUxaZGlDSUJvQlVyVXA0RVl4Q2JDWmhkbDRHR3lDUVhmQUlrY2lEakh2U2VaZWpud0RKd2F5bTk4VE1lZlhTZHJQUVBQM3RqWk93WGRoRkJBUXlEZ2FJNTZJY1IrSkpEanBTSVdYVXRvRjM5QlhvRzJncVF5QUE1QXhtRkFFRW9nbXpMZjc1OXhBbFBvMFptdlh0ZnF0aC9ma3RXWkhMVFhjc21YVTJDNXhWYWlZS3RDalVsdGo2dnVHb1J2K0toTllKcURZbXRXWjExbmFRVS8rOWJyeDN2VnZZNmxGa3V5NUlYeWJBdDh0cjRaS0dqa3RuTXUrZWRjUHdORTdmWTErdXNOa3R3T2s0QjF2R2lwWktkU1lGTEowNzBKaHgrK0MyR1ZBMGhMVjdOSkpFWm9CUkNETnhaNnVYUC91VlBiaHJibVcydUVSWUtCU1EwMXBTbm1ZZ1c1cHdzQlNFaUlMa0NndloyOWUvVVRZWmdJRVl1azdQR2I3OTlzS2I2cGJTT1UyRDgrUEhCOW9QNjNXN0V3UXdtbFdLTUF5ZTZrNkFFcEhzMmtpUmdMZmlrTmdNNVJnS2ZYUEpBWXlDVkFKTUVzZTluSFJQakViWG13a1JIVzFWcXVpVzkzTUdXRUgxc1lzcStYd0JHZjRvc2MyR2xZRUV1Z0MrYTgrQ1pEakRhUHk4RUFkMDVHR1RLTXhJMEdQb0x0K25YLzNkWG5ISktVMGZiTEpWYlFZRlZJdnIvUHFSdGF6YVBSYVNFQlAybWV4aEhwTFJoTWVqQ2VqM3F1M2E1TTBBYUtTUitvWW9CNkdBMEgraTJRYzhIZi9HajNXcnpoWi9rZzdEYzVCYnhBRWE0Y3NKQmdwOXZLYVE0M25MbCtJbDFVRG8yQ1FYWUptbTExR2lSQXVPRzdmbHFIemR4RjhaQkRFQUxJdlJva1hLd3JRVEVodDNyazhVTEwzcmtqVGM2N1o5dlFEdkhjb2FoaTYwYzF3SWNFWUZSTUpDbURBa1JKUW5mWEs1NTU2MjNMbjJmR1Rybk9QRlgxeTNZcm4vZnV5MFI1NFVma2tBM2dXd2VZcFlLL0ZoQndHejR2S0VBdFFHRG1MdmswVkhGaHVNNEJJTXJKdU5ndUF3YXFvdUpIYmk4Ky93YnZZdzRPaEJsYUlZQnpUMUdZd3NrMG1uK2VRVC9zN29zMUllQzNPdzJlT1F4cUtpb0FEMHZSQnhBbk1zR1NjUUhMdm5PcGRNNzBGU3BTQWNvY1BxM1RuaWZsUHNtVXV0cDNBRmMrMHNISGVuNVg0R2czNk5ZT1ZFcGt2SXJKM1J5L043Ly9TLzk5c3hQdjVOUllvdUtxbXBRNU0zUnltVHMwOXdSb2JKaThZL2hPKzcwVENjM1d3SzNEaFRRSzNnZGlwZUtkaVlGRHQxdHQvd0JvM2E3M3ZRS001a0pZQ1pvQVJQamhBaHBueEpZNkNRT3V1YkJlODVVYWszTHVaTXdhY2RWYWpKZUZDaEl6ZWtGakNDSjVTTTRaQ0Z5cGVwMkhiSlQ2ZmZuUkp2T09QVWJ3Y2Z2dDkvZmc0YmE2VlhKRkJqRW55MmlQL25WZ1hFT0lUMHZhUEhocy9vcytKejJMQVVDVWo0WmRXQVpERURGQTZOQ2ZoczFhUkx2Q0Q2TnRYTUhNaEE3TXlXeCtLRWFnME5NYnZiWVNFRmR6T0d6eGl3b0p3MTVFdXFHYVVKVGMyUHhJekpwMjRZMFozTU8yR1AzaHljT0hScDJwSzFTbWZZcDRIblJERlBLV3IyZGdhUTBoMUVBVEVFeDZOb3JjNEdWNHpwUEI4UVYyK3dBT3FHVHc2TXYvSHVzVENTUEZTWTNsdFl0SVNVU0FjSVFValJ2MHB6WGo5bHorQzhmdmZLYWtuWGV5WFJmRjNERUJkYWxlS2xzWjFQZzNuTXViUnc5ZE9mLzg1b2I2bW5qRkJLbUM3bE1IbWgvQ3RCTk9JdTkvRVhuM25uVHVBMG0xSmNwQ3dTLzJMWGxkLzJ3SWk0VmNCSW1RSGRHZDgxc3BJaUVheHIvdmVia0M1cDEyVkxvSEFyODRPaWpsKzYrOVJZL0NUT05DNUVZdXFhN0pFdklNSXlpbFI2U08zem0vRHFvSzhSRmk1MjJaNG9OSXdpd1RFd0t2M0RJYy80WHBCa1drOWQ2bVQ1OWtzVXdHQVZTVklCU2dDUTVZa244V1hISUNBNnpHL0pRRndFRWFJSWZ4aERHQWZTdXJvSWtiUXVGalkzTlF3ZHUrYXNIZnZTeldXdHRvSlN4emhTb21UZ3gxN2RYOVROSng0MW9Sd01zVGlxZCtpb1k3U1hSQWwySGxYUDFNSzc4M0pueGMyNi9jZGkwbWJOK3paS0pYbTY2RERRT3BnRlFSa2FJeUdaeWFaQy8vUGNWdjUzZG1XMldZSzA3QmRpNlZ5blY2R3dLVER6MGdHZmRJSHpDbGtMbGN6bElwdEpnV2k0QTdWRzVsVlVEbm4venpRdW1OVFdWZFhhN2JjSFQyK3FNT0liZXo5T0NuVEVHT3Boa0VlcTAwUE1MMWRVVi8wSFVyS2N0U0tXOGRhWEF5U2VOZmRzTy9TZVRIQVZxSllwb0gwY1J5VjBGZ3R6dUMrdHo4Tm1TWm9qTlZGSElHOXdFSVNJd09aS2JuZy9QNTVjbW9aMmphZlljVzBUQlB0cWhIZ3NCa2hTQ2lQWnVJMUlvYXowRk14WTNRQXVRTUtlOSsxUXFSYnBjQkY2dUdjZzNMOU9TdmZDdGJ4NWNjcTIyUStQMXlhNUlKWjV2cW0vSWl6Z0d5ekNCSXdJREJFU0VUWFZNbVQvZmZlNmxLZWNrcW52dkVDdkNoak5JcEd6d2dqemttK3VVSStLWFR6bndxRWMzRlg2bGRyK2tBUHN5V29wdEtncWN1cy80ekUrK2ZlR1B1UmRNamFKQW1Va1hJaktYd2tBQXVlR1k0TVpoRjE1MStWbXpOc0IvWkNOaFRZcjlsejBuR2Y3bEE4VTQ1NkNaQ25GMElLc2NGTzJkYzlyaFF5WG1qUnE1OTJkVXBIUjJNZ1ZPMyszUS9Ha1R2bmtQQytPRlNBTGRzaHp5YkliazRyVDBWZ3g0WkI1OXZyZ1JQREFob3JpMjNpV05peGJxRE5XUXBNVkgwTGl1VlFMb3ZFSmovWFlpekE5akJvTGtGS2grVEI3YjJIUmdZYllBODVxSVdVdE9LUWFFdmcrT1k0RmpHeEMzWk91SGJMWDFYZWZzZTFoakozZTdCSTRvc05YQTdlWlZWSlRQVGRpT3ltVXl0TktBQkRvVTc0Z0l5dzl5cHBBU0JqUSt5MU0yekgyeVVzWXZicjU1QXFTU1p3U0tXUkphNXdwYUhKaXBsSWs0KzZKdm4vUERtalBQWExKaE1DaEJYUmNLc0hVcFhDcTc0U2h3OGVHSDEvZm16bzJHWXpjMUZQSmdKWkswa0Uwb2R5dEFTdWJXUmQ3M0w3cjNwdEViRG9NdklSUERYL0dBaUVYTFhLZnBQWFQ5QlRGR2l4b1Z6dHg3ejExTHZ6MkdEWFBzTVA1Yjc2cWdjRjhVQ1ErWkJRWXkwR01naUlWTDh0d3NwUDN0K2JYTm9CZ0pkUkVESWxJZ1hKU29rbEx0UFdOR1d6OWZlNVJ4UTR4Q0VGc1ZLeGtrdUVtdFU0RFE3QVV3YTlFU3lDa09FZG8wOTRBc2Z3WTVMMGQ3dVRLdVRpVC9kYzB2em5pWldpcWRHNEFDeHh4L2ZGMm1xV2xHUHA5WDFkVnR2OSs0dXZKTlUwQjFOa3J2UHZ2czhJL216YnN5RjRzeWhSeEFJbWhQSFUxSThDUFBzeTI0NDdKRGp2d0VPdk1vd1ZwdkNyRDFybG1xMktrVVFISmQzM1RsbFUrVTJmeHVrOHRRdjNWc0dBenkyVHlZZGhJaXd4NzA0WUlGUDM3dy9kZjZkR3JEeTREUk9pVlJzZXhocFp1TVNJUVFzeTlhNnBZSnlnQ1M2WkVVbWR6c0FWdnVtbDJwYUNuYWlSVFFMOGdkUFhhLysxUSsvN2IwZmFWZlFneUNnTWFJZ1U5c3U5WVRNSk9zZE45d29ZVThPWkloV0dSQkcweFlFQmZHTkgvU1VMRTJkRDU4cXI0TVJYZ1FZSndRK3V0d0RNQW45VEdQSnN6TEJUQnpVU01FM0FTQkREZ0ZKSVhCSnROZlpMUFR2N0gzM2pjT3hkS0xjR3VqN2RkTmY2dXFLcGRnT052bW9GcGFta0FMYlZrRXlzaEtaeFRUZ1c3WW1ncDAxMlVvaFlUdHNyeml3OWUvVEpvNnRmeldCKy8vb1VxWGJZZE9pdVlEQjBRRk1nb0FBdy9NT0hyNjh2UFAvb3ZtWFYrL3RSS0V6cUJBNTg2QXpzQm9NNGF4MzA0N1pmY2J1ZDJOZHREeXRrbHNPeUptYTVJS25QZEpxTElrdHl2NmpmM05IKy82NlcyVEo2YzZpMHhJd2hvMU1FWUxkZGxYd2hnZzBDSUZXcnVBbE1kcDM4d2l0Mi9lOXlBMkFjZ0xIdzFNSjJicUQrUlFkdW5jUUJUNDFZbG5MaHczWXRoZk1Oc1NNTnFDUWExMUlRZkJiY2hiS1pqVjVNTzhBb0J2cFFGTkRuRlVBTXVTYUJyaGpvN2xyOUc4SXlzZm0ycy82NDlNN3EwbGdLUEl1cWM5OUpEMnpwZUNDNjkrVmdlTnZJeXNjeHBvSlVpZ0N6QkFnUjFEbEF6bHBFTk8ycnIwNHRNR0dtOE50Z1pSOXJiWkp5YUVBYktJaEtpRW1ESlFNT0NTazlyRmFFMXk3UzJoTzIyU01NcUVaY0pkU2VqZHV6ZnFsSzhiN3A4ODJhbTU4NVlMNDRycWIrYTVaUlJvL2lscVhTdjJEa2pGTTgyZkhUbGlSTTM1SXc5YkROM3I2TkhZRnFkRGorNWhOK3ZjL2QrK2ZPbVlZYnY4VnJRMExYUXRBQy93UVpLVlZDQkwyWmRnZXR3NDlRLzMzRHBSTStiTzdKcVdGV281UUpUTFk4Q1FUSEo2MHQ5cWRwSU9CS1NkdDJUcW13L2Q5OEJwbEZ3Nk55QUZTS21TZmN1cUh6V0RjSW9NQTZYM3lrT3lsdk5SQkVhNkN1cklWUCtDaExwd0tpQWtoczlvQUlNZ0Q0WUJWVXNYTFJpK3hqbENybmpIaW9lREZIMHR5d0pPSEVEUVBuMWdPRkFiS0ZoY2lDQmdOcWhZQWFOMGd5dXdxVXpZMERCendtSGZmSGdzbHI3WHZnR0h2QWo2OEhIZm1KWnBxbTh5VFlQV1BnQWlCeVNsbWxFQW9NRUFPbWlOSWlsY3BKUVZ5MUFLQVBFSjZLVGpEMysrOCtpbFh1SEMwREJ0TzVVbWhkRUFJU05nTlBkVW9kQXlidVRlMXo1dzBjOUtQMW50SkhwM0ZwaGxzNk96d0pYZ2ZGMEtJS0k2WUljUnoxZHpmamZ6L1ZETFU1WXlnVHNtTU5jR1g4aktBcW9yTDM3ZzFoM1h5TERYRVFHU0FTdHFJTVYwb051S014WWhTUHFMeVpJelRjS0JXSXZEclBrRCsvYjlkRVdoVW1TRFVlQ2FNODVvY0xuNkhSUGhrcUNRQmRQaWtLNG9oOEFQd1hDUzhPbjhKVkNmandIQkFWQW0yRzRDVXVVcEUxR01XdE0rK296cE02eUM1KzBmUnI0WngxU1ByUDFRR1JBd0YrYlZOVU9PNE5LOEFwT3NRVXNBUkg0QVlTSGJQSExISFg3emk0a1Q1MjJ3anBZQXI2QkFiVlA4ZVdWWmVtNVF5Q3NTNWNWMDRndkYrOG9YU1E5YXlETmF4TnFiQnFnb1JvbGY4L3pPSDYvWnVqRUlheElWbFFNOUx3OGk4a0RJZ0JTOEdCd3A0MzUyNGw4SGpmaUdkclZyRkw1bWF6MnMraWJ1RHR2RTdaZWFYd01GdmpkK2ZQQ0RVODYrTFdwdWZocWxMeFJFa1BVejRJVUJSRXFoV1ZheDNkK2VmK0dtYzIrOWJ1czFWRi9ISkFSRk5UUlRvRnZ4MUV5aXlDRG95U0FoTGtqS1M2VWdUd0tGa1JRb2Q1MW5OWTZVWFRvM0FnVU9QZUFicjBzLzk0VEpwQXE5QW5pZUI5eXlJWkFNNmdvS1ppOXVob2lsSUlnNUFEUEE4MzFrWEk0b3pLdmZablgwYXVOZ1VDREQzUXlEZ1JZU0lWbDFQbHF3SkM5ZzFxSjZFTXlFT0JiazNtVUFZUXdZeDhxUThVdG5UZnptQzZ2REtqMXZHQXJjZGY3NWtTSGhxYlNiQ0ExYW5YelpZbHhkZXVyeDB4aWd2dWlnY0VWVVA2NVB1UGptM3cxNjdvMjNyd2Mzc1pNdkJkb0psNXc1Y2ZIMzVqYkUwc2puM3pqdG0wZi80dXo5OWl1OVA3TStCTjdBZFdqVmJ1QVdTdURYaXdMZkhUZXU0Wnlqai8xZG9iSHVNNXNycUs0c0IyMGxjNXZjM3NTRVBkTTU4Sm0zMy9yK1ZEWFZYSzhHbGxVU1FKSWFhQm9vUmhvNEJib3Z5eXJlWW1JbWl0Z0VzeGdZMUM2TG8xeTViVStHMHJIUktIRHQyV2RuKzZaVHQzRVYxWW80QU8wcHllVTlFcjRPK0R3Qm55eHNncWFBQWJwbFpFa2g2QmNxVFlNTnFWczRielJaMnpSNnJhanF1QytEa1dqZzlvem1GQ0tTVW1CQ2dXQk1YOUlBQzhqU0Y5d29qck1JUXBCa3JiTW84UFlaT3ZTTzQzYmV1NkVWU3VtNk1TaXczVlpidnBKdmFtcEdTVzRTS1VtczY1WC9iWkJRQUFBUUFFbEVRVlNxYUxVcThwZnB3QWdOUmtZNTNaYWR0RHlYeGRidnB2L3h5Z3Z2dkh0ZWN3eUhGWWdQY05lRmtEeDBZVlFBVzBYZzE5Zlc5amJNYXk4YmYxekpVN04rSlA2NnRkcXR6OW90VVNxd3lTandxeE5PZVd2b29JRy81YjdYbEcyb0I0dGhjVEhYWnpKZ1YxVGJ3azJkZGNXUEhqNWpscHBscnkrU0NqbktGU3kvRlFySmNGaHVzZnRoQ0VxM1MwekZ0a3pGaFZnd2J0OVJDMXRMbHE0Yml3TGJIWExrZEpsdHVjZFdLaWkwWkNHVktpTm1pK0NEQTB2SnV2NjhvUVV3VlFHS1c1QndYSEJ0bmxRc09HajJNN2RZeTNHY051MHVBMUdONURaUFI0RlB3Z0VoUUFjYWhRR2YxbVVnVHFRaFZoeHMweWtxQlN3T0k4aG0vbmJNd2NlVUZEall1TWQ1SjUyK3NNeXhQeU85UzJrbWpWSzFDblZjMVU0bkphMjRWaEZYVzhUcmlLNDJETzcrMFErT2F3cmxSU3lSZGdVYWtQVjhBQTdnMkJ5QzVvWkNHdVNOSjA4ODZUbWtTYlNPNEV2Rk54SUY5RnpaU0UyVm1sbFhDdERDa1RkY2V0VmY1ZEw2UDFhYlppQ0RBRVFVUTJWVkh3aERDYjdFOUl5RzJsOTg2NXlmSDdLdXNGY3VyMTN1U0FuRm9COG92dncwVEE2S21FZ1VCZUJuODhCQ01YMzBzTkdMbHVlWDdodUhBbzlPbkNpR2I3ZkRmVEtYZmNkUUVrU3NRSkExSFhFSEFqc0pIOUgrOTBJL2hvajJ2aG1KQU4vUGNDbTlmUnA5OHNVdlE5RmZhRGlrbTQweUxHNVloZ0dBWm5IdmZCWUo4M3FoUUNaVElKbEZBb0tSNVNmQlZQS1R2UWJ2ZUdQcGUrMncwWTltV0xJa2FNbCtTRnRjUUlOTnlwZWdvSXBCSTZQSXE2WURnRjYxRFBSQnZyYlZWcTlPN1ZpNCtIdDM3dnZ1d3ZtL2dVU3FVcUlOak50QU9qd29JQTlCV0lnVEl2N3JjYVAzdkxPMDFkWXhlbTZxVXEwellUMWJMMVhiOEJUWWQ0c3R2SVAzM1BOdW5zdE9TUWlsT0MxWmJUaUpXSUxocGlCdkd2M3FaUHlUSXkrL2ZQdXZpODF5cTF6RDBXeEMzeFZGZk44SHg3UUE0a2c1VXM1OGQ4Y2Q4enF2RkRZdUJaNjg1dnE1ZSs4NjdHRVdSTEw0MVQ3a0VKRUpGZHNwK0NMdnc5eWNCOHBKQTVDZzEwWlVlZHJ0NjFUYUsrWkZueXJzTGVOZ0t4bkh5QXdMUEJMOExXRER6RVVOVURCc2VrYlFRdDRuVjd2ZXV6VkUrTmdKcCt3MUUwckhScWZBdDdjZUV5UU44eE91aEdDa3dDR0oxclVob1pCeWFlaEl0dXZyMm9xdE5mM3krKy92TjJQSm9pdUVrOWdta0FTTWNmRDlBUFMzRDVEbUF2UDlXUWZzdnRzTk4xNVMwN3hXSUtXTUxrR0Jra0R2RXNQUU5oSVBYRkV6OS9DOVJsMG9XMXJlVGRIbUp3b0pqTlpkb0g4L2JCZ3NUQ1QybVRiMzAxdHZlT2FaZFh0SjdoZWdOWDZsVzBkRVFFUWRYUkVRRWFSVzB5bEZ1L3RWRUhoSEgzcklheldJa3BKSzUwYW1BQkxkeCs2MDIvMEpWQy9IdmtmcW5RQXdUQ2dBUWd1MzRkMTVTeUJ5a3VDVG9IYmRKRzNSUUdMQi9GbGpsYXBoR3RXNk9YUDI2cFZNVkpFWkR6Rlo4dEl0aDNjL1d3aUxhTy9jVXdpU01iTEhPRmlXbzJUZ2ZYekFmaU52bmpoMFlnaWxZNk5UQUJIVjRmdVBmYW1RYWNreDJrZlhyblh0SlFPcGdQSWdqbU1BVXR5SUVSU2ZkWnBjRHl6dmZ1R0Z2dmM5TWVrV3Q3clhPT1k0UEVZRTBoK2dMSkVBNWVVVnkyVG5qdHQ5NU5rUFhWN3owWHFBTDFYWnlCUW9MdlNOM0dZSG15c1ZXNWtDdDN6M3Nsa0hqOXp6bXVaRmkrcDVIS3JLOHZMaWI4STFRNWVXelh6WEhuUEx3L2YrY05LVUtlN0s5ZHFNWHcxQXk1ZVdNSkNiRlVBekRlTHJvQVBRb1MxMng3S0Iwd3JQTkRXUnhzNGF3NmI2ZHltcmRHNGlDbHc2Y2FMbkNubGR5aktXV2dZbjJleERUSUpZSlZKUUgwajRwTFlGUWpzTkJkcitEandmTGE3MmF2bHcrM0kxZlpJVlJmbFJoZWFNYVpvMlFLSU01clVFTUxPMkNScjhHQ3piSVZzZndmZDk4SE81bHI0cDkvcjdMcjZpOUduZlRUVE91bG1qekp0WmJ0dUxVQW9WUndFa1NNZ2lJaWphSHRGakdHdWhUZ1VWQWtnS0ZGMm5zMFlwOXZ1LzN2TWRWVkYyQkRDVEk4MEFtaHhnbWVTZkNjamJrODhIZlV6amx0T09uUEFPbEk1dVFZR1NRTzhXd3dTQWlPSlBQN3JxSHdOU3lWK2JJbTZ1WGJJQXFxc3FTTmdDQkg0RWtFNVpvckxxM08vKzRYZS8rUDJ6enlhaG93Y0Ixb0piQzNOZFJXdjVPdWc0U1hqSVo3TEFpSUZVSmRQQ2x2akNyUmRkVWZxbkhFWGliTHJMQmQ4KyswWGxaWjhTWG5QUlNKTzBEeFBUZm5oemlQQXhDZlNNNlVMRVREMW5nRE81ejV2dnZ6Tnl5b2NmYklHRzJqdEpnanNNQURLWWdEcHBRaTBwQVRreTlBTnkyVU1RMHRZS2cvS2tNL21TTTgvN08wME50ZWw2V1dyNWhvbVhlclE5OGpncUdhbVkxamhaNnZxWEpucXRNc1pJL0NKSUlwTXFmbUFHUUh2dDZMRkQ1L1RwMDYyL25uVDgyUXNENzN1UVNyaytqVCtQSktTVENXaHBxZ09JZ21CUXlyM3Z4RE12dkhuODl0dlRqT2tRMkZLaFRVeUJ6VmFnYjJLNnIxZnptc0ZlZk9KcEQ2WkIvYlYzeWhXRjVrWklXUTZFWGdneEd0QWloTWw3VjUvOXhNc3ZuRUNMSHR0clpNaWpRNUJMWERFSEpOVlF5MEpyWFFWSjJ3SVpoVUR1OW9LbDhGbU5RMnRlNmJxcEtLQmZUQnE5MjI1M2x4bHNhY0pTeWpBWTBGWW4rQ1NrRjNnQzVtUUNFRllTa0N4eHkyQlZqcUgyemZndGUzRVRkd0Rrd01pQ2IxRXVmRWg3NXkzU2dNcCtBd0JpNHVGYWVRc0wyUUdWeWZ2T0hEdTJ0Ris2cVFaNHBYYkxiR2VLaVZDd2JBUHkrV3hSU2RNS3VJaGlNQXdEMkxLeXhiZmdGZERxWFpiUXhrM3pobnRlZi9WUTMzR3VLQit3UmFVdkZHakxIS01RQ2kyTlVKVjJaYVVCVDU1OXpBbS9xUmxiK2pKZ0c2VHNjbG5MNTBPWFE2eUUwSm9wY09HUlJ6WWRzdWUrUHd2cUZ2L1hDdjA0VzlzQWZhcjdnRUVDM1hKVGlLNWJOV3Z4a3F0UHV2RzY4YlJ3K1pxaGZKbUsrbEQ2bVlFaWlVNG5LSWFnazVBdUJ1TmdVWkJoVkx2L3FIMUxYNGVEcm5IODlTYy9lMGRtR3E2VGZzN1R6bEloT01ROENRMnhBZTh2cUFmZlROS3pDVFFIcktySzh1TjY5NjA4Z2ZaTXlySWlJcGQ4RWo2dXk4Rm5UVDVZbGRXUXlYbGdrbWdvZDV6WWp2eS9qZHRuOUhOZG81Y2xMSVlOM2ZXTE1BZ1hXNFlKdEZTQklhMU5wZlM0Z2hDaWxVRDByQ1BrTTI5WG9OTjhZS2ZmOUlmUno3ejE5dS9EWkdLYmJDZ1FDYlpsT3JUT0dkZ3FsdDdTUmU4Zk5ITEVEeTg5NnFqU3oxTTFZYnRSS0FuMERUSllHeGJvYmQvOWJzTk9mZnYraEFUNkcrbUVxK0lnQmhsS1lKS0JwNy9Gald6UWkyKy9kY09aZjd4aDM3WXdtZEc3TnpKa1RETUprS3BZZEZVTEhTRElGOENodlZxSW90bDc3Ym5yL0dLaDBtV1RVd0JwQytiTUNTYytLb1A4K3hDSFlGa0pVQ3dKR1dIQkY0MTVhSW9aeElZTlNJN1pscWJHb1NLT0RwVWd1WFJ0YUFZRzc4OWZDc0t0Z2xCeFNDYVRvT2VRMzlnODY3aHhZLzVZTTdIMEloeDBrZVBBL2NiT2owUC9rekFNd2JadEV1SXgwTmdYclhOdHBTTXRXMjJkNnpzeGMyd1A3UXZ1dUdPM1Y2Wk91ODFMMk51SHBnVklxcHhySmlGU0FpUktFTm5NOU4yMjN1YlNPeTY0Wkc1N3NFcjVYWThDTkFlNkhsSWxqTnFud0t1MzNmL096bjBIL01wQTFxd1h1RTNDM0lrQTBrWVNiRFBCbE90dS85eTBOMjg0OWRaZnIvbWZkRkFUQjFKQUtabDI0VkVVSk5ubFVrZVdCVVozbC9aY1pSQ0JCV3ptNGhGalN2dm5SSk91Y2w3MXJWTysyTEozOWQ4RW1YQ2NHUkFyQS96WWhHeUFNSHR4SGVTSjJZUEpnU081V09MSUNVZ29oTFlKODNJNXFBOEFjc0lBaVF3NE44RjFFMktMZ2YyZnFEanpvdmU2U3Y5S2VBQ2N1Y2NlemYzNzlKa2x3Z2kwME5hS04yY01TUFlDbzJIVmE3ZVlybWoxYWtiUUJ0SE92djc2d2MrKzl2SnZQY3NjdGlpWFl3SFY1K1NTVTdTK2xXVkFoQ0svYmIvK3Y1cDh3eDlmYmdOTUthc0xVNEIxWWR4S3FLMkZBc3VUZjNyZExTOVdNZmxEc3RTWGxKSGxGUlBESnBjYStKRUE1cVlCaytXN3Z6YmprM3UrYy84ZmRsNWVaK1g3cCtrMElsTTBCelF6a01UY2RTNENLQVROS1BUTGNDQmppS05RN0Q1azU2bWxuNnRCbHp0MjNYYW5TV1lZdmNyalFLSUlJYUQ5MEd5TThQNFhTMkdwQjFDSUZDaEF5T2M5VU55R25KR0M5K1l1aFJ4eUVLWUpsdVdBQ0FPbGduREdEdHNOdnFjR3Rham9jdDNjckJIYVpmQU9VeDJUQjRJOE1WcG1HNFlCQVFsaGkxdkZOVXZMdFhXOXRrR2xIOTk1NTVhdnZQUDI3VDQzeHlqSEJUZGRBVkVRZ2hFTGNPSVlXT2pWRGF3cy8vRk5OLzN4WDlTR2FnTlVLYXNMVTRDWWVSZkdyb1JhbXhRWWl4Zy9jdUVQSHQ2eHdyMHRuMWthZ0lzUTJ4eU1WQmt4Y1FmUVNIT1BPM3M4OS9ZSDE1NXg4eSszV3gzWUMwOCtpVUErOTBnRklPZ1BPYU42TkNVa3dTQlhyQmJxQmtNZ1FWSG9rM0JlaDlMUjVTaHcxL21YTEI0emJQZ3QyTHkwS1lVQjBHQkJocncxQ3dJTHBzNXRCZzlzQ0dNZ2E0NEV0NUdHOTc3SXdhd1dBVGthMXdESTZwTUN6RWhrVGE5dzQ1Ky9kL2xuVURxNkhBWEtaUHg2bU1sNGxzRkEwZ3FOSTBuNzNSYTUzeFVJWk1YQVNVRWpheHUxa3I1NkI2NTk2cWwra3ovNTVHZEJxdXdiV0Y1dFNWTHNtQUJ3RllBVkZZRGxtNkxCcWZRZHZ6cnZCL2VNUkl4V3IxOTY3ajRVSU83ZGZaQXRZZnBWQ2d3ZE9qUzg5WWRYM2JSVnI2cHJNazExelFvVlNJYkFEQk5pY3FjSk5FRGF5VVBlK0hqMi9hZmQrTnN0WWFYajdibHptUVJ0b1grWnFCUVdIeFRkRkVySTVUT3FxcXI4TGJETFMvK1FvVWlacm5mWlo1OERudStmVGt6bXdwTmtiUU96RTZEL2U5cU1SWTJ3T0JkQ0M3bmljN1Jwa3BFdXZEKzNqdmJYeWJJajZ3NVJBVWFSU2h2bVc5ODk2OXpIeURKYmVjZWw2M1YwTThWb055TzF4R0h3bXNGUVNoQkZvUTVBckp1V2JrZ1dOaG9jZ29JSHlMbTY2NjY3VnFIU1pZL2MyZXZPUng2K2MzNVQ0eWtCR0R3a0NGRVVnVU5XZm9Jam1DTE1EMHduYnQ1dnI2Ri9LUDA4YlJYU2Rjc0htaFhkRXU4UzBpdFJZS2ZldmJNbkhISFFUYjFNNDdHb1FBNVhyWDZiQ2tKQkxqWEZRUWF4R1lSaTlLdHZ2ZlhMbFlXNi9xeWNBR0xySlBpUmdxN0dpM3R4QUNHWHhXQzdkbGhvYVg3OHJ2UFBqMVpxc2hUdFFoUTRmK1RJUXBsbFBoRG5zOW1FWlVKTUx0U1FsTHFHS0lhRm9ZQW0wNFVtbm9DNTJRQVdOWHVnM2ZDU3h0dWx2Zk00ay9PMnJLNTY2TkxERGl1OUg5R0Z4blJsVk02bnRVZlcrZU94aUFLU3llQkpXdGNXQjBBSmlZUUQrbXVPQmpOQlJsTEJTa2ZOdi81VjhjcWJIL3pRUXp6Q01oMlhrM1h2MHI2NWlRcWtDc0VQOGtwNWhlZFBQUGJvMy85dTR2a3RLMVV0UmJzcEJVb0N2WnNPM09wb1h6TDIyT1p2amozZ1NpT2ZlOUJSb2U4WFdrQ1NoT2FjUTBzdUQyZzZ6Q2l2T3VIVjk5NTcrRHNQUHRoSDE1OUxGd0dzeUFSb2pRUEpjTkIzSUJzZzVncGlzdDlGN0MvZGRvdEIwNmhvcDV3bElCdUdBai85L3BYLzdaVkszR0tJT0ZCU2dsdGVDUzNrWm5ueHc0L2hpNGhEbzEwR2IzMjJBSHpMQlNkWkFRYmFFTGZrSXp1Ty9uTFpXZWYrZThOZ1ZZTGFXUlQ0emhsbnZDdWpjRkdrSXJDU0RtVHpHYTJLUXo2Zkwxcm5qS3gwYmpzclBDeVRWVzNxbnI4L2ZGdDk2SDAzTWpuM1pFeXJXb0JQOVpJbWlmWkNQbktrZlBLa293Nis1QWZqamw3YVdYaVc0R3hhQ3BRRStxYWxmNmUyZnVOcDV5OCtmdS9SLzhkYm1sNVBPeHhNV3JpWklBZHVSUVVJd3lITkhtM2ZjUFo5OWNOM3J2ek9QeC9zYzlURTRTcm1ESUhjZDV6Y2R4d1FTSTVEVWFCcllVN0JSSmh6MmxIZkxPMnRFbFc2OHFuL2ljOHhZdy82YTVSdFdhU3Q5TVpNRnFDc0VwYlNIdnFIelFWNHJ6NFBIemRrd1NOQjdrVUFmcVlBZEx3K1hnQUFFQUJKUkVGVVBJanJSKyt4KzBOanQ5bW11U3YzcllRYlFIV2Z5czh0a0o5YkZnTS85TUJPMkVXeUpOMEVsSldWUVVScWVUNFN4YlN6N3IwMy9mM0xmM1d4ZE56amhXVW5XVElCSVMxa242eHlpK3gwNGVkQVpwcy9QR0xQdlgvMDI1TXUwSHA5c1Y3cDB2MHBVQkxvM1g4TVYrbkJiZC85N2hjbjdYZlFPWVVsaTU4eTRpQk9KQkxna2VzMUt5VFFBZ2RNbHZHbHVjSUZELy9ybWI5T2V1TGpnWktSQ0VjdHlsdW5ndjdQVG9Ea2trTkpZbDRvVmNoTlBXZnZnMnBYYWFUTFBtemVpRjM2elpPbmI5dTMzMFBTTDhUcFJCcHlnWUFXMmp1Zk1uTWV2UFRoTEtnWEJ2aGdnRzA1Z0g0Z1VvdzlzZFVsbDcrNmVWT3RlL1QrbktIN05sWTZpYmZ5TFMwcVFSYTZFREVZQmduM1FxNW9wVFBMaHJ5VTZsUGZMM3Z1elNuM0wyNW91cHE1YWFzeFM0b2I4WUNZbHJkaUNsUVVTQ01NWGp0OS9EZS9mZGY1RjVmK2sxNzNHUDRPWTBuRDNPR3lwWUxkaEFLL1BldXN6NC9kYjlSUDdJTC9hZXpud1VrbmdkRmVXMmdZMEpqTlE0eUdGUnZXQVo0TWZ5R0I5MVhJUUdKcjUvVFAzcGdnUjd5TWdNc28ybmZvc0RlUnR0bGJjMHZYcms2QnNMNStraDNFbjlyRXU2Vmc0QWtUUWlNRk9YUkFtQWtvaERFZ2pTOFU4a3Q3SisySGE1QTB0NjdlcVJKK1JRcnNOMnpZRzJZVWgvbW1Ka2c0Rm5pRkF1aVB6YmhrcFdjS0hyamxGUlZPeXZsaEpvaU85bUswdlVpQ25VeEJJZkNCR1FpdVpVSHM1YjQ0WVBkaGwxMS95cmRML3oydFNOV2VkU2tKOUo0MW5pdDZjKzhGbDM5MDVLaVJKN3FCZUZYazhsSnI5RjRVQWpyRTJEbUQ4b29xRHNoUEFzQTlRU0ZJQ2tvcEtNcDFKY0FVVWptUlhPZ2lLMzFrQWxxUDduRDkzMTBQek5peXF2TC9WTDZRTDdNY1NDY3FRSkdWSG9RU0ROT0ZwR0ZDdnFFdXYxMy8zcjk0NmZxYlgrc09mU3JoMkVxQmZxaytVM29uVS9QU2hxbjBQMDJ5YlFzRUtXY0YzNGRVS2dYWmZHRmN6b3N2VDFSVkdzeDFJV1lNaEpJUStRRXdQNUFxbDUxNjlINzduL0RRRDY0c0tlbXRKTzF4MTVKQTczRkQrbVdIYnZuMmR6ODZhcTg5TDB0NndXZE1oQW80Z2pBVTZKKzF5VmlBeFV4dWNKTnA2endpRng2UW9FZEVZTEdFSkJqQzlLUC9IalYrUW1sL0ZiclBnWWhxekc3RG4wbEg0VHVPSHlnemlFZzVBN0FWQTVNVU9oYmtLUzM3N3BnOVJ2eUR5a29vSGQyR0FrZE9tSkIxUS9rQ2VyNXdUUU8wQWc0a3RBM3l2SG1lRDVaaHNuUjVHUS9JQ3lOb3JTc0RRTWtZRXFCVTJvOFhITGJyaU12dU92ZjdVN3ROaDB1SXJqTUZTZ0o5blVuV2ZTb1F3MWEzbjNmUjIwZnV1ZGNwYmlGNGd4WHl5cUlSTnpocDdsR2t0OHBCeERIb04rRk54d2JGdEgydXdDQTdQY3prYzJWb1BUVng2TkN3Ky9TNE8yUGFlYmpYbkhwcTVwQzk5NzdJekJkZXNIeGZKSVdBTWhwYjdua2lJY0wvOW5Ic0M2ODU0NHlHem11eEJHbGpVRUIvOUdXcnZuMytrMlJXRnFXQ2tDenZtSUtrTmV6U0hyb2tYNHhIN25YQkpKZ1dKNFVkSVVsU1A2NXJlUGZRRVNOTy9kTVBmdmlLNWdsUU9ub3NCWWk5OTlpK2xUcTJqQUszWFhqaDFPTkc3dldEdE9mTlRpc2hvMXdHa3E1RHVkcEFVeURJT285RUNMN3ZnLzdvaE1rNFZMckpSZDhZL1kzU2YxY2pLblhIOCtZTEx2am91Tkg3bkRmUXRPOU1ldjU3UmliN1lZVVNEMVRJK0lLcDl6OWMyai90am9OS09COTkwUGlaaFd4dWdXTTR3SUdCUThwMzJyUWhsODlDS0FVdzF3UzlscEhXTXlud2tyZTB6Sjk0d0FHWDNIM3hKYVh0RmFKZlR6OVpUKzlncVg4QVdpdS81WUlMM2pwMjc3MVBNVnN5cjFXUWhSNTVPZkE4andSNEFINFlrRk5PZ21tYTVNRmpFSVVDNGtETUhMWG5uck9nZEhSYkN2ejJnZ3Ztdm5MSDdSZGROZjd3a1NlZGRkYnc5Ky83MHpsdlB2RElMRDBmdW0ybk5uUEVGOFh4NTBuYm5kN2MzS3hkN0VBckZyeHNydWhsaTZJQVdocnJ3VlFDSEJHQnFGdjY3cUY3REQvanpsYkxYR3Z2bXpuMWVuNzNTd0s5NTQveGloN2VkdUgzcHg0L2F0K0xqT2JHVDhEM2hPTWF3RTFHUWh3bzZEc1c3MEJIRUlkTFp0VFdscGdBMGFLN254TW5UaFExWThmRzNiMGZKZnlKQW1QR3lENEQrbjlPKytSQ2U5TTRNcEJSREs1dDBWYVpncFJsQU9UekVocWE1cDU1K0pFWDNmM0RuN3hDdFVyblprS0Jra0RmVEFaYWQxTmJaamVjZi9HSGgrNTF3SW1XVWkraWlKVmxjckFkRS9Rblh3WHRxMHNwQVEwT0FIallSelBmUDZ4R3FkSWNnZExSTmdWS3VSdURBclFkanROditmMytuMzQyKzVqeXlncHV1d21JRUNCZFZVWmVOUjhTbkxiS21BWHBXRXc1WXU5OVQ3cnUvTy9xdDlrbGxJN05oZ0lsWnIzWkRQV1hIYjM3a2t2ZU8zVDBnUmZ6TVA1ZkZJUStTRVc3Y1FnV000QXhEbUVjUVRZS3RuNzFyYmR2ZStTSDU1ejF1Lzg5bnY2eWRpbFdva0NKQWh1YkFwUG56SEhPdmY4UDM1b3k5ZTI3bmZMMFRqR3QyYnFXSnNpb0NBb3FCaE1aV0Y0WXVybmc3Uk1QT09UOHV5LzkwWnNiRzhkU2U1dWVBbXpUbzFEQ1lGTlE0Tzd6enZ2MDRORjduNUZTOHE5bUZNWXNETUVBUllJZGdCa1dWUGNieU15S3lpMHpFcSs5NWNFL1gvUGcrODhtTndXZXBUWkxGTmpjS1hEbjFLbm1SYis4N05JWDNwNTZFNlRUMjZQdE1tV3c0aWRmRTdZQmNTRUhTU2xqekdiK2RkaWVlNTd5aCs5OFo0YjJ4bTN1ZE5zYysxOFM2SnZqcUMvcjgwUG5YanpuNkgzMnZNSnB5VDZRWnRCb3NXVUNYVnZwa29FWDAvNGNwaXRqdC9xOFg5NDE2ZWFhSi82KzA3S3FwVnVKQWlVS2JBUUsvT0hsWjdlNDlwNmJybWxNcEsvS09XWDlBOU1GYWRvUUN3VTJJcGo1SEpUSGZnczAxLy90MkRFSFhYcno5NzgvYXlPZ1ZXcWlpMUtnSk5DNzZNQnNMTFJ1UC9PaUpWZC81K1JMKzVVbGY1MUFLRGdHTVFuVGdJQXNkc2ROQXlnT0FpeHpVZDQvN2M1Ly9mMmVnMzk2eWNpTmhWdXBuUklGTmp3RnVtNExmM3ozOWExL2U5ZmRmOHdBLzI1QkdXNG9HUW8wUUNnRmJzSUc0ZWZBalVKLzY3S3lteTQrNDd6djNYcnh4WXU2Ym05S21HME1DcFFFK3NhZ2NoZHY0K3o5anM3ZWVQRVA3Nmd3MlJWTUJQT1VDSlFVSVVSK0hsZ1lRYjZwQmF4RTBwVEoxS2hQNnV2K05QSjdaNTgyZGRHaVJCZnZWZ205RWdXNkpRV2VualhMM3Z2U2k4Yi8rdlk3SGt6MjZuTTRnbVZqSVlhRW9FMHgzd2NWZWhBR09lQVFMUjVVV2Y3TGE2NzgxWFdYSG5aWVk3ZnNiQW5wVHFVQTYxUm9KV0RkbGdJakJ3d28vUHAzTjk3ZXgyU1hHMkcrdHNJeEZJWUIrSVU4OU9yVEd3emJJbGVmeFR6VEhsSWZ4RGY5K0ErL3YwQy9xTk50TzF4Q3ZFU0JqVUNCZFczaTJ6VTF6ZzkrKzR2VFBtOXN2aXN3bmRFWkwyYUN2R1RsWlpVZ29nQU1FWUd0QktpV3h1YStydjNUaTgrNjhMcjlldmZPcm1zN3BmSTlrd0lsZ2Q0engzVzllalVXTWI3MDk3ZitZMGhWMVlsTmN6NTdtUWsvUnBkQkppcEFnU3oxSUZKZ09Xa29vRms1SzV2N3YzTitjZFVkNTl6d3k1MlZLdjIwYmIwSVhxcFVvc0JLRkxqb251dTJlbkxtMjcrcGo2UHJFdVhWQStNUW1ac29CeXVWcERXbklHQUtFcTRsbWhmTWVXT1gzcjFQK2NQMXR6OVUralR6U2dRc1JZc3ZOWmZJVUtMQUNncE1SQlQvK2RWMUw0M2FZZnZ2cWViR0YxSVdFd2FUNERnT21KWUZPUzhFYVNVZ3k4M0Vra2ljL094SDArOCsvNjRiZDFkSzRRb2dwVWlKQWlVS3JCTUZ6bnZnNXUwZWV2NjVXMlZaMlhjQ2JwWTNGM3pndE9ZSzVDVlRCQ21UYVFhWG8vU1dMbjV6MTBGYmZQK1Y2Mjk3ZWl4aVRGbWxzMFNCRlJRb1dlZ3JTRkdLckV5QnAzOTN3NGRIakRyd0ZHaHMvcVBmMk5nTUtsS2hpQ0dnVUlocFh6MktJZEduanluTEtrYi83WlhKajIxeHlyRVgzVG4xK2ZLVllaVGlKUXFVS05BMkJTWk5tZUpPdk9XM3AvN25qVGVmU2ZZWmNLUWZnV3NueWlCR2hJQmM2eUhKN0d5dUdYb243RUpGSkI4NVpleVk0MSsvNWQ2MzJvWmF5dDFjS1ZBUzZKdnJ5SGVnMy9kZWVtbmpwV2VlOExNdDdPUXZvcnJHUmg0RnFqeVpLSDczdmJLNkF2SmVBSjVVWVBYcU8waFdWLy9xdWdjZXVmYTJ0OTdhb2dPZ1MwVktGTmpzS2ZDbk45K3Mvc1hEOS94ODh2c2ZYeGZ4eEdDSkRyanBDdEMrTHNtQjdnSk1pSlVkK2puZTBIelRENDZiZU5tTjUxK3llR01ScnRSTzk2TkFTYUIzdnpIYnFCaGZNdmJZNW8vdnV1L0dRM2NaOXAzeUlKb1dOamZJbEcyQURIMUlXRFlaN2dpMms4Wk1MTXN6cG5WV3pkMDNQalQ2OHUrTm56Si92cnRSRVMwMVZxSkFONkhBZERYZCtzYjN2MzlBelMwMy82blpTbDdtRzRtK3pFaWhDQmtZM0lJSVltQ09BaW56WU9Xekg0L2JlZWZ2bi9YSWtLc3VPUFRRV2lnZEpRcTBRUUhXUmw0cHEwU0JGUlNZOUtNci9uWGtYbnVla2dyQ1owMnY0RVhrQmtSaVBMWnRRNmFsQU5wTjJCeUdobTlhKzgvS05OLzF2VDljYytsUC92em55dExlK2dvU2xpSWxDc0N6UzVZa3ovLytuZCtlVlZkL2Y2TmtoMlZDWnJybHZTRHZrelZ1V0JCSEVWZ2d3WTdDS0JrVVhqOXNyK0VuWFhENWxRL1dZSTNzV2VRcjlXWkRVS0FrMERjRVZYc2dURVFVdDUzMzNVK1AzblhuYyt5V2x0K2tMS2lONHB5S1pRUkNTV0NJWUJzMlJBcVlUTGdEUC9lelZ6MzA0aE1QZnUvK1B4N1VBOGxSNmxLSkF1dE1nWE51djI3RTkzOTY1UTJmTmpaZUY2WEt0M1VxZW5PTUVRcVpIT1NqQUNJbUFlSUFWSE5UTnQzWWNzdGhPKzE0eW9NWFh2N0JXTVI0blJzclZkZ3NLY0EyeTE2WE9yM2VGTGoxeHpXTGZ2ZXpYMTViRGZKaUp3NC9CSzhnS3BNdTVGdWFnUUdDblVoQ2kvNzRSU0xsWUs5ZTQvLzErcFI3UjN6bm5Bdis5TUlMMWV2ZGFLbGlpUUxkbUFJUHYvRjAyZjVYL09ENHg2ZTgvcENmU256YnFPcVZEamdIUmx0V3JtT0RJUVZVcEYwSTh4bnB4dEVYZzh1cmZuTFhqMnQrL3REbHY1clRqYnU5U1ZIZlhCdG5tMnZIUy8xZWZ3cm8zNzYrZCt0RGo1NTQ2Q0ZuSnFQNG56S2I4YlZRTjJnMkNTRWdtVXdUY0FhZUh6Rk1wTGVzVS9IdnJwMzA4SzJYUFhMdmZsT1ZNaW16ZEpZbzBPTXBNRWtwL3JQSC83TEhUKzc0MC9XenNrMTNHUDM2N1p4RFpRWWN3REJOV2g5WnlHZnFvRExGUVJXYUlzY3ZQRDhBK0ZuWGZ1dmt1dzdkYmJkOGp5ZFFxWU9kVGdIVzZSQkxBRGNMQ2lDaXV2RmJaNzN6L1JOTy9VNDE0bS9pNXVaRnBoUXFSWXlLS1FEdEpGU1NRNTZjaFVaRlZiclpNaWY4OWIvLy9ldTVGNTkvMlpXUDNOMjN0TGNPcGFNSFUrREpMejZvL09OVmw1ejk0RlAvbVJRNHpobDVpZFdaS0lhWUxITXY4RUVaQU55UTBMZFhTbVZyNTlkV0czRFRsUmVmZDhhYmQ5ODNlZXpZc2JScWVqQnh1bjNYdW00SFNnSzk2NDVOdDhCTWYwUDZkOGNjZiszQkkwWmNKT3JyMzRhOEYvRklBZ29FamlaSXhhQXg2NFBQVFk1VlZRUG41ak5YUGZUOGMvZGZlTjhmRDVzMGFSTFpLbEE2U2hUb01SVFFpdW81dDErLy8wVTExOXo1Y1czVHRWbUpnOTN5WG9hS0RVaHlCMFFRMHNhVUJBa2szS1Vuc3RuYUR5enBmKy84c1VmOC9BZjdqRnVLaUtRTzl4aHlsRHF5a1NsUUV1Z2JtZUE5c2JueDQ4Y0hEMzMzc3NlUFAyajA4WDFONjQvSk1Hb3lvMWdhUW9MQk9CaU9RNWFKQ2Rrd0JydXFLcWxTbFljK01lVzFoLzd2MmNkdW1UVGxQNE0xRSt5SmRDbjFhZk9oZ0o3RGY1cjY2cGE3WG5qNnJ4OTdmY3Bmd2tUcVc3R1RLRGZUNVpETitaQk9wUUFqQVdZc0lHVXdGYlkwWkppWHZXZDQvMzdIblBmd3lFY3ZuVGpSMjN5b1ZlcHBXeFQ0T25rbGdmNTFxRmVxdTRJQzJySzQvYXpMNWwvejNVdCsxZ3ZrOXpIVDhMYURRbGswdzJRY0FlVURRd1BpaUpGdFluNFJnMU1BQUJBQVNVUkJWRENKVG5XT09lZjg1SjRISHZqbS8xMTUzdStmZlRDNUFsZ3BVcUpBTjZMQTlaTW11VWY4L0lvenJyamg1dnNhQkwvVXF1b3pNT1FHaTZTQ2lJUzRZNXNnd2dBZzlzQVFvVkl0RFIrbW8rQ3l3M2NZZk1WL2FtNmNXL3BKV2pjYTdDNk9LckhiTG81aENiMXVSWUh4MjIrZmVmdVA5eno4NndzdlBrbzJOZHpMdkZ5dEl5TXc0aEJpUHlqMnBSQkdJQjBYQ3NqTnVoajJuVHAvMFUzWDMvZllwQjgrOHVBM1N2L0JyVWlpMHFVYlVHRDY5T25XWlkvOGFiOGJIL3ZIUTY5OTh1bnRLcEg2aHFmQWJzaG1TV2xGc0Z3SGtEYVZmTDhBTmxQZ1NObnMrSVYvYnBWTUhibm9UNC9lKzhnVnYyM3FCdDBzb2RpTktNRGF4YlZVb0VTQmRhUUEwajdnV1FjY1VQZnI3MTF5MmZCQmc3N3I1TEl6c0xrbGRwbUVNUEpCR2d4YVloL3l0RjFvT21Xb0RNZU95dEtIL1hYeUN3OS8vOFpycmpuL2pwdDNXOGNtUzhWTEZOaW9GRGp6NXQ4TW1Yam5IMzd4NEl2UFBaSkwyTWNrZS9WMnM1NlBCaHBRWFZrRlVzYlFrS21IUXBDRHBHdUl6SkpGczNmcTMrZjcxMTF3eVhsdjMzNy9mTDFHTmlyQ3BjWTJDd3F3emFLWHBVNXVFZ3FjdXM4K21YOWYvWCtQSG5IQTNtTUd1czcxb3JHaExvRmtuQnNJakhQZ3RsTU1nVUl3MDVWTXBjdjZMd21qSC96N2pTbXZERDdwdUF0ci9uemZ0bEE2U2hUb1FoUzQ4OVhudHh6Lzh5dk9mTzdkRDE5ZTdFVS9VcW4wRmdYT3VYQXNTRlZWZ1VDQVRLWVpvaUFQNWJhbGJCazFaeGJNdS9XUWtjUDNmN2JtZHc5TzNIZmZSaWdkSlFwc0lBcXdEUVMzbzJCTDVUWURDdHh5MXZmcWJyajQwbC8yZDZ5eldDNzdQSHBlNEhCUVFUNEhVdmVmY1JDeGdtd2hCQ3RkRGFLeXFxeWxxdUthRzU1KzR1SGRMajc3L0F0dnU3YWZMbFlLSlFwc0tncWNkRjFOcjRtM1huZkdyeDk0K09HMzUzeHhnK0ZVOWpJaHdhS1FYT2x1c3ZpZjBiVFhDVndEa3VtRXNwU01LaEZlNnFQZ3JOOWZYblAxb3orcVdRS2xvMFNCRFV3QnRvSGhsOENYS0ZDa3dOaWhRM01mM2YrM0p5ODU1YXh2c2ViTWo1eTg5MmthVVVqZkk1ZWtBMG9wU0NSU3NMU2hFWHhnVUpjUHlyeEVhdFRDTUw3bG42Ky8vZXlwZjdqbVcvOTg3YlUrUldDbFM0a0NHNGtDazZaUHFUcjY5ejgvNnEwNWMvL3ovSHZ2M2Qyb1lQL0FUcFlMNWtBa0dNMVVEa255TkNraEFVVU1LdlJGODhMNW42VUQ4ZVBUOXp2c201L2UvZWQvblQ5eVpNdEdRcmZVekdaT2daNHQwRGZ6d2UySzNiLzgwRVB6VC8zb3AzOGNVbDE5cXAxcHVjY281T3FsWDFDRmJCUEVjUWg5K3ZTQlFzR0hzc3BxU0tZcXRNVnUwc091cjMwKys2NmYvdW5PUDUvdzY1K2RPR1grL0txdTJMY1NUajJIQWs5KzhFSGx5VGYvNXJpcmJydno0YmMrbjNkdkZvemg0Q1JOcDZ3Q1RGSThtd0lmTUdHRFZERmtHbXJCSkZNOUxhR1oxVGJlTjd4UDMxUE9QZXI0MjJvbVRzejFISXFVZXRJZEtNQzZBNUlsSEhzV0JVYU9IQms5ZiswTlU3Y2ZNdXk3NlNqOGptaXVmNzdLTkR3ajhpQm9hWUxxVkFxNEJFRGtrSS9JNm5FVG1EZWNLaStaR2pkbHpwejd6LzYvcS81eXlyVy9PZkpmNzc1YkFhV2pSSUZPcE1Eai8vdGYrb1RmL3Zyd0gvN3hwa2RlZk8valJ3cUdlN2h5MHIyVjRTS2dDYVpoZ1VRSjNEV0JtUUFPS2lCQkhtSmp5Ly82TW5iaFFSTlB2ZUQxVys1OWk0UjUySWxvbFVDVktOQWhDcFFFZW9mSXRNWkNwY1N2U1lHWGFtcml6LzcyOTMrZGZlUWhwMi9oMkJlNmhjSUxyZ3g5S3c2VXpZaC9LZ0JFQkVHQ1BXSUdOSVVTVkhtbGswOGtEcHE2Y05GOVA3cmoxcjhkVlBPVDh5NSsrTzVCU3FuU1hJYlNzVDRVb0xtRGw5OS9XNzlEci9yaG1UOTU1UDYvdmZUcHAvZm5UUGRnTE90bHh5d0J2cWZBRUJ4Y1prRWNCR0J5YXNXTVZCaTJoSkJ2bnJKVldmclNpNDRaZitKVmQ5dzM2ZEdKRXdYbGxzNFNCVFlKQlVwTWNKT1F2ZFRvY2dvZ292ek55ZWN1blhMTEhRK2NjY3doRTZwUVhxdWFHeisyUlNpNWpBQ2toRWpHRU1ZQ3BHbENnZll0YTdNZVg1REo5ZmFkeENIdkxWaDQ4OThudi9UM0xVODk3b0tqcnJwcUc4MmNsOE11M1VzVWFJOEN2M3BpMHNBejd2ajltWDk1OGFXL2ZiQm95UitiMFRnc1RpVDd0b1NLTitjRG1uY01rb2swZ1dHZ29nQnNqQUg5ckxLOGxybFZTdHo4L1JNbkhQUDZqYmZkVm5QUzJZc21JcGFFT1ZHcWRHNDZDcFFFK3FhamZkc3RiNGE1TmNlZTJmejNTNi82elJtSGZITjhYNXY5RnYzTWgxTGtSQmdWd0RBUkpMbmZjNWtNSklqQlZsYjNnWXdmZ1pVc3R3UEQzTXRQbHYxK1pyN3V5V0dYZk9lT01UKzlkSjlKMHllbk5rTVNscnJjQVFwTVZuT2NjKys2ZHZkOUxqbjcrcnYrK2Vqakw3ejczczJzdW5vL1ZsRmgrOEJRb1VXZUlRNk82VUJJRm5uZXk0RVg1Z0V3bENMYk9Dc2QremVlTTNic0lmZmQ5b3VmWFRsK1loMlVqaElGdWdnRlNnSzlpd3hFQ1kxV0NteS8vZmJCcjA4NTVZczNyNzMxcXU4ZWMveUVaQzUvdjUzTkxqYjhQUEE0aEw2VmxXQlFVVDlmQU51MndTZkwzVXFYbzNRY2Q2bm5EMmxTY083MGhZdi84YU5yYnYvRDBWZGROZTdPSjU1SVVQSFNXYUlBMUV5YVpQMzBzYi9zKysyemZ2akxwNmErK2ZkRklMOGZKaE1qQ21na2ZVQVdDQW5NTUlGekRod0JiRklpRXhaQzJtUmdDNzlPWkJyL1dzbmdoRDNHSFhQNWJ5ZWVNM3NzYnVPWHlGcWlRRmVpQU90S3lKUncyV2dVNlBJTklhTDYyZUZIZjNMVCtULzQzc0hiRFI2N1RUSjFiYlhKUHJhWmlBMklvTXcxUVlZQldlZ3V0SkJ3Wjl3RXgwNkJpQm1XVi9jZDRGbnUyZThzV2ZEWC8vdmJnLzhkY3M3cFY0NnZ1WHozeVhQbU9GMis0eVVFTzVVQ2s2WlB0dzc5MlNWRGgxNTQ1aVUzLy9zdno5LzJ4R1AvekNkVFAvRHM5TFl0RWJDWXU1QW9xd0tsRUdJdkFvdGFONWdnb1M0Z2pscUVCZjduS3J2MDF0MEg5QnY3eSs5ZmNlNk1lLy82Ym1tZm5JaFVPcnNrQlVvQ3ZVc09Td21wNVJTWXVPKyszcU0vKzlVblIxNTcweFhiVjVhZGxsc3c3MEdSYlY2S1pMRWJLZ1pmdStBdEd4andvcHMwSDRUUW1QY2dNR3plcktDNnliVDJiclRObXJmbWZQSG9TVCs5OUpmbi9QR0diOVRjZVdmSmFsOU80QjU2MTRMODJ6ZGV0K2QzYTM3MDA2bHo1ajA2TjVlOUprcW05Zys0M1RjQTJ3Q2VRR1lrd1JjTVlzVWhER053YUI0Wm9FRGxjMkNGaFlacUJuL1pzaXh4NnZXSEgvZURaMy81dStubmp4eFo2S0hrS25XcmgxQ2dKTkI3eUVCMnFXNXNBR1JxRU9WenYvekR0SnV2T3VtQ2c0WU8zUis5N1A4cEwvZSs1WVdSUlh2cHVjWm04RHdQcEdWQmdURUlIUnRrT2dWbVdRWEVwbVBHbHJOZG9sKy9TMTU4NzczSDduM2wyVmQzdS9qc1gvejBML2Z0KzhUVXFTWGh2Z0hHYTFPQTFFTDhKMys1WjQvZEx6Nzk4aC9mOXB1WG5wbys5V25XdjkrVnFxSmlKN2V5bDIxWlpXaXpKTENJUTc2dUFOSUhzc0lWTkdXekpOZ2xHQllYWGt2amREY09majE2MjIxSC8rcUNRODZlY3MyTnIwOHN2Ym0rS1lhejFPWjZVS0FrME5lRGFLVXFtNDRDRTRkT0RCLzUwYzltemJydmtacnpqanZ1dExJd3VFRTAxTTlMaWtpVW13WllTSXlaa1pVRkVvUlNFREVHUHQzTlZCbjZpdkdzd2pUdjFYZDRReXgvOHZEenp6L3l3eHQvYzkyRS8vdnh5WmZkZVYydjBodnltMjVjdjA3TEY5NTJXK3JvWC96d3FLdXV1L3EzZi8vZnk0OHM4SUpmaG01aUZDdXY3QldpWVJoV0FrV01JSVFDMTAyQVJVcGZyMTY5d0dJSURnSlVHa3dtaEw4a2FxaTlaYXVLaXRQUHVHZTduei82NDU5OW91ZmExOEdyVkxkRWdZMU5nWkpBMzlnVUw3WDNkU2xRcksvMzJIOTV6TVFQWnoveTE1OU1HRE4yK0s3OXEwNHhNdzMvY2dxWmhvVHdaSklFdTAxQmlRaE0yNEtZWFBLRmlLcGFhUWlrQWFHd0xGN2VlNnQ4WmEvdnZGRlg5OEFEcjc4MXZmclVZMThlY05weFB4cDJ3YW43MzFaNlM1NkkxVFhQTzZkT05hOTg1TzVoTzV4MjdMbGJudjZ0cHg1NS9ibFAzcTVkK25lL292b0hqWkx2YUZiMHNXbDhJUTRZcU5nQUVTaHdEQnVVa0tUbXhhQzRoS3pJeUNCcWJqSnpTNS9ZaW9uVHh3M2VZdGlTQng2NWROcU50NzFUZ3pXeWEvYThoRldKQW0xVG9DVFEyNlpQS2JlTFUwQUw5dHUrKzkyR0YzOS82OTlPUCt5Zzg4cWo0SXcrd1A5bFpiTkxFclF4MnR1MkZYbytNWFVmOU52TGhtTkJQb3BBdSthWFpIUFFvZ0RyUW1GR3lYUWZzN3JQZnFHVCt1Vm5EZGsvMS96aXhydVArZTB2THpqMzFqL3NNRXNwbTZ6MzBsclpSSE5CMDM3NjlPbldPVGYvYnRCeHYvN1p5VmY5NXNvYkgzcisrVDgzbStaTldkYzlUSlZYRHFndGhOYlNiQjRsZDdIZ1JlQUhBc2cwQjlkMkFNbERROUlkcXBPMmt0bG13YkpOZFVtdjhGVEt5NTdWUDVVODUrMWI3djd6bzFkZVU2Zm4waWJxWXFuWkVnVTZoUUlsSnRVcFpDd0I2UW9VcURuNS9QcVBILzduVXgvZWZ1K0VDYVBHN0Q1cTBKYmZqZWN0ZU5Kc2FjNlVrN0hHWlFDWmJEMEU0RUdPRlFBU0JqQnl5ZHZjQWhtUzlSWWpLdUJXM3kyMjNNTHQyKy9FOXhiT3UrM3h0OStjT3ZhTUU5N2M3b3dKdDR5NTdNTGo3NWt5ZWZBa05ZbDNoZjcyWkJ4SWlPTWZwN3c0Y01URlp4d3g4T1NqZjN2RVRkZThNdW0xVno5NGUvNkNCOXorVzF5b0V1VzdNS2ZNTmR4eVpsbGxrSElyb1R4UkRRYjlpVEFDZ3lHMFpCcWdPVnRIM3BtQ0VuSGVDek8xcng2dzArRExqeCsreDRnbDl6eDA5S0tISDN2c2d6c2VxdTNKZEN6MWJmT2lRRW1nYjE3anZWbjBWbHRhTjUxNzd0Si9YUEh6dTY2NzVQSnpkeWd2UDFzMjFrMFNUZlh6WENVODF3QlpYWjRrcGkvQVpCd3MwNEZrTWcxdUlnWE1zcUU1NzBOTSs2eU5zVUNuZi85MElaa1lGcFNWbi9lRjU5MzltenZ2L1BQVnAvN3oxak4rKzlzTHp2M3QvdzI5NkRlL3FaNjZhRkdDQkpBQnBXTzlLRUMwWTlvTDh2elVxZVduL2ZLWDJ4ejdxNStmc3R2M3p2M2RsYmZkK3RCU3h1L0xwcExmYnpITnZkeUJXMVF1OFgwemNsT1FrUXFVblFRbE9YbGZKSEEwS0NBd2tKQ3dUQ2h6TFZsbWNiL1NOaGFuSS8rSnZseGRPR3J3RHFmOS9iS3JicnI5b3N2bUE2S0MwbEdpUUErakFPdGgvU2wxcDBTQkZSUkFZdG9uNzdQUDBsZHZ1ZlB2Qy83OGo1UE9QbUw4cUFHMmRXNTVHUDFaTGExYjZwQkxudjAvZS9jQkhrVzU3Z0g4bmJLemZiT2IwQUxpT2ZnYzBXc0RzWU1vVVZHazEwZzVoM29oTkpFaUdwb3NSUkVzb0NDQmhCZzZTQUFGdVhKQTZZS2luaXVLQ0FMU1VVQkt5cGJwYzcvbFB0Zm5vUGNjUWRpNHlmN3pNR3dtbVhsbnZ0OGIrTS9NQjRtaEVuRW1XZXlPcmxTSkV1ZHlrdUJ4VTFGVUlZZlhUOFZzNHQwU0haeGw5NGl5NlBCcnZ0UjdsYlRVdmx1T2ZQL1crM3YyN1ZpNTY3OTNkUm1UWFZpOVhhdnhiU2VOYS9QR2x2VTNCamR0UXJqVHYzOWpJYzdOM3JvMWZlcUdkWS9jMnJQTDBJek0xbmwvbXp4eDU2WURlLyt4ODlDUnVjV2NPTnhkSlQxRDR4eFYzQ2xWSkxLNXVhZ3VVRXJWR3FUeEV1bUNuUXhPSUZHenlNT0w1T0E0TWd5RjdBNUI1eXoxVE9tWmsrOVVkemo2UHRYZ3dmdDYxYmlwemU2WkMrWVdabzg3eG5HczJZUTNDRlJNQVFSNnhld3JSdlVMQWZZWHVUV2xVNjhmZGs5L2UxSE84SEVEYi9aNDJxYnp3aVNoTlB5NXBLcW56VkNwNmhESTBxSVJGZ3dhQ1lKQWlxSVF1NU1qUlRkSVkzZUVQNVdFS01SZWZ3aEY2QWRWNVhSL3dLY0hBdGVGN1o0blpWL0tzNThlT3ZMMnkzTVhGT2JremxoOCs0QmVFMXErTkxwbGkrQ0ltNmQ5dEtycXArZk8rZlpZbGhRTE1rcWl0eThzeTdidnA1Kzg3Q2xHcGV5Q2dqKzNENDc4VXpDL0FBQVFBRWxFUVZSdWxEbmxwZWZ1RzlSLzd0aVowMVpNWHJ4bzRSRk5uOGhWdjY2ekVnamNKSHZkZ1pETkp2NFVsZGxGbFVibm1YVnBXR0Z6NGhycHVrNmFyRklrRkNLN3pjYWFwWkdkWncyUlMxUXpYSEphaUpSOFJrWG5KOVZPUzJ2Yk5hTlovMTFUYythOTNxbm44V0F3aUgva2xrUmZjOGs4VkFSNk1uYy9TY2ZlOU1ZYlN6YStucmZqcXhselh4amV0UFhEZGRLcXRSSXVGSThWaWtzMkNkRkl5R1MvSkhZakZ3MFZVU3pnT1pZWklSWWlMcGVMb3BwT2dhcFZ5WkdTUW1ITEpKN2R6VWNFa3hOU3ZEYmQ0L1JiQVU4ZExyMUtoeUtIZmRTT28wZVhmWDdxeEk1cDc3Mjd0ZlBJSVlzZjdkTHl4VVl2RE9rOWNtM2hveE0zdkY5ajloZXpiUld0QmJFTGxrbHIxZ1JlV2ZmZWZSbkRuKzdhcWtPTE1SbUQrdVIzQ283OHFHREQycDFiRHgxYTg0OFR4MS82VWRlN2lsV3FQV0I2L2VuZUdqWHRwWndnV0M0M1JRV1JKSDhLNmFKSXZOTk9QdWJNQzBTY29aT1hUWU5veGNVa3NUbHlLYXFZWm1sUkpCTDZhYk5JNGJGL3FaemFjbmlUVm8yTzVTMFl1MjNDSzl1bjllaFJSSGlEUUpJSklOQ1RyT0VZN3FVQ1F6TXpveDlNbUxCeityTGxyelMvdDBHbjJ5cFhiVkhGc3FhWVowNXZybXl6SFUwUitiREh4aG1wWGhjNTdBS2xCYnhVV25LZUpJRW5KNXVyVlMyTkRJRWp3V2tubFloVTBYWXg2RXZJNGxnYTJYVnZTcUJFc05XV2ZiNG56YlJxZy9lWFJLWXRXTGRoMGF2ekY2K1prTE50VFoyK1BmTGJ2emd1MkdqSWdHN05Sai83V05PUncrczJIejdveG82alJ0VmNlZkNyS3R1T0hnMnd1MXRYN0Y5NVc1WlY1bjllMlRHNUw3NzR3cmJqK0hIbmw0Y1ArN2VmT2xqbDB4TUhydXMzS1hoRGgyRlAzL0w0MFA3MVd3Wkh0TTBZTVhUb2srTkhUYTNkKzYvTHB5M09mMy9hc3NLbGg4S1J0N2owNnRsY1d1VjJJWmZyRGpNMXRZcmw5N3REb2lqSWtvTmtsdFFHZXhJU1pRSE5pUUp4ekk1bnIxb3N2SDF1a25pTExEVktQb21uVkx0bzJKVklxSkxBSFUzUjVTMXBwamFsM3ZYcHpUcy8wYmhUMTd5bFU3Wk5tZnBackpleEp6R3NEZmdGZ2FRVUtQTy9JSkpTR1lOT2VJSFlqNzZjMWEvZm1jMHZ2N3A1Zis3OEVjOWt0WHF5MnhPTlc2ZkkwWUdPY0dpK1RZMGN0aUxGVVZHTG1INjdTRDZCMlB4dGxEaE5JNEhqU1ZOVUV0bGRaZXl4c0UxMGttNXdaUEkyMGxnRzh3NHZLYWJBYXdKTEpjSHRWRGxuVmNGWHFhNGllUjgvcVJrOXR4NDhNT2FiOHhkbWJ6OThaTlhuSjQ1dDJYbjYxSll0UHh4Wjk4eWtLWVVkUmc2YjAyUlEzMmtQam5wMlF2Vk9yYk5yZG13em9IYVBqazlselpyeDZKaFZTKzdNWHJIb2h1REsrVldlVzdYS0d5d29jUFNaUGR2V1lka3lnVDFtNXY5NUlZdGRZTEFsOXJHTG4yZnovTEVmVmpKazJUSm44SU9GdmxpTjBhdVgxUXF1V243SDhHWHpIMjR4WVVUcldoM2I5SzdadWUyenpWNE9qbXYxVE5hcmpaOGZsTnRxeU9DbGJVYVAvR0QxL3IyYk4vNXc0dU12VDUxYi8vbjN4eGZ1UDNWdTh0Y25mbnhHdHJuYVNtbnBEU3hQeXA4am90MmoyZXcyMldibkZVN2dkSUY1OENLcHpDUVc1Qlluc0R0dms5ek1UVFFNNGxTWlBDSlBzZThoSU9rcU9RM044cEVoUytIU1F4NGxuTzhwdWRBdnExbVQ1c015T3oveGJlNmNFUnZHVDluMFJ1ZmVwNE1jWnliOEZ4aE9FQUpsSU1DWHdURndDQWlVTzRGZ1JnLzVwVFpkZHUxN2UvSGMzRW5aVDlldFZPV1J1LzUwL1YrcjJzUlg2ZnpadnhjZE9yZzdJUEJGRHROU0pkMGl1MEZraFdTeXFTWlpiSjdYenNKS1lmTy9Xa1NsYUNoSzBhaENVZmJ4MG5DRXpwZVVVR2tvVENGZEk4MXVwN0RBOHhIUlpwY2x1OHYwcGZoTW56OWRkN3YvSXl3NUdtcGViMnN6TGJXbldMWGFNTk9mR2xTOHZ0ZUtlQ0Z2N1ZlN2x1YSt1M3BWM3JzcjEwMWY4ZTdHT1lYenQ4N1krUDcyVlo5czNMNTk3WXFQYzQ3czNmcm13YTgyNVJ6WnR6SG55SjROVlh0MDNGaTFSK2JHbVlmM2JONnladG5XbVhOenR1V3NXYjV0L3J0THR1VXNYTDNscmVYdmYvVFdraVZyWnhTKzg5NkNkZXVYZkhic1JFR0p4L2xHeE9ONVVhK2NPcHlxcDJkcGFhbnQ5TFRLalVKTzUyMmxMbWROTXpVUVlJL00zWXJrY3NxQ1E1UTVPeGMyQkNwaVk3NVFJbE9ZdlVaaS95YzhxcEpwbXNSekhNVXVlQXpEdVBqMUVQdW1QNXlwRWE4cFpKUVdXVjZlRkZzNGVrRS9jM3FQWDFFL3ZNNHVUYjRqUGYycEIydmRrREYrVFAvQjN5NWFzWEJVMjQ3ZkRHcmFWTGxZQUw5QkFBS1hDUENYckdFRkFoRDRsY0FUMWVxRTN3dStmT1R2SXlldC9HenlqT2VIOXVuUWR1ekFRZTM0czJkN3NIUWVUUmRLUHpiUEZaLzFHaXlmSTRvbGxFWklZaUVtc1FCM1dTWUppa3k4SENXYnFaTlRKUEk1YmVUeFNPUjJTYVRwT25uOUFaS2NMdktrcEpMSmljU0pkb3BvSmtsdUh5YzZmYnpONlJNa1Y0cEFvc1BHaVE2NzB4UHdxcFpReVpKY05lMyt0TC9ZL0ttM1NyNUFYY21mVms5SUNkeGorVkx1SjQrdkFYdi9JZDZYOGpDZkVtakUrL3lOT0xid3ZrQkQzaCtvei92ODl3cysvNzNPdEdwM1NhbHBkUjFwbFc5M1YwNi95WlphcVpibDlxU1QyK3NYZlFHbjZQWGJ5T2tSZGRFdTZJTEVzK053dk12TG1UWUhtYUtUeU80Z3dlMGgzdWtnWGhCSllJL05QUzQzcFhsOEZIQzR5V0ZZNU5BTUVpSXlhY1ZzSWlKU1FoS2Jwb2d0aGx4cWtWeXFtYUdpVXg3ZTJPQlNvdGwrVmUwK29VL2ZWcjA3UDlIcWs4a3pScXdlT1hIMWd1eHh4ekpyMW8vK3FqSDRBQVFnY0lrQWY4a2FWaUFBZ2Q4VUdGby9NL3JNdzQ4ZjJMdHd4WHNuRnk5OTdjWFJvNW8yclhkbnZidHIxbXpyMTlSUjdranBRcUhvd29kdVJmN1dMaXVudldSRy9aTE44RHNrY3JINWRydkFzL2xoanNnMDJEUzdoOElzN0FWSklJZmJRYkttc3NmMEpqazhiaW9PaDBnMk5JcnFCbDM4N25hQ1JEcWJjMWFKSjUzbnlabVNRckxGa2NMeHBMSXdqYjBxYkYyMmlIMWVwRmpZcXV4SmdScjdQSHZWZUlFMFhtVEwvNzdHOXRGdEVpbXNYdGhrMmNyMk5ka3hZa3VzVGtRMVNERk1kdEZCN0p5SU9QYklYSkUxOXZUZUlwRnRaN2ZiMlFVSU94aWI2K2JZdURpUkoxNWc2MlNTWmFwa0dWSHlPbXlXUitKMEQwL2hTcEx3bzU5b3QzSG0xRHJ6L0xtNTE3dGR3KzZ1OWFjbUxlNjV1OTU5ZFc1czgrM01namUvenB1M09xdkJvOS9IakFsdkVJREFGUWtnMEsrSUN4dEQ0RklCanMzZjlycjU1dEtDWWNPT0x4OHpaczIzQ3haTjZ2SE83ZDFlNk5XN3c1aitmZHJWRG5pNnNCRHJLMFhEcndtUjZEWWpFajJqaGNNUlMxVjF6akpJMTJTeUNTYUpOb3RDNFNMeStKeGtjQ3cwQll1RnVvUGRCUlB4ZG9HRnJrN3NLb0F0SWlsc1A1VjBLbFdpWkhQWXlTWTUyUDUyRWtTSkJhcU43U0NTeFVKYU40a3NYcURZWFBYLzkyckdQc2R6eExGZ0Z1MFMyNVlqTlRZTndDNDBlSGJCSUVrU09ldzJFbmgyV011Nk9OY3RhQm81aVNPbnhXckxFV0paellJN3doNnBoNGtUMktXQm9MRm5FbEhkdEtJaFFkU09HVXJKQnk3Qm1NaUZTM3U3TktWems3dnF0WjNZZDNENzAzT1g5Tnc5ZGRiVXRTTW1ic3pOR3ZKajRZQmdpR09XbCtwaURRSVF1QklCOWtmMVNqYkh0aENBd0c4SnhINjRSMWJqeHNWWjlUUDJiWHI5clExNzVzeWIvLzNjeFNPNkQybjJXT082OTl6eStEMTE3bTlRdTNhblNodzk1MUdVbk1vY0ZkTFpzNXQ4bXI2SEx5MDltY2FMUldiUmhhakFib2U1cUd5SXBtYloyVUV0ZHZkdXNNZjNKcnRyandVdHozRWtSNk9rc01mN3FxeVFwdWdzWEUwU0xZRTRGcmdtZTJ6UHNUdHZ6bVNoL1UrdnhNS2UzVlJUYkZFVXRoK2J3emJaSERmSGR1SmpDd3YwMkg4VDQzV2RERGIzTDdKWHliSXNtNlliRGtQWEpGV1BPalR0Z2tQVGp3bkZGNzVLMGVXUFVqVHRIVnR4MFp0K1N4OTJ4M1hWMmoxNGErMDc3Ny90cGp1ZXFOZWdUY2ZwK1JPT0xGeTI1SnM1Q3pmbkR4aDZjRUJHUml5ODJSbXlRZUVYQkNCd3pRUVE2TmVNRW9VZzhLOEZPSTR6ZzdkbXF2TUhEankzS0d2bzdwVkRubCsrZC9xY1Y3clBuRGN3dTFXWHJsTjdEK2swcmt2djlqZm9YS2J2YkhIbmFocmZ5MStpWkZjallhYTlPUHlCMzZRdjdWSDVoRTJXei9HUlNER2JqdzVwcFNXeTNTRFZLUW82VzB6Qk5FeERqbHFXcWxqc2ZjdkdRcGhVMWZxL2hkTTBLN2JFMW1PdnNVVTBUY3RTRk5PSVJuWFNWSTE5VERYQ0VWa3RMaW5SUXNVWDJQSE9zSm44UGFtQ3VGNC9YenpiWjNIWlVpalMweTdMblFLR2tSbnMyU3R6V3Erbk8wMGZtdG50ZVA2U3dYdmZ5Si82NGZNVFZ4Y09HSEd3TUN1N09EY3JTd3V5c2Y5cm1iaDhCa1Voa0pRQ0NQU2tiRHNHblNnQ3NiRHJrWkVoeDc1RmJZLzY5ZmQ5a2xld1kvZjhSV3YzRmN4YmNuRHUvTmYzNStRTk9way9yMFgzS3VsMzkwNnZXYXZOdlEydWIzOS93NzgwZitDK096SWJQdlRBay9mYzFiamx2ZmUyZnJ4T25VNzFhdFRvV1VNUyt3ZGtaVEJic2xNMWZWUmwzUWltV2ViNE5FTWZsMm9hNDlOTVkyd2wweGlkYXVyUHArcmFrSUN1OXF0aDU3cmZWYk42eDJiMzFHM2VybUhEUmgwYTNWZXZ6U01QM3BMWjVLRmE3VysvOC9wNkRSdlZ5ZlJYYW5wcXdjS0IrM0x5WHY5KzdvS2wrL0lLMW4yZFc3Q3pUOFBIOXJlNCsrNnpUVzlzcXJDTEZ0eDFKOG9YRnM0aktRVVE2RW5aZGd5NlhBbHduQlVNQmsyMjZPeU9OOEtXc3d0NlAzMDRyMGVmWGZQK3MrL1czTDkxLzY5NXZmb3NXejk2N0x4dlpzeWVkYUJnM3B2ZjVSZE0yWitYUDJsZlh2NzQvYlBtQlBmbnZqMHU5dnJkckRrVDl1Zk1lZW03bkRtdmZEYzcvNDBEdVFXenYza3piOEZIbzhldm1OZDl3UHJabmJ0OU1xZnJnTDN6dS9VN21adVpWVHg5MENDbE1EUFRZTWMyaVoxSHVYS0wxOG1pTGdRU1ZBQ0JucUNOd1dsQkFBSVFnQUFFcmtRQWdYNGxXdGdXQWhDQVFId0ZVQjBDdjFzQWdmNjc2YkFqQkNBQUFRaEFJSEVFRU9pSjB3dWNDUVFnQUlINENxQjZoUlpBb0ZmbzltSndFSUFBQkNDUUxBSUk5R1RwTk1ZSkFRaEFJTDRDcVA0SEN5RFEvK0FHNFBBUWdBQUVJQUNCYXlHQVFMOFdpcWdCQVFoQUFBTHhGVUQxM3hSQW9QOG1FVGFBQUFRZ0FBRUlKTDRBQWozeGU0UXpoQUFFSUFDQitBcFVpT29JOUFyUlJnd0NBaENBQUFTU1hRQ0JudXhmQVJnL0JDQUFBUWpFVjZDTXFpUFF5d2dhaDRFQUJDQUFBUWpFVXdDQkhrOWQxSVlBQkNBQUFRakVWK0RuNmdqMG55bndEZ1FnQUFFSVFLRDhDaURReTIvdmNPWVFnQUFFSUFDQm53WGlFdWcvVjhjN0VJQUFCQ0FBQVFpVWlRQUN2VXlZY1JBSVFBQUNFSUJBZkFYS1lhREhGd1RWSVFBQkNFQUFBdVZSQUlGZUhydUdjNFlBQkNBQUFRajhRZ0NCL2dzUXJFSUFBaENBQUFUS293QUN2VHgyRGVjTUFRaEFBQUlRK0lVQUF2MFhJUEZkUlhVSVFBQUNFSUJBZkFRUTZQRnhSVlVJUUFBQ0VJQkFtUW9nME11VU83NEhRM1VJUUFBQ0VFaGVBUVI2OHZZZUk0Y0FCQ0FBZ1Fva2dFQ3ZRTTJNNzFCUUhRSVFnQUFFRWxrQWdaN0kzY0c1UVFBQ0VJQUFCQzVUQUlGK21WRFlMTDRDcUE0QkNFQUFBbGNuZ0VDL09qL3NEUUVJUUFBQ0VFZ0lBUVI2UXJRQkp4RmZBVlNIQUFRZ1VQRUZFT2dWdjhjWUlRUWdBQUVJSklFQUFqMEptb3doeGxjQTFTRUFBUWdrZ2dBQ1BSRzZnSE9BQUFRZ0FBRUlYS1VBQXYwcUFiRTdCT0lyZ09vUWdBQUVMazhBZ1g1NVR0Z0tBaENBQUFRZ2tOQUNDUFNFYmc5T0RnTHhGVUIxQ0VDZzRnZ2cwQ3RPTHpFU0NFQUFBaEJJWWdFRWVoSTNIME9IUUh3RlVCMENFQ2hMQVFSNldXcmpXQkNBQUFRZ0FJRTRDU0RRNHdTTEplZVFlZ0FBQWJkSlJFRlVzaENBUUh3RlVCMENFTGhVQUlGK3FRZldJQUFCQ0VBQUF1VlNBSUZlTHR1R2s0WUFCT0lyZ09vUUtIOENDUFR5MXpPY01RUWdBQUVJUU9CWEFnajBYNUhnQXhDQUFBVGlLNERxRUlpSEFBSTlIcXFvQ1FFSVFBQUNFQ2hqQVFSNkdZUGpjQkNBQUFUaUs0RHF5U3FBUUUvV3ptUGNFSUFBQkNCUW9RUVE2QldxblJnTUJDQUFnZmdLb0hyaUNpRFFFN2MzT0RNSVFBQUNFSURBWlFzZzBDK2JDaHRDQUFJUWdFQjhCVkQ5YWdRUTZGZWpoMzBoQUFFSVFBQUNDU0tBUUUrUVJ1QTBJQUFCQ0VBZ3ZnSVZ2VG9DdmFKM0dPT0RBQVFnQUlHa0VFQ2dKMFdiTVVnSVFBQUNFSWl2d0I5ZkhZSCt4L2NBWndBQkNFQUFBaEM0YWdFRStsVVRvZ0FFSUFBQkNFQWd2Z0tYVXgyQmZqbEsyQVlDRUlBQUJDQ1E0QUlJOUFSdkVFNFBBaENBQUFRZ2NEa0N2ei9RTDZjNnRvRUFCQ0FBQVFoQW9Fd0VFT2hsd295RFFBQUNFSUFBQk9JcmtLaUJIdDlSb3pvRUlBQUJDRUNnZ2drZzBDdFlRekVjQ0VBQUFoQklUb0hrRFBUazdEVkdEUUVJUUFBQ0ZWZ0FnVjZCbTR1aFFRQUNFSUJBOGdnZzBLOTlyMUVSQWhDQUFBUWdVT1lDQ1BReUo4Y0JJUUFCQ0VBQUF0ZGU0SDhBQUFELy8xT1pkMzhBQUFBR1NVUkJWQU1BS3BQb1NHZ1lrdHNBQUFBQVNVVk9SSzVDWUlJPSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgaGVpZ2h0PSI1MDAiIHdpZHRoPSI1MDAiIGlkPSJpbWFnZTBfMTgzXzU2Ii8+CjwvZGVmcz4KPC9zdmc+;" vertex="1" parent="1"><mxGeometry x="60" y="22" width="258.7" height="100" as="geometry" /></mxCell>
        <mxCell id="c316" value="松葉 / Matsuba — お取引先と社内を安全につなぐ、業務ファイル共有基盤" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=13;fontStyle=1;fontColor=#6B6457;" vertex="1" parent="1"><mxGeometry x="335" y="76" width="1200" height="22" as="geometry" /></mxCell>
        <mxCell id="c317" value="" style="line;strokeWidth=1;strokeColor=#D8D2C2;html=1;" vertex="1" parent="1"><mxGeometry x="58" y="122" width="1200" height="10" as="geometry" /></mxCell>
        <mxCell id="c318" value="Cloud Armor ポリシー（&lt;b&gt;別ポリシー&lt;/b&gt;。レート制限も独立して効く）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13"><mxGeometry x="1070" y="200" width="800" height="40" as="geometry" /></mxCell>
        <mxCell id="c319" value="HSTS" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13"><mxGeometry x="30" y="280" width="240" height="40" as="geometry" /></mxCell>
        <mxCell id="c320" value="本体ドメインは &lt;b&gt;HSTS preload 済み&lt;/b&gt;。加えてロードバランサのレスポンスヘッダでも Strict-Transport-Security を付与" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c13"><mxGeometry x="270" y="280" width="1600" height="40" as="geometry" /></mxCell>
        <mxCell id="c321" value="本体ドメインの未認証 API 端点 13 — 権能が無い" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c5"><mxGeometry x="4420" y="50" width="1230" height="470" as="geometry" /></mxCell>
        <mxCell id="c322" value="端点" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="20" y="40" width="400" height="40" as="geometry" /></mxCell>
        <mxCell id="c323" value="認可ゲート" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="420" y="40" width="270" height="40" as="geometry" /></mxCell>
        <mxCell id="c324" value="書けるもの（実行主体は service_role）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="690" y="40" width="520" height="40" as="geometry" /></mxCell>
        <mxCell id="c325" value="/api/health · /health/db · /health/ready（GET）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="20" y="80" width="400" height="40" as="geometry" /></mxCell>
        <mxCell id="c326" value="なし" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="420" y="80" width="270" height="40" as="geometry" /></mxCell>
        <mxCell id="c327" value="書込なし（db / ready は SELECT 1 の疎通確認だけ）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="690" y="80" width="520" height="40" as="geometry" /></mxCell>
        <mxCell id="c328" value="/api/system/maintenance · /contact · /auth-policy（GET）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="20" y="120" width="400" height="40" as="geometry" /></mxCell>
        <mxCell id="c329" value="なし（contact は認証の有無で応答の内容だけ変わる）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="420" y="120" width="270" height="40" as="geometry" /></mxCell>
        <mxCell id="c330" value="書込なし（公開設定の固定キーか純定数の読取）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="690" y="120" width="520" height="40" as="geometry" /></mxCell>
        <mxCell id="c331" value="/api/unsubscribe/info（GET）· /api/unsubscribe（POST）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="20" y="160" width="400" height="40" as="geometry" /></mxCell>
        <mxCell id="c332" value="HMAC 署名つき token" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="420" y="160" width="270" height="40" as="geometry" /></mxCell>
        <mxCell id="c333" value="本人の通知設定（購読解除）と queued 通知の掃引・監査 1 行" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="690" y="160" width="520" height="40" as="geometry" /></mxCell>
        <mxCell id="c334" value="/api/email-reverify/info（GET）· /api/email-reverify（POST）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="20" y="200" width="400" height="40" as="geometry" /></mxCell>
        <mxCell id="c335" value="署名つき token" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="420" y="200" width="270" height="40" as="geometry" /></mxCell>
        <mxCell id="c336" value="users のメール警告フラグ・監査 1 行（GET では解除しない ＝ メールスキャナのプリフェッチ対策）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="690" y="200" width="520" height="40" as="geometry" /></mxCell>
        <mxCell id="c337" value="/api/help/events（POST）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="20" y="240" width="400" height="40" as="geometry" /></mxCell>
        <mxCell id="c338" value="レート制限（fail-closed）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="420" y="240" width="270" height="40" as="geometry" /></mxCell>
        <mxCell id="c339" value="ヘルプ計測の 2 表（閲覧の日次集計・検索の空振り。両方 deny-all）。監査は書かない" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="690" y="240" width="520" height="40" as="geometry" /></mxCell>
        <mxCell id="c340" value="/api/webhooks/resend（POST）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="20" y="280" width="400" height="40" as="geometry" /></mxCell>
        <mxCell id="c341" value="共有鍵の HMAC 署名（未設定は空文字 ＝ 検証失敗）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="420" y="280" width="270" height="40" as="geometry" /></mxCell>
        <mxCell id="c342" value="メールの配送状態・不達イベント・通知設定・監査 1 行" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="690" y="280" width="520" height="40" as="geometry" /></mxCell>
        <mxCell id="c343" value="/api/account/admin-email-change/verify（POST）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="20" y="320" width="400" height="40" as="geometry" /></mxCell>
        <mxCell id="c344" value="32 バイトのランダム token ＋ IP 単位のレート制限" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="420" y="320" width="270" height="40" as="geometry" /></mxCell>
        <mxCell id="c345" value="管理者が発行したメール変更の確定（旧トークンの一掃・全セッション失効・監査 1 行）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c321"><mxGeometry x="690" y="320" width="520" height="40" as="geometry" /></mxCell>
        <mxCell id="c346" value="※ 未認証端点は全体で 29 本（受取ホスト 9 + 7 ＋ 本体ホスト 13）。本体ホストの 13 本で書込を持つのは 5 本で、&lt;b&gt;いずれも token / HMAC / レート制限を通してから service_role（dbAsSystem）で書く&lt;/b&gt;。Postgres の anon ロールに落ちる本体ホストの端点は 0 本。/api/internal/* の 7 本は Google OIDC の ID トークン必須なので未認証面ではない" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#C4925A;strokeWidth=1;fontSize=12;fontColor=#4A4436;align=left;verticalAlign=top;spacing=10;" vertex="1" parent="c321"><mxGeometry x="20" y="390" width="1190" height="60" as="geometry" /></mxCell>
        <mxCell id="c347" value="システム管理者権限の付与 / 解除 — users.role を書く唯一のドアが踏む 9 段" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c48"><mxGeometry x="30" y="540" width="1120" height="410" as="geometry" /></mxCell>
        <mxCell id="c348" value="① 端点は POST /api/admin/users/{id}/grant-system-admin · revoke-system-admin だけ（Better Auth 純正の /admin/* は prefix ごと 404）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c347"><mxGeometry x="20" y="40" width="1080" height="30" as="geometry" /></mxCell>
        <mxCell id="c349" value="② authMiddleware ＋ requireSystemAdmin（判定源は cookieCache ではなく live claims。非 system_admin には 404 = 存在秘匿）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c347"><mxGeometry x="20" y="80" width="1080" height="30" as="geometry" /></mxCell>
        <mxCell id="c350" value="③ OTP による段上げ — step-up の証明を assert し、成功後に consume（未完了は 401 STEP_UP_REQUIRED）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c347"><mxGeometry x="20" y="120" width="1080" height="30" as="geometry" /></mxCell>
        <mxCell id="c351" value="④ 理由テキストが必須（10〜256 字）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c347"><mxGeometry x="20" y="160" width="1080" height="30" as="geometry" /></mxCell>
        <mxCell id="c352" value="⑤ 書くのは dbAsSystem — users.role は authenticated の列 GRANT 10 列に無く、本人にも UPDATE できない" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c347"><mxGeometry x="20" y="200" width="1080" height="30" as="geometry" /></mxCell>
        <mxCell id="c353" value="⑥ 不変条項 — 最後の system_admin は解除できない（409 USER_LAST_SYSTEM_ADMIN）・自分自身への操作は拒否" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c347"><mxGeometry x="20" y="240" width="1080" height="30" as="geometry" /></mxCell>
        <mxCell id="c354" value="⑦ 解除側は全セッションを失効させる（revokeSessions）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c347"><mxGeometry x="20" y="280" width="1080" height="30" as="geometry" /></mxCell>
        <mxCell id="c355" value="⑧ 監査 slug 2 本（付与 / 解除）に理由つきで記録" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c347"><mxGeometry x="20" y="320" width="1080" height="30" as="geometry" /></mxCell>
        <mxCell id="c356" value="⑨ claims は live 再判定 — キャッシュが無いので次のリクエストから効く" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c347"><mxGeometry x="20" y="360" width="1080" height="30" as="geometry" /></mxCell>
        <mxCell id="c357" value="境界を評価するクレーム述語ヘルパ 8 本 — ポリシー内の呼び出し 196 回の内訳" style="rounded=1;absoluteArcSize=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#D8D2C2;strokeWidth=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=6;fontSize=13;fontStyle=1;fontColor=#6B6457;container=1;collapsible=0;" vertex="1" parent="c140"><mxGeometry x="30" y="1700" width="1240" height="430" as="geometry" /></mxCell>
        <mxCell id="c358" value="述語（rls.sql）" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="20" y="40" width="420" height="40" as="geometry" /></mxCell>
        <mxCell id="c359" value="回" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="440" y="40" width="80" height="40" as="geometry" /></mxCell>
        <mxCell id="c360" value="何を読むか" style="rounded=1;absoluteArcSize=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#0E7C75;strokeColor=none;fontSize=11;fontColor=#FFFFFF;align=center;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="520" y="40" width="700" height="40" as="geometry" /></mxCell>
        <mxCell id="c361" value="is_system_admin()" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="20" y="80" width="420" height="40" as="geometry" /></mxCell>
        <mxCell id="c362" value="75" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="440" y="80" width="80" height="40" as="geometry" /></mxCell>
        <mxCell id="c363" value="クレームの is_system_admin（横断ロール。ポリシーの OR 側）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="520" y="80" width="700" height="40" as="geometry" /></mxCell>
        <mxCell id="c364" value="current_user_id()" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="20" y="120" width="420" height="40" as="geometry" /></mxCell>
        <mxCell id="c365" value="59" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="440" y="120" width="80" height="40" as="geometry" /></mxCell>
        <mxCell id="c366" value="クレームの sub（本人の行・自分が作った行）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="520" y="120" width="700" height="40" as="geometry" /></mxCell>
        <mxCell id="c367" value="current_user_role_for_box(box)" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="20" y="160" width="420" height="40" as="geometry" /></mxCell>
        <mxCell id="c368" value="34" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="440" y="160" width="80" height="40" as="geometry" /></mxCell>
        <mxCell id="c369" value="クレームの box_roles から該当 Box のロール（書込の可否）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="520" y="160" width="700" height="40" as="geometry" /></mxCell>
        <mxCell id="c370" value="current_user_box_ids()" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="20" y="200" width="420" height="40" as="geometry" /></mxCell>
        <mxCell id="c371" value="16" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="440" y="200" width="80" height="40" as="geometry" /></mxCell>
        <mxCell id="c372" value="クレームの box_roles のキー集合（所属 Box の一覧・読取のスコープ）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="520" y="200" width="700" height="40" as="geometry" /></mxCell>
        <mxCell id="c373" value="can_view_box_via_visibility(box) · can_read_box_contents_via_visibility(box)" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="20" y="240" width="420" height="40" as="geometry" /></mxCell>
        <mxCell id="c374" value="5" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="440" y="240" width="80" height="40" as="geometry" /></mxCell>
        <mxCell id="c375" value="社内かつ Box の可視性（この 2 本だけ SECURITY DEFINER で organizations を読む = 擬似ロール internal_viewer の実体）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="520" y="240" width="700" height="40" as="geometry" /></mxCell>
        <mxCell id="c376" value="is_internal_user()" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="20" y="280" width="420" height="40" as="geometry" /></mxCell>
        <mxCell id="c377" value="4" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="440" y="280" width="80" height="40" as="geometry" /></mxCell>
        <mxCell id="c378" value="クレームの user_type = internal" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="520" y="280" width="700" height="40" as="geometry" /></mxCell>
        <mxCell id="c379" value="current_share_link_id()" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="20" y="320" width="420" height="40" as="geometry" /></mxCell>
        <mxCell id="c380" value="3" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="440" y="320" width="80" height="40" as="geometry" /></mxCell>
        <mxCell id="c381" value="クレームの share_link_id（未認証の受取経路の主語。TO anon の 3 ポリシーだけ）" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="520" y="320" width="700" height="40" as="geometry" /></mxCell>
        <mxCell id="c382" value="196 回すべてが (select …) でラップされている（層④）。ヘルパは設定値の JSON を読むだけで表を触らないので、ポリシーの評価が別のポリシーを再帰的に呼ぶ形にならない" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c357"><mxGeometry x="20" y="370" width="1200" height="40" as="geometry" /></mxCell>
        <mxCell id="c383" value="ポリシーの役割分担: share_links = &lt;b&gt;生存判定&lt;/b&gt; / files = &lt;b&gt;スコープのみ&lt;/b&gt; / file_versions = &lt;b&gt;clean の遮断&lt;/b&gt;。相互参照させないのは RLS の相互再帰（&lt;b&gt;42P17&lt;/b&gt;）で両方が落ちるのを避けるため" style="rounded=1;absoluteArcSize=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFDF7;strokeColor=#D8D2C2;strokeWidth=1;fontSize=11;fontColor=#0A2828;align=left;spacingLeft=8;verticalAlign=middle;" vertex="1" parent="c227"><mxGeometry x="20" y="570" width="1280" height="40" as="geometry" /></mxCell>
        <mxCell id="c384" value="この 1 枚で伝えたいこと" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=13;fontStyle=1;fontColor=#C8E0DC;" vertex="1" parent="c297"><mxGeometry x="20" y="30" width="240" height="60" as="geometry" /></mxCell></root>
    </mxGraphModel>
  </diagram>
</mxfile>
