@namphuongtechnologi/np-hub 0.1.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.
@@ -0,0 +1,802 @@
1
+ "use strict";var SupportWidget=(()=>{var b=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var q=(o,a)=>{for(var e in a)b(o,e,{get:a[e],enumerable:!0})},M=(o,a,e,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let i of U(a))!R.call(o,i)&&i!==e&&b(o,i,{get:()=>a[i],enumerable:!(t=F(a,i))||t.enumerable});return o};var j=o=>M(b({},"__esModule",{value:!0}),o);var J={};q(J,{registerSupportWidget:()=>z});var V="https://namphuong-api.azurewebsites.net",P="https://namphuong-api-dev.azurewebsites.net";function v(o){return o.isDev?P:V}function x(o){if(!o.projectId||o.projectId.trim().length===0)throw new Error("projectId is required.")}function w(o){if(!o.name?.trim())throw new Error("user.name is required.");if(!o.email?.trim())throw new Error("user.email is required.");if(!o.phoneNumber?.trim())throw new Error("user.phoneNumber is required.")}function y(o){if(!o.content?.trim())throw new Error("Content is required.")}async function E(o,a){let e=await fetch(o,{method:"POST",body:a});if(!e.ok){let t=await e.text();throw new Error(`Request failed (${e.status}): ${t}`)}return await e.json()}async function k(o,a){let e=`${o.replace(/\/$/,"")}/api/supportcenter/create-request-anonymous`;return E(e,a)}var u={OPEN:"np-hub-open",CLOSE:"np-hub-close",SUBMIT_SUCCESS:"np-hub-submit-success",SUBMIT_ERROR:"np-hub-submit-error"};var I="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdgAAAFoCAYAAAD0E+rsAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAGhASURBVHgB7b19jBxnfuf3e6pnhiOt1mru2o4Dv6h1vthOYICjPwKsKG3YvOS80sYHDoG8rH1rc+hccr7gEpJBgpBCLhzuBSsCvoCkAyQOEIDDg2M7b+AQF1jatRE2vRK1uD+iUWDj9g/j1Lq1DQdnL0cnrTQcTtdzv+f9eaq7Z6pnqqerp78fiTPd1VXV1TXVz7d+r48gAMDkaF9u0Q61KOd/UjQpo+eIZJNfaRHxc6kfk35M7vEgxCa/vmkeUtcu7JKkD3i/mzSnHvPrc4sb1FndJADA2BEEABg/Ski3qU1CnGDRa7EYLpEW0UnAgivkhhZeku9RQ2xQg593rncJAFAZEFgAqiYWU35mBbVJtccJLz1gS7oDaxeAgwGBBeCgtFebtL21zN+mUyxObZqYZToGBFu3xGIr5D1663qHAAClgcACsB9evtzmuOkp/ga1rajOBoLFVtIdWuDfcCkDsCsQWADKokRVijMsMCvT4fIdMxBbAHYFAgvAbpx8bYkoP8NflYsQ1V3wYru4jrgtAAYILABFVEz18eMVyuSZmXL/VoJOlFrnkeUOYrZg1oHAAuD4wuUWZXQO1mpFqAQpKW/Rw+trBMAMAoEFQMdW6Sqs1bHRJZndpGP5PcRqwSwBgQWzC4T1kLHu43m6BqEFswAEFsweJy+v8M+rdJTqVacNQWsQWnDUgcCC2cHUrt4mCGudWKUFugOhBUcRCCw4+sAVXHe6/O8akqHAUQMCC44uOitY3CCSywSmgS5JcYneeX2dADgCQGDB0eTk5asot5lSEJ8FRwQILDhaHJk4q5vfVWyQ4N9qXldl4TV4uZrXNc82aSEPHZNiMVKNMmgr3FhsZ03K8iYJ0aSem2uW+DmdsHPOLlH9UNbsLbZmbxIAUwoEFhwNlKg8ecxxVnmRpg09Y43coFy8pydGn8TcrKolpBLhnljSswIJNQF8DYRXtWCcp/OwZsE0AoEF089UWa22FlSJqRLSOs+5qm5adraWvOiquW0n4nJXVju7jGHNgikDAguml6mwWpWrVzfCf0DHWFin3RJTlq6U7cn0aRbrtCAvwZoF0wIEFkwnZpabu1RLq1XHT+9QRutHuuG9usHpPW7Tjly2Fm6Lxo+KQ1+ibyHTGNQfCCyYPl587QKJvGbuwhkR1d1QrvoerXBM+cwhuJJX6eH1awRAjYHAgulBWUzbj2/Xqq5VJeEIjg/WOZZ62Oi/05ayas+N1Y2MBChQcyCwYDowU8ndp1q4hLW1eosWFm9CVPdA/d0EW5vjcyF3aYFOQ2RBHYHAgvrz0hVlCd2ceNMIoZOV7rCwrkNY98HYJllQmdl0kd5+/Q4BUCMgsKDe6I5MbAFNEucGntXYatUooRXiwhjqbBGXBbUCAgvqy8nLqrZ1hSYFhHW8jGcSBogsqA0QWFA/dH3r1t0Jzn7T5XjveQjrIVG161j3Ml68BDc+mDQQWFAvVFJMQ9ydTJs+dAyaKFUKrWo/OX/sNEQWTBIILKgPk80UVlnBqxiQa8DJy6s8NF04cFIbRBZMGAgsqAeTEledGZxdoodf3yBQH0J5zzk6GCjjARMDAgsmz0TEFe7gqaAatzGL7OILsGTBYQOBBZNlEuKKDkDTRRXWLNzFYAJAYMHkOHRxhdU61XzxyjL15A3a7/UCkQWHTIMAmASHb7l2ibJXWVwxC8u08s/e+g796Mv3WChb/OxnaHR+hPKdH6HvvnWPADgEILDg8FF1rvnOO3R44qoyhH+BvvX3uwSmmz95a5MF8n+jH39Zed/aNDpL9BNfbPI+vkEAjBkILDh8fvQLb5Aa6A4DKS7RO9dXqdvZInB0+O5bHRbKD9nv+wV+tkij8QUWaLWPBwTAGEEMFhwuL125QVJepPHTZZfwWZTfHHEOEmoQYgUTBIBxkhEAh4Vq3H8Y4qqSWVTtI8T16PPt613K+W+t/uajomZoOvnaBDqGgVkBFiw4HF587QKJ/BCyd8U6LRw7j0zRGUR3gNI1s6OARhRgbCAGC8aPceP9Do0eKxuVW/Tw+nnEW2cUFZcdPfmpyRbwEm8LVzGoHAgsGC8hRvYjNF6usbheJjDbGJH9gB8tj7BVC5nFYBwgBgvGS1bhNGTDUeK6SgAoHl5f4wvvBdKJbiVRuQFqfloAKgQCC8aHSmoa/4TpEFfQj0pwU8lPo4hsTrd1jTYAFQGBBeNBuYaJVmm8QFzBcFyGcXmRbdGTrbsEQEUgBguqJ3RqGqc1AHEFe6M6P+n2ijomW+Z6bNGPffFD3u7bBMABgQULqufJ43HHXSGuoDyjWrKCrlJbe2AAOBAQWFAtav7O8TaTgLiC0RlJZGWTnnA8FoADgkYToDrGP0OOqnM9jDaL4Kgy2jV63mQkA7A/YMGC6hhnSY5qhQdxBQdFWbKqR7WaG3hPxA1kFYODAIEF1aBcw+MryenSvDxLAFSBKuFpsHW6J8pV/HjU1osAeOAiBtVw8vL7NBbrlS2NBfnCYfeKXbp4X7kS23mWn5CSWlmWLfFvKYQU5msjSf+WLP6CNnkpx/jyDzORdfWyHepu3DzdJVBfXrpykaS8sed6Gcdu37reIQBGBAILDo5pKLFK4+HQ4mA/+1/+XltQdoY1dJm1tCWskEoSSk3ZS80LpBVW/QoZtbXfIiPAxe+U2OBlXX5tI8voPSW+G792GrP81IWTl9UEFBd2XUdQh96+fpoAGBEILDgYJmnkfRoPY88YZku1uZPlF/iLcFG7BJ1xqn8JLZiS1VEI4Zfrh1p30++PCD+19koptMVrfmupFsJurGLKvN8uS/cDto436Bna2Fg9jRmAJsFLl+/zH6e96zqwYsE+gMCCg3Hyyl1WjFEaq5dDJTW9/foLNCZ+9iJbq5k4xyK3QtZCNe+r9NNYqdIZqSyQTky1/lpL1Vuw9qG0v4Vb0wip2e+gx2oTyoVbzj+7vEBZvO9llHfomTmI7mGgEpm2t96l3UMcXb7Ze54AGAEILNg/JrFpHPWCY5ujUwkr6+NVFrF2v+ZlVjPNItr1+xHEVHrLVgTxtVavNC5lbQw7b7IVYvfMCKzxRFsx17/1u2fqRoMtXUlZJ2Ph3fgHpzsEqkdPvC7vay/GcFC2A0YCAgv2z9gSm6ofyJYuvtF6QuIqC9eKXiBsfNW4b+PvgYm3erPWG6pefIXf1m4RMp+oaNWGnTrVTHHLjcYatXZCbYO+wh+UE2+OCfI6Gw0pH9B8Y2PjOpKpKmHvpCdYsWAkILBgf4zLehW0Rm9fP08V0bp4t/l0/vQFFqaLLFLPmrcw4uljqS42atHWrF0xtnIji1SvRl6mzWaF/VLseg5WrbNdpRNNit/bvr/1MwdBlzLyYkcCb7ft8g43BDU6vezJgz/6tZ9DEtV+2TvkASsWlAYCC/bHeKzXSl3DP3vxjXae023pj9NmAwctNE/Dz5AJ7HVUuEfe9WsDtRSCtFG6U8GxHFnIYY/CLLcCavcblqcWdXqYZIVZ7Oq9pke80ntZJtZzId/7w3/w1zsEyrF3PBZWLCgNBBaMzvhir5VYB8pqfar3FB+fPBPHOG1ikiayPKPnfeU40tq7IZNY4eOk/ZnEnpAYJdP3oCiR2CyV0rulycVqfUw2PkbjOvaWtxPiSKwjkXbb+l10eI8d/v1gjuY2Nm4ieWooauL1XLdTHAasWFAKCCwYnXFYrxW5hn/q7/7uckMoq1Ulq4jgxvWClMZGCwdhZDWEVMmZqX5fTmN9RhIVArgiWMB2a/fcPy68p1lcEHzrFja/bfw2toP9JyP3xHe+6BdY2bdPfsZxXNqQOd2D4A5gt/pY1MWCkkBgwWiMxXo9eLcmbbXuLChhtfGzKKZKXp1Sm1KIWP+IfIIS7ZJCbC1TH6i17+WtWenFz8tfZD33W87CRlelCCZo2K33RIdCIePf9hbuIFu8z23tt/aWs/SZze6wOryQ47jZvT+8CZfynq5i1MWCEkBgwWiMJ/Z6oIYSP/N3/1GbrTblEm45EzPkBAVrziUVGRN1by0tJheZhUG50taJAenTmKLEp5CUHFzAcXayGHQIwbolZ3369/DBY2+52oMOL0nyNxHm0IXPRo50OISRE1NcdvicdrIsezCzgrubqxhWLCgBBBaUZzyx1wMljfzUf/qPrvKvVasgAwiZvFF2sDcW7fIonkkhNdi/XmggQcPex7tlI4O48Lrbh43x2gSnpJGFO9zkaewWjlOb4yOIjt9mGEsa6MaOn2dprFfGTTe8MG8q65Yf3OP1O390c4aylHdzFS8sHqfOKlzrYChzBEBZhLhARYvu4FyjffAzv3q3JUVDWa1tdUQ6QUkWkoKsdhUsOG/OSpOIpF+PP1ae27odmzFs4pYySTCKXLP2PXOhxMpYtLHFLGxYNoqgShcT9WrmNT31DjtDNNJADpqaXeTBkk4Kf/zuyRi8MtJzf7jSfhZ+/1yHkoXvRJULSmp29X6b6jzzoja/Lv+N//zND1SnLZHn93oN6nzn5qtdOqosLK7S9uNzNKgBxfaWmj5xlQAYAixYUI69Myv3gVinh6+PPA2dcgnnvfw2i8RzWjYzKeIwZNIKiSKPaMhQSq58L5XmWeo71kZgFulykkBkLMQoqSjp3pTkN1Fi3ZoexfYthJChG1TicjY7GjCJQFrSE2piZfJuIlXfIY7o9CRElriIXNn9W0axYPqAX+7w4dw7Ro87GzfPHi2rbmgDCrbsH75+nAAYAgQWlOPk5dtU9XyvC/T8qIlNP/23712QGd2UcTcIjYxjjHGu0MBga9AgqyzO/WpeTMtvfEKQsWydGpot42xiq2MiitFSVM0TuWIji1MWXMlmr8JbolaE7aH4CQQosnH1dtYqNR93t6zpuKuUP9bEJ26lNknMiqK+7h2dZdzvHn9AmdhosOD+4c1XO3QUGDYhAJKdwC5AYMHejGPGnBHLclSW8PyWuMGj9zknaF5IvQUZ3KQ2Hpl0RArWp3BtlEShF5OMnidFMOaQ44SkqM1iEGTro6Uo01jEbmKShfjsoAqeWO6TFyiIOlnzNCxPjHiiSOgLn4EoWTMdAoJoDlgljuv6dVx8Onkvf/z8b5OfdDKS7E7OptedPMyDg2QnsAsQWLA3Jy+v8s+rVCUjWK8q3rojSbWwWzJL+uzQgtM3pZgX5Ipd7Z5EspJ5Ivuyfb18mvWMO5ao6HoNFp/dTwjnekvXvJ2wwdxi56Y467dwXN5l6+8QrGWcfl7zXuYldxNgLVq72yC3BaKuUtFkQTRIcQec8mGrxtnQJLr8Fp0dKe9tzz3udKfJnTywjaIqMTv2PJKdwCAgsGBvqi7NGcF6/df+47tLuZB31fsPyfr1LlQvov1xUBlcmC6easQt0y7fSESJnPVL6XORaGH0siVekkx/5yKpXrCFiFeQdn0v0caXHLt604Qj+2FdQhJRf3xUyOg9pT2MIK9mSXBtDxgFpAyx4uSWIXVdR58yXp+8H0FG7mZ/bKlLvMNrrWc5Pfij//HfrXd2svbkiHepP+EJnZ3AQCCwYHe+eGWZelrgqqOk9fpX/vbdC5TnNxP/qHlQGKSLy8NvJQZZFhKFhlS4+DcY1P3QuaGjtwm9iiPhtTotXXZw7PIVPhkquKBlFNMNNqF1AosgThQZqmEB2X3HGb/puVHrZt7SDnHk8EGD+9zjLF4fN45eCucwaWThEqzcEVE4IcHg9pZz4jDwC+yNUZd/dnLZY+u2V0/rdpA3B25iMAQILNidqpObSlqvf+Vv/V9XeVxe1U/6rD7hBSsarylOMIo6FYWGEGE4l2lSTpp85Kzb+Kl/fz+NnHkT/n+Tn3KcUWzwW+rHvMaHQtX3kiqpydTbdnf7rLyXJtvV2iqSOf/Osmd5P00+8Ka0ngN+oxa/Ly+jZuF82p2Qv3OwKurywOxUeBTitzJYmhRvHp1fWaz7lRS81bFl786h01URt3i0dxLGwA2mv9mbeysRnQhfj6RWa2Ti5j/5H37+EtUJ3eHp8fupFQs3MRgMBBYMx7SLe0RVskfWpUpmyj56coOH2RWxR4xPBvenHsUj17GpiTVmkd1CDrzWQ3JQaCZRtNAii3iT96ncmRuyQe/NsXB+5zfOdumQ0TFpPlVamPPsOZlRK8tlK1dudCXIQk/LJ5Kbh8K5S3FdpkgUfd9elL3rOvL7Ro0yks5Y1jJOyot8rNrdwBQPyWwrgrmrf8zJ7IXauY4H5yTATQz6QKMJMJztrWWqFLFBb73eGfZqi4VDfPzkLg+wOpnJ13Q6/Cw2Lhiaex+mr5xxv/3CSGCoL+lHBC+sFOHtonpSLaq9WyyqnT/+X/79DtUAK+rdYa+rm5S5LVqSuWyKLDvBH3qJ/7XInte06b8z0KlwrslnA/v4tJQiJIiZhhqut0fSG1lap7TzjOuduMzjIM4UZ1pr/Q1eCufW7i1k9bMKFxZvshV7IbFiBZ3in2sEQAQsWDCcYbV/+2foXX5r5bdb7BO8rx7GQkqJq7IvQUaqTkSi32eZPhehbMeIhcv+UeFPyXFK8voSLDZ60CB5rS6iWhUmaYwt3YyWMilO5Ep4hRLefrd5YRJ6o4ADxgxn3prHhZiwNWYpyqa2y0VwvUcWssugzkRH9MS17/zG3+hQHelroYimE6AfCCwYTPW1r0N7DrdW/vclKfK7PAA/J5P4oA/b+VZ+IhmYKcn6iWOIbmMZ2jiRCMk/ZsC3GcXRwP8hr3GLnpm7OVXlIxXwV3/1rqrzXOLTsCQEW726JCpOUIrwNzKR+90LKZEo+PZtMDtOvgoueBnW4UWPWPj/oczz9T/+jbMdqjODvh9oOgEKwEUMBpNVarmaTMsBtP6j3zrHA6qyBprS1dZIt4mMDVDjZsy1i1OYfsFxgkxivIrknaN5VSNjix/lzkpmYZW3aGfhZndttoTVYQWtEy/7q3/r/2iLxtwJPtXP85/gBJ+oEyrJKmRE+/Mv2R0t3N8pzyXFCVIm2yqj6C9k1sx1cliHV3jA19vGH//GcoemhW9f79LJK+sU18X2hHLBdwgACwQWDEGcoeFZMaMz39/Uv7XyOxfynhJXaQpTi5aPTYxJOwvF8T/9XK9KST6ti736eCuFZRR+G3G9J3v5pe7aL3QJJFj3eCdeZuK7LCQ7vWbeaJxgkWW3qFBZzy2Ka2UpTK2nZuPh9VhM8w9kjz0ZItucE7Txnf/58BPEKiXjm7KclqPn/J2hmwSABS5iMJiTVx7RoBlE9sOAOsGfWPntq7z/VUpDeHZ1ijKEo2YIPofG1oRYv2/U6GiP6zmJBXZZec+zsHYIgP2S5CkgDgtSYMGCfnTf1YrEVSHpTvz0J8791g2S+cWoRCPuViRzl+ii04X19nw46qHLGjZzx0lfTxlqLIs2d1KPaV2aeZ7fyuip1Vl1B886n77zldaTJznHm/NWltFz/LvJV52akk+FKVrEZjZfNl0OROi7t4xklx980MtpY57yzadO/37H7ywX9/hybJsn/J05+doSPfz67MyXC3YFAgv6id1eVbBg3IytlbvNnvzkNgfszkS1pa53Q6gMsdopk6zgPJSAiCjN2K4bpokjivv3Sj/tjC7D2RSUnf1g7Rc7BGaGR9/6ansu2znF10Kbr4QTT3q9ppm6Nyczaa76l9vEN2lzt2SLXzczOlCu12koweVXPnlwSi1/j5dt/PFf/OONr/7Ov07v/dkz5s2kFlsILNDARQz6eenKu7p2sgqse1iV4ezkvbtuv3Hv4NC+0KU1mQlebfYphToP8qU7RBTFV917xW0MfCWI3lxk4oOMxGnEWmeDj975apv/9udkTy7zVdIkaUTSTFivro/w3HSjVteUeU1fNXr9PMTzZdhGLZd2fbOupH+2eYz+4J8+S9/558+s//ev/JPz4vQGvCMAAgsKVN+96Xzrp36686TXuM+C1yKSyUThBpeM5BRXLTNCS4WWfiIpGwkP01pMVwbi1Ju6DdGAuB5xHr270sy2di6w/qkmEMdNYEGVELFQ5tJeWE4oc3PxBCE1Fws/z3QEwuXdGTex+q27Rue57e6s/vVsd04jyE7E2bWsdvQgE2KtR9sPnjr9nS6BmQQuYpDSe9ymCml+7vNdJa6qk5D02ifdlGi2oxDZshsKU7W4Ekxf8mGQlNTISgqdmnwjf+EKNM0+P2iIJyyuX+0SOJJ4Yf3+zgWR6ViqMBaotUq9uFqr1ViuRlz19aIs19wmPvNFk+e2rlqLpu1IpYU2iCvHaa1LWd8xCmvhmqe5KiQ7xZueUsVJ27//0w/4Cr8znz1ZZx8KLNsZAhYsSOnrULN/5hcWN3/4x55XA9dx47i1yUxi6DRm+kFxPyIK0Ip4YnNyBmpozh/NVmNWkXT6T37zlzoEjiQfvfPLV/M8v8ji1jT1zsHtq61NYaxS5+p17l3jHrai6C3VRIAT17G5KHO3PKwrrcUqjQg7F3PsbvbL1WQQlK/zJnfm/3q3Q+DIA4EFKRW1R3z6mWep+UP/qnpoMn2VxRBNaSaKrt0oScmEYweJMCVzwbpEKetydms4A1b9WP+z3/zlswSOHCrG2pPyNv+RW85yjFy9FITUJCopETQWqnHt2tipCPHWgoVr9xmWhfcwjpI8eg/1K3YdW7eztYi1wOq0vNy6aPR+uj3KvzY/Tx1x+s+7BI4kcBGDlArE9bPNz/O/H/TuX+m7vIeG7sYa9c3ipTVFhU9RMj9MlnE0R5re3iU62b6KOsM4GL/mNR1Ryx8QOFIod/Dcpz22WuXFzAiqdH1KzHUQLEqTkGSygL0AmteJYvF1oqhjtUYU9WN9mUnhrVnjehaZtWAlhX1kztoNSVRWePU6XqxlSKZ6PiN5O9/uPeq9+fl7mexdE69udgkcKTICwKHqXw/IDxz/IXrm2c/b7F11Y29dcXrwkXb2GjPwmYe5kD4um5vh0mxqJ8OxvmFpRDjXr+YizJQjjTybFSj+LWT2LIEjwyO2WrNPnrybyx67hFUMNDeeEa2KPWkTlvQyY2GqdXpqTh7SYqzjpj37ul5fqOfC/OOLSy837mJ+bJ9LI6LqmrOvSbO+ey8tqmrf0h6TPTa1r0z0pDnOnrVgzT7C9vI4i/k5fqd/mn/j+F35xg+2CRwZILAgYHqp7ossy+hz/8qP0dOfbRqRy4MASun10T/JZe6sACPEVkjJi2oqnEpU7brCuY7t/ow4E1lL11q2Um+z0lq53SIw9Xz08JduZLm8z6LU0gIle+QEkmTPi6oXOrOML4GesElMLmPYirEVVp/9m7tkJ/63I5UwBgHtCSeeThjDMZj9+GNxAsrLpXvdCrN/LXofY23b7imSzuSidz9/83Pv7rzx+RUCUw9isCCwzwSnxtw8fe6Hf5SyxlyS8WsIU5G5Bf4VX5FjQ6Z2Qm43rZx7XaSbUZLmZPVWuFwomfSZUAu7rP3n/+Q3z3doArDAN2mLmk8yaqqJ0fnYmsqy5uGVf4umTs7RHyNr8mGb7lnhQ6uBu6vug/ljdvmzfMj3E12RZ90//a2/ORPNDB69s9ISvce3MzXfqnGvGovQlti4mGfmvBY61mqzhOOYaJyMlCQfRQlMPrnJ7cMmOAnr6h1QM0vWutWXosz9fjIfq+3ZGLBLulIvu/pag71eQ4JC+Ot3pcyuzb36l2sEphIILAjsI8Hp2FOfoWc//8M8SARniBkwkplrnNwRWTEku46bmlUPYKJfhC1hcm7/BvHE6S6Q62f8pnS2FzUtHT3IRH6HH2/86W+dP7A4tb5yu6VFUxrR5Ddo8Rs+m0nZ5CNo5Xq5YBe1aHpXNqVJXtGkt+FD+5sD4WLUocFGoSaY9Ew0+YYQjXtHMVP6Xzz8hWXWrtt8HprGLetdHJRk7EbC5upbTfy15wXVry9DvNUkHVuRFc5lktuSm0LSU9ygwnQTi44hT0VXyihpKrd5efE+fIlafFEMhVd9P8+zr0Fopw8ILAiM2OD/mebndbZw3623M2NjUfCNmYqTpusNfLawlPGdfZRJbEU5JhYiijYNTSySDawgq65O8kMeRzd02YSkTR72PtBrqHuEnMU4y+3tQvYc6QJdZVlmSiiNmEolnNHk5CJY6MFUtwOpHWppwITlZuQ1r4togvlggoviDEPJh3L3F/pxpmapEavzWf6gu3a+S1POR2/9zRtS5Belj6tKa0m6bN3cJzelpTB5lPTUi9aJ1vfr5KFRRB4JuLANKrxFG1mtcWlP9NiV78THlZbtuH8KYQXdEFmvu6BvTrsyY4v25yC00wIEFhhG6ODUmJvTyUzzC4ve7IpF1j4wLt/EmpVBcAbVxKa7shQFuehyttPSFbY05smgyzu2rGXxNbc4vKe3lmUsjO5g7YGYEdI2z7CvFgTeurOjwxDhhXC+yJUhOXe3PUpX3hvXErssan93Yd5DuZJX//R/PXeHphDViH87l3f5gy4Fccr7rELyLuLcl9yQj286K9KW7YRym+g67FmvSW7msrUCKKKuT6YMx7p1nas3zgz2FrOL/ef27+UsX1cOlF7Trr/KsOeDrs2k17Zk13EmL819aXOdQK2BwAKDnkGH7u+12rHFp+mzLK4qqclbakZY/DqxgNpaBxJpH2EvUBRfg1ZcZEFERTRlnYuxxoYgkTPl7FR0fmnx6PvF2rlh7a5EZBE7C9N0BdJvKqIdhzfwBnsYE4O1HLl5bdlSEElKH9tjouE3FfaZqd60awsKJyusx/He038+objzfvn4nV841+vlN4X2ovjm+8HaJCmKVqGOcRpBTV6T1qI0Z8pak2m9q9mva0xB3hqVoXOTtUplJPKJlRqaTaQC7l4ns79wfSS3gNSfsRBdXMGN0X+mhP2c1FFTLqK8p76gDhYYcmrt9rIS1Kc++yw9/Zkf0M+DWJD+vudu9PCmrHSRUfNTusfO4jLPC5Jl/aVSxDfw0pq+pnRHRKvL+C19JnF8CORENzEZiKwgu5sEG8u1Lt5cuZHJmK7OVWutUv+5pTlpat++zaM/3GBtGOs8V60g+RyG1pDSW6zSW6vuqCO9tOcrF+6mQWT2qK2VLe3djTufZmNBWY+qm25wzDx6d7k59/1jV/Ne72IU8xS2K5OrbbVrh85LVtgEpSJHNqZKxbgreVHWjxM37iBXsHMlC59YFUrL3FR23tKl2IUce0ikk1iZfuos/NXCpRldqu6b5bE3e87S1uu1eeH7vTc/t5bJHHW0NQRlOsDRGvbC/LFF3ZXpqac/q58boXPJmtIPNPZF/1z6shwzAJqqHF9uY5xt4TG5nZhyWKOBUg+guWuAY6ziNEvUDzp+q+hY/D+9NNfWaJ4bEbOfQcblPdIOxLlSxCB6duayPP78bnCM9mVclcqtaFrX5uaxOSDpts9zaVvr2XNgj8N9HqL482hxlv4z5Ka22LwPhXNM5pB44we8wq/82W+fnwr34Uff+kq78cmxd/mMX3T1pMYqdY9z2xjCluC4Mhu3jivNcSU3FMp0jDDa2ldfJrMj41IeYetk4/2Q3b8vqTGJT8LVtgphSoCiWltb7uP+dgojgpGVKtKQhYzTDcg7Xry96zdzr/kkA5ubIMJ2ciVXQvuNz10lUCtgwQKDajlXcEZpq/WZZ2nx6Wf89z33zfedKEbmV2LJimDFOmvNWbM5eTes9dSZ5/wg91mz8aGRM8xEtMC/6F2o0rqqnYFnjzqXwUjWOwnea++29SaGPsTc+13NSOZGOPtR7BjoRFHYNspxVrDwFq/7bO4s2QOWbvIgGaxPazl7wTd/hejT9rmO1VYf8g8WU/lgcStb766fn5pm8h+99R/ckNS7aG8kgovVzljjM4JFz947hC5J5C251HXsZ7QhkxDlrdaow5L6nfn+wZGrN3Yda8dD7vwiZASXhJTJNHfW3MwHuHEp3ILZL0OwVG2uHwXrVUqfWOwcymE3hfhsMfvYW71SrvbePL6C0p76AIEFhoyei0VtfuGY7siUNRpmgQw6mdx6Fz1fdjyJEjJIjQXKarOu0aA0IrdC49yuRfepEUHnUk68z86N7Py1dswxg49z0Tl8H2ThRivp3X32+MJNgHvdrkS2+5QJpYbjDW7sKPbp46DWme0zuMJniOKnLj7r4825ax1J0iU7kRuIg+jySNzhze6xbdv557/1n0xdPayyWkn0brBYLbkWhE78grs1iKGe0MZaq8ILq7RWbZLEROZC7XlhzGz9KTlXru9L7P74umaVvFckbuRvRdZOGGD3Yd/XCbf/W8YWaG5FNVyDQjdT9CpKckCSU7g3NXd29nlBvFVGViacyMr+5Kjn+Hhv5984foY/5iW4jSeLIAAUdpJ1oaxWjrM+9ZlnyImaN//sqt5C3Q134+4JiURuxpswL+xum9obfCu+FBmxqYp6G1PoCdujGllpRk2zrkiTimQhEzhyzTmrmXz2r4hjxk4otU0sKViuViCE/bDO/HUbRmdSCp85TCKOK/u6H2vBUZc14B6bt52ntxudabJSY3Ss9aOFqzLLL4TYJgmXrUv+jsc1hpDBOnUxUdvPNyNXskMUl8o4K9QIqV7m9+HLeyiedi7UwaZzvVqr1yU5pYlQ5O/oItJQv4jWi9PghIjWpdBkIvhQKOzAkVxB0TrOUeRvxMx+RbCChVjNPvmBW+IspsmbBBBYYDh55dH8wkLzMz9wXHdkCm7f5PtMsffW3mdH6ziViBsouLIStxtjg/jmEEnDCG+j7nldJqMUxfvwA5wkn+AUb+kGIuHjp04M3Qcofpq+kdSLvNFVnRAVDX1huAtnzD+PPi/585AaIfzCJq+3wabVekP07v357/ydLk05H33r32vLTNxmi7AVuVaJKBYvK2DOSo0Tk2xbTZGsk7p27fR0/rXEyozEl6z4xu5e2+WfXEJTXIpjxD22XB3+eg1LIpEt5tYNQYakueK68XdPrZGJ9P2L7+c9R8kli0YVkwMCC+hHlv+n1ve3P35/jt3CHvsVjQ2sWGrSW3fqH3d8kwnj5aPI3Zm6zuzbyXg3oTzHHIrwk7H7shaRRSLu9yYpKWdx+00kLomhFsU9WMoUW9jWmk3Ht0FGfHJTEX0iWfhMRCKou/FBbvJWd3h4f/DZ3sLUWqlFVF3rk97ObX54SgThslalK6PJKXW9BsH1wmotWBl1TIqzg4PwFjo8CWnvZlxsNnfZd6Io7N7CDc0pKLiS80i0Eh9L3y0VpQIng5VqCKIoaJAlnGIuj8i73J8U75f7G85oG5+5rpLjvpZt0U1xdhPW7CEBgZ1hmsu3m5R/fEGojjn8NLMRMEXaOkIkN+v+jttLRRhyIp+nrSAJu5Iyrj+RscvL7jpq6CBFMIQjTU9tBp8QJf27uJhnsnZMrMkysXYLVm9BrId9VZLGEoXHxX0Jn/tlP9EDfsb/qPMX/+ff6dARQrI7+ONP5tgVTFfJ1YZqj31kOXqrMJ02zqiRbeCg/q65zSQudElK3bwFofTimzapGLatiI/Fi3/u/272U+mfSdMHil3B/RZmtKHYZVnx9WGiu6cY8znd5GPbEHn2nhT5Rt6gjfkebSIWOxkgsDNK82/cWOGR4gZRsV4y0r2Cy1NEr6ffdGuoyiSkuPsg4XcftiDncjUu59hvGsTOi3pslbptqSDD4f3SIZIir7YICUUy/fgUVJciN17fqOitU58RHB15JMz80iN+/h6Lxfpnnjx956hYqTFGWBcusLv2Ip+WpkmfjizS1EL0sddgcdr2hUkLQoqE2K8vrXiGfZEUIhZbGRKUwvpkk5ycNe2F2PyZ4wQmX6dqbx37XL7uYgkf399mhmTf5NKLrdlof3sIZ/IWqZALYkGlDd7VPf4EG/OvbnYI1AYI7IzRXL7Rlj1lVYhTTj+E7zK09+WQjARRhlK8vSyKmh52RHTP73WLgnBaV7JNUiIxIA5bsJ4FiaLCWtke0gkpOO0i63iIkOvymNw/FhR1rQif0IhFlFNCovDIxlMzIe98Jn96qspoRuXjh//hhbyXr5oZglJr0nRVUiKYm+6GYnAv4ThTOHX/egvTWbhU7LLkt4maRhhL2bU/LLiPk9fcPvPYfVviU8f62OfXKVi7A7be4/V0X/4eVlmp6/z4ztwWiytcvrUFAjsjNH+ehZVYWIWaLSfWJaLIv2uEK7LWKF4zCgI5kmjUQPSLhREodce6/VC4y082ivZBRP1JQRS21fv1GcEilTtzAPaGgijUrPaF0NJ9+0FQpG9oa1RFaj/rXW7yFu/xIH6nR59d3zzCouosVpalFTVXa1+C0pA4qbUsjR/CxWXdtG7W4tTZwiLtO2zOty23MfuzQu3isqFHsKTiLDaR69llLUcxW2G9MI6+jNzwCtHA2Gkstvlu34zkitRXmJC7J0QJdaMm13mvd2ClTg8Q2COOFlYpr7KUtJM8ocjSK/qo1OPMDl+poEZrDRpeCsLs+uTa14yJ6jxbhUSj9HFsSfo38YJsBsFswDR1ZMszKP00XkBlZCmbA3SiS77G1G2V9kG2x9LXBCP6sGo/Hd71OtHOnc31S0faqgiuYKldweaM9exVoZTC9Ag2JTVBEGWcyUtRgpNp2m8bOZAWaG1aSjv3a8EyNX9Q0/whLuORySw4RNGEAL5JRDxZgNum3/0b3zq6x4mwFr8BA74Ru782LFkpfs5H94BP4Hr2fboDS3X6gMAeUZSw9mT+3/If+LRf6I0vV7cZJwlFrtLEwO0vVknkVkQGsB+SEgPRKW2fsIejDbWoFMUzXZ2olKllW0REcdTcdokanIgi/PtRwWWclg3JSOTNvjPfYUkkdgmvv8HP7+W0c/Ooi6ri47d/cUmKnXOsTSvaFdw3JVvcv9ckC/UnGwUL181mQ4XZbpK60wFJShS5jb1AG5exSFzGMu1LHLuYw12XRtAu2cH94heCrANOU2SVBpGO469hPzTIclXTRqqM8nuwVqcbCOwRo/nzv8bCKq7y17ZNUYwy9oImaUWhP3xYPshl6sWZBt2LexGOc4WInKyJ4BoWZFslujeU/e9DInk7KlgAYd9pja1391JiDRMNcOe5G4J0Ynbhw7v2dd99iiiytEk84hf/IWUZu3//sw7NAKr7Ep+qq3xK2tYKJGdthiQhaSPtfdPEeevTuH/dPKy5bXgVl+mY/Yl0flfy+/NztdraV5PYZN3LzlJ2JTW2Sf+gzONhbgjrt6E+966wx+PcxrKwrE+gSxLtg+hDDvvfyrZylNIcESCwR4Dm8o3mkyc7KyKnM/wXbe/ut4qkK3KdpjV0QZJEIdUx7CXEJV0zB1F4C28CFixGGwc1a0bu2uiIQ/YuJUNZ0qGpWMIz6FPGlkZ/Qkkoz3GZy37f1tI2Q6a3tjfYM32Hf6/NjLVK+Rk+BRdYnI5TIpS2jtQmGlmXcBBB8tZk8pjIW7ep8EVJT7K/PtU3hyDnhjbN9kPHJiOkUrdb1MfgBVWSnwknjz9eetMWXeaRpSnDd8Pe+kXfk7Cb4j7Tb8sQ65ei9bp8Xd2EG/joAYGdYprLq82d7c9c4IeqYfrA6clCHaYRChnKT73BF7t44+Eh/k1USHAaZNHK+D3DHKqhTFX61Vx8NjIxQ+6R2UskykV5j980IRHm6Id9NbqxCO9lB2y/vkzjrvpYO7zttc3/+1KHjjiqnWH2/c+ssHjxzVp+KhVCdVZ6FNy8kopN9mWyvGDhxlamaQKR1rV6UUwSm/x7Fct9ZLCY+9dJLWCRWpqB6J4rdfxHolpARnemdh/FG7d43fhhmu7APzr8Ke7Mvbq5RuBIAoGdMpSoPtl6epkHlXP8xW47y1FSmqgTxRIjC1RE1llyA6/pXxJjZVak6yWaZR5FHlWiNPPJtUmMLFfyyhrcut6SNscZBW9JRhauP6yk/aB1Q7sm+qJfnAe5sdWOTcvD0FeYt13LJN056sL66N2VJn20027MSZW0tKRiq2nM08UsQ4tCQ7FhQ2ECcpspTFGtamTB6qQjH1+1HZfIup4zayXHxxEJd1riU+hFbK70aHkfLnPX/um9kIoh69tXB8dLKXbzpvvrt2jtHW03x4w3MwEEdkp45pXX2zysnBOULfPo8qxP7Nd4Q8+bq0KEjNfE0LTiYx5K31CeqHAn7vxkIliuxRKdQGE8cTaqkG4oM6+ax+6whfX5ifhmIB7gYuvZxUTVsiwqgO2rZTW7Di0OnUs5spTtHkNc2LyHDemqjbK1xjxdYzdwl44oSlTntnaW8lye46dn+FMfN2fEZP9al6x0oimdizc00bfXR1r2krp/QwlNEGIrvlFmcSipMe5kGSUqiYIVGrmTye03N83/rddERjcBcUw0fqx+DS6jGS6ibjtZfB7fqyX7SOO1+v0/4BuHVfGlzTsEZgIIbE0xluqxZf5anuKxhy1W6wIe9hfzyUrW0CvWi5qNZZhmLV4/jBHDRLRvaBGDBhtK9lV8b0oyh90yc/Bun9LHZIUXPxn6GtsBfrAwu+fe4rXWLcX1ttEdRzT0uoSotayXXdt882gKqxLVxie0nNPOGf64bRaZZ/VJjWOgac0oeXesDDPQiELtKUUuYp8VLNx6uYisYCkjwQ1JSZL62h3aLODQdUn9ucLxUDGJKrZuC1ajJbkwgwiKyAsT7v3Iu5StzyVicEzVb9/3ReCXH/Vy+etz6AM8c0Bga4IS1N4nC20eIk7xEMFuOtn2Pqy07ZCI1LNfzeJnTkjTmWuIgifWCRJZY2+ogyyO1RaGKvNWVpgjZ5g7TJ/p69y2sUVtre1wyF7shgm1f1+ZfmjpfNg+63SwtR1OTXBzi86cfHJ+880rXTpiaPfv93srjYxUslLbKID0AmXqTe0E5E4YZd+Ub5QIW3/iEsXiLAo9hn0sVvTM3ybOAi66gYvlNCIVZu9SpuKMOsZKtOERQVS8yuyz6BLfw1IdKMhuU0q+f945IgqiruaOvzX3OF+FsM4mENhDRFul359vSZG3OAbTbAhxgl10LR7dlqT6Tc4CK+hXFBd0ya5JIFFGg0ly724F2TtGnVkXo52uqXU5WLr1smAJeruRgiM3GtbskxD3jXeeeKLdPUNYIWRFRcSWaGo5B1GmAe46Z6FIsw/fXEIveMA/r3385n/VoSPEo3e+2s7U7DWSY/QkT9kbLeGmZHMJRcWEILJCa06OzRKOLdjgqg2WqX3dCa607l/n6nWJR5lv6CCj+GkvsYxtr2F9sDbZycdxpdVGVx5ktpfkm08Y+7FwJvqs2CKSovS+VERDnDZcP5nwm/Xt3z32QZGOyOQl8XObGwRmFgjsIbP41762QiK7ymf+ORp6/r2AehdqlNpvREQM8gH3eacoFpbkpeINd9HyTSSxmBQUuZEHbK/G2czeKPibgUHHZLcMlqzZkRvRfHFu4Y3i9UOS1+DhVFD8gm1cYQr5v/b9N/7rm3QE0FbqJ71ltlJPSVWqRXQ8+ZNJJ2BWkMhbfjJKZLKWqWmIHyzI1K1LSdZuyAz221Bi8RL5mle93IirSGOwqVvaiWYeSoH0hwj7NJZvLsKdpbsaBA1rORiX4VB6IRIN/h560bWn0FuqwUqOd+H3tCl78vzclzfXCcw8ENgJsNhebVGjscoPz6nnxdvnRHmMNhUsOmvpOtEodkVKy3GiWKO50XeLify0cYlAZZHV15f4ZPcjgkkcjVrO+AzHYoe+2PdckMRw2OZV4TtgUN9s5BTuOMh1frL2Ql8D/+Rj+U15l78+d2xrdXN9dapddsZKzdhKlW0+yW29sE9FgqiSF1Wige5VmfYL7uv3W+zr64W2OI8qGWGNXb2xcFJsrYba2L4M5HhqOifmFIQ/FjYRXZf9hOSm/gSm+NsWJ0HF6+52+xajZ9WDOxgkQGAnyMK//feXeYC8wd/mFplRSxSSlayVFizX2GozK5hfTmyFGGCLeoEuiNrgxKNk0+IQE9YZNNgMEE4zOiahW288p0NaYV+RAWYP35UfWREPJyjIrlVcWVRu9UKXrerzH795pUNTiEtQktQ7xZ9lmT/2syQprdf1FVLuZBaFNCq7sclD5BvshyzepPsRORexacAvXHlNJJhhBpogjLEwx80pjDc3Ty3hQutDXaLjZt1xbmJyTf6LrlxP1CAiuT7DhZxes94SLVq9xbrW9P36r31essHO7ktoawiKQGBrwMJfu7ZKqlsOiSZRwZvrBdTFIM3zaN5VkmknB7dGIp7mxRDHlLJgDCbxzdj6DYONj1ZRYRASRKHroUyTlsiLqrkFyMKbx+YC+eoiY9v4EXFYLJZEsMjJzyJnT4gVYbstxyNvzT31eOqs1kfvrLCVmhsrlVQ2uTPL7Tk2911RBNrWYkongtFMMW6qOO/b7EUlN8GidDHT0PQhsjiTuKyMYqF9Vq39+2lL1sRjXf1rnKwkBkyg7rOZbbKUfq3Xl7wkkhIYcjIZvTbIUlUrJJOi6wvIJv4NEe/4NtA9dreJ6mqTq40vbV4jAAYAga0Jym2cZxybJbmix5RCn10vJF5QE2PVGrVmxPXeX40XHgqC63bqkpuGZPcWf4ui9SnCm+96JQ0p0UmaSqSvutIcJ5zWFPfH78x9/UyIYU68biMTU2O1uliqElUpM2WlNsk7161xai20WAiMMEmdBSyELLhX+5syeBEN1mq0PAhmGh81v7V1mecu21j/GdLGEMl726s1PKe4qb+zbPP+0p1U3ANDxDO5XyOi4vN43SH7sWfXCHAs2JFlnOxjI8vkeSQxgd2AwNYMLbSC7vPDVvB3+hKUsKIsmLqUNlwQfjUiH9f0ll4UhrUru9t3NzQFAZXFvdGgyyYV3xBQDcfsdhyO29peg3dI/XaDDB2b9hB0za1jn3kyFVYrW6otIXdum6xf99mcZWp1i6wLWFoLzKif0cFESItJQT2XgDSg6UMad03FOH0sKWoKUehDTEME2YhrmHe1OEF63Jxf3+XJgiu7H3cl2Mf2BqMglsVQtEgSlUZh0JVmYq3zX/7eRQJgDyCwNWW+vbrCf5yr/A1v+XFFEVmz6qnTpzS5yBK5TaV3u6ZNGwZs5McVQTKSVBFckxSbT/axsav0UOyEOewhiy3komKL2PVMvqG/Sz2NzXRpT0PmErkSy1iYKN1mgy2LT77596Ymi/Nf/MFXl/OGuKseCzfdgH4lfPywXEan3AtXZCX27CpR04VC83yKE4lcPay3HFNLN4hjENaCNWzis/pPHu0zOjZt8ZJ3VdtL0omxdSfrUhxn3ZoLd7CV6S3IosCah34bY426+Gq8DiWOmXBLE+1LvxZbrnb5B3wWziPWCsoCga05Smj5a36VtNDGJOLjfGRBQCOrz8cjo7aCfphye0vk1C3xDxPj1Q5dfv0wYvlH/ticD7rwsRIft0yaS7jPFpXwiiEWrt0PhaYSHdppnN/qTFfDiEdv/+JSRtn/wx+0mVpi1kcZ2joPy6y18dNCp6SCRTnI2nQJSqKvLMcmH1lXsI2h2n3IgqVp90UhfuuzkPXVp13IvEpsxfassrkp5eK/vye6xu1fu18o48cirXumQfujSDgHinS0ur+z5Z/r4hN2CSNDGIwABHYKUG7jHcpXWJLO8TDVCq/oMcLGi1x5jnXueveq9Orj47pJMygq2JNUVN4EUVzBm58iMU3ti94LbG0SL5xWh6PH9u7AJUO5Olpr/frjF1GmdVQvLDL62tbv/71VmlKUmziT+Sp/rl+2J4piD7035bzFaq3CyEIc6P6N+gYHIbTCSa6nL4nizDV9zftF6h5ORFYfE5llsucaSlBhujiblZS0YoxuGBzp9ZXEmr3p7uxc2ffaoH3EpFax/64UXMjR9oI2+RNdW3hl80jUTIPDBQI7RSihfUL5qlAN2sUAo5BcxC59sVgnmLYmdLf7GcXWbR+pH9ctJLJu40SbC0prbwO8lSrdMWihzP0I5+trhVvfiLNM7BgbfAyWbVdk4jyLa4eOAFpo895Vqeb1lSYO7yzVUJua1I7KSLi08JpTNSCZiSLLMrJq7WNvSfoSHn2a8w/4ytiUstfl/W7y9pts0H7I57zbo57apEu0Q3P63cXmfO/J5s6c87bsqKPj+DL/y3oneLf8eeRSdFyFBKIEd5kUBNFlAevrnIpi6a42Si/jxNtD/lIVwjb9JwqxXf2yFe8Pepk8u4BEJrBPILDTCAttI99Z5WHgnHpakL3I7RWJYpoxFFy4VpCLtX+OOFN4kJjufQElRoFz0bn3ti+EJCzylriQUc5VNDiGCh5JWachc3YJr3bpCKKaSVBPLDWEqn1lz4XsLQlyXZNMPJOcOEblLplz+4pCYpMXTdm1z7t8rtW/zTzPP8hZPBv8GtFcd5G2NsXpjcrdofKNZotluc0HdZWPsKWWRV3KiGhXKzS6HIZbvbuvmyJsuU96/6jPUafxKZ2FSxgcBAjsNGOFlsfSU8K4jqUdMiiycIfpoDckjUmYIqhgQhSsXuemyzI7OA60cM2ekpdsJ6nQczmeGSd4oIOSxiIsXTaXyCRdetxZnTm33afvfKW1s7PTMtahshRZrvQ/R66fZvrRk835ObHZ29lh4aTNRWWBnu7UQjDk/WaTtrOrfCtwYRcr1hIbn+55eq0NSogaLNzJUUh3L1rY2bXGl763SgAcEAjsUYCFNnvSW6Ysv8DPWmah6DP7rJ8xEHcskJQGb0tQRoSHbhssZhncc8G9V9yn9FPTUZeXnt/prHYITD35m8fv85/9VEEcB7iOpXflCkEDvS2G4Vaw2D0rWVn5j9jm/y/mXt1co32grPNcZBf4m7bCu1Q1zOxSpw5ft9dQLzubQGCPGI0vvrbCY8hV8kJr8Q4zK1gUl9GEy6BoK7hlXpwjlVajVRZliLjlfh/K+ZZloWCfQnpxJMw2y4bEgLiyc2GbNxXy1jOUrW52pruPMAj03vzcRf4r39jFlTvAA1OM9hvxDaIcN/0vuV9J3awhz+5XCOU3mufYEX9TC+sA+HuyKr70vWsEZgoI7FHl5f+mzTG6C/wHXnZJQWYM8rUebo444cpkRZznQeStR1PbGu9cDIyCDVBi8v7eaH8KWwsSOamHurEVXfYJ/8pO57/rEDhS9L7RvMpX01Vzn5VZsUx8LdG1ERa52CmRLKQEhIfW0o3u5Wwue78l282kPC1e3ezSPtCWaybeHSaufr08Ozv35b/ELDszBAT2qNO+3KInGQ9isk2JVSvS+/fCiGbX6HvUt2iQN07QgIWuCXL/fuLs4QFvc+uZbA5W6xGl9+bx96nobbGI/trUJCIxZJd7NP0vkMsNlvWz+xVX0p/hc7dJtTjdm27jlUfPE5gZILCzxBevLOta2lye0X949lupdrJRBDSxFmL7ILh9gxJbO8E/Ct2kfC5S3yEkywfYKG4FPs5Ob27uPB3RDGHAwvRGU2USr9Jg8SssG+rqHfJ6iOcPi8VWlSnc+8bxR3tZr44sky8gHjs7QGBnkS+wVZtRm//653iUOWWXDoyBOgZX+5Df1C5NH8dKTBSiYy7+G2Wq6GYZqvCGRIdfu7bzFtzBRxn5zR9ayvOdd3dbJyS6UdJbOFqDRkliSg9A3Gm8+r0VOiAqGzp/LB6VXT+XjdPzr/5Fh8BMAIGddSKx5XGonV4QqXXql7okJ/1j12zhyGncN9DJkBFKj2Qm78zJxj0I69Fn+5vNpYYU953VJwr9g3e3VDVR5nnxri4KUAxo+m97bFxjcV2limA3954H7IDAzhYQWBBorzbp8ScrJLIb6mlhZCK3LLF05YC5Xe1y72MWSb87+zqLqpD3eOEdmlvcIMRYZ4LeN5sXKKcb5Hv8hnKtaIo4/dyJ6HDLVK9WdC8PiNNGWcVjmL9VlRrxm7b3XFHQZuNLj44TmBkgsCBFiez24/d5nEpiSsURTC+LEj/76mGj1k/8kMUz77L7dyMX4j0eSjv08OuIQ80Q8m6zSU9nV/mquJg2f/DBhj3bJqoHqds4SVknSu4J+5v+8/rn91vjuhtP3mi2M8EW+R7kUlybfxUNLGYJCCzo56XLyn3XHmWT2Efnyeg07VCXvn29S2BmkW/8YDsXvdusec8VHCE+ypBuEdexFl4RYpcmE26dxGGi1v4wz+XZcU4zxyK7yiJ7ddjrQk3Q/sqjFwjMFHMEQBFJD4hGE9iBQ15PNOnbr3epxjx65yst93iR/3vqxbUugUpQVmv+VHY1p56enLyoi5GAFqIMMhHIsO4gcU2bTIRCMGPM+ob9r443c5fFe3XnjWZXiEKTF3YLs7jfmtsizMYzg8CCBf28fLnNcbI9XV57ImiN3r5+nibEo3dXmvRku0XbjfZcxtYTD3zsplsyTkU1s4s7TEOhyGOTh+tNHuyVu3xT5tn/xwsfZSJ7b2eRNo6/sIaY8S5IjrXyuV7l8/jsYCH1ZTQUYq2VN/0/UAOJ/aJcxoIafH31uiysG5gwYHaBwILBnLzyqBiHHR2xSQ9fP9SkDjUDzRxlp3igbvNYfYIDxc0wYbkMU7tH47C1day1JPzTsIKbcyjaSooPhcg3BO1syB35oDefbRx/8Xe6NOPsvPH5FT4v2orrT07atawmEt8Ql6WBY5QR5zhmW3wv5ZIVn7K4QtzABIHAgsG8eHlNl+4cFBWHfet6h8aIslSzrfwCD8crxjKNJwlIkp5tfkwozXWDvrA/lAB72yktw7RNHXUrPz/puNnMTIIu8/xDfoFdkfKBlL2NrNHrPvPS7x75ZC6bwMQWq+5m1HKLaUB27yCLdEC9Kw0SUbsbaV5Li6xjMhJr9Gl+CeIKJg1isGAwDXbv5hUIbE7L/LNDY+LDh+du0Ke9i4lF6jNIDcERGTpemNFZ+G5UktyPyNIlLwdC+IzXaH7VeBLzXBdYssUv2yy+7Uy93hP08R+8yp6A/D3edCPL9Dys7zV2djYXTnemXnhN9mx2Jid5znx2iq3O4s27F9e4LzCRb0tdmFjd7MN2rI6WhTqwgk/BLhbXBDJ1QU2ABQsGM6RcZ3TG5yb+6Fsr7Tzr3Y8rcc2QK0S0yD9K2jwW+x/rtYx1FA300RfEi6qyVIURa2kza8KE54J61oBWr7H0SCfC5rl7LCnfVBOeN0Te7cn8Pan61PI/XqH71Olvd6mmKFGdy7JTwVodFMH2C8SQGKomquoqiOvgfmFhu8QlEf2lRaUNJAA4KBBYMJyau4kf/eOVpWyn9/8ac8hqqkgjeMHdK4NX2A3atmWyn2qIYtexs29Ji6YRACOyZj4iJ7jWkpXWVaznHpLWhI7FNzf6baxeXpYb+0sbYvq5bzOk34/kB7zsfX7+IZvCGzLLNkVv+4NcZpsN2dicn/9+V5zujsUFql2+i9TkW4UlPpimENkJPo4l/hRL/NGakYU5oGzGWanxfL+D4qSDxdPvpVhqI/3Oo306/wJtsgfh0jhqXAE4CBBYMJyqsomJbtHD6xdpDDx6+5dWWJ/O8YDeTrKCI2dlLADJRAOxALvVtdgZMU0sT2epektUr+OF0oiuic1aCzUIsEwfu33bfdpoY8++lzTdmvV75vZGQW+j3dOCjGDr38aK/pAt6k3ethtiwr0u5bm6sSGR90h7EcTOJuWZ+vjP8r6a+kW1X5Gp923xAyWcTd5zk/ffHDAdXBFJoV0hxZbqgN7B4T5naGJTsq7of6/4D0fRLqmry3DQQB/UEAgsGE6VbuKFY8+Psx2iLsn5aKdNc7QsKDulRCONz8VuZGe5RhnE2iCS3tVrxC2XsWtXyiBwZjZdI4ZazKwlG7uLzT7sPmW0TkF4gxs5EnWK3c5KXHNrGObe2s34sXQp0pRbq9oJMSXCvMupG2JhhtcGWJ5EA8aOWFgjJ2+fWBZaIu6Ji6lH9bHOWbHBi84edhkOAGWBwILdOXlZFchfoINyCNnEMY/e/kV2ZzbaItNT853qi87GkVlpA69OsEz8NLIYlZym7mEvlGk2cXAHm4Qocs/9Mv/ciq2zWPPIWhWRpSvNezrhlt7VLL072ooqxXHgILxENCAGGmfu2rMgUndvnK0rCw35RUGEnSU7PN4aHUgxLtsnuANiswWrVj3M17JPCZnCoNZAYMHuVNd0okNvXz9NE0LVx2aSlqWZnm8pRFxlHEuNBZKIgkvYu4BJTamnhC2nsK4iiKF7nAhpcAlbizaK3/p19GtENlPZi+sAK9daxxQSp3IpvcC6fWusoze4cwclFw0okYm2dwIYL9d3IjTI4qVEdGNBHibAal/ZLlZt4mVWD5HMBKYCCCzYm5euvMtj4BIdlIXF43WYNefROyutRt5r59Q7I3TP5V7TCaoVQm+xuuQlokgQYyFNrNdcOGENohu5iSNxTLazSVHqfYy5nKevBeuYpK3Bde5rGbmfhS8jUuxlTRZjpnFd6W7bmogx9VmUkQD6/YTXi72F+7s2hdS0/tpXh3zEH/VX5r68uU4ATAGogwV7I+U9/nlwgd3eUolOqzRhjpt+w2v2H330ra+oZvRLGckzqoa16M6VifvXCm6hPIeSZcbdq2pjTWxUu3GJiqJshFHY5ClvfQrRc7WhwiU/WVdwEHcl5uaGQJqkKLN++JRF8SwKpnQ/hBG2XAucnaUmEbe0H7B+WHDbJi5ktxVF1i4FS9msGLmiqeB2tvneorBf1faQTosvI94KpgdYsGBvpijZ6aA8ur/cnJvb4fgtx26FbhpxwnhD8yi7OFi6zq1sIrzObRzcykZAejbuG5Ka4hKfqHzHWa2+ZCd1W0dxYbd9ELWB8U0qWJrWkqQ0A5gKpTA+kck+L5ijYVG0/6KVmsZqByRQDSI5Xr+NFHeyrfwi4q1g2oDAgnJUlexEdI0eXl+lKeHT+6+0eo1eW+T5KRa5Ni9q9ZXwUBobDeKXJzFXZWmGWGmI84as4sTda0t3FKnLOOxDU0JYKVpetGZjYzS1clPLlfpeC/Oxxu7mOFEq3n9yTAOOWW2UpccmaJNt+WsLr2xOZCYaM81erm60WlIaD47Qk0BQl0//g0zm68hgBrsBgQXlqK4mtssC+zxNKR/fb/NA21sSKn4rqM1GWzMIa7/wBpdyUoJDcZKTE1hv2bp1vTjb5eY5xc00hlmFwy3GfiEtWpsUKW5abtMvlsWEqUF1rntZr0NqYydW36omLMhEfkGWCIvwgXb4GjgPoQWDgMCC8uxjIvYhnGeRXaMjwMf3/82lOaJTec7uZKF6EOfPUpxtHMdokwSmsCwkRkVxXmH7G4tgDfcL4yhC6uZMHSyQYX/BNKV+q3PQzpOs4QETokuns7QnPuHpZvYpXTtsl7B8o9niM35b0ujXeCbEqvjS964RABEQWFAeWLF78unvLbVFli9londGuRVZUJsubqsNQltfKwuZyIJcXauJ4/rnNr6bimB/fWgaQ+0vzTHr7O6+TROiEqs2EtrBsdXC+w96DyqKfp/Vq1oe9uT5SWQJK3HNhVDXdov2icAUeaAABBaMBqzYkXjyez/T7pFcaijBpXxJuZRtxyUKcVpbXiNDhjL5DGUaUKNKFAlj0VU8MP46xA272zq0W/y0Pz47yNCN32uQazpaSdB64xN2tU5AnKoQV4dyGWevPDpNABAEFowKrNgDsf3N1pJ1JZ/SJUHawg1lQKGHscaKU6gRHbDLQRZskYKFGu3a6mQcax3kdnaeY9dcYoAruO+whJ2ofjdh5Vcf5T050drW/M3j9/fjFh6OuNR45XsTScwC9QICC0anKitWikv0zuszPRBtf/OHlrIeLWVZfkY185C68X4/A2ankaZuVcaW5KDYamJB7pJwNNDSjNzGA61eiuKvheOkPZv+98SvZ4/z1Um6VFVCE8e7b1OVsKs7y+ULSHwCEFgwOpVZsfWviz1slLtSTRMnKWuz6J7icxRnssbBTPc8EdbCuoXM36GJSMNcyCX2XxTYvv0kEVv7YkeV38y/utmhCdN78/j7VIFruA/MTQsIAgv2S3Wx2Kmqiz1s1NysO4ts4TbohJB6Sj52K9Owhh/DBJj2ioESxS0Kg6aGBKu+7Yvv5Z9G2crR+2o39weZbJwXr/5Fh2oA38y0bey1etiKbXzp0XECMw0EFuyPSq1Y+QJ1rncJlEJbuRlbub2s3cjkCcrEksx9l63IokxEcUhmMaUT2VTb9N+t282EXBVf2rxDNaL35uc4PCGraJ4ykFw2Ts/X5GYCTAb0Igb7Q00999LlzsGtWBaGJ6RiYKcJlMLG9tQ/nxi0/c2mjuWy1p1gSVuSgpZI5s/qCk1rheq5AgpWqEymoJMymeUuLa8Raf9g90AkvYOjo1TJWuwKzmvhCh4EH98JSeMjE7ly73cIzCwQWLB/ZHaJ79PfpYOiRFpZxIc4X+xRw3Y8SroeadGVeYvybEkoS5djja7ln8UmROkpA2zKVC6jjOUo49hukM4f2y+67BpVvYNzma/XVVgdfMQH7K29B/kYYrtgqoCLGByM6noUd2lh8QUkPI0XF9MVGTUFC6/M1GQG/JiIBViomGExeDrMbeyTqPjlbi8X90jUX1Rjxpbg5BFrjVe+d57AzAILFhyMhcVV2n58jg480w4PdE8eX+XflwiMDVsS07FPk9pTJb5PPkMt0VOC22gJWzIkKX+Ossw0neIfeZ59mGV5l43ebuMT2ZnizkXjPW5JHxCYaWDBgoPz0pWLbOPcoCrIOBYLVzE4BHbePH6XB8BlGhNs9p+fe3VzjcDMkhEAB+Xt12/yrVqHqiCn23r+WQDGDFvoD2iMNBp06DMBgXoBgQXV0KPzuuTm4DhXMQBjJZM0zvaMXTGBqfZAvYDAgmr49vUumwTXqAqkvMhu53MEwBhR5U5iTGU07B6u5rsAphrEYEG1VNbhCQ0owPh58kaznVXfzanbeOXR8wRmHliwoFoqcxWrBhTiLuKxYJyosqKcxC2qEJlLZMIDDQQWVEu1ruIlxGPBuJl/5XsXq3IV51Jcm+TUe6BeQGBB9VSZVazisS9euUgAjBFxTJ4V4mBJT0pc5zGDDoiAwILxML94lky/3IMj5A3dShGAMSFOb25mX3p0Nt9fclKXtzsNcQVFkOQExkdlM+4okPQEDgc9WxFlq0LIU7R7K0UlrHfmtujmFHezAmMEAgvGS5VdnnS/YjoNkQWHhckypqU8z1pZRs+q9oeSRDdv9DYWUOcK9gACC8bPi5fX+Eqrpq5ViA2aP3YakwIAAOoOYrBg/BxbvKiFsQpMZvF9lO8AAOoOBBaMH2Vt9mR1SU9aZLeqcjsDAMBYgMCCw0HVx1J2tqJ+xWoqsBV66fJtAgCAmtIgAA6L737rz+nHX/7/qbopwpboJ15u0XffukcAAFAzILDgcPnuWxv0E1/8kB+9QtUAkQUA1BIILDh8vvvWt9mSVRnsbaoGJbJt+sl/5x51O1sEAAA1AAILJsN33+pULLItynuv0E++/A3qvoUSHgDAxIHAgslRvcj+CPU4vvuTL9+DyAIAJg0EFkyW6kW2qUX2x/+tBzqpCgAAJgQEFkyecYgsyV/lfap9PyAAAJgAaJUI6sPJy6v8s+r5X1fp4fVq5qcFE0XebTZpcW4pp7ytnmdSbIgv/yXmXgW1BQIL6sU4RFb3L5ZnMUnA9LLzu59fFo38Nkkqtsjsyjy7NAehBTUEAgvqR7Uz8Di61BCX6FuvYyCeMrS4Zvnd3dbJhFwRX9q8QwDUCAgsqCcnX1tip+B9/ld1U3+4jKcINTdrLoSaU7i164qCNrNP5POYlxXUCfQiBvXk4dc3KJcvUFUTBARW2Q39PrUvtwjUnh412rSXuCrYdZw/la0QADUCAgvqi5ogIKfTbJ10qFpatE3vs9BWnVAFKke2R1j5BAFQIyCwoN4okX37+ml+NA63LqxZAMDYgMCC6eDh9VX+eb6y6e4Cxpp96coNCG39EBxbLb1yTh8SADUCAgumh4fX18YUl1WTuF9kob3PFu0KgdqQy7x01ncm8psEQI1AFjGYTsbTlMIiNmgBdbN14cmbn7uZkbyw2zp5Lm7Nf/l7FwmAGgGBBdPLy5fb7Ba8TWWyTPeDoDWa59gvhHbi7CayUoo7c69+b4UAqBkQWDDdfIHjpoJW+d85GhcQ2lrw5I1mW1C2kgl5Qup+06LDLuQ7869udgiAGgKBBUcDEztVLuMWjQsILQBgBCCw4OjQXm3S9paKw425vlWsUyZv0VvXOwQAAEOAwIKjh3IbZ+IGR+eWabx0SdXnLiyuU2cVLfoAAAkQWHB0OQy3sUZskpDrJLNbusUjAAAQBBbMAocmtJouSXGLjrHgIlYLwEwDgQWzQYjPqmzjFh0GqodyLu7NpNia821c9Dmfh2/jZgPMHhBYMFvo+Cyt0GEKrUJN+k4sNELeO5LJUUpQd7aWWExP8ajS1ssEx6eRCAZmGAgsmF0O13WcoqxbSQ9Y7Ds0t7gxdUlSRUGVYknP3as+F4QVAA0EFgAltKpRhbSW1yTQFq7cYJfye9Tg33USXSWmvcdt2uEbkUyesOepFVawSV6C7kBYAQhAYAFwhK5Qp2gSVm0fWrg2dG9kKT+khv69SXPUrTSmqwSUtppaQHP+J8QJbY0SW6VSnQf1eMjxkbxFC4s3UaYEQD8QWAAGUQerdk+0wLEIJ7MLdXfdRAp247JgSn8D0aJR31OJPtzAAOwJBBaA3TBJUe36i+2Y8RnRx9ZgrQJQDggsAGWZKbG1lipEFYB9A4EFYD/4xB+5TBnHLKVcoumny//u8U3E+lRmNgNQMyCwAFSBsm7nxRL1pLJwT9TfwhUmdivlA36ygX7KAFQPBBaAcXHytSVqyFYkui2aTHZyV2cik/yAlJhStoGeyQCMHwgsAIeNEt4sZxczW7xCN2d4jpzw+uxe0RxeHqNfNxnE+qHuf6xippu8vRLRLjX4uaqnpcVNWKYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAoIGgctC+3aIdapdZ963qHqqS92qSdraVS684tblBndXP3/Y3wWcqQZ5u0kJv37Fzv0lFDna9tapMQJ0jyeRP8T8pmso6gLkmxqX9n9IAacqOyc1H137/Ue1Z4vU/z9fby5TZVyRxfH5rFzUr+TlWz17Uu+Bonyf/EBi9/jyjboIdf36BxUeX59+eeqr1uqr5GxoH6zlT0d5qjcbBNK/zzaql1T16+Rg+vr1JVbG8t88/b5Vbeep5/7P7FfUyr/MU5R5WRq/NjOHlZ/ewawWGhyahT+Q3HYaC+NFKc4c+wQtt2gJHSvCYHrK8GI/WCeq1HF/kf0UtX1CB0ixb4HBzkC131378M5a+RLv97ftc1RvnulKJ4vakbG76hUYO+kPcqu96+wGKT032qEnfctGWOXfAxEx+7+q4c9DrZL+oGbnvrAj/ia93eCA271t1ykm3zO1efg7/vYp3m+Vqv+virPP/b0ePidaNvio91Rr7pGcc1Mg5EvsY/z1MFjEdgR0Jc4DvBtSNpzZWjZQSH74RzHljH+QWsGi2sfMw5H/tAJR0BKZXVeVt/sV/i62Gers3wNTFG+AZI6r+X+ttdNNcbi9U0nG9zjah/K/Y66fBnuMM36Gs0bpywbj++yM+atH+UlXuRj//idF3n0XWjb4rVTc+Vdcp4nJpGo+CQyGji8B9uW9wg4HBfwPd58Luqv9h1Qx3TySt39d2o/tJVjLaEed8nL68QGDcte77f5wH/tnZ7Tgvm2rvN18n79OKVZRoXL76mhPV9frSqx6uqcOddfc+nErmsxwB1/k++Vi4sM2PUQGAV/IeaBt/84bPKd83v1mrQU18kdUzqbzZeWqQGz5eu4ObrsJjeGxuOf8q7+lqp8oZU30jyTYfIb1YqrP2s8s3N/am6uUlpsX/63em9URgfNRFYUvGDknGzmaNlrIsrFcaB94m+CeIvElWYhLMXyppXlhU4LFpkrMLpGyy156eiG1IVL3zyWMULV+gwUNa4urmZXpFV2BuFGnrdJkR9BFZ9sU9eXiUwGCnXJiqyOkFB3KVJoCwrWLKHzeqUWiStAwuVEohMhT/kYbs9W1MvsvpG4TFuiC11EliyCU8tAoNRIjspV7oacMbrJtsdZZ188cq43dIgZZVjmxdp+mDr8wAesSdbd+kwvTQpfOx8IzvVViCHj6bzuqmcmgksEp72RLnSD/vLZ2JyLRoJXee6RlJcooY4y1faaf1PPSa6pjNXR6U3gc8+6wi6OpU3vcqS2o9HTFnt+0rcUzWvYp0f3CJ1fevf+nmXRkVZzk8eT3c8U8gbMJZqUaZTxCY8TV/qd5cWWEDKopoJ5KQssjM0mnixG2lL3R2u0uEx6pf9Gi0cu7lLndy6/qnczg0WzdIDmroBO/TPXl8W9qipjVHXW08s8cCnajhbpbdT59xYg+Wv7b1R9c43S625nTWpIVu0w+PCyPXoI5YAfkELwiqNgrpRFHy9v/V6Z+g6ajzrcZhjlONXHpuXL98b0zhY/vzvf5xiT4AeN0I96bf579C+XP6aLaKNr1LJlaONxX0sHrw23lJDgSWX8LT/P8SkGK2eTa3b4X8X7Z32CCKmBo7Vm4fS3Ua5ZXs8wJUme6F0F5Rv6/N1mj+/+rJfKLWN+uwQWMP+rrebxiOhB6ty3gB1A1TtTe/miMeurqd1FsBV9oDcLR8bVTdkpG7Iyrkrzb6pNMo78/D1vYXKnLeOaaaivuclz/v4xsFRzr9ar0P7GaekWOZx6lIyTh2k5vfFyx+W7j1Yk9rimrmIPbOV8GQ6WY3QOYS/oI8fr9Bh0HNdaEpxbV8txh5ev2i69JSBPztKug6GbswgThu3ZkmMFTNZ1A3Z26+/YF2vJRHnSoUV1E3HaElN5+mdEuIa87Zaf6Tz3qpVydR+xinTWW1mqavA0swlPJluNLdKr5/JM3QYCDpRcsXNA7W8FPJS6XWVqxMcDHUjJHSssCRi8mVijoVj58uLVMlBfjT387V9d48a+bxX2TazAtTnVt2zyiLoFM0wNRbYGUx4WlhcLT1wKLfdYST8yJJxF92n9ABoN1rJz57JkqIPdkVZVKWTzfj7WJduPdrlKMvfjJr2isNRsdfyiU3dA/dOH+m88/evbh6bBq2VXlfO9s1wjQVWMWMdnszAUf7ucHu7RfWhSwenU2qtGf/SVkou7o2wcn3O+8LiCO5ZsbsVlY1kJY5ifQ5nFCtW1syKNTHlbrmVJ1jaVwNqLrA0ix2eRrAEazTgVSF6Un5A5ou7+z8hx5/cNSsI0Rlh7RbVBXUzWjpuv+dxt6kc3comFlAiJUa4oaxbeZqa0agcLZph6plFnGISnqqc0q7WZBt6WqsySHEIXzo9RVhr7/Xk0oEzTd+5Xj7jE1TDwkKXY5Tl1hX0HNWJXL7Hx1Tixm4XK0q7vfMWlWE/tdu7obwHokwSoXRzHHcITBU1sGDLxN1mKOEpz8tbZ+Iw3C/aqiyHboKB4vKpoo4TmR8mcoQseTFCck+59y6fDV2HLO59IWb6+qrDdHUlkhVmKOEpy+rlCspohJKII9BLFcwWo2S5zi0eLJGviK4DLylApbP5Dwkhni25ZpdmmMkLrHH9dvdecUYSnrJ8FIHt0rgZKaFB0wpz2UJoa88omcGSPqQ6kVXgshZlY4QcKhmPtd8ptVbtEvtK1gzPeL5EPZKcspLFy7OQ8DSKKyg7pLvDhihfoxpY1dbstE3iPXOMkCgnRZfqRGnR2SUZqnwZ2piEomwIhr14dUl0MoZOq9S6kt6jGaYeAmtqIMu4Imehw1P5BhJVu6yG8a3X1/eZ4NGyk3i/r+eJVF1pILb1YpQGCw15ONdbGXSHo7I5CENETAtW6TyGLo2DUW5a6lKWJ0cI140WYjpy1GjCddXJZ8YTnsz8m61yK4/NZTWY+UU1C06X9osp5L/txVZNZwWxnSy6PeAIM8fUZQIOY8mNUhs6eJDf2ipvEUoqn+w3CqNYxqOFj8aDnm2odEvJ7hRO2lIp9RFYHfCf4YQnM5n6avkNZNk6tGpQYp7rGSq6dFDUoK6ms4otW3C46NjrCN8jMUL3nnGixPXJ4/s0Sn3lwhDvSx0SChsj9YNu0aRQ5/2lK+p6WR1hq2qackwx9aqDVQlPJy8roWntvuLUTmnXj6nDu8B3hSujbFZ6uqkqUTdBX7h8erQZTfbAWFBta72v8ee6U5eZMI4kaqDc3rrA19zqKJtVXqKyH9R3fntL5WG0Sm+jbgyGXU/KIixZcs5u0fF4i+QEkoBUBnAZ75GZqq6lM623Hy+P2JWpuqYcU0z9Gk2ohKec7u+5Xu2mtBPNkeLDumhfLJHcRzem3QaNcWOmmHth9Cn29qRFJjFqhfe9xl/Omb/73ZP9XG/bW/u53jqV3syqAbvssSsxMIlIbQ4jjW5xzlfV2vAIZcOquWa3R2joIv2P8uwvMfLIUT+BVV/kk1fWS0ysW7MOT3K0uNB+LlpDt7JB4yCo8/4FFsKs9CTIZWmRElrlNlaTJsOa3Y3DuN6USI0wRVkJnNei1Lr7PGbDNVw/E+GaTowENe1FjISn4SgLvy6DhrJmH75+lo/pdOVt5OJ6WjBJplWkurPTXrVWXMN5D9RTYGc94Wk452sZd1bH9Pb10+y2f97MFVlpvGrVJleAw2daB8uu9n5UyaH0/Z5m+DvfEGchrin1nU0HHZ4itGCdr33SgLoxeuc6u3aPqdj4+cqsWhUzgsgeLpJjaNM4WKprrmxoYWeEjPhx9f0WIwi3rGlfX5UTor7zcAv3Ue/ZdKY24alC1IAxL+vjFi6Dqc9d0//UZNaZKsuhcyPVXBZRIvvilQ/ondcPP3t6tujq791br3doqhBmEva3p+ymoDeCcDfqlmjF5zyTZ2e91nU36j0f7Cx3eFLCqmKbyvU6zYkaOk7LlrdzIZNOmOnSfhCE/sZjQ1tHyiX8/HQNmHzc2oKSL4xscS8ujjBz1dim6muVXjPPaiawsz2ZehnqPx+sSnjKRHvvP6ZOeFqjbZpmuvzvnm4vdhTvCk2Jz5r+Z5pLjNC5SsHXwBO9TbVZrTOLEie5rmtcp81iVTegaj7VY8fW9t3RTG138spmKaGQdJzGQ3mRUnP31g3TNvEFAgOpv8CqQfnkZZXwtEc2qUt4kvdoUowWc+zqn6YFW1d3m5mlkgITT17j2OpFPgdXS98NS7FM7dVLMz+PqWKU601qMd1Mr7fXuzQZunzs3ZHWVzP5qL69qh+y6sFd1d9f6H2XqQ0ez3Rxahq6UpVI/Per7prfO3nt5OX3qczNr2o4o26W0VRiIPUXWMUoHZ4EbdKBSuf2TVe7QcFovM0x1ZOvdfjR/XIiq26ktlTd7RrNOtN7vd2pTaxU6pajZQS2pcMTVd8E6xmBSgxY4tAnWlC19mVnLzNd2EAf9Y7BxpSd0k7N3gKmi4df3+Abo1GaZ1TTprEqSs9LWtMs0NmmvHBtHyBJbxC6TWpZz80hT/tmLNJuybVnYZazfTEdFqyifIcnUAWjtEJcoOcPfGc/z7G07cflXMWiInfdjvaIdOmwmPHJp2tJrpMJy6FaPFZpqUmpsuvLMZlp30awYlUOzOpNhG5SpseCVZTu8AQqoFt6ze0KZiVRX8yycbndJskeZRL6qmYnKTvxt4ojgnphEu+6pdY18f/qMmeFvFByxc2JJD0qK7Z0nF+Hbi4SSJgugS3d4QkcmFGm0aJ9TFgwcDfy4G6wnZEs0oMft6rzLV+ucNhxNFCOkjMFVSgiJou+VWpdlek9KUYK3WgrFqU7EdMlsIrSHZ7AgXgySlKFOENVkFVQa6hvwsreHIhzdFCyEeJyUkBg68jC4s3yK1cmIuV7bE9yqkBlOcOK3TfTJ7CKDHWQY2cU15mKi1fRAKKsq3UvV7IsW6olmxVM9l5+oDwmIbB1xIQnOuVWViLyuGx27WDMBBatkmt3J14TDyt230ynwJbv8AQORvma4id0sEHnxdcuVJZROVI9srix75uDUQZKMWN1ztPGSCLCN5T7neXppSvKa7I6whaTn5pyVCv2yWPMgGWZToFVIOHpEMjWSq+q+gyfvHJ3X3evqlxByNURttjdElxYXC9/bSiLhO6PLLJmgF0tvb6coJsP7I0SkdH+Rqv00uXbI1036pqRco3K061NA4dRbkBU33C0NNVMr8Ai4Wn8qPrUkQYdvrPf3npXu13LCK1aRwuVLNlkwqIFdBd0qcBI10ZLi6w6lr0GBjVz00uX1QQUq1Se+gyUYDjHFi+OdNOuau7NdbMy9LpR1/iLVy7u45qhyqfcOwgjWbFEtqXpzDM9dbCDKN3hCewbNehsPz4zggC2SNXObW/d5kGlwwMWi7RU5Sldv4YQJ3h/S7xfFXNt0iitt1Rj9zK1dipxZXtrlGtDrbfKA6aaf1bdWHT5uN6zx/usLQ1qs+dkP/Glybv5wN7o3sSX2TM2UrijpddXPdDVdUO61rmr548V6sZta0nXuo7eXa5+E90rK7bsjFjq5uPly3dmfaad6RZYRdkp7cD+UIPOF6+cpx7dpVHRX0bZ7l8u/Qoj0qX5kmKljvvly/u7NlR/VVPCs2yf075RNwRvw3qdGpSn4aS2Rke3wMx1457sR1QNgm9K3359leqGEkt101xeZNU57NAMM70uYgcSnsaPmUi5DlbYaHf15u55ksdd/oYA1AflGZtczJyvmWP17TE9UiyWhViFVGaY6RdYBRKexo+pP56kWFzbVxxzcsfd1TE0ZA5PJ+9cX+Gfh5vjoSxXfc3UuN3gqLFYOdux2KMhsEh4Ohy0WGVq7scuHSZSXBp5Mu2YwxZZNQBBXKefh9dV04TDum5uact1Gq4ZWLGlORoCq0CHp8NBZRYvLCqRPYyBp8tX6Gl65/UROu0MQV0fOT1PY71GtBflmp5GDuJ6NBj7dcPXTEOc1WI+LY3yYcWW5ugIrAIdng4HNRC4gcfEqrpULV3+d57f4/lKsxCVp0Ptk/R10qXK0MJ6ixbkCweytEE9Gct1Y2/GFo49b3McpgtYsaWY/iziGExpd7iYdoor+vEXryzTjp7wXk3p1aLR6ZLqHKWm5Rp3ar+J5a7pL32Pj39fx8wDpJoEOxf36NixNUzTNQMc+Lqx10wmblHjWGeqr5lRM4pzcYN/vkAzhiAAqkbNMDPHA09PqA5NLb7KnqUwEHX1TzV1mxRdXq9LDR50Ju1SVcc8z8fbk6Y2d/Axf2AeZ+wmX+hCVIHuQtbga1xdN4KeM/Wvssm/N/X8v2aKwg1cMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAZ418Ch9Ks6If+3O0AAAAASUVORK5CYII=";var L=`@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap");
2
+
3
+ :host {
4
+ --np-primary: #003c82;
5
+ --np-primary-dark: #002a5c;
6
+ --np-primary-soft: rgba(0, 60, 130, 0.08);
7
+ --np-border: #e2e8f0;
8
+ --np-text: #0f172a;
9
+ --np-text-muted: #64748b;
10
+ font-family: "Outfit", sans-serif;
11
+ display: block;
12
+ position: fixed;
13
+ right: 20px;
14
+ bottom: 20px;
15
+ z-index: 10000;
16
+ }
17
+
18
+ .launcher {
19
+ width: var(--np-hub-width, 72px);
20
+ height: var(--np-hub-height, 72px);
21
+ border: none;
22
+ border-radius: 50%;
23
+ cursor: grab;
24
+ box-shadow: 0 8px 28px rgba(0, 60, 130, 0.2);
25
+ background-color: #ffffff;
26
+ background-image: var(--np-hub-icon);
27
+ background-position: center;
28
+ background-repeat: no-repeat;
29
+ background-size: 75%;
30
+ transition:
31
+ transform 0.2s ease,
32
+ box-shadow 0.2s ease;
33
+ }
34
+
35
+ .launcher:hover {
36
+ transform: scale(1.05);
37
+ box-shadow: 0 12px 32px rgba(0, 60, 130, 0.3);
38
+ }
39
+
40
+ .launcher:active {
41
+ cursor: grabbing;
42
+ }
43
+
44
+ .modal {
45
+ position: fixed;
46
+ inset: 0;
47
+ background: rgba(15, 23, 42, 0.55);
48
+ backdrop-filter: blur(6px);
49
+ display: none;
50
+ align-items: center;
51
+ justify-content: center;
52
+ padding: 16px;
53
+ opacity: 0;
54
+ transition: opacity 0.25s ease-out;
55
+ }
56
+
57
+ .modal.show {
58
+ display: flex;
59
+ opacity: 1;
60
+ }
61
+
62
+ .dialog {
63
+ width: min(540px, 100%);
64
+ max-height: calc(100vh - 32px);
65
+ overflow-y: auto;
66
+ background: #ffffff;
67
+ border-radius: 20px;
68
+ box-shadow: 0 24px 60px rgba(15, 23, 42, 0.22);
69
+ padding: 28px 32px 32px;
70
+ box-sizing: border-box;
71
+ position: relative;
72
+ transform: translateY(24px) scale(0.98);
73
+ transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
74
+ }
75
+
76
+ .modal.show .dialog {
77
+ transform: translateY(0) scale(1);
78
+ }
79
+
80
+ .dialog::-webkit-scrollbar {
81
+ width: 8px;
82
+ }
83
+
84
+ .dialog::-webkit-scrollbar-thumb {
85
+ background: #cbd5e1;
86
+ border-radius: 8px;
87
+ }
88
+
89
+ .header {
90
+ display: flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ padding-bottom: 18px;
94
+ margin-bottom: 22px;
95
+ border-bottom: 1px solid var(--np-border);
96
+ position: relative;
97
+ }
98
+
99
+ .title {
100
+ margin: 0;
101
+ font-size: 22px;
102
+ font-weight: 700;
103
+ color: var(--np-primary);
104
+ text-align: center;
105
+ letter-spacing: -0.01em;
106
+ }
107
+
108
+ .close-btn {
109
+ border: none;
110
+ background: #f1f5f9;
111
+ color: #64748b;
112
+ font-size: 20px;
113
+ line-height: 1;
114
+ cursor: pointer;
115
+ position: absolute;
116
+ right: 0;
117
+ top: 0;
118
+ bottom: 18px;
119
+ margin: auto 0;
120
+ width: 32px;
121
+ height: 32px;
122
+ display: flex;
123
+ align-items: center;
124
+ justify-content: center;
125
+ border-radius: 50%;
126
+ transition:
127
+ background 0.15s ease,
128
+ color 0.15s ease,
129
+ transform 0.15s ease;
130
+ }
131
+
132
+ .close-btn:hover {
133
+ background: #e2e8f0;
134
+ color: #0f172a;
135
+ transform: rotate(90deg);
136
+ }
137
+
138
+ .form-grid {
139
+ display: grid;
140
+ grid-template-columns: 1fr 1fr;
141
+ gap: 18px;
142
+ }
143
+
144
+ .field {
145
+ display: flex;
146
+ flex-direction: column;
147
+ gap: 7px;
148
+ }
149
+
150
+ .field.full {
151
+ grid-column: 1 / -1;
152
+ }
153
+
154
+ label {
155
+ font-size: 13.5px;
156
+ font-weight: 600;
157
+ color: #334155;
158
+ }
159
+
160
+ .required {
161
+ color: #ef4444;
162
+ margin-right: 3px;
163
+ }
164
+
165
+ input,
166
+ textarea {
167
+ width: 100%;
168
+ box-sizing: border-box;
169
+ border: 1px solid #d5dde7;
170
+ border-radius: 10px;
171
+ font-size: 14px;
172
+ padding: 12px 14px;
173
+ color: var(--np-text);
174
+ outline: none;
175
+ font-family: inherit;
176
+ background: #fbfcfe;
177
+ transition:
178
+ border-color 0.15s ease,
179
+ box-shadow 0.15s ease,
180
+ background 0.15s ease;
181
+ }
182
+
183
+ textarea {
184
+ min-height: 120px;
185
+ resize: vertical;
186
+ line-height: 1.5;
187
+ }
188
+
189
+ input::placeholder,
190
+ textarea::placeholder {
191
+ color: #94a3b8;
192
+ }
193
+
194
+ input:hover,
195
+ textarea:hover {
196
+ border-color: #b6c2d1;
197
+ }
198
+
199
+ input:focus,
200
+ textarea:focus {
201
+ border-color: var(--np-primary);
202
+ background: #ffffff;
203
+ box-shadow: 0 0 0 4px var(--np-primary-soft);
204
+ }
205
+
206
+ .input-wrap {
207
+ position: relative;
208
+ }
209
+
210
+ .input-wrap input,
211
+ .input-wrap textarea {
212
+ padding-right: 40px;
213
+ }
214
+
215
+ .btn-clear {
216
+ position: absolute;
217
+ right: 10px;
218
+ top: 50%;
219
+ transform: translateY(-50%);
220
+ width: 24px;
221
+ height: 24px;
222
+ border: none;
223
+ border-radius: 50%;
224
+ background: #e2e8f0;
225
+ color: #64748b;
226
+ font-size: 16px;
227
+ line-height: 1;
228
+ cursor: pointer;
229
+ display: flex;
230
+ align-items: center;
231
+ justify-content: center;
232
+ padding: 0;
233
+ opacity: 0;
234
+ pointer-events: none;
235
+ transition:
236
+ opacity 0.15s ease,
237
+ background 0.15s ease,
238
+ color 0.15s ease;
239
+ }
240
+
241
+ .input-wrap.has-value:hover .btn-clear,
242
+ .input-wrap.has-value:focus-within .btn-clear {
243
+ opacity: 1;
244
+ pointer-events: auto;
245
+ }
246
+
247
+ .btn-clear:hover {
248
+ background: #cbd5e1;
249
+ color: #0f172a;
250
+ }
251
+
252
+ .input-wrap--textarea .btn-clear {
253
+ top: 12px;
254
+ transform: none;
255
+ }
256
+
257
+ /* File upload styling */
258
+ .upload-zone {
259
+ display: flex;
260
+ align-items: center;
261
+ gap: 16px;
262
+ background: #f8fafc;
263
+ border: 1.5px dashed #cbd5e1;
264
+ padding: 16px 20px;
265
+ border-radius: 12px;
266
+ cursor: pointer;
267
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
268
+ user-select: none;
269
+ outline: none;
270
+ }
271
+
272
+ .upload-zone:hover {
273
+ background: var(--np-primary-soft);
274
+ border-color: var(--np-primary);
275
+ }
276
+
277
+ .upload-zone:focus-visible {
278
+ border-color: var(--np-primary);
279
+ box-shadow: 0 0 0 4px var(--np-primary-soft);
280
+ }
281
+
282
+ .upload-zone.dragover {
283
+ background: rgba(0, 60, 130, 0.08);
284
+ border-color: var(--np-primary);
285
+ transform: scale(1.005);
286
+ }
287
+
288
+ .upload-icon-wrapper {
289
+ display: flex;
290
+ align-items: center;
291
+ justify-content: center;
292
+ width: 40px;
293
+ height: 40px;
294
+ border-radius: 10px;
295
+ background: #ffffff;
296
+ border: 1px solid #e2e8f0;
297
+ color: #64748b;
298
+ box-shadow: 0 2px 4px rgba(15, 23, 42, 0.04);
299
+ transition: all 0.2s ease;
300
+ flex-shrink: 0;
301
+ }
302
+
303
+ .upload-zone:hover .upload-icon-wrapper,
304
+ .upload-zone.dragover .upload-icon-wrapper {
305
+ color: var(--np-primary);
306
+ border-color: rgba(0, 60, 130, 0.15);
307
+ box-shadow: 0 4px 8px rgba(0, 60, 130, 0.08);
308
+ }
309
+
310
+ .upload-text-container {
311
+ display: flex;
312
+ flex-direction: column;
313
+ gap: 3px;
314
+ flex: 1;
315
+ }
316
+
317
+ .upload-main-text {
318
+ font-size: 13px;
319
+ font-weight: 600;
320
+ color: #334155;
321
+ transition: color 0.2s ease;
322
+ }
323
+
324
+ .upload-zone:hover .upload-main-text {
325
+ color: var(--np-primary);
326
+ }
327
+
328
+ .upload-sub-text {
329
+ font-size: 11px;
330
+ color: #64748b;
331
+ line-height: 1.4;
332
+ }
333
+
334
+ .file-list {
335
+ margin-top: 14px;
336
+ display: grid;
337
+ grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
338
+ gap: 12px;
339
+ }
340
+
341
+ .file-item {
342
+ position: relative;
343
+ display: flex;
344
+ flex-direction: column;
345
+ background: #ffffff;
346
+ border: 1px solid #e2e8f0;
347
+ border-radius: 12px;
348
+ font-size: 11px;
349
+ color: #475569;
350
+ box-shadow: 0 2px 5px rgba(15, 23, 42, 0.03);
351
+ animation: file-in 0.2s cubic-bezier(0.16, 1, 0.3, 1);
352
+ transition: all 0.2s ease;
353
+ overflow: hidden;
354
+ }
355
+
356
+ .file-item:hover {
357
+ border-color: #cbd5e1;
358
+ box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
359
+ transform: translateY(-2px);
360
+ }
361
+
362
+ .file-preview-trigger {
363
+ border: none;
364
+ background: none;
365
+ padding: 0;
366
+ margin: 0;
367
+ cursor: pointer;
368
+ display: flex;
369
+ flex-direction: column;
370
+ width: 100%;
371
+ color: inherit;
372
+ font: inherit;
373
+ }
374
+
375
+ .file-thumb {
376
+ width: 100%;
377
+ aspect-ratio: 1 / 1;
378
+ display: flex;
379
+ align-items: center;
380
+ justify-content: center;
381
+ background: #f8fafc;
382
+ border-bottom: 1px solid #f1f5f9;
383
+ position: relative;
384
+ overflow: hidden;
385
+ transition: background 0.2s ease;
386
+ }
387
+
388
+ .file-thumb img {
389
+ width: 100%;
390
+ height: 100%;
391
+ object-fit: cover;
392
+ display: block;
393
+ transition: transform 0.25s ease;
394
+ }
395
+
396
+ .file-item:hover .file-thumb img {
397
+ transform: scale(1.06);
398
+ }
399
+
400
+ .file-thumb--icon {
401
+ color: #64748b;
402
+ background: #f1f5f9;
403
+ }
404
+
405
+ .file-item:hover .file-thumb--icon {
406
+ background: #e2e8f0;
407
+ color: var(--np-primary);
408
+ }
409
+
410
+ @keyframes file-in {
411
+ from {
412
+ opacity: 0;
413
+ transform: translateY(6px);
414
+ }
415
+ to {
416
+ opacity: 1;
417
+ transform: translateY(0);
418
+ }
419
+ }
420
+
421
+ .file-info-container {
422
+ padding: 8px 6px;
423
+ display: flex;
424
+ align-items: center;
425
+ justify-content: center;
426
+ width: 100%;
427
+ box-sizing: border-box;
428
+ }
429
+
430
+ .file-item .file-name {
431
+ width: 100%;
432
+ overflow: hidden;
433
+ text-overflow: ellipsis;
434
+ white-space: nowrap;
435
+ line-height: 1.2;
436
+ color: #334155;
437
+ font-size: 11px;
438
+ font-weight: 500;
439
+ text-align: center;
440
+ }
441
+
442
+ .file-badge {
443
+ position: absolute;
444
+ top: 6px;
445
+ left: 6px;
446
+ z-index: 2;
447
+ padding: 3px 6px;
448
+ border-radius: 6px;
449
+ font-size: 9px;
450
+ font-weight: 600;
451
+ line-height: 1;
452
+ color: #0369a1;
453
+ background: rgba(224, 242, 254, 0.9);
454
+ border: 1px solid rgba(186, 230, 253, 0.8);
455
+ backdrop-filter: blur(4px);
456
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
457
+ }
458
+
459
+ .file-item .btn-remove {
460
+ position: absolute;
461
+ top: 6px;
462
+ right: 6px;
463
+ z-index: 2;
464
+ width: 20px;
465
+ height: 20px;
466
+ display: flex;
467
+ align-items: center;
468
+ justify-content: center;
469
+ background: rgba(255, 255, 255, 0.9);
470
+ border: 1px solid #e2e8f0;
471
+ border-radius: 50%;
472
+ color: #64748b;
473
+ cursor: pointer;
474
+ padding: 0;
475
+ box-shadow: 0 2px 4px rgba(15, 23, 42, 0.06);
476
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
477
+ backdrop-filter: blur(4px);
478
+ }
479
+
480
+ .file-item .btn-remove svg {
481
+ width: 8px;
482
+ height: 8px;
483
+ stroke-width: 3px;
484
+ transition: transform 0.2s ease;
485
+ }
486
+
487
+ .file-item .btn-remove:hover {
488
+ color: #ffffff;
489
+ background: #ef4444;
490
+ border-color: #ef4444;
491
+ transform: scale(1.1);
492
+ box-shadow: 0 3px 8px rgba(239, 68, 68, 0.25);
493
+ }
494
+
495
+ .file-item .btn-remove:hover svg {
496
+ transform: rotate(90deg);
497
+ }
498
+
499
+ /* File preview popup */
500
+ .preview-overlay {
501
+ position: fixed;
502
+ inset: 0;
503
+ z-index: 20;
504
+ display: none;
505
+ align-items: center;
506
+ justify-content: center;
507
+ padding: 24px;
508
+ background: rgba(15, 23, 42, 0.72);
509
+ backdrop-filter: blur(4px);
510
+ opacity: 0;
511
+ transition: opacity 0.2s ease-out;
512
+ }
513
+
514
+ .preview-overlay.show {
515
+ display: flex;
516
+ opacity: 1;
517
+ }
518
+
519
+ .preview-box {
520
+ position: relative;
521
+ max-width: min(720px, 100%);
522
+ max-height: calc(100vh - 96px);
523
+ background: #ffffff;
524
+ border-radius: 16px;
525
+ padding: 16px;
526
+ box-shadow: 0 24px 60px rgba(15, 23, 42, 0.35);
527
+ display: flex;
528
+ flex-direction: column;
529
+ }
530
+
531
+ .preview-close {
532
+ position: absolute;
533
+ top: -14px;
534
+ right: -14px;
535
+ width: 34px;
536
+ height: 34px;
537
+ border-radius: 50%;
538
+ border: none;
539
+ background: #ffffff;
540
+ color: #334155;
541
+ font-size: 22px;
542
+ line-height: 1;
543
+ cursor: pointer;
544
+ box-shadow: 0 4px 12px rgba(15, 23, 42, 0.25);
545
+ transition:
546
+ color 0.15s ease,
547
+ transform 0.15s ease;
548
+ }
549
+
550
+ .preview-close:hover {
551
+ color: #ef4444;
552
+ transform: scale(1.05);
553
+ }
554
+
555
+ .preview-body {
556
+ overflow: auto;
557
+ display: flex;
558
+ align-items: center;
559
+ justify-content: center;
560
+ }
561
+
562
+ .preview-body img {
563
+ max-width: 100%;
564
+ max-height: calc(100vh - 140px);
565
+ object-fit: contain;
566
+ border-radius: 8px;
567
+ display: block;
568
+ }
569
+
570
+ .preview-file {
571
+ display: flex;
572
+ flex-direction: column;
573
+ align-items: center;
574
+ gap: 12px;
575
+ padding: 32px 40px;
576
+ text-align: center;
577
+ color: var(--np-text);
578
+ }
579
+
580
+ .preview-file svg {
581
+ color: var(--np-primary);
582
+ }
583
+
584
+ .preview-file .preview-file-name {
585
+ font-size: 14px;
586
+ font-weight: 600;
587
+ word-break: break-all;
588
+ }
589
+
590
+ .preview-file a {
591
+ color: var(--np-primary);
592
+ font-size: 13px;
593
+ font-weight: 600;
594
+ text-decoration: none;
595
+ }
596
+
597
+ .preview-file a:hover {
598
+ text-decoration: underline;
599
+ }
600
+
601
+ .actions {
602
+ margin-top: 28px;
603
+ display: flex;
604
+ justify-content: flex-end;
605
+ gap: 12px;
606
+ }
607
+
608
+ .btn {
609
+ border-radius: 10px;
610
+ padding: 12px 26px;
611
+ font-size: 15px;
612
+ font-weight: 600;
613
+ font-family: inherit;
614
+ cursor: pointer;
615
+ transition: all 0.18s ease;
616
+ min-width: 120px;
617
+ }
618
+
619
+ .btn:active {
620
+ transform: translateY(1px);
621
+ }
622
+
623
+ .btn-secondary {
624
+ background: #ffffff;
625
+ border: 1px solid #d5dde7;
626
+ color: #334155;
627
+ }
628
+
629
+ .btn-secondary:hover {
630
+ background: #f1f5f9;
631
+ border-color: #b6c2d1;
632
+ }
633
+
634
+ .btn-primary {
635
+ background: linear-gradient(
636
+ 135deg,
637
+ var(--np-primary),
638
+ var(--np-primary-dark)
639
+ );
640
+ border: 1px solid var(--np-primary-dark);
641
+ color: #ffffff;
642
+ box-shadow: 0 6px 16px rgba(0, 60, 130, 0.28);
643
+ }
644
+
645
+ .btn-primary:hover {
646
+ box-shadow: 0 8px 22px rgba(0, 60, 130, 0.38);
647
+ filter: brightness(1.06);
648
+ }
649
+
650
+ @media (max-width: 480px) {
651
+ .dialog {
652
+ padding: 24px 20px 24px;
653
+ border-radius: 16px;
654
+ }
655
+
656
+ .form-grid {
657
+ grid-template-columns: 1fr;
658
+ }
659
+
660
+ .actions {
661
+ justify-content: stretch;
662
+ }
663
+
664
+ .actions .btn {
665
+ flex: 1;
666
+ }
667
+ }
668
+ `;var X=`<button
669
+ id="open-btn"
670
+ class="launcher"
671
+ type="button"
672
+ aria-label="Open support form"
673
+ ></button>
674
+
675
+ <div id="modal" class="modal">
676
+ <div
677
+ class="dialog"
678
+ role="dialog"
679
+ aria-modal="true"
680
+ aria-label="Support request form"
681
+ >
682
+ <div class="header">
683
+ <h3 class="title">T\u1EA1o y\xEAu c\u1EA7u</h3>
684
+ <button id="close-btn" class="close-btn" type="button" aria-label="Close">
685
+ \xD7
686
+ </button>
687
+ </div>
688
+
689
+ <div class="form-grid">
690
+ <div class="field">
691
+ <label for="requester"><span class="required">*</span> H\u1ECD v\xE0 t\xEAn</label>
692
+ <div class="input-wrap">
693
+ <input id="requester" type="text" placeholder="H\u1ECD v\xE0 t\xEAn" />
694
+ <button type="button" class="btn-clear" aria-label="X\xF3a">\xD7</button>
695
+ </div>
696
+ </div>
697
+
698
+ <div class="field">
699
+ <label for="phone-number"
700
+ ><span class="required">*</span> S\u1ED1 \u0111i\u1EC7n tho\u1EA1i</label
701
+ >
702
+ <div class="input-wrap">
703
+ <input id="phone-number" type="text" placeholder="S\u1ED1 \u0111i\u1EC7n tho\u1EA1i" />
704
+ <button type="button" class="btn-clear" aria-label="X\xF3a">\xD7</button>
705
+ </div>
706
+ </div>
707
+
708
+ <div class="field full">
709
+ <label for="email"><span class="required">*</span> Email</label>
710
+ <div class="input-wrap">
711
+ <input id="email" type="email" placeholder="Email" />
712
+ <button type="button" class="btn-clear" aria-label="X\xF3a">\xD7</button>
713
+ </div>
714
+ </div>
715
+
716
+ <div class="field full">
717
+ <label for="content"><span class="required">*</span> N\u1ED9i dung</label>
718
+ <div class="input-wrap input-wrap--textarea">
719
+ <textarea
720
+ id="content"
721
+ placeholder="Anh/Ch\u1ECB vui l\xF2ng nh\u1EADp th\xF4ng tin c\u1EA7n h\u1ED7 tr\u1EE3"
722
+ ></textarea>
723
+ <button type="button" class="btn-clear" aria-label="X\xF3a">\xD7</button>
724
+ </div>
725
+ </div>
726
+
727
+ <div class="field full">
728
+ <label>File \u0111\xEDnh k\xE8m</label>
729
+ <div id="upload-trigger" class="upload-zone" role="button" tabindex="0" aria-label="T\u1EA3i l\xEAn t\u1EC7p">
730
+ <input id="file-input" type="file" multiple style="display: none" />
731
+ <div class="upload-icon-wrapper">
732
+ <svg
733
+ class="upload-icon"
734
+ xmlns="http://www.w3.org/2000/svg"
735
+ width="20"
736
+ height="20"
737
+ viewBox="0 0 24 24"
738
+ fill="none"
739
+ stroke="currentColor"
740
+ stroke-width="2.2"
741
+ stroke-linecap="round"
742
+ stroke-linejoin="round"
743
+ >
744
+ <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
745
+ <polyline points="17 8 12 3 7 8"></polyline>
746
+ <line x1="12" y1="3" x2="12" y2="15"></line>
747
+ </svg>
748
+ </div>
749
+ <div class="upload-text-container">
750
+ <span class="upload-main-text">Ch\u1ECDn t\u1EC7p t\u1EA3i l\xEAn ho\u1EB7c k\xE9o th\u1EA3 v\xE0o \u0111\xE2y</span>
751
+ <span class="upload-sub-text">H\u1ED7 tr\u1EE3 d\xE1n \u1EA3nh ho\u1EB7c t\u1EC7p (Ctrl+V / Cmd+V) \u0111\u1EC3 \u0111\xEDnh k\xE8m nhanh</span>
752
+ </div>
753
+ </div>
754
+ <div id="file-list" class="file-list"></div>
755
+ </div>
756
+ </div>
757
+
758
+ <div id="preview-overlay" class="preview-overlay">
759
+ <div
760
+ class="preview-box"
761
+ role="dialog"
762
+ aria-modal="true"
763
+ aria-label="Xem tr\u01B0\u1EDBc t\u1EC7p"
764
+ >
765
+ <button
766
+ id="preview-close"
767
+ class="preview-close"
768
+ type="button"
769
+ aria-label="\u0110\xF3ng"
770
+ >
771
+ \xD7
772
+ </button>
773
+ <div id="preview-body" class="preview-body"></div>
774
+ </div>
775
+ </div>
776
+
777
+ <div class="actions">
778
+ <button id="cancel-btn" class="btn btn-secondary" type="button">
779
+ H\u1EE7y
780
+ </button>
781
+ <button id="submit-btn" class="btn btn-primary" type="button">
782
+ T\u1EA1o y\xEAu c\u1EA7u
783
+ </button>
784
+ </div>
785
+ </div>
786
+ </div>
787
+ `;var m=null;function B(){return m||(m=document.createElement("template"),m.innerHTML=`<style>${L}</style>${X}`),m}async function D(o){try{let a=await fetch(o);if(!a.ok)return null;let e=await a.blob(),t=o.substring(o.lastIndexOf("/")+1)||"attachment";return new File([e],t,{type:e.type})}catch(a){return console.warn("Failed to fetch prefilled attachment",o,a),null}}var f=class extends HTMLElement{constructor(){super();this.config={projectId:""};this.dragOccurred=!1;this.selectedFiles=[];this.prefilledAttachments=[];this.previewUrls=[];this.priority=0;this.coordinators=[];this.emailContacts=[];this.handleResize=()=>{if(this.style.left&&this.style.top){let e=parseFloat(this.style.left),t=parseFloat(this.style.top);this.adjustPosition(e,t)}};this.attachShadow({mode:"open"}).appendChild(B().content.cloneNode(!0)),this.bindActions()}connectedCallback(){this.syncConfigFromAttributes(),this.prefillFromState(),this.applyLauncherStyle(),this.restorePosition(),window.addEventListener("resize",this.handleResize)}disconnectedCallback(){window.removeEventListener("resize",this.handleResize)}attributeChangedCallback(){this.syncConfigFromAttributes(),this.prefillFromState(),this.applyLauncherStyle()}setUser(e){this.user=e,this.prefillFromState()}setFormPrefill(e){this.setInputValue("content",e.content??""),this.prefilledAttachments=e.attachments??[],this.priority=e.priority??0,this.coordinators=e.coordinators??[],this.emailContacts=e.emailContacts??[],this.renderFileList()}open(){this.shadowRoot?.getElementById("modal")?.classList.add("show"),this.dispatchEvent(new CustomEvent(u.OPEN,{bubbles:!0}))}close(){this.shadowRoot?.getElementById("modal")?.classList.remove("show"),this.dispatchEvent(new CustomEvent(u.CLOSE,{bubbles:!0}))}syncConfigFromAttributes(){this.config={projectId:this.getAttribute("project-id")??"",isDev:this.hasAttribute("is-dev")}}bindActions(){let e=this.shadowRoot;if(!e)return;let t=e.getElementById("open-btn");t&&(t.addEventListener("click",()=>{if(this.dragOccurred){this.dragOccurred=!1;return}this.open()}),this.setupDrag(t)),e.getElementById("close-btn")?.addEventListener("click",()=>this.close()),e.getElementById("cancel-btn")?.addEventListener("click",()=>this.close()),e.getElementById("submit-btn")?.addEventListener("click",()=>{this.submit()}),this.setupClearableInputs();let i=e.getElementById("upload-trigger"),r=e.getElementById("file-input");i&&r&&(i.addEventListener("click",()=>{r.click()}),i.addEventListener("keydown",n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),r.click())}),i.addEventListener("dragover",n=>{n.preventDefault(),n.dataTransfer&&(n.dataTransfer.dropEffect="copy"),i.classList.add("dragover")}),i.addEventListener("dragleave",()=>{i.classList.remove("dragover")}),i.addEventListener("drop",n=>{n.preventDefault(),i.classList.remove("dragover"),n.dataTransfer?.files&&n.dataTransfer.files.length>0&&this.addSelectedFiles(Array.from(n.dataTransfer.files))}),r.addEventListener("change",()=>{r.files&&(this.addSelectedFiles(Array.from(r.files)),r.value="")})),this.setupClipboardPaste(),this.setupPreviewControls()}setupPreviewControls(){let e=this.shadowRoot;if(!e)return;let t=e.getElementById("preview-overlay");e.getElementById("preview-close")?.addEventListener("click",()=>this.closePreview()),t?.addEventListener("click",i=>{i.target===t&&this.closePreview()}),e.addEventListener("keydown",i=>{i.key==="Escape"&&this.closePreview()})}setupClipboardPaste(){let e=this.shadowRoot?.querySelector(".dialog");e&&e.addEventListener("paste",t=>{let i=t.clipboardData;if(!i)return;let r=Array.from(i.items).filter(n=>n.kind==="file").map(n=>n.getAsFile()).filter(n=>n!==null);r.length!==0&&(t.preventDefault(),this.addSelectedFiles(r))})}addSelectedFiles(e){e.length!==0&&(this.selectedFiles.push(...e),this.renderFileList())}renderFileList(){let e=this.shadowRoot?.getElementById("file-list");e&&(e.innerHTML="",this.previewUrls.forEach(t=>URL.revokeObjectURL(t)),this.previewUrls=[],this.prefilledAttachments.forEach((t,i)=>{let r=t.substring(t.lastIndexOf("/")+1)||t,n=this.isImageName(r),l=n?t:null;e.appendChild(this.buildFileItem({name:r,title:t,previewUrl:l,type:"prefilled",index:i,isImage:n,openUrl:t,badge:"\u0110\xE3 g\xE1n"}))}),this.selectedFiles.forEach((t,i)=>{let r=null,n=t.type.startsWith("image/");n&&(r=URL.createObjectURL(t),this.previewUrls.push(r)),e.appendChild(this.buildFileItem({name:t.name,title:t.name,previewUrl:r,type:"selected",index:i,isImage:n,openUrl:null,badge:null}))}),e.querySelectorAll(".btn-remove").forEach(t=>{t.addEventListener("click",i=>{let r=i.currentTarget,n=r.getAttribute("data-type"),l=parseInt(r.getAttribute("data-index")||"0",10);n==="prefilled"?this.prefilledAttachments.splice(l,1):this.selectedFiles.splice(l,1),this.renderFileList()})}))}buildFileItem(e){let t=document.createElement("div");t.className="file-item";let i=document.createElement("button");i.type="button",i.className="file-preview-trigger",i.title="Nh\u1EA5n \u0111\u1EC3 xem tr\u01B0\u1EDBc",i.addEventListener("click",()=>{this.openPreview({name:e.title,previewUrl:e.previewUrl,isImage:e.isImage,openUrl:e.openUrl})});let r=document.createElement("div");if(r.className="file-thumb",e.previewUrl){let p=document.createElement("img");p.src=e.previewUrl,p.alt=e.name,p.addEventListener("error",()=>this.fillWithFileIcon(r)),r.appendChild(p)}else this.fillWithFileIcon(r);let n=document.createElement("div");n.className="file-info-container";let l=document.createElement("span");l.className="file-name",l.title=e.title,l.textContent=e.name,n.appendChild(l),i.append(r,n);let s=document.createElement("button");if(s.type="button",s.className="btn-remove",s.setAttribute("aria-label","X\xF3a t\u1EC7p"),s.setAttribute("data-type",e.type),s.setAttribute("data-index",String(e.index)),s.innerHTML=`
788
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
789
+ <line x1="18" y1="6" x2="6" y2="18"></line>
790
+ <line x1="6" y1="6" x2="18" y2="18"></line>
791
+ </svg>
792
+ `,t.append(i,s),e.badge){let p=document.createElement("span");p.className="file-badge",p.textContent=e.badge,t.appendChild(p)}return t}fillWithFileIcon(e){e.innerHTML="",e.classList.add("file-thumb--icon"),e.innerHTML=`
793
+ <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
794
+ <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
795
+ <polyline points="14 2 14 8 20 8"></polyline>
796
+ </svg>`}openPreview(e){let t=this.shadowRoot?.getElementById("preview-overlay"),i=this.shadowRoot?.getElementById("preview-body");if(!(!t||!i)){if(i.innerHTML="",e.isImage&&e.previewUrl){let r=document.createElement("img");r.src=e.previewUrl,r.alt=e.name,i.appendChild(r)}else{let r=document.createElement("div");r.className="preview-file";let n=e.openUrl?`<a href="${e.openUrl}" target="_blank" rel="noopener noreferrer">M\u1EDF trong tab m\u1EDBi</a>`:"<span>Kh\xF4ng c\xF3 b\u1EA3n xem tr\u01B0\u1EDBc cho t\u1EC7p n\xE0y</span>";r.innerHTML=`
797
+ <svg xmlns="http://www.w3.org/2000/svg" width="56" height="56" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
798
+ <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
799
+ <polyline points="14 2 14 8 20 8"></polyline>
800
+ </svg>
801
+ <span class="preview-file-name"></span>
802
+ ${n}`;let l=r.querySelector(".preview-file-name");l&&(l.textContent=e.name),i.appendChild(r)}t.classList.add("show")}}closePreview(){let e=this.shadowRoot?.getElementById("preview-overlay");if(!e)return;e.classList.remove("show");let t=this.shadowRoot?.getElementById("preview-body");t&&(t.innerHTML="")}isImageName(e){return/\.(png|jpe?g|gif|webp|bmp|svg|avif)$/i.test(e)}prefillFromState(){this.setInputValue("requester",this.user?.name??""),this.setInputValue("email",this.user?.email??""),this.setInputValue("phone-number",this.user?.phoneNumber??"")}applyLauncherStyle(){let e=this.shadowRoot?.getElementById("open-btn");if(!e)return;let t=[`--np-hub-icon: url("${I}")`],i=this.normalizeSize(this.getAttribute("width")),r=this.normalizeSize(this.getAttribute("height"));i&&t.push(`--np-hub-width: ${i}`),r&&t.push(`--np-hub-height: ${r}`),e.setAttribute("style",`${t.join("; ")};`)}normalizeSize(e){let t=e?.trim();return t?/^\d+(\.\d+)?$/.test(t)?`${t}px`:t:null}setupClearableInputs(){let e=this.shadowRoot;e&&e.querySelectorAll(".input-wrap").forEach(t=>{let i=t.querySelector("input, textarea"),r=t.querySelector(".btn-clear");if(!i||!r)return;let n=()=>this.updateClearButton(i);i.addEventListener("input",n),r.addEventListener("click",()=>{i.value="",i.focus(),n()}),n()})}updateClearButton(e){let t=e.parentElement;t?.classList.contains("input-wrap")&&t.classList.toggle("has-value",e.value.length>0)}setInputValue(e,t){let i=this.shadowRoot?.getElementById(e);i&&(i.value=t,this.updateClearButton(i))}getInputValue(e){return this.shadowRoot?.getElementById(e)?.value?.trim()??""}async submit(){try{let e={name:this.getInputValue("requester"),email:this.getInputValue("email"),phoneNumber:this.getInputValue("phone-number")};this.user=e,x(this.config),w(e);let t=this.getInputValue("content"),i={content:t,attachments:[],priority:this.priority,coordinators:this.coordinators,emailContacts:this.emailContacts};y(i);let r=new FormData;r.append("Requester",e.name),r.append("PhoneNumber",e.phoneNumber),r.append("Email",e.email),r.append("Content",t),r.append("ProjectId",this.config.projectId),r.append("Priority",String(this.priority));for(let s of this.prefilledAttachments){let p=await D(s);p&&r.append("Attachments",p)}for(let s of this.selectedFiles)r.append("Attachments",s);this.coordinators.forEach(s=>r.append("Coordinators",s)),this.emailContacts.forEach(s=>r.append("EmailContacts",s));let n=v(this.config),l=await k(n,r);this.dispatchEvent(new CustomEvent(u.SUBMIT_SUCCESS,{bubbles:!0,detail:l})),this.close()}catch(e){let t=e instanceof Error?e.message:"Unknown error";this.dispatchEvent(new CustomEvent(u.SUBMIT_ERROR,{bubbles:!0,detail:{message:t}}))}}setupDrag(e){e.addEventListener("pointerdown",t=>{if(t.button!==0)return;this.dragOccurred=!1;let i=this.getBoundingClientRect(),r=t.clientX,n=t.clientY,l=i.left,s=i.top;try{e.setPointerCapture(t.pointerId)}catch{}let p=c=>{let h=c.clientX-r,g=c.clientY-n;if(!this.dragOccurred&&(Math.abs(h)>4||Math.abs(g)>4)&&(this.dragOccurred=!0,e.style.cursor="grabbing"),this.dragOccurred){let T=l+h,S=s+g;this.adjustPosition(T,S)}},d=c=>{try{e.releasePointerCapture(c.pointerId)}catch{}e.removeEventListener("pointermove",p),e.removeEventListener("pointerup",d),e.removeEventListener("pointercancel",d),e.style.cursor="",this.dragOccurred&&localStorage.setItem("np-hub-widget-position",JSON.stringify({left:this.style.left,top:this.style.top}))};e.addEventListener("pointermove",p),e.addEventListener("pointerup",d),e.addEventListener("pointercancel",d)})}adjustPosition(e,t){let i=this.getBoundingClientRect(),r=i.width||72,n=i.height||72,l=0,s=window.innerWidth-r,p=0,d=window.innerHeight-n,c=Math.max(l,Math.min(s,e)),h=Math.max(p,Math.min(d,t));this.style.right="auto",this.style.bottom="auto",this.style.left=`${c}px`,this.style.top=`${h}px`}restorePosition(){let e=localStorage.getItem("np-hub-widget-position");if(e)try{let{left:t,top:i}=JSON.parse(e);if(t&&i){let r=parseFloat(t),n=parseFloat(i);this.adjustPosition(r,n)}}catch{}}};f.observedAttributes=["project-id","is-dev","width","height"];var C="np-hub";function z(){customElements.get(C)||customElements.define(C,f)}z();return j(J);})();