fluxflow-cli 4.19.0 → 4.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{ai-UMXT6VB5.js → ai-Y4IR3IJZ.js} +1 -1
- package/dist/chunks/{app-GKXK24DF.js → app-DHX3OTGL.js} +52 -52
- package/dist/chunks/{chat-6R23AKX6.js → chat-HHMMKXDE.js} +1 -1
- package/dist/chunks/{chunk-YK27Y77U.js → chunk-6NF5DAR6.js} +78 -78
- package/dist/chunks/{chunk-VD2I7Z6Q.js → chunk-B7KSXQ3C.js} +33 -5
- package/dist/chunks/chunk-COUKJJ4O.js +31 -0
- package/dist/chunks/chunk-NPYHHQDC.js +1 -0
- package/dist/chunks/chunk-RN5BZJYO.js +9 -0
- package/dist/chunks/{export-ZTNXWWJF.js → export-YTWRQ63I.js} +1 -1
- package/dist/chunks/{generate_image-H7B5XMXI.js → generate_image-KQBOTDD4.js} +1 -1
- package/dist/chunks/{invoke-CZ67HJ6V.js → invoke-7P6PRCGL.js} +2 -2
- package/dist/chunks/{invokeSync-OU2V4FTC.js → invokeSync-SRSFNQUL.js} +2 -2
- package/dist/chunks/sessionDaemon-GHQTAGDG.js +1 -0
- package/dist/chunks/usage-XHKS6GHC.js +1 -0
- package/dist/chunks/{usageServer-LRDIG27Z.js → usageServer-5WB6ZWFG.js} +1 -1
- package/dist/cli.js +21 -21
- package/dist/package.json +2 -2
- package/package.json +2 -2
- package/dist/chunks/chunk-EPGLNGLE.js +0 -3
- package/dist/chunks/chunk-G3223ZQY.js +0 -31
- package/dist/chunks/chunk-W6AVB2PY.js +0 -6
- package/dist/chunks/usage-H4SG5DWF.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as v,r as g}from"./chunk-EPGLNGLE.js";import{c as f}from"./chunk-RI37VZYB.js";import b from"http";import{exec as u}from"child_process";var m="data:image/png;base64,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";var p=null,n=null;function w(){let r=m;return`<!DOCTYPE html>
|
|
1
|
+
import{e as v,t as g}from"./chunk-RN5BZJYO.js";import{c as f}from"./chunk-RI37VZYB.js";import p from"http";import{exec as u}from"child_process";var m="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwAAAAMACAYAAACTgQCOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4nOzdB3RU5b7+8aGIkEJooSUh1NBBpIXee1MwiEhTBBFFBAQERUCkKCpNqoB0FETsiFTp0qRXC03UUzznnqOSBM///a+9J5OZSTLJZDIze7/v/u61Pstz71FP7lmD93me7F+w2Xh4DH6KHBEFww8nVipy5I/4QgcTuxY69OfAiMOJoyMO3ple6FDi0sIH72wpfCBxb+GDd45rCu2/c6nwgcTvdfvv/KYptP/O70X2JYpUX2vu2O11seeOKOpqt4tdLnbaFdPscPGVi+2aP3WRX7rY5uILF5/bFdd85uJTF584lfjY4Q9R4iMXW118+Ico6bDFxQcuNjuV2uTifRfv/e608XdR2mGDi/Uu1jlFrXWxxsVqF6t+F9Gr/mv3rouVLlbYxWiWu3jHxTIXS/8ryjgs0fzHbrGLRXaxmoVpvO1igVPZ+S7muZir+T+7Of8nyjm85eJNF284lZ/t4nUXr7mY9X+igu7fosJMFzNcTLerqHnVxTQXr7iY+m9RyWGKi8n/cnrZLk4zycVLLl50MfFforLDBBcvuBiv+U1U0YxzMdbF805Vx7gY7WKUi+fsqmlGOvxTVHvWxQin6s+4eNrF8DSe+qeo4TDMxZMO/xA1htrV1Axx8YSLwS4e/4eo5fCYi0EuBtrVHvh3UXuAi/4u+jnd96iLvi4ecdHHro7mYRe9/+aU4HT/Qy56uejp4kG7upoHXPRw0V3zq65eNxddXXRx0flXUd+hk4uOLjo4NWjv8Ito0M5FWxdtfhENHVq7aOWipVO8poWL5g4/i/hmTo2aumjys2jU+Pbv8Y1//i2+keb297r4ny81avTzcU3jhj/vbRT/85bG8T8vbdTw9vTGDW6Pim9we0CjBj93adLgl/iGDf9WqXHjv4cb/f93eXh4eAL/7BH5I47eKR9x9E7biKPJQwsduTOr0Dd3NhX65s7xiMOJtwsdSRS6wy4OJYrCDgddHHCx30mG8F/csuH/v+YK/67Bn/BP+Cf8E/69Df8OjV00smusiXfR0EUDpyb1b+sa17t9p3Hdn75vXPf2jsZ1by9tWven8U3r/pzQ9P7bdevW/S3C6P+3zcPDw+P1E31IFCh4IrlexNGkxwseS5pT8FjSzoijiX+LOJokHAp9k+jkCP4WCP8s/yYJ/yz/hH/CP+Hf4PCvq+eirov7b4umup9+bXLf7Z1N7vvpraZ1bj2mFYP4+BsFjP7/8zw8PBZ/Cp4TRcKPJ3YteCLxpYgTSZsijiddijie+FfE8SQRccwF4Z/wT/gn/BP+Cf+E/2yE/9uiaR0X99k1qf3TX01r377YtNZPm5rWvv1is9o/d4mvdqOI0XmAh4dH4afAiT9KR3yblFDwRNK88JOJxwseT/xfwRNJIkJz3AXhn/BP+Cf8E/4J/4R/v4Z/XW2nZrVc1Pzp+2Y1b61pWvP20CZVf65us4lcRmcGHh4eGR8hckWcSa4bfjLx+YLfJn1U8GTSrwVPJolUJ+wI/4R/wj/hn/BP+Cf8Gxn+9QJgV8OuafVbvzSrfmtr82q3xjSr8tP9FAIeHp5MX+nRFv7wU4lLC55KulXw2ySRivDPwS8Hv4R/wj/hn/Bv+vCvq/6TaO5QTXPrb82q/bSpeZWbA3hliIfH6o8QubWVP+xM4vjwU0k7Cp5KTC54KknoCP+Ef8I/4Z/wT/gn/CsQ/lNUtWtW9dZfzavcOt6s8q1ZLeJ+amqzidxGxxEeHp5AP0LkDj17t2X4mcRF4aeSfgk/nSQ0qcGf8M9rP7z2Q/gn/BP+Cf9Khn9dFacWlX8SzeNu/dyi8k9vN6t0uzllgIdHsUdf+k8nzQs/k/xT+Bl76Cf8E/4J/4R/wj/hn/Bv3fCfKs6ueaVbf29R8dZSvjPAwyPrI0Su8NPJ8WFnkuaEn02+GX4mWdgR/gn/hH/CP+Gf8E/4J/y7h39dJYdbokXFmzdaVLz5ZstKNxsaHWl4eHiyeCLOiMJh55KHhp9NPhN+NlnoCP+Ef8I/4Z/wT/gn/BP+vQ7/t0RLhwq3RIsKNy+3LH9zfLvyPxc3Oufw8PA4HiFyh51Lbhp6Nnlp+LmkP1ODP+Gfg18Ofgn/hH/CP+Gf8J+D8J+q/C3RotytpJblb21qXu5WtwSbyGN0/OHhseQTck6UDDuXPD70XPJ3YeeSRbiG8E/4J/wT/gn/hH/CP+Hfz+E/VbkUZW/dbBV7a1bb8j+VMToP8fBY4il4LrlB2Lnk98POJ93Vgj/hn9d+eO2H8E/4J/wT/gn/QQv/5W6JVmVTxN682zL25vttom/UNzof8fCo9wiRO/xiYrewc0k7ws4nCx3hn+Wf5Z/wT/gn/BP+Cf9GhX+9ALiIuXmgdZlbCbwexMOT0+eKuDfkQtKA0AvJF1KDP+Gf8E/4J/wT/gn/hH/Cv5nCfxmnltG3vmsdc3Nk11I/hRgdo3h4pHrCLolioeeTpoaeT/pb2AWX4E/457UfXvvhtR/CP+Gf8E/4N2n4bxVzS7TW3RStom/82jr6xuT20TeKGJ2reHhM/RS9KMLDLiSPDz2f9G89+BP+TRP+Wf5NEv5Z/gn/hH/CP+Hf9OG/dbSLqBv/bVX6xqwWsT8WMjpn8fCY6ok8J8L04H8x6bfU4E/4N034Z/k3Sfhn+Sf8E/4J/4R/ycK/i9I3/qMVgbblv48wOnfx8Bj7HBchoReTR4ZdTPol7KJL8Cf8myb8s/ybJPyz/BP+Cf+Ef8K/xOHfro32x5I3/tG61M3x3AjwWO85J/K5BX/CvynDP8u/ScI/yz/hn/BP+Cf8KxH+25Ryal3y5u02JW6MSKh2Lp/RsYyHJ+BP6OW7bUMuJp9PDf6Ef1OGf5Z/k4R/ln/CP+Gf8E/4Vy78tynp1LrEjSutS95KMDqf8fAE5Am7lFgl9GLS56GXXII/4d+U4Z/l3yThn+Wf8E/4J/wT/pUO/21KOLWOvLGzbfEbNY3Oazw8fnkKnhNFQi4lzQu9lHSX8E/4J/wT/gn/hH/CP+Gf8O8e/tsUvyna6m7cbRt5Y2nHkrcjjc5vPDy+PXtE3pDLyUNDLib9XQv+hH/zh39e+zFJ+Oe1H8I/4Z/wT/i3YPi/KdpG2rWJvPlb28jr4xNs3AfwSPQUuJIcH3I5+awj+BP+zR/+Wf5NEv5Z/gn/hH/CP+HfmuHfpQC0jbwh2ha7IdoUvX6qTdEb9Y3OdTw8mT8/iZDQy0mzQi8l/UX4J/wT/gn/hH/CP+Gf8E/49y38O7Qpev1/bYvcWNoi8tcwo2MeD0+6J+TS3Y6hl5OvhV52Bn/Cv/nDP6/9mCT889oP4Z/wT/gn/Fsz/Ed6Dv9ti94Q7VK0LXLjx7aFb3QwOu/x8OhPxHVROPRS8lI9+BP+Cf+Ef8I/4Z/wT/gn/BP+/Rr+2xVxUejGpo5hHAnzGPiEXkl6NORy0t8J//KFf177MUn457Ufwj/hn/BP+Ldm+C/uQ/gvbNe28I1f2xW+0cfoHMhjsafw9yIi5HLyutTgT/iXKvyz/Jsk/LP8E/4J/4R/wr81w3+k7+FfVyjVpi4R1wsbnQt5LPDkv5rcKPRK8veEf8I/4Z/wT/gn/BP+Cf+Ef8PCv2gfcUO0L3j9ertCN5obnQ95VH32iLyhl5OmhF5O+ovwT/gn/BP+Cf+Ef8I/4Z/wb3D4T9Gu4PX/tS94Yx6/bwCPX597L90pF3o56VDoFZfgT/iXKvzzzr9Jwj/v/BP+Cf+Ef8K/NcN/8cCE//YFndqFXT/aNvxmJaNzI48CT8jlpCGhV5J+J/wT/gn/hH/CP+Gf8E/4J/ybM/y3D08Rdv2/7cNvPGZ0fuSR9flR5A+9fHe5HvwJ/9KGf177MUn457Ufwj/hn/BP+Ldm+I8MYvi3FwDRIey69sc1CbYbBYyOkzwSPfmvipjQK3ePEv4J/4R/wj/hn/BP+Cf8E/7lCv+60Ouifej1k+3uvVbO6FzJI8ETevVuq5DLyb8S/gn/hH/CP+Gf8E/4J/wT/uUM/6kKXPtHu5Dr7Y3OlzxmfYTIFXIleXzo5eS/CP+Ef8I/4Z/wT/gn/BP+Cf+Sh/8Qu/Yh1/7qUOD6lMk2kdvouMljoqfoRREecjX5g9Ard+3Bn/Avbfjn4Nck4Z+DX8I/4Z/wT/i3Zvgvbq7wryuQIv+1T3pE/FjI6NzJY5If8Rly9e4Fwj/hn/BP+Cf8E/4J/4R/wr+a4b+jJr/m2rnO+X+INTp/8hj4FLic3CDkSvIvhH/CP+Gf8E/4J/wT/gn/hH/Vw79dh3zXf+6Y90Z9o3MojwFPgat3Hwi9kvwH4Z/wT/gn/BP+Cf+Ef8I/4d8a4b/jvQ7Xfu+Q73oPo/MoTxCfAleSR4ZeSf4f4Z/wT/gn/BP+Cf+Ef8I/4d9q4f+66JhP+07Atb865Lv2rNG5lCfQjxB5Qq7cnR96VQv+hH/Zwz8/7cck4Z+f9kP4J/wT/gn/1gz/kfKG/44O91wXne65Pi/BJvIYHVN5AvH8JEJCriZ/Qvgn/BP+Cf+Ef8I/4Z/wT/gn/He0h39dx7zXtvI7B6v2nBNhBa4k7yL8E/4J/4R/wj/hn/BP+Cf8E/47uoT/Tnk110SnPD/u62i7UtDo2MrjhyfiuigccvXuYcI/4Z/wT/gn/BP+Cf+Ef8I/4b9jRuFfLwDXRMfcPx5vY7tV1Oj8ypODJ/Q7UbzA1bunCP+Ef8I/4Z/wT/gn/BP+Cf+E/8zCfyeH3D+e72C7VsroHMvjwxNyQZQqcOXuOcK/IuF/6z9FiXXfi5KLT4qSb+zWlXrlE1Fq6sei5JQtotT4talKj3NY426si+c9GJOxqNEuRrla7fTcahGdkZEunvVghAfPrBYxDk97MNyDp1wMc1fG4UnNqvSG2sVqhmTiCQ8Gu3jcXVmHxzwY5GKgBwPcldO9K8r1d9EvvfKaRz3o6+IRD/qsTKeC5mEXvT1I8OAhF73sKqbVM2OVHnTxgAc9MrJCVOruoptTnKuumejiorMHnewqp9XRRQd3VRzae9DOYbmo0taDNk5VXbV20cqDlq7ecWrhVK25B83Sq65p6qKJB409aOQi/h1RIyMNPWjgsEzUqO9BvWWiZkbqurjfqVZadTy4z0VtD2rZ1U6rposarpY6Vfeg2lJxn0NVD6o41XFVWbPELs6DSkvE/XFrRN24DaJepY2iftwnuvi4r0Xjyt+KZpW/J/xLH/6v6Trnvnapo+1mtNF5licbz70X75QNuXr3O8K/HOG/+KabosSiI6LktA9FqefeFqX7TRDRnQaK6CZdRcx9zUSZirVEmdg4AABMLza2pihftomoWLaTqFKun6heboyoXWG2qFthrWhYcYdoWvEM4d/84V90znVNdMp17Vp7242KRudaHi+e8IuJlUOuJt8i/Jsw/H/wsygxd48oOe4dUbrvOBHdvIcoU6m24f+wBgAgmMrG1hKVynYV1cuOFHXKzxMNy30qmpU7T/g3Ufjv7GD78WYH2w+Vjc63PJk8+b8XZUKuJF8j/Jsg/H/+L1F84UFRatRCEdVtiIip1djwf+ACAGBm5WLjRZWyA8V9ZWeL+NgvRMuy3xP+DQ3/13SdbD/e6mK7Xt7onMuTwVPgsogKuXr3B8K/MeE/8rN/iBKzvxClh0wTUa0eEjHlqxn+D1IAAGQWG1tNxMU+KGrGviQaxG4SLcpcJfwHOfx3drre2fZDrNF5l8flCbsiIgtcvXuB8B/c8F9s41VRcvxyEdVpgChToYbh/6AEAEBlsbFVRVxsT1En5g3RJGa3aB1zg/AfhPDfRfej9jrQlc62H0sanXt5tJ/z/6MoVODq3ZOE/yCE/x2/i+Lzd4vSAyeKmDrNDP8HIQAAVlahTFNRM2aMaBTzsWgVdY3wH8Dw38XpdHvbjSJG519LP0WuiIIhV+4eJfwHMPzv+kMUX3JIlHpiqoip1cjwf9gBAID0ysXWE9XLPC0aRr0vWpW+RvgPQPjvqsmlO9LddjHc6BxszecnERJy9e4+wn9gwn/kmtOEfgAAJFQ+tpGoFfOCaFp6H+Hf/+FfdM31g+iW6/u9CbYbBYyOw9Z6hMgdciV5K+Hfz+H/q3+LEq99IqI6DzD8H14AACDnKpXpIuqVXixalbxC+Pdb+P9B1zXXD58m2EQeo2OxZZ6QK3fnE/79F/4jV520v9dfuY7h/6ACAAD+V7bMfaJm1BjRtNRuwn+unId/F28ZnYst8eS/mjya8O+H8L/nTxH59h4R1WOI4f9QAgAAwVM5pqdoWGqdaBN5nfBv8z38d9d9L7rbvnvW6Hys9BNy5W7X0CvJfxH+fQ//RXf+RxR/dZOIbtzZ8H8AAQAA41Qs00rULTVPtIm8Svi3+Rj+c30vuuX67n9dbVcfMDonK/kU+C65XujV5N8J/z6G/+2/iZLPLxIxNTnqBQAATuXKNBR1S80WrYtdIfxnM/w7ffdnN9uP8UbnZaWeey/eKRtyJfkXwn/2w3/RXf8RJSavFTG1Gxv+DxgAAGBe5crUF3VLzhZti14l/OfyPvz3SNE91/d/e8B2pYLRuVmJp/D3IiJE+11+Cf/ZCv9Fd/9XlJiyVsTc19Twf6AAAAB5lCvTwF4EinxH+M/lXfjX5f5OPJD7u/P8HgE5fYTIFXI1+QPCfzbC/947ovjrH4no+1sY/g8QAAAgrwoxzUV85DrCfy6vw7+uR67vPrLZRC6jY7S0T8jl5JcI/96H/2KrT4qo9n0M/wcGAABQR+WoHqJZ0S8J/7myDv8OD+b+brzROVrKJ/Ty3bahl7Wf+EP4zyr8F/3klig1aKIoU66q4f+QAAAA6omNrSJqlhouWhc+TfjPlWX4Fw/kvvK/nnmudjA6T0v15P9BxIZcSf474T+L8L/3D1FiwjJ+Ay8AABC031CsfuQ80a7gNcJ/7ozD/4O5r+oeyH31nwm2S+WMztVyPD+K/KGX7x4n/Gce/outPyuiW/Uy/B8EAADAeipFdxbNC+0i/OfOOPxretp9m2C7UcDoeG36J/Ty3ZWEf8/hv+ie30XJsYtETIXqhv/iBwAAFlamqqhTYpJoF/4d4T93huFf92Cuy2uMztemfkIuJw0h/HsO/5HLj4jo+PbG/4IHAABIUTG6rWheaBvhP3f68N8z95UUlwcZnbNN+RS8eqdiyJWk/xL+Mwj/e/8QJUfN4cgXAACYUmxsVVGn+CTRIewHwn9u9/DfS/tjniu/P2C7EGd03jbXs0fkDb2S9A3hP334L7r1BxHVrrfhv7ABAACyUrl0d9Eq/BDhP7cz/PfKY9cz95VjQ23H7zE6dpvmCb2cNJPwnz78F5+xWZSpfJ/hv5gBAAC8VbZMbdGw8CLCf25n+Nc8pLv8itG52xRP2OXkZqGXk/4i/LuE/x2/idIPP2v4L2AAAABf1SwxTLQvcJnwnyc1/IteeS79r1eeiy1tVn4ifhSFQi8nXyP8O8N/0c1XRHTTzob/ogUAAMipilFtRKuw/YT/PJddXLrR13amsM2qT8iV5I2Ef2f4j5y/XcRUrWf4L1YAAAB/KRtTWzSJWE/4z3NZJDhtslnxCb2S9CjhP8W+O6LEuEWiTLkqhv8iBQAA8L/K4v5ik0SHfD8Q/vNoLoneuS/3sVnpCb8gioZcSvqV8J/yvn+PwSb4hQkAABBY1UsOFO3zXSb857kkEvJc/HuC7UqkzSpPyOXkdYT/RFHk01siquUDhv9iBAAACJa40h1F23uPWzr893ZaZbPCE3LpbifCf6IouuGciL6/heG/CAEAAIKtQnRj0arALquHf9E77yXxcJ4L7W1KP6dEaOjl5B+sHv6LLd4rYqrUNfwXHwAAgJG/X0Cz0M3WDv95L4reeS9eS7CdC7Op+oRcSppn9fBffNYWUaZ8VcN/0QEAABiuTFXROPxdy4b/hx3yXHjDpuJT4HJyg9BLSX9ZOvy/sp6f9AMAAOAiNraKiA9fbN3wn/ei6JP3wl998l6sZ1PqOS7uCbmcfNbK4b/Ey6tEmbKVDf9FBgAAYD6VRYOItywa/i/qHs5z8dsWtj15bao8oZeSn7N0+Nd+xr/hv7AAAADMrW7hSZYM/33s3wUQj+S9MNymwlPwnCgScinpH1YN/yVHzDb8FxMAAIAs6haaatXwLx7Je+Gf/W0Xitpkf0IuJi2ybPgfPc/wX0QAAACyqR8x04rhX2j65Lkw1ybzE3YlsVropaS7Vgz/JV5aYfgvHgAAAFk1LDjbcuH/Ebu7/e65UMMm6xN6KWm7FcN/8envcfALAACQI5VFo/C3rRb+Rd+850XfvOd22GR8ClxK7GHZn/PPj/oEAADwy48IbRq2wmLh/7zoe8958Uie851tUj3nRL6QS8mXrRb+iy3azW/yBQAA4E9lqooWBT6wVPjvq8l7/mqC7Vw+myxP6MXkkVYL/0U3nhMxVesZ/4sEAABAMWVj7hNt791lmfD/aIq+ec89bZPiOSVCwy4m/WKl8F/k01si+v4Whv/iAAAAUFWF6MaiY96jlgn/j95zTvS95+ztobbjITazP2EXksdbKfwX3vGbiGrew/BfFAAAAKqrXKqL6JL7vCXC/6P3nBP9tD/mPTfaZuYn8pwIC72Q9DfLhP+v/xCleww2/BcDAACAVdQo3l90y3XVEuG/n+7s3x+3XQy3mfUJu5A8yTLhf7/2u/y+bvgvAgAAAKupX2iyRcL/OV3/vGdesJnxKfy9iAi9mPSbVcJ/5Nwv+Vn/AAAAhqgsWoausUb4v0f/LsC/Btq+LWQz2xN6IWmaVcJ/kc2XRUyVuib48AMAAFhT2ZjaosO9e5QP//3vOWuX98zLNjM9YZdEsdDzSf+xQvjXjn6jm3Q2/EMPAABgdXGl24juec8oGv7PpvXvwbZzRWxmeULPJ021RPjfnyhKPzzC8A87AAAA7O6LHGqF8C8G5Dsr+uc7M8lmiueGKBB6PunvVgj/xadtNPxDDgAAAHfNw5coFP7PZRj+dfec+TXBdqiA0fHfFnY++SkrhP+iH1wVMZXrGP4BBwAAgLtyZWqJTvm+Vjv85zujG3jP6SHGpn8hcoeeT76oevgvvPcPEdXmIcM/3AAAAMhY1VJdxYN5Lin32s8A1/Cv/fGeM5cm20Ruw/J/2PnEB5QP/9rP+3/2TcM/1AAAAMhcfOEpSof/gSn65zvb1bACEHo+ab/q4T9y+RFRplxVwz/QAAAAyFxsbFXRvsDH6r32k8/doHtO7zEk/Bc4m1xf9fBfdPd/RHSjjoZ/mAEAAOCduNKtxIN5zim5/A/Uwn++07rH8p5qGPQCEHYu+X2Vw3+RfYmi1IjZhn+IAQAAkD3xhScrHf4H2W0MavgPOSdKhp1PSlY5/Bdbf1bElK9m+AcYAAAA2RMbW0V0yv+lWq/95Dud1t2hIcdLBa0AhJ1Pnqhy+C+y908R1SbB8A8vAAAAfFOtVFfRK88FJcP/YykG5ft2fHDSvxC5Qs8mX1U2/O9LFCUmLDP8Q2u02LKVdUZ/HQAAAL5qFjFbtdd+hCP8P5bvlFYAvrfZRK6A5//QM3fbqRz+i376k4ipcr/hH1ijla9QTZSvwE8/AgAA8iobU1s8kO+IkuH/sXvtHr/321YBLwBhZ5M3qRr+NaUffd7wD6sZxFWuJSrF1TT86wAAAMiJusWeUeq1n8fcwr9eADYENvxfEsXCzyYlqhr+I9d8K8qUq2L4B9UMatSsJ6rXqGv41wEAAJDTg+DO+T9TcPk/5SgASUPDjhcLWAEIP5v8vKrhv8jXiSKqfR/DP6RmER/fQjSMb2741wEAAJBT1Uv1EL3zXFQw/J+yy3dyZOAKwJnkC6qG/+KvbTX8w2kmbdp21hn9dQAAAPhD27CVCr32cyrV4Hu/1b4LcCEw4f90cryq4b/orv+I6PtbGP7BNJPevfuJhIRHDf86AAAA/KFSVDORcM855cK/w+N5T9TzewEIO5M0R8XwX+TrO6LEpHcN/1CazfCnR+qM/joAAAD8pWXEHGVe+3EN/5on7v12tn/TvxC5w88m31Ix/BfZ+W8RU6eZ4R9Is5k2babO6K8DAADAXypGx4uEe04ptfynhH/xRL6TN/z6ewKEnU5upmT419b/Ce8Y/mE0mzr3NxJz5izQaf/a6K8HAADAX1pEzFYv/OtOiicKHI/3YwFIWqBi+C+y/TcRU5OAm9ZDCX1TC4D2r43+egAAAPylQnQD0fueU6q89uMM//eeFEPuPTnHf6//nEn+Sbnwv/eOKPn8IsM/hGYTW7ayeHnytNQCMHnKq/r/zuivCwAAwF+aF5qh1vJvD//aH29PtoncOc7/oWfvtlIx/Bfd+X8iphbrf7pfEC3apYZ/h2bN2xr+dQEAAPhLhej64uF7TikV/ofktxua/3jTHBeA8NOJi1UL/5oSk9ca/uEzo3HjX0xXAF6YMInvAgAAAKW0KbhAldd+UsO/5on8xxfk/PWfU0m/qBb+i+z5U0Q36mj4B89sOnTsni78O2j/ntFfHwAAgL9Ujmot+uQ9p8zyb3dCDL33xO0c/TSggieT6ysX/vfeEcXf2mb4h85sqteoK2bNesNjAdD+vWrV7zf86wQAAPCXTmHr1Ar/KYaFHK3jcwEIO5X4smrhv8ieOyK6PT/ZxlXFSjXEhAkvewz/Di++OFlUiqtp+NcLAADgD7VKPqTEaz+u4d/u+MScFIDDqoX/yFUnDf+wmUmFitXFqNHjsgz/Dtqfq/01Rn/dAAAA/tAj5DNllv9U957Y51P4L3hOFCl4KvEvlcJ/0T13ROmBEwz/oJnptR9vlv+0tL+G14EAAIAKGhYbodDyf0I8af/j3YER3xbKfgE4nfSIauG/6LZ/ipjKBFftJ/poR72ZvfOfFe2v1f4e/HQgAAAgs3Ix94k++U4qE/7tjosnCxx7KPsF4NvENUqF/z13RMkp6w3/kBlJC+vaz/kf/8JLPgf/tLS/l/xRnF4AACAASURBVPb3pAgAAABZtY2YL/1rP27hP/9xMSz/8eXZS/9C5Cr4bdIvKoV/TXTLnoZ/wIxQ5/5G4qGEvm6/w6+/aX9v7T9D+88y+v9eAACA7KhRqps6y789/Ith9x7P3o8DjTiTXFe18B+55rThH65AKV+hqoirXEt/pz8+voVo07azSEh4VAx/eqSYNm1mwEK/J9p/pvafrX0N2teifU3a16Z9jdrXavR/XwAAAGXSeLDAF+qE/xRPhZ6o5XUBCPs2cZxK4b/o7jui1BNTDf9gBboAaIe5Zi0A2tdGAQAAAGbVuOjzKrz241RAc/Q5rwtAwW+TPlYp/Bfd9YeIqd3Y8A+WUXgFCAAAIHMVoxuKfvecVib8P1XgmBiW/+jmbLz/n/g3ZcL/7jui+MKvDf9QmYF2qNuseVu/HwFrf0+OgAEAgOy6h25SJvzbC8Cxn73K/+GnEuNUCv+a0gNeNPwDZSb8GFAAAIC4dOKLjVQm/Ke692j5rAvAiaTHVAr/RXf8LmJqxBv+gTIj7b18fiMwAACAOF3F6Ab6a0DKhP8Cx8Tw/Ef7Z1kACp5IXK5M+N91RxSfv9vwD5OZVahYXYwaPc7r8K/9udpfY/TXDQAAEAjdw95TJ/xrf8z/zZKsC8DJpIuqhH9N6YETDf8gmV35CtXEuPEverX8E/4BAIDKGhV7VpnwP7zAUTE8/zdnM3/95xtRtODxxP+nSvjXRNdpYfgHSQbaKz2Z3QRo/x6v/QAAANXFRTdRJ/zrvvl/owoeKuK5ABxP7KJS+I9cdcbwD5FMtKNeTwVA+/eM/voAAACCISFkmyLh/6h4usBR8UzI0U6eX/85nviyKuG/6M47ouSYxYZ/gGST0atAL0yYxE/7AQAAltG68Axlwr9meP6jEzMpAEmbVQn/mqj2fQ3/AMmmeYt26QqA9nP+jf66AAAAguW+kr2VCf96ASjwzUaPBSDieNJlVcJ/5Gf/EDHlOVjNLm3pd/0dgydPeZX1HwAAWErZMtVF/3uPKhH+7b45n2H4jz4kCkQcT/xLhfBfbOcdUWL2F4Z/eGT1UELf1AKg/Wujvx4AAIBg6xb+rhLh/5kC34inQ765O9C2J3/613+OJtdXJfwX23FHlH7iFcM/OLKqc3+j1AKg/Wujvx4AAIBga1ZsnBLh/5kQuxEhR+ukf/3nWNJgVcK/JrplL8M/ODKbNm2meOWVGYZ/HQAAAEaoVaq7MuHf7siA9N8BOJY0V5XwX+zzf/H+fw4Nf3qkeGr4s4Z/HQAAAEbdAQy895gS4X+E9scC38zO4BWgpN1KhP8dd0TxhQcM/9DILiHhUZ3RXwcAAIBReoZtUiL82wvA4e3pXwE6mvSrCuG/2Fd3RKlRbxv+gZFdm7addUZ/HQAAAEZpXeQVJcL/iJAjmp/cwn/RAyJclfCvieo2xPAPjOwaxjfXGf11AAAAGKVuyb6qhH8xIuTw/xtqOx6SWgAKHU6qpUr418TU5CfX5FT1GnV1Rn8dAAAARqkUE69I+D8ing05IkaGHa7qLABHE7urEv6Lbblt+IdFBXGVa4lKcTUN/zoAAACM1D//fiXCv93hzqkFIPybxGeVCP/b74gSc3cb/kFRQfkK1UT5ClUN/zoAAACM9GD4BkXC/xHxbIHDw53fAfjmzlsqhP9i2/8UJccuM/yDooLYspV1Rn8dAAAARmpXeIYa4T/ksFYAXnctAFtVCP+aqEfGGf5BAQAAgBoaFR+mRPgfqRWAkEObnQXgyJ1vVQj/kV/+KaKb9zD8gwIAAAA11CzdRYnwb3fouMtPAbrzLxXCf+S2P0SZSrUN/6AAAABADeViaisS/vUC8A89/Bc+LiKUCP9f/imKb7pp+IcEAAAAahmQf5/84T/0sHgu9LAYW/RAuC38cGIlFcK/psSiI4Z/QAAAAKCW3mEfKBH+dffuL28r/M2fjVQI/5Hb/hQlX9li+AcEAAAAaukWsUiN8B96SIwqcKiBrdDBxK4qhH9NqZELDP+AAAAAQC1ti0xVIvxrRoYc7mSLOHxnkArhX1O63wTDPyAAAABQS9PIp5UI/6O0P4Yc7G+LOJw4RoXwH/nFnyK600DDPyAAAABQy/0leysR/lM8Z4s4eGeGCuFfE9O4i+EfEAAAAKilelQHVcK/9j9PsxU6lLhMhfCvF4DaTQ3/gAAAAEAtcdGNlQj/dgcX2wofvLNFhfAf+fmfokzFmoZ/QAAAAKCWcmVqqhL+xeiQA5tshQ8m7lEh/Edu+YfhHw4AAACoaXCBw/KH/9CDYlTIgV22QgfuHJU9/Bf//E9RYu33hn8wAAAAoKYBIV9JH/5THNZeATolc/h3FICSi08Y/sEAAACAmvqGf6hC+BejQw+csBXaf+eCrOG/uMNnf4qSb+41/IMBAAAANSUUXKdA+D8oxoQcPGcrfCDxexnDf2oB+Myu1GtfGf7BAAAAgJp6RqyUP/zr9l+1FdqfeFPm5d+h5PTPDf9gAAAAQE0PRiyVP/yHHRCjww5ctxXel/irzMu/7tM/RampHxn+wQAAAICaHohYJH34t9v/i63w/jv/lnn518K/XgAmbTL8gwEAAAA1dS80T4Hwf0CMCT3wm63Qvjt/yrz8pxaACesN/2AAAABATV0KvyF9+H/e/h2AP2xF9t35S+blX/fJn6LUuNWGfzAAAACgps5FZkkf/lP8ZVMh/GtKP7/S8A8GAAAA1NS5yHQVwr/OJvNrP47wrxeAMRQAAAAABKcADJc0/D8ftl/YZF/+NSU+pgAAAAAgOAVguMThf6y9AMi9/Gvh314AVhj+wQAAAIDaBWC45OHfWQAkXv7t/hClR1MAAAAAELgCMFyB8G8vAJIv/1r4L/ERBQAAAACBLgBHpQ//7gVA0uVfC/8UAAAAAARS5yKvKhH+x6UWAImXfwoAAAAAglUAnpY8/I8L2ydssi//uq0UAAAAAAS2ADytQPjXC4Dsy78W/ikAAAAACKQuaQqArOF/XLhrAZB0+U8tAKMoAAAAAAh8AXhG4vA/PrUASLz86z78Q0RRAAAAABDgAvCM5OHfXgAkX/618F+SAgAAAIAAF4BnFAj/7gVA0uVfC/8UAAAAAAS8AITIH/7Hh3+dUgAkXv51WygAAAAACJwuRV9VIvy/oBcAyZd/LfxTAAAAABCMAjBC8vDvXgAkXf5TC8BzFAAAAAAErgCMUCD8OwuAxMu/7gMKAAAAAAKna2oBkDv82wuA5Mu/Fv4pAAAAAAh8ATgiffhPLQAyL/8UAAAAAARa16LTlAj/E7QCIPvyr9tMAQAAAEDgC8Czkof/CeF7hU325V8L/xQAAAAABLoAPKtA+HcvAJIu/6kFYCQFAAAAAMEoAIelDf/OAiDx8q8ptYkCAAAAgGAUgMNSh/+JegGQfPnXwj8FAAAAAIEvAIelD//uBUDS5T+1ADxLAQAAAEDgCsBIBcL/xIKOAiDx8q97nwIAAACAwOnmWgAkDv8TC+4RNtmXfy38UwAAAAAQlAIQKnf4f9FeAORe/ikAAAAACEoBCJU//KcWAJmXf917v1MAAAAAENAC8JwC4V8vALIv/1r4pwAAAAAgkLqnFgC5w797AZB0+U8tACMoAAAAAAhkATgkffh/KbUASLz86zb+LqIpAAAAAAiQ7kVfUSL8v1Rwt7DJvvxr4b80BQAAAAABLgCjFAj/7gVA0uVfC/8UAAAAAAS3AByUMvw7C4DEy79uAwUAAAAAwSoAB6UN//YCIPnyr4V/CgAAAACCUwAOSh3+J7kVAEmX/9QC8AwFAAC8VymF0V8HAMhUAA5KH/6dBUDi5V+3ngIAAJkH/eww+msGAHMWgNEKhH97AZB8+dfCPwUAANJyD/UxZdzFN3hExNd7JN3/njIAAHEZ6pGmAMga/icV3CVssi//FAAAcOU59DuULVdTDO23TQzt94UoX66Gxz+PIgAAcRkWAJnD/8sRjgIgefgvvY4CAABZBX+Hzm0milFDj4tRQ46LTq0mZvnnUwIAIC61AMge/u0FQIHwTwEAAO/Cf7VqzcWzTxzRC8DoIcfFyMcPiWpVmlMCACA26wKgQvh3LwASh39NzNMUAABW5F3wd3ik14rU9X90ikcfXObVX0sJAFDG6gUgTP7w7ywAkof/qLUUAABWlJ3wX1HEN+wrRg09kbr+a8bojon4+n31P8f7ImD0/+0AEFw9ik1VIvxP1guAAuGfAgDAmrwL/pqy5Wrph79p138t/GuGP/qFqFCuZuqfTwkAgLgMC4Ds4X9yxE6XAiBx+NcLwHAKAAAr8S74R8fYdWzzksf1f8zgY2Ls4GOiU6sXU/98b4oAJQCA1QrA8wqEf2cBkDz8R62hAACwkqxe/XEGf031ai3EyJTD34zWfy38a5577KCoXqWF21+bWQngJgCAlTyQrgDIGf7tBUCB8E8BAGAdmYV/99Xf4eGHVmS5/tsdFX17LEv311MCACAuTQGQN/xPcS0AMod/CgAA6/B++Y+OqSDiG/ZLDf+Zrf9a+HdoVL+v/tdmrwQY/d8LAASrAOyXOvynFgDZw3/UagoAACvIXvgvV762GNr/S8/rfwYFYNzgo+IZ7SC4fE1KAADEpi0A8od/vQCoEP4pAACs/upP2vCv6eRy+Ovt+q8VgHGDvxFdW05M/ft4UwJ4FQiA6h4oNkWJ8D8lYoejAMgd/vUC8NRywz8YABA42Qv/1au3TPkdf7O3/mvGD/5GjHnsgKhetaUPJcDo/54AIDgFYJyk4T+lAMgf/qNWUQAAWHH9zzj8R0dXEH16rhDP+bj+j08xoPtS/e/lbQnguwAArFIAxkkc/qfqBUD68P9fEb3qvxQAABZ/9cce0qOiK4hGDfunhH/39X+0l+u/wwuPfyOa1ns0wxLAdwEAWLUAjJM8/LsXACnD/+96+KcAAFCX9+FfC+ply9kPf3O6/r+gF4AjYkTfz0SFcrUoAQAs74FiU5QI/1MLOQqAlOHfHvx171IAAFj11R9n+NfW/05tJ/lt/dcKwITHj4hurSbqf29vSwCvAgFQ0YN6AZA//NsLgOTLvxb+KQAA1JS9V3+qV2+lH/6mFoAcrv8TUowbtF9Ur9LKXgL4LgAAqxeAcLnD/ytuBUDS5T+1AAyjAACwbviPii4vHum10uf1f5yH9V8z8fEjYlC3pfp/hrclgO8CAFCyAITLHv6/0tlkX/51KykAAKz86k950bjhAD38+2v9dysAgw7rmtbrq/9nZe9VIKP/uwQA/xWA8VKHf9cCIPnyr4V/CgAAK6//2uHvk/23BWz9dxSA5/p8IiqUq8mrQAAsqadbAZAt/NuDf2oBkH35pwAAsOr673j1x3H4m1EBcPzGXzld/19K0V0/COZVIABWLgBfSxb+3QvAtNQCIPHyr1tBAQBgsfU/JfzXqN7a/fA3QOu/owBMGPC1qFm1VZpXgfguAACrFICvpV7+p6UWAMmXfy38a8pQAABY+PA3GOv/S4MO6QZ1W8J3AQBYTs9ik6Vf/tMXAEmXf3391wrAkxQAANZ69Sfd4W+A139HAZg06JBoWvdRDoIBCKsXgAmSLf9221MKgMTLvxb+Y5ZTAABY6dWfCqJceefhr3fr/zG/rP+OAjCqz0f67xDs/huE8SoQAOsUgAkSLv9a+H9VLwCSL/9a+KcAALDc4W+7lw1b/zUvDzooerSYwKtAACxZACZIuvy/mq4ASLr8pxaAoRQAAGqt/87w7/nw17f1/2iO1v9Jgw7qBeDF/ns4CAZguQIwQeLl370ASLz8696hAACw9uHvqCCv/y8PtBvchYNgANYpABMkX/6dBUDy5V8L/xQAAFY8/M1s/R8T4PVfC/+TdQdEs7qPcBAMQHm99AIg9/KfrgDIuvxTAABY/fDXqPXfUQCe772Vg2AAlioAEyVd/jXTC39pLwAyL/+6ZRQAANY6/PXP+p+2AGR//Z+SoicHwQAsUgAmSrz8a+FfLwCyL/9a+KcAALDE4e/QIz6t/2MDuP47CsDLHAQDsEABmCj58p++AEi6/KcWgCEUAAAqH/6+67f1f7yf13/N1IH7xRNdFvJdAADqF4CC8i7/7gVA4uVft5QCAEDxw99hJwK2/k/I4fo/NaUAvDJwv2jBQTAAlQtAQbmXf80MvQBIvvzr4Z8CAEDlw98B2wO8/h/J8frvKADjEj7kIBiAknpFTpZ++Z+RrgDIuvxTAACofvgryfqv679f9Gz+Aq8CAVBOr8iXpV/+7balFACZl3/NEgoAAPUPfzNd/4cYv/5r4X9a/31iyqO7RK04DoIBqOWhNAVAxuVfC//2AiD78q+F/yX/oQAAUPPw1+D1P7MCkNH6rxUAzdAub/NdAADKFoCXJF3+NTPdCoCsy78W/jVPUAAAqHb4ezLI63/aApA+/E/OYv3XvJqiRR0OggGoVwBeknj5n+lWAGRe/jWLKQAAFDz8lWD9z6wAvNBrCwfBAJQqAC9Jvvw7C4Dsy78W/ikAABRa/zvoh79yr/+v9vtaTO/3tejVfDyvAgFQqADslnr5Ty0A0i//DoMpAAAUOvxNVwDkWv+18K+Z1ncHB8EAlCwAkyRc/jWzUguAzMu/ZhEFAIAah78P64e/ma//owO+/h/yfv0f6Az/qQUgJfxrZvT7WgzrzEEwALUKwCRJl38t/M8q/IWwSb/8a+F/0X9ELAUAgOSv/sQ7Dn/9uf4PNm79dxSAGf32ipZ1+nAQDECJAjBJ4uVfC//uBUDW5V8L/xQAAAoc/g7RD3/Ntv4fzNH6r4X/mf32iom9PuAgGID0BWCS5Mu/roijAMi8/GsWUgAAKHL4m1EBkHz9n5kigYNgABJLcCsAci7/Wvi3FwDZl38t/FMAAEh++PtMhoe/2V//x5lw/XeY3ne7qBXXgoNgAJIXgF3SLv+a19wKgKzLv8PjFAAAkh/+ZvmjP7O//r9gkvV/lm6PGN5xAd8FACBxAdgl9fL/mlsBkHn5pwAAkPzw91kvwr+/1v+JPq//B3K0/mvhX/Na3z2iFQfBACSUEDlJ+uXf7nNhk375fzsFBQCAzIe/Xv7GX/5e/18K4vqvhX/NixwEA5BQ7+KTpF/+tfDvVgCkXf4pAAAkPvy12vqveb3vbvFw83G8CgRA2gIwWdLlX/O6owBIvfxTAADIfvib7fX/mLTrv6MAzOzzpbiPg2AAEhaAyRIv/687CoD0y79mAQUAgHyHv2Zb/1/2av3fn+P1XzO7727xdHsOggHIVQAmS778py8Asi7/WvinAACQ9fDXxOv/lACt/3oB6GPXus7DHAQDkKgA7JR6+XcvADIv/w6PUQAAyHP4K+P6/4of1397AdglJvfcxEEwACn0Lv6S9Mu/ZnaRz4RN+uV/wX9E2fkUAAASHv7meP0/KvX6/0afXbqHm47lVSAA0hSAKRIv/1r4dy8Aki7/WvinAACQ6fA3s/V/lDTr/74cr/+OAvB6bw6CAchRAKZIvvy7FwCJl38KAAApD3+9XP/HmHT9f9VP6/+bKZ5pP5fvAgAwtYfdCoCcy7+zAEi+/OvmUQAAyHH4m9P1f6wZ1n+X139mZFgAvF//7QVgp3irz07R+j4OggHIUAB2SLv8py8Aki7/WvinAACQ6vDX7+t/2gJg/Po/Kxvrv6MATOn5PgfBAExeAHZIvfxr3ijqKAASL/+pBWAQBQCAuQ9/nQXAeuv/61ms/5o5fXaKPk3H8CoQAFMXgKkSL/9a+LcXAMmXf91crQC8Y/gHA4AVZPfwt4374a8f1//xEq//ngrAGw99wUEwANMWgKmSL/92nwqb7Mu/Fv7Lzv0/CgAAUx/+BmP9n2D4+r83R+v/nN47dM9xEAzAzAWgkLzLvxb+nQVA4uVfC/96ARhIAQBgtsPfgWnCf6DX/yPGr//9fF//tfA/N0UbDoIBmLEAFJJ7+de8qRcAyZd/3Zz/E2UpAABMdvj7eMrhr1nW/8wKgJHr/1su67+jALzywAZRiYNgACYsAK9IvPy/ma4ASLr8a+G/HAUAgOkOfyf7tv4P8df6n7YApA//k026/mvm9f5KPMJBMACTFYBXJF/+3QuAxMu/Fv4pAADMdvj79NBjFl7/9+Ro/dfCv+bNhz7nIBiAafRJUwBkDf/2AiD58q97iwIAwJyHv5n9xl+s/57Xf8383l+J59rP4bsAAEyhT/EXlQj/bxX9xKUASLr8a+GfAgDATIe/I4Z963H9f86k6/9Uk63/81NtF+3u681BMADTFIBpkod/ZwGQePlPLQADKAAAzHX4a471/5D36/9AZ/ifZoL1X7Og93Yxvcd6DoIBmKIATFMg/NsLgOTLv+5NCgAAcxz+pl//T/pv/R8s2/q/O8frv1YAFiRsF/0acxAMwFiPuBUAecN/agGQefnXwj8FAIDZDn+9Wf8zKwCs/1+lhv+3E7aLub0+E3U4CAZgigKwXerwP0crALIv/xQAAGY5/FV1/Z/ul/V/l8/rv1YA3k74Uoxp9ybfBQBgcAHYLn34txcAyZd/3RsUAADmOfz11/o/zq/r/0G/rf8zg7z+OwrAwoQvOQgGYGgBeFWB8D+n6McuBUDS5V8L/xQAAEYf/ma9/p9Qdv1/LQjr/8IUMzkIBmCiAjBdwvA/p5ijAEi8/KfqTwEAYPzhL+t/5j/6Myfrv2ZRwpeif+PRvAoEwPACMF3S8G8vAJIv/5rysykAAIJ/+Fst5fDXq/U/gx/9mZ31/wVl1v+dPq//WvhflLBNzOv1iagT14yDYACGFYDpEof/uW4FQNLlXwv/FAAAZjj8Deb6n1kByHz9PyD1+q8VgMUJ2zgIBmBYAZguefh3FgCJl38KAAAjD3/Nsv6/ZNL1/00/r/+OArC41zbR/r4EDoIBBLUATFcg/NsLgOTLv+51CgAAYw9/zbb+v2zS9X+OH9Z/zZJe28Ssbms5CAYQNH1LTFQi/LsXAEmXfy38UwAABHP9b59y+Jvz9f+Yhdf/tAUge+v/kl5f6DgIBmBEAZghcfifV+yjlAIg8fKfWgD6UQAABPfwd4TU6/9+/6z/ff27/i/wcv13FICFD37MQTCAoBaAGZKHf3sBkHz5171GAQAQnMPf3imHvzKt/1MUXf+XphjbZjbfBQAQlAIwQ4HwrxcA2Zd/LfxTAAAE+/DXm/V/lEnX/3QFoN8+Kdd/RwFY1utz0b4mB8EAglUAtkkd/p0FQOLlP7UAPEoBABCcw1//r/9HDV3/XzV0/U97/OsM/wu9WP+18K95jYNgAEEpANukD//z9QIg+fKvm0UBABC8w1/V1/8ZJl3/MysA7/T6XAxsPIpXgQAETN8SE5QI/ykFQO7lXwv/FfQCsMzwDwYAdQ9/h6ce/vq2/o+x4vrfJ7vr//Zsrf9LU8K/owAsfnCrqMtBMIAAFoCZCoT/+cW2phQAiZd/LfxXmPVvCgCAoBz+plv/h/m2/o81w/rvcvw7I8MCIM/6r3vwM/ECB8EAAuTRNAVA1vBvLwCSL/9a+K8wkwIAIHCHv8+khv/Arf8ZFwDj1/9Zkqz/7/T6TCx/0K4jB8EAAlwAZkkc/he4FQBJl38t/FMAAATj8Jf137UAmG/9dxSAtzqv5iAYQMAKwCzJw/+CSEcBkHj5Ty0AfSkAAPx/+Gvc+n9EivX/jYCs/1/6vP6v0H0qBjUcyatAAPxeAGYpEP7tBUDy5V83gwIAILCHv8Fc/ycYvv7v9Xn9f8vg9d9RAJZ1/5CDYAABKABfSB/+UwuAzMu/Fv4pAAACcfhr6fW/n7zrv2Zlj0/FhJav810AAP4vAEXkDv8LIj8UNtmXfwoAgEAf/ppt/c+sAEix/vcO7PqvhX/Nuz0+FR1rPsRBMAD/FYAi8of/t/UCIPnyr5tOAQDg38PfHK//Q/y1/qctAOnD/2STrv9zc7z+b/N5/bcXgE/EnI6rRKUoDoIB+K8AvCZ5+HcvAG/LG/415SkAAPx4+Ou5AFhp/d/j1/V/fpDXf60AaB6vz0EwAP8UgNcUCP+eC4Bk4b+iVgAeoQAA8M/hb0bhP7UAsP77bf1/O8Drv2ZVj0/E8u5bOAgGkGP9UguA3OHfXgDelj/8V3yVAgDAH4e/q7xe/58z6fqfWQGw4vq/KsWLHAQD8EsB+Fz68L8wXQGQNPxTAADk9NWfhimHv76u/6MDvv4f8n79H+gM/9NkW/8TMlr/v/B5/des7vGxrhMHwQByoF+JF5QI/+4FQOLwTwEAkPPD3x1ZrP8n/bf+DzZu/Z/u0/q/O+Dr/6IArv+OAjC//UoOggGInBQAFcL/wsgtKQVA8vBfcRoFAEBgDn9VX/9nmnT9z6wA+LL+a9Z0+1gMrv8srwIBEL7on6YAyBr+7QVAgfBPAQDgj8PfbP3oT8uu/7sMWf+X5XD9X5NSAN7tulnUq9iUg2AAIicFQObwv8i1AMgc/vUC0IcCACD7h78PZXL466/1f5xf1/+0BcCa6/9yH9b/Nd0+Emu7fSReajGL7wIAEL4WANnDf2oBkD38V3yFAgDA18PfU0Ff/18w6fr/mtnX/wyOfx3hf6UX678W/h061+zJQTAAkd0CoEL41wuACuGfAgDAl8PfxzI5/JVj/T8Q0PV/tqnX/898Wv8167p9JN5uv0JUiqrBQTAAkZMCIGP4dy8AEod/vQA8TAEArMvXw18f1v8MfuMvq6z/bgWg905p13+tAKzrtlU8UX8ErwIBEL4WAFnD/+LiH6QUAMnDf8WpFADA2rJ/+Dssk8PfYK7/EyVe/+eYdP1flcX6r4X/9d22itVdN3EQDED4UgBkDv/2AqBA+K9EAQAszLfD3+EmXf+dBYD131/rv6cCoJncYibfBQAgslMAZA//7gVA4vBPAQCsyrfD38zCv9nW/5e9Wv/3W3j9/zTb679rAdjQ7UMOggEIbwuACuHfWQAkD/+VplAAAGvy7fDX/+v/saCtDH0ZWQAAIABJREFU/1NMt/6nLQDyrP8bNF0+FIs4CAYQm7UBJV9QIvzbC4AC4Z8CAFiRD4e/HSZnGP5HsP6L2X39u/4vkGT91wrAxi4fiiEcBAOI9aYAyB/+l9gLgPzhXy8AvSkAgLX4cPj75DHW/4Cu/2lf/3GG/4UmXf8dBWBt5/c5CAYgMjOg5Hglwv+S4ptTCoDk4b/S5H9RAABL8d/hrzfr/yiTrv/pCkC/fRZe/z/xef3XvNdli5jSdAbfBQAgMisAKoR/ewFQIPxTAAAr8fHw96lTflv/x3hc/48auv5n9voP67/n9d9RADRdq3MQDCDOqwIga/jXC4AK4Z8CAFiJD4e/g3ZYcv2fYdL1f7EJ13+Hxe2XcxAMQGRVAGQO/0tTC4Dk4b/SyxQAwBp8PPw1ZP1PWwCMX/9n+br+98nu+r89W+v/UpOs/++nePL+Z3gVCIDwVABkD//2AqBA+NdUoAAAFuC/w9906/8w39b/sWZY/12Of2dkWADkWv/fydH6/7HP67+9AHwgNnTeKOpzEAwgNn0BUCH8uxcAicN/nFYAEigAgNp8PPwN8vqfcQFg/c/J+r8iiOv/pi4f6F5pOp3vAgAQrgamKQCyhn9nAZA8/MdNogAAavPv4W8w1/8JJl3/nQWA9d91/dcLQKcPxOZOH4huHAQDiM24AMgc/pcV3yRsKoR/CgCgOh8Pf02x/h+RYv1/IyDr/5dSrv+OArCs7TIOggGItAVA9vDvXgAkDv96AXiIAgCoKaeHv6csvP7v9Xn9f8uk6/+7Xq//H+Vo/d/cabP4oNNmMez+p3kVCIBwFAAVwv+yEo4CIHn4j3uJAgCoy8fDX9Z/z8e/Pqz/c41Y/90KQMbhf3WA1n9HAdjYcQMHwQCEewGQO/zbC4AC4Z8CAKgq+4e/vdwOf829/mdWAPy//u/x//rf23zrf2YFILvrv8OrTV/luwAAhL0AyB/+33EtADKHfwoAoKIcHP76c/0f4q/1P20BSB/+Jyu7/m8zbP1fn4P1X7NFt4mDYABiYMlxSoT/1AIge/iPe5ECAKgnp4e/WRUA86//U026/s+30PqvhX/NirZLOQgGLG5gqXFKhP93SrwvbCqEfwoAoJocHP5msf6nFgDWf7+t/29na/3/Qrr1/8MUT3EQDAirF4C5CoR/9wIgcfjXC0AvCgCgjpwe/mb39R8rrf+7A77+LwrG+t8j++t/+gLg3frvKACbOq7jIBiwsEFpCoCs4d9ZACQP/3ETKQCAOnJw+OuH9X90wNf/Q96v/wOd4X+abOt/gvnX//ezsf5rtnZ6X0xvOo3vAgAWNcilAMgc/pfrBUCB8F+ZAgAowh+Hv0Fc/wcbt/5nVgBY/31b/zdnsv5r4V/zUaf3RbfqD3IQDFi4AMyTPPy7FwCJwz8FAFBFDg5/pVz/D/pt/Z9p0vU/swJg9vXfUwFY2XaxqMxBMGDJAjBPgfDvLACSh//KEygAgDUPf6fkcP0/oez6n1kBsIf/XYas/8tMsf5v8Xn9t3tPDL//KV4FAizmsVJjlQj/y0u8J2wqhH8KAGDxw98grf+ZHf+y/vu2/i8PxPrfLXDrv+bjDu+JzW3XigYVm3AQDFi0AMyXOPyvcCsAEod/vQD0pAAA1j78Df7671YAWP+9X/8zOP51hP+VQV//0xaAjMO/swC8pxcAzaymr/BdAMCCBWC+5OHfWQAkD/+VX6AAAJY9/DXR+j/R5/X/QEDX/9mmXv8/k279d/ikw3uiBwfBgKUKwHwFwr+9ACgQ/ikAgNUOf3fmfP3P4Df+ssr671YAersXANZ/79Z/Lfx/0mGjWN1mEQfBgOUKwFapw79eAFQI/xQAwKKHv6z/fln/55h0/V9l8vVfKwCfdtgonuYgGLBQAdgqffhfWVIvAPKH/8rjtQKw1PAPBoBgHP4edwv/w026/r8k5fqftgCYa/1f44/1v4un9X9zttf/T1N8yEEwYKkCsEDy8G8vAAqE/8rjfxMVKQCAtQ5/JVv/X/Zq/d/vn/W/r4zr/6fZXv/XmWD913zWYaN4rfFUvgsAWKAALFAg/K8sudGlAEgc/qtoBeBBCgCg/uHvaa8LgG/r/7Ggrf/pfvQn63+O1/8NBqz/9gKwQfdA9R4cBAMKe1wrAAqEf2cBkDz8VxlHAQBUP/wd5Hr46yH8j5B4/X/FpOt/ZgWA9d++/mvh//MOG8TaVgs5CAYsUwA+lDb8v6sXAAXCPwUAsMLhb7DX/6MWXv/Tvv7jDP8LlV//N/m0/n/ezu7ZOsN4FQhQvgB8KHX4dy8AEod/vQA8QAEAVD38fdL18DcH6/8oadb/fdKs/4v9vv5/4pf1/70gr/+OAvBxq9UcBANKF4APpQ//zgIgefivMpYCAKh9+BuY9X+MSdf/zF7/Yf33bf3fFIT1/4t263Wz46fwXQBAQY+Xel6J8G8vAAqEfwoAoO7h71NehH9/rf9jzbD+u7z+MyPDAmCl9f/jgK3/HwRg/XcUgG3t1osHq3IQDKheABZKGv7fLbnBXgBkD/8UAEDlw1+j1/+0BcD49X+Wr+t/n+yu/9uztf4vlXj9z6wAZGf935Zifau3OQgGFC4ACyUO/6u0AqBC+K/yPAUAUPHw177+n87e+j/Meuv/6yZd/9+x6Pqv+bLdOjGSg2BAyQKwUPLwby8ACoR/CgCg6uGvcet/xgWA9T8n6/8Ki6z/29qt0wvAZ61WiXgOggGlCsBCBcK/ewGQOPxrKvWgAAAqHf5mvP6fMmz9n2D4+r9XufX/Xa/X/4+Cuv5/5If1X7O93TrxZvzLfBcAUMTg1AIgd/h3FgDJw3/VMRQAQL3DX7Ot/0ekWP/fCMj6/2XO1/8HZV3/0xYA79Z/RwHY3notB8GAUgVgi/Thf7VeABQI/xQAQK3DX2nX/0HmW//f8nb99/CjP1n/06//mRUA9/BvLwAbmi/gIBhQqAAskjz8ry653qUASBz+KQCAwoe//lz/h0i8/vfzz/o/16Tr/2op1v+N2V7/v0oxss6TvAoEKFAAFikQ/leXchQAycN/1dEUAECJw99hxzNd/z0XAGPX/0lBXf/3+HX9n2/S9T+zAiDT+u8oAF+0epeDYECxArBY0vBvLwAKhH8KAKDo4a8p1/+0BSB9+J+s7Pq/zbD1f71J1/8vvFj/d+jWiLc4CAaUKQCLJQ7/a9wKgMThXy8A3SkAgNSHv8NPK7v+Z1YAWP+dx7/ZWf83mnT9/zKD9d9RAHa2XiN6Vu3OQTAgeQFYLHn4dxYAycN/1VEUAEDqw9/HdmZ7/X9W4vV/mknX/8wKQPr1/wsLr/8bvF7/7QVgTWoBeL/5fA6CAYkLwGIFwr+9ACgQ/ikAgLzrf1vt8Nfn9T9tAcjB+j9YtvV/d8DX/0WmXf8/lHL9dxhVZyivAgESeqL0GCXCv14AVAj/FABAscNfP6z/owO+/h/yfv0fqMb6v8Sk6//7kqz/ml2tV4svW6wQ8RUbcxAMSF4Alkga/teWWpdSACQP/1WfowAA0h7+Wnz9n+6X9X+Xhdf/LenC/2YTr/9aAdjVcrWYV28S3wUAJC4ASyQO//YCoED4pwAACh3+Srn+H/Tb+j9TuvX/c9Ov/1sCtv6vz/b6r4X/3Sl6cRAMSFkAlkge/t0LgMThv5pWALpRAACZDn8HaIe/flv/Tyi7/r9m0vV/mcTrv7MAGLP+OwrAB43nchAMSFYAligQ/p0FQPLwX20kBQBQ4vA3SOt/Zj/6k/Xft/V/eSDW/27qrv+7W64Se1quEqNrcxAMyGKIXgDkD//2AqBA+KcAAHId/g7VDn/9uf5n8KM/s7P+v6DM+r8zuOt/Bse/jvC/Mujr/wdSrf9a+Nd81WK5aMxBMCBdAVgqcfhf51YAJA7/1Ub+U1TqSgEApD78NdH6P9Hn9f9AQNf/2aZe/9O+/uMe/leZdP3/2C/r/zqf1n/N3parxPx6L/JdAECiArBU8vC/rtTalAIgefiv9iwFAJDl8HeYFv4lW/9fMun671YAWP/9sv5/GsT1f2+qd8VDVbtxEAxIUACWKhD+7QVAgfBPAQDkO/y1FwDWf3+u/3NMs/5/Kv/670UByHj9X5ut9V8L/1+3fFdsaTyHg2BAsgKwTNLwn1oAZA//FABAjsPfzNb/4X5f/49ZeP1PWwDMtf6v8cf638XT+r9ZuvX/6xTP1x7Cq0CAJAVgmcThf33ptcKmQvivNoICAMh0+OvN+j/CpOv/y16t//v9s/739e/6v8Ck6/86i6//mn0t3xW7WizjIBiQoAAskzz82wuAAuGfAgCY//DX4/r/lNzrf7of/cn6n+P1f4NJ1/9tAVz/tQKwr+VKsYCDYMDUBWCZAuHfvQBIHP41cV0oAIAMh7+qr//pCkC/fRZe/z/xy/r/nknX/8wKwC5NNtZ/Lfxr9rdcyUEwYFJDS49WIvyvL70mpQBIHv6rP0MBAMx8+Gvs+n/U0PX/VUPX/7THv87wv1D59X9T0Nf/HTlc//en2Br/FgfBgFkLQAn5w/8GvQAoEP4pAICZD3/P+H39HyXx+j/DpOt/ZgWA9d+39X+XD+u/5kCzFWJs7Sd4FQgwaQF4R/Lw714AJA7/FADAvIe/wVj/x7D++339X2rS9X+T0et/u8Cu/wea2QvAnqZLOQgGTFgA3lEg/DsLgOThv/rTFADAnIe/adf/00FZ/8eaYf13Of6dkWEBsNL6/3HA1v8PTL/+r872+q852GyFWFSXg2DAnAXgfanDv70AKBD+KQCAGQ9/z5hs/U9bAIxf/2f5uv73ye76v90y639mBcDI9X9PNtZ/RwHQ9K7ahYNgwFQF4H3pw797AZA4/OsFoDMFADDX4W8O1/9h1lv/Xzfp+v+OxOv/RyZd/7/OYv3XHGq2XHwS/yYHwYBJDC09Sonwv7H06pQCIHn4rz6cAgCY7fDXLOt/xgWA9T8n6/8Kadf/90y7/u9vlnEB0IzjIBgwVQFYLnn4txcABcI/BQAw2+FvSgHwuP6fMmz9n2D4+r9XufX/Xa/X/4/UXv+zOP7Nzvp/MCX8a/Y1XSyacBAMmKIALFcg/OsFQIXwTwEAzHX4a+71/4jx63+/rNf/NwKy/n+Z8/XfrQBkHP5Xm3T9/0TC9f9wiiV1J/JdAMBgT7oVAHnDv7MASB7+KQCAmQ5/MykAEqz/mRUAI9f/t7xd/3t7t/6PazNXjG8z18D1f6vh6/9nhq3/73q9/tsLwDviSLN3OAgGTFMA3pM6/L+nFwAFwn/1pygAgFkOf4Oy/g/x1/qftgCkD/+TTbr+z83B+r+g5yeiflwr3cKen1hw/d+YYfj/wqTrv6MAfMpBMGCCAvCe9OHfvQBIHP5rUAAAkxz+erf+ey4AVlr/9/h1/Z+fjfV/UKNxoniJaN3gpuMCuv5nVgBY/71f/zXfNHtHjK89mFeBAAMLwAoFwv97UY4CIHn41wtAJwoAYIrDXx/W/8x+4y/Wf9/Wf08FYFbXDaJSmVqpBaB8mVri9a7rg7b+6wWA9T/b67+jABxouoiDYMAgw9IUAFnD/3tRq4RNhfBfYxgFADD+8Nd/6/9zJl3/pyqw/neu82hq+HfoVudR/6z/PbK//qcvAOZY/78Myvq/Mlvr/zfNlumW1B3PdwEAgwvASonD//tuBUDi8E8BAEx8+CvF+n/I+/V/oDP8T5Ns/R/Xfk668O8wsc1bplj/3w/q+r/B6/X/KxOs/1r4P9rErg8HwYBhBWCl5OHfWQAkD/96AehIAQCMO/zN6fp/0n/r/2Dj1v/pPq3/uwO+/msWPGQ//C1RIiZD8XGtxJKeH7P+e7n+7zRo/XcUgC/iX+MgGDCgAKxUIPzbC4AC4b/GkxQAwJSHv35Y/0dLvP7PNNH6P7DxWFGiZEymHm/yvIXX//U5Wv93B3H9P6ZbKl6o/hivAgFBNCxqlBLhP6UAyB/+7QVgieEfDMCah7+s//5b/3cFZP2f1X2DiCtbK8sCUKFsLfFm57UGrf9b0oX/zZZZ/1dka/3Xwr/mcOOFoknFeA6CgaAWgI3Sh/9NWgFQIfzXePIfFADAbIe/QVr/x/l1/T+o5Prfqc6jKSG/TBZiRNfafVIKgPnW/8wKgNXWf83xJkvF0jocBAPBMizqOSXC/6aod4VNhfBfYygFADDm8Nff6/+JHK//L5h0/X/NoPV/bLu5qQG/ZBYcf97Etm9Ksf47C4C51v+9QVj/j6c40WSJ6BPHQTAQrALwrgLh370ASBz+NZUpAIB5Dn9Z/7Nc/2cHYf3XDn/rxbV0hvxSWUj58xrGtRRLu2/13/rfLTjr/8d+Wf/X+X393xeg9d9RALbFz+IgGAiCp9IVADnDv7MASB7+a2oFoAMFAAju4W8A1v8MfvSnNdf/nX5Z/7XD3/TBP9YD9yLwRMMxWRaAwKz/Hyi//mdWALK7/jtM5CAYCHIB2CBt+LcXAAXCf80hFADAyMPfp0y6/k/0ef0/IP36P7Pbev3wN/PQ77kMVClbS7zVcU268L+K9d/v6/+hHKz/mpNNlogjDReIphwEA0EqABukDv+b3QqAxOGfAgAE4fD3oVXSr/8vmXT9fzMA63+n+/qmC/+lNKU9yKAEdK3VJ8v1f41J1/9PLbT+n4zXLBbv1BnLdwGAgBeADdKHf2cBkDz8UwAA4w5/ZV7/X/Zq/d8f9PV/Tg7X/7Ht3nIL/87gXzYTGRWBMmJSyzeytf6vM9v670UByHj9X2v8+t/Mu/VfKwDfxi/WPcJBMBDQArBKgfC/OWqlsKkQ/ms+QQEAgnf4m/n6P9zv6/8xC6//aQtA1uv/fO3wt3ILZ/jPMvhnXAQcf32Dyi3E8q5bA7f+d/G0/m8O6Pq/zaTrf8av/2S9/jsKwI76M0VVDoKBoBSA1ZKGf7cCIHP4pwAAgTz8nZqj9X8E67+Y3de/639mBWBgo+c9rv6lHaLSSPnfpysCKSXgifhRrP8Grf9Hs7H+a07FLxYvchAMBLwArJY4/H8QnVIAZA//egFoTwEAAn/46/uP/jT7+j9F4vV/odvhb+2Mw78e9stlIeMSULlsLTGv/apsr/+ZFQDWf2/X/2Vu4f94Juu/Fv5PxS8SxxrOE03LchAMBKoArJY8/OsFQIXwX3MwBQAIzOHv2jTh/4zf1/9RJl3/0xWAfvtMv/53qqMd/rqHf/vin1Xwdy8B7t8NsH8XoFvt3jle/98z6fqfWQHYpTHx+p9RATgdv0is5CAYCEgBWK1A+HcvABKHfwoAEIjD30Hpwr+x6/9RQ9f/Vw1d/7/Kcv1/Xj/89Sb8l9dFpXD8z+n+vAxKwMstZhuw/m8K3PrfLuPwv0OG9b+J5/Dv0DeuMwfBgB8N1wuA/OHfWQAkD/96AWhHAQD8efjbP93hL+u/a/ifYaL1Xzv8rVu5RRbhPyX0R3uQURFwLQGlYkXDii3Eys5bLLf+7/Jl/W9p3PqvORO/SOzkIBjwq+FRI5UI/1v0AqBA+K/5+D9EFQoAEMDD3+Cs/2OsuP73ye76vz3d+j+g8fNu7/1nGP6jveO5BNjvAYY0es4v6/8mn9b/902x/u8xZP1PWwDSh3/3ArBQN6nyIF4FAvxcANZIHv63RK9wKQASh/9aFADAr4e/Tww7mcX6fzp76/8w39b/sWZY/12Of2dkWACMXf8dv+Ov2/qfZfh3lD1n6fNcAtxfBdJ+h+AF7Vf5ff3/wPTr/2qP4f9rE67/jgJwvOFcDoIBPxaANQqEf2cBkDz8UwCAwB7+mmX9z7gAGL/+zzJw/dcOf93Dv2sByDj4R6eRURHwWAJSDoIDvf5nVgBY/71b/8+mWFXjeb4LAASgAKyVNPzbC4AC4b/WYxQAwF+Hv0OHn5Vm/Z9g0vX/9SCt/9rhr+dXf9KHf/dj0DSyKgFpXgWa0uL1oK7/H5lq/V8lxfrvKADn4t/mIBjwcwFYK3H4/9CtAEgc/ikAgP8Of4dKtf4fkWL9fyMA6//8hz4XdeNaeHz1J134j/FO+hLg/Hu6vgrUsGJzsbrzFoPW/7QFwDzr//6Ar/9LsrX+a+Ffs6suB8GAvwrAWsnDv7MASB7+9QLQlgIA5PTwN6P1f1im6/8pC6//e31e/9/yw/o/oMmYlPU//as/7j/tJ23Id/0MpP88pCsBmbwK9GSj59Rc/1v7b/0/aIL1/1z9t8X5+m+LlzkIBnJcANYqEP7tBUCB8F9rEAUA8MfhL+t/Ntf/fsas/2kPfz2/+uNt+M+8BHh6FUg7CF7YfiXrfzbW/8N+Xf8Xe7X+OwrAt/XeEs05CAaEr57OoADIGP4/jF5uLwCyh38KAJDzw1+P6/9wOdf/zAqAFOt/b8/rf/rDXw/hP4Ol1z3wZVIC0twEeHoVqHuN3oav/58Ztv6/m+P1/5sgrf+aC/UXcBAM+LEArJM0/OsFQIXwTwEAcn74a8j6P8Rf63/aApA+/E826fo/N5vrv/PwN/NXfzyFf0fwT8tzCcjgVaA0B8FTW7xm0Pq/McPw7ywArP/OArBALwCafhwEAyKnBUDm8L9VLwAKhP9aAykAQM4Of31b/z0XACut/3v8uv7Pz2T9T3v4692rP2nDvzefkYpZvgqU9iB4XcfNpl3/9QLA+p9qb93pHAQDsb4XANnDv0sBkDv82wvAYsM/GICsh7/+Wv9TCwDrv9/Wf9cCMKDJWM/rf47CfyYlwOOrQO4HwcMajDR4/d/g9fr/lUnX/2M+r/+LvF7/L+rmi8mVB/AqEBCb/QKgQvjfGqMXAPnDf+2BfxdV2lAAYHXZO/ytknr4G7j1/zmTrv9TA7b+7w7Y+p/Z4W9Wr/54F/49F0ZvXgXSDoIXt19h0fV/ZUDW/xMBWP8dBeB0vTdF87INOQgGYr33jF4A5A//9gKgQPivPYACAKvz/fA3mOv/6ICv/4e8X/8HOsP/NAnWf68Pf3MU/rP+3GT2KlCPGgmp639mBYD137f1/1s/rf+XUqytMZrvAgCx3nsm6lklwv9HMe+4FACJwz8FANaW/Vd/GqQe/vp7/T/pv/V/sHHr/3STrf/eHf56/z63NwXA091IVgfBr7aYmWH432zS9X+nBdd/RwG4XH++6FeuIwfBQGz2CoDs4d9ZACQP/xQAWJvvh7+s/96t/zMNXP/n6Ye/rbM8/M35qz/++S5AfMXmYn3H9wxc/9fnaP3fLfX6n7YAeA7/9gIwT+yr+woHwUCs9wVAhfBvLwAKhP/a/SkAsKqcHP4Gev0/YeH1f5ff1n9fD38zC//OVzk8fX68LQEZHwQPbzBCmfV/b7bW/xVBW/9P+2H91wrAlfrzxNTK/XkVCIjN2jPRzyoR/t0KgMzhnwIA6/L98Nds6/84v67/B5VY/7N/+Jv98J9VCfD0WcrqIHhp2+Ue1/8tEq//+0y6/p/1Yf13FIBz9d7gIBiIzU4BkDv8f+woALKHf70AtKYAwGqyv9o+kHr4a/71/wWTrv+vBXH99/fhr+flNrMS4NurQA/WSPB6/XcWAJXW/+WGrv/nvVz/HdZzEAwI7wqA/OFfLwAqhP/a/SgAsBrfDn+HpIR/Gdf/iT6v/wcCuv7PDtD67+/D36wDWzZKgJcHwdObzfRp/f/YL+v/Oguv/2+nC/8XPaz/mqv3z9UN4CAYEJl5JnqEEuHfvQBIHP4pALCenBz+BmH9z+A3/rLK+u9WAHrv9Gn99/fhr/drbfaLZVYHwe+135jj9f9Tk67/BxRZ/x0F4OB9HAQDZTIxIoMCIGP4/zhmWUoBkDz8a6q2+v/tnQl0VFW+r4t5csAZBFIZK0lVwpAwJMxDGAQVJxQBxREBmVGSMCUMIoqCaGs7tD2o13Zqe9DWdp4QEUFmEARCJtTbffu+d++7b93Xenu/dU6RoSqVSlVyqvbZ+3z/tb6lq221hFPnfL9f7X/l59IvDAA7L/5G0v77AwDtv5Xt/5ZmtP83Wbz4G52kWb8Q7JT2P9zy785h9m7/j59hbfoMjgIBuCMLAKrK/5/MAKCB/PedTgAAJxH94u/ttYu/0bX/c23a/q9Usv1/L6L23+rF3+bJmbULwb8oeMaR7X/o4z8xaP/zomv/wwWAI/1YCAZIiCAAqCz/gQFAYfknAIBzaN7ib137f0DL9n91RO3/Z0q0/+MtXPxtfjtr7VGgq7OubXn7H0EACN3+P2+b9n9n3Nv/4AAQWv7rAsAWcSJni3gxaxGfAgC4Gw8Aqst/XQBQXP4JAOAMWrr4K7v9/ypu7X+pTdv/rU20/7FZ/G3+9WblQvD9wzbEpP1/m/bfsvbfkP8aWAgG8IQMADrIvz8AaCD/facRAMAJNG/x16r2fz7tv9g0zdr2v34AiM3ib8uuN6sXgl8d99uYt//hAoCz2/9HI2r/DU7mbBHb+5aKzB5eFoIB3I0HAFXlv2EAUFT+CQCgPy1d/I2i/Z8Tj/Z/p4Pb/+DjP9Yv/lp3JMPaheD5A+fHvf1/zzbt/9MB8r/Lxu2/EQBO5mwW61gIBhCNBQCV5f+NhKfqBQCF5d8MACMJAKAzzVv8DRcArG7/F9u0/W8QAGZ8arv23x6Lv/FZCH624ElJ7f9ztm7/v7ZR+2/If1nOZvFNv01iBAvBACI4AKgu/3UBQHH573sjAQB0xurF3/i0/0tt2v6vt2H7b4/F3/gcBbom61rr2/+xCrf/Q0LL/17J7X/ZGV7KWsinAADuugCgg/z7A4AG8k8AAH1pxuJvnn/xl/Y/svZ/g+T2316Lv/FZCH5g2AYp7X/jASBM+z9St/Y/OAA0Lv8Gp3IeFjOTxrMQDOD2iAU1AUBx+TcDgA7yTwAAfbF68ddu7X9wAJDf/m9sbvs/Ndr2/x0bLv7GbyH4dwUvSG//P5LS/j+lTPt/6kwA+JKFYABRGwA0kP83awOA4vLfdyoBAHQkeukafWbxN/L2f1907f/s5rX/99qh/a+3/LvMYQurAAAgAElEQVQhZACIf/tvz8XfeC0E32279v8Tm7b/+yW2/wblOQ+L9enTbXY9AsSfBb3mayH//gCggfwTAEBPmrH4O/drJdr/0AHAWe2/vRd/47MQ/OuCJ23d/n8W8/b/yWa1/wfj2P6Xn+FYvwdZCAbHs6DXPC3k/82EJ+sFAIXlv58RAEYQAEAnom9br7z+eWXb/2Kbtv8PxrD9t/fib3yOAl2bdW3s2/8mln91aP8PN6v9fyTi9t+gIuch8XLWAptelwByAsArisp/XQBQXP773UAAAJ1o5uLvvED5n6VU+79Difb/IYvafzUWf+OzEPxg/jraf4vb/28sbv9rAoDBLSwEg4NZUC8AqCz/fzYDgAbyTwAApy/+Tr/tgybb/9lh2/+9Dm7/P252+7850va/XgBQZ/E3Pp8C5KcOE78veKG2/X/Tpu3/5w5v/w0qcx4SX2WXsBAMwukB4BXF5b9eAFBb/gkAkOD0xV87tP93Ktz+z7Cm/X8kgvZfrcXf+CwEL8y9u+74jyLt/xeWtv8/V6L9NwJAZe+HxIYUFoLBuQHgFQ3k/0wAUF/++13/rwQAcOzi761z90TW/s8N3/7Ps2n7Hy4AWN/+fxTT9n+Dkou/cVgI7tZbPDf6CYnt/69a3P5/adP2/1iT7f+WiNt/Q/4re28SJ3tvZCEYHMlCMwCoL//+AKCB/BMAwNGLv1q1/8EBoKH8lyjc/qu5+BuvheBrGsj/Wwq3/1/ZtP0/3sL2v6r3JpPXvPMVu14BrA8Aryoq/2/VBADV5d8MAMMJAOC8xd/b5x20uP3fo1z7v8am7f+jQe3/UqUXf+OzEPxQ/rqw7b8ZAGj/LW3/T0bZ/tcEgOrem8QtSeNsvq8CELsA8KrC8v9Wws+FSwf57zeFAAAOXfyNUftfGwBo/y1p/9Vf/I3fQvCfCp6LuP1/V7v2/wnp7X+4AFBf/g12Za9kIRgcGQBeVVz+/QFAA/knAIATF39j3/4HBwAntf8fWtr+67H4G5+F4EW5c5vd/r/f4vb/lzFp/3cr0f5vjqr9r+79oDjd+0FxPwvB4LAA8KoG8h8YABSWfwPvMAIAOGzxV2L7vyTm7f/2yNv/mXXyv86G7f+GK36r0eJvfBaCnx/1hNbt/x4N2v+aAHCq9/1iVOIADa5hAE+TLKoNAGrL/1vumgCguPznXEcAAGct/irV/t8ur/2/zwbtv16Lv/E5CnRd1jU2aP+fjVv7v8927X+9ABCm/a/hde88Ta5jAE8EAUB9+X/bDAAayD8BABy3+Ouo9v9zy9r/++Pc/i8d+4iGi7/xWghe26L2/0Ol2//Hbdn+NxYADG5lIRgcwKJed2sh/4EBQGH5JwCAkxZ/49/+79a2/Q8XAPzy/0Gz2399F3/j8ynA0NRh4s2CX1vW/n/slPZ/QHzb/xp2sxAMDgkAr2kg/2+7nzgTABSX/5xrCQDgoMXfM+3/nTZt/8Mt/zqp/dd78Tc+C8GLc+fErP3/1Kbt/wEF2/8aWAgGpwWA3ykq//4AoIH8EwDAKYu/Utr/WS1r/4u0af/fj7j9d8bib3wWgl8c+nhc2v9wAUBm+39Iavv/UMTyz0IwOC0A/E5h+f9LQABQWP7NADCUAAAOWPxtEADUa/+XN7v93xbT9n+The2/MxZ/43MUaErmNQ5u/3/WQP6P2LT9ZyEYnBQAfqe4/NcFAMXlP+caAgDov/grv/3fFZP2f6VN2/+Hm9n+O2vxNz4LwY/klTqn/c+Lrv0/apP2n4VgcEoA+J0G8u8PABrIPwEAHLH4G0X77w8AtP9Wtv/hAoBzF3/jtxD81qhfxa39D7f8u3OYrPb/Mdu3/ywEg+4sNgOA+vJvBgAd5J8AALov/ra0/Z9refv/lYPb/+AAUNf+O3PxNz4LwUtz50hr/0Mf/3FS+78pYvlnIRicEgBeV1j+33E/fiYAKC7/OVcTAEDzxd8mA0B07f98m7b/qyNq/z+zpv2fZm377+zFX2uu+XBHgbzdeouXhj5qi/Z/p03b/29t0P6zEAxOCACvKy7//gCggfwTAEDnxd8Wtf9z1G7/SxVq/529+Bufo0A3ZF5ty/Z/l03b/xOS2n8WgkHnAPC6BvIfGAAUlv9cIwAMIQCApou/tP+17f9am7b/LP7GbyF4a16p+MAIAI5t/x9tdvtfFqf2n4VgcEYA+IWy8l8XABSX/9yrCACg5+Kv/dv/nQ5u//0BYAuLv3FfCH531LMS2/+nG2//h6jV/ocLAC1t/1kIBr0DwC+Ulv93zQCggfwTAEDbxd8IAoDV7f9iZdr/T23R/s9g8TfuC8H39JtdLwBE0f6PjH37Hy4AOK39ZyEY9AwAv1Be/gMDgMLyTwAAHRd/7dL+L7Vp+7/eBu3/fSz+SlsIfnXwozZo/4MDQEP53+vg9p+FYNCNxb3maiH/7ybWBADF5T93MgEANFz8tWn7f68d2v96x382hAwA8Wn/WfyVuxDcMADYv/3fb1n7v9XS9r8yRu0/C8GgWwD4vQby/27iz4RLB/knAIBui7/+AKBS+x8cAOS3/xub2/5Pjaz9Z/FX/kLwY3klTQYA2v/mtf9WBwAWgkEHltQEAMXlvzYAqC7/ZgAYTAAAlRd/cwIWf2+Puv3fF137P9t57f+DFrb/LP7aZSF4qHhvxC8ayP8njmv/H7F1+89CMGgVAHqpL//vGQFAB/nPvdIIAE9IvzAArFj8DdX+z7Jp+1/o0PafxV/7LAQv63dXk+3/ZzFv/59sVvt/0EHtPwvBoANLEuZqIf/+AKCB/Ode+QMBALRZ/G15+79XWvtfLL39/zjm7T+Lv/ZbCH5t8Nao2v/Pbdr+H9a4/WchGHQJAH/QQP4DA4DC8m/gyycAgPqLv+q3/zuUaP8fakH7z+Kv/Y4CTc28Ssv2/xvN2n8WgkF1liTM0UL+6wKA4vLf/woCAOix+BvxV38q2v6HCwAy2//NEbb/S8ez+GvXheCfDShpZPlXn/b/WJPt/xZbt/8sBINOAeCPCsv/+4mPCZcO8k8AAG0Wf+3Q/t+pcPs/w5r2P1QA2DKFxV87fwowPHWo+HDEM1G3/19Y2v4HBwDafxaCQccA8EfF5T8wACgs/wQAUHPxd23z2v+54dv/xgOAk9r/jyxt/x81Fn+HsvirwkJwS9v/wABA+x9LWAgGFQPAHzWQ/7oAoLj897+cAACKLf5mh1j8jVH7v0BK+x8cABrKf4lC7f99k1n8VWUh+PeDt1ja/n9l0/b/uMLtfw0sBINqLA0IAOrKvz8AaCD/BABQb/H3BWnt/yKbtv9rbNz+s/irzlGgGzOvCvjBX1a3/7tt2v6HCwB2bP9rYCEY1AwATyst/x/UDwAqy78ZAPIIAKDw4q/W7f/2ZrX/62zS/rP4q95C8M8HrJLc/j8hvf0/ZfP2vz4sBINaAeBp5eW/NgCoLv/9JxEAQKXF34/i3P5/bV37f7tq7f+HLWr/N7P4q+xC8MfDnqL9ryf/FTZs/2tgIRhUCgB/0kD+P0h8VLh0kH8CACiz+Dthra3a/yV2av9n2q/9Z/FX3YXgwt53xrz9DxcAaP+jg4VgUIF7QgQAFeU/MAAoLP8EAFBm8ffuvbT/zWj/77Ok/f8gqvafxV/1F4L/kLclRACIXfu/z+r2f0BL2/+Hbd/+18BCMKgYAN5QVP4/TKoJAIrLf/+JP4gsAgDYffH3BmPx95BS7f8yS9v/zy1r/++PQ/vP4q8OC8GTpbb/DQOAPdp/OwYAAxaCQaUA8IbC8u8PABrI/wACAKiw+Dv/kOT2f7e27f8DFrf/i1n81WYh+Mn+K2n/bd7+14eFYFAhALyhuPwHBgCF5d8MAIMIAGDfxd9p5uJv6Pa/LgDQ/lvV/m9qQfvP4q9+C8GfDnvSBu1/XQCg/W8cFoLB7gHgDQ3kvy4AKC7/Ay4jAIDNF3/t0P6H+OrPaNr/Im3a/8AAwOKv/gvBy3vfYQYAme3/Iantf/Dyr3zRDwcLwWBX7kmYrYX8+wOABvJPAAA7L/7eYi7+Brf/B5Vv/5c3u/3fZtv2/77JL7H4q+lC8J/yNtuq/Q8MALT/9WEhGFQIAG8qLP8fJW2tFwAUln8CANh68dch7f9Km7b/D0fR/rP4q+9RoOmZk+Pb/udF1/4fjVv7v0m64EcCC8Fg5wDwpuLyXxcAFJf/ARMIAGDPxd/bTPlvfvvvDwC0/1a2/40FABZ/9V8Ifqr/irr2f5is9j84AISW/28d2v7Xh4VgsGMAeFMD+fcHAA3knwAAtl38tbj9n2t5+/+Vg9v/ugBgLP7msPjriIXgbcOepP1XBBaCwW7cWxsA1Jb/2gCguvybAWAgAQDstfgbWft/oEXt/3ybtv+rI2r/P7Om/Z/W8vafxV/nLASv6H1HbfsfLgDQ/tsDFoLBfgHgSeXl/2MjAOgg/wPGEwDAhou/Vrb/c9Ru/0tt3P6z+Ou0heBM8VbegwHHf2rkf5dN2/8TDmz/a2AhGOwYAP6suPz7A4AG8k8AALst/tL+h2//GwSAGZ9Ka/9Z/HXeUaAZmZNt0P4/2uz2v8wh7X8NLASDnQLAnzWQ/4+THqkXABSWfzMADCAAgI0Wf5Vr/3dKbf/XS2r/Wfx17kLwM/2XN97+D1Gr/Q8XAFRu/+vDQjDYMQC8paj81wUAxeV/4DgCANhn8bd57f9+y9v/xQq3/xvi0P6z+Ov0heB8sX3I4422/1/Htf3famn7X6lR+18DC8FgtwDwlsLy/4kZADSQfwIA2Gnx9zabtv9Lndj+T228/WfxV0WsXQhe2fuORgJAQ/kPDAC0/zJgIRjsEgDeUlz+AwOAwvI/cNz3BACwxeKvNe3/vuja/9nNa//vtUP7X2/5d0PIABCb9p/FX5WxdiH47bwHm9X+NwgAtP8xh4VgsEMAeEsD+f8kuSYAKC7/A8cSAMAei78h2/95arT/oQOA/PZ/YwzafxZ/Vcbao0A3ZV5hSft/0Kbtv04BwICFYJDJMjMAqC///gCggfwTAECmXOSeWfwN1f5HcvyH9j+69v/BFrb/LP7qgLULwb/sX2yT9j/4B3/R/oeChWCQxbKEu7SQ/0+St9QFAJXl3wwA/QkAIHfxN5L2fxbtv+Xt/0NRtP8Ps/irCdYvBH855GcBX/1J+29fWAgG6QHArbb8f1oTAFSX/4EFBACww+JvM5d/G23/90pr/4ult/8fN7v93xym/WfxVyesXQhe1fs2y9r/cAGA9t8aWAgGaQHArb78mwFAB/knAIDsxV/92v8d8tv/Gda2/2tZ/NUQaxeC3xmwMSbtvz8A0P5bCQvBIINl7ru0kP/AAKCw/BMAQP7ir4Vf/alA+x8uANi1/WfxV0esPQp0s+eKuLT/x5ps/7fQ/kcAC8EgLwA8obT81wUAxeV/4JjvRTYBACQt/tq2/b/TqvY/OAA0lP8Sm7b/NQFgEYu/GmPtQvCv+xSGCACxbf/DffUn7X94WAiG+AeAJ5SX/8/MAKCB/A8iAECcF3+nBiz+xqb9bzwAOKn9/6jF7T+Lv7pj7acAo1Lzxa68x2j/FYGFYIgny9yztJD/wACgsPybASCXAADxX/yNZ/tfGwBo/6Nq/6ez+OsArF0IXu27tUEAoP23LywEQzwDwF80kP/PkjefCQCKy/+g0QQAiNfi71hxc8Dir7z2f5FN2/81MWv/P4y6/Wfx10lYuxD83oCNUtr/cAGA9j80LARDvCgMCgCqyr8/AGgg/wQAkLH467z2f3vk7f/MOvlfJ7H9H8vir4OweiH4clu0/+ECAO1/HSwEQ7wDwDsKy/+2gACgsPybASCHAACxXvy9VdxSX/7nx7v9/9q69v92ee3/fXFq/1n8dSLWLgT/pk+h7dp/MwDQ/oeEhWCIVwB4R3H5rwsAisv/oFEEAIjP4u8tNm3/lyjc/t8fg/afxV+nYvFCcEK++Drv0TPy/7gt238CQB0sBEM8AsA7Gsi/PwBoIP8EAIjH4q+92v/dDm7/P2iy/Wfx18lYuxBc6ru15e3/gJa2//UCAO1/WFgIhlhSFBQAVJX/2gCguvwTACD2i7/7gtr/Q0q1/8ssbf8/t3X7z+IvWL0Q/MGAjbT/isBCMMQrALyrsPx/nvKwcOkg/4NGEgAgtou/urX/RTZt/x+woP1n8ResPgo003N5QPt/SGr7H7z8K1+67QYLwRDrAPCu4vLvDwAayD8BAGK7+Hs4ovb/Tke2/9ti2v5virL9Z/EXYrUQ/Hz2sgbHf2rkPzAA0P7bARaCIVYB4F0N5D8wACgs/wQAiNvirx3a/xBf/emU9j8gAFwfGABY/IVYLwTvG/Ao7b8isBAMMQ0AiWrLf10AUFz+84wA0I8AALFY/G2q/Q8OAI3L/xybtv/LFW7/6wcAFn8h1gvBa3wzaf8VgoVgiEkASFRf/v0BQAP5zxtBAIA4LP46pP1fqWD7z+IvWPXeD3cUKLtbpvgoZ0PY9v9o3Nr/TdIF2+6wEAyxCQA/U17+twcEAIXlnwAAsVn8jbb9P6Bl+786ovb/M6ntP4u/EK+jQLd4Jp2R/+AAEFr+6wIA7b8MWAgGKyly36mF/G9PeehMAFBc/gkAEPPFX4vb/7mWt/9fxa39L7VZ+79o/KMs/kJcF4JfyL6n2e1/uABA+x8bWAgGKwPAexrIvz8AaCD/ecMJAGD14m982//5tP9i07To2/+HprzN4i/E/VOA0Qn5Yv+ARyxp//0BgPY/lrAQDFZRHBQAVJX/MwFAffn3B4DHpV8YoP5Df2SoxV8r2/8mjv/Q/kfX/rP4C7IWgtf5bqb9VwgWgsHqAPC+wvL/RU0AUF3+84Z/J7L7EgCgJe3/mcXfefssaP/3W97+L7Zp+98gAMz4NG7t/9rJL7P4C1IXgj/J2dDgqz9p/+0JC8FgZQB4X3H5NwOADvKfN4wAAC1v/yeFWvxVrv3fKbX9Xx/H9n9sv+ks/oLUo0C3eSZZ2v6HCwC0/y2HhWCwIgC8r4H8BwYAheWfAAANiewh37P+4u8CQ/5p/61s/zfEqP1n8RfkLwT7jwK9mH1PPfnfamn7X0n7H4eF4Lrfd/aCICHKAKCq/NcFAMXl36A3AQCaedbXXPy9s+Hi7202bf+XOrH9PxMAWPwF+y0E54lDA7bQ/qu4EBzB/YF7BCQ0EgBUlv8dKZuESwf5zx9KAIDmt//m4m8E7f/tUbf/+6Jr/2c3r/2/1w7tf73l3w0hA4B17b+5+Btw9IfFX5C7ELzedzPtv4ILwaE/BSAAgKfJAKC6/AcGAIXlnwAAzX2wN7b4G7L9n6dG+x86AMhv/zda0P6bi79JLP6CzRaCu3vFtr7rYtr+EwCsXQgeaS4EUxSAJ+oAoIP870itCQCKy78ZAPoQACD69t9c/NW8/S+2afv/YDPa/7F9+Ym/YNOF4JTLQgYA2n97LwRTFkBCFCyvDQBqy78/AGgg//lDCAAQ/QM9N/+WkPIfSfs/S6n2f4cS7X+4AGAu/k7YGtl3/vNAh3gtBAcdBXopeyntv0LckmwsBFMYgCfKAKC+/H8ZEAAUln8CAET7ME9M6udf/LWo/Z8dtv3f6+D2/+Nmt/+b67X/xuJvP88oFn/Bdp8CXBq0EHwkZzPtvyLszlolMnv4KA1ARMpy9x1ayH9dAFBc/s0A0JsAAJE/yEc1svhL+x+D9n9Gy9v/hou/HP0BuywEBx4Fus93E+2/QtyfNo3iAEQ0AUAH+f8y9UHh0kH+8wcTACDyJi8je4x/8dfK9n+umu1/uABgffv/UbPa/7VX1Sz+8p3/YIejQMlhjwIZC8Hb+649I/9baP9VWAhO6k95ACISViTeoYX8mwFAB/knAEA0D/BJNzyvVvt/p1Xtf3AAaCj/JTZs/8f2m1Yn/7T/oMBRoNuSJ9L+K8TvvPP4mQAgmhMAVJX/ugCguPwTACDSAJCbN9Mv/3Fs/xsPAPZv/9dIbv/Nxd8mzv3zA33AjkeBXum9KCgA0P7bmZkpY7mHgIgmAKgs/zvNAKCB/OfnEwCg6Qd3UnLji7/xbP9rAwDtf9j23/yJv+mjQpz7D3/0h/O7ELtPASI/ClSQOEgczdkU0P6HCwC0//IXgjN6ermPgIgkAKgu/4EBQGH5JwA4ncg+vh85fo2N2v/gAOCk9v/DiNr/6UOXNXHun6M/YI9PARoLARsybgp5/If2355sMBaCWQQGd/gAoIP81wUAxeV/sBEAsgkAzqXpAJCRFbz4e9i27f+SmLf/2yNv/2fWyf+6OLb/5uJvYp8G8s/RH7DvUaCGIcBYCN7Rdw3tv0ILwcMTB1AmgIg0AKgq/ztTHxAuHeR/cB4BwNk0HQAmTX2+8fZ/vsLt/+3y2v/7Ytj+j+17Y9PyH9XRHx7YEKujQOFDwO3JE4Pkv14AoP23Ha9553M/ARFJAFBZ/r8KCAAKyz8BwOlE/g0ekTyw6y/yGT/ds1sACYF0i55LNCbsf3vwr129X1f/T/it+57/yOWf9h/kfgoQsA8Q43uKY+8dcb2nUCiAp8kAoLr81wUAxeWfAOB0omjswp7dbeSBHfKhHeLBDU3Q8Ncw5EM6aOE38EEd+U/7Rf7BHiGg/leENnVP4b7S0vtK3T0lnPw3vUtEAICERgKADvLvDwAayP/gQQQAZ9N4AGhyea/Jh3XDh3bjD26IhMYe0KEe0i2Xfx7UYJP7SoNyIZIwABHfU1pwX4l+n4j7ilNZWRsA1Jb/gACgsvwTAJxOYw/qyI4B+T8FaPiwDh0E6j20g0IBhCD41yrEwzl06x/c0EXX0tH+gzVEcl+JJgQkRX5f4d4S5b2lsftKBPLPp4rgjiYAqC//u9LOBADV5d8MAFkEAGfTnAd1UyGgqSAALSH0w/nMAzqCM/88pME+5UK0BQP3Fu4toCIrE2/XQv53pW0ULh3kf/BAAgA0/pAO+SlAiLau0cYu6IFdH9kPOhUI+DUL+VBu7OHckgc0D2mwUQgIGwRC319kv2/VvLc0cX/pGe5TxeD2nwAAnpABQAf5rxcA1JZ/AgBY9pCO6EEN1hJK/Bt/OCP/EH8au7dwf1H6/kK5AO5mBgDF5f9MAFBf/g36EAAcTvgA0OhDOtRxoJAPax7YVj6QG38oh3owR/Zwpp0D24WAcEGA+4uN7y8EAPA0HgA0kP/dZgDQQP6HDDhNAIAmH9CRPaQbeVAHPbTrU/cAh4CHb32a+jU982sf7sGM/IN9S4ZQIYB7jGr3mHDyzz0GEowAkHS7FvIfGAAUln8CAET6gA4bAs48pKN6UEMLaOyB3Jj4N/Vg5uEMdrzHNAwC3GMk3GOauM9wj4GEiAOA+vJfFwAUl38zAPgIAOBp4uEc4QM67MMaWkLPsA/j6MWfBzPYLwQ09mlAI/eZeu8J2e9PXQh/j2nJfUb2tQeyWZl0mxby7w8AGsj/kP4EAIju4dz4AzpMGIAYEfr3AfkH+8J9Rj3C3WO4z4AnIlYFBQBV5X932v31AoDC8k8AgOgfznUP6PAPaR7YsXwAN0f6eSiDPeA+o/59pul7DfcZSGgkAKgs/1/XBgDF5d8MAF4CADTn4dzchzRYQeCDGPEH3e81gde77Pefk4j2PsO9BhLCBADV5d8fADSQ/yG5BACwIgSEfkiHQvbDTAUi+XWM9veGBzLYE+413GvAKQHgMw3k3wwAOsg/AQAaJ60FD2ewC/V/H+VfUwCh4F6jA9xrICGiAKC2/NcFAMXlnwAg/01hf3g4q/0g5mEMqhB43cp+H0Fz7jeyryGwdwDYrLz87zEDgAbyPyTntOjLJwAQETyc7QzSD3rBvcbOcL+BhGYGANXlf0/ahnoBQGH5H0oAgKgJdfOX/0ByGqF/H2RfGwCxgPuNbLjfgBUBYJsG8r/HUxMAFJd/MwBkEgCgJTT2cIDYI/v3HkAGst93Tkb27z2oyuqgAKCq/PsDgAbyP7QfAQBkI/uBZhdk/z4A6Izs97ddkP37AE5ldb0AoLL87w0IAArLPwEAAAAAAOIRAD5XXP7rAoDi8k8AAAAAAIBYB4DPNZB/fwDQQP6H9iUAAAAAAEDsKEm6VQv53+u5ry4AqCz/BAAAAAAAiGcA2K6o/O+rCQCqy78ZADIIAAAAAAAQ+wCwXWH5NwOADvI/tA8BAAAAAABiHwC2Ky7//gCggfwTAAAAAAAg1gFguwbyHxgAFJZ/AgAAAAAAxD4APKS8/NcFAMXlf1hvAgAAAAAAxCcAfKGw/O83A4AG8k8AAAAAAIB4BIAvFJf//Z71NQFAbfk3A0A6AQAAAAAAYhcAvtBA/s8EAPXlf1i2EQB+Jv3CAAAAAAA9KQ0KAKrKvz8AaCD/w7KrCQAAAAAAEJcAsENh+T9QPwCoLP9mAPAQAAAAAAAgtgFgh+LyfyD9TABQXf6HZREAAAAAACC2AWCHBvJvBgAd5J8AAAAAAACxpDTpFi3k/0D6unoBQGH5JwAAAAAAQMwDQKr68n+wNgAoLv/DfNWiHwEAAAAAAGJEafItWsi/GQDyBp/+SXX5H+4zPgH4ufQLAwAAAAD0ZG3yrVrI/8H0tT+58od8939Vl3+DHM8z0i8MAAAAANCTjcl3aCD/68RBz7r/cuUPOf2/VJf/4V4jAPxK+oUBAAAAAHryUPJd6st/+jpxyLP278YRoB9Ul3+DXM+/SL8wAAAAAEBPtibPVV/+zQCw5ntX/uDvKlWXf4P+npelXxgAAAAAoCePJ9+tvvynrzU+ASh35eWfPqG6/A/PrBYDPK9LvzAAAAAAQE+eSlmovvz7A8C3rvz87w6rLv8GAz1vSr8wAAAAAEBPfpWyWH35T18rDnrWHHTl5Z3eq7r8G+R5PpZ+YQAAAACAnryaWqS8/J/5BGC3a3DedztVl//hGdViSPrX0i8MAAAAANCTv6SUKC//h80AsOYLV37e6Y9Ul3+DYeknpF8YAAAAAKAnn6duUNmc67MAACAASURBVF7+/az5wJWf991rqsu/wYj0auF2Z0u/OAAAAABAL9ITvZrI/1pxOKP0ZeMI0FM6yL9BcuIQ6RcIAAAAAOhFrjtHE/lfY/CEK3/Q6ft0kH+D1MSJ0i8QAAAAANCLUYn5Wsj/EYP0NWtdgwedXqKD/I/wVIuMpOnSLxAAAAAA0IvJiaP1kH8zAJQudA0ZcHqmDvJv4EtaKv0CAQAAAAC9mJU0WQ/5z1gjvvGsneHKH/jdJB3k36BP8oPSLxAAAAAA0IuVydO1kH9/ACiZ4Boy8Ps8HeR/RFq1yE15XvoFAgAAAAB68WjKbD3k3wwAawa48vJ+SNVB/g3yUt+VfoEAAAAAgF68lHKPHvKfUSq+8axLcuXm/v1cHeR/RFqVGJq6X/oFAgAAAAB68VHqGj3kP6NUHEl/4GyXMYMHnP531eV/RGqVGJlaKRITe0u/SAAAAABADzxunzby/016yd9cNTMk9/Qe9eXfT1ri5dIvFAAAAADQg4LEoXrIv5+vagPA4NzTr+sg/yNTqoQvcaH0CwUAAAAA9OCO5Ct0kX9xNKP01bpPAPpXb9ZB/g36JW+VfqEAAAAAyMSdmG4i+3XowLrkm3WRf/FNRsmDtQEgP7d6gQ7ybzAo6Q3pFwoAAACATJJTvCI5JVP669CB36Qu1EL+zwSAuXWfAPSrukIH+R+ZXCWGJR2WfqEAAAAAyMST3lukebKlvw4d+Di1VAv5P5pRIr7xrLqsNgDk5X6frYP815DkzpN+sQAAAADIIiu7v/Bl5Up/HaqTk9hPG/n3B4CSjLol4MF/PVsX+R+ZVCUyEm+RfsEAAAAAyCIvb4QYlDdc+utQnSmJBdrI/9GMkn9W55Z0dtWfof2qv9dB/g36Jm6SfsEAAAAAyGJMwUQT2a9DdVYnT9dC/o8ZZK6uDpB/cw+g7+n3dZB/gzz3W9IvGAAAAABZXH/9DDFlynTpr0N1fpu6WBP5N/589dshAkD1Zh3kf1RilRiZWCbcbp/0iwYAAABABnPvXmgi+3WoTIo7U3yZtl4L+Tep/xWgdUeAqm7VQf5rSHNfJf3CAQAAAJDBunX3m8h+HSpzWeJwfeQ/s0R8m7n6poYBIOd0ri7yP8pdJbLdK6VfOAAAAADxpl9Ovtiy5TET489lvx5VWZJ8nUbyXyKO+lb2aRAARowo6zikT/VPOsi/wUD3K9IvHAAAAIB4c92UabUBwPhz2a9HVZ5NuVsb+f82Y9WPx1Lnd2gQAMxPAfqcPqKD/BuMSDjOHgAAAAA4Cndiulhdsq42AJSUrjf/N9mvS8Xz/zs8a/WQ/8zV4ljmqgMh5d8MAL2rX9ZB/kcl+El33yD9AgIAAACIF8NHjK2V/xqGDS+Q/rpU46qkkdrIv59VLzYaAIb0Ob1SF/k36JfwkPQLCAAAACBeLCtc0SAAFBWv4lOAKFmbfJNG8r9afJuxurjRADCsz3eTdJH/Ub2qxNBe26RfQAAAAADxYPyEKxvIfw3GX5P9+lTiz2lF2sj/cZNVlzV+BCi7/Lxhvav/Rwf5H21SKZIThkm/iAAAAABiiS8rV2zc+FCjAcD4a15fjvTXqQIDEnO0kv9vM1f9T1mfkq6NBgDzU4Ds6kO6yP/onpUiu9dS6RcSAAAAQKxITcsSxcWrG5X/GlasKBFpnmzpr9fuzE6+Uhv5PxMA9oWVfzMAZFU9rYv8G+T3+qP0CwkAAAAgFqSk+sTiJcualP8ajP+v8ffIft125oW0BdrIvxkAMlY90XQAyK6aqYv8G4zqcUokJQySfjEBAAAAWH3sJ5LmPxjj7+E4kCckfRL7iK8967SR/+OZq8QJ7+rpTQaAEd6KVF3kf3QPP9m97pF+QQEAAABYgfGNPsZSb7gz/01h/L3GP4NvB/IEMC9lslbyb1CWXpLoimSGZlV9p4v8G+T3fFP6BQUAAADQEgxZN77nv7BoZbPFPxjjn2X8MwkCHpOXUhdpJf/HM1dWRyT/5jEgb9Xrusj/6EsrxahLy0Wye7D0iwoAAAAgWvrl5IvrpkwL+Am/VmP8s41/h/Hvkv3fK4tcdz+x17NeG/k/YfwxY9XLkQcAX9U9usi/wZhLK0XvXkXSLywAAACAYJJTMoUnvbd5pj8vb4QYUzBRTJkyXcy9e6FYt+7+mEl/Yxj/TuPfbbwG47UYr8l4bcZrNF6r7F+vWLEg+Wqt5N8MAJmrFkQeADKqc3SS/zHdK8XQSz+VfmEBAAAANBYAjMVcuwYA47XpHgDeTLtXK/n3fwJQkhVxAHC5RKvh3urTush/DZ5ek6VfXAAAAADRwBGg2DMhaah28n8ic2WlcLlaRREAXK7hmdW/1kn+x3SrFAN6PC39AgMAAABoDsai7rDhBZYvARv/TKcvAW9OvVUv+feuEie9K55xRTtDM6qm6iT/BqO6fSsSE/pKv8gAAAAAmgtfA2otGe4ssdOzRjP5XylO+JZfG30AyC4/b1hm1U+6yL/JJZUiu+cS6RcaAAAAQEsxzuXzg8BazpzkK7ST/5OZK34s61PS1dWcGZZevV0n+TcY2v1D6RcaAAAAgBWkpPrE4iXLIpZ/4/9r/D2yX7ed+GPaUr3k32j/vSs/aZb8mwEgo2qVTvJvcnGlSO91vfSLDQAAAMAKklO8Ylnhioiaf+Q/kMlJI7WT/zMBoLjZAWBE+un+usl/wcWVIr/7q9IvOAAAAACrMI70hNsJMP4ax34a8uvUudrJv0GZd3nfZgcAl0u0Hu6p+k4n+Te5qEKkJoyTftEBAAAAWIWx1NtYADD+muzXZzeGJQ0U+zzrtJP/k94V1VF//WfDTwGqf6aV/JsBoFIM7M5XggIAAIBehDoKVFS8im/7CcHm1Fu0k/8ykxWPuFo6w9JOD9dG/i+qY8xFJ0RyQp70iw8AAADAKoaPGNsgABjf8y/7ddmNvol9xNeetRrK/0pxyrdicIsDgP8YUHWVTvJvHAEquLBC5HbfJP0CBAAAALAKo+mv/xODS0rX0/6HYE3KNC3lvyxzZUWLj//UzIjUqq1Ky//FDeXfYMyF34rkBGf+yGsAAADQk+umTKsNAMafy349dmz/d3lK9ZN///f/P+SyakZ6qofo1PzXckGF6N9tq/QLEQAAAMAq+uXk1wYA489lvx67cX/KTVrKf5l3hTjhXT7QsgDgcolWw1MrT+km/2MvMP54XKQkDJF+MQIAAABYxbp194u1azdIfx12I9edI75OX6Ol/Jd5l5+07PhPzYxIrXxYh2M/9eXf5PwKMaDb49IvSAAAAACrmHv3QjFn7gLpr8NubEqdqaX8nzICQOaKjS6rZ2Ra5SCdmv8a+TcouOCkSOk1XPpFCQAAAGAFU6ZMN5H9OuzEoMRcsTd9rZbyb1CesSrXFYsZkVx5SDf5NzmvQuRd9IL0CxMAAADACsYUTDSR/TrsxNNps7SV/zLvigOuWM3IlKqluhz7qS//NWT0mCL94gQAAABoKYPyhpvIfh124fKk4drK/ymDzOULYhYAxmRUXTAiqeq/dZT/sV0rxPALPhRud6b0ixQAAACgJfiyck1kvw47kOjOEH/yLNFX/r0r/rvaU3KhK5YzIrnyZV2O/dSX/xqyuy+SfqECAAAAtARPem+R5smW/jrswOzkSTrLvyjLXP5CTOXfDABJVQW6Nf81jDu3Qow5b59ITOgn/WIFAAAAaC7JKV6RnMKphkx3lvg8fYW28n/KCAC+FSNjHgCMnwkwMrHqWx3lv4YBF/HDwQAAAEBd3InpJrJfh2w2ps7QWv5PZRYft/y7/xubUe7KYp2O/dSX/3HnVIix55wS6T2ukn7RAgAAAEDzGJc4WOxPX6ut/Jd7l4tTvuJlrnjNCHdZt1Huqn/oKP81jOj6qXAneKVfvAAAAAAQHcnuDPHntKV6y7+3+MdTGcu7u+I5oxIqX9Lp2E99+R93tp9+F6+VfgEDAAAAQHQUp0zRWv7LfWb7/6Ir3jOiV3l/neXfYOzZx0Vaz7HSL2IAAAAAiIz8xP5iT3qp1vJf7lsuKrzLB7pkzMiEqk90OvZTX/7HnVUuxp9VLoZ3fZufDQAAAACgAEmJ6eK1tAXay3+5r/gDl6wZ1avqSh2b/xr5N+lSLnIu4igQAAAAgCpHf/SW/+WiMrNoorQAYHwl6KielYd1ln+DcV1OivRL+VYgAAAAALsyPmmI2OdZq738V3iXHxGuktYSA4C5DDxLt2M/9eXfpHO5GH32DpGY0Ff6xQ0AAAAAgaQnesU7acv0l3/fclGRtfw2l+yZkHqsw+geld/pLP81DDr/aekXOAAAAAAE8ljqbc6Qf+/y78vcJR1ddpjRPStKdDv2Eyz/4zv5yb5ktvSLHAAAAAD8zEwe7wz595nLv8tddpkR7rKuoy+t/Hfd5X9Cp3IxrtMx4ekxUfrFDgAAAOB0hicNFLs9JY6Q/wpv8f8qzy46z2WnGdWjco2Ox37qy/+Ejn5Gd9kuknrlSL/oAQAAAJxKpjtLvGee+3eA/PuKDVa67DYFySfOHdW98t90l3+TDuVi6DkvC7c7Q/rFDwAAAOA0Et3p4ldpdzlG/st9xX87llpyjsuOM/rS8hU6HvsJlv8aci5YI/0NAAAAAOA0ilOuc4z8V/hZ5rLrjL3kuy6ju1f84AT5n9C+XIxvXyZ83WZKfxMAAAAAOIUbksaIA+lrnCP/3qJ//cFbcpbLzjOqW8U9uh77qS//NYxrf1RkdJ8s/c0AAAAAoDtjkvLEbs9qx8h/pZ+FLrvPCHdZxzGXVFY5Qf4ntCsXl7UrF2M77hEpPYZKf1MAAAAA6MqAxH5im2e5w+S/6HRF3uJOLhVmzCUV83U99hMs/yZty8Xojp/wzUAAAAAAMSDD7RNvpi1xmPwXG8u/c1yqTK5rV7sxF1d84xT5v6ztKZMRnf8k3Ale6W8SAAAAAF1IcmeIF9LmOE7+K73Fh3flzmrnUmnGXFJ1uc7HfoLl/7I2foac9bxwuzOlv1kAAAAAdJD/x9Nuc578+8zl3wkuFWf0xZVvO0n+TVqfEvlnP8PPCAAAAABoAW53ung49WaHyn/xGy5Vp6BbWWbBxZX/cJL8G0xsfUrknbNV+hsHAAAAQFXWpUx1pPxXeov/UZW9Mt2l8hRcWPmo0+R/Yis//btukP7mAQAAAFCN1SnXO1P+feY3/zzkUn0mnVt+XsGFFX91mvybuE6J3K78tGAAAACASClMuda58u8t+teyPiVdXTpMwUUV85wo/zUMOOcB6W8mAAAAALuzPOU6x8p/lT8AzHLpMiNcou2YC8r3OlH+DSa5Tom8sx9lMRgAAACgkYXf9anTnC3/vsLdYsqUNi6dZswFFQPGXFD+kxPlf5KrzGRIl2cJAQAAAABBX/W5JXWms+XfW/jj6eyiXJeOU3BBxWanyr/B5a4yMfSsZ0VCAj8nAAAAACDZnSGeSLvd0fJf5Ssy2OjSdS7vXt157PkVx50q/5e38jOy0+siqVeO9DcdAAAAgCzS3T7xm7TZjpf/Sm/hye96L+3i0nnGXnBq9Njzy//pVPm/vNVJcUWrk2Js+49ESo+h0t98AAAAAPEmJ7GveNOzGPn3Ff2zKrOowOWEGXtexW+cLP81TGi7S2R0nyT9TQgAAAAQL0YkDhKfeIocL/9VZvtf9KzLKTPm7KoLCs6r+MHJ8m9wZauTYlLrQyLr4pukvxkBAAAAYs31yaPFbs9q5N9nHv35vsK7+HyXk2bseRVTnS7/V7Y6cYbjIu/cjXxDEAAAAGj7NZ9LU64WB9LXIP++M2QXTXE5ccaeW/4vyL+fya1OiFGdf8tyMAAAAGhFhtsnnkm7M0D8HS//WYXPuZw6BeedOHfsORVlyH8dE9p/KtIvHSf9zQoAAABgxXn/9z3LkH9fnfxX+gpP/i215ByXk6fgvPKhY88p/wn5PyEmtz4urmp9XFzZ5pDoe9Es6W9aAAAAgOYyM3m8+NpTgvz7AuT/xyrfssGy/dsWM/bsivXIv1/+6zOyy685EgQAAADKHfnZlHKzOJS+Dvn31T/2Y1Ii27ttMyNcou24s8q/QP7ruNrkWzGp/efC2+1q6W9mAAAAgKYYlzhYvJtmHPlB/qsayH/hzl25s9rJ9m5bzYRzylPGnlX+H8h/nfzXcVQMPvd+4U7IlP7GBgAAAAgmKdH/LT/7zG/5Qf6rGsr/f1Zm3psm27dtOePOrrgV+Q+U/2vqMa7TH4Xn0jHS3+QAAAAANQxNHCheS1sgDprij/xXBcl/dVaROJ1VOEO2Z9t6xnUpfwb5byj/17Q+5qfNETG46wbhTvBJf8MDAACAc0lyZ5it/570UuTf17j8V2cVPSHbr20/E1zHOozrcmon8t9Q/q81aONnYof3RGb3K6W/+QEAAMB5jE8aIv6cttQUf+S/OIz8F+44ljq/g2y/VmLGdazqNa7TqX9F/kPLv8F15h+PiGHnbhJJvfpKvxEAAACA/mS6s8TG1Blif/pa5N8XXv6rfEU/VGYv6ynbq5WasV1OjR7f+dSPyH9o+b+uzdFarm63Swy84B7hdrMkDAAAANaT6E4XtyRPENs8y2vFH/kvDif/P1VnLRsr26eVnHEdywuR//DyP6Uekzr+WWR1u0b6TQIAAAD0YVLSMPEnz5IA8Uf+i8Od+Te+9WepbI9WeESrCZ3KX0H+m5b/KW2+EdefoeCsX4q0HsOk3zAAAABAXQYl5oqnUmeJA0Hij/wXh5d/X+HvhcvVSrZFKz1Xuo6cPaHjqYPIf2TyX8OUdofE6HOeEJ6ew6XfQAAAAEAdct39xPqUGeLr9DXIvy86+a/2Fe7/wVtylmx/1mLGdyhLHN++/DvkPzL5v77tN+KGtkdMrm93QIw85xGR2jNP+g0FAAAA7Eu2u7coSZ4qdpvivx7590Up/1nLTp/OXOqW7c1azbh25bkTOpz6P8h/5PJfw1QzCOwVw7tuECk9B0q/wQAAAIB96JvYR6xJmSZ2e0rPiD/yXxH1sZ9l/1XhXTZQti9rOePbn5o0vv2pn5D/6OS/jsNiarv9Ysw5j4uMHgXSbzgAAAAgj7zEXLE+eYbY5VkjDnhqxB/5r4j+zP9P1dmFk2V7stYzvm35Xch/8+T/xiAmdf6d6HvJNJHgTpd+EwIAAID4MCFpqPhF6l1in2ed2G+IP/Ivmn/sp9A4+jNPth87Yia0O/UI8t8y+TeY1vaQyeTOb4pBF87nB4oBAABoSoY7S8xOvkL8MW2pKf01IP/LWyj/hZtke7FjpsQlWl/Wtvx15L/l8j+tnZ/p7Q6JG9vvEePPflr07jaFTwUAAAA0YHRSvnggZab4Mm2N2O+5D/m3UP6rspa9JlwlrWV7saNmiqui02VtT32E/Fsj/34Omsxod1Bc3ektMfiCpSKtF98eBAAAoNrXeC5Ivlq8mbZM7PPcZ4L8W37s54Myd0lH2T7syBnr+q7LZa3LPkP+rZX/QPaLK7u8IvIvXCxSew6SflMDAACAhmQl9hYzky8Tv0mdJ/Z41teKP/IfA/n3FX7x1/R7z5btwY6eAteJcy9rXbYb+bde/m8yOVDLjHb7xJVnvSTyL1wgPD2HSL/ZAQAAOJkBiTlidvKV4oW0BeLrIOlH/mMm//sqvIvPl+2/jLEU7Dp20cTWZYeQ/9jJv8HN7WvYb3J9p/fE2K4Pi37dponEhCzpN0IAAACdSXFniiuSRoqVyTeK11KXir2eDWdoKP7Ifyzkf9nR77OKL5HtvUy9meSq6HFZq7ITyH985H9mEDd12CmuOPtXYtiFy0Tv7lcSCAAAACwQ/vFJw8TipOvEsyl3ix2etWJPrfQj/3H+tp/j5en3Xirbd5kQc7nrRMJlrlOnkP/4yv8t7fcFcGv7fWJmh13imrNeFqPPXytyu01jmRgAAKAJchL7ieuSxohVydPEi6mLxc60+8SetPvFnrQNpvgj/9Ka/6rvei9Nku25TJgZ7zqZPtFVVon8y5N/P3vFrR383HaGmzptE1ef/aIYd979Iv/iOSK7+0SR1KuP9BsuAABAPPG4faIgcYi4PfkKsTb5ZvFc6iLxSWqp+Drt/gCQfzvIf2FlVe8ij2y/ZSKYia6T7omusm+Rf/vIfw23d9gTwB0d9oibO30ippz1qrj83CdEwflrxNCL7hY53W4Qvh7jhadnvkhKyJZ+swYAAIgET6JX5LhzxIjEfHFV4hgxK+lKsTJ5ung0ZbZ4KeUe8WFqqdidtjGIQPFH/u0h/1W+ZWU/+O5Jke21TBQz0VXWbaKr7ADyb2/59/O1yZ0GHeuzW8w6w+2dvhA3d35XTDv7dXHdOc+J6875tbjq3CfF5HMfF5O7PiYmnveAyaQQXG6ysVGuMDg/FPfXcmUAG8Tk+lzQkKsacF8Drg7imgasb8C1Juv8XNiQ60IwxWRto1wfkjUB3BBAqZh6UXhuDKAkkIv9TAtiegCrQzLj4lVhuSmIm01W+rkkNDMbsKIBt9Sy3OTWJritlmJxW7fQ3B7EHbUU1dG9PoXiziaYFcRd3Zc1yewG3OvnUj9zarmnlrlNcHctSxtlXhDzTZaI+T1Cs6DH4iZZ2LM+i8SiCFgcwMIGLDFZEMDSYHoFco/J/LDcG8SyXvPCcLcoDEVCIEW1zDUpbgr3XLG8ljkhWeGeHcDKCFjlvissqxMbUpI4qxHuNCmNgDW13GGyNpikhqwzub1R1ifd5ifZz33Jt4nNKXPEI8lzxGMpd4tnkheKX6YsEq+mFIm3U0rEttT7xFepDwSwK81gYy3IvzLyf6Siz/Iesn2WacaMdR2/+HLXyT3Iv9ryX8NdtewymV2fTrvEnE5fNWCuyc5a7g5iXqcvxbzOdcyvZUctCwL4QiysT5cvxKJatpssbsDnYkkQSw3O2lbLPQ34TNwbxDKTT/2c/akoDOATURSCYpOPa1lewzkGH4kVQaw0+TCAVQF8IFafG0iJyfu1lAbwnsmaGrr6WWvybi3rAnhHrA/Bfef9JYANtbxtcn8QG03e8nO+nwdq+bPJg0FsOv/NBjx0QQ1vmDwcxOYL/hTAllr+KLZc6OeRILZe+IcAHq3l9yaPGVxUn9fFz4J4vJbfmTwRxM8vfq0BT5q8WstTQTx98St+LvHzTC0v1/KLAF4Szwbxy241/NbkVw14Ufw6iN+Y/Iv4TXc/zwXxfPcXGvCCyfO1/Mul9XlOvBiC3176mwBeqqGHwa/Fy0G8YvKrAF6t5Zcmr/UM5Hcmz9byegC/MPl9Db38/KHXMwH8MYCnxZ9C8EbCUwG8WcuTJn8O4i2Tn9fh/rl4u5YnTP4SxDvuxwN4t4ZEg5+ZvBfE+4mPBfBBLY+afJjUkI+StgbwcS2PmHxSQ3INW8SnQXxWy2aTbUF8nvJwA7abPFTLF0HsSNnkJ9XPl7U8WMvOAALFH/lXV/6rs5Z9fbpv8UWyPZZpwUx2lXWd1OrkduQf+Uf+kX/kH/lH/pF/5B/5rwrX/Gct28n3/Gv0E4Mvb3XyPeQf+Uf+kX/kH/lH/pF/5B/5rwp57KfwY37Cr2YzxVXR6YpWJ36P/CP/yD/yj/wj/8g/8o/8I//Vgc3/a2Xuko6yfZWJyYhWV7Q6Ueps+Q8Uf+Qf+Y+P/NeJP/KP/CP/yD/yj/zbSv59hVuFq6S1bEtlYjxXuI7PurLViR+Rf+Qf+Uf+kX/kH/lH/pF/Z8p/la/wp+qsZfNkeykTx5nsOjl+cqsT/4H8I//IP/KP/CP/yD/yj/w7Tv7/T5Wv8ArZPspImKtdJ/tc2epEJfKP/CP/yD/yj/wj/8g/8u8M+a/OWnb6dHZRrmwPZSTOZFdZ4lWtjx9C/pF/5B/5R/6Rf+Qf+Uf+NZd/X+H+am9hgmz/ZGwwU1wHz7qq1fFXkX/kH/lH/pF/5B/5R/6Rfz3lv8q37A8ncgvPle2djK1GtLqq9fGFV7f+9kc95J+v+kT++apP5B/5R/6Rf+Qf+a/yFf1UnV1UKFyuVrJtk7HpXOU6NuLq1se+R/6Rf+Qf+Uf+kX/kH/lH/hWX/6yiv1ZlFxXI9ktGgbnadazn1a2/3YH8I//IP/KP/CP/yD/yj/wrKv++ol2nM5e6ZXslo9BMcB3rcHWrY08h/8g/8o/8I//IP/KP/CP/ysn/Uwe9Je1l+ySj6FzT+ugt17Q59p/2l38WfpF/Fn6Rf+Qf+Uf+kX9ny39VVuH/Pp1VOEO2PzIazGTXkcRrWx/bhvwj/8g/8o/8I//IP/KP/NtT/quzir6s8BalyvZGRqMZ4fqo7bVtjpZe2+abn+wl/xz7Qf459oP8I//IP/KP/DtX/it9hT9W+Yo27sqd1U62LzKaztVtj+Vd1+ab48g/8o/8I//IP/KP/CP/yL9k+c8qPFWdXTxMth8yDpjprmPnTGlz9DnkH/lH/pF/5B/5R/6Rf+Rf0rEfX9Er5dlF58n2QsZhc33ro1Ovb3PkB878I//OkH/O/CP/yD/yj/wj//Llv9Jb+H1VdtEU2R7IOHgmu8q6Xt/mm6eub3vknzT/yL++8k/zj/wj/8g/8o/8y5d/o/Wv9iy5ULb/MYw5U9oeHnF9myNHkX/kH/lH/pF/5B/5R/6Rf4vl31t0ojpr2VjZvscwDWaKq6LT9W2ObJza9vBPHPtB/vWQf479IP/IP/KP/CP/8uS/0lv4Y5W3cOsP3pKzZHsew4SdqW2P9J/a5vBe5B/5R/6Rf+Qf+Uf+kX/kv5ny7yvcXZVZ2E+21zFMxFPiEq1vbH345qltD//AsR/kXz3559gP8o/8I//IP/IvS/6L/q3SV7hQTJnSRrbPMUyzZqZrT9epbQ5tvLHt4f9H84/8qyH/NP/IP/KP/CP/yL8E+fcW/6PKW7y1rE9JV9n+xjCWzA3tD3tubHvoDeQf+Uf+kX/kH/lH/pF/5D9Q/it8xe+VZy7zyfY1honJTGtzqGBa24MHOPaD/NtPVccUyQAABTVJREFU/jn2g/wj/8g/8o/8x1f+K3zFRyuzlk+S7WcME/OZ5drVblrbg3dPb3ugmuYf+beH/NP8I//IP/KP/CP/cZR/b1FVua94zq7cWe1kexnDxHWmuA62n9Hu4KwZ7Q6cpvlH/mn+kX/kH/lH/pF/3eW/wlf810pvUWFF3uJOsj2MYaTODNfeLtPbHlh4U7sD3yP/yD/NP/KP/CP/yD/yr5v8l/uK/1bpKy49llpyjmzvYhhbzRTXwbNmtN1fOKPdgX9H/pF/mn/kH/lH/pF/5F91+S/3Ff9Hha9444ncwnNlexbD2Hpudx08/6b2+1fd3G7f98g/8k/zj/wj/8g/8o/8Kyj/35X7ilbwlZ4M04wdgZvb7b15Zvv9B5F/5J/mH/lH/pF/5B/5t7v8l/uKj5X7ihdyxp9hWjyi1U0d9hfMbLfvDeQf+Uf+kX/kH/lH/pF/28m/d/m2ct/yK4TL1Uq2NTGMdnNb2/39b2m/77e3tN/3D+Qf+efYD/KP/CP/yD/yL03+vcv/ccpX/GJ5dlGubD9iGEfMzM4Hu93Sft/CWzvsPYj8I/80/8g/8o/8I//If7zk/5TXPOZTWuVb0Uu2DzGMY+eOdvtzb2u/96lbO+z9L+Qf+Uf+kX/kH/lH/pH/GMj/f5d5V7xSnrmigGM+DGOjmena0/WODntm3d5hz17kH/nn2A/yj/wj/8g/8t9i+c9ccaTcu7yw2lNyoWzPYRimibmt7e7+d3TYs+mO9ntOIf/IP/KP/CP/yD/yj/xHIf9lZd7lD5RnrOJsP8OoOne02+O7s8Pu0js7fn0C+Uf+kX/kH/lH/pF/5L+B/GeuqCzzrtha7l0xlCM+DKPRlLhE61kddw29o+Oux2Z12H0a+Uf+kX/kH/lH/pF/58r/Se+K6jLvyq2nfKuGIP0M46BPBmZ13F14V8dd793Vcdf/Q/51kH8WfpF/5B/5R/6R/9Dyf8K78qeT3hW7TmSuKDWO9yD9DOPwmeHa22VW+91X3NXxq6fu6rCrAvlH/pF/5B/5R/6Rf/Xl/3jmqu9Pele+cjJj5c1lfUq6yvYNhmFsPHO67O49u9PORbM77nx1Tsedp5F/u8s/x36Qf+Qf+Uf+kX+DldXHM1a+cjxz5cIT6SuzZfsEwzAKz92ddl86p9OuKXM67tw6t+POXXM6ffk/yD/yj/wj/8g/8o/8y5b/VSeOZ6x87njGqlnfZq70yfYFhmE0noXn7uk6t/NXE+d23Ll8bqcvX7q705eH7u785Y/IP/KP/CP/yD/yj/zHQP4zVv14LGP1wWMZq176NmN18fHMVZdxpIdhGOkz33Wsw/zOO/vN67zj5nmdvtw0v9OOd+d33lGN/CP/yD/yj/wj/8h/VPJfdTRz9TvHMkoe/Daj5OZjmSv7HfSWtJf9nGcYhol45rve6rCow87keV22FyzovGPWgk7bNy7s/MUrCzp/sW1Bl+0nFnXZ/k/kH/lH/pF/5B/5d4z8p5f8/Uh66aFv0kvf+yaj9KlvMlYXfpO+esrxjFW5R9LvPVv2c5thGCbms9S1t8v8c7alLOz0xaDFnbdNXNT585sWd9m+aFGX7esWdf78icWdt726uPO29xd3+XyXwdLOnx9c2mXbCYMlXT7729Iu2/5+T5dt/4n8I//IP/KP/CP/sZT/A551/3nIs/bvBz1r/nYofe0Jg4OeNQcPedbuMjicvvb9wxlrXjmcseaJwxml6w5nrFl0KLP0pqOZJROPppUMPJa6LmVv701dZD93GZfj5/8DGtYAEWlruwQAAAAASUVORK5CYII=";var b=null,n=null;function h(){let r=m;return`<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
@@ -603,9 +603,32 @@ import{b as v,r as g}from"./chunk-EPGLNGLE.js";import{c as f}from"./chunk-RI37VZ
|
|
|
603
603
|
|
|
604
604
|
th:first-child,
|
|
605
605
|
td:first-child {
|
|
606
|
-
width:
|
|
607
|
-
min-width:
|
|
608
|
-
|
|
606
|
+
width: auto;
|
|
607
|
+
min-width: 140px;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
.table-daily th:first-child,
|
|
611
|
+
.table-daily td:first-child {
|
|
612
|
+
min-width: 130px;
|
|
613
|
+
width: 140px;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
.table-models th:first-child,
|
|
617
|
+
.table-models td:first-child {
|
|
618
|
+
min-width: 220px;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
.table-timed th:first-child,
|
|
622
|
+
.table-timed td:first-child {
|
|
623
|
+
min-width: 160px;
|
|
624
|
+
width: 165px;
|
|
625
|
+
white-space: nowrap;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
.table-timed td,
|
|
629
|
+
.table-daily td,
|
|
630
|
+
.table-models td {
|
|
631
|
+
white-space: nowrap;
|
|
609
632
|
}
|
|
610
633
|
|
|
611
634
|
th.col-code,
|
|
@@ -1660,6 +1683,7 @@ import{b as v,r as g}from"./chunk-EPGLNGLE.js";import{c as f}from"./chunk-RI37VZ
|
|
|
1660
1683
|
};
|
|
1661
1684
|
|
|
1662
1685
|
function renderTable(timeline) {
|
|
1686
|
+
const tableEl = document.getElementById('usage-table');
|
|
1663
1687
|
const thead = document.getElementById('usage-table-head');
|
|
1664
1688
|
const tbody = document.getElementById('usage-table-body');
|
|
1665
1689
|
const titleEl = document.getElementById('table-view-title');
|
|
@@ -1667,6 +1691,10 @@ import{b as v,r as g}from"./chunk-EPGLNGLE.js";import{c as f}from"./chunk-RI37VZ
|
|
|
1667
1691
|
const searchInput = document.getElementById('table-search');
|
|
1668
1692
|
const filterText = (searchInput.value || '').toLowerCase();
|
|
1669
1693
|
|
|
1694
|
+
if (tableEl) {
|
|
1695
|
+
tableEl.className = 'table-' + tableMode;
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1670
1698
|
if (tableMode === 'daily') {
|
|
1671
1699
|
titleEl.textContent = 'Daily Detailed Token Records';
|
|
1672
1700
|
subtitleEl.textContent = 'Itemized log of daily token stats';
|
|
@@ -2046,4 +2074,4 @@ import{b as v,r as g}from"./chunk-EPGLNGLE.js";import{c as f}from"./chunk-RI37VZ
|
|
|
2046
2074
|
fetchData();
|
|
2047
2075
|
</script>
|
|
2048
2076
|
</body>
|
|
2049
|
-
</html>`}async function
|
|
2077
|
+
</html>`}async function w(r=52140){if(b&&n)return{port:n,url:`http://localhost:${n}`,isNew:!1};let a=p.createServer(async(A,e)=>{if(e.setHeader("Access-Control-Allow-Origin","*"),e.setHeader("Access-Control-Allow-Methods","GET, OPTIONS"),A.method==="OPTIONS"){e.writeHead(204),e.end();return}let i=new URL(A.url,`http://${A.headers.host||"localhost"}`);if(i.pathname==="/api/usage"){try{let t=await g();t.timed=await v(30),e.writeHead(200,{"Content-Type":"application/json; charset=utf-8"}),e.end(JSON.stringify(t))}catch(t){e.writeHead(500,{"Content-Type":"application/json"}),e.end(JSON.stringify({error:t.message}))}return}if(i.pathname==="/"||i.pathname==="/index.html"||i.pathname==="/usage"){let t=h();e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(t);return}e.writeHead(404,{"Content-Type":"text/plain"}),e.end("Not Found")}),o=await(A=>new Promise((e,i)=>{let t=d=>{a.once("error",c=>{c.code==="EADDRINUSE"?t(d+1):i(c)}),a.listen(d,"127.0.0.1",()=>{b=a,n=d,e(d)})};t(A)}))(r),l=`http://localhost:${o}`;return{port:o,url:l,isNew:!0}}async function D(r=52140){let{url:a,isNew:s}=await w(r),o=process.platform,l=o==="win32"?"start":o==="darwin"?"open":"xdg-open";try{u(`${l} ${a}`)}catch{}return{url:a,port:n,isNew:s}}export{w as a,D as b};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import{d as S}from"./chunk-RI37VZYB.js";import R from"fs-extra";import F from"path";var j=l=>{if(!l)return[];let u=[],p=/\[tool:(.*?)\((.*?)\)\]/g,n=0,i;for(;(i=p.exec(l))!==null;){if(i.index>n){let e=l.slice(n,i.index);e.trim()&&u.push({type:"output",content:e})}u.push({type:"tool",toolName:i[1],args:i[2]}),n=p.lastIndex}if(n<l.length){let e=l.slice(n);e.trim()&&u.push({type:"output",content:e})}return u},k=async(l,u,p=process.cwd())=>{let n=`export-fluxflow-${l}.txt`,i=F.join(p,n),e=[],o=!1;for(let m=0;m<u.length;m++){let r=u[m];if(r&&!(r.role==="system"||r.isMeta||r.isLogo||String(r.id).startsWith("welcome"))){if(r.role==="user"){let s=r.text||"";s=s.replace(/\s*\[Prompted on:.*?\]/g,"").trim(),e.length>0&&e.push(""),e.push("[USER]"),e.push(s),o=!1}else if(r.role==="think"){o||(e.push(""),e.push("[AGENT]"),o=!0);let s=(r.text||"").replace(/\[\[\s*turn\s*:\s*(continue|finish)\s*\]\]/gi,"").replace(/\[\[END\]\]/gi,"").replace(/\[\[TOOL RESULTS\]\]/gi,"").replace(/\[TOOL RESULTS\]/gi,"").replace(/\[TOOL RESULT\]/gi,"").trim();s&&(e.push("[thoughts]"),e.push(s))}else if(r.role==="agent"){o||(e.push(""),e.push("[AGENT]"),o=!0);let s=j(r.text||"");for(let c of s)if(c.type==="output"){let a=c.content.replace(/\[\[\s*turn\s*:\s*(continue|finish)\s*\]\]/gi,"").replace(/\[\[END\]\]/gi,"").replace(/\[\[TOOL RESULTS\]\]/gi,"").replace(/\[TOOL RESULTS\]/gi,"").replace(/\[TOOL RESULT\]/gi,"").trim();a&&(e.push("[output]"),e.push(a))}else c.type==="tool"&&(e.push("[tool]"),e.push(`${c.toolName} ${c.args}`))}}}let d=e.join(`
|
|
2
|
+
`);return await R.writeFile(i,d,"utf8"),{exportFile:n,exportPath:i,totalLines:e.length}},I=(l,u="FluxFlow",p=null)=>{if(!l||!l.trim())return[];let n=l.split(`
|
|
3
|
+
`),i=[],e=[],o=/^\s*(?:CRITICAL\s+ERROR|ERROR|DEBUG|SEARCH|PUPPETEER|WARN|WARNING|INFO)\b/i,d=/^\s*-{3,}\s*$/,m=!1;for(let s of n)if(o.test(s)){m=!0;break}if(!m){let s=l.trim();if(!s)return[];let c=p?new Date(p).toLocaleString():"Unknown Time",a=/\bjanitor\b/i.test(s)?"Memory":u;return[{timestamp:c,level:"ERROR",source:a,message:s}]}for(let s of n)d.test(s)?e.length>0&&(i.push(e.join(`
|
|
4
|
+
`).trim()),e=[]):o.test(s)?(e.length>0&&(i.push(e.join(`
|
|
5
|
+
`).trim()),e=[]),e.push(s)):(e.length>0||s.trim())&&e.push(s);e.length>0&&i.push(e.join(`
|
|
6
|
+
`).trim());let r=[];for(let s of i){if(!s)continue;let c=s.split(`
|
|
7
|
+
`).map(t=>t.trimEnd()),a=c[0]||"";if(!/\bERROR\b/i.test(s))continue;let L=a.match(/\[(.*?)\]/),O=L?L[1]:null,$="ERROR";/CRITICAL\s+ERROR/i.test(a)&&($="CRITICAL ERROR");let E="";if(L){let t=a.indexOf("]:");t!==-1?E=a.substring(t+2).trim():E=a.replace(o,"").replace(/\[.*?\]/,"").replace(/^:\s*/,"").trim()}else E=a.replace(o,"").replace(/^:\s*/,"").trim();if(c.length>1){let t=c.slice(1).join(`
|
|
8
|
+
`).trim();t&&(E=E?`${E}
|
|
9
|
+
${t}`:t)}if(E){let t=/\bjanitor\b/i.test(s)?"Memory":u;r.push({timestamp:O||(p?new Date(p).toLocaleString():"Unknown Time"),level:$,source:t,message:E})}}return r},N=async(l=process.cwd())=>{let u=`fluxflow-error-${Date.now()}.txt`,p=F.join(l,u),n=async t=>{if(!await R.pathExists(t))return[];let h=await R.readdir(t),f=[];for(let g of h){let x=F.join(t,g),w=await R.stat(x);if(w.isDirectory()){let y=await n(x);f=f.concat(y)}else(g.endsWith(".log")||g.endsWith(".txt"))&&f.push({path:x,mtime:w.mtimeMs})}return f},i=await n(S),e=[];for(let t of i)try{let h=await R.readFile(t.path,"utf8");if(h.trim()){let f=t.path.replace(/\\/g,"/").toLowerCase(),g="FluxFlow";f.includes("/janitor")||f.includes("janitor")?g="Memory":f.includes("/usage")||f.includes("usage")?g="Usage":!f.includes("/agent")&&!f.includes("agent")&&(g="Other");let x=I(h,g,t.mtime);e=e.concat(x)}}catch{}let o=[],d=new Set;for(let t of e){let h=`${t.source}::${t.timestamp}::${t.message.trim()}`;d.has(h)||(d.add(h),o.push(t))}let m=o.filter(t=>t.source==="FluxFlow"),r=o.filter(t=>t.source==="Memory"),s=o.filter(t=>t.source==="Usage"),c=o.filter(t=>!["FluxFlow","Memory","Usage"].includes(t.source)),a=(t,h,f)=>{let g=["================================================================================",`${t} (${h.length})`,"================================================================================"].join(`
|
|
10
|
+
`);if(h.length===0)return`${g}
|
|
11
|
+
No ${f} error entries found.`;let x=h.map((w,y)=>{let C=`[${f} #${y+1}] ${w.timestamp} (${w.level})`,U=w.message.split(`
|
|
12
|
+
`).map(b=>` ${b}`).join(`
|
|
13
|
+
`);return`${C}
|
|
14
|
+
${U}`});return`${g}
|
|
15
|
+
|
|
16
|
+
`+x.join(`
|
|
17
|
+
|
|
18
|
+
--------------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
`)},T=[`FluxFlow: ${m.length}`,`Memory: ${r.length}`,`Usage: ${s.length}`];c.length>0&&T.push(`Other: ${c.length}`);let L=["================================================================================","FLUXFLOW ERROR LOGS EXPORT",`Exported At : ${new Date().toLocaleString()}`,`Total Errors: ${o.length} (${T.join(" | ")})`,"================================================================================",""].join(`
|
|
21
|
+
`),O=1,$=[a(`SECTION ${O++}: FLUXFLOW ERRORS`,m,"FluxFlow"),a(`SECTION ${O++}: MEMORY ERRORS`,r,"Memory"),a(`SECTION ${O++}: USAGE ERRORS`,s,"Usage")];c.length>0&&$.push(a(`SECTION ${O++}: OTHER SYSTEM ERRORS`,c,"Other"));let E=L+$.join(`
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
`)+`
|
|
25
|
+
`;await R.writeFile(p,E,"utf8");try{await R.pathExists(S)&&await R.emptyDir(S)}catch{}return{exportFile:u,exportPath:p,entryCount:o.length,fluxflowCount:m.length,memoryCount:r.length,usageCount:s.length}},P=async(l,{chatId:u,messages:p})=>{let n=(l[1]||"chat").toLowerCase();return n==="chat"?{success:!0,type:"chat",message:`\u2726 Chat Exported
|
|
26
|
+
\u2800\u2800\u2514\u2500 ${(await k(u,p)).exportFile}
|
|
27
|
+
\u2800`}:n==="logs"?{success:!0,type:"logs",message:`\u2726 Error Logs Exported
|
|
28
|
+
\u2800\u2800\u2514\u2500 ${(await N()).exportFile}
|
|
29
|
+
\u2800`}:{success:!1,message:`[EXPORT USAGE] Unknown subcommand "${n}". Options:
|
|
30
|
+
\u2022 /export chat current
|
|
31
|
+
\u2022 /export logs error`}};export{j as a,k as b,I as c,N as d,P as e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as b}from"./chunk-YUJMCXJA.js";import{c as d,d as l}from"./chunk-SIINYZWE.js";import{f as h,g as m,l as C,m as M,s as f}from"./chunk-RI37VZYB.js";import u from"fs-extra";import j from"path";import{nanoid as L}from"nanoid";var D=Promise.resolve(),A=t=>{let r=D.then(async()=>{try{return await t()}catch(e){throw console.error("Lock Operation Failed:",e),e}});return D=r.catch(()=>{}),r},T=async()=>{await u.ensureDir(m);let t={};if(await u.pathExists(h))try{t=d(h,{})}catch{t={}}for(let r in t){let e=j.join(m,`${r}.json`);Object.defineProperty(t[r],"messages",{get:()=>{if(u.existsSync(e))try{return d(e,[])}catch{return[]}return[]},set:n=>{try{l(e,n)}catch{}},enumerable:!1,configurable:!0})}return t},B=async(t,r,e)=>A(async()=>{await u.ensureDir(m);let n=await T(),s=n[t],i=(e||[]).filter(a=>!a.isUpdateNotification&&(!a.isMeta||a.text&&a.text.includes("Request Cancelled"))),o=a=>{if(!a)return;let I=typeof a=="string"?a:a.text||a.content||"";if(!I||typeof I!="string")return;let w=I.replace(/\s*\n+\s*\[Prompted on:.*?\]/g,"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();if(!w)return;let O=w.split(/\s+/),E;return O.length>7?E=O.slice(0,7).join(" ")+"...":w.length>45?E=w.substring(0,45).trimEnd()+"...":E=w,E},c,y=i.filter(a=>a.role==="user"),p=y[0],g=y[y.length-1],x=o(g),H=o(p);s&&s.prompt?Math.random()<.3&&x?c=x:c=s.prompt:c=H||x;let S=r||(s?s.name:`Session ${t.slice(-6)}`),F=j.join(m,`${t}.json`);l(F,i),n[t]={name:S,prompt:c||void 0,updatedAt:Date.now()};let k={};for(let a in n)k[a]={name:n[a].name,prompt:n[a].prompt||void 0,updatedAt:n[a].updatedAt};l(h,k)}),J=async(t,r)=>A(async()=>{let e=await T();e[t]?(e[t].name=r,e[t].updatedAt=Date.now()):e[t]={name:r,updatedAt:Date.now()};let n={};for(let s in e)n[s]={name:e[s].name,prompt:e[s].prompt||void 0,updatedAt:e[s].updatedAt};l(h,n)}),N=async t=>A(async()=>{let r=await T();delete r[t];let e={};for(let o in r)e[o]={name:r[o].name,prompt:r[o].prompt||void 0,updatedAt:r[o].updatedAt};if(l(h,e),await u.pathExists(f))try{let o=d(f,[]);if(Array.isArray(o)){let c=o.filter(y=>Object.keys(y)[0]!==String(t));l(f,c)}}catch{}let n=d(C,{});n[t]&&(delete n[t],l(C,n));let s=d(M,{});s[t]&&(delete s[t],l(M,s)),await b.deleteChatBackups(t);let i=j.join(m,`${t}.json`);if(await u.pathExists(i))try{await u.remove(i)}catch{}return r}),Y=()=>`flow-${L(6)}`,q=async t=>{if(!t||t==="Never")return;let r=parseInt(t);if(isNaN(r))return;let e=await T(),n=Date.now(),s=r*24*60*60*1e3,i=0;for(let o in e){let c=e[o];c.updatedAt&&n-c.updatedAt>s&&(await N(o),i++)}return i},G=(t,r=4)=>{if(t.length<=1)return t;let e=t[0],n=t.slice(1),s=r*2,i=n.slice(s);return[e,...i]};var K=async(t,r,e)=>A(async()=>{let n=d(f,[]);Array.isArray(n)||(n=[]);let s=r||0,i=e||0,o={total:s,context:i},c=n.findIndex(p=>Object.keys(p)[0]===String(t));s===0&&i===0?c!==-1&&n.splice(c,1):c!==-1?n[c]={[String(t)]:o}:n.push({[String(t)]:o});let y=n.filter(p=>{if(!p||typeof p!="object")return!1;let g=Object.keys(p)[0];if(!g)return!1;let x=p[g];return x&&((x.total||0)>0||(x.context||0)>0)});l(f,y)}),Q=async t=>{try{if(!await u.pathExists(f))return{total:0,context:0};let r=d(f,[]);if(!Array.isArray(r))return{total:0,context:0};let e=r.find(n=>Object.keys(n)[0]===String(t));return e?{total:0,context:0,...e[String(t)]}:{total:0,context:0}}catch{return{total:0,context:0}}};export{T as a,B as b,J as c,N as d,Y as e,q as f,G as g,K as h,Q as i};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{a as X}from"./chunk-I4JQEUHE.js";import{a as rt,b as J}from"./chunk-SIINYZWE.js";import{d as G,h as V,i as M,j as O}from"./chunk-RI37VZYB.js";import D from"fs-extra";import I from"path";import Tt from"http";import R from"fs-extra";import Z from"path";import{spawn as Dt}from"child_process";import{fileURLToPath as St}from"url";var F=52991,Lt=15e3,ct=Z.join(G,"usage","usage_error.txt"),lt=async(e,t)=>{let o=t?.stack||t?.message||String(t);console.error(`[Usage Daemon Error] [${e}]:`,t);try{await R.ensureDir(Z.dirname(ct));let s=`[${new Date().toISOString()}] [Daemon:${e}] ${o}
|
|
2
|
+
-------------------------------------
|
|
3
|
+
|
|
4
|
+
`;await R.appendFile(ct,s,"utf8")}catch{}},j={agent:0,background:0,search:0,toolSuccess:0,toolFailure:0,toolDenied:0,duration:0,tokens:0,cachedTokens:0,candidateTokens:0,linesAdded:0,linesRemoved:0,imageCalls:[]},K=(e,t)=>{if(!e)return{};let o=Object.keys(e),n=new Date(new Date(t).getTime()-720*60*60*1e3),s={};for(let a of o)new Date(a)>=n&&(s[a]=e[a]);return s};async function Mt(){let e=new Date().toISOString().split("T")[0],t=null;try{if(await R.exists(M)){let o=(await R.readFile(M,"utf8")).trim();o.startsWith("{")||o.startsWith("[")?t=JSON.parse(o):t=JSON.parse(J(o))}}catch(o){await lt("loadUsageFromDisk",o)}if(t){let o={...j,...t.stats||{}};Array.isArray(o.imageCalls)||(o.imageCalls=[]);let n=t.history||{},s=K(n,e);if(t.date===e)return{...t,stats:o,history:s};{let a=t.date,r={...s};return a&&(r[a]=o),{date:e,stats:{...j},history:K(r,e)}}}return{date:e,stats:{...j},history:{}}}async function vt(e=F){let t=await Mt(),o=!1,n=!1,s=Date.now(),a=null,r=async()=>{if(t)try{await R.ensureDir(Z.dirname(M));let l=new Date().toISOString().split("T")[0];t.history=K(t.history||{},t.date||l),t.saveId=Math.random().toString(36).substring(2)+Date.now().toString(36);let i=rt(JSON.stringify(t,null,2));await R.writeFile(M,i,"utf8"),n=!1}catch(l){await lt("flushToDisk",l)}},c=async()=>{a&&clearInterval(a),await r(),u.close(()=>{process.exit(0)}),setTimeout(()=>process.exit(0),1e3).unref()};a=setInterval(async()=>{if(o)return;Date.now()-s>Lt&&await c()},5e3),a.unref&&a.unref();let u=Tt.createServer(async(l,i)=>{let d=l.url||"";if(l.method==="POST"&&d==="/heartbeat"){o||(s=Date.now()),i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify({ok:!0}));return}if((l.method==="GET"||l.method==="POST")&&d==="/finalize"){o=!0,a&&clearInterval(a),await r(),i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify({success:!0,message:"Finalized and written to disk"})),setTimeout(()=>{u.close(()=>process.exit(0)),setTimeout(()=>process.exit(0),500).unref()},3e3);return}if(l.method==="POST"&&d==="/flush"){o||(s=Date.now(),await r()),i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify({success:!0}));return}if(l.method==="POST"&&d==="/write"){if(o){i.writeHead(403,{"Content-Type":"application/json"}),i.end(JSON.stringify({error:"Daemon finalized. Writes locked."}));return}s=Date.now();let m="";l.on("data",h=>{m+=h}),l.on("end",async()=>{try{let h=JSON.parse(m||"{}"),k=new Date().toISOString().split("T")[0];if(t.date!==k){let T=t.date;T&&(t.history||(t.history={}),t.history[T]={...t.stats}),t.date=k,t.stats={...j}}t.stats||(t.stats={...j});let{key:y,amount:f=1,provider:p,model:S}=h;if(y&&t.stats[y]!==void 0&&typeof t.stats[y]=="number"&&(t.stats[y]+=Math.floor(f)),y==="agent"&&p&&(t.stats.providerRequests||(t.stats.providerRequests={}),t.stats.providerRequests[p]=(t.stats.providerRequests[p]||0)+Math.floor(f)),p&&S&&(y==="tokens"||y==="cachedTokens"||y==="candidateTokens")){t.stats.models||(t.stats.models={}),t.stats.models[p]||(t.stats.models[p]={}),t.stats.models[p][S]||(t.stats.models[p][S]={tokens:0,cachedTokens:0,candidateTokens:0});let T=t.stats.models[p][S];y==="tokens"&&(T.tokens+=Math.floor(f)),y==="cachedTokens"&&(T.cachedTokens+=Math.floor(f)),y==="candidateTokens"&&(T.candidateTokens+=Math.floor(f))}n=!0,await r(),i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify({success:!0}))}catch(h){i.writeHead(400,{"Content-Type":"application/json"}),i.end(JSON.stringify({error:h.message}))}});return}i.writeHead(404,{"Content-Type":"text/plain"}),i.end("Not Found")});u.listen(e,"127.0.0.1",()=>{s=Date.now()}),u.on("error",l=>{l.code==="EADDRINUSE"&&process.exit(0)})}async function Ut(e=F){try{if((await fetch(`http://127.0.0.1:${e}/heartbeat`,{method:"POST",signal:AbortSignal.timeout(300)})).ok)return!0}catch{}try{let t=St(import.meta.url);Dt(process.execPath,[t,"--usage-daemon-worker",`--port=${e}`],{detached:!0,stdio:"ignore",windowsHide:!0}).unref();for(let n=0;n<10;n++){await new Promise(s=>setTimeout(s,100));try{if((await fetch(`http://127.0.0.1:${e}/heartbeat`,{method:"POST",signal:AbortSignal.timeout(300)})).ok)return!0}catch{}}}catch{}return!1}async function tt(e,t=F){try{await Ut(t),await fetch(`http://127.0.0.1:${t}/write`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),signal:AbortSignal.timeout(1e3)})}catch{}}async function xt(e=F){try{await fetch(`http://127.0.0.1:${e}/heartbeat`,{method:"POST",signal:AbortSignal.timeout(600)})}catch{}}async function Ot(e=F){try{await fetch(`http://127.0.0.1:${e}/finalize`,{method:"GET",signal:AbortSignal.timeout(1e3)})}catch{}}if(process.argv.includes("--usage-daemon-worker")){let e=process.argv.find(o=>o.startsWith("--port=")),t=e?parseInt(e.split("=")[1],10):F;vt(t)}var dt=I.join(G,"usage","usage_error.txt"),W=async(e,t)=>{let o=t?.stack||t?.message||String(t);console.error(`[Usage Error] [${e}]:`,t);try{await D.ensureDir(I.dirname(dt));let s=`[${new Date().toISOString()}] [${e}] ${o}
|
|
5
|
+
-------------------------------------
|
|
6
|
+
|
|
7
|
+
`;await D.appendFile(dt,s,"utf8")}catch{}},g=null,v={agent:0,background:0,search:0,toolSuccess:0,toolFailure:0,toolDenied:0,duration:0,tokens:0,cachedTokens:0,candidateTokens:0,linesAdded:0,linesRemoved:0,imageCalls:[]},z=(e,t)=>{if(!e)return{};let o=Object.keys(e),n=new Date(new Date(t).getTime()-720*60*60*1e3),s={};for(let a of o)new Date(a)>=n&&(s[a]=e[a]);return s},$=async()=>{let e=new Date().toISOString().split("T")[0];try{!await D.exists(M)&&await D.exists(V)&&(await D.ensureDir(I.dirname(M)),await D.move(V,M))}catch{}let t=null;try{if(await D.exists(M)){let n=(await D.readFile(M,"utf8")).trim();n.startsWith("{")||n.startsWith("[")?t=JSON.parse(n):t=JSON.parse(J(n))}}catch(n){await W("loadUsageFromFile",n)}let o=t;if(o){let n=o.stats||{...v},s={...v,...n};Array.isArray(s.imageCalls)||(s.imageCalls=[]);let a=o.history||{},r=z(a,e);if(o.date===e)return{...o,stats:s,history:r};{let c=o.date,u=s,l={...r};return c&&(l[c]=u),{date:e,stats:{...v},history:z(l,e)}}}return{date:e,stats:{...v},history:{}}},zt=async()=>{},mt=30,Ct=()=>{let t=new Date().toISOString().split("T")[0];return I.join(O,`${t}.jsonl`)},Qt=async e=>{try{await D.ensureDir(O);let t={time:new Date().toISOString(),provider:e.provider||"unknown",model:e.model||"unknown",input:Number(e.prompt)||0,cached:Number(e.cached)||0,output:Number(e.output)||0,reasoning:Number(e.reasoning)||0};await D.appendFile(Ct(),JSON.stringify(t)+`
|
|
8
|
+
`,"utf8")}catch{}},bt=async()=>{try{if(!await D.exists(O))return;let e=new Date;e.setDate(e.getDate()-mt);let t=await D.readdir(O);for(let o of t){if(!o.endsWith(".jsonl"))continue;let n=o.replace(".jsonl","");/^\d{4}-\d{2}-\d{2}$/.test(n)&&new Date(n)<e&&await D.remove(I.join(O,o))}}catch{}},Yt=async(e=mt)=>{let t=[];try{if(!await D.exists(O))return t;let n=(await D.readdir(O)).filter(s=>s.endsWith(".jsonl")).sort().slice(-Math.max(1,e));for(let s of n)try{let a=await D.readFile(I.join(O,s),"utf8");for(let r of a.split(`
|
|
9
|
+
`))if(r.trim())try{t.push(JSON.parse(r))}catch(c){await W(`getTimedUsage:parseLine (${s})`,c)}}catch(a){await W(`getTimedUsage:readFile (${s})`,a)}}catch(o){await W("getTimedUsage",o)}return t},Vt=async()=>{g=await $(),await bt()},U=async()=>{let e=new Date().toISOString().split("T")[0];if(!g)g=await $();else if(g.date!==e){let t=g.date,o=g.stats,n=g.history||{};o&&(n[t]=o),g={date:e,stats:{...v},history:z(n,e)},isDirty=!0,await flushUsage()}return g&&g.stats&&!Array.isArray(g.stats.imageCalls)&&(g.stats.imageCalls=[]),g.stats},ut=async()=>{let e=new Date().toISOString().split("T")[0];g||(g=await $()),g.date!==e&&await U();let t=g.history||{},o=z(t,e);g.history=o;let n=g.stats||{...v},s={...v};s.imageCalls=[],s.models={};let a=(r,c)=>{for(let u in r)if(u==="imageCalls")r.imageCalls=[...r.imageCalls||[],...c.imageCalls||[]];else if(u==="models"){let l=c.models||{};for(let i in l){r.models[i]||(r.models[i]={});for(let d in l[i]){r.models[i][d]||(r.models[i][d]={tokens:0,cachedTokens:0,candidateTokens:0});let m=r.models[i][d],h=l[i][d];m.tokens+=h.tokens||0,m.cachedTokens+=h.cachedTokens||0,m.candidateTokens+=h.candidateTokens||0}}}else typeof r[u]=="number"&&(r[u]+=c[u]||0)};a(s,n);for(let r in o)a(s,o[r]);return s},Xt=async(e,t)=>{e==="toolSuccess"?E.toolSuccess++:e==="toolFailure"?E.toolFailure++:e==="toolDenied"&&E.toolDenied++;let o=await U();o[e]!==void 0&&o[e]++,t&&e==="agent"&&(o.providerRequests||(o.providerRequests={}),o.providerRequests[t]=(o.providerRequests[t]||0)+1),await tt({key:e,amount:1,provider:t})},E={linesAdded:0,linesRemoved:0,toolSuccess:0,toolFailure:0,toolDenied:0},Kt=async(e,t,o,n)=>{e==="linesAdded"?E.linesAdded+=t:e==="linesRemoved"&&(E.linesRemoved+=t);let s=await U();if(s[e]!==void 0&&(s[e]+=Math.floor(t)),o&&n&&(e==="tokens"||e==="cachedTokens"||e==="candidateTokens")){s.models||(s.models={}),s.models[o]||(s.models[o]={}),s.models[o][n]||(s.models[o][n]={tokens:0,cachedTokens:0,candidateTokens:0});let a=s.models[o][n];e==="tokens"&&(a.tokens+=Math.floor(t)),e==="cachedTokens"&&(a.cachedTokens+=Math.floor(t)),e==="candidateTokens"&&(a.candidateTokens+=Math.floor(t))}await tt({key:e,amount:t,provider:o,model:n})},ft=async(e=1)=>{let t=new Date,o=t.toISOString().split("T")[0];g||(g=await $()),g.date!==o&&await U();let n=t.getFullYear(),s=t.getMonth();t.getDate()<e&&(s-=1,s<0&&(s=11,n-=1));let c=new Date(n,s,e).toISOString().split("T")[0],u=g.history||{},l=g.stats||{...v},i={...v};i.imageCalls=[],i.models={};let d=(m,h)=>{for(let k in m)if(k==="imageCalls")m.imageCalls=[...m.imageCalls||[],...h.imageCalls||[]];else if(k==="models"){let y=h.models||{};for(let f in y){m.models[f]||(m.models[f]={});for(let p in y[f]){m.models[f][p]||(m.models[f][p]={tokens:0,cachedTokens:0,candidateTokens:0});let S=m.models[f][p],T=y[f][p];S.tokens+=T.tokens||0,S.cachedTokens+=T.cachedTokens||0,S.candidateTokens+=T.candidateTokens||0}}}else typeof m[k]=="number"&&(m[k]+=h[k]||0)};d(i,l);for(let m in u)m>=c&&m<o&&d(i,u[m]);return i},At=async(e,t={})=>{let o=await X().catch(()=>({})),n=t.apiTier||o.apiTier||"Free",s=t.quotas||t.systemSettings?.quotas||o.quotas||{},a=s.providerBudgets||{},r=!!a.__useProvider,c=t.aiProvider||o.aiProvider||"Google",u=r&&!!a[c],l=()=>{if(u){let i=a[c];return{agentLimit:typeof i.agentLimit=="number"&&i.agentLimit>0?i.agentLimit:99999999,tokenLimit:typeof i.tokenLimit=="number"&&i.tokenLimit>0?i.tokenLimit:99999999999999,monthlyTokenLimit:typeof i.monthlyTokenLimit=="number"&&i.monthlyTokenLimit>0?i.monthlyTokenLimit:99999999999999}}return{agentLimit:s.agentLimit||99999999,tokenLimit:s.tokenLimit||99999999999999,monthlyTokenLimit:s.monthlyTokenLimit||99999999999999}};if(e==="agent"){let{agentLimit:i,tokenLimit:d,monthlyTokenLimit:m}=l(),h=await U(),k;s.resetMode==="Custom"?k=await ft(s.resetDay||1):k=await ut();let y=0,f=0,p=0;if(u){y=h.providerRequests?.[c]||0;let S=h.models?.[c]||{};for(let P in S)f+=S[P]?.tokens||0;let T=k.models?.[c]||{};for(let P in T)p+=T[P]?.tokens||0}else y=h.agent||0,f=h.tokens||0,p=k.tokens||0;return n==="Free"&&h.agent+h.background>=999999?{allowed:!1,reason:"Free Tier Daily Usage Limit Exceeded"}:y>=i?{allowed:!1,reason:u?`Daily Request Limit Reached for ${c}`:"Daily Agent Request Limit Reached"}:f>=d?{allowed:!1,reason:u?`Daily Token Budget Exhausted for ${c}`:"Daily Token Budget Exhausted"}:p>=m?{allowed:!1,reason:u?`Monthly Token Budget Exhausted for ${c}`:"Monthly Token Budget Exhausted"}:{allowed:!0}}if(e==="background"){let i=await U();if(n==="Free"&&i.agent+i.background>=999999)return{allowed:!1,reason:"Free Tier Background Limit Exceeded"};let d=i.background<(s.backgroundLimit||999999);return{allowed:d,reason:d?void 0:"Background Request Limit Exceeded"}}if(e==="search"){let d=(await U()).search<(s.searchLimit||100);return{allowed:d,reason:d?void 0:"Search Quota Exceeded"}}return{allowed:!0}},Zt=async(e,t={})=>(await At(e,t)).allowed,et=e=>{if(!e||e.length===0)return[];let o=[...e].sort((s,a)=>s.timestamp-a.timestamp),n=[];for(let s of o){if(n.length>0){let a=n[n.length-1];if(s.timestamp>=a.start&&s.timestamp<a.end){a.calls.push(s),a.spent+=s.cost;continue}}n.push({start:s.timestamp,end:s.timestamp+36e5,calls:[s],spent:s.cost})}return n},gt=(e,t)=>{if(!e||e.length===0)return .025;let n=et(e);if(n.length===0)return .025;let s=[];for(let d of n){let m=.025;if(s.length>0){let k=s[s.length-1],y=!1;if(s.length>=2){let f=s[s.length-2];k.ratio>=.8&&f.ratio>=.8&&(y=!0)}if(y)m=.015;else{let f=k.limit,p=k.ratio;p>=.8?m=f===.015?.015:f:p<.4?m=Math.min(.025,f+.005):p>=.4&&p<.6?m=Math.min(.025,f+.004):m=Math.min(.025,f+.002)}}let h=m>0?d.spent/m:0;s.push({limit:m,spent:d.spent,ratio:h})}let a=n[n.length-1];if(t<a.end)return s[s.length-1].limit;let r=s[s.length-1].limit,c=r,u=s[s.length-1].ratio,l=a.end,i=0;for(let d=s.length-1;d>=0&&s[d].ratio>=.8;d--)i++;for(;l<=t;){let d=.025;i>=2?d=.015:u>=.8?d=c===.015?.015:c:u<.4?d=Math.min(.025,c+.005):u>=.4&&u<.6?d=Math.min(.025,c+.004):d=Math.min(.025,c+.002),c=d,u=0,i=0,l+=36e5,r=d}return r},te=async e=>{let t=e.imageSettings||{keyType:"Default",quality:"Low-High"};if(t.keyType!=="Default")return!0;let n={Low:.001,"Low-High":.002,Medium:.008,"Medium-High":.01,High:.045,Ultra:.0488,Premium:.15}[t.quality]||.002,s=await U();s.imageCalls||(s.imageCalls=[]);let a=Date.now(),r=et(s.imageCalls),c=0;if(r.length>0){let l=r[r.length-1];a>=l.start&&a<l.end&&(c=l.spent)}let u=gt(s.imageCalls,a);return c+n<=u},ee=async()=>{let e=await U();e.imageCalls||(e.imageCalls=[]);let t=Date.now(),o=et(e.imageCalls),n=[],s=0,a=0;if(o.length>0){let l=o[o.length-1];t>=l.start&&t<l.end&&(n=l.calls,s=l.spent,a=Math.max(0,Math.ceil((l.end-t)/(60*1e3))))}let r=gt(e.imageCalls,t),c=Math.max(0,r-s),u=s;return{totalSpent:s,remaining:c,activeCallsCount:n.length,nextResetMin:a,reclaimCost:u,limit:r}},se=async e=>{let t=e.imageSettings||{keyType:"Default",quality:"Low-High"},n={Low:.001,"Low-High":.002,Medium:.008,"Medium-High":.01,High:.045,Ultra:.0488,Premium:.1}[t.quality]||.002,s=await U();s.imageCalls||(s.imageCalls=[]),s.imageCalls.push({timestamp:Date.now(),cost:n}),queueFlush()},oe=async()=>{let e=new Date().toISOString().split("T")[0];g||(g=await $()),g.date!==e&&await U();let t=g.stats||{...v},o=g.history||{},n=new Set(Object.keys(o));n.add(e);let a=Array.from(n).sort().map(L=>{let x=L===e?t:o[L]||{},w={...v,...x},H=w.tokens||0,_=w.cachedTokens||0,N=w.candidateTokens||0,B=Math.max(0,H-N),q=Math.max(0,B-_),C=w.agent||0,b=w.background||0,A=w.search||0,ht=C+b+A,Q=w.toolSuccess||0,st=w.toolFailure||0,ot=w.toolDenied||0,Y=Q+st+ot,pt=Y>0?(Q/Y*100).toFixed(1):"100.0",nt=w.linesAdded||0,at=w.linesRemoved||0,it=Array.isArray(w.imageCalls)?w.imageCalls:[],yt=it.reduce((kt,wt)=>kt+(wt.cost||0),0);return{date:L,tokens:H,cachedTokens:_,candidateTokens:N,promptTokens:B,uncachedPromptTokens:q,agent:C,background:b,search:A,totalRequests:ht,toolSuccess:Q,toolFailure:st,toolDenied:ot,totalTools:Y,toolSuccessRate:parseFloat(pt),linesAdded:nt,linesRemoved:at,netLines:nt-at,duration:w.duration||0,imageCallsCount:it.length,imageCost:yt,models:w.models||{},providerRequests:w.providerRequests||{}}}),r=await X().catch(()=>({})),c=r.quotas||{},u=r.apiTier||"Free",l=await ut().catch(()=>({tokens:0,agent:0})),i=null;c.resetMode==="Custom"&&(i=await ft(c.resetDay||1).catch(()=>({tokens:0})));let d=c.tokenLimit||0,m=c.monthlyTokenLimit||0,h=c.agentLimit||0,k=c.resetMode||"Daily",y=c.resetDay||1,f=c.providerBudgets||{},p=!!f.__useProvider,S=["Google","Anthropic","OpenAI","DeepSeek","Mistral","NVIDIA","OpenRouter","Ollama","InferX","SenseNova","AIHubMix","Poolside"];Object.keys(f).forEach(L=>{L!=="__useProvider"&&!S.includes(L)&&S.push(L)});let T=[];for(let L of S){let x=f[L];if(x&&(x.agentLimit||x.tokenLimit||x.monthlyTokenLimit)){let w=0,H=t.models?.[L]||{};for(let A in H)w+=H[A]?.tokens||0;let _=0,N=(c.resetMode==="Custom"?i?.models:l?.models)?.[L]||{};for(let A in N)_+=N[A]?.tokens||0;let B=t.providerRequests?.[L]||0,q=x.tokenLimit||0,C=x.monthlyTokenLimit||0,b=x.agentLimit||0;T.push({provider:L,dailyTokens:w,dailyTokenLimit:q,isDailyUnlimited:q>=9999999999999||q===0,monthlyTokens:_,monthlyTokenLimit:C,isMonthlyUnlimited:C>=9999999999999||C===0,dailyRequests:B,dailyAgentLimit:b,isRequestsUnlimited:b>=9999999||b===0})}}let P={apiTier:u,resetMode:k,resetDay:y,quotas:c,usingProviderBudgets:p&&T.length>0||T.length>0,providerBudgetsList:T,daily:{tokensUsed:t.tokens||0,tokenLimit:d,agentRequests:t.agent||0,agentLimit:h,isUnlimitedTokens:d>=9999999999999||d===0,isUnlimitedRequests:h>=9999999||h===0},monthly:{tokensUsed:(c.resetMode==="Custom"?i?.tokens:l?.tokens)||0,tokenLimit:m,isUnlimitedTokens:m>=9999999999999||m===0},providerBudgets:f};return{currentDate:e,todayStats:t,history:o,timeline:a,budget:P,runtimeSession:{...E}}};export{xt as a,Ot as b,zt as c,Qt as d,Yt as e,Vt as f,U as g,ut as h,Xt as i,E as j,Kt as k,ft as l,At as m,Zt as n,et as o,gt as p,te as q,ee as r,se as s,oe as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"./chunk-
|
|
1
|
+
import{a,b,c,d,e}from"./chunk-COUKJJ4O.js";import"./chunk-RI37VZYB.js";export{b as exportCurrentChat,d as exportErrorLogs,e as handleExport,a as parseAgentText,c as parseLogEntries};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as $}from"./chunk-YUJMCXJA.js";import{a as T}from"./chunk-Y5JU726N.js";import{
|
|
1
|
+
import{a as $}from"./chunk-YUJMCXJA.js";import{a as T}from"./chunk-Y5JU726N.js";import{q as S,r as C,s as B}from"./chunk-RN5BZJYO.js";import{a as I}from"./chunk-I4JQEUHE.js";import"./chunk-QGPOMXO4.js";import"./chunk-SIINYZWE.js";import"./chunk-RI37VZYB.js";import b from"fs-extra";import E from"path";var F=(a,y={})=>{try{if(a.length<8||a[0]!==137||a[1]!==80||a[2]!==78||a[3]!==71)return a;let s=[],c=[];for(let r=0;r<256;r++){let e=r;for(let n=0;n<8;n++)e&1?e=3988292384^e>>>1:e=e>>>1;c[r]=e}let l=r=>{let e=4294967295;for(let n=0;n<r.length;n++)e=c[(e^r[n])&255]^e>>>8;return(e^4294967295)>>>0},f=(r,e)=>{let n=Buffer.from(r,"ascii"),i=Buffer.from(e,"utf-8"),u=n.length+1+i.length,o=Buffer.alloc(8+u+4);o.writeUInt32BE(u,0),o.write("tEXt",4,"ascii"),n.copy(o,8),o[8+n.length]=0,i.copy(o,8+n.length+1);let w=l(o.subarray(4,8+u));return o.writeUInt32BE(w,8+u),o};for(let[r,e]of Object.entries(y))e!=null&&s.push(f(r,String(e)));if(s.length===0)return a;if(a.subarray(12,16).toString("ascii")==="IHDR"){let e=a.subarray(0,33),n=a.subarray(33);return Buffer.concat([e,...s,n])}return a}catch{return a}},N=async(a,y={})=>{let s=T(a),c=s.prompt||s.text,l=s.path||s.outputPath||s.output||"generated_image.png",f=s.ratio;if(!c)return'ERROR: Missing "prompt" argument for generate_image.';let r=["nsfw","naked","nudity","nude","porn","sex","xxx","erotic","gore","bloody","violence","abuse","suicide","murder","hentai","pedophile","rape"],e=c.toLowerCase();if(r.some(i=>e.includes(i)))return"ERROR: Prompt blocked by system safety filter (inappropriate or unsafe content detected).";try{let i=await I();if(!await S(i))return`ERROR: Insufficient Quota for selected quality. Either tell user reduce quality or wait for next refresh cycle (${(await C()).nextResetMin||60}m).`;let o=i.imageSettings||{keyType:"Default",quality:"Low-High",apiKey:""},w=o.keyType==="Custom"&&o.apiKey?o.apiKey:FALLBACK_IMAGE_KEY,x={Low:"flux","Low-High":"zimage",Medium:"gptimage","Medium-High":"gptimage",High:"qwen-image",Ultra:"gptimage-large",Premium:"nanobanana-pro"}[o.quality]||"zimage",g=1024,m=1024;if(f){let t=f.replace(/\s+/g,"");t==="16:9"?(g=1024,m=576):t==="9:16"?(g=576,m=1024):t==="4:3"?(g=1024,m=768):t==="3:4"?(g=768,m=1024):t==="1:1"&&(g=1024,m=1024)}let M=Math.floor(Math.random()*1e7),k=`https://gen.pollinations.ai/image/${encodeURIComponent(c)}?model=${x}&width=${g}&height=${m}&seed=${M}&enhance=true&reasoning=high&quality=high&negative=${encodeURIComponent("deformed, distorted, disfigured, poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, disconnected limbs, mutation, mutated hands and fingers, blurry, low quality, low resolution, extra fingers, censored, watermarks, signatures")}`,d=await fetch(k,{method:"GET",headers:{Authorization:`Bearer ${w}`}});if(!d.ok){let t=d.status,h="";try{h=await d.text()}catch{}return t===402||h.includes("Insufficient balance")||h.includes("PAYMENT_REQUIRED")?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed with status [${t}]: ${h||"Unknown API Error"}`}if((d.headers.get("content-type")||"").includes("application/json")){let t=await d.json();return t.status===402||t.error&&t.error.code==="PAYMENT_REQUIRED"?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed: ${t.error?.message||JSON.stringify(t)}`}let O=await d.arrayBuffer(),p=Buffer.from(O),P={Title:c,Description:"Generated via FluxFlow CLI",Software:"FluxFlow CLI",Author:"FluxFlow","Creation Time":new Date().toISOString(),Prompt:c,Model:`Fluxflow:${x}`,Ratio:f||"1:1",Seed:String(M)};p=F(p,P);let R=E.resolve(process.cwd(),l);await b.ensureDir(E.dirname(R)),await $.recordFileChange(R),await b.writeFile(R,p),await B(i);let v=E.extname(l).toLowerCase(),L={".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".webp":"image/webp"}[v]||"image/png";return y.isMultiModal!==!1?{text:`SUCCESS: Image successfully generated from prompt [${c}] and saved to [${l}]. Output attached to multimodal part`,binaryPart:{inlineData:{data:p.toString("base64"),mimeType:L}}}:`SUCCESS: Image successfully generated from prompt [${c}] and saved to [${l}].`}catch(i){return`ERROR: Failed during image generation: ${i instanceof Error?i.message:String(i)}`}};export{N as generate_image};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{a as k,c as d}from"./chunk-56EJGQU3.js";import{a as b}from"./chunk-Y5JU726N.js";var I=async(w,s={})=>{let{runSubagent:U}=await import("./ai-
|
|
1
|
+
import{a as k,c as d}from"./chunk-56EJGQU3.js";import{a as b}from"./chunk-Y5JU726N.js";var I=async(w,s={})=>{let{runSubagent:U}=await import("./ai-Y4IR3IJZ.js"),l=b(w),c=l.task||l.instruction||l.prompt,C=l.model||null,E=l.title||null,m=l.tools||null;if(!c)return'ERROR: Missing "task" argument for invoke.';let f=null;if(m)try{let t=m.trim();t.startsWith("[")&&t.endsWith("]")&&(t=t.substring(1,t.length-1)),f=t.split(",").map(n=>n.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let i=`subagent-${Date.now()}-${Math.floor(Math.random()*1e3)}`,h=null,S=null,$=new Promise((t,n)=>{h=t,S=n}),e={id:i,title:E||c.substring(0,30),task:c,status:"running",startedAt:Date.now(),lastChunkTime:Date.now(),wps:0,questions:[],pendingSteerMessages:[],steer:t=>{t&&e.pendingSteerMessages.push(t)},completionPromise:$,_resolveCompletion:h,_rejectCompletion:S,progress:[]},r={chunks:[],totalWords:0};k.push(e),s.onSubagentUpdate&&s.onSubagentUpdate();let a=[],M={...s,taskId:i,onAskMain:async t=>{let n=`q-${Date.now()}-${Math.floor(Math.random()*1e3)}`,o=null,p=new Promise(g=>{o=g}),u={id:n,question:t,answered:!1,answer:null,askedAt:Date.now(),_resolve:o};return e.questions.push(u),e.status="waiting",s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" is WAITING FOR YOUR INPUT: "${t}"
|
|
2
2
|
Respond using tool: [tool:Answer(id="${i}", answer="...")]
|
|
3
3
|
[/SYSTEM]`),await p},onVisualFeedback:t=>{e.lastChunkTime=Date.now();let n=t.replace(/\x1b\[[0-9;]*m/g,""),o=n.match(/[✔✘✗✖🔍📖→➕↻•]\s*([A-Za-z0-9\s-]+)/);o?e.currentTool=o[1].trim():e.currentTool=n,s.onSubagentUpdate&&s.onSubagentUpdate()},onTokenChunk:(t,n)=>{let o=Date.now();if(e.lastChunkTime=o,e.currentTool="Thinking",typeof n=="number"&&n>0){r.totalWords+=n,r.chunks.push({time:o,words:n});let p=o-400;if(r.chunks=r.chunks.filter(u=>u.time>=p),r.chunks.length>0){let u=r.chunks.reduce((_,A)=>_+A.words,0),T=r.chunks[0].time,g=Math.max(.4,(o-T)/1e3);e.wps=Math.round(u/g)}}s.onSubagentUpdate&&s.onSubagentUpdate()}};return U(c,M,C,f,50,t=>{if(e.status==="cancelled")return;if(t.startsWith("[Subagent Turn")&&a.length>0&&(e.progress.push([...a]),a=[]),t.includes("[Executing Tool]")){let o=t.match(/\[Executing Tool\]\s*([a-zA-Z0-9_]+)/);o&&(!e.currentTool||e.currentTool==="Thinking")&&(e.currentTool=o[1])}let n=t;if(n.startsWith("[Tool Result]")){let o=n.split(`
|
|
4
4
|
`);o.length>5&&(n=o.slice(0,4).join(`
|
|
5
5
|
`)+`
|
|
6
|
-
... [Content/Diff Truncated from Logs] ...`)}a.push(n),s.onSubagentUpdate&&s.onSubagentUpdate()},!0).then(t=>{if(e.status==="cancelled"){e._resolveCompletion&&e._resolveCompletion(t);return}a.length>0&&(e.progress.push([...a]),a=[]),e.status="completed",e.finalAnswer=t,s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" (id: ${i}) has FINISHED. Call GetProgress(id="${i}") to see the final result. [/SYSTEM]`),e._resolveCompletion&&e._resolveCompletion(t)}).catch(async t=>{let{isTerminationSignaled:n}=await import("./ai-
|
|
6
|
+
... [Content/Diff Truncated from Logs] ...`)}a.push(n),s.onSubagentUpdate&&s.onSubagentUpdate()},!0).then(t=>{if(e.status==="cancelled"){e._resolveCompletion&&e._resolveCompletion(t);return}a.length>0&&(e.progress.push([...a]),a=[]),e.status="completed",e.finalAnswer=t,s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" (id: ${i}) has FINISHED. Call GetProgress(id="${i}") to see the final result. [/SYSTEM]`),e._resolveCompletion&&e._resolveCompletion(t)}).catch(async t=>{let{isTerminationSignaled:n}=await import("./ai-Y4IR3IJZ.js");if(t.message==="Subagent task was cancelled."||e.status==="cancelled"||n()){e.status="cancelled",a.push("[SUBAGENT CANCELLED] Task was cancelled."),e.progress.push([...a]),s.onSubagentUpdate&&s.onSubagentUpdate(),e._resolveCompletion&&e._resolveCompletion(null);return}a.push(`[SUBAGENT FAILURE] Error: ${t.message}`),e.progress.push([...a]),e.status="failed",e.error=t.message,s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" (id: ${i}) FAILED with error: ${t.message}. [/SYSTEM]`),e._rejectCompletion&&e._rejectCompletion(t)}),`SUCCESS: Background subagent started. Task ID: ${i}`};export{I as invoke};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as o}from"./chunk-Y5JU726N.js";var k=async(b,t={})=>{let{runSubagent:u}=await import("./ai-
|
|
2
|
-
`),e}catch(e){let{isTerminationSignaled:i}=await import("./ai-
|
|
1
|
+
import{a as o}from"./chunk-Y5JU726N.js";var k=async(b,t={})=>{let{runSubagent:u}=await import("./ai-Y4IR3IJZ.js"),s=o(b),a=s.task||s.instruction||s.prompt,m=s.model||null,l=s.tools||null;if(!a)return'ERROR: Missing "task" argument for invokeSync.';let r=null;if(l)try{let e=l.trim();e.startsWith("[")&&e.endsWith("]")&&(e=e.substring(1,e.length-1)),r=e.split(",").map(i=>i.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let n=s.title||a.substring(0,30);try{t.onVisualFeedback&&t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n}`);let e=await u(a,t,m,r,50);return t.onVisualFeedback&&t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n} [COMPLETED]
|
|
2
|
+
`),e}catch(e){let{isTerminationSignaled:i}=await import("./ai-Y4IR3IJZ.js"),c=e.message==="Subagent task was cancelled by user."||i();if(t.onVisualFeedback){let d=c?"[CANCELLED]":"[FAILED]";t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n} ${d}
|
|
3
3
|
`)}return`ERROR: Subagent execution failed: ${e.message}`}};export{k as invokeSync};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import y from"http";import{spawn as m}from"child_process";import{fileURLToPath as g}from"url";var T=600*1e3,c=52145,S=69;function w(e=null,n=c){let t=[],i=null,o=null,p=()=>{i&&clearTimeout(i),i=setTimeout(()=>{u()},T)},u=()=>{i&&clearTimeout(i),o&&clearInterval(o),l.close(()=>{process.exit(0)}),setTimeout(()=>process.exit(0),1e3).unref()};e&&(o=setInterval(()=>{try{process.kill(e,0)}catch{u()}},15e3),o.unref&&o.unref());let l=y.createServer((r,s)=>{if(p(),r.method==="GET"&&r.url==="/history"){s.writeHead(200,{"Content-Type":"application/json"}),s.end(JSON.stringify({history:t}));return}if(r.method==="POST"&&r.url==="/history"){let h="";r.on("data",a=>{h+=a}),r.on("end",()=>{try{let a=JSON.parse(h||"{}");Array.isArray(a.history)?t=a.history:a.user&&a.assistant&&(t.push({role:"user",text:a.user}),t.push({role:"model",text:a.assistant}));let d=Math.floor(t.length/2),f=d>=S;s.writeHead(200,{"Content-Type":"application/json"}),s.end(JSON.stringify({success:!0,count:t.length,turns:d,maxReached:f})),f&&setTimeout(u,200)}catch(a){s.writeHead(400,{"Content-Type":"application/json"}),s.end(JSON.stringify({error:a.message}))}});return}if(r.method==="POST"&&r.url==="/clear"){t=[],s.writeHead(200,{"Content-Type":"application/json"}),s.end(JSON.stringify({success:!0,message:"History cleared"}));return}if(r.method==="POST"&&r.url==="/shutdown"){s.writeHead(200,{"Content-Type":"application/json"}),s.end(JSON.stringify({success:!0,message:"Daemon shutting down"})),setTimeout(u,100);return}s.writeHead(404,{"Content-Type":"text/plain"}),s.end("Not Found")});l.listen(n,"127.0.0.1",()=>{p()}),l.on("error",r=>{r.code==="EADDRINUSE"&&process.exit(0)})}async function H(e=c){try{return(await fetch(`http://127.0.0.1:${e}/clear`,{method:"POST",signal:AbortSignal.timeout(600)})).ok}catch{return!1}}async function v(e=c){try{let n=await fetch(`http://127.0.0.1:${e}/history`,{signal:AbortSignal.timeout(600)});if(!n.ok)return[];let t=await n.json();return Array.isArray(t.history)?t.history:[]}catch{return[]}}async function N(e,n,t=c){try{await A(t),await fetch(`http://127.0.0.1:${t}/history`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:e,assistant:n}),signal:AbortSignal.timeout(1e3)})}catch{}}async function A(e=c){try{if((await fetch(`http://127.0.0.1:${e}/history`,{signal:AbortSignal.timeout(400)})).ok)return!0}catch{}try{let n=g(import.meta.url);m(process.execPath,[n,"--daemon-worker",`--port=${e}`],{detached:!0,stdio:"ignore",windowsHide:!0}).unref();for(let i=0;i<10;i++){await new Promise(o=>setTimeout(o,100));try{if((await fetch(`http://127.0.0.1:${e}/history`,{signal:AbortSignal.timeout(400)})).ok)return!0}catch{}}}catch{}return!1}if(process.argv.includes("--daemon-worker")){let e=process.argv.find(o=>o.startsWith("--parent-pid=")),n=e?parseInt(e.split("=")[1],10):null,t=process.argv.find(o=>o.startsWith("--port=")),i=t?parseInt(t.split("=")[1],10):c;w(n,i)}export{H as clearPromptSessionHistory,A as ensureSessionDaemonRunning,v as getPromptSessionHistory,w as runSessionDaemon,N as savePromptSessionHistory};
|