<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
    <Name>GeneralCatalog</Name>
    <Version>11.1.1</Version>
    <Vendor>Rother OSS GmbH</Vendor>
    <URL>https://otobo.io/</URL>
    <License>GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007</License>
    <ChangeLog Date="2026-06-22 08:34:29" Version="11.1.1">Update to OTOBO 11.1.</ChangeLog>
    <Description Lang="en">The General Catalog package.</Description>
    <Description Lang="de">Das General Catalog Paket.</Description>
    <Description Lang="es">El paquete General Catalog.</Description>
    <Description Lang="hu">Az általános katalógus csomag.</Description>
    <Framework>11.1.x</Framework>
    <IntroUninstall Lang="en" Title="Uninstallation Information" Type="pre">

        &lt;br/&gt;
        &lt;strong&gt;ATTENTION&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        If you uninstall this package, all database tables that were created during installation will be deleted.
        All data from this table will be irrevocably lost.
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;

    </IntroUninstall>
    <IntroUninstall Lang="de" Title="Uninstallation Information" Type="pre">

        &lt;br/&gt;
        &lt;strong&gt;ACHTUNG&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Bei der Deinstallation werden die von diesem Paket angelegten Datenbank-Tabellen gelöscht.
        Alle darin enthaltenen Daten gehen unwiderruflich verloren!
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;

    </IntroUninstall>
    <IntroUninstall Lang="es" Title="Información de Desinstalación" Type="pre">

        &lt;br/&gt;
        &lt;strong&gt;ATENCIÓN&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Si usted desinstala este paquete, todas las tablas de la base de datos creadas durante la instalación serán borradas.
        ¡Todos los datos de esas tablas serán irrevocablemente perdidos!.
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;

    </IntroUninstall>
    <IntroUninstall Lang="hu" Title="Eltávolítási információk" Type="pre">

        &lt;br/&gt;
        &lt;strong&gt;FIGYELEM&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Ha eltávolítja ezt a csomagot, akkor a telepítés során létrehozott összes adatbázistábla törlésre kerül.
        Az ezekben a táblákban lévő összes adat visszavonhatatlanul el fog veszni!
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;

    </IntroUninstall>
    <CodeInstall Type="post">

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}-&gt;{Name}-&gt;{Content};

        $Kernel::OM-&gt;Get($CodeModule)-&gt;CodeInstall();

    </CodeInstall>
    <CodeUninstall Type="pre">

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}-&gt;{Name}-&gt;{Content};

        $Kernel::OM-&gt;Get($CodeModule)-&gt;CodeUninstall();

    </CodeUninstall>
    <CodeReinstall Type="post">

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}-&gt;{Name}-&gt;{Content};

        $Kernel::OM-&gt;Get($CodeModule)-&gt;CodeReinstall();

    </CodeReinstall>
    <BuildCommitID>b2c40c6a20da287251c986ba1884058ad65119b7</BuildCommitID>
    <BuildDate>2026-06-22 08:34:32</BuildDate>
    <BuildHost>opms.rother-oss.com</BuildHost>
    <Filelist>
        <File Location="doc/general-catalog-database.dia" Permission="660" Encode="Base64">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</File>
        <File Location="doc/general-catalog-database.png" Permission="660" Encode="Base64">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EolEYWFhQUE0DdryIwAgtsxfo7/5+te/nv4vAJyVsrKysrKyqEYvLS2NML0CgD52vly7nS91nmvx+oDS3Nz86quvvv322zU1NadPny4uLi4vL7/ooouuvPLKzGUIcn/bvv71r7c7uLCwcPjw4TNmzLjmmms6fkBsa2urrKzcsmXL4cOHm5qaBg0aVF5ePmXKlPe9731jx47NcdB33nlnw4YNe/bsaWhoKCkpmTJlyrx58yZPnpxLtd3YBQD0D+Xl5VGXAEAsnD59urKycseOHTU1NadOnRo0aNCoUaNmzpw5d+7c4uLiqKs751pbW19//fW33367urq6sbExPz9/5MiRM2fOnD9//uDBg6OubuCKUX60Z8+eZ5555uTJk+ktDQ0NDQ0Ne/bsWbNmzSc/+clcIpgutbS01NTU1NTU/P73v7/33ntHjBiR3tXc3Lxs2bJ9+/alt5w6dWrfvn379u1bvXp1jgnOqlWrfvvb36bXvzx58uSWLVu2bNkiAAIAAKBL27dvX7FixalTp9JbGhsb9+zZs2fPntWrV990001z5syJsLxz7Z133nnmmWeOHz+e3tLa2lpdXV1dXb1u3bqbbrrpsssuO6sT6h7qLXHJj/bt2/f4448nk8mKioprrrlm8uTJJSUlp06d2rt375o1a/bv3//444/ffffdEyZMCM70xnf5A5He1dDQsG/fvhdffLGuru6ll176xCc+kT5m1apV+/btGzx48Ic//OELL7ywrKyspaWltrZ2165dW7ZsyeVZbNy4cdWqVXl5eQsWLLj88stHjBhx+vTpnTt3btiwIfeXwo81AADAwLRjx44nn3wylUpNnTp1/vz5EyZMKC0tbW5urq2t3bZtW2Vl5YoVK/pxfvTOO+98//vfb21traiouOqqqyZPnlxWVtba2nr06NG3335748aNP/nJT842P6K3xCI/SiaTP/7xj5PJ5GWXXfYnf/IneXl/WNW7rKxs1qxZF1988U9/+tNNmzb96Ec/uv/++/Pz83sy1uDBgy+++OLS0tLHHnts586dmbveeOONIAhuvfXW6dOnh1vy8/MnTJgwYcKEhQsXdnnmhoaGX/3qV0EQ3HzzzZdffnl6uNmzZ8+ePbsnNQMAANDvtbS0PPvss6lU6oMf/OCHP/zh9PaSkpKJEydOnDjx2muvfe655yKs8JxKJpM/+tGPWltbr7zyyptuuimdDBQUFFRUVFRUVCxYsKAfP/34i0V+tHnz5mPHjo0aNermm29O/4ik5eXl3Xzzzfv37w8nnfVK1hguZtTU1JS58cSJE0EQTJw4sXvnfP3115ubmydOnJgOj86FsDvpn/7pnyorK1977bXa2tqWlpZ/+qd/CoJg//79mzZt2r17d11dXSKRGDZs2EUXXXTttdeWlJR0PMPXv/71TZs2bdy4saamJi8vb+LEiYsWLQpfltdffz3cnkqlJk6c+JGPfKTj2k91dXVr166tqqqqr68vKCgYN27cVVdddfHFF6cP+D//5/8cO3bsvvvuGzduXLjl2Wefff3114MguPTSS2+55ZZwY3V19dKlS0eMGPHXf/3X6cfu27dv7dq1+/btO3XqVElJyaRJkxYsWBC2nuXyOnTU1NS0YsWKbdu25eXl3XjjjfPmzTvLVx0AAOCc27RpU0NDw6RJkzLDo0zFxcW33nprx+1dXqAFGVeCr7/++oYNG8IrwUmTJqWvBLt3wp5cnLYTJgNjx47NDI8yFRUVLV68OH03l1HS83syJ/qkb3evzlAu161BEGzfvn3NmjXV1dWpVKq8vHzu3Llz5849T6fUxSI/2rZtWxAEf/RHf9RZb1F+fv5VV13185//fNu2bb2SH1VXVwdBMHTo0MyNQ4YMOX78+I4dO2bNmtWNc1ZVVQVB0DedhL/4xS9effXVdhsffvjhzLu1tbW1tbVbt25dsmRJaWlpu4Off/75zFl127dv37Nnz5IlSzZu3PjKK6+kt1dVVb3zzjv33XffyJEjMzcuX768ubk5vNva2rpr165du3Z94AMfuO6668KN06ZNe+2113bt2pXOj3bt2tXuRhAEYQvY1KlT01s2btz43HPPZS4gtXXr1jfffPOP//iP586dm8vr0E5dXd1TTz11+PDh0tLS22+/PXMsAACA+Ni+fXsQBGf7B+9cLtDSXnzxxXXr1mWOuGfPnvvuu++CCy7o3gl7fnGalk4GzhgeddS9UXrlDDlet65fv/6FF15I3z1w4MCBAwcOHjyYS20xFIv86MCBA8F7Q4SOwr3hkT0RLjz24osvBkHQblrZnDlzVq9evWLFiqqqqosuumj8+PFntbT74cOHgyCYOHHiG2+8sXbt2sOHD+fn548ePfryyy+/7LLLEolEDyvPVFlZuWDBgiuuuGLkyJHpX60pU6bMnTt30qRJZWVlzc3NBw4ceOmll/bv37969errr7++3Rk2btx4zTXXXHHFFUOHDj106NDKlStramqeeOKJ+vr6jttXr1798Y9/PHxgfX39008/3dzcPHv27AULFlxwwQWnTp164403/uu//uvll1+ePn16uMz51KlTw/xowYIFQRDU1tbW19eXlZWlUqn6+vra2trwK2bCLCn91h88ePD5559PpVKXX375tddeO3z48GPHjq1evXrTpk3PPffcxIkTR48e3eXrkGn37t1PP/10Y2Pj6NGj//RP/zRzuXQAAIBYCZOFs5oTk+MFWtqGDRsWLlx4+eWXl5WVHTx4cOXKlUeOHFm9enW6r+dsT9jzi9O0sM8j9y/OymWU9Heyn7HZp3t15njdevDgwV/+8pdBEMybN2/BggVDhw6tr69fu3btxo0bc3yCcROL/KixsTHo0A3UTrg3PLIbOv6szJ49+wMf+EDmlg996EP19fWvv/56ZWVlZWVlOOiUKVMuvfTS9IpIWYTL42/ZsuV3v/tduKWlpWXv3r179+7dvn377bffnmOE1Nnq4JnmzZv30Y9+tN3Gz3zmM+nbJSUl06dPLy8v/9d//de3336744/+Nddcs2jRovD2hAkTbrrppv/8z/88duzYwoULO27P7Bhav359U1NT5hy0oqKiBQsW5OfnP//886+88ko6PwqCYM+ePclkMj8/P50TpVKpLVu27Nq1q7y8PJlM7tmzJ8jIjzZs2NDW1jZz5sx0XHXBBRcsXrz45MmTO3bsWL9+/Z/8yZ90+Tqkvfrqq88991xbW9tFF1106623Dho0qLMjAQAAIhde8JaVlbXbnuUiMccLtLSFCxemJ8dNmjTpYx/72OOPP7579+70AWd7wp5fnKY1NDQEQTBkyJDODuiVUXp+hhyvW1955ZW2trZZs2Z97GMfCw8bMWLExz72sYaGhq1bt+b4HGMlFvlR3xs2bNgHP/jBdtPl8vPzb7nllgULFmzZsmXPnj0HDx6sr6/fvHnz5s2bZ82a9YlPfCL70t1h69qaNWuKi4uvv/76mTNnBkHw9ttvv/DCC1u3bt24ceP8+fN7q/4rr7yy48Ywy9y5c+exY8fSrYZBEGR+8WHaFVdckXm3oqIiy/ZwZajQjh07giC46qqr2p3wfe973/PPP79v377wbllZ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3HvttdceOXKk158CnAvyIwCgP2tra2toaDh9+nTUhXQqfTkkQhoIJk+eHHUJvWbOnDmR/NCe8QI+R1HVnF08q4qhPnuVvvKVr3z2s59N3z1w4MA999yzbt26L3/5y7W1tR2PX7JkybJly1566aVUKrVq1aq77rory94f//jHmXs/97nPffWrXz1HTwR6V0HUBQAAnEPNzc0HDhwoKCiYOnVq1LWcmaaDAWXv3r1Rl3Deq66ujroE+rOqqqrKyspHH300vaWiouKxxx7L8pC8vLxRo0aFtxcsWNDQ0JBlb3Nzc+beT3/609/+9rerqqqmT5/eO08Azhn9RwBAf5ZKpYqLi4uLi6MupFP6jwiC4JFHHpk6dWpZWdknP/nJ48ePt5un89Of/vSqq64qLS2dNWvWihUrMh8YHnny5MnFixcXFRV1nDuT5bFBxoSgZcuWXXLJJUOHDn3ggQfSex966KF77723oqJi/PjxS5Ys2bVrV28933Xr1t14443Dhg0rKSlZuHDhb37zm5kzZ3Y57owZM8JqExnanbknNf/whz+8/PLLBw8efMUVVzz99NPt9mZ/j3ryfLPL8oyeffbZoqKiRCJRUlJy5ZVXrlix4v3vf3+Oe0Pz58+fP39+jpWktXvxO74X2d+F7D91Xb5W27dvX7BgQUFBQcef9p6Mm7Z06dJ77733rF6Qw4cPd3tvEAR333330qVLz2pEiEYKAIBIvf3222+//XZra2vUhdDLpk6dunnz5swtZ/z4/fTTT1977bU7duxobm7esmXLF7/4xczDfvjDH9555507d+5samrasmXLokWLXnjhhXbn/Mu//MuXX365ra1txYoVhYWFuT82fPgdd9xx6623VlZWNjc3P//88+ldO3bsCG/U1tZ+7WtfmzZtWsfiu3FB8eKLL86ePfuFF144cuRIc3Pznj17HnzwwZEjR+Y4bvYRu13zU089ddtttzU0NKRSqYaGhttuu2358uXpvdnfox4+3+zPK8szKiwsXLFiRSqVSiaThw8fXrZs2ahRo3LcG7ryyiuvvPLKHJ9IpoULF65Zsya8vWbNmg984AM51hzq7Keuy9cqCII//uM/3rJlS8ef9p6Mm2n27NlvvPFGZ0/8jG9TIpHIckzHvX/7t3+bueX3v//9+9///s5GhPiQHwEARCyZTCaTyairoPel86OOS/ZUVFSkD7v00kszY6YNGzZkXn/OmjXrnXfeSd99++23r7nmmsxRgiB4+umnM+/m/tjw+F/84hddPpfW1tYzXjl3Iz+aM2fO+vXrczy447i5j3hWNV9yySVvvfVW+u5bb711ySWXpO9mf4+yy/H55nLCds+otLT0oYceOnbs2BkPzr63hx5//PG77747vP2Zz3xm2bJlnR15xnehs5+6Ll+rIAiqq6sz7/bKuJlKSkrCGLGzArrc2OXddvnRyZMni4uLs1cFcZBI6ZQGAIBzYNq0aStXrpw9e3Z6S9iJ0O6wsrKympqakpKS8G5DQ0NZWVn6sOLi4qampszjS0pKGhsbOztn5t0uH9tZSUEQHD58+H/9r//13HPP7d69u7S09LLLLvvNb37T8cjOHp7FoEGDjh49Onjw4DPu7XLcLCP2pOaioqLjx4+n34VTp04NHz48/eplf4968nyzV5X9GT3//PMf//jHW1paioqKRo8ePWTIkP/8z/+cN29eLnt76NSpUxdeeOHWrVuDIJg1a9aOHTvS04RzeRc6exO7fK2y/LT3ZNxMJSUlR44cKS0tzaWAzqpqa2vLnN/Xbu/f/u3f/su//Et6S0NDw6hRo9r9YkIMWf8IAACiNGPGjKqqqvTdzZs3Z+6dNWvWm2++mfkX4NyvM3vy2MWLF998881bt25tbGzcv3//97///Rwf2KWpU6du2rSpt8bNDMh6UvOMGTP27NmTvrtnz57M9Yyzv0fZZX++2WV/RjfeeGNzc3Nzc/P+/ftffvnlu+6666Mf/WiOe3uopKRk8eLFTz755BNPPHHLLbdkrjHXk3fh3L1WuZs+ffru3bu799i0ZDKZZW9bW1vm3V27ds2YMaOHI0IfkB8BAECUvva1r/3N3/zNwYMHk8nkli1bfvCDH2Tu/eY3v7lkyZJXXnnl1KlTDQ0Nr7322ic+8Ykcz9yTx+7evbuurq6pqammpmbt2rXf+c53zu5Zde4b3/jG5z//+R07dgRB0NDQ8Oabby5duvTuu+/OcdzCwsJw1eTq6urvfve7CxYs6JWa//Ef//GLX/xi+O3stbW1X/ziF//xH/8xvTf7e9ST55td9mc0atSol19+uaWlpby8fOrUqRdffHHmN39l3xvq3vrZoSVLljz88MOPPPLIkiVLcq85u3P3WuXuhhtueOmll87qISUlJWvXrg1vb9y4cejQoZkNR+32Dho0qN3Df/3rX994443dqxb61DmZFQcAAANex/WzJ02adMYjv/e9702ePLmkpOTWW28NI4zMvc8///y8efOKiorGjBlzzz337NmzJ72r3af6jh/yszw21WEaTuauVatWXXHFFcXFxWPHjr3vvvv2799/xoG6d2WxatWq6667bty4ccOHD583b953v/vd9Ioz2cdNpVLhqsmJRGLixIl/9Vd/deDAgd6q+cknn7z44osLCwsvvvjiJ598sl3N2d+jbj/f7FVlf0bz5s1bvnz57NmzCwoKgiBIL5idy97QFVdc0b31s9NDzJs3r+OTzf4OZv+xyeW1OuPdHo6btn379ssuu6zdxuxvU/gzGQRBeXl5RUXFb3/728zHttt7zz33tFv/6NJLL62qquqsHogP6x8BAMA50XH9o1zU1dWNHTu23bpFxIr3qH9bsmTJokWLPvWpT52Lkz/wwAN1dXXp9Y+eeuqpVatWLV269FyMBb3L/DUAAIiL2trab33rW3fddVfUhdAp71G/98///M//8R//0TdjPfzww9/61rf6ZizoIfkRAABEqbm5+Rvf+EZeXl4ikZgxY8bgwYM1I8SN92hAKS8v/93vftc3Y7300kvl5eV9Mxb0kPlrAEC/dfTo0RMnTgwbNmz48OFR18JA1L35a+e7yZMn792794y7Jk2alPkdZ/3DQHu+9FC7+WtwHimIugAAgHMl/O7q+P+1rKGhobm5uaSkJPM7sOE8NdASk4H2fIEBy/w1AKDfam1tDYIg/O6hODt58mRtbW1jY2PUhQAAnFncP04BAHRbS0tLcD7kR6WlpYlEYtCgQVEXAgBwZnH/OAUA0G3JZDIIgsLCwqgL6cKQIUOGDBkSdRUAAJ0yfw0A6J9aW1tTqVQikYh//xEAQMzJjwCA/ul8mbwGnF/Cf1sABhr5EQDQP50vi2cDuUskEolEog8GqqmpWbRoUbuNlZWVX/jCFyoqKjoe//LLL99www3XXXddIpEoKip69tlnc9977bXXHjlypNefAkDvkh8BAP1T2CMQ/8WPGFAmT54cdQnnt1Qq1TcDfeUrX/nsZz+bvnvgwIF77rln3bp1X/7yl2trazsev2TJkmXLlr300kupVGrVqlV33XVX7ns/97nPffWrXz1HTwSgt/iLHADQP+k/Iob27t0bdQl0raqqqrKy8tFHH01vqaioeOyxx7I8JC8vb9SoUeHtBQsWNDQ05L7305/+9Le//e2qqqrp06f3zhMAOAf0HwEA/ZP8iPNFOCfr5MmTixcvLioq6ji/6aGHHrr33nsrKirGjx+/ZMmSXbt2ZT7w3//934cMGbJ27dqVK1cOGzas3WN/+tOfXnXVVaWlpbNmzVqxYkXH0efPnz9//vzu1ZyeStbubpaaM48PgmDZsmWXXHLJ0KFDH3jggfTedevW3XjjjcOGDSspKVm4cOFvfvObmTNnZj58+/btCxYsKCgoyP21ymXctKVLl957771n9YIcPny423uDILj77ruXLl16ViMC9DH5EQDQP5m/xvkinJP1pS996e/+7u+ampqWL19+xx13ZB5w/fXXP/roowcOHNi8efOYMWP+23/7b5kPPHTo0GOPPXbLLbc8/fTTjzzySOZjly9fvnz58h/+8IfHjh175plnHnrooRdffLHj6N2YFJZKpRYuXLhmzZrw7po1az7wgQ9knqezmjMr/9SnPvWTn/zkiSeeOHLkyLx588Jdv/zlL++7776/+Zu/2bVrV319/RNPPLFt27Z2ywN94QtfePjhh1taWnJ/rbocN9MLL7zQcfGj7Orq6rq9NwiCj3zkI88///xZjQjQxxJ9NoUYAKAvVVVVtbW1TZ48uaioKOpaGKCmTZu2cuXK2bNnjx8//sCBA5m7Kioq9u/fn76bSCSefvrp22+/PX23s0/pyWSyoKAgvTeRSLS0tBQUFCQSicbGxpKSkszHvu997/vlL385fvz48O727dvvvvvu3/3ud73y7JYtW/Zf//Vf4ayuu+++e9GiRX/2Z3+WS83pyn/xi1/cdNNN7Q6+9NJLv/e971111VWdjZtIJKqrq8eOHZu+m+NrlX3cTKWlpbW1taWlpZ0V0HHEdhvP6m4QBA0NDeXl5adOncpSFf3DAw88UFdX9y//8i9RFwJnTf8RANAPJZPJtra24DzpPzp16tT27dt3794ddSGcK/v370+3+YQ3MsOjUDo8aufw4cNf/OIXZ82aVVpaWl5efv3117c7ID1Js6SkpN2uqqqqCRMmpCeXzZw587XXXuuF5xMEQRDcdtttv/zlL+vr6+vr63/1q1/ddtttudccOmOI89Zbb73//e/PPnQ6PGqnJ+Nm6pU/sWc/yRkTqJ4PCnDuyI8AgH4onLyWn59/XlyS5eXlBUEQBl7QzuLFi2+++eatW7c2Njbu37//+9//fu6PnTVr1ptvvpnK0NjY2FuFlZSULF68+Mknn3ziiSduueWW4uLiXql56tSpmzZt6l5JPRk30/Tp03ue5yaTydz37tq1a8aMGT0cEeCckh8BAP3Q+bX4UZgfWVWAM9q9e3ddXV1TU1NNTc3atWu/853v5P7Yb37zm0uWLHnllVdOnTrV0NDw2muvfeITn2h3TPfWzw4tWbLk4YcffuSRR5YsWdJbNX/jG9/4/Oc/v2PHjiAIGhoa3nzzzaVLl9599925PLYn42a64YYbXnrppbN6SElJydq1a8PbGzduHDp0aOZvdPa9QRD8+te/vvHGG7tXLUDfkB8BAP3Q+Zgf6T8aCCZNmtRxY9gll/ldZpl3n3rqqQceeGD48OFz5sxZvnz5l7/85XbHtHtg5o2bbrrpa1/72v/8n/9z+PDh06dPf/DBB//1X/+13ejJZLLb2eWll16an5+fn58/Z86czO1Zam73HNt9a1sQBJ/85Cf//d///b777quoqJgwYcKf//mft7S0PPjggz18rbocN9Nf/uVfPvroo+02Zj6q4xmeeOKJD33oQ4lEYtSoUYsXL/7Zz36W+e9P9r1BEHz/+9+/7777OqsHIA6snw0A9EOHDh2qr68fOXLkBRdcEHUtXWtra6uqqgqCYPr06WGWRP+QXj876kI4a0uWLFm0aNGnPvWpPhjrqaeeWrVq1dKlS/tgLCJn/WzOXz6gAAD90PnYfxRoQYLY+Od//uf/+I//6JuxHn744W9961t9MxZAtxVEXQAAQO87v/KjIAjy8vLa2to0hkNMlJeX/+53v+ubsc52rSWASOg/AgD6rfMoPwoXUtF/BADEk/4jAKAfmjp1aiqVyrI+btzk5eUlk0n5EQAQT/qPAID+6TwKjwJfwQYAxJv8CAAgemF+ZP0jACCe5EcAANGz/hEAEGfyIwCA6Jm/BgDEmfwIACB68iNiK55LicWzqgGopaUl6hKAPiI/AgCInvWPePbZZ4uKihKJxJAhQ6ZPn/7xj3886oois3nz5kQiISHqUp+9SjU1NYsWLWq3sbKy8gtf+EJFRUXH419++eUbbrjhuuuuSyQSRUVFzz77bO57r7322iNHjvT6UwB6Tn4EABA96x8NEJMnT+5s1x133LF8+fJUKnXixImqqqqVK1f2QT1nvPhvp+9jzTlz5nQ5aGcH5PKM+o0+e2u+8pWvfPazn03fPXDgwD333LNu3bovf/nLtbW1HY9fsmTJsmXLXnrppVQqtWrVqrvuuiv3vZ/73Oe++tWvnqMnAvREQdQFAABg/tpAsXfv3s52tbS03HLLLX1ZTBAE1dXVfTziudb/nlHkqqqqKisrH3300fSWioqKxx57LMtD8vLyRo0aFd5esGBBQ0ND7ns//elPf/vb366qqpo+fXrvPAGgl+g/AgD6lYaGhv3799fV1UVdyNmRHw1kkydPDhvQEhnSe3O5e/LkycWLFxcVFXWcDbRu3bob11xsAAAAIABJREFUb7zx/7F39/FRVPfix2c2u5vsJiSo4QIbICYmNAYiFEmwtHhvgcpDS03k0QeqAfPCWrWIYH2JTV8FbhWxeAvX9AaQ6g1PQRoEERTEIheCglKMXALmGU0CgRgI2V12N7v7+2Nu5zfdJJvN4+xuPu+/dubMOec7Z6JsvjnnTFRUlMFgmDBhwuHDh4cPHy4IQkJCgpdOJSUlJV5WSO3YseP73/9+eHj4mDFjdu7cqSxqN6qcnJyFCxeaTKaYmJisrKyKigrfh6utqLzfUVtnEhMTlY2kpaWlpaX5Hkyrjbfsy/v9yhfn5eXdeeedkZGRK1eulEvbeoLKARk/frxWq+3oOHvvV5abm7tw4cIODUhdXV2nSwVByMzMzM3N7VCPAHoB+SMAABBUbDabxWKx2+1qB9Ix0m9x7H/UN1VVVUmP3q0gl3r8VLR6uGzZsueee85ms+Xn58+dO1cuPXjw4KJFixYvXlxRUdHY2Lh169YLFy5Im8uUlpZ66VSSmJjY1s/kjh07/vrXvx4/ftxsNh87duydd95RppC8RyUIwpQpU958882ampqioqKBAwdOnjzZ9+FqKyrvd3Tjxo3hw4crMxeNjY1JSUmfffaZspFWx6Fdbrd7woQJx48flw6PHz9+7733Ktvxfr/SlfPmzXv33Xe3bt1aX1+fmpoqFXl5grIlS5Zs3LjR4XB0dJy99Kv0wQcftNz8yDvvGfx28/s/+clPDhw40KEeAfQCka8pAAAgmNjt9ps3b+p0OoPBoHYsHXDjxo1Lly4ZDIYhQ4aoHQu6TXx8/J49e1JSUmJiYmpqapRFJpOpurpaeUYU2/xm7lHU8nDnzp2zZ89uWTpq1KgNGzaMGzeurQi9dOr9muTk5N27d3/ve9+TDi9cuJCRkXHu3DlfovLgdDq1Wm3LUu+xtVXqpdbGjRtPnz795z//WTp88cUXo6OjlyxZ0lYXHZKXl/e3v/1NWtWVmZk5adKkRx55pNUrW71fURTff//96dOne1zsyxOsra0dNGiQfNihcW6rXyWj0Xj16lWj0dhWAO0+uw4dCoJgNpujo6OtVquXqALXypUrGxoa1q5dq3YgQIcx/wgAAAQVvV4fGRkZWMkjQRA0Gg1vmwpi1dXV8sQW6YNH8qiL5DSNh/Pnz48cObIbO5KVlpYOGzZMPhw2bFhZWZmPUdXV1S1dujQ5OdloNEZHR0+ZMqUnImxpwYIFn376qZTk+uabb957772nnnqquxqfNWvWwYMHGxsbGxsbDx06NGvWLLnIx/ttNYnjyxOUk0ceutKvUrdMOPDeSKsZqK53CqB7kT8CAABQX3h4eEJCApOP0K5WX3fVlri4uDNnzvh+vc1m8/HKhISEqqoq+bCqqsr33Y7T09NnzJhx7tw5i8VSXV391ltv+R5hRynvKCQkZPXq1cuWLRMEYfny5dnZ2Xq9vrs6MhgM6enp27Zt27p1a0ZGRlhYmFzUlfvt6BNU6q5xvuOOOyorKztXV+Z0On0vraioSEhI6GKPALod+SMAAADAr+l0ut27d9tstg8//PCxxx7zveKKFSuefPLJ0tJSQRDMZnNxcXFubm5mZqZHy4Ig1NbWrl+/fvz48T62nJ2dvXTpUimZdfXq1aVLl2ZnZ/tYt7KysqGhwWazXblypbCwcM2aNb7fUbu839F9993ncrlWr15dXl7e6vSozu2fLcnKytq4ceOmTZuysrKU57tyv+0+QS+6a5ynTp368ccfd6iKwWAoLCyUPp86dSoyMlI5w8h7qSAIH3300bRp0zoXLYAe5AYAAADQA+Li4oqKipRnhg0b1uqV3r+iFxQU6HS6fv36PfLII5cvX1Ze41GlZQtHjhyZOHHi4MGD+/fvn5qaun79erPZ7NGyKIpDhw595plnampq2gqpZWDbtm1LSkrS6XRJSUnbtm1r9XZaPTxy5MiYMWPCwsIGDRq0aNEieSmfL/22G5WXO5KcPXtWFMUTJ060+iDGjBkzduzYVot8kZqampqa6nHS+/22vKmW1dt6gl0Z53b7lZWUlIwePdrjpPcHIT0FQRCio6NNJtMnn3yirOu91O12jxo1qqysrK14At2KFSueffZZtaMAOoP9swEAAIAeIe+frXYg+P/27Nmzbdu2/Px8tQMJJFlZWZMmTZo3b14v9LV9+/YjR47k5ub2Ql+qYP9sBC6t2gEAAAAAQG9obm7Ozs5+99131Q4kwLz88svp6em9kz/auHHjzp07e6EjAB1F/ggAAABAkFO+zys+Pp5FGB0SHR197Nix3umro3stAeg15I8AAAAABDkSRgDQRbx/DQAABI8bN25YrVZ+UQQAAOhe5I8AAECQcDqdly5d+vbbb9UOBAAAINiwfg0AAAQJu90uCIL06m61Y+mM69evW63WyMhIo9GodiwAAAD/hPlHAAAgSMj5I7UD6SSr1Xrjxg2bzaZ2IAAAAJ6YfwQAAIKEw+EQBEGv16sdSCdFRkaGhYUZDAa1AwEAAPBE/ggAAASJQJ9/ZDQaWbmGHiKKYg/tK99zLQciRgNAEGP9GgAACBKBPv8I6JyioiJRFLu+7Ve3NNLLLXcv7yPZXeMMAAGK/BEAAAgGbreb/BH8X2xsbLe3edddd7U758WXSTGdmzjTcy33Pu8j2V3j3JLJZOpELQDoZeSPAABAMGhubna73aIoarUsz4f/unjxotohwO/U1taqHQIAtI/8EQAACAbS5kdMPkIgEv+h1UNBEHJychYuXGgymWJiYrKysioqKnxvvKSkxMuqq82bNycmJkZERMyaNevq1asdCruLLaelpaWlpXWoR0EQdu/erdfrRVE0GAxjx44tKCgYOXKkVCQFs27dun79+hUWFu7ZsycqKmr37t3K6l0ZSe+8jIZ0vqmpKT09Xa/X6/V6OaqEhASpiqjQXSEBQPcifwQAAIJBoG+ejb7M7XZPmDDh+PHj0uHx48fvvfde5UqoKVOmvPnmmzU1NUVFRQMHDpw8ebLvjScmJra1qCovL2/Lli2HDh2qr69//vnnX3rppQ6F3cWW3W53J1Z7zZ07Nz8/3+12m83mAwcOWCyWuro6uUFBEC5fvrx58+aMjIydO3du2rRp7ty5yupdGUnvvIyGdH7ZsmXPPfeczWbLz8+XoyotLZVK3QrdFRIAdC9eEAAAAIJBXV3d9evXb7311ttuu03tWID/Ex8fv2fPnpSUlJiYmJqaGmWRyWSqrq6WD/Py8v72t79t3rxZEITMzMxJkyY98sgjrbbpdDq1Wm3L7/De3/zVaunIkSPz8/NHjBghHZ4+ffruu+/u6G8HPddyq8LDw1977bWHHnooKiqq1WAcDodWqxVF0WKxGAwGL8PSjSPZbqkoijt37pw9e3arl/HWtj5l5cqVDQ0Na9euVTsQoMOYfwQAAIIB84/gz6qrq+WpJdIHZfJIEIRZs2YdPHiwsbGxsbHx0KFDs2bNkovq6uqWLl2anJxsNBqjo6OnTJnSXVGVlpbGx8fLh0lJSf7f8q5du37961/3798/NDR06NChycnJp06dUl4g74BmMBg86vbcSPpCTh4BQIAifwQAAIJBcLx8zeVyORwOZiL0QQaDIT09fdu2bVu3bs3IyAgLC5OL0tPTZ8yYce7cOYvFUl1d/dZbb3VXpwkJCeXl5fLhhQsX/L/ladOm2e12u91eXV199OjR+fPn33fffT7W7bmR7F42m03tEACgFeSPAABAwHO5XM3NzULgzz8qLy+vrKyU7gV9TVZW1saNGzdt2pSVlaU8X1lZ2dDQYLPZrly5UlhYuGbNmu7qcdmyZU8//XRVVZXdbv/88883bdrUmy13bv/sAQMGHD161OFwREdHx8XFJSUlmc1mH+v23Eh2kU6nk3bUrq2tXb9+/fjx49WOCABaQf4IAAAEPGnyUUhISEhIiNqxdIkUv8vlUjsQ9JRhw4a1VTRq1CjpZ/iuu+5Snt++ffvKlSv79+9/11135efn/+Y3vxEEodWXtbV8gZf30kcffXTevHkTJ0685ZZbXn755d///vfKlr3restOp7MTU+3i4uIuXbp0zz336HQ6URSl7bTlkDxGxuNDz41ku6Ut41FeIO2ordFoxo0bV1paum/fvo4OCwD0ArZqAwAAAa+xsfHy5csGg2HIkCFqx9IlFy9etNlsMTExRqNR7VjQDeT9s9UOBIC/YP9sBC7mHwEAgIAnbZ4d6JsfCf+Yf+R0OtUOBAAA4J+QPwIAAAEvaPJHGo1GIH8EAAD8D/kjAAAQ8KT8UWhoqNqBdBXzj+AnYmNjxTbExsaqHR0AQAVatQMAAADoEumd90JQzD8ifwQ/UVVVpXYIAAD/Qv4IAAAENlEUBw8ebLfbA/3lawL5IwAA4K/IHwEAgMAmimJERITaUXQPKX/kcrnUDgQAAOCfsP8RAACAv2D+EQAA8E/kjwAAAPwF+SMAAOCfyB8BAAD4C/JHAADAP5E/AgAA8BcajUYQBLfbzRZIgF8RRVEUxV7o6MqVK5MmTZIPt2/fHhISIv6DXq/fvXu38vqjR49OnTp14sSJnSj90Y9+VF9f36O3AyCYkD8CAADwFxqNRvodlSlIwSo2NlbtELqNyWRSO4Te43a7e6ejF1544fHHH5cPH3300X379rn/IT8/f+7cucrrs7Ky8vLyPv74Y7fbfeTIkfnz5/te+stf/vLFF1/s0dsBEEzIHwEAAPgRlrAFt4sXL6odQrepra1VO4RgU1ZW9sUXXzz44IPyGZPJNG3aNPkwIyOjublZWUWj0QwYMED6PH78eLPZ7Hvpww8/fOLEibKysu69CwDBivwRAACAH5HyR6xf62tOnDgxbdq0qKgog8EwYcKEw4cPDx8+XC7dsWPH97///fDw8DFjxuzcuVM+L61pWrduXb9+/QoLC/fs2RMVFSWvUfJeKtm7d++4ceOMRmNycnJBQYGySKre1NSUnp6u1+uVq58SEhKkiXKigrLu7t279Xq9KIoGg2Hs2LEFBQUjR470uOW0tLS0tLSODpRHdy17z8nJWbhwoclkiomJycrKqqioaFldEIS8vLw777wzMjJy5cqVcqn3pyAIQklJyfjx47Vabcu1YF3pV5abm7tw4ULlmcrKSuVheXn5s88+qzxTV1fXxlC1XyoIQmZmZm5urvdrAEBC/ggAAAQwi8VitVqDKdvC/KM+6ODBg4sWLVq8eHFFRUVjY+PWrVsvXLggb0yzY8eOv/71r8ePHzebzceOHXvnnXfkFJK0qOry5cubN2/OyMjYuXPnpk2b5PVN3ksFQcjPz8/Pz9+xY8e1a9feeeednJycDz/8UC6Vqi9btuy5556z2WzKlVOlpaVSqVtBeUdz587Nz893u91ms/nAgQMWi6VlIqNlLV+43e4JEyYcP35cOjx+/Pi9996rbGfKlClvvvlmTU1NUVHRwIEDJ0+e7FFdEIR58+a9++67W7dura+vT01NlYq8PwXJkiVLNm7c6HA4Wq4j63S/Sh988IFy8yMPTU1NxcXFf/zjH5UnGxoa2hys9koFQfjJT35y4MAB79cAgETstaW8AAAA3a6ystLhcAwZMsRgMKgdS/eora1tamoaMGBA//791Y4FXRUfH79nz56UlJSYmJiamhplkclkqq6ulj6PGjVqw4YN48aNa7WR5OTk3bt3f+9735MOL1y4kJGRce7cOelQFEWHw6HVakVRtFgsBoNBFP//N3zvpSNGjDh48GBMTIx0WFJSkpmZeezYMblrURR37tw5e/Zs+VD5u4PHoVJ4ePhrr7320EMPRUVF+TpYPsvLy/vb3/62efNmQRAyMzMnTZr0yCOPtHql0+nUarUeQYqi+P7770+fPt3jYu9PQapYW1s7aNAg+bCt2+9Qv0pGo/Hq1atGo7FlUV1d3YULFyZMmNAyKi8Ppd1HZjabo6OjrVarl6jQvVauXNnQ0LB27Vq1AwE6jPlHAAAggOl0OmktidqBdBvmHwWl6upqebqN9EFOHgmCcP78+ZbLu2SlpaXDhg2TD4cNG+axYY1Wq5U+tJpF9VJaVlY2ZMgQeQnY8OHDT58+7XGNnDzqkF27dv3617/u379/aGjo0KFDk5OTT5061Yl2WjVr1qyDBw82NjY2NjYeOnRo1qxZclFdXd3SpUuTk5ONRmN0dPSUKVNabaHVJI73pyCRk0ceutKvUlsJqbNnz549e7Zl8qhDjbRV2jvvlQMQBMgfAQCAABYTExMXFyflXIID+aM+KC4u7syZM22VJiQkVFVVyYdVVVV33HFHt/SbnJxcXFysXINmsVg63ZrNZpM/T5s2zW632+326urqo0ePzp8//7777uuOkAVBEAwGQ3p6+rZt27Zu3ZqRkREWFiYXpaenz5gx49y5cxaLpbq6+q233vK9We9Pwbuu9Kt0xx13eGx4JAjCyZMn6+rqJk6c6GMj3v/v4VFaUVGRkJDQkRgB9F3kjwAAAPyIXq8PCwuT54ygL1ixYsWTTz5ZWloqCILZbC4uLs7Nzc3MzJRKs7Ozly5devXqVUEQrl69unTp0uzs7G7pd9WqVVlZWSdPnrRarWaz+fTp0zNnzvS9uk6nk/aQrq2tXb9+/fjx4+WiAQMGHD161OFwREdHx8XFJSUlebz5S+js/tmSrKysjRs3btq0KSsrS3m+srKyoaHBZrNduXKlsLBwzZo1vrfp/Sl415V+laZOnfrxxx8rzxw9ejQsLEyZPPKYLmQwGAoLC6XPp06dioyMVM4w8l4qCMJHH32kfL8bAHjjBgAAANAD4uLiioqKlGeGDRvW6pVHjhyZOHHi4MGD+/fvn5qaun79erPZLJdu27YtKSlJp9MlJSVt27ZNPq/8St/Wh7ZKJQcOHEhNTdXr9QMHDlywYEFVVVWrjbc8dLvdBQUFOp1OFMWhQ4c+88wzNTU1clFqamp+fn5KSoqUCdXpdAUFBR63PGbMmLFjx/o0jq1JTU1NTU31OHnkyJExY8aEhYUNGjRo0aJF8iLBljfV6q9CXp6C99HoYr+ykpKS0aNHK89ERER4/w1OegqCIERHR5tMpk8++cT3UrfbPWrUqLKysrbiQU9YsWLFs88+q3YUQGewfzYAAADQI+T9s9UOBAEjKytr0qRJ8+bN64W+tm/ffuTIkdzc3F7oCzL2z0bgYv0aAAAAAPiFl19++T//8z97p6+NGzf++7//e+/0BSAIsLQeAAAAAPxCdHT0sWPHeqcvj72WAMA75h8BAAAAAADAG/JHAAAAAAAA8Ib8EQAACEi8AwQAAKDXsP8RAAAISN98801zc/PgwYMNBoPasQAAAAQ58kcAACDwuN1uu93udrt1Op3asQAAAAQ/1q8B6Lv+8Ic//OxnP/N+jSiK0ofp06e/8sorPR8UAJ9IyaOQkBCtNgj/GHb9+vXKysqrV6+qHQgAAMD/IX8EoI8ym82vv/7666+/Lh3KeaK2rF27du3atVartedDA9A+m80mCIJer1c7kB7hdrsdDofD4VA7EKBntfuPLwDAf5A/AtBHFRQUjB8/PjExUTpsdyPepKSksWPH7tmzp+dDA9A+KX8UGhqqdiA9IiIiwmQy3XbbbWoHAvRdoiiS3gIAJfJHAPqo9957b/bs2R2qMmfOnL1793ZL7ydOnDh48GC3NAX0TcGdP9JqteHh4cE6u6qPi42NVTuEf2IymVRs2Z/fotjR2HpuJAHAT5A/AqA+j7/vyYeHDx8eM2aMwWC4/fbbN23aJJ10uVyrVq2Ki4u79dZbFyxYYDab5Vqvv/760KFDNRpNW3WVPv/88x/84ActO7Xb7b/61a9uu+22QYMGrVmzRlnlhz/84cmTJ7t4sydOnLj33nsnTZo0ZsyYLjYF9GXBnT9CELt48aLaIfyT2tragGvZP/W1+wXQB5E/AuC/5s+fv3z58mvXrh09evTTTz+VTv7Hf/zHkSNHPv7447KyMofDkZ2dLV//ySeffPbZZy6Xq626SpcuXRo8eHDL83/4wx++/vrroqKizz///MCBA8oik8lUU1PT6dspLCz8wQ9+8OMf//j48eO/+tWvoqOjO90U0Mc1Nze7XC5RFJmhg6Bx4sSJadOmRUVFGQyGCRMmHD58ePjw4XKpvJYqLy/vzjvvjIyMXLlypVy6d+/ecePGGY3G5OTkgoICj5ZzcnIWLlxoMpliYmKysrIqKiqk8wkJCVKbooJHXe8tt8WXlktKSlo9L51ct25dv379CgsL9+zZExUVtXv37g5FlZaWlpaW5mO0Sps3b05MTIyIiJg1a1bLDex7fyQBwK8E4StLAAQNrVZbU1NTV1c3bNgweQ7Rxo0b33333bi4OEEQXnvttXHjxv3xj3+Uiv70pz/Js8dbravU1rz0LVu27N27NyYmRhCEdevWpaSkdP1Gjh079vzzz585c8Zms7lcLq1WW1dXt2jRIqn0q6++Ki4u9lJ90KBBbMEAKLlcrubmZlEUdTqd2rHAL0yePHndunVqR9F5Bw8eXLp06Zo1a7Zu3dqvX7/a2tp9+/bV19fLF7jdblEU582b53A4tm7dmpKScvjwYakoPz9/7969O3bsiImJKSkp+fWvfx0eHj5lyhS57pQpU5588klBEOrr619//fXJkyeXlZUJglBaWioIgiiKbf2D2G7LbWm3ZUEQEhMTpZvyOC+dvHz58ubNmzMyMiZPnrxp06a5c+fa7Xbfo+rcsri8vLwtW7YcOnRo8ODBX3755UsvveRxQe+PJAD4FW//WweA3uHxlUs+PH369MqVK//nf/7n1ltv/dOf/jRt2jRBEIxGo/IlaBqNxul0SrWk+QjS+VbrKsXHxx88eDAhIcGjU4PB0NDQEBYWJgjCzZs3DQaDHFtJScnUqVOlL4sdcvbs2RdffPGjjz5qbm52OBw6ne6FF14IDw+XSv/+97+fOXPGS/Xbb79dWpQHQGK32x0Oh1arZf0aBEE4deqUyWT68ssv1Q6kFfHx8Xv27ElJSYmJifGYwWoymaqrq6XPo0aN2rBhw7hx47w0JYri+++/P336dI/zI0aMOHjwoPRnD0EQSkpKMjMzjx071mojTqdTq9W2+m9uSx1qudWA2/1Fo9VrRFGU/gMXRdFisRgMBuVlXYzKi5EjR+bn548YMUI6PH369N13393WLfTmSCLIrFy5sqGhYe3atWoHAnQY848AqC8sLMxisRiNRkEQLl26JJ8fM2bM7t273W73/v37FyxYIO0sMGzYsA8++OD2229v2Y7yz5it1lUaO3bs8ePH5fyRLCYmpry8PDk5WRAEj1TR8ePHOzcffuTIkXv37v3yyy9feOGFo0eP3rx5s6mpacWKFZ1oCoAgCLW1tU1NTdHR0bfccovasUB9U6dO9f+tZ+RUUatZhvPnz48cObLdRlomjwRBKCsrGzJkiPKMwWCQP9fV1b366qv79++vrKw0Go2jR4/2PWbvLfcorVbbVo89F1VpaWl8fLx8mJSUpCwN0JEEgG7EH7QBqO/uu+9+7bXXzGZzRUWFvKpLEIQHH3zw3LlzDodDEAR5As4vf/nLrKys4uJiu93+1VdfzZs3r9U2W62rNGPGjF27drU8/9BDDz377LPV1dXV1dWLFy9WFu3atWvGjBmdvUth1KhRBw4cOHr06L/+67/m5uZeuXKl000BfRybZyPIxMXFeZ+I6kVycnJxcbFbwWKxyKXp6ekzZsw4d+6cxWKprq5+6623vLcm/cflS8sdpWy5K7o3KqWEhITy8nL58MKFC8pS/xlJAFAL+SMA6vuv//qvAwcOREdH//jHP546dap8/v7773/ggQeioqJ++9vfbtmyRTr59NNP//znP3/ggQciIyMffvjhBx98sNU2W62rNHPmzE8//fTrr7/2OL98+fL4+PiUlJQxY8bcd9998vkLFy6cPHkyIyOjizd79913f/zxx0eOHPnqq6+62BTQN7lcLik1TP4IQWPFihVPPvmktI2O2WwuLi7Ozc3NzMz0pe6qVauysrJOnjxptVrNZvPp06dnzpwpl1ZWVjY0NNhstitXrhQWFnq8V1QQBJ1OJ+1OXVtbu379+vHjx/vYcru8tNwVvkTVuf2zly1b9vTTT1dVVdnt9s8//9xj80QVRxIA/IUbAPqqP/zhD9OnT/fx4unTp7/88ss9Gg8AX1gslq+//rq8vFztQHqWzWa7fv16U1OT2oEEgClTptx1111qR9G6uLi4oqIi5Zlhw4a1euWRI0cmTpw4ePDg/v37p6amrl+/3mw2y6Xev8AfOHAgNTVVr9cPHDhwwYIFVVVVymbHjBkTFhY2aNCgRYsWycvo5AsKCgp0Op0oikOHDn3mmWdqamp8bLldXlr28luJ8rDlBx+jGjNmzNixY30PVZabmxsfH280Gh944AF5mrBUpOJIIsisWLHi2WefVTsKoDPYPxsAAASS69ev19XVhYeHy+9bDEqNjY2XL182Go3ynrtoi7T/kZ/vn612IAD8BftnI3Cxfg0AAASSmzdvCoKg1+vVDqRnSfsHNzc3qx0IAACAIJA/AgAAgUXKH4WFhakdSM8ifwQAAPwK+SMAABAwXC6X3W4X+kz+yOVyuVwutWMBPMXGxoptiI2NVTs6AECP0KodAAAAgK+kV2JrtVopvRLENBqNRqORXjbHm+bgb6qqqtQOAQDQ25h/BAAAAoaUP+oj+RSWsAEAAP9B/ggAAAQMnU7Xr1+/8PBwtQPpDTqdTiB/BAAA/EOQz/0GAADBJDw8vI8kjwTmHwEAAH/C/CMAAAB/RP4IAAD4D/JHAAAA/oj8EdBpoiiqHQIABBvyRwAAAP5Iyh85HA61AwE6TBRFMjgAEGTIHwEAAPgj5h8FpdjYWLVD+Ccmk6knmnW73T3RbE8H0EOjAQDBgfwRAACAP5Lev+Z2u51Op9qxoNtcvHhR7RD+SW1trdojJlUAAAAgAElEQVQh+BFGAwC8IH8EAADgj0RRDAkJEZiC1DecOHFi2rRpUVFRBoNhwoQJhw8fHj58uFwqLwfLy8u78847IyMjV65cKZfu3bt33LhxRqMxOTm5oKDAo+WcnJyFCxeaTKaYmJisrKyKigrpfEJCgtSmqOBR13vL7bJarY899lhERMTtt9+em5urvBdlX9JhYmKism5aWlpaWlpHexQEoaSkpK3Vc9L5pqam9PR0vV6v1+t3794tFfkyGgDQx5E/AgAA8FMsYesjDh48uGjRosWLF1dUVDQ2Nm7duvXChQv19fXyBdJqrHnz5r377rtbt26tr69PTU2VivLz8/Pz83fs2HHt2rV33nknJyfnww8/VDY+ZcqUN998s6ampqioaODAgZMnT5bOl5aWSs26FZQV2225Xb/97W8ffvjhy5cvFxQU/OUvf9mxY4cgCDdu3Bg+fHhdXZ18WWNjY1JS0meffaas2zIeHyUmJrZVUTq/bNmy5557zmaz5efnz507VypqdzQAACL/ZwQAAP7PbreLoigt6eo7ampqzGbzgAED+vfvr3Ys/mvq1KkdzWv0moiIiMLCwpSUlJiYmJqaGmWRyWSqrq6WPo8aNWrDhg3jxo3z0pQoiu+///706dM9zo8YMeLgwYMxMTHSYUlJSWZm5rFjx1ptxOl0arVa5fd/UWzz14EOtdxqwIcOHZLTVWfPnn3ooYeKiooEQdi4cePp06f//Oc/S0UvvvhidHT0kiVLfGzZx95bvS9RFHfu3Dl79uxWL/MyGkB3WblyZUNDw9q1a9UOBOgwrdoBAAAAtO/q1at9MJPC/CNf/Nu//VtiYuL69evVDqQV8fHx0gc5VdRqhuL8+fMjR45st7WWySNBEMrKyoYMGaI8YzAY5M91dXWvvvrq/v37KysrjUbj6NGjfQ/ee8u+uOeee+TP8fHx5eXl0ucFCxbk5OScO3cuOTn5m2++ee+997744osOtdwVcvIIANAhrF8DAACBQRTF0NBQtaPoVeSP+oi4uLgzZ850rm5ycnJxcbFy1ZXFYpFL09PTZ8yYce7cOYvFUl1d/dZbb3lvzWaz+diyL5RL0s6fPy/v6BQSErJ69eply5YJgrB8+fLs7Gy9Xt+hlnuHcjQAAOSPAABAADCZTPHx8WFhYWoH0quk9Xrkj4LeihUrnnzyydLSUkEQzGZzcXFxbm5uZmamL3VXrVqVlZV18uRJq9VqNptPnz49c+ZMubSysrKhocFms125cqWwsHDNmjUe1XU6nbSHdG1t7fr168ePH+9jy77Yv3//4cOHLRbLqVOnHn/88eXLl8tF9913n8vlWr16dXl5easTgjq9f3ZXeBkNAADr1wAAQGDQaPrc372YfxR8hg0b1vLknDlzBg4cuGjRouLiYqvVmpiY+Itf/OKNN96QL5BfDSYdKlfATZ8+XaPRPPXUU19++eUtt9zy05/+9PXXX5dLt2/fvmTJkgcffLB///73339/dnb2unXrlGvopD2km5ubhwwZkpGRsW/fPh9b9k4KdcWKFU888cTPf/7zAQMGLF++3CP99Nprr6WkpBQWFrbagtPp7MR/8h6vdZM+yDcrD6N0xuNQ8DoaAAC2iAMAAPBTTqfz+vXrOp2uX79+asfiv1555ZXq6mq/3f9oz549KSkpagfij/bs2bNt27b8/Hy1AwF6FftnI3Ax/wgAAMBPhYSE3HrrrWpHAXS/5ubm7Ozsd999V+1AAAC+In8EAAAAoJcol5jFx8ezGAIAAkWf20cAAAAAQFfExsaKbYiNjfVe1/3PeidgAEDXMf8IAAAAQAdUVVWpHQIAoLcx/wgAAAAAAADekD8CAAB+jRUuAAAAqiN/BAAA/JfT6SwrK/v222/JIgEAAKiI/BEAAPBfVqvV7XY7nU7lO5sABAf+uwaAAEL+CAAA+K+bN28KgmAwGNQORE1Op9NqtTqdTrUDgTqk95qpHUWfw7ADgAfyRwAAwH9ZrVZBEMLCwtQORE3V1dXffvutNBQIdO2+3r6lAF28aTKZ2r3Gn2+to7H5cr8AENC0agcAAADQOrfbbbPZhD6fP9LpdE6n059/04bvLl68qHYIvaS2tlbtEHpVX7tfAH0Q848AAICfstlsbrc7JCREr9erHYuaBg8eHBcX169fP7UDQQ86ceLEtGnToqKiDAbDhAkTDh8+PHz4cOUFJSUl48eP12q1er1+9+7dyqKcnJyFCxeaTKaYmJisrKyKigq5SFqE1dTUlJ6ertfrW9bdtGlTXFxcRETEnDlzrl+/7rFoa+/evePGjTMajcnJyQUFBT7eS0JCgtSIqOBxTUlJSavnpZPr1q3r169fYWHhnj17oqKiPGJuN6q0tLS0tDQfo1XavHlzYmJiRETErFmzrl696lHa1jj7cr+dG0kA8CvkjwAAgJ9i8Rr6iIMHDy5atGjx4sUVFRWNjY1bt269cOFCfX298polS5Zs3LjR4XDk5+fPnTtXWTRlypQ333yzpqamqKho4MCBkydPloukaWvLli177rnnbDabR9133nnn7bff/uijjxoaGn73u9+tWrVKUKzbys/Pz8/P37Fjx7Vr1955552cnJwPP/zQl9spLS2VGnEreFyTmJjY6pQ66eTly5c3b96ckZGxc+fOTZs2KWP2JapWe2xXXl7eli1bDh06VF9f//zzz7/00kseF7Q1zu3eb6dHEgD8ishcaAAA4J9qa2ubmppuu+22W2+9Ve1Y4L9eeeWV6urq9evXqx1IK+Lj4/fs2ZOSkhITE1NTU6MsMplM1dXV0udRo0Zt2LBh3LhxbbUjimJtbe2gQYPkw7a+wzudTq1WqywVRXHnzp2zZ89uWXf06NF5eXkpKSnS4cmTJ8eNGyeXjhgx4uDBgzExMdJhSUlJZmbmsWPHfLx3L0F6v0YURYfDodVqRVG0WCwGg0F5WRej8mLkyJH5+fkjRoyQDk+fPn333Xd3aJzburjnYkYgWrlyZUNDw9q1a9UOBOgw9j8CAAB+ipevIWjIqaJWswznz58fOXKk9xbk5JGHurq6V199df/+/ZWVlUajcfTo0S2vkZNHHkpLSxMSEuRDOXUiKSsrGzJkiPJMr/3HqNVq2+qx56IqLS2Nj4+XD5OSkpSlvoxzW1QcSQDoRqxfAwAA/sjhcDQ3N4uiGBoaqnYsQM+Ki4s7c+ZM5+qmp6fPmDHj3LlzFoulurr6rbfe8r1uQkJCWVmZfFhUVKQsTU5OLi4uVq7JslgsnQtSEARpL/yu696olBISEsrLy+XDCxcuKEs7Os7K++25mAGgN5E/AgAA/kiafKTX6zUavq4gyK1YseLJJ58sLS0VBMFsNhcXF+fm5mZmZvpSt7KysqGhwWazXblypbCwcM2aNb73u3z58sWLF1+6dMnpdJ49e3bLli3K0lWrVmVlZZ08edJqtZrN5tOnT8+cOdP3xnU6nbTvdW1t7fr168ePH+97XS98iapz+2cvW7bs6aefrqqqstvtn3/++aZNm5Sl7Y6zl/vt4kgCgJ9g/RoAAPBHLF5DUBo2bFjLk3PmzBk4cOCiRYuKi4utVmtiYuIvfvGLN954QyqV3+0lLXzzONy+ffuSJUsefPDB/v3733///dnZ2evWrWvrYo/D2bNnX7t27Z577qmrq5s2bdqGDRtycnLkqKZPn67RaJ566qkvv/zylltu+elPf/r666/7fqfSXt3Nzc1DhgzJyMjYt2+fXKR8PZn8ua2APT74EpXT6exE3vnRRx+12WwTJ068dOnS1KlTc3Nzc3JyfBxn7/fbxZEEAD/B/tkAAMAfXbx40WazDRo0iPfWw7uA2D9b7UB80tDQMGjQoO5aaAagVeyfjcDF/CMAAOB3XC6X3W4XBCEsLEztWIA+4erVq6+88sr8+fPVDgQA4KfYUAAAAPidmzdvut1urVar0+nUjsUv2Gy2b7/9Vn6HF9At7Hb7ihUrNBqNKIoJCQnh4eG5ublqBwUA8FPkjwAAgN+xWq0Cmx8piKJotVqlYQG6i16vz87Odrlcbrf72rVrv//970NCQnypGBsbK7YhNja2p8MGAKiC9WsAAMDvkD/yoNPppJ16HQ4Hc7KguqqqKrVDAAD0NuYfAQAA/+J2u6WXrxmNRrVj8ReiKEppI2lbKAAAgF5G/ggAAPgXq9XK5kct6fV6QRAcDofagQAAgL6I/BEAAPAvLF5rlZQ/Yv4RAABQBfsfAQAA/2I0Gl0uF/kjD6xfAwAAKiJ/BAAA/IvBYCB51BLzjwDfSfvNqx0FAAQV1q8BAAAEACl/5HQ6XS6X2rGgV4miKIqi2lF0TCDGDADwjvwRAABAANBoNFqtVmAKUoCLjY3taJVAnEejesydC8BkMnV7JAAQNMgfAQAABAa2QAoCFy9eVDsEtKm2tlbtEADAf5E/AgAACAxsgRTETpw4MW3atKioKIPBMGHChMOHDw8fPlx5QUlJyfjx47VarV6v3717t7IoJydn4cKFJpMpJiYmKyuroqJCLpLWkTU1NaWnp+v1+pZ1N23aFBcXFxERMWfOnOvXr3usO9u7d++4ceOMRmNycnJBQUFHb8pqtT722GMRERG33357bm6uMiRlL9JhYmKism5aWlpaWlpHexQEoaSkpK3Vc15GIyEhQaoiKnSidwAIYuSPAAAAAgP5o2B18ODBRYsWLV68uKKiorGxcevWrRcuXKivr1des2TJko0bNzocjvz8/Llz5yqLpkyZ8uabb9bU1BQVFQ0cOHDy5MlykbSMa9myZc8995zNZvOo+84777z99tsfffRRQ0PD7373u1WrVgmKlV/5+fn5+fk7duy4du3aO++8k5OT8+GHH3bovn77298+/PDDly9fLigo+Mtf/rJjxw5BEG7cuDF8+PC6ujr5ssbGxqSkpM8++0xZ1+12d24NWmJiYlsVvYxGaWmpVOpW6ETvABDEeDEBAABAYLBYLNXV1Xq9vhN76ASxV1555e9///vzzz+vdiCtyMjIeP/991NSUmJiYmpqapRFJpOpurpa+jxq1KgNGzaMGzeurXZEUaytrR00aJB82NZ3eKfTqdVqlaWiKO7cuXP27Nkt644ePTovLy8lJUU6PHny5Lhx4+TSESNGHDx4MCYmRjosKSnJzMw8duyYj/cuiuKhQ4fkZNbZs2cfeuihoqIiQRA2btx4+vTpP//5z1LRiy++GB0dvWTJEh9b9rH3VofIy2h4qQV0o5UrVzY0NKxdu1btQIAO06odAAAAAHwizT9yOBxut5vFNbL+/ft//vnnc+bMUTuQVly/fl36IKeKWs1QnD9/fuTIkd6bkpNHHurq6l599dX9+/dXVlYajcbRo0e3vEZOl3goLS1NSEiQD0eMGKEsLSsrGzJkiPKMwWDwHqSHe+65R/4cHx9fXl4ufV6wYEFOTs65c+eSk5O/+eab995774svvuhQy13R1mgAALwjfwQAAPyC2+2+fv26wWAIDQ1VOxY/pdVqNRqNy+VyOBxSLgmCIDzxxBNPPPGE2lG0Lj4+3pfL4uLizpw588Mf/rATXaSnp7/88suvvfaaIAg2m+3KlStDhw71sW5CQkJZWZmcupImB8mSk5O3bduWlJTUiagkn3322aRJk6TP58+fl3d0CgkJWb169bJly95///3ly5dnZ2f758+zzWbjf0cAIGP/IwAA4Bdu3rx55coVeZoGWsUr2ILSihUrnnzyydLSUkEQzGZzcXFxbm5uZmamL3UrKysbGhqkzFFhYeGaNWt873f58uWLFy++dOmS0+k8e/bsli1blKWrVq3Kyso6efKk1Wo1m82nT5+eOXNmh+5r//79hw8ftlgsp06devzxx5cvXy4X3XfffS6Xa/Xq1eXl5a1OCOr0/tldodPppB21a2tr169fP378+F4OAAD8GfOPAACAvzAajVotX0680ev1NpvN4XCoHQg6adiwYS1PzpkzZ+DAgYsWLSouLrZarYmJib/4xS/eeOMNqVR+L5i08M3jcPv27UuWLHnwwQf79+9///33Z2dnr1u3rq2LPQ5nz5597dq1e+65p66ubtq0aRs2bMjJyZGjmj59ukajeeqpp7788stbbrnlpz/96euvv+7jbUodrVix4oknnvj5z38+YMCA5cuXe6SfXnvttZSUlMLCwlZbcDqdGk2H/9Tt8Vo36YO8YND7aAiCIO2o3dzcPGTIkIyMjH379nU0AAAIYmwRBwAAEDC+++67+vr6yMjIgQMHqh0L2hcfH79nzx55g2o/19DQMGjQIJvN1jvd7dmzZ9u2bfn5+b3THeAn2D8bgYs/8QEAAAQMaZuYXvsNH33H1atXX3nllfnz5/dOd83NzdnZ2e+++27vdAcA6Dr2PwIAAAgYer1eFMVOrOsBWrLb7StWrNBoNKIoJiQkhIeH5+bm9nSnoiiKoqjT6YqKinzcXxwA4A+YfwQAABAw9Hr9HXfcodzkBeg0vV6fnZ2dnZ3d0YqxsbEXL15stWjYsGFVVVVe6rJ7BgAEKPJHAAAAgYTkEVTnPUMEAAhKTH4GAAAAAACAN8w/AgAAAHqE3W7ft2/fl19+qXYgAPzFl19+eeutt6odBdAZIiuQAQAAgJ4QFRWl1+u1Wv5kC+D/NDU1jRo16tixY2oHAnQY/5gBAACVmc3msLCwkJAQtQMButltt922Z8+elJQUtQMB4C9WrlzZ0NCgdhRAZ7D/EQAAUJPdbq+pqamsrGRONAAAgN8ifwQAANRkNpsFQQgLC+O1YgAAAH6L9WsAAEBNFotFEASj0ah2IECPuOuuu9QOAYB/efbZZ9UOAegM8kcAAEA1brfbarUK5I866ObNm1euXNFoNDExMWrHAm/Ky8vVDgEAgO5B/ggAAKjGarW63W6tVhsaGqp2LIFEo9HcvHlTFEW32826PwAA0AvIHwEAANWweK1z9Hr94MGDQ0NDSR4BAIDeQf4IAACohvxRp0VERKgdAgAA6EN4/xoAAFBHc3OzzWYTyB8BAAD4PfJHAABAHdLO2aGhoSEhIWrHAgAAAG/IHwEAAHWweA0AACBQkD8CAADqMJvNAvkjAACAQED+CAAAqMBmszmdTlEUDQaD2rEAAACgHeSPAACACqTFawaDgTfQAwAA+D/yRwAAQAXS4rXw8HC1AwEAAED7yB8BAIDe5nQ6pZevRUREqB1LAHO5XNeuXbty5YragQAAgOBH/ggAAPQ2afFaaGioVqtVO5bAduXKlWvXrjU3N6sdCAAACHLkjwAAQG9ramoSWLzWZRqNRq/XC4Jgs9nUjgUAAAQ58kcAAKBXud1uaf4R+aOuCwsLEwTh5s2bagcCAACCHPkjAADQq6xWq8vlCgkJkXIf6AryRwAAoHeQPwIAAL3K4XCIomg0GtUOJBiEhoYKrF8DAAA9j00rAQBAr4qKiurXr5/L5VI7kGAQGhoqiqLT6XQ4HDqdTu1wAABA0GL+EQAA6G0ajYY3r3ULURSlKUgsYQMAAD2K/BEAAEAAI38EAAB6AfkjAACAACZtoc0WSAAAoEeRPwIAAAhg8vwjt9utdiwAACBokT8CAAAIYKGhoRqNxu122+12tWMBAABBi/wRAABAYJOmILGEDQAA9BzyRwAAAIGNLbQBAEBPI38EAAB6g9PpdDqdakcRnNhCGwAA9DTyRwAAoDd899135eXl3333ndqBBCE5f8QW2gAAoIeQPwIAAL3B4XAIgqDX69UOJAjpdDqtVut2u1nCBgAAeohW7QAAAECfYDKZHA6HVst3jx5hMBhu3LhhtVoNBoPasQAAgCDE/CMAANBLdDqdKIpqRxGcpCVsVqtV7UAAAEBwIn8EAAAQ8KRpR6xfAwAAPYT8EQAAQMALDQ3VaDTCP/aZAgAA6F4i7+kAAAAIAs3NzWwvBQAAegj5IwAAAAAAAHjD+jUAAAAAAAB4Q/4IAAAAAAAA3pA/AgAAPchut6sdAgAAALqK/BEAAOgpzc3NVVVVFRUVLpdL7VgAAADQeeSPAABAT2lqahIEQafTSa+WBwAAQIDiyxwAAOgpUv4oIiJC7UAAAADQJeSPAABAj2hubrZarQL5IzW43W61QwAAAEFFq3YAAAAgOEmTj8LCwrRavm/0nhs3btTX14eHhw8YMEDtWAAAQPBg/hEAAOgRLF5Ti8PhuHnzptpRAACAoMLfAwEAQPdj8ZpajEajyWQyGAxqBwIAAIJKMOeP7Ha72WxWOwoAfqd///6iKKodBRDkpH+Cw8LCdDqd2rH0LSEhIeHh4WpHAQAAgk0w54+2b9/+2GOPqR0FAL9z7dq1qKgotaMAghyL1wAAAIJJMOePBEGYOXPmrl271I4CgB9hH1+gFzidTovFIpA/AgAACBbsnw0AALqZtHgtNDSUxWsAAADBgfwRAADoZo2NjYIg9OvXT+1AAAAA0D3IHwEAgO7kcDikN6+RPwIAAAga7AOCQOXl/Vlut7s3IwEAKN24cUMQBKPRyHZjAAAAQYMvdghUyiSRKIrdlTPqxqYAoG+S8kdMPgIAAAgmrF8DAADdxmaz2e12URR585rqbty48e23316/fl3tQAAAQDAgf4QgJ/5DW+eVRdLnVq8HAPhCmnwUHh6u0fAdQ2XNzc1Wq1V6Fx4AAEAXsX4NwUy5GK2tz8pDt9vN+jUA6AopfxQZGal2IBCMRqMgCFarVfrXTe1wAABAYONvgwhaHpkgvj0DQE+zWCzNzc0hISFS5gLqCg0NDQkJcblcN2/eVDsWAAAQ8MgfoY9S5pKYcAQA3cLlcul0uoiICPL1fkJK5FksFrUDAQAAAY/1awhmbf0CIyWMpFKSRwDQXSIiIiIiIlwul9qB4P8YjcYbN25YLJbbbrtN7VgAAEBgI3+EYOY9N0QWCQB6Ajtn+w9p/tHNmzedTmdISIja4QAAgADGNzz0IfJ0JBavAQD6Aq1Wq9frBUGwWq1qxwIAAAIb+SMELY8Ns3mxGgCgD2ILJAAA0C3IHyGYSSkkSct3sXkvUiNeAAC6mcFgEJh/BAAAuoz9jxAMvEwsaquoE1UAAAg40vwju93ucDh0Op3a4QAAgEDF/CMAAICgpdFopClIZrNZ7VgAAEAAI38EAAAQzMLDwwXyRwAAoGvIHwEAgC757rvvbDab2lGgTVL+yGq1ulwutWMBAACBivwRAADoPKvVWl9f/80335Cb8Ft6vV6n07ndbt7CBgAAOo38EQAA6DyNRhMeHh4ZGanR8KXCf0lTkMgfAQCATgvm968dO3bsr3/9Ky9iB+ChsbExKipK7SiAIBEaGmoymdSOAu0IDw+/du0aWyABAIBOC+b80Y9+9KOGhoZdu3apHQgAP6LVaiMjI9WOAgB6lcFg0Gg0zc3NNpstNDRU7XAAAEDgYao5AABAkBNF0WAwCLyFDQAAdBb5IwAAgOAnbYFE/ggAAHROMK9fAwAAgCQiIuLmzZtSFgkAAKCjyB/9E1EU3W533+kXAAD0ESEhIQMHDlQ7CgAAEKhYv9ZhoijyTjcAAAAAANB39Ln8UWxsrJdSXyYB9cREoc61yfuSAQAAAABAL+hz+aOLFy+qHUK3qa2tVTsEAEBf5HA4vvnmmxs3bqgdCAAAAHpJn8sftaWkpMTLwrTNmzcnJiZGRETMmjXr6tWrLS9IS0tLS0vr3n6l801NTenp6Xq9Xq/X7969WypKSEiQqogKnegdAIBOuH79+s2bNxsbG9UOBAAAAL2E/NH/SUxMbGsRWV5e3pYtWw4dOlRfX//888+/9NJLLa9xu92dW4PmpV/p/LJly5577jmbzZafnz937lypqLS0VCp1K3SidwAAOsrtdkuZo6ioKLVjAQAAQC/pK+9fi4mJqampkT5LU3VMJlN1dbUvdVevXp2fn3/77bcLgpCWlqbVanNzcz2uOXXqVHeGqzBx4sQJEyYIgpCRkeFwOHqoFwAAfGQ2m51OZ0hICG+CBwAA6Dv6Sv5IThWJotjRqTqlpaXx8fHyYVJSUndG1p7Zs2f3ZncAAHgnTT6KjIxk6TQAAEDfwfq19iUkJJSXl8uHFy5cUDEYL2w2m9ohAACCXHNzs9lsFgQhMjJS7VjQSW63+9q1a7W1tSx+BwAAviN/1L5ly5Y9/fTTVVVVdrv9888/37RpU8trOr1/dlfodDppR+3a2tr169ePHz++lwMAAPQ10uSjsLAwvV6vdizoJFEUGxoampqaLBaL2rEAAICA0VfWr8mGDRvW8qRyBr78Wf6j3KOPPmqz2SZOnHjp0qWpU6fm5ubm5OR4rINzOp0aTYeTcd77ld+wJp3xOBQEQdpRu7m5eciQIRkZGfv27etoAAAAdIi8eE3tQNAlt9xyiyAIYWFhagcCAAACRoc3Awogb7/99nvvvbdr1y61AwHgR7RabX19Pe+NAjrBYrFUV1drNJq4uLhO/NUEAAAAgYsvfwAAwCcNDQ2CIERFRZE8AgAA6Gv4/gcAANpnt9ul7XL69++vdiwAAADobeSPAABA+65fvy4IQnh4uFbb5zZPBAAAAPkjAADQDpfLJe2czeQjAACAvon8EQAAaMeNGzdcLpderzcajWrHAgAAABWQPwIAAO24du2aIAi8uBAAAKDPIn8EAAC8sVgsdrtdo9FERkaqHQsAAADUwRaYAAKJw+HQ6XRqRwH0LdLO2f369dNo+LNTsLHb7Q0NDYIgDBw4UO1YAACAX+OLYAArKioSRVEURbUD6QD/jNk/o/JDvTZKV65cmTRpksfJL774YsmSJSaTqeX1R48enTp16sSJE0VR1Ov1u3fv9lLqdruVpT/60Y/q6+u7/RaAoOFwOJqamgR2zg5ejY2NN27ccDqdagcCAAD8Wp/LH8XGxqodQre56667PH4T7h2t/gLvI7Vi9s4/o/JDvTZKL7zwwuOPPy4f1tTULFiw4MSJE7/5zW+uXr3a8vqsrKy8vDso5ZsAACAASURBVLyPP/7Y7XYfOXJk/vz5XkpdLpey9Je//OWLL77YQzcCBAFp8pHRaNTr9WrHgu6n1+tDQ0PdbreUJQQAAGhLn1u/dvHiRbVDCHi1tbVqh4BgVlZW9sUXX7z55pvyGZPJtHnzZi9VNBrNgAEDpM/jx483m81eSj3qPvzww6tXry4rK7vjjju6IXogGGk0GnbODmL9+vWz2WxNTU08ZQAA4EWfm3/Ulk2bNsXFxUVERMyZM+f69ese63T27t07btw4o9GYnJxcUFCgrChd2dTUlJ6ertfrW66d8VJXUCwIysvLu/POOyMjI1euXCmX5uTkLFy40GQyxcTEZGVlVVRUdNf9njhxYtq0aVFRUQaDYcKECYcPHx4+fHi7/SYkJEjRigoeLXcl5h07dnz/+98PDw8fM2bMzp07PUq9P6Ou3K93Xu5o9+7der1eFEWDwTB27NiCgoKRI0f6WCpJS0tLS0vzMRKZx+C3fBben4L3n7p2x6qkpGT8+PFarbblT3tX+pXl5uYuXLiwQwNSV1fX6VJBEDIzM3NzczvUI9B3REdHx8XFhYeHqx0IekpERIQgCBaLpbm5We1YAACAH3MHr7feemvmzJkeJ1u95Z07d/7oRz8qLS212+1nz55dunSp8rIdO3Y89NBD5eXlNpvt7NmzkyZN+uCDDzzafOKJJ44ePepyuQoKCnQ6ne91pepz58594IEHvvjiC7vdfuDAAbmotLRU+nD16tXly5fHx8e3DL4TD/HDDz9MSUn54IMP6uvr7XZ7VVXVG2+8ceutt/rYr/ceOx3z9u3bZ82aZTab3W632WyeNWtWfn6+XOr9GXXxfr3fl5c70ul0BQUFbrfb6XTW1dXl5eUNGDDAx1LJ2LFjx44d6+ONKE2YMOH48ePS5+PHj997770+xixp66eu3bESBOFnP/vZ2bNnW/60d6VfpZSUlP/93/9t68ZbfUyiKHq5pmXptWvXlGe++uqrkSNHttUjAAS9b7755uuvv66vr1c7EAAA4L/6Sv6o5ZY9JpNJvnLUqFFFRUXy4Weffab8/TM5Ofnbb7+VD7/++usf/vCHyo4EQdi5c6fy0Pe60vXvv/9+u7cj/VWw5flO5I/uuuuuTz/91MeLW/bre48divnOO+88f/68fHj+/Pk777xTPvT+jLzz8X59adDjjoxGY05OjkcywsfSLvrv//7vzMxM6fNjjz2Wl5fX1pWtPoW2furaHStBEGpra5WH3dKvksFgkNKIbQXQ7sl2Dz0eSlNTU1hYmPeoACCIXb9+/euvv66srFQ7EAAA4L9Ed/BuG/z222+/9957u3btUp6UZiJ4XBkREXHlyhWDwSAdms3miIgI+bKwsDCbzaa83mAwWCyWttpUHrZbt62QBEGoq6t79dVX9+/fX1lZaTQaR48effjw4ZZXtlXdi9DQ0O+++66txQjt9uulx67ErNfrr1+/Lj8Fq9Xav39/efS8P6Ou3K/3qLzf0YEDB+6//36Hw6HX6//lX/6lX79+b7/9dmpqqi+lXWS1WhMTE8+dOycIQnJycmlpaVhYmC8xe7lZwYex8vLT3pV+lQwGQ319vdFo9CWAtqJyuVzK9X0epQ0NDco3SZnN5gEDBnj8hwkAfYfL5aqoqHC5XEOHDpX/NQEAAFBi/yNBEISEhISysjL5sKioSFmanJxcXFyszLr5/ntmV+qmp6fPmDHj3LlzFoulurr6rbfe8rFiu+Li4s6cOdNd/SoTZF2JOSEhoaqqSj6sqqpS7mfs/Rl55/1+vfN+R9OmTbPb7Xa7vbq6+ujRo/Pnz7/vvvt8LO0ig8GQnp6+bdu2rVu3ZmRkKL/ud+Up9NxY+e6OO+6orKzsXF2Z9xdRe5RWVFQkJCR0sUcACFwajUb6y8GNGzfUjgUAAPgp8keCIAjLly9fvHjxpUuXnE7n2bNnt2zZoixdtWpVVlbWyZMnrVar2Ww+ffr0zJkzfWy5K3UrKysbGhpsNtuVK1cKCwvXrFnTsbtq24oVK5588snS0lJBEMxmc3FxcW5ubmZmpo/96nQ6adfk2tra9evXK19o1ZWYs7Ozly5dKr2d/erVq0uXLs3OzpZLvT+jrtyvd97vaMCAAUePHnU4HNL+sklJSco3f3kvlXRu/2xJVlbWxo0bN23alJWV5XvM3vXcWPlu6tSpH3/8cYeqGAyGwsJC6fOpU6ciIyOVE448SgVB8JjB9NFHH02bNq1z0QJAcIiMjBQE4caNG0E8Mx0AAHRJD6yJ8xet7p89bNiwVi/esGFDbGyswWB44IEHpBSGsvTAgQOpqal6vX7gwIELFiyoqqqSizxGsuXAeqnrbvEVTVl05MiRMWPGhIWFDRo0aNGiRdXV1a121LmneeTIkYkTJw4ePLh///6pqanr16+Xd5zx3q/b7ZZ2TRZFcejQoc8880xNTU13xbxt27akpCSdTpeUlLRt2zaPmL0/o07fr/eovN9Rampqfn5+SkqKVqsVBEHeMNuXUsmYMWM6t3+23EVqamrLm/X+BL3/2PgyVq0edrFfWUlJyejRoz1Oen9M0s+kIAjR0dEmk+mTTz5R1vUo1Wg0HvsfjRo1qqysrK14AKCPKC8v//rrr6UUEgAAgIc+t/+RLxoaGgYNGuSxbxH8Cs8ouGVlZU2aNGnevHk90bhWq62v/3/s3XtwE+e9//FndbMkX2QbX2XAJTGUmCRQyuUMUzpngIZAJ6emhEDbpK1LPbSZXnJIaDuhhzMlyeSX0DOdCS0dczswxICBA0lIQkNCymHATEnDpEwGh9jENsSyLVm+6mJJlvb3x/aoqi+yfF1ber/+8u6zu89nHyXY/nqfZ50Wi0XZPHbs2MWLF8vLy8ejLwCYQpxOZ1tbW0pKSn5+vtpZAADApMP8tb5aW1tfeOGFJ554Qu0gGBSfUdx78cUXf//7309MX/v27XvhhRcmpi9gqmhsbFQe01M7CCZUamqqEMLtdkdfQg4AACQm6kdCCOH3+3fu3KnRaCRJKioqSk5O5mGEyYbPKKFkZWVdvnx5Yvp6//33s7KyJqYvYEpwu90ej8fpdFI/SjQGgyEpKUmW5a6uLrWzAACASYf5a3GosLDwzp07AzbNnDkz8h1n8SHR7hej1Gf+GoA+QqFQV1eXLMsZGRlqZ8FE6+zstNvtBoOhsLBQ7SwAAGBy0akdAGMv0SomiXa/ADCuNBpNenq62imgjtTU1NbWVr/f7/V6TSaT2nEAAMAkwvw1AAAACCGERqNJSUkRQnR2dqqdBQAATC7UjwAAAPB3yvRel8sVCoXUzgIAACYR6kcAAAD4O6PRyCraAACgP+pHAAAA+IfU1FQhhN/vVzsIAACYRFg/G1NPIBDQ6/VqpwAAID5ZLJaUlBS+1QIAgEg8f4ThkSRJkqQJ6MjhcKxcubLPzg8//HDr1q1Wq7X/8ZcuXXr44YdXrFghSZLBYDhz5kzsrV/5ylecTueY3wIAAFORRqOheAQAAPpIuPpRYWGh2hGmNlmWJ6ajX/3qVz/84Q/Dmzab7Qc/+MHVq1d/+ctftra29j++rKzsyJEj77//vizLFy9efOKJJ2Jv/fGPf/zss8+O040AwOTn9XqDwaDaKQAAADB5Jdz8tTt37qgdAUO7ffv2hx9+eODAgfAeq9V68ODBKKdoNJrs7Gzl62XLlrnd7thbv/Od77z00ku3b9++9957x+YGAGDqkGW5ubk5GAwWFBSYTCa14wAAAGAySrjnjwakzMlyuVwlJSUGg6H//KY9e/Zs3rzZarUWFBSUlZXV1dVFnvjKK6+kpqZWVVW9/vrrFoulz7lvvPHG0qVLzWZzcXHx6dOn+/e+ZMmSJUuWjCxzeCpZn80omSOPF0IcOXLkvvvuS0tLe+6558KtV69eXbNmjcViMZlMy5cvv3Dhwpw5cyJPr6mpWbZsmU6ni32sYuk3rLy8fPPmzcMaELvdPuJWIURpaWl5efmwegSA+NDZ2dnb26vT6YxGo9pZAAAAMElRPxLi/+Zkbdu27emnn/b5fJWVlRs3bow8YPXq1QcOHLDZbDdu3MjNzV21alXkiS0tLQcPHly3bt2JEyf2798feW5lZWVlZeXx48c7OjpOnjy5Z8+ed955p3/vI5gUJsvy8uXLr1y5omxeuXLlq1/9auR1BsscmXzTpk2vvfZaRUWF0+lcvHix0nT+/PktW7Y89dRTdXV1XV1dFRUVt27d6rM80NatW/ft2xcIBGIfqyH7jfSnP/2p/+JH0bW3t4+4VQjxta997dy5c8PqEQDigCzLyr+Q6enpE7O8HQAAAKYiacKWs5l4hw8fPnv27KlTp4QQBQUFNpststVqtTY2NoY3JUk6ceLEhg0bwpuDjUwwGNTpdOFWSZICgYBOp5MkyePxmEymyHPnzZt3/vz5goICZbOmpqa0tPTy5ctjcoNHjhz585//rMzqKi0tXbly5eOPPx5L5nDyt956a+3atX0Onj9//t69e5cuXTpYv5IkNTU15eXlhTdjHKvo/UYym82tra1ms3mwAP177LNzWJtCCLfbnZWV5fV6o6RCfNDpdE6n02KxqB0EmBS6u7ubm5u1Wu0XvvAFjYa/KgEAAGBgifKTYmNjY/gxH+WLyOKRIlw86sNutz/zzDPFxcVmszkrK2v16tV9DtDp/r6MVP9lI27fvj19+vTw5LI5c+Zcv359DO5HCCHEo48+ev78+a6urq6urnfffffRRx+NPbNiwCLOJ598cv/990fvOlw86mM0/UYak7Jm9IsMWIEafacAMLW0tbUJISwWC8UjAAAARMEPi0MrKSl55JFHbt686fF4GhsbDx06FPu5xcXF1dXVcgSPxzNWwUwmU0lJydGjRysqKtatWxe5bsVoMs+aNeujjz4aWaTR9Bvp3nvvra+vH9m5YdHfJdSnta6urqioaJQ9AsDU0t3d7ff7NRpNRkaG2lkweblcru7ubrVTAAAAlVE/Glp9fX17e7vP53M4HFVVVbt27Yr93Oeff76srOzatWter9ftdl+/fn39+vV9jhnZ+tmKsrKyffv27d+/v6ysbKwy79y588knn6ytrRVCuN3u6urq8vLy0tLSWM4dTb+RHn744ffff39Yp5hMpqqqKuXrDz74IC0tLfIJo+itQoj33ntvzZo1I0sLAFOU8vBReno6Dx9hMC6Xq6mpqbW1NY5XPAAAALFIuJ8XZ86c2X+nMnEp8l1mkZvHjh177rnn0tPTH3zwwcrKyl/+8pd9julzYuQXa9eu3b59+09+8pP09PR77733D3/4w+9+97s+vQeDwRH/TDZ//nytVqvVah988MHI/VEy97nHPm9tE0I89thjr7zyypYtW6xW6/Tp07/3ve8FAoE//OEPoxyrIfuN9KMf/ejAgQN9dkae1f8KFRUV//qv/ypJUnZ2dklJydmzZ/V6fYytQohDhw5t2bJlsDwAEH9cLhcPH2FIycnJer0+JSWF+hEAAAkuUdbPxpRTVla2cuXKTZs2TUBfx44du3jxYnl5+QT0BdWxfjagaGho8Pv9mZmZ06ZNUzsLAAAAJruEe/4IU8WLL774+9//fmL62rdv3wsvvDAxfQHAZBB++Cg9PV3tLAAAAJgCdGoHAAaWlZV1+fLlielruGstAcBUF175SKvVqp0FAAAAUwDPHwEAkFjcbrfP5+PhIwAAAMSO+hEAAIlFefgoLS2Nh48AAAAQI+pHAAAkELfb3dPTI0kSr10DAABA7KgfAQCQQJxOpxDCYrHodKyBCAAAgFhRPwIAIFG4XC5l5aPMzEy1s2CqkmVZlmW1UwAAgIlG/QgAgEQRfviIlY8wMp2dnfX19d3d3WoHAQAAE4360RQgSZLaEQYwOVMloEAgoHYEAFNDd3e33+/XaDSsfIQRC4VCvb297e3tagcBAAATjfrRP5w5c8ZgMEiSlJqaeu+9937jG99QO5Fqbty4IUkSFaIhTdgoORyOlStX9tn54Ycfbt261Wq19j/+0qVLDz/88IoVKyRJMhgMZ86cib31K1/5ivKEAoA4o9Fo9Ho9Dx9hNCwWi0aj8fv9brdb7SwAAGBCSXE8g/3w4cNnz549depU5M7CwsKGhoYBjzcYDJWVlevWrZuQdH9ntVptNttE9hg7SRrJfx6T+Y7Gw8hGabg2b968atWqb33rW8qmzWb79a9/vXDhwg0bNuTl5fUP8MUvfvHy5cvZ2dlCiKqqqoceesjlcsXYWlFRcenSpfLy8vG+KbXodDqn02mxWNQOAqhAWblGo+GvRxg5p9PZ1tZmNBpnzJihdhYAADBxEq5+FOW3/YkpBEyGTmM0smyT+Y7GwwTc7+3bt9evX//RRx/FHuC+++6rrq4e7JjorUKIBx988MyZM/fee+8YpJ98qB8BwGgEg8G6ujpZlqdPn24ymdSOAwAAJgh/gRRCiMLCQmUWkhQh3BrLpsvlKikpMRgM/WcDXb16dc2aNRaLxWQyLV++/MKFC3PmzBFCFBUVRelUUVNTE2WG1PHjx7/0pS8lJycvXLjwxIkTkU1DptqzZ8/mzZutVmtBQUFZWVldXV3swzVYquh3NNie2bNnR15kyZIlS5YsiT3MgBfv31f0+w0ffOTIkfvuuy8tLe25554Ltw72CUYOyLJly3Q63XDHOXq/YeXl5Zs3bx7WgNjt9hG3CiFKS0vj+PkjAMBoaLXa1NRUIURHR4faWQAAwMShfiSEEA0NDcrzF3KEcGufRzMG3Ny2bdvTTz/t8/kqKys3btwYbj1//vyWLVueeuqpurq6rq6uioqKW7duKYvL1NbWRulUMXv27MGebTl+/Pj//M//XLlyxe12X758+eTJk5ElpOiphBCrV68+cOCAzWa7ceNGbm7uqlWrYh+uwVJFv6Pu7u45c+ZEVi66urrmzp37l7/8JfIiI3srsCzLy5cvv3LlirJ55cqVr371q5HXiX6/ypGbNm167bXXKioqnE7n4sWLlaYon2DY1q1b9+3bFwgEhjvOUfqN9Kc//an/4kfRRV/ZdMh1T7/2ta+dO3duWD0CABKHsgS7y+Xy+/1qZwEAABMknqcaRc5fKygo6LMoj9VqbWxsjNwT+9S2/psnTpzYsGFD/9b58+fv3bt36dKlg4WMZfbTgMcUFxefOXPmi1/8orJ569atdevW3bx5M5ZUfQSDQZ1O1781erbBWqOctW/fvuvXr//xj39UNp999tmsrKytW7cO1sWwHDly5M9//vPBgweFEKWlpStXrnz88ccHPHLA+5Uk6a233lq7dm2fg2P5BJuamvLy8sKbwxrnwfqNZDabW1tbzWbzYAGG/OyGtSmEcLvdWVlZXq83Sqqpi/lrADB6zc3N3d3dqamp4e+AAAAgviVK/ShsZOsfjfi38aSkpLa2tuTk5MFCjrh+ZDAYOjs7w+sOeL3e9PR0n88XSyq73f7yyy+//fbb9fX1ZrN5wYIFFy5cmID6UTAYXLRoUUVFRXFx8d27d9euXfvhhx8aDIZB73w4vF7v7NmzlQpacXFxbW2t0WhUmmK538FiD/cTHO44x/IfgMlkcjqdo6wfhUKhyPl9UVqFEG63Ozs72+PxRA82RVE/AoDR8/v9ygtJCgsLx+pbOQAAmMyYvzZsra2tsR88a9aswZY9HlBkASi6oqKiyBfJNTQ0xL7acUlJySOPPHLz5k2Px9PY2Hjo0KHYEw5X5B1ptdqXXnpp27ZtQojt27fv2LFjDH/iNJlMJSUlR48eraioWLduXbh4JEZ3v8P9BCON1Tjfe++99fX1Izs3LBgMxt5aV1dXVFQ0yh4BAHHMYDCkpKQIIdra2tTOAgAAJgL1o5jo9fozZ874fL533nnn+9//fuwn7ty588knn6ytrRVCuN3u6urq8vLy0tLSPlcWQjQ1Ne3evXvZsmUxXnnHjh3PPPOMUsxqbW195plnduzYEeO59fX17e3tPp/P4XBUVVXt2rUr9jsaUvQ7euihh0Kh0EsvvfTZZ5+F59ZFGtn62YqysrJ9+/bt37+/rKwscv9o7nfITzCKsRrnhx9++P333x/WKSaTqaqqSvn6gw8+SEtLi3zgKHqrEOK9995bs2bNyNICmDyCwWAgEFA7BeJWZmamEKK7u5tVkAAASAhy/Dp06ND69ev77Jw5c+aAB0cfltOnT+v1+tTU1Mcff7ylpSXymD6n9L/CxYsXV6xYkZ+fn56evnjx4t27d7vd7j5XliRpxowZP/vZz2w222CR+gc7evTo3Llz9Xr93Llzjx49OuDtDLh58eLFhQsXGo3GvLy8LVu2hNeBiqXfIVNFuSPFxx9/LEnS1atXB/wgFi5cuGjRogGbYrF48eLFixf32Rn9fvvfVP/TB/sERzPOQ/YbVlNTs2DBgj47o38QyqcghMjKyrJarf/7v/8beW70VlmW58+ff/v27cHyTHVarbajo0PtFMBEsNvtNTU17e3tagdB3GpsbPz000+bm5vVDgIAAMZdwq1/BNW9/vrrR48eraysVDvIVFJWVrZy5cpNmzZNQF/Hjh27ePFieXn5BPSlCtY/QuKw2Wxut7ugoGCwBdSAUerp6bl7964kSYWFhcpfJgAAQLzSqR0AiaW3t3fHjh2vvfaa2kGmmBdffLGkpGRi6kf79u07ceLEBHQEYLxZrdaenp7I9eCAsWU0Gk0mk9fr7ejoyM7OVjsOAAAYR9SPMEEiX+91zz33xPGDb+MhKyvr8uXLE9PXcNdaAjCZUTzCeMvMzGxsbOzs7MzIyNDp+MESAIC4xfrZmCB9Zk6qHQcAAIwBs9lsNptlWXY6nWpnAQAA44j6EQAAAEZu2rRpQoiuri5exAYAQByjfgQAAICRMxqNycnJQoi2tja1swAAgPFC/QgAAACjkpmZKYTweDyhUEjtLAAAYFywzCEAAABGxWg05uXlJScnazT8bRIAgPjE93gAAOJEb2+v2hGQuFJTUykeAQAQx/g2P0Ei314/Va48FTEaABJWb29vfX29zWZjAhEAAADGHPWjMXDjxg1JkkZfuRiTi0zwlcdW9JEcq3EGgLjkcDhkWQ6FQjwDAgAAgDGXcD9iFhYWjvk1H3zwQVmWox8z5AExHjORV5540UdyrMa5P6vVOoKzAGDy8Hg8LpdLkqScnBy1swAAACAOJVz96M6dO2pHwKTT1NSkdgQAGDlZlh0OhxAiLS3NYDCoHQcAAABxKOHqRwOS/s+Am0KIPXv2bN682Wq1FhQUlJWV1dXVxX7xmpqaKLOuDh48OHv27JSUlEcffbS1tXVYsUd55SVLlixZsmRYPQohzpw5YzAYJEkymUyLFi06ffr0/fffrzQpYV555ZXU1NSqqqrXX3/dYrGcOXMm8vTRjGR0UUZD2e9yuUpKSgwGg8FgCKcqKipSTpEijFUkAJgYXV1dfr9fq9VOmzZN7SwAAACIT9SPhBBCluXly5dfuXJF2bxy5cpXv/rVyJlQq1evPnDggM1mu3HjRm5u7qpVq2K/+OzZswebVHXkyJFXX3313XffdTqdv/jFL379618PK/YoryzL8ghme23cuLGyslKWZbfbfe7cOY/HY7fbwxcUQrS0tBw8eHDdunUnTpzYv3//xo0bI08fzUhGF2U0lP3btm17+umnfT5fZWVlOFVtba3SKkcYq0gAMAGCwaDT6RRCZGZmarVateMAAAAgPklx/Nvy4cOHz549e+rUKSFEQUGBzWaLbLVarY2NjeHNI0eO/PnPfz548KAQorS0dOXKlY8//viAlw0Ggzqdrv+4SVK0wRyw9f7776+srJw3b56yef369S9/+cvD/UTG78oDSk5O/u1vf/vtb3/bYrEMGCYQCOh0OkmSPB6PyWSKMixjOJJDtkqSdOLEiQ0bNgx4WPRrIs7odDqn0zngf8DAVORwODo6OgwGw8yZM3mCEpOELMvt7e3d3d0zZsxgQXcAAOJDonxHb2xsDD9aonwRWTwSQjz66KPnz5/v6urq6up69913H3300XCT3W5/5plniouLzWZzVlbW6tWrxypVbW3tPffcE96cO3fu5L/yqVOnfv7zn6enpyclJc2YMaO4uPiDDz6IPECn0ylfmEymPueO30jGIlw8AoC44ff7Ozs7hRDZ2dkUjzCpKNMqu7q61A4CAADGRqLUj4ZkMplKSkqOHj1aUVGxbt06o9EYbiopKXnkkUdu3rzp8XgaGxsPHTo0Vp0WFRV99tln4c1bt25N/iuvWbPG7/f7/f7GxsZLly498cQTDz30UIznjt9Iji2fz6d2BACISWtrqyzLZrPZbDarnQX4B0mSsrOzc3Nz09PT1c4CAADGBvWjfygrK9u3b9/+/fvLysoi99fX17e3t/t8PofDUVVVtWvXrrHqcdu2bT/96U8bGhr8fv9f//rX/fv3T+SVR7Z+dnZ29qVLlwKBQFZW1qxZs+bOnet2u2M8d/xGcpT0er2yonZTU9Pu3buXLVumdiIAGJrb7Xa73cov6mpnAfpKTk5OS0tTOwUAABgzCVc/mjlz5mBN8+fP12q1Wq32wQcfjNx/7Nix5557Lj09/cEHH6ysrPzlL38phBjwZW39X+AVvfV73/vepk2bVqxYkZGR8eKLL/7mN7+JvHJ0o79yMBgcwaI/s2bNam5u/pd/+Re9Xi9JkrKcdjhSn5Hp88X4jeSQrf3zRB6grKit0WiWLl1aW1v75ptvDndYAGCChUIh5fUFGRkZBoNB7TgAAACIc/G8bHDk+tkAoGD9bMQHp9PZ1tam1+sLCwtZ+QgAAADjLeGePwIAYKrz+/3t7e1CiKysLIpHAAAAmADUjwAAmGIcDocsy8nJySkpKWpnAQAAQEKgfjRJKfMRBlRYWKh2OgCAalwul8fjYdlsAAAATCSd2gEwsIaGBrUjAAAmnVAo5HA4hBAZGRl6vV7tOAAAAEgU1I8AAJgyOjo6Mt0h3AAAIABJREFUent7dTpdRkaG2lmAYejt7W1tbRVC5OXlqZ0FAACMBPPXAACYGkKhUHjZbI2G7+CYSoLBoMvl6u7u9ng8amcBAAAjwU+fAABMDRqNZsaMGZmZmampqWpnAYYnKSnJYrGI/1v9Xe04AABg2KgfAQAwZRgMhmnTpqmdAhiJadOmabVav9/f0dGhdhYAADBs1I8AAAAw7jQaTVZWlhCira2tt7dX7TgAAGB4qB9hapAkSZKkCejI4XCsXLkyvHns2DGtViv9H4PBcObMmcjjL1269PDDD69YsWIErV/5ylecTue43g4AAJNHWlqa0WgMhULKWtoAAGAKSbj6UWFhodoRxozValU7wsSZsLUSfvWrX/3whz8Mb37ve99788035f9TWVm5cePGyOPLysqOHDny/vvvy7J88eLFJ554IvbWH//4x88+++y43g4AAJNKdna2EKK7u9vr9aqdBQAADEPC1Y/u3LmjdoQx09TUpHaEeHP79u0PP/zwW9/6VniP1Wpds2ZNeHPdunV9HrnXaDTKj8JCiGXLlrnd7thbv/Od71y9evX27dtjexcAAExaRqMxLS1NCGG321lIGwCAKSTh6keDuXr16po1aywWi8lkWr58+YULF+bMmRNuPX78+Je+9KXk5OSFCxeeOHEivF+Z0/TKK6+kpqZWVVW9/vrrFoslPEcpeqvijTfeWLp0qdlsLi4uPn36dGSTcrrL5SopKTEYDJGzn4qKipTJXFKEyHPPnDljMBgkSTKZTIsWLTp9+vT999/f55aXLFmyZMmS4Q5Un+76975nz57NmzdbrdaCgoKysrK6urr+pwshjhw5ct9996WlpT333HPh1uifghCipqZm2bJlOp2u/1yw0fQbVl5evnnz5sg99fX1kZufffbZv//7v0fusdvtgwzV0K1CiNLS0vLy8ujHAAAQT7Kzs3U6nd/vb2trUzsLAACIFfUjIYQ4f/78li1bnnrqqbq6uq6uroqKilu3boUXpjl+/Pj//M//XLlyxe12X758+eTJk+ESkvJ3s5aWloMHD65bt+7EiRP79+8Pz2+K3iqEqKysrKysPH78eEdHx8mTJ/fs2fPOO++EW5XTt23b9vTTT/t8vsiZU7W1tUqrHCHyjjZu3FhZWSnLstvtPnfunMfj6V/I6H9WLGRZXr58+ZUrV5TNK1eufPWrX428zurVqw8cOGCz2W7cuJGbm7tq1ao+pwshNm3a9Nprr1VUVDidzsWLFytN0T8FxdatW/ft2xcIBPrPIxtxv5H+9Kc/RS5+1IfL5aqurv6v//qvyJ3t7e2DDtZQrUKIr33ta+fOnYt+DICE1dvbywMaiD/hh3Pb29t9Pp/acQAAQEykOP7B9PDhw2fPnj116pQQoqCgwGazRbZardbGxkbl6/nz5+/du3fp0qUDXqe4uPjMmTNf/OIXlc1bt26tW7fu5s2byqYkSYFAQKfTSZLk8XhMJpMk/WNUo7fOmzfv/PnzBQUFymZNTU1paenly5fDXUuSdOLEiQ0bNoQ3Iz+vPpuRkpOTf/vb337729+2WCwxDlfsjhw58uc///ngwYNCiNLS0pUrVz7++OMDHhkMBnU6XZ+QkiS99dZba9eu7XNw9E9BObGpqSkvLy+8OdjtD6vfSGazubW11Ww292+y2+23bt1avnx5/1RRPpQhPzK3252VlcUaEBNJp9M5nc7x+F8DGHOff/55b29vXl6e0WhUOwswxmw2m9vtNhqNM2bMUDsLAAAYWqLUj8IGLDokJSW1tbUlJycPeB2DwdDZ2WkymZRNr9ebnp4e/nNZ+IL9vxiy1Wg09vmzm8lk8ng8g6WNvX507ty5b3zjG4FAwGAw5OTkpKamHj58eMAnbkbA6/XOnj1bqaAVFxfX1taGf7Gx2+0vv/zy22+/XV9fbzabFyxYcOHChf51nAFjR/8U+p8YuTmafiOZTCan09m/fvTxxx/b7fYVK1bEkioUCkXO74vSKoRwu93Z2dmRHzrGG/UjTBWBQODu3buyLBcWFup0OrXjAGOst7e3oaEhFAplZ2enp6erHQcAAAyB+WtCCDFr1qyPPvposNaioqKGhobwZkNDw7333jsm/RYXF1dXV0fOQRtNHSGyFLVmzRq/3+/3+xsbGy9duvTEE0889NBDYxFZCCFMJlNJScnRo0crKirWrVsX+VfxkpKSRx555ObNmx6Pp7Gx8dChQ7FfNvqnEN1o+o1077339lnwSAhx7dq1wYpHAwoGg7G31tXVFRUVDScjgESh1+sLCwvz8/MpHiEu6XS6adOmCSGcTmefd1MAAIBJiPqREELs3LnzySefrK2tFUK43e7q6ury8vLS0lKldceOHc8880xra6sQorW19ZlnntmxY8eY9Pv888+XlZVdu3bN6/W63e7r16+vX78+9tP1er2yhnRTU9Pu3buXLVsWbsrOzr506VIgEMjKypo1a9bcuXP7vPlLjHT9bEVZWdm+ffv2799fVlYWub++vl5Zy8DhcFRVVe3atSv2a0b/FKIbTb+RHn744ffffz9yz6VLl4xGY2TxqM9S5SaTqaqqSvn6gw8+SEtLi3zgKHqrEOK9996LfL8bAETSarUDzqgF4kN6errRaAyFQkO+bgIAAKhPjl+HDh1av359n50zZ84c8OCLFy+uWLEiPz8/PT198eLFu3fvdrvd4dajR4/OnTtXr9fPnTv36NGj4f2RwzjYF4O1Ks6dO7d48WKDwZCbm/uDH/ygoaFhwIv335Rl+fTp03q9XpKkGTNm/OxnP7PZbOGmxYsXV1ZWPvDAA8pfrfV6/enTp/vc8sKFCxctWjT0OA5i8eLFixcv7rPz4sWLCxcuNBqNeXl5W7ZsCa8w1f+mBvzPL8qnEH00RtlvWE1NzYIFCyL3pKSkRP+/RvkUhBBZWVlWq/V///d/Y2+VZXn+/Pm3b98eLA/Gg1ar7ejoUDsFAECWZdnr9X766aeffvqpy+VSOwsAAIgm4dY/AqIrKytbuXLlpk2bJqCvY8eOXbx4sby8fAL6QhjrHwHApNLa2tre3q7T6QoLCzUaHo0HAGCS4ps08E9efPHF3//+9xPT1759+1544YWJ6QsAgMlp2rRpSUlJvb29zGIDAGAyo34E/JOsrKzLly9PTF/vv/9+VlbWxPQFAMDkJElSTk6OEKK7u9vv96sdBwAADIxXugAAAEBNRqMxOzvbaDQaDAa1swAAgIHx/BEAAJMCbzFHIlPexaZ2CgAAMCjqRwAAqK+rq6utre3OnTuhUEjtLAAAAEBf1I8AAFBZIBBwOBxCiIyMDN4/BQAAgEmIH1IBAFCZ3W4PhUJGozEjI0PtLAAAAMAAqB8BAKCmzs5Oj8cjSVJubq7aWQAAAICBUT9KaJIkqR0BABJab29va2urECIzM5M3TwEAAGDSon6ESUqSJMpbAOJec3MzM9eAAcmy3NnZqXYKAADwdwlXPyosLFQ7wj+xWq0qXlmW5XHqffSGm238RhIAxklbW5vX69VoNHl5eVTMgT5sNpvdbm9ra1M7CAAAECIB60d37txRO8I/aWpqmnJXnpwS7X4BTHU9PT3KL8bZ2dl6vV7tOMCkk5qaqtFo+L8DAIBJIuHqR4O5evXqmjVrLBaLyWRavnz5hQsX5syZE24Nz6U6cuTIfffdl5aW9txzz4Vb33jjjaVLl5rN5uLi4tOnT/e58p49ezZv3my1WgsKCsrKyurq6pT9RUVFyjWlCH3OjX7lwcRy5ZqamgH3KztfeeWV1NTUqqqq119/3WKxnDlzZliplixZsmTJkhjTRjp48ODs2bNTUlIeffRRZUGQSBM/kgAwTkKhUHNzsyzLqampaWlpascBJqO0tLQvfOELqampagcBAABCCKFTO8CkcP78+WeeeWbXrl0VFRWpqalNTU1vvvmm0+kMHyDLsiRJmzZtCgQCFRUVDzzwwIULF5SmysrKN9544/jx4wUFBTU1NT//+c+Tk5NXr14dPnf16tVPPvmkEMLpdP7ud79btWrV7du3hRC1tbVCCEmSBpuoNeSVBzPklYUQs2fPVm6qz35lZ0tLy8GDB9etW7dq1ar9+/dv3LjR7/fHnmpk0+KOHDny6quvvvvuu/n5+X/7299+/etf9zlg4kcSAMZJa2trIBDQ6XQ5OTlqZwEmL61Wq3YEAADwd9FKDFPd4cOHz549e+rUKSFEQUGBzWaLbLVarY2NjcrX8+fP37t379KlS6NcTZKkt956a+3atX32z5s37/z58wUFBcpmTU1NaWnp5cuXB7xIMBjU6XSRYx6l6jGsKw8YeMgPd8BjJElSfquRJMnj8ZhMpsjDRpkqivvvv7+ysnLevHnK5vXr17/85S8PdgsTOZKIMzqdzul0WiwWtYMgcbndbuVbUkFBgdlsVjsOAAAAMLREef4oXCoasMrwySef3H///UNepH/xSAhx+/bt6dOnR+4xmUzhr+12+8svv/z222/X19ebzeYFCxbEnjn6lceVTqcbrMfxS1VbW3vPPfeEN+fOnRvZOkVHEgD6CAaDLS0tQoj09HSKRwAAAJgqWP9ICCFmzZr10Ucfjezc4uLi6upqOYLH4wm3lpSUPPLIIzdv3vR4PI2NjYcOHYp+NZ/PF+OVhyvyyqMxtqkiFRUVffbZZ+HNW7duRbZOnpEEgNGw2+3BYNBgMGRlZamdBQAAAIgV9SMhhNi5c+eTTz6pLKPjdrurq6vLy8tLS0tjOff5558vKyu7du2a1+t1u93Xr19fv359uLW+vr69vd3n8zkcjqqqql27dvU5Xa/XK6tTNzU17d69e9myZTFeeUhRrjwasaQa2frZ27Zt++lPf9rQ0OD3+//617/u378/slXFkQSAsdLR0eFyuSRJysvL678CHQAAADB5yfHr0KFD69ev77Nz5syZAx588eLFFStW5Ofnp6enL168ePfu3W63O9wafdDOnTu3ePFig8GQm5v7gx/8oKGhIfKyCxcuNBqNeXl5W7ZsCU+jCx9w+vRpvV4vSdKMGTN+9rOf2Wy2GK88pChXjvJfQuRm/y9iTLVw4cJFixbFHjWsvLz8nnvuMZvN3/zmNx0OR2S/Ko4k4oxWq+3o6FA7BRKR1+utqan59NNP+S8QGI3e3l61IwAAkIgSZf1sAFCwfjZUEQqF7ty5EwgEUlJS8vPz1Y4DTEmyLDscDpfLNXPmzPBajQAAYGIwfw0AgHHn8/l6e3u1Wm1OTo7aWYApzOfzBYPBpqamOP4LKAAAkxP1IwAAxp3JZJo5c2Z+fr5Wq1U7CzBVSZJktVp1Ol1PT4/yHkMAADBhqB9NSYWFhdIgCgsL1U4HABiAwWAwmUxqpwCmNq1Wqyw/393d3dnZqXYcAAASCFPHp6SGhga1IwAAAKjAZDJlZmY6nU6Hw2E0GpOSktROBABAQuD5IwAAAEwlmZmZKSkpsizbbLZgMKh2HAAAEgL1IwAAAEwxOTk5er2+t7fXbrernQUAgIRA/QgAAABTTHghJJfL1dbWpnYcAADiH/UjAAAATD1GozE7O1sI4XQ63W632nEAAIhz1I8wLiRJUjsCAKimtbW1tbVVlmW1gwBxzmKxpKenCyGam5t9Pp/acQAAiGfUj+KTJElUcABAFX6/v729vb293ev1qp0FiH9ZWVlmszkUCrGWNgAA4yrh6keFhYVqR/gnVqt1PC6r+h+9RxZgnEYDACaSwWDIz8/PzMw0m81qZwHinyRJeXl5ylraTU1Nqv8IBABAvEq4+tGdO3fUjvBPmpqa1I4wiTAaAOJDSkrKtGnT1E4BJAqtVmu1WjUajdfrdTgcascBACA+JVz9aDBXr15ds2aNxWIxmUzLly+/cOHCnDlzwq3h6WBHjhy577770tLSnnvuuXDrG2+8sXTpUrPZXFxcfPr06T5X3rNnz+bNm61Wa0FBQVlZWV1dnbK/qKhIuaYUoc+50a88JK/X+/3vfz8lJeULX/hCeXl55L1E9qVszp49O/LcJUuWLFmyZLg9CiFqamoGmz2n7He5XCUlJQaDwWAwnDlzRmmKZTQAAAAGZDAYcnJyhBCdnZ1dXV1qxwEAIA5RPxJCiPPnz2/ZsuWpp56qq6vr6uqqqKi4deuW0+kMH6A8C71p06bXXnutoqLC6XQuXrxYaaqsrKysrDx+/HhHR8fJkyf37NnzzjvvRF589erVBw4csNlsN27cyM3NXbVqlbK/trZWuawcIfLEIa88pP/4j//4zne+09LScvr06f/+7/8+fvy4EKK7u3vOnDl2uz18WFdX19y5c//yl79Ents/T4xmz5492InK/m3btj399NM+n6+ysnLjxo1K05CjAQAAEEVqampmZqYQwm63s/oYAABjTorj39IPHz589uzZU6dOCSEKCgpsNltkq9VqbWxsVL6eP3/+3r17ly5dGuVqkiS99dZba9eu7bN/3rx558+fLygoUDZrampKS0svX7484EWCwaBOp4scc0ka9CMY1pUHDPzuu++Gy1Uff/zxt7/97Rs3bggh9u3bd/369T/+8Y9K07PPPpuVlbV169YYrxxj7wPelyRJJ06c2LBhw4CHRRkNYKzodDqn02mxWNQOAgAYe01NTS6XS6vVTp8+3WAwqB0HAID4Ec+/rkfWj8IGrFAkJSW1tbUlJydHudpgpQ2j0djnfbEmk8nj8Shf2+32l19++e23366vrzebzQsWLLhw4UKMFZPoVx6SJEnd3d0pKSnKpsfjycnJcblcQohgMLho0aKKiori4uK7d++uXbv2ww8/HNufsaLUj6LcPvUjTADqRwAQx2RZ/vzzzyVJUlZEUjsOAADxg2+rQggxa9asjz76aGTnFhcXV1dXR866iizxlJSUPPLIIzdv3vR4PI2NjYcOHYp+tciCUfQrxyJyStonn3wSXtFJq9W+9NJL27ZtE0Js3759x44dk/MPdH3KZwAAANEplSOKRwAAjDm+swohxM6dO5988sna2lohhNvtrq6uLi8vLy0tjeXc559/vqys7Nq1a16v1+12X79+ff369eHW+vr69vZ2n8/ncDiqqqp27drV53S9Xq+sId3U1LR79+5ly5bFeOVYvP322xcuXPB4PB988MEPf/jD7du3h5seeuihUCj00ksvffbZZ+HZZJFGvH72aEQZDQCYnFpbWzs6OtROAeAftFotxSMAAMacTu0AE23mzJn9dz722GO5ublbtmyprq72er2zZ8/+7ne/+4c//CF8QPjVYMpm5ByrtWvXajSan/zkJ3/7298yMjK+/vWv/+53vwu3Hjt2bOvWrd/61rfS09O/8Y1v7Nix45VXXomcpaWsId3b2zt9+vR169a9+eabMV45OiXqzp07f/SjH/3bv/1bdnb29u3b+5Sffvvb3z7wwANVVVUDXiEYDI7gZ68+r3VTvgjfbHgYlT19NkXU0QCASai7u7u9vV0IYTQajUaj2nEAAACA8RLPy80MuP4Rwl5//fWjR49WVlaqHQSYUKx/hLHS09Pz+eefy7KcmZk5bdo0teMAAAAA4yjhnj+Core3d8eOHa+99praQQBgSurt7W1qapJlOTk5meIRAAAA4h71o4QTOcXsnnvuieMH0ABgnIRCIZvN1tvbm5SUlJ+fr3YcAAAAYNyxuOCUVFhYKA2isLAw+rnyP5uYwAAQT1paWnw+n1artVqtkUV5AJNWKBRqbm4OBAJqBwEAYKri+aMpqaGhQe0IAJCg2traXC6XJEn5+fk6Hd9GganBbrd3d3f7/f4BX6UCAACGxA++AADEyuVyOZ1OIUR2drbJZFI7DoBYZWVlBQKBnJwctYMAADBVUT8CACAmPp+vpaVFCGGxWHiFHzC16HS6GTNmqJ0CAIApjPWPAAAYmrJ4SigUMhqN2dnZascBAAAAJhT1IwAAhiDLclNTk9/v12q1+fn5rJkNAACAREP9KKHxKxAAxKK5udnj8Wg0moKCAtbMBgAAQAKifjQ0SZKos0w8hh3AJKG8cE0IkZeXl5SUpHYcAAAAQAUJVz8qLCwc7imyLI9HkvFmtVqHPGYy39pws8VyvwAwXN3d3eEXriUnJ6sdB8DY83q9akcAAGAKSLj60Z07d9SOMEGamprUjjChEu1+AUwAr9ervHAtPT09PT1d7TgAxl5ra+vnn3/e0dGhdhAAACa7hKsfDebq1atr1qyxWCwmk2n58uUXLlyYM2dO5AE1NTXLli3T6XQGg+HMmTORTXv27Nm8ebPVai0oKCgrK6urqws3KZOwXC5XSUmJwWDof+7+/ftnzZqVkpLy2GOPdXZ29pm09cYbbyxdutRsNhcXF58+fTrGeykqKlIuIkXoc0xNTc2A+5Wdr7zySmpqalVV1euvv26xWPpkHjLVkiVLlixZEmPaSAcPHpw9e3ZKSsqjjz7a2trap3WwcY7lfkc2kgASWSAQaGpqkmU5OTmZF64B8c3hcHR1damdAgCASY36kRBCnD9/fsuWLU899VRdXV1XV1dFRcWtW7eUCQthW7du3bdvXyAQqKys3LhxY2TT6tWrDxw4YLPZbty4kZubu2rVqnCTMglr27ZtTz/9tM/n63PuyZMnDx8+/N5777W3t//nf/7n888/LyLmbVVWVlZWVh4/fryjo+PkyZN79ux55513Yrmd2tpa5SJyhD7HzJ49e8AJYsrOlpaWgwcPrlu37sSJE/v374/MHEuqAXsc0pEjR1599dV3333X6XT+4he/+PWvf93ngMHGecj7HfFIAkhkoVBIkiSDwZCXl6d2FgDjJSsrS3m6sKWlhRISAABRSJN5BZxROnz48NmzZ0+dOiWEKCgosNlska1Wq7WxsVH5ev78+Xv37l26dOlgl5IkqampKfwrhCQNOm7BYFCn00W2SpJ04sSJDRs29D93wYIFR44ceeCBB5TNa9euLV26NNw6b9688+fPFxQUKJs1NTWlpaWXL1+O8fajhIx+jCRJgUBAp9NJkuTxeEwmU+Rho0wVxf33319ZWTlv3jxl8/r161/+8peHNc6DHTx+mTEV6XQ6p9NpsVjUDoIpoLe3V5ZlvV6vdhAA48vpdLa1tQkhsrOzmawKAMCAEuUlxOFS0YBVhk8++eT++++PfoXB/v5st9tffvnlt99+u76+3mw2L1iwoP8x4eJRH7W1tUVFReHNcOlEcfv27enTp0fuMZlM0UOOlfDbqfv3OH6pamtr77nnnvDm3LlzI1tjGefBqDiSAKa08D+GAOLbtGnThBBtbW0Oh0MIQQkJAID+mL8mhBCzZs366KOPRnZuSUnJI488cvPmTY/H09jYeOjQodjPLSoqun37dnjzxo0bka3FxcXV1dWRc7I8Hs/IQgohfD7fiM8dv1SRioqKPvvss/DmrVu3IluHO86R9zt+mQEAQHyYNm1aZmamEMLhcHR2dqodBwCASYf6kRBC7Ny588knn6ytrRVCuN3u6urq8vLy0tLSWM6tr69vb2/3+XwOh6OqqmrXrl2x97t9+/annnqqubk5GAx+/PHHr776amTr888/X1ZWdu3aNa/X63a7r1+/vn79+tgvrtfrlXWvm5qadu/evWzZstjPjSKWVCNbP3vbtm0//elPGxoa/H7/X//61/3790e2DjnOUe53lCMJAAASQbiEZLfbKSEBANCXHL8OHTq0fv36Pjtnzpw54MEXL15csWJFfn5+enr64sWLd+/e7Xa7laY+Y9Vn8+LFiwsXLjQajXl5eVu2bAlPlIvlXFmW9+7dW1hYaDKZvvnNbypvHItMde7cucWLFxsMhtzc3B/84AcNDQ2x3/7p06f1er0kSTNmzPjZz35ms9nCTVH+S4jc7P9FjKkWLly4aNGi2KOGlZeX33PPPWaz+Zvf/KbyAHmM4xz9fmPJjMSh1Wo7OjrUTgEAmKRaWlo+/fTTTz/9tLOzU+0sAABMIomyfvaU0N7enpeXN1YTzQAMiPWzAQDRhZ8/ysnJ4fsFAAAK5q9NFq2trS+88MITTzyhdhAASDiBQEB5AhQAhBA5OTkZGRlCCLvdzj8OAAAoqB+pye/379y5U6PRSJJUVFSUnJxcXl6udigASCyyLDc2Nra3t/NbIoCwrKysrKwsIQT/OAAAoKB+pCaDwbBjx45QKCTLckdHx29+8xutVhvLiYWFhdIgCgsLxzs2AMQTSZKysrL0ej1v7AYQKSMjI1xCstvtascBAEBlOrUDYCQaGhrUjgAA8SMlJSU5OVmSJLWDAJhcMjIyNBqNshxSKBTKzc3lHwoAQMLi+SMAAAS/EwIYkMViycnJEUJ0d3fb7fY4fvMMAADRUT8CAAAABmWxWJQnj9xudzAYVDsOAADqYP4aAAAAEE1aWppWq9XpdDodPzwDABIU3wIBAACAISQnJ6sdAQAANTF/DeOClUQATE6BQEDtCAAAAMDUQ/1oaJIkTblqyFTMDADjrbu7u6GhoaurS+0gAAAAwBSTcPWjwsLC4Z4yFV+0oXrmkQWwWq1jngQAFC6Xq6WlRZblnp4etbMAAAAAU0zC1Y/u3LmjdgQMqqmpSe0IAOKTy+VqamqSZTn8Km4AGCtut1vtCAAAjLuEqx8N5urVq2vWrLFYLCaTafny5RcuXJgzZ07kATU1NcuWLdPpdAaD4cyZM5FNe/bs2bx5s9VqLSgoKCsrq6urCzcp88hcLldJSYnBYOh/7v79+2fNmpWSkvLYY491dnb2mXf2xhtvLF261Gw2FxcXnz59erg35fV6v//976ekpHzhC18oLy+PjBTZi7I5e/bsyHOXLFmyZMmS4fYohKipqRls9lyU0SgqKlJOkSKMoHcA6M/tdjc3NwshUlNTKR4BGFsOh8NmszmdTrWDAAAwvqgfCSHE+fPnt2zZ8tRTT9XV1XV1dVVUVNy6davPzwFbt27dt29fIBCorKzcuHFjZNPq1asPHDhgs9lfLkcjAAAgAElEQVRu3LiRm5u7atWqcJMyjWvbtm1PP/20z+frc+7JkycPHz783nvvtbe3/+d//ufzzz8vImZ+VVZWVlZWHj9+vKOj4+TJk3v27HnnnXeGdV//8R//8Z3vfKelpeX06dP//d//ffz4cSFEd3f3nDlz7HZ7+LCurq65c+f+5S9/iTxXluWRzUGbPXv2YCdGGY3a2lqlVY4wgt4BoA+v16s8eZSSkpKXl6d2HADxRqvVCiGSkpLUDgIAwPiS4vi39MOHD589e/bUqVNCiIKCApvNFtlqtVobGxuVr+fPn793796lS5cOdilJkpqamsK/eEjSoOMWDAZ1Ol1kqyRJJ06c2LBhQ/9zFyxYcOTIkQceeEDZvHbt2tKlS8Ot8+bNO3/+fEFBgbJZU1NTWlp6+fLlGG9fkqR33303XMz6+OOPv/3tb9+4cUMIsW/fvuvXr//xj39Ump599tmsrKytW7fGeOUYex9wiKKMRpSzgDGk0+mcTqfFYlE7CCaCz+f7/PPPQ6GQyWQqKCjgwUYA4yEQCOj1erVTAAAwvuL51/XI+lHYgBWKpKSktra25OTkwS4Vpcxht9tffvnlt99+u76+3mw2L1iw4MKFC1FqIpGbKSkpDofDZDIpm263OyUlJdxqNBp9Pl9kDJPJ5PF4Yrt7IUlSd3d3SkqKsunxeHJyclwulxAiGAwuWrSooqKiuLj47t27a9eu/fDDDw0GQ4xXjrH3wepHMQ4OME6oHyUOn8/X2NgYDAaNRmNBQYFGwyO3AAAAwAjxw7QQQsyaNeujjz4a2bklJSWPPPLIzZs3PR5PY2PjoUOHYj+3qKjo9u3b4U3l4aCw4uLi6urqyPlcsRePFJFT0j755JPwik5arfall17atm2bEGL79u07duwY2+LRWOlTPgOA2Pn9fopHAAAAwFjh52khhNi5c+eTTz5ZW1srhHC73dXV1eXl5aWlpbGcW19f397e7vP5HA5HVVXVrl27Yu93+/btTz31VHNzczAY/Pjjj1999dXI1ueff76srOzatWter9ftdl+/fn39+vXDuq+33377woULHo/ngw8++OEPf7h9+/Zw00MPPRQKhV566aXPPvssPJss0ojXzx4NvV6vrKjd1NS0e/fuZcuWTXAAAPHB5/PdvXuX4hEAAAAwVnRqB5hoM2fO7L/zsccey83N3bJlS3V1tdfrnT179ne/+90//OEPSmv4vWDK1Ko+m8eOHdu6deu3vvWt9PT0b3zjGzt27HjllVcGO7jP5oYNGzo6Ov7lX/7FbrevWbNm7969e/bsCadau3atRqP5yU9+8re//S0jI+PrX//67373uxhvU+lo586dP/rRj/7t3/4tOzt7+/btfcpPv/3tbx944IGqqqoBrxAMBkfwG1ef17opX4SnpEUfDSGEsqJ2b2/v9OnT161b9+abbw43AAAo09ZCoRDFIwAAAGCsxPNyMwOufzSZtbe35+XlTdikrddff/3o0aOVlZUT0x0wSbD+UXzz+/2ff/45Tx4BmAw6Ozu7u7vz8/OVd7QBADClJdzzR5NWa2vr//t//++JJ56YmO56e3t37Njx2muvTUx3ADABKB4BmDxCoZDT6QwGg3fv3rVarZNzrUkAAGLHz9Zq8vv9O3fu1Gg0kiQVFRUlJyeXl5ePd6eSJEmSpNfrb9y4cc8994x3dwAwMQKBgLJgtsFgsFqtFI8AqEuj0UyfPl2v1wcCgbt377rdbrUTAQAwKvx4rSaDwbBjx45QKCTLckdHx29+85sYH28uLCyUBlFYWBj9XPmfjcV9AIDKlCePent7DQbD9OnTmSoCYDIwGAwzZswwm82hUMhms7W1tamdCACAkWP+2pTU0NCgdgQAmCxkWW5sbKR4BGAS0mq1VqvV6XS2t7c7nc6enp68vDwekAQATEV89wIATG2SJOXm5ppMphkzZlA8AjDZSJKUlZWlzKt1u90NDQ09PT1qhwIAYNji+fmjDz/88E9/+hNvWQIQSavVulwu/mWIM2az2Ww2q50CAAaVnJw8c+bMpqYmn8/3+eefZ2Vlpaenqx0KAIBhiOf60bx5877yla/s2bNH7SAAJpE5c+ZQaAAATDy9Xj9jxgy73d7V1eVwOHp6enJzcyVJUjsXAAAxief6kdFoTElJ4RVjAPpg4QkAgCqU+bYGg6G1tbW7uzsQCOTl5en1erVzAQAwNH6JAgAAACZORkZGQUGBVqvt6em5c+dOd3e32okAABhaPD9/JIT4y1/+8thjj6mdAsAkEgqF1I4AAEh0ZrN55syZzc3NXq+3ubnZ7Xbn5OTweCwAYDKTZFlWO8N4qa+v/+CDD9ROAWDSKSkpYbLAFNXV1RUKhVh0FkB8kGW5ra2tra1NCGEwGPLy8pKSktQOBQDAwOK5fgQAiCc9PT13794VQkyfPt1kMqkdBwDGhsvlamlpCYVCGo0mPz+flzwAACanOJ+/BgCIG0ajMSMjQwhB8QhAPElJSTEajc3NzYFAgOePAACTFs8fAQAAACqTZTkQCBgMBrWDAAAwMOpHAAAAAAAAiIa3PAAAAAAAACAa6kcAAAAAAACIhvoRAAAAMHkFg0GHwxEKhdQOAgBIaNSPAACTi9/vb2ho8Pl8agcBgEnBbrd3dHS0tLSoHQQAkNCoHwEAJhGv13v37l2/3+9wONTOAgCTQnp6ul6vz8zMVDsIACCh8f41AMBk0d3d3dLSIsuy0Wi0Wq1arVbtRAAAAACEEEKndgAAAIQQorOz0263CyHMZnN+fr5GwxOyAAAAwGRB/QgAoD6n09nW1iaESE1Nzc3NlSRJ7UQAAAAA/oH6EQBATbIst7S0dHd3CyEyMjKysrLUTgQAU0lvb69Wq6XsDgAYb9SPAACqCQaDNputp6dHkqScnJy0tDS1EwHAVCLLss1mk2U5JyfHZDKpHQcAEM9YPxsAoA6/32+z2QKBgEajyc/PN5vNaicCgCkmEAh8/vnnvb29Qoi0tLTs7GwWjwMAjBPqRwAAFXi9XpvNFgqFdDpdQUGBwWBQOxEATEmyLDudzvb2diGERqPJysqyWCxqhwIAxCHqRwCAidbd3d3S0iLLstFotFqtWq1W7UQAMLX5fL6WlhafzyeEMJlMOTk51OUBAGOL+hEAYEJ1dHQ4HA4hhNlszs/PZ6oFAIwJWZbb2tra29tlWdZoNNOmTUtPT1c7FAAgflA/AgBMEFmWHQ5HZ2enECItLS0nJ4cXBgHA2PL5fHa7vaenRwiRlJSUk5NjNBrVDgUAiAfUjwAAEyHyVWvZ2dkszwEA46ejo8PpdIZCISGExWKZNm0aM4UBAKNE/QgAMO5kWb5z547f79doNHl5ecnJyWonAoA4FwqFnE5nR0eHEILpbACA0aN+BACYCB0dHZ2dnVarVa/Xq50FABJFT0+Pw+FgOhsAYPSoHwEAJkgoFGK1bACYYLIst7e3t7W1ybIsSVJ6enpmZib/GgMAhov6EQAAABDnAoGAw+Fwu91CCK1Wm5+fbzKZ1A4FAJhK+MsDAAAAEOf0er3VarVarQaDQZZlg8GgdiIAwBTD80cAAABAopBl2e/3JyUlqR0EADDFUD8CAIwln8/HryUAAABAnGH+GgBgzDgcjjt37ijrawAAAACIG9SPAABjJhQKCSF8Pp/aQQAAI9Hd3e1yudROAQCYjJi/BgAYM7Isezye5ORktYMAAIYtFArV19cHg8H8/PyUlBS14wAAJheePwIAjBlJkigeAcDUlZaWlpSUxL/kAID+eP4IAAAAAAAA0fD8EQAAAAAAAKKhfgQAGLZgMKh2BADARAuFQsp7EgAACYj6EQBgeJxOZ319vd/vVzsIAGBCKf/+d3R0sAIGACQg6kcAgFgFg8HGxsa2trZQKMQLngEgoShv2AwGgw6HgyoSACQg1s8GAMSkp6enubk5EAhIkpSTk5OWlqZ2IgDAhJJluaurq62trbe3Vwih0+mmTZuWmpoqSZLa0QAA4476EQBgaB0dHa2trbIs6/X6/Pz8pKQktRMBANQhy3JnZ2dbW5uyFp5er8/IyEhLS6OKBADxjfoRACCa3t7elpYWj8cjhLBYLNnZ2fyGAABQqkjt7e3hZ5EyMjIsFgvfIwAgXlE/AgAMyuPxNDc3B4NBjUaTnZ3NnDUAQCRZlru7u9va2gKBgBBCq9VaLJaMjAyNhlVWASDeUD8CAAystbW1vb1dCJGUlJSXl2cwGNROBACYjPqsi6TVapVnkagiAUA8oX4EAOirt7e3ubnZ6/UKIdLT07OyspiPAACITqkitbe3Rz6LlJ6ertVq1Y4GABgD1I8AAP/E6/U2Nzf39vbynjUAwHApM9ra29v9fr8QQpKktLS0jIwMvV6vdjQAwKhQPwIA/J0sy21tbW1tbUIIg8GQn5/PnDUAwMh4vd729na32y2EsFqtycnJaicCAIwK9SMAgBBCBAKB5ubmnp4ewXvWAABjxOPxdHd35+bmqh0EADBa1I8AAKKjo6O1tVWWZZ1Ol5ubazab1U4EAAAAYBLRqR0AAKCyYDDY1tYmy7LJZMrLy9Pp+NYAAJggwWCQBbYBYErg+SMAgHC5XH6/PzMzU+0gAIAE4vf779y5k5qaygQ3AJj8+CMzAECkpKSoHQH/v707D4+jvu84/pvZ+5S0um3ZrmRDAqacSTBxoIBJCE1KSCBtHK7GDmeMk4fHltO4dWtS24G6edKQJ7Gd0lwPtE/pAy6UkHCFyFAHcxgSXNyAD0m2jHXtvTuzO0f/mLJZJO1qZR2j4/36Q89o5jcz35XAj/azv993AGDOSaVSpmnqum53IQCA0TH/CAAAAIA9stmsLMsej8fuQgAAoyA/AgAAAAAAQDmy3QUAAKZIPp9njQAAYAbJZDKJRIIPvAFgOmD+EQDMCalU6uTJk36/v7m52e5aAACoyLFjx6wFbuFwuLq62uVy2V0RAMxd9M8GgDnB6XSapqlpmmEYsszkUwDADBAIBDRNy+fzsVgsFov5/f6qqqpAICBJkt2lAcCcw/wjAJgrstms1+vlb24AwMySTqfj8Xg6nba+dTgc4XC4qqqK6UgAMJXIjwAAAABMd9YspEQiYRiGtcfn81VVVQWDQT4aAYApQH4EAAAAYMbIZDLWdCTrjYwsy4FAIBwO+/1+u0sDgNmM/AgAAADADJPP5xOJRCKR0DTN2uP1esPhcCgUos0fAEwG8iMAmD1SqVQymeQJawCAuSOdTicSicJ0JEmSCtORWNcGABOI/AgAZgNd13t7e1OplBCioaGhqqrK7ooAAJg6uq4nk8lEIqGqqhBCluXW1lYmIgHABCI/AoAZL5lM9vX16bouSVJNTU0kEuETVwDA3JTL5RKJhBCirq7O7loAYFYhPwKAGSyfz/f29mYyGSGEx+NpbGz0eDx2FwUAAABgtnHaXQAA4BTFYrGBgQHDMJh2BABAhawV38FgMBQK2V0LAMwk5EcAMPMoitLb22u1ePD7/Q0NDS6Xy+6iAACYAZLJZCqV0jSN/AgAxoT8CABmEsMw+vv74/G4EMLhcNTV1YXDYbuLAgBgxggEArqu87kLAIwV/Y8AYMbIZDK9vb35fF4IEQgEGhoanE4+BgAAYIKZpsmScAAYgjceADAD6Lre399vPVDG4XDU19cz6x4AgMmQyWR6enr8fn8wGAwGg7Is210RAEwLzD8CgOkuHo/39/cbhiGECIfDdXV1DofD7qIAAJid+vv7o9GotS1JUiAQCAaDgUCAIAnAHEd+BADTV3GfbK/X29DQ4PF47C4KAIBZTlGUQptta48kSdaMpEAgwKc4AOYm8iMAmKZM0zxy5Iiu67IsRyKR6upqejEAADCVFEVJpVKpVMpqPmjxer3WpCS3221jbQAwxciPAGD6isfjmUymvr6ePtkAANhIVdV0Op1KpaxJwRaXyxUIBAKBgM/n4zMeALMe+REAAAAAVETTtHQ6nU6nM5lM4Z2ULMvWjCS/30+bJACzFfkRAAAAAIyNYRiZTMbKknRdt3Z6vd4FCxbYWxgATBLyIwAAAAA4ddlsNpVKpdPpUChUW1trdzkAMCnIjwDATrlcbmBgoKGhgYe5AAAw05mmWaoRkmmauVyO56gCmLlYnQsAdjp58mQqlRoYGLC7EAAAMF5lumgritLV1dXV1TWV9QDABCI/AgA71dXVBQKBmpoauwsBAACTKJfLSZLkdrvtLgQAThHr1wAAAABg0pmmaRhGmRXriqJ4vd6pLAkAKkd+BAAAAAA2y+fzR48elWXZ5/P5/X6fz0ezJADTitPuAgAAAABgrsvn8w6HQ9f1dDqdTqeFEGRJAKYV5h8BwORKJpMDAwPNzc385QcAAMpTVTX7Hl3XC/sLWZLH4/F6vWUadQPAJCE/AoDJks1m+/r6VFUVQoRCoaamJrsrAgAAM0apLEmSJI/H43uPLPNMJABTgfwIACZePp/v6+srTD6vqampqanho0IAAHBqSmVJQggrS6qqquLhbgAmFfkRAEwkXdcHBgYSiYT1r2s4HK6trXU6aTYHAAAmhqZpVpykKIqiKNafHAsXLmSlPIBJRX4EABPDMIxYLBaNRg3DEEL4/f66ujr+kgMAAJNH13UrRaqtrS01RtM0IQSfZgEYJ/IjABgv0zSt5MiaT+7z+erq6rxer911AQAAiN7e3ng8XlNTU1dXZ3ctAGYwQmgAGJd4PD44OGh9sudyuerq6oLBoN1FAQAA/D/TNCVJ4pMtAOPE/CMAOEWKovT392ezWSGELMuRSKS6upom2QAAYLqx3vSV+islm8329vZ6vV6Px2N95e8ZAMMx/wgAxiyXyw0MDKRSKSGEJElVVVWRSMThcNhdFwAAwAjK50GqquZyuVwuVxjsdrsLcZLb7SZOAiCYfwQAY6JpWn9/fzKZtL4NhUK1tbUul8veqgAAAE5ZoQm3qqqqqlqr8gskSXK5XB6Px+PxuN1uj8dDK25gbiI/AoAxUFW1q6tLCFFVVVVTU0NyBAAAZhlN09Qi+Xx+yACHw2EFSYVQiQlKwFxAfgQAYzM4OOj3+2lCCQAA5gLTNPP5fGF2kqqqhmEUD5g3b14gELCrPABThvwIAAAAAFAR0zRzuVzxBKWFCxeWmpGdz+dzuZzb7WbKNjALkB8BAAAAACZeNBrt7+8PhUJNTU121wJgvOh8BgDvYxhGPB73er0+n8/uWgAAAGYwSZKsHkllxvT397tcLrfb7Xa7eZotMJ0x/wgA3qevry8Wi/l8vpaWFrtrAQAAmM00TTty5EjhW1mWrSDJ5XJZoZLL5ZJl2cYKARQw/wgA3qempiaVSoVCIbsLAQAAmP1qampyuVwul8vn84ZhKIqiKErxAIfDUciSCrkSoRIw9Zh/BAAAAACwmdWZ22q5nc/nrQ1d10ccbIVKgUAgEolMcZ3AnMX8IwAAAACAzUZslmQYRiFLKg6VLG63u8wFk8mk0+n0er2SJE1y7cCcQH4EYM4xDCORSFRVVfHHBAAAwHQmy3KZUMnpLPl+1jTNkydPmqbZ2tpaaphpmvw1CFSO/AjAHGIYRiwWi0ajhmE4HA6aHAEAAMw4I4ZKQxiG4ff7NU0rkzENDg5Go1Gn0+lyuQpfLQ6Hg4fBAUOQHwGYE3Rdj8VisVjMMAwhhNPp5OMmAACA2crhcMybN6/8GE3TTNO0pjINPypJksPhsLKkQqhUnC7xxyTmGvpnA5jlNE0bHBxMJBLWP3derzcSiQQCAbvrAgAAgJ0Mw9Dek8/nC9tWc6VRT583bx5/UmJOYf4RgFlL07RoNBqPx63kyOPxRCKRYDBod10AAACwnyzLbrd7xCbcpmkWsqTiXMnasOazy7Jc6srpdPrEiRN+v7/MHCjDMMpcAZiGyI8AzEKqqkaj0VQqxZwjAAAAjJUkSS6Xy+VyjXjUMAxd18t0VtJ13TTN8mt9jh07pqqqYySyLFtfizfG+5KAcSM/AjCrZDKZaDSayWSsbwOBQE1Njc/ns7cqAAAAzBqjBjqhUMjv95fPj6wlchWulRNCDEmUGhsbS9Vg3Zf2TKicFXcahmEYhmmahQC0eCMYDNL/CMBsYJpmPB6PxWJW+0NJkqqqqqqrq0t9agQAAADYSy/Bmt9U+Drie/YlS5aUSogGBgYGBwerq6vr6+tL3ToajUqSZPUIL96wIiprz4S9TkwJVVWFEG63u9TvLp1OJ5PJ4oSoEBhVkgvV1dUx/wjAzGYYhtXkyProRpbl6urq6upqHrkKAACA6cxarTbqMOtN/pBoqUy+M2p7JtM0+/v7y9/UipCsLMm6lFWqFTA1NjaWOlFVVV3X3W53mfV9c5amablcztq2fk1CCCvHMd9TZjsUCtXU1JS6eFdXlxCira2t1H9UuVwumUyWr7Dwe7d+9cXxotvt5jcKYGbr6uqy5hw5HA5rzhHJEQAAAGYN68185XFMXV1dTU1N+fwoGAwWTz8ZPg+lkFkMP718JYODg6lUqr6+vrq6esQB+Xz+6NGj1nbxRKdCUGUZsl0Y5nK5GhoaSt19YGAgl8vV1NR4vd4RB+RyuYGBgTL1FwzJd6xtv99fV1dX6pQjR45omrZgwYJSd89ms++++24ldx9RqctanE5nqdlqFp/PV1dXN555Z+RHAGa2QCCQSqVqamrC4TCdBQEAADDHSZJUPuKRZbm5uXnEQ8P74Ij3kpTCdvk/uV0ul8fjKVNAccAxZOVUJa2gymcomUxGUZRQKFRqgK7rqVRq1LuUUv4Ha4UvZRIcWZat9hrWz7AQ2VgnFmZ4iaI0rXhk+bu3traWL97r9Zb/6Y2K/kcAZjZr+i4rtAEAAIAZoTDpaXjnneEzaIbMgZJl2e/3l7pyKpXSdd3v95fqgqppWjqdrqTI4jUNhcjM4XB4PJ5Sp+i6XpwHzT7kRwAAAAAAACiHtR4ApjWrPXYikbC7EAAAAACYu8iPAExryWSyv79/cHDQ7kIAAAAAYO6ifzaAaS0cDqdSqVAoZJrmbF1IDAAAAADTHP2PAAAAAAAAUA7r1wDYT9M0u0sAAAAAAJTE+jUAtjFNM51Ox2IxRVFaW1uLn5EJAAAAAJg+yI8A2EDTtHg8nkgkrJlHkiRls9lgMGh3XQAAAACAEZAfAZhSmUwmFoul02nrW4fDUVVVVVVV5XTyzxEAAAAATFO8YQMwFTRNi8ViyWSy0OooGAxWVVX5/X57CwMAAAAAjIr8CMDksjocZTIZ61smHAEAAADAjMP7NwCTwjCMZDIZj8dVVbX2eL3eqqqqUCgkSZK9tQEAAAAAxoT8CMAEUxQlHo8nk0nTNIUQkiSFQqGqqiqv12t3aQAAAACAU0F+BGDCpNPpgYGBwoQjj8cTDofD4bAsy/YWBgAAAAAYD/IjABNJVVWHw2HFRm632+5yAAAAAAATQLIWmADA+JmmmUgkQqEQE44AAAAAYDYhPwIAAAAAAEA5zBEAUClN0/r6+k6cOGF3IQAAAACAKUX/IwBjEIvFhBD5fN7lctldCwAAAABgirB+DcAYRKNRj8fj9/vtLgQAAAAAMHXIjwAAAAAAAFAO/Y8A/L98Pj84ONjd3U2sDAAAAAAoRv8jYK7TdT2RSCQSiVwuZ+1Jp9PBYNDeqgAAAAAA0wf5ETBHmaaZTqeTyWQ6nS5MOPL5fKFQiPZGAAAAAIBi5EfA3GKaZiaTSafTqVRK13Vrp8fjCYVCoVDI6eTfBAAAAADAULxXBOaKTCaTTCZTqZRhGNYep9MZCoXC4bDb7ba3NgAAAADAdEZ+BMxyiqIkk8lkMlmYbeRwOILBYCgU8vl89tYGAAAAAJgRyI+A2UlVVSs20jTN2iPLciE2kiTJ3vIAAAAAADMI+REwO/X19WWzWSGELMtWbyNmGwEAAAAATg35ETA7hUIhKzkKBAKyLNtdDgAAAABgBpMKz+0GAAAAAAAAhmNWAjAjxWKxzs7OdDptdyEAAAAAgNmP/AiYkXK5XC6XS6VSdhcCAAAAAJj9WL8GzEiqqiqKEgwGHQ6H3bUAAAAAAGY58iNgOjJNM5PJeDwep5Mm9wAAAAAAm/HWFJhGNE1LpVLpdDqbzZqmWVtbG4lE7C4KAAAAADDXkR8B9tM0LZ1Op1IpKzaydjqdTkmS7C0MAAAAAABBfgTYSFVVa7aRqqqFnW63OxAIBINBr9drY20AAAAAABSQHwFTympslE6n0+m0pmmF/T6fLxAIBAIBt9ttY3kAAAAAAAxHfgRMhVwuZ2VGiqIUVqg5HI5gMBgIBHw+nyzL9lYIAAAAAEAp5EfA5IrH44lEQlGUwh6n02mtUPP5fHQ4AgAAAABMf+RHwORSVdUKj7xer7VCzePx2F0UAAAAAABjIBWW0gCYDIqiqKoaCAScTuJaAAAAAMCMRH4EjEsmk0mlUtXV1fS9BgAAAADMVkyIAMYlGo1mMhmXy0V+BAAAAACYrciPgHEJhUIul8vn89ldCAAAAAAAk4X1a0BJpmlms9l0Ol1bWyvLst3lAAAAAABgD+YfAUPl8/l0Op3JZDKZjBWw+ny+YDBod10AAAAAANiD/AgQQghN07LZrJUZaZpW2O9wOPx+v8PhsLE2AAAAAADsRX6EuUvXdSszymazuVyusF+SJJ/P5/f7/X6/x+OxsUIAAAAAAKYD8iPMLZqmZTIZRVEymUw+ny/sJzMCAAAAAKAU8iPMCYZhRKNRKzkq3u92u/1+v5Uc0SEbAAAAAIARkR9hrohGo1YzbKfTac0z8vl8Tif/CwAAAAAAMArePGNOkGW5pqbG6XT6fD632213OQAAAAAAzCSSNSMDmNEURenr65Nlef78+XbXAgAAAADAbMP8I8wGsiwriiJJkmmakiTZXQ4AAAAAALMK848wM+RyOSFEmaVniUTC5/O5XK4pLAoAAAAAgDmBB05hmjJNM5PJDAwMHD9+/NChQ52dnZzkSboAABUxSURBVIODg2XGh8NhwiMAAAAAGKe33nrrzjvv/OAHPxgMBgOBwAc+8IE77rjjrbfeGjJMqkCpwYFAYOnSpXffffe77747vIBsNrt9+/aLLrqourra6XTW1tYuX75848aNb7zxxqm9ouJixlR2hZUUTrz++uuH3/36668ffuXynnvuuT//8z9vaWnxeDxNTU1f+MIXOjo6Tu21TyDmH2Ea0XVdKWIYRuGQLMvBYLCxsdHG8gAAAABgdrv33ns3btyo6/qQ/Q6HY+vWre3t7YU9laQhhcCh1ODGxsa9e/e2trYW9vT29l5++eUHDhwof8Exse5unVt52ZVXYl1TkiSPx3PixInq6urCoVgs1tzcrKqqNX7U+g3DWLNmzQ9+8IPyd7QF849gM1VV4/H4yZMnOzs7Dx8+3NPTMzg4mMlkDMNwOBzBYLC+vn7BggVtbW2ERwAAAAAwef7pn/7p61//umEYq1evfumll5LJZDqd3rdv35e//GXDMDZs2PDd7363MNh8vzI7h5/S29u7e/futra2kydP/vVf/3XxmPb29gMHDsyfP/9HP/pRd3e3qqqxWGzv3r1bt249++yzx/8aKy97rJVcfvnliqI89NBDxTsffPBBRVFWrFhRYXkbN278wQ9+4HQ629vbDx48qKrqyZMnH3zwwQsvvHAcL3piMP8IU63MJCMhhNvt9vl8Xq/X6/WW6XYEAAAAAJhA3d3dS5YsyeVy//Iv//KlL31pyNEf/ehHq1atcrvdhw4damlpGX568RyfCo+++OKLH/vYxxoaGk6ePFnYWVtbOzg4uHfv3mXLlo3zFVVSW5lDlVdiXeShhx764he/eP7557/66quFQ+eff/7+/fv/9V//deXKlaVuVPD73//+jDPOMAxjxF+B7Zh/hCnV3d09ZJKRLMt+vz8SicyfP3/x4sWLFi1qaGgIh8OERwAAAAAwZXbs2JHL5a677roRk4svfelL1157bS6X27Fjx0Td8ZxzzhFCxOPx4p3pdFoIcdppp416+ogdhcbUZqi8yiuxfO5zn4tEIq+99trrr79u7dm/f//+/fsjkchnP/vZSq6wc+dOwzA++tGPTsPwSJAfYYrJsiyEcLlcoVCooaFh4cKFixcvnj9/fm1trd/vt44CAAAAAKbY008/LYS45ZZbSg2wDj3zzDMTdcfXXntNCDFkNtN5550nhFi9evU777wzUTc6NWOtxOPxWP2zH3jgAWuPtXHDDTd4PJ5KrvD8888LIW688cZTqnfSsX4NE0bX9UQikc/nGxoaSo3J5/OyLDscjqksDAAAAABQXiQSiUajAwMDkUhkxAH9/f319fW1tbX9/f3Dj45p/Vp/f/+ePXvuvvvuo0ePbtq0afPmzYWRe/bs+cQnPqEoihCira3t3HPPPeussy655JJLL710yBvJEe9Y+c5RD51CJW+88ca5555bU1PT09MjhGhubo7FYm+88cbZZ59d/udjqampicVir7/++v/+7/9u3779zTffdDqdZ5555he+8IWvfOUrtj9wnPwIE0bX9cOHDwsh2traSIgAAAAAYAZxuVyapuXzeafTOeKAfD7vdrudTmc+nx9+tJL8aLiVK1f+5Cc/GZKMHDx4cOvWrbt3704mk4WdLS0t3/nOd6699toKX06FtZUvu8JKii/y4Q9/+JVXXnnooYdM07z++us//OEP79u3b9QbWZxOp67r69ev/4d/+Ichh5YtW/b0008Hg8GKXvDkID9CpUzTVFVVCOH1ekuN6evrc7lc4XCYlWgAAAAAMINMwfyjIVpaWh577DFrmdhwuq6/+eabBw4c2Ldv389//vO3335bkqRHH330M5/5TKUvqYLaKol1Rq2k+CI7duy44447VqxYYZrmc889t2PHjttuu63CG4VCoVQqJUnSRz/60a1bt55zzjn5fH737t3r16+PxWLr1q0bnitNJfIjlGQYRjabVRRFVVVVVTVNE0IEAoF58+bZXRoAAAAAYCJ95CMfefnll5966qmPf/zjIw546qmnrrzyyo985CMvvfTS8KOVr1/L5/NHjhzZsmXLT3/60/r6+t/97neNjY3lazMMY+PGjd/61reGPN2sQuPMj0atpPgi8Xh83rx52WxWCOHz+U6cOBEOhyu80WmnnfbOO++EQqGurq7q6urC/scff/zqq69euHBhZ2dnhXVOBiaJ4A8Mw1AUJR6P9/b2Fj8oLZ1OW+GRw+FgYhEAAAAAzD5XXHGFEOKHP/xhqQHWIWvYeLhcrtNPP/3HP/7xlVde2dfXt3HjxlFPkWV5w4YNQogDBw6M8+7jNGolVVVV1113nWmapml+/vOft8KjCp177rlCiNNPP704PBJCXHLJJUKId99999TrnghkAXOapmmZTCYajZ44caKzs/PQoUPd3d29vb3xeFxRFNM0nU5nIBCIRCLz5s1rbW1ta2tramqyu2oAAAAAwAS7/fbbXS7Xww8//LOf/Wz40Z/+9Kf/8R//4Xa7b7/99gm5nSRJ3/3ud51O509+8pPf//73o463HoJmbwOgCitZvXr1kI0K/dmf/ZkQ4u23347H48X7Ozo6hBC2rwQiP5qLBgYGjh8/fvjw4SNHjhw/fry/vz+VSuVyOSGEy+UKBoO1tbXz5s1ra2trbW2dN29ebW1tIBAo1UQNAAAAADDTLVy4cNu2bUKIm2+++dZbb3355ZczmUw2m33llVduu+22v/zLvxRCfOtb31qwYMFE3fH0009ftWqVpmnFU5CWLl26cePGX/7yl93d3aqqKopy5MiR73//+1azoauuuqowUpKk4W2VRtx5aiqvZIhLLrnEmn908cUXj+mOf/EXf7F48eJEIvGpT31qz5498Xi8v7//gQceuOmmm4QQX/ziF8f5isaJ/kdzUWdnp5UWSZLk9Xo9Ho/H4/F6vS6Xa6L+TwMAAAAAzDhbtmzZtGmTYRhD9suy/M1vfvMb3/hGqRMr739UrKenZ8mSJYqi7Nu370Mf+pAo/aQ2IcQZZ5zx3HPPFdbEjHjNyndWeOiUK6n8RsVeffXVFStWDJl/JIS49NJLf/7zn/t8vvKnTyryo9kmn88nEglJkkr1zBdCWP8tWrERgREAAAAAoODAgQPf+973nn322ePHj5um2dLScvnll991111Lly4tc9ap5UdCiK9//ev33nvvFVdc8fTTTwsh/ud//mf37t0dHR0HDhzo7e01TbO2tnbp0qXXXHPNl7/85eKngU92fjTOSiq/0RDHjh3bsmXLk08+2dPT4/P5zjrrrBtuuOHWW291OByjnjupyI9mG1VVu7q6HA5HW1ub3bUAAAAAAIDZgI42M4ZhGLlcTlXVfD7v8/kCgcCIw9xudzgcdrvdpmkytwgAAAAAAIwf+dE0lc/nc7mcFRjlcrl8Pl+8ANU0zVL5kSRJjY2NU1UmAAAAAACY/ciPpgVd13Pvp2na8GFOp9Ptdrvdbr/fP/VFAgAAAACAuYn8yB66rieTyUJapOv68DGFtKjA9nZZAAAAAABgDiI/soeu6319fcV7hqRFHo9HlmW7ygMAAAAAACggP5oUyWQylUoFAoFwODziAJfLFQwGXS5XITAiLQIAAAAAANMT+dEpKv90s1wul0qlHA5HqfxIkqTm5uZJqw4AAAAAAGDCkB+NzjRNTdOsB6IVvubz+dbWVqdz5B9gIBBwOBxer3eKSwUAAAAAAJhwrJl6H9M0c7lcOp2ORqO9vb3Hjx8/evTooUOHjh49evz48b6+vlgslslk8vm8EML6OiKv11tdXU1+BAAAAACYQV599dWbbrqptbXV6/X6fL4PfOADq1ateuGFF+yuSwghyqwBEkL88pe//PSnP11fX+9yuZqamq699tpnnnlmyu4+F0imadpdg22sZ59Zk4msDU3TRhwpSZLb7Xa9h6ehAQAAAABmme985zs7d+78xje+cdlllzU2Nkaj0V/96lf33nvv/v37p0N0IEklE4xNmzY98cQTmzdvXr58udfrff311++9997//M//LF92mQuOc/CsNKdf/8mTJxOJxJCdsiwXQqJCYFRqnRoAAAAAALNAR0fHnXfe+d///d9D2vgahrFu3bpvf/vbdhVWUCrBeeqpp9rb2/fu3evz+Yr333PPPZs2bTqFC45/8Kw0a9ev6bre3d195MiRMmM8Ho/X6w2FQpFIpKmpacGCBW1tbYsXL164cGFzc3NtbW04HPb5fIRHAAAAAIDZ7dvf/vamTZuGPwNKluXi8Oixxx4777zzPB7PH/3RHz3wwAOF/ZIkPfTQQ+eff77X621sbLzxxhsHBgYqPOvCCy8MBoOFJT7Hjx9fs2ZNKBRqbW1tb29XFKV85ffff/+mTZuGhEdCiEJ4NOIFrfVo0nsKZ1Vy9507dy5ZssTtdi9ZsuSHP/xh8aFdu3a1tra63e7TTjtt586ds2nV28zLj3RdVxQllUrFYrF0Ol1qmMPhUFXV6ntdakx1dfWCBQuamppqa2tDoZDX62VJGgAAAABgDtq7d+9ll11WfsyLL7548803t7e39/X1/fu///vWrVuffPLJwtEtW7Zs3769v79///79hmHcddddlZy1efPmbdu29fb26rpu7Vm+fPkFF1xw4sSJX/3qV52dnZs3by5f1W9+85uLL764zIARL2hNJjLfU35wsUcfffTv//7vd+3aNTAwsGvXrnvuuefxxx+3Dv3Xf/3Xtm3bfvzjHw8ODv7zP//ztm3bylc+s0zT+VeFR55pmjZko7jgUCjU1NRU6iKZTMbhcLjd7tkU+AEAAAAAMOFcLlc2mx2y/qbwbtp6J/7xj3/8tttuu+6666ydL7300po1a15++WVr5GuvvXbeeedZh3p7e88888z+/v5Rz+ro6CiT/kSj0Q996EOHDh0SpVeQjVj5eC5YfvDy5cvXr19/zTXXWGMeffTRf/zHf7RajF9yySXt7e2f/vSnrUOPP/741VdfPT1Tl1Ngc35kPe+skBAVcqJSfawtTqfT6knk8/mqqqqmrFoAAAAAAGalhoaGN998s6GhYfihQnRSX19vRUIFDofDev8uSZKu67Isj/WsbDZb/OzywcHBv/3bv33iiSd6enpUVR0yeMQEo76+/q233qqrqxvxdY3pgpUMjkQihw4dqqmpsU6JRqOLFy8eHBy0Dh0+fLi6urpwKBKJzJr8yOb1a6qqdnV19fT09PX1RaPRVCqlKIr1u5Fl2e12BwKBqqqq2trapqamlpaW1tbWJUuWtLa2trS0NDU1ER4BAAAAADB+y5Yte/bZZ8uPSaVSyWTSLFI8+aM4PKr8rOLwSAhx0003aZr2i1/8IhaLmaaZSqUK69pKufDCCzs6OkodHdMFT+Huc8fkdobu7e1NJpN1dXWlgh5nEWtKkfXV6XTSiggAAAAAgKmxdu3aO++888orr4xEIqXGXHDBBa+++uqf/MmfjOnKYzqro6Oju7u7kCGMGmkJIdasWfNXf/VXV1111ZAW2t/85jf/5m/+pswFnU6nruvF4UMldz/jjDM6Ojo+85nPWN/++te/PvPMM63ts84664UXXiisX3vxxRcreMUzRqXzj3Rdz+VymUwmkUhEo9G+vr4TJ04cO3asu7u7/ImGYZRZjOZ0OltbWxcsWNDc3FxXV1ddXR0IBDweD+ERAAAAAABT5oorrrj55psvuOCCXbt2HTlyJJfLJZPJgwcP3nfffYUxmzdvXrduXUdHRyqVSqfTzz777Kc+9alRrzyms84555z77rtvcHAwFos9/PDDt95666jX/+QnP/mnf/qnF1988RNPPBGPxxVF+c1vfnPNNddYz18rc8GFCxc+88wzhmGM6e7r1q1bu3bt888/n0qlnn/++a9+9asbNmywDrW3t69du3bPnj3pdHrPnj1r164dtfgZ5A+L/XRd13W90H7I2i7sKbNgb8mSJaUaVFsnOp1OOlgDAAAAADDNdXR03H///S+++GJfX5/b7V60aNEnPvGJ1atX//Ef/7E14Ne//vXmzZv37dtnGMayZcs2bty4YsUKMVIvoeI9lZ919OjRu+66a8+ePYqifPCDH7z77rtvvvlma0z5dtdPPvnk/fffv2/fvng8Xltbu3z58jvvvHPFihVlLvjII4+sW7euq6tL13VrT4V337Fjx/bt2zs7OxctWrRhw4ZbbrmlUMbOnTu3bdvW09OzaNGiNWvWtLe3W32UZgHJNM2urq5cLjdqSydZlgsrywqLzhwOh9frJR4CAAAAAAAo2Lt376pVq9566y27C5kYTiGE1b9KCCFJUnEwNGS7VCssAAAAAAAA3HjjjRs2bGhra/vd7353++23r1q1yu6KJoxTCNHU1CRJksPhoOsQAAAAAADAqbniiitWrlx5+PDhRYsW3XLLLV/96lftrmjClFs9CAAAAAAAALAkDQAAAAAAAOWQHwEAAAAAAKAc8iMAAAAAAACUQ34EAAAAAACAcsiPAAAAAADAH3R2dnZ3d1vbqVTq6NGj1raqqgMDA0KIdDp97NixY8eOvfvuu8UnFg8eGBg4ePBgmSsXb2P64/lrAAAAAADg/z322GO//e1vBwcHW1tbr7vuuq997WvnnHOOx+O5+uqr77vvvr6+vt27d7/yyiu/+MUvstnsyy+//NRTT1knnjhxojD40ksv3bJly0UXXXTo0KEdO3YMv/KiRYsK23fddZd9LxeVIj8CAAAAAADvk0gk7rjjjosuumjp0qWXXXbZ5z73uUceeUQIcc011+zevdsa87Of/czpdK5cudL69nvf+15h8OrVq995550bbrjhK1/5yr/9278Nv/KDDz44ZBvTHOvXAAAAAADAH5im2d7evn79+r6+vvr6+lLDHn300c9+9rOHDx9+5ZVXstls8eDzzz9/7969a9euveqqqwoDiq88ZBvTH/kRAAAAAAD4g3Xr1n3+858/99xz58+f39PTI4SQJGnImHfeeaelpcXr9fb09Bw8eFBRlOLBDzzwwNe+9rUHH3zwkUceKQwovvKQbUx/jr/7u7+zuwYAAAAAADAt7Nq16+GHH06n02+//fbKlSvvueeeF1544eKLL160aNH69etfeOGFbDb7sY99bPv27ddff31zc/PChQvPPvtsn8/X2tpaGLxs2bLt27e//vrrgUDgtttuswYUX/m3v/1tYXvZsmV2v2iMjv5HAAAAAABgZKZpKori8/nGOljTtGw2GwqFJrlATJH/A2wGHHe4IBW1AAAAAElFTkSuQmCC</File>
        <File Location="Kernel/Config/Files/XML/GeneralCatalog.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPG90b2JvX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkZyYW1ld29yayI+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWRtaW5HZW5lcmFsQ2F0YWxvZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgQWRtaW5HZW5lcmFsQ2F0YWxvZyBjb25maWd1cmF0aW9uIGluIHRoZSBhZG1pbiBhcmVhLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkFkbWluLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkdlbmVyYWwgQ2F0YWxvZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZG1pbkdlbmVyYWxDYXRhbG9nIyMjMDAxLUdlbmVyYWxDYXRhbG9nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uR2VuZXJhbENhdGFsb2cuSlNDb2xvclBpY2tlci5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5HZW5lcmFsQ2F0YWxvZy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWRtaW5HZW5lcmFsQ2F0YWxvZyMjIzAwMS1HZW5lcmFsQ2F0YWxvZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uTW9kdWxlIyMjQWRtaW5HZW5lcmFsQ2F0YWxvZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BZG1pbiBhcmVhIG5hdmlnYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6QWRtaW5PdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6TmF2QmFyOjpNb2R1bGVBZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5HZW5lcmFsIENhdGFsb2c8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5BZG1pbmlzdHJhdGlvbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+Q3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikljb25CaWciPmZhLWJvb2s8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikljb25TbWFsbCI+PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkdlbmVyYWxDYXRhbG9nOjpGcm9udGVuZDo6SlNDb2xvclBpY2tlclBhdGgiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSIgQ29uZmlnTGV2ZWw9IjIwMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgVVJMIEpTIENvbG9yIFBpY2tlciBwYXRoLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkJhc2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iIj4mbHQ7T1RPQk9fQ09ORklHX0Zyb250ZW5kOjpXZWJQYXRoJmd0O2pzL3RoaXJkcGFydHkvanNjb2xvcl8xLjQuMS88L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkdlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXMjIyNDb21tZW50MiIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5QYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBjb21tZW50IDIgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6R2VuZXJhbENhdGFsb2c8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6R2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlczo6R2VuZXJpYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGFiZWwiIFRyYW5zbGF0YWJsZT0iMSI+Q29tbWVudCAyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjIiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZSB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNvbW1lbnQgMi48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5UZXh0QXJlYTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ29scyI+NTA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJvd3MiPjU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByZWZLZXkiPkNvbW1lbnQyPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkdlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXMjIyNQZXJtaXNzaW9ucyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5QYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpHZW5lcmFsQ2F0YWxvZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzOjpHZW5lcmljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMYWJlbCIgVHJhbnNsYXRhYmxlPSIxIj5QZXJtaXNzaW9uIEdyb3VwPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSI+MTA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5QZXJtaXNzaW9uPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDbGFzcyI+SVRTTTo6Q29uZmlnSXRlbTo6Q2xhc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByZWZLZXkiPlBlcm1pc3Npb248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1hbmRhdG9yeSIgVmFsdWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6OkFnZW50OjpDb21tb25KUyMjIzEwMC1HZW5lcmFsQ2F0YWxvZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MaXN0IG9mIEpTIGZpbGVzIHRvIGFsd2F5cyBiZSBsb2FkZWQgZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QmFzZTo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+dGhpcmRwYXJ0eS9qc2NvbG9yXzEuNC4xL2pzY29sb3IuanM8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KCiAgICA8IS0tIER5bmFtaWNGaWVsZCBHZW5lcmFsQ2F0YWxvZyAtLT4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUk8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5BZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZyMjIzAwMi1UaWNrZXQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LkFkbWluLkR5bmFtaWNGaWVsZC5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LkFkbWluLkR5bmFtaWNGaWVsZC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5BZ2VudC5BZG1pbi5TeXNDb25maWcuRW50aXR5LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRHluYW1pY0ZpZWxkczo6RHJpdmVyIyMjR2VuZXJhbENhdGFsb2ciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pY0ZpZWxkIGJhY2tlbmQgcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RHluYW1pY0ZpZWxkczo6RHJpdmVyUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRpc3BsYXlOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkdlbmVyYWxDYXRhbG9nPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6R2VuZXJhbENhdGFsb2c8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNvbmZpZ0RpYWxvZyI+QWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZzwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+Cjwvb3RvYm9fY29uZmlnPgo=</File>
        <File Location="Kernel/Language/ar_SA_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmFyX1NBX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/bg_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmJnX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICfQpNGD0L3QutGG0LjQvtC90LDQu9C90L7RgdGCJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgaXRlbXMgYnkgY2xhc3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQnfSA9ICfQo9C/0YDQsNCy0LvQtdC90LjQtSDQvdCwINC+0YHQvdC+0LLQvdC40Y8g0LrQsNGC0LDQu9C+0LMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICfQldC70LXQvNC10L3RgtC4INCyINC60LvQsNGB0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAn0KDQtdC00LDQutGC0LjRgNCw0L3QtSDQvdCwINC10LvQtdC80LXQvdGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDbGFzcyd9ID0gJ9CU0L7QsdCw0LLRj9C90LUg0L3QsCDQutC70LDRgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgSXRlbSd9ID0gJ9CU0L7QsdCw0LLQtdGC0LUg0LXQu9C10LzQtdC90YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnZhbGlkIGl0ZW1zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIEl0ZW0nfSA9ICfQlNC+0LHQsNCy0Lgg0LXQu9C10LzQtdC90YIg0LrRitC8INC60LDRgtCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICfQlNC+0LHQsNCy0Lgg0LrQu9Cw0YEg0LIg0LrQsNGC0LDQu9C+0LPQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAn0JrQu9Cw0YHQvtCy0LUg0LIg0LrQsNGC0LDQu9C+0LPQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGFsb2cgSXRlbSd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQtdC70LXQvNC10L3RgiDQvtGCINC60LDRgtCw0LvQvtCz0LAnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJ9Ch0YrRgdGC0L7Rj9C90LjQtdGC0L4g0L3QsCDQuNC90YbQuNC00LXQvdGCINGBINC/0YDQtdC00YPQv9GA0LXQttC00LXQvdC40LUg0L3QtSDQvNC+0LbQtSDQtNCwINCx0YrQtNC1INC30LDQtNCw0LTQtdC90L4g0LrQsNGC0L4g0L3QtdCy0LDQu9C40LTQvdC+Lic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJ9Ca0L7QvNC10L3RgtCw0YAgMic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJ9Ch0YrQt9C00LDQstCw0L3QtSDQuCDQv9C+0LTQtNGA0YrQttC60LAg0L3QsCDQntGB0L3QvtCy0L3QuNGPINC60LDRgtCw0LvQvtCzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAn0JTQtdGE0LjQvdC40YDQsNC50YLQtSDQutC+0LzQtdC90YLQsNGAIDIg0LrRitC8INC+0LHRidC40Y8g0LrQsNGC0LDQu9C+0LMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICfQntC/0YDQtdC00LXQu9GPINC/0YrRgtGPINC90LAgVVJMIEpTIENvbG9yIFBpY2tlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ9Cg0LXQs9C40YHRgtGA0LDRhtC40Y8g0L3QsCDQv9GA0LXQtNC90LjRjyDQvNC+0LTRg9C7INC30LAg0LrQvtC90YTQuNCz0YPRgNCw0YbQuNGP0YLQsCDQvdCwINCQ0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0YHQutC40Y8g0J7RgdC90L7QstC10L0g0LrQsNGC0LDQu9C+0LMg0LIg0JDQtNC80LjQvdC40YHRgtGA0LDRgtC40LLQvdCw0YLQsCDRh9Cw0YHRgi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAn0J7RgdC90L7QstC10L0g0LrQsNGC0LDQu9C+0LMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ9Cf0LDRgNCw0LzQtdGC0YDQuCDQvdCwINC/0YDQuNC80LXRgNC90LjRjyDQutC+0LzQtdC90YLQsNGAIDIg0L3QsCDQsNGC0YDQuNCx0YPRgtC40YLQtSDQvdCwINC+0LHRidC40Y8g0LrQsNGC0LDQu9C+0LMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIHBlcm1pc3Npb24gZ3JvdXBzIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ9Cf0LDRgNCw0LzQtdGC0YDQuCDQt9CwINC/0YDQuNC80LXRgNC90LjRgtC1INGA0LDQt9GA0LXRiNC40YLQtdC70L3QuCDQs9GA0YPQv9C4INC+0YIg0LDRgtGA0LjQsdGD0YLQuNGC0LUg0L3QsCDQvtCx0YnQuNGPINC60LDRgtCw0LvQvtCzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAn0JPRgNGD0L/QsCDRgNCw0LfRgNC10YjQtdC90LjRjyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/ca_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmNhX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/cs_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmNzX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5rY2lvbmFsaXRhJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgaXRlbXMgYnkgY2xhc3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQnfSA9ICdTcHLDoXZhIEhsYXZuw61obyBLYXRhbG9ndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnUMWZaWRhdCBwb2xvxb5rdSBLYXRhbG9ndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ1DFmWlkYXQgdMWZw61kdSBLYXRhbG9ndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnVMWZw61keSBLYXRhbG9ndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGFsb2cgSXRlbSd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAnVnl0dm/FmWl0IGEgc3ByYXZvdmF0IGhsYXZuw60ga2F0YWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ0Zyb250ZW5kb3bDoSByZWdpc3RyYWNlIG1vZHVsdSBwcm8ga29uZmlndXJhY2kgaGxhdm7DrWhvIGthdGFsb2d1IHYgYWRtaW5pc3RyYXRpdm7DrSBvYmxhc3RpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICdIbGF2bsOtIEthdGFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1DFmcOta2xhZCBwYXJhbWV0csWvIHBybyBrb21lbnTDocWZIDIgb2JlY27DvWNoIGF0cmlidXTFryBrYXRhbG9ndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXJhbWV0cnkgc2t1cGlueSBwcm8gcMWZw61rbGFkIG9wcsOhdm7Em27DrSBvYmVjbsO9Y2ggYXRyaWJ1dMWvIGthdGFsb2d1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Blcm1pc3Npb24gR3JvdXAnfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ1dhcm5pbmcnLAogICAgJ1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/da_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRhX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5rdGlvbmFsaXRldCc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAnR2VuZXJhbCBLYXRhbG9nIE1hbmFnZW1lbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgSXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludmFsaWQgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgSXRlbSd9ID0gJ1RpbGbDuGoga2F0YWxvZyBwb3N0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnVGlsZsO4aiBLYXRhbG9nIGtsYXNzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnS2F0YWxvZyBLbGFzc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICdSZWRpZ2VyIGVuaGVkIGkga2F0YWxvZ2V0JzsKCiAgICAjIEpTIEZpbGU6IElUU00uR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50IDInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICdPcHJldCBvZyBow6VuZHRlciBzdGFuZGFyZCBrYXRhbG9nZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgRmllbGRzIEdlbmVyYWxDYXRhbG9nIEJhY2tlbmQgR1VJJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBBZG1pbkdlbmVyYWxDYXRhbG9nIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGFkbWluIGFyZWEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAnR2VuZXJhbCBLYXRhbG9nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Blcm1pc3Npb24gR3JvdXAnfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ1dhcm5pbmcnLAogICAgJ1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/de_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRlX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5rdGlvbmFsaXTDpHQnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnVmVyd2FsdGVuIGRlciBHZW5lcmFsIENhdGFsb2ctS2xhc3NlLic7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQnfSA9ICdWZXJ3YWx0dW5nIGRlcyBHZW5lcmFsIENhdGFsb2dzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0l0ZW1zIGluIENsYXNzJ30gPSAnRWxlbWVudGUgaW4gS2xhc3NlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSXRlbSd9ID0gJ0VsZW1lbnQgw6RuZGVybic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2xhc3MnfSA9ICdLbGFzc2UgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEl0ZW0nfSA9ICdFbGVtZW50IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnS2F0YWxvZ2VsZW1lbnQgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICdLYXRhbG9na2xhc3NlIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdLYXRhbG9na2xhc3NlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnS2F0YWxvZ2VsZW1lbnQgYmVhcmJlaXRlbic7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnRGVyIFN0YXR1cyBkZXMgV2FybnZvcmZhbGxzIGthbm4gbmljaHQgYXVmIHVuZ8O8bHRpZyBnZXNldHp0IHdlcmRlbi4nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50IDInfSA9ICdLb21tZW50YXIgMic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJ0dlbmVyYWwgQ2F0YWxvZyBlcnN0ZWxsZW4gdW5kIHZlcndhbHRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJ0tvbW1lbnRhciAyIGbDvHIgZGVuIEdlbmVyYWwgQ2F0YWxvZyBmZXN0bGVnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICdEZWZpbmllcnQgZGllIFVSTCBkZXMgSlMtRmFyYnfDpGhsZXItUGZhZHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgRmllbGRzIEdlbmVyYWxDYXRhbG9nIEJhY2tlbmQgR1VJJ30gPSAnQmFja2VuZC1HVUkgZsO8ciBkZW4gRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ1JlZ2lzdHJpZXJ1bmcgZGVzIEZyb250ZW5kLU1vZHVscyBmw7xyIGRpZSBLb25maWd1cmF0aW9uIHZvbiBBZG1pbkdlbmVyYWxDYXRhbG9nIGltIEFkbWluLUJlcmVpY2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyd9ID0gJ0dlbmVyYWwgS2F0YWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsQ2F0YWxvZyd9ID0gJ0dlbmVyYWxDYXRhbG9nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXJhbWV0ZXIgZsO8ciBkZW4gQmVpc3BpZWwtS29tbWVudGFyIDIgZGVyIEdlbmVyYWwgQ2F0YWxvZy1BdHRyaWJ1dGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIHBlcm1pc3Npb24gZ3JvdXBzIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1BhcmFtZXRlciBmw7xyIGRpZSB6dWdyaWZmc2JlcmVjaHRpZ3RlbiBCZWlzcGllbGdydXBwZW4gZGVyIEdlbmVyYWwgQ2F0YWxvZy1BdHRyaWJ1dGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Blcm1pc3Npb24gR3JvdXAnfSA9ICdCZXJlY2h0aWd1bmdzZ3J1cHBlJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/el_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVsX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/en_CA_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVuX0NBX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/en_GB_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVuX0dCX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5jdGlvbmFsaXR5JzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgaXRlbXMgYnkgY2xhc3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQnfSA9ICdHZW5lcmFsIENhdGFsb2d1ZSBNYW5hZ2VtZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0l0ZW1zIGluIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnZhbGlkIGl0ZW1zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIEl0ZW0nfSA9ICdBZGQgQ2F0YWxvZ3VlIEl0ZW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICdBZGQgQ2F0YWxvZ3VlIENsYXNzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdDYXRhbG9nIENsYXNzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnRWRpdCBDYXRhbG9ndWUgSXRlbSc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZ3VlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICdEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3VyIFBpY2tlciBwYXRoLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIEZpZWxkcyBHZW5lcmFsQ2F0YWxvZyBCYWNrZW5kIEdVSSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgQWRtaW5HZW5lcmFsQ2F0YWxvZyBjb25maWd1cmF0aW9uIGluIHRoZSBhZG1pbiBhcmVhLid9ID0KICAgICAgICAnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2d1ZSBjb25maWd1cmF0aW9uIGluIHRoZSBhZG1pbiBhcmVhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICdHZW5lcmFsIENhdGFsb2d1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsQ2F0YWxvZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBjb21tZW50IDIgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2d1ZSBhdHRyaWJ1dGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9ndWUgYXR0cmlidXRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/es_CO_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX0NPX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/es_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5jaW9uYWxpZGFkJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgaXRlbXMgYnkgY2xhc3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQnfSA9ICdHZXN0acOzbiBkZWwgQ2F0w6Fsb2dvIEdlbmVyYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICdJdGVtcyBlbiBDbGFzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICdFZGl0YXIgZWxlbWVudG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnQcOxYWRpciBDbGFzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgSXRlbSd9ID0gJ0HDsWFkaXIgZWxlbWVudG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnZhbGlkIGl0ZW1zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIEl0ZW0nfSA9ICdBw7FhZGlyIEVsZW1lbnRvIGFsIENhdMOhbG9nbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ0HDsWFkaXIgQ2xhc2UgYWwgQ2F0w6Fsb2dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdDbGFzZSBkZSBDYXTDoWxvZ28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICdFZGl0YXIgRWxlbWVudG8gZGVsIENhdMOhbG9nbyc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnRWwgZXN0YWRvIGRlbCBpbmNpZGVudGUgZGUgYWR2ZXJ0ZW5jaWEgbm8gc2UgcHVlZGUgZXN0YWJsZWNlciBjb21vIG5vIHbDoWxpZG8uJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnQ29tZW50YXJpbyAyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAnQ3JlYSB5IGdlc3Rpb25hIGVsIENhdMOhbG9nbyBHZW5lcmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNvbW1lbnQgMi4nfSA9ICdEZWZpbmlyIGVsIGNvbWVudGFyaW8gMiBkZWwgY2F0w6Fsb2dvIGdlbmVyYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICdEZWZpbmUgbGEgcnV0YSBVUkwgSlMgZGVsIHNlbGVjdG9yIGRlIGNvbG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgRmllbGRzIEdlbmVyYWxDYXRhbG9nIEJhY2tlbmQgR1VJJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBBZG1pbkdlbmVyYWxDYXRhbG9nIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGFkbWluIGFyZWEuJ30gPQogICAgICAgICdFbCBGcm9udGVuZCBkZWwgcmVnaXN0cm8gZGVsIG3Ds2R1bG8gcGFyYSBsYSBjb25maWd1cmFjacOzbiBkZWwgQWRtaW5HZW5lcmFsQ2F0YWxvZyBlbiBlbCDDoXJlYSBhZG1pbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICdDYXTDoWxvZ28gR2VuZXJhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsQ2F0YWxvZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBjb21tZW50IDIgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnUGFyw6FtZXRyb3MgcGFyYSBlbCBlamVtcGxvIGNvbWVudGFyaW8gMiBkZSBsb3MgYXRyaWJ1dG9zIGRlbCBjYXTDoWxvZ28gZ2VuZXJhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnUGFyw6FtZXRyb3MgcGFyYSBsb3MgcGVybWlzb3MgZGUgZWplbXBsbyBkZSBsb3MgYXRyaWJ1dG9zIGRlbCBjYXTDoWxvZ28gZ2VuZXJhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJ0dydXBvIGRlIHBlcm1pc29zJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/es_MX_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX01YX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5jaW9uYWxpZGFkJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgaXRlbXMgYnkgY2xhc3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQnfSA9ICdBZG1pbmlzdHJhY2nDs24gZGVsIENhdMOhbG9nbyBHZW5lcmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0l0ZW1zIGluIENsYXNzJ30gPSAnQXJ0w61jdWxvcyBlbiBjbGFzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICdFZGl0YXIgYXJ0w61jdWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDbGFzcyd9ID0gJ0FncmVnYXIgY2xhc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEl0ZW0nfSA9ICdBZ3JlZ2FyIGFydMOtY3Vsbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludmFsaWQgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgSXRlbSd9ID0gJ0HDsWFkaXIgYXJ0w61jdWxvIGRlbCBjYXTDoWxvZ28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICdBw7FhZGlyIGNsYXNlIGRlbCBjYXTDoWxvZ28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0NhdMOhbG9nbyBkZSBjbGFzZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICdFZGl0YXIgYXJ0w61jdWxvIGRlbCBjYXTDoWxvZ28nOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJ0FkdmVydGVuY2lhIEVsIGVzdGFkbyBkZWwgaW5jaWRlbnRlIG5vIHNlIHB1ZWRlIGVzdGFibGVjZXIgY29tbyBpbnbDoWxpZG8uJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnQ29tZW50YXJpbyAyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAnQ3JlYXIgeSBhZG1pbmlzdHJhciBlbCBDYXTDoWxvZ28gR2VuZXJhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJ0RlZmluaXIgZWwgY29tZW50YXJpbyAyIGRlbCBjYXTDoWxvZ28gZ2VuZXJhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgVVJMIEpTIENvbG9yIFBpY2tlciBwYXRoLid9ID0gJ0RlZmluZSBsYSBVUkwgcGFyYSBlbCBTZWxlY3RvciBkZSBDb2xvciBKUy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ1JlZ2lzdHJvIGRlbCBtw7NkdWxvIGRlIEZyb250ZW5kIHBhcmEgbGEgYWRtaW5pc3RyYWNpw7NuIGRlbCBjYXTDoWxvZ28gZ2VuZXJhbCBlbiBlbCDDoXJlYSBkZSBhZG1pbmlzdHJhY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyd9ID0gJ0NhdMOhbG9nbyBHZW5lcmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXLDoW1ldHJvcyBwYXJhIGVsIGNvbWVudGFyaW8gZGUgZWplbXBsbyAyIGRlbCBjYXTDoWxvZ28gZ2VuZXJhbCBkZSBhdHJpYnV0b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIHBlcm1pc3Npb24gZ3JvdXBzIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1BhcsOhbWV0cm9zIHBhcmEgZWwgZWplbXBsbyBkZSBwZXJtaXNvcyBkZSBncnVwbyBkZWwgY2F0w6Fsb2dvIGdlbmVyYWwgZGUgYXRyaWJ1dG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnUGVybWlzb3MgZGUgZ3J1cG8nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ1dhcm5pbmcnLAogICAgJ1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/et_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmV0X0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/fa_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmZhX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICfaqdin2LHaqdix2K/bjCc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAn2YXYr9uM2LHbjNiqINmB2YfYsdiz2Kog2LnZhdmI2YXbjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAn2KfYttin2YHZhyDaqdix2K/ZhiDbjNqpINmC2YTZhSDZgdmH2LHYs9iqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAn2KfYttin2YHZhyDaqdix2K/ZhiDaqdmE2KfYsyDZgdmH2LHYs9iq24wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ9mB2YfYsdiz2Kog2qnZhNin2LPbjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGFsb2cgSXRlbSd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAn2LPYp9iu2Kog2Ygg2YXYr9uM2LHbjNiqINmB2YfYsdiz2Kog2LnZhdmI2YXbjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ9ir2KjYqiDZhdin2pjZiNmEINio2LHYp9uMINm+24zaqdix2KjZhtiv24wg2YHZh9ix2LPYqiDYudmF2YjZhduMINiv2LEg2KjYrti0INmF2K/bjNix24zYqic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICfZgdmH2LHYs9iqINi52YXZiNmF24wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ9m+2KfYsdin2YXYqtix2YfYp9uM24wg2KjYsdin24wg2KrZiNi224zYrSDZhtmF2YjZhtmHINuyINmF2LHYqNmI2Lcg2KjZhyDZiNuM2pjar9uM4oCM2YfYp9uMINmB2YfYsdiz2Kog2LnZhdmI2YXbjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICfZvtin2LHYp9mF2KrYsdmH2KfbjNuMINio2LHYp9uMINqv2LHZiNmH4oCM2YfYp9uMINiv2LPYqtix2LPbjCDZhtmF2YjZhtmHINmF2LHYqNmI2Lcg2KjZhyDZiNuM2pjar9uM4oCM2YfYp9uMINmB2YfYsdiz2Kog2LnZhdmI2YXbjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/fi_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmZpX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/fr_CA_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmZyX0NBX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/fr_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmZyX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGb25jdGlvbm5hbGl0w6knOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJ0dlc3Rpb24gZHUgY2F0YWxvZ3VlIGfDqW7DqXJhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJ8OJbMOpbWVudHMgZGFucyBsYSBjbGFzc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAnw4lkaXRlciB1biDDqWzDqW1lbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnQWpvdXRlciB1bmUgY2xhc3NlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnQWpvdXRlciB1biDDqWzDqW1lbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnZhbGlkIGl0ZW1zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIEl0ZW0nfSA9ICdBam91dGVyIHVuIMOpbMOpbWVudCBhdSBjYXRhbG9ndWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICdBam91dGVyIHVuZSBjbGFzc2UgYXUgY2F0YWxvZ3VlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdDbGFzc2UgZGUgY2F0YWxvZ3VlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnw4lkaXRlciB1biDDqWzDqW1lbnQgZHUgY2F0YWxvZ3VlJzsKCiAgICAjIEpTIEZpbGU6IElUU00uR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50IDInfSA9ICdDb21tZW50YWlyZSAyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAnQ3LDqWVyIGV0IGfDqXJlciBsZSBjYXRhbG9ndWUgZ8OpbsOpcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnRMOpZmluaXIgbGUgY29tbWVudGFpcmUgMiBkdSBjYXRhbG9ndWUgZ8OpbsOpcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAnRMOpZmluaXQgbFwnVVJMIGR1IGNoZW1pbiAiSlMgQ29sb3IgUGlja2VyIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ0ludGVyZmFjZSBkXCdlbnJlZ2lzdHJlbWVudCBkZSBtb2R1bGUgcG91ciBsYSBjb25maWd1cmF0aW9uIGR1IGNhdGFsb2d1ZSBnw6luw6lyYWwgZGFucyBsYSB6b25lIGFkbWluaXN0cmF0ZXVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyd9ID0gJ0NhdGFsb2d1ZSBnw6luw6lyYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1BhcmFtw6h0cmVzIHBvdXIgbFwnZXhlbXBsZSBkdSBjb21tZW50YWlyZSAyIGRlcyBhdHRyaWJ1dHMgZHUgY2F0YWxvZ3VlIGfDqW7DqXJhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXJhbcOodHJlcyBwb3VyIGxcJ2V4ZW1wbGUgZGVzIHBlcm1pc3Npb25zIGRlIGdyb3VwZXMgZGVzIGF0dHJpYnV0cyBkdSBjYXRhbG9ndWUgZ8OpbsOpcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/gl_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmdsX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5jaW9uYWxpZGFkZSc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAnWGVzdGnDs24gZG8gQ2F0w6Fsb2dvIFhlcmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0l0ZW1zIGluIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnZhbGlkIGl0ZW1zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIEl0ZW0nfSA9ICdFbmdhZGlyIHVuIGVsZW1lbnRvIGFvIGNhdMOhbG9nbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ0VuZ2FkaXIgdW5oYSBjbGFzZSBhbyBjYXTDoWxvZ28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0NsYXNlIGRvIGNhdMOhbG9nbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGFsb2cgSXRlbSd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAnQ3JlYXIgZSB4ZXN0aW9uYXIgbyBDYXTDoWxvZ28gWGVyYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgRmllbGRzIEdlbmVyYWxDYXRhbG9nIEJhY2tlbmQgR1VJJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBBZG1pbkdlbmVyYWxDYXRhbG9nIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGFkbWluIGFyZWEuJ30gPQogICAgICAgICdSZXhpc3RybyBubyBtw7NkdWxvIGRlIGludGVyZmFjZSBwYXJhIGEgY29uZmlndXJhY2nDs24gZGUgQWRtaW5HZW5lcmFsQ2F0YWxvZyBuYSDDoXJlYSBhZG1pbmlzdHJhdGl2YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAnQ2F0w6Fsb2dvIFhlcmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXLDoW1ldHJvcyBwYXJhIG8gY29tZW50YXJpbyBkZSBleGVtcGxvIDIgZG9zIGF0cmlidXRvcyBkbyBjYXTDoWxvZ28geGVyYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIHBlcm1pc3Npb24gZ3JvdXBzIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1BhcsOhbWV0cm9zIHBhcmEgb3MgZ3J1cG9zIGRlIHBlcm1pc29zIGRlIGV4ZW1wbG8gZG9zIGF0cmlidXRvcyBkbyBjYXTDoWxvZ28geGVyYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Blcm1pc3Npb24gR3JvdXAnfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ1dhcm5pbmcnLAogICAgJ1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/he_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmhlX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICfXpNeV16DXp9em15nXldeg15zXmSc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAn16DXmdeU15XXnCDXp9eY15zXldeSINeb15zXnNeZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0l0ZW1zIGluIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnZhbGlkIGl0ZW1zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIEl0ZW0nfSA9ICfXlNeV16HXoyDXpNeo15nXmCDXnNen15jXnNeV15InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGFsb2cgSXRlbSd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAn15nXpteZ16jXlCDXldeg15nXlNeV15wg16nXnCDXlNen15jXnNeV15Ig15TXm9ec15zXmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICfXoNeZ15TXldecINen15jXnNeV15InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/hi_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmhpX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/hr_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmhyX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5jaW9uYWxub3N0JzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgaXRlbXMgYnkgY2xhc3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQnfSA9ICdPcMSHZSBwb3N0YXZrZSBLYXRhbG9nYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnRG9kYWogc3Rhdmt1IHUgS2F0YWxvZ3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICdEb2RhaiBrbGFzdSB1IEthdGFsb2d1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdLYXRhbG/FoWthIGtsYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IElUU00uR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50IDInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICdOYXByYXZpIGkgcG9kZXNpIE9wxIdpIGthdGFsb2cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNvbW1lbnQgMi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgVVJMIEpTIENvbG9yIFBpY2tlciBwYXRoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIEZpZWxkcyBHZW5lcmFsQ2F0YWxvZyBCYWNrZW5kIEdVSSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgQWRtaW5HZW5lcmFsQ2F0YWxvZyBjb25maWd1cmF0aW9uIGluIHRoZSBhZG1pbiBhcmVhLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyd9ID0gJ09wxIdpIGthdGFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/hu_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Omh1X0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5rY2lvbmFsaXTDoXMnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJ8OBbHRhbMOhbm9zIGthdGFsw7NndXMga2V6ZWzDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICdFbGVtZWsgYXogb3N6dMOhbHliYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAnRWxlbSBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDbGFzcyd9ID0gJ09zenTDoWx5IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgSXRlbSd9ID0gJ0VsZW0gaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnS2F0YWzDs2d1c2VsZW0gaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnS2F0YWzDs2d1c29zenTDoWx5IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnS2F0YWzDs2d1c29zenTDoWx5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnS2F0YWzDs2d1c2VsZW0gc3plcmtlc3p0w6lzZSc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnQSBmaWd5ZWxtZXp0ZXTDqXMgaW5jaWRlbnPDoWxsYXBvdG90IG5lbSBsZWhldCDDqXJ2w6lueXRlbGVucmUgw6FsbMOtdGFuaS4nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50IDInfSA9ICcyLiBtZWdqZWd5esOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJ0F6IMOhbHRhbMOhbm9zIGthdGFsw7NndXMgbMOpdHJlaG96w6FzYSDDqXMga2V6ZWzDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnTWVnaGF0w6Fyb3p6YSBheiDDoWx0YWzDoW5vcyBrYXRhbMOzZ3VzIDIuIG1lZ2plZ3l6w6lzw6l0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAnTWVnaGF0w6Fyb3p6YSBhIEpTIHN6w61udsOhbGFzenTDsyDDunR2b25hbMOhbmFrIFVSTC3DqXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgRmllbGRzIEdlbmVyYWxDYXRhbG9nIEJhY2tlbmQgR1VJJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBBZG1pbkdlbmVyYWxDYXRhbG9nIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGFkbWluIGFyZWEuJ30gPQogICAgICAgICdFbMWRdMOpdHByb2dyYW0gbW9kdWwgcmVnaXN6dHLDoWNpw7MgYXogYWRtaW5pc3p0csOhY2nDs3MgdGVyw7xsZXRlbiBsw6l2xZEgw6FsdGFsw6Fub3Mga2F0YWzDs2d1cyBiZcOhbGzDrXTDoXNob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyd9ID0gJ8OBbHRhbMOhbm9zIGthdGFsw7NndXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1BhcmFtw6l0ZXJlayBheiDDoWx0YWzDoW5vcyBrYXRhbMOzZ3VzIGF0dHJpYsO6dHVtYWluYWsgMi4gcMOpbGRhIG1lZ2plZ3l6w6lzZWloZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIHBlcm1pc3Npb24gZ3JvdXBzIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1BhcmFtw6l0ZXJlayBheiDDoWx0YWzDoW5vcyBrYXRhbMOzZ3VzIGF0dHJpYsO6dHVtYWluYWsgcMOpbGRhIGpvZ29zdWx0c8OhZyBjc29wb3J0amFpaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnSm9nb3N1bHRzw6FnaSBjc29wb3J0JzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/id_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmlkX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5nc2lvbmFsaXRhcyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAnTWFuYWplbWVuIEthdGFsb2cgVW11bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnVGFtYmFoIEl0ZW0gS2F0YWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ1RhbWJhaCBLZWxhcyBLYXRhbG9nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdLZWxhcyBLYXRhbG9nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IElUU00uR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50IDInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICdCdWF0IGRhbiBrZWxvbGEgS2F0YWxvZyBVbXVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNvbW1lbnQgMi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgVVJMIEpTIENvbG9yIFBpY2tlciBwYXRoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIEZpZWxkcyBHZW5lcmFsQ2F0YWxvZyBCYWNrZW5kIEdVSSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgQWRtaW5HZW5lcmFsQ2F0YWxvZyBjb25maWd1cmF0aW9uIGluIHRoZSBhZG1pbiBhcmVhLid9ID0KICAgICAgICAnUmVnaXN0cmFzaSBtb2R1bCBmcm9udGVuZCB1bnR1ayBwZW5nYXR1cmFuIEFkbWluS2F0YWxvZ1VtdW0gZGkgYXJlYSBhZG1pbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAnS2F0YWxvZyBVbXVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXJhbWV0ZXIgdW50dWsgMiBjb250b2gga29tZW50YXIgZGFyaSBhdHJpYnV0IGthdGFsb2cgdW11bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnUGFyYW1ldGVyIHVudHVrIGdydXAgY29ub3RoIHBlcml6aW5hbiBkYXJpIGF0cmlidXQga2F0YWxvZyB1bXVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/it_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Oml0X0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW56aW9uYWxpdMOgJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgaXRlbXMgYnkgY2xhc3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQnfSA9ICdHZXN0aW9uZSBkZWwgQ2F0YWxvZ28gR2VuZXJhbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICdFbGVtZW50aSBuZWxsYSBDbGFzc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAnTW9kaWZpY2EgRWxlbWVudG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnQWdnaXVuZ2kgQ2xhc3NlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnQWdnaXVuZ2kgRWxlbWVudG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnZhbGlkIGl0ZW1zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIEl0ZW0nfSA9ICdBZ2dpdW5naSBFbGVtZW50byBhbCBDYXRhbG9nbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ0FnZ2l1bmdpIENsYXNzZSBhbCBDYXRhbG9nbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnQ2xhc3NlIGRpIENhdGFsb2dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnTW9kaWZpY2EgZWxlbWVudG8gZGkgY2F0YWxvZ28nOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJ0xvIHN0YXRvIGRlbGxcJ2luY2lkZW50ZSBkaSBhdnZpc28gbm9uIHB1w7IgZXNzZXJlIGltcG9zdGF0byBzdSBub24gdmFsaWRvLic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJ0NvbW1lbnRvIDInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICdDcmVhIGUgZ2VzdGlzY2kgaWwgQ2F0YWxvZ28gR2VuZXJhbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJ0RlZmluaXNjaSBpbCBjb21tZW50byAyIGRlbCBjYXRhbG9nbyBnZW5lcmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAnU3BlY2lmaWNhIGlsIHBlcmNvcnNvIGRlbGxcJ1VSTCBkZWwgc2VsZXR0b3JlIGRpIGNvbG9yaSBKUy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ01vZHVsbyBkaSByZWdpc3RyYXppb25lIHBlciBsYSBjb25maWd1cmF6aW9uZSBkaSBBZG1pbkdlbmVyYWxDYXRhbG9nIG5lbGxcJ2FyZWEgZGkgYWRtaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyd9ID0gJ0NhdGFsb2dvIEdlbmVyYWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXJhbWV0cmkgcGVyIGlsIGNvbW1lbnRvIGRpIGVzZW1waW8gMiBkZWdsaSBhdHRyaWJ1dGkgZGVsIGNhdGFsb2dvIGdlbmVyYWxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXJhbWV0cmkgcGVyIGkgZ3J1cHBpIGRpIHBlcm1lc3NpIGRpIGVzZW1waW8gZGVnbGkgYXR0cmlidXRpIGRlbCBjYXRhbG9nbyBnZW5lcmFsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJ0dydXBwbyBkaSBhdXRvcml6emF6aW9uaSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/ja_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmphX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICfmqZ/og73mgKcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJ+OCuOOCp+ODjeODqeODq+ODu+OCq+OCv+ODreOCsOeuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJ+OCr+ODqeOCueWGheOBruOCouOCpOODhuODoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICfjgqLjgqTjg4bjg6DjgpLkv67mraMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAn44Kv44Op44K544Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAn44Ki44Kk44OG44Og44KS6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAn44Kr44K/44Ot44Kw6aCF55uu44KS6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAn44Kr44K/44Ot44Kw44Kv44Op44K544KS6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICfjgq/jg6njgrnjga7jgqvjgr/jg63jgrAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICfjgqvjgr/jg63jgrDjg7vjgqLjgqTjg4bjg6DjgpLkv67mraMnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJ+itpuWRiuOCpOODs+OCt+ODh+ODs+ODiOOBruOCueODhuODvOOCv+OCueOCkueEoeWKueOBq+ioreWumuOBmeOCi+OBk+OBqOOBr+OBp+OBjeOBvuOBm+OCk+OAgic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJ+OCs+ODoeODs+ODiDInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICfjgrjjg6Pjg43jg6njg6vjg7vjgqvjgr/jg63jgrDjga7kvZzmiJDjgajnrqHnkIbjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJ+OCuOOCp+ODjeODqeODq+ODu+OCq+OCv+ODreOCsOOBruOCs+ODoeODs+ODiCAy44KS5a6a576p44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICdVUkwgSlMg44Kr44Op44O844OU44OD44Kr44O844Gu44OR44K544KS5a6a576p44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgRmllbGRzIEdlbmVyYWxDYXRhbG9nIEJhY2tlbmQgR1VJJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBBZG1pbkdlbmVyYWxDYXRhbG9nIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGFkbWluIGFyZWEuJ30gPQogICAgICAgICfnrqHnkIbjgqjjg6rjgqLjgafjga5BZG1pbkdlbmVyYWxDYXRhbG9n44Gu44OV44Ot44Oz44OI44Ko44Oz44OJ44Oi44K444Ol44O844Or44Gu55m76Yyy44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyd9ID0gJ+OCuOOCp+ODjeODqeODq+ODu+OCq+OCv+ODreOCsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsQ2F0YWxvZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBjb21tZW50IDIgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAn44K444Kn44ON44Op44Or44O744Kr44K/44Ot44Kw5bGe5oCn44Gu44Kz44Oh44Oz44OI5L6LIDLjga7oqK3lrprlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAn44K444Kn44ON44Op44Or44O744Kr44K/44Ot44Kw44Gu5bGe5oCn44Gu5qip6ZmQ44Kw44Or44O844OX44Gu6Kit5a6a5YCk5L6L44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Blcm1pc3Npb24gR3JvdXAnfSA9ICfmqKnpmZDjgrDjg6vjg7zjg5cnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ1dhcm5pbmcnLAogICAgJ1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/ko_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmtvX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/lt_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Omx0X0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/lv_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Omx2X0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/mk_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om1rX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICfQpNGD0L3QutGG0LjQvtC90LDQu9C90L7RgdGCJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgaXRlbXMgYnkgY2xhc3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQnfSA9ICfQntC/0YjRgiDQmtCw0YLQsNC70L7QsyDQnNC10L3QsNGf0LzQtdC90YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgSXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludmFsaWQgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgSXRlbSd9ID0gJ9CU0L7QtNCw0LTQuCDQmtCw0YLQsNC70L7QsyDRgdGC0LDQstC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICfQlNC+0LTQsNC00Lgg0JrQsNGC0LDQu9C+0LMg0JrQu9Cw0YHQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAn0JrQsNGC0LDQu9C+0LMg0JrQu9Cw0YHQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGFsb2cgSXRlbSd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAn0JTQvtC00LDQtNC4INC4INCc0LXQvdCw0Z/QuNGA0LDRmCDQs9C+INCe0L/RiNGC0LjQvtGCINCa0LDRgtCw0LvQvtCzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ9Cf0L7Qt9Cw0LTQuNC90YHQutC4INC80L7QtNGD0Lsg0YDQtdCz0LjRgdGC0YDQsNGG0LjRmNCwINC30LAg0JDQtNC80LjQvdCe0L/RiNGC0JrQsNGC0LDQu9C+0LMg0LrQvtC90YTQuNCz0YPRgNCw0YbQuNGY0LAg0LLQviDQsNC00LzQuNC9INC00LXQuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAn0J7Qv9GI0YIg0JrQsNGC0LDQu9C+0LMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ9Cf0LDRgNCw0LzQtdGC0LDRgCDQt9CwINC/0YDQuNC80LXRgCDQutC+0LzQtdC90YLQsNGAIDIg0L7QtCDQvtC/0YjRgiDQutCw0YLQsNC70L7QsyDQsNGC0YDQuNCx0YPRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICfQn9Cw0YDQsNC80LXRgtGA0Lgg0LfQsCDQv9GA0LjQvNC10YAg0LTQvtC30LLQvtC70LjRgtC1INC30LAg0LPRgNGD0L/QuCDQvtC0INCz0LXQvdC10YDQsNC70L3QuCDQutCw0YLQsNC70L7QsyDQsNGC0YDQuNCx0YPRgtC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/ms_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om1zX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5nc2knOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJ0thdGFsb2cgUGVuZ3VydXNhbiBHZW5lcmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0l0ZW1zIGluIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnZhbGlkIGl0ZW1zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIEl0ZW0nfSA9ICdUYW1iYWhhbiBJdGVtIEthdGFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICdUYW1iYWggS2VsYXMgS2F0YWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnS2VsYXMgS2F0YWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGFsb2cgSXRlbSd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAnQ2lwdGEgZGFuIHVydXMgS2F0YWxvZyBHZW5lcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ01vZHVsIHBlbmRhZnRhcmFuIG11a2EgaGFkYXBhbiBiYWdpIGtvbmZpZ3VyYXNpIEthdGFsb2dVbXVtVGFkYmlyIGRhbGFtIHJ1YW5nYW4gcGVudGFkYmlyLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAnS2F0YWxvZyBHZW5lcmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXJhbWV0ZXIgdW50dWsgY29udG9oIGtvbWVuIDIgcGFkYSBjaXJpLWNpcmkga2F0YWxvZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnUGFyYW1ldGVyIHVudHVrIGNvbnRvaCBrdW1wdWxhbiB5YW5nIGRpYmVuYXJrYW4gcGFkYSBjaXJpLWNpcmkga2F0YWxvZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/nb_NO_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om5iX05PX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5rc2pvbmFsaXRldCc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAnQWRtaW5pc3RyYXNqb24gYXYgR2VuZXJlbGwgS2F0YWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJ09wcGbDuHJpbmdlciBpIGtsYXNzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICdFbmRyZSBvYmpla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnTGVnZyB0aWwga2xhc3NlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnTGVnZyB0aWwgb3BwZsO4cmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludmFsaWQgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgSXRlbSd9ID0gJ0xlZ2cgdGlsIGthdGFsb2dvYmpla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICdMZWdnIHRpbCBrYXRhbG9nLWtsYXNzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnS2F0YWxvZ2tsYXNzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGFsb2cgSXRlbSd9ID0gJ1JlZGlnZXIga2F0YWxvZ29wcGbDuHJpbmcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJ0hlbmRlbHNlc3N0YXR1cyBmb3IgYWR2YXJzZWwga2FuIGlra2Ugc2V0dGVzIHRpbCB1Z3lsZGlnLic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJ0tvbW1lbnRhciAyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAnT3BwcmV0dCBvZyBhZG1pbmlzdHLDqXIgZGVuIGdlbmVyZWxsZSBrYXRhbG9nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNvbW1lbnQgMi4nfSA9ICdEZWZpbmVyIGdlbmVyZWxsIGtvbW1lbnRhciAyIHRpbCBrYXRhbG9nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICdEZWZpbmVyZXIgVVJMIGZvciBKUy1mYXJnZXZlbGdlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ0ZvcnNpZGVtb2R1bC1yZWdpc3RyZXJpbmcgZm9yIEFkbWluR2VuZXJhbENhdGFsb2ctb3Bwc2V0dCBpIGFkbWluLWRlbGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICdHZW5lcmVsbCBLYXRhbG9nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXJhbWV0cmUgZm9yIGVrc2VtcGVsa29tbWVudGFyIDIgaSBhdHRyaWJ1dHRlbmUgZm9yIGdlbmVyZWxsIGthdGFsb2cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIHBlcm1pc3Npb24gZ3JvdXBzIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1BhcmFtZXRlcmUgZm9yIHRpbGdhbmdzZ3J1cHBlLWVrc2VtcGVsIGkgYXR0cmlidXR0ZW5lIGZvciBnZW5lcmVsbCBrYXRhbG9nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnVGlsbGF0ZWxzZXNncnVwcGUnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ1dhcm5pbmcnLAogICAgJ1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/nl_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om5sX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5jdGlvbmFsaXRlaXQnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJ0NhdGFsb2d1cyBCZWhlZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgSXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludmFsaWQgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgSXRlbSd9ID0gJ0NhdGFsb2d1cy1pdGVtIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ0NhdGFsb2d1cy1rbGFzc2UgdG9ldm9lZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdDYXRhbG9ndXMga2xhc3NlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IElUU00uR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50IDInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICdBYW5tYWtlbiBlbiBiZWhlcmVuIHZhbiBpdGVtcyBpbiBkZSBjYXRhbG9ndXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNvbW1lbnQgMi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgVVJMIEpTIENvbG9yIFBpY2tlciBwYXRoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIEZpZWxkcyBHZW5lcmFsQ2F0YWxvZyBCYWNrZW5kIEdVSSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgQWRtaW5HZW5lcmFsQ2F0YWxvZyBjb25maWd1cmF0aW9uIGluIHRoZSBhZG1pbiBhcmVhLid9ID0KICAgICAgICAnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGllIHZvb3IgZGUgQWRtaW5HZW5lcmFsQ2F0YWxvZyBjb25maWd1cmF0aWUgaW4gaGV0IGJlaGVlciBkZWVsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICdDYXRhbG9ndXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1BhcmFtZXRlcnMgdm9vciBoZXQgdm9vcmJlZWxkIGNvbW1lbnRhYXIgMiB2YW4gZGUgYWxnZW1lbmUgY2F0YWxvZyBhdHRyaWJ1dGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIHBlcm1pc3Npb24gZ3JvdXBzIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1BhcmFtZXRlcnMgdm9vciBkZSB2b29yYmVlbGQgcGVyaW1zc2llZ3JvZXBlbiB2YW4gZGUgYWxnZW1lbmUgY2F0YWxvZyBhdHRyaWJ1dGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/pl_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnBsX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5rY2pvbmFsbm/Fm8SHJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgaXRlbXMgYnkgY2xhc3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQnfSA9ICdaYXJ6xIVkemFuaWUga2F0YWxvZ2llbSBnxYLDs3dueW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICdFbGVtZW50eSBrbGFzeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICdFZHl0dWogZWxlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2xhc3MnfSA9ICdEb2RhaiBrbGFzxJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEl0ZW0nfSA9ICdEb2RhaiBlbGVtZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnRG9kYWogZWxlbWVudCBrYXRhbG9ndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ0RvZGFqIGtsYXPEmSBrYXRhbG9ndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnS2xhc2Ega2F0YWxvZ3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICdFZHl0dWogZWxlbWVudCBrYXRhbG9ndSc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnS29tZW50YXJ6IDInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICdVdHfDs3J6IGkgemFyesSFZHphaiBrYXRhbG9naWVtIGfFgsOzd255bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJ0RlZmluaXVqZSBrb21lbnRhcnogMiBkbyBrYXRhbG9ndSBnxYLDs3duZWdvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICdEZWZpbml1amUgVVJMIGRvIEpTIENvbG9yIFBpY2tlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIEZpZWxkcyBHZW5lcmFsQ2F0YWxvZyBCYWNrZW5kIEdVSSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgQWRtaW5HZW5lcmFsQ2F0YWxvZyBjb25maWd1cmF0aW9uIGluIHRoZSBhZG1pbiBhcmVhLid9ID0KICAgICAgICAnUmVqZXN0cmFjamEgbW9kdcWCdSBmcm9udGVuZCBkbyBrb25maWd1cmFjamkgbW9kdcWCdSBBZG1pbkdlbmVyYWxDYXRhbG9nIHcgcGFuZWx1IGFkbWluaXN0cmF0b3JhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICdLYXRhbG9nIGfFgsOzd255JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXJhbWV0cnkgZG8gcHJ6eWvFgmFkb3dlZ28ga29tZW50YXJ6YSAyIGF0cnlidXTDs3cga2F0YWxvZ3UgZ2VuZXJhbG5lZ28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIHBlcm1pc3Npb24gZ3JvdXBzIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1BhcmFtZXRyeSBkbGEgcHJ6eWvFgmFkb3d5Y2ggZ3J1cCB1cHJhd25pZcWEIGF0cnlidXTDs3cga2F0YWxvZ3UgZ8WCw7N3bmVnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJ0dydXBhIFVwcmF3bmllxYQnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ1dhcm5pbmcnLAogICAgJ1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/pt_BR_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnB0X0JSX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5jaW9uYWxpZGFkZSc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAnR2VyZW5jaWFtZW50byBkbyBDYXTDoWxvZ28gR2VyYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICdJdGVucyBuYSBDbGFzc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAnQWx0ZXJhciBJdGVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDbGFzcyd9ID0gJ0FkaWNpb25hciBDbGFzc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEl0ZW0nfSA9ICdBZGljaW9uYXIgSXRlbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludmFsaWQgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgSXRlbSd9ID0gJ0FkaWNpb25hciBJdGVtIGFvIENhdMOhbG9nbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ0FkaWNpb25hciBDbGFzc2UgYW8gQ2F0w6Fsb2dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdDbGFzc2UgZG8gQ2F0w6Fsb2dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnQWx0ZXJhciBJdGVtIGRvIENhdMOhbG9nbyc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnQ29tZW50w6FyaW8gMic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJ0NyaWFyIGUgZ2VyZW5jaWFyIG8gQ2F0w6Fsb2dvIEdlcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnRGVmaW5hIG8gY29tZW50w6FyaW8gMiBkbyBjYXTDoWxvZ28gZ2Vuw6lyaWNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAnRGVmaW5lIG8gY2FtaW5obyBVUkwgSlMgQ29sb3IgUGlja2V0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIEZpZWxkcyBHZW5lcmFsQ2F0YWxvZyBCYWNrZW5kIEdVSSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgQWRtaW5HZW5lcmFsQ2F0YWxvZyBjb25maWd1cmF0aW9uIGluIHRoZSBhZG1pbiBhcmVhLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSByZWdpc3RvIGRhIGludGVyZmFjZSBwYXJhIGEgY29uZmlndXJhw6fDo28gQWRtaW5HZW5lcmFsQ2F0YWxvZyBuYSDDoXJlYSBhZG1pbmlzdHJhdGl2YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAnQ2F0w6Fsb2dvIEdlcmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXLDom1ldHJvcyBwYXJhIG8gY29tZW50w6FyaW8gZGUgZXhlbXBsbyAyIGRvcyBhdHJpYnV0b3MgZG8gY2F0w6Fsb2dvIGdlcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdQYXLDom1ldHJvcyBkbyBncnVwb3MgZGUgcGVybWlzc8OjbyBkZSBleGVtcGxvIGRvcyBhdHJpYnV0b3MgZG8gY2F0w6Fsb2dvIGdlcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/pt_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnB0X0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5jaW9uYWxpZGFkZSc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAnR2VzdMOjbyBkbyBDYXTDoWxvZ28gR2VyYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICdJdGVtcyBuYSBDbGFzc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAnRWRpdGFyIEl0ZW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnQWRpY2lvbmFyIENsYXNzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgSXRlbSd9ID0gJ0FkaWNpb25hciBJdGVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnQWRpY2lvbmFyIEl0ZW0gYW8gQ2F0w6Fsb2dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnQWRpY2lvbmFyIENsYXNzZSBhbyBDYXTDoWxvZ28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0NsYXNzZSBkbyBDYXTDoWxvZ28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICdFZGl0YXIgSXRlbSBkbyBDYXTDoWxvZ28nOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJ0NvbWVudMOhcmlvIDInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICdDcmlhciBlIGdlcmlyIG8gQ2F0w6Fsb2dvIEdlcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnRGVmaW5pciBvIENhdMOhbG9nbyBHZXJhbCBjb21lbnTDoXJpbyAyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAnRGVmaW5pciBvIFVSTCBwYXJhIG8gY2FtaW5obyBkbyBKUyBDb2xvciBQaWNrZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgcmVnaXN0byBkYSBpbnRlcmZhY2UgcGFyYSBhIGNvbmZpZ3VyYcOnw6NvIEFkbWluR2VuZXJhbENhdGFsb2cgbmEgw6FyZWEgYWRtaW5pc3RyYXRpdmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyd9ID0gJ0NhdMOhbG9nbyBHZXJhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsQ2F0YWxvZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBjb21tZW50IDIgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnUGFyw6JtZXRyb3MgcGFyYSBvIGNvbWVudMOhcmlvIGRlIGV4ZW1wbG8gMiBkb3MgYXRyaWJ1dG9zIGRvIGNhdMOhbG9nbyBnZXJhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnUGFyw6JtZXRyb3MgcGFyYSBvcyBncnVwb3MgZGUgcGVybWlzc8OjbyBkZSBleGVtcGxvIGRvcyBhdHJpYnV0b3MgZG8gY2F0w6Fsb2dvIGdlcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/ro_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnJvX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5jdGlvbmFsaXRhdGUnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnQWRhdWdhIGFydGljb2wgaW4gY2F0YWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IElUU00uR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50IDInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICdDcmVhemEgc2kgYWRtaW5pc3RyZWF6YSBDYXRhbG9ndWwgR2VuZXJhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgRmllbGRzIEdlbmVyYWxDYXRhbG9nIEJhY2tlbmQgR1VJJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBBZG1pbkdlbmVyYWxDYXRhbG9nIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGFkbWluIGFyZWEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Blcm1pc3Npb24gR3JvdXAnfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ1dhcm5pbmcnLAogICAgJ1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/ru_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnJ1X0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICfQpNGD0L3QutGG0LjQvtC90LDQu9GM0L3QvtGB0YLRjCc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAn0KPQv9GA0LDQstC70LXQvdC40LUg0J7QsdGJ0LjQvCDQutCw0YLQsNC70L7Qs9C+0LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICfQrdC70LXQvNC10L3RgiDQsiDQutC70LDRgdGB0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0Y3Qu9C10LzQtdC90YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQutC70LDRgdGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAn0JTQvtCx0LDQstC40YLRjCDRjdC70LXQvNC10L3Rgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludmFsaWQgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgSXRlbSd9ID0gJ9CU0L7QsdCw0LLQu9C10L3QuNC1INGN0LvQtdC80LXQvdGC0LAg0LrQsNGC0LDQu9C+0LPQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ9CU0L7QsdCw0LLQu9C10L3QuNC1INC60LvQsNGB0YHQsCDQutCw0YLQsNC70L7Qs9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICfQmtC70LDRgdGBINC60LDRgtCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICfQn9GA0LDQstC60LAg0Y3Qu9C10LzQtdC90YLQsCDQutCw0YLQsNC70L7Qs9CwJzsKCiAgICAjIEpTIEZpbGU6IElUU00uR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nfSA9ICfQn9GA0LXQtNGD0L/RgNC10LbQtNC10L3QuNC1INCh0L7RgdGC0L7Rj9C90LjQtSDQuNC90YbQuNC00LXQvdGC0LAg0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINGD0YHRgtCw0L3QvtCy0LvQtdC90L4g0L3QsCDQvdC10LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L7QtS4nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50IDInfSA9ICfQmtC+0LzQvNC10L3RgtCw0YDQuNC5IDInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICfQodC+0LfQtNCw0L3QuNC1INC4INGD0L/RgNCw0LLQu9C10L3QuNC1INCe0LHRidC40Lwg0LrQsNGC0LDQu9C+0LPQvtC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNvbW1lbnQgMi4nfSA9ICfQntC/0YDQtdC00LXQu9C40YLQtSDQutC+0LzQvNC10L3RgtCw0YDQuNC5IDIg0Log0L7QsdGJ0LXQvNGDINC60LDRgtCw0LvQvtCz0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICfQl9Cw0LTQsNC10YIg0L/Rg9GC0YwgVVJMIEpTIENvbG9yIFBpY2tlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ01vZHVsZSByZWdpc3RyYXRpb24g0LTQu9GPINC60L7QvdGE0LjQs9GD0YDQsNGG0LjQuCBBZG1pbkdlbmVyYWxDYXRhbG9nINCyINC/0LDQvdC10LvQuCDQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICfQntCx0YnQuNC5INC60LDRgtCw0LvQvtCzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICfQlNC+0LHQsNCy0LvQtdC90LjQtSDQtNC+0L/QvtC70L3QuNGC0LXQu9GM0L3QvtCz0L4g0LrQvtC80LzQtdC90YLQsNGA0LjRjyDQuiDQsNGC0YDQuNCx0YPRgtCw0Lwg0J7QsdGJ0LXQs9C+INC60LDRgtCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAn0J/QsNGA0LDQvNC10YLRgNGLINC00LvRjyDQv9GA0LjQvNC10YDQvdGL0YUg0LPRgNGD0L/Qv9C+0LLRi9GFINC/0YDQsNCyINC00LvRjyDQsNGC0YDQuNCx0YPRgtC+0LIg0J7QsdGJ0LXQs9C+INC60LDRgtCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJ9CT0YDRg9C/0L/QsCDRgNCw0LfRgNC10YjQtdC90LjQuSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/sk_SK_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNrX1NLX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/sl_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNsX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/sr_Cyrl_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNyX0N5cmxfR2VuZXJhbENhdGFsb2c7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVuY3Rpb25hbGl0eSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0l0ZW1zIGluIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnZhbGlkIGl0ZW1zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGFsb2cgSXRlbSd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAn0JrQvtC80LXQvdGC0LDRgCAyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAn0JrRgNC10LjRgNCw0ZrQtSDQuCDRg9C/0YDQsNCy0ZnQsNGa0LUg0L7Qv9GI0YLQuNC8INC60LDRgtCw0LvQvtCz0L7QvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJ9CU0LXRhNC40L3QuNGI0LUg0LrQvtC80LXQvdGC0LDRgCAyINGDINC+0L/RiNGC0LXQvCDQutCw0YLQsNC70L7Qs9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAn0JTQtdGE0LjQvdC40YjQtSBVUkwg0L/Rg9GC0LDRmtGDINC30LAgSlMgQ29sb3IgUGlja2VyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIEZpZWxkcyBHZW5lcmFsQ2F0YWxvZyBCYWNrZW5kIEdVSSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgQWRtaW5HZW5lcmFsQ2F0YWxvZyBjb25maWd1cmF0aW9uIGluIHRoZSBhZG1pbiBhcmVhLid9ID0KICAgICAgICAn0KDQtdCz0LjRgdGC0YDQsNGG0LjRmNCwINC/0YDQuNGB0YLRg9C/0L3QvtCzINC80L7QtNGD0LvQsCDQt9CwIEFkbWluR2VuZXJhbENhdGFsb2cg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0LDQtNC80LjQvdC40YHRgtGA0LDRgtC+0YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAn0J7Qv9GI0YLQuCDQutCw0YLQsNC70L7Qsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsQ2F0YWxvZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBjb21tZW50IDIgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAn0J/QsNGA0LDQvNC10YLRgNC4INC30LAg0L/RgNC40LzQtdGAINC60L7QvNC10L3RgtCw0YDQsCAyINCw0YLRgNC40LHRg9GC0LAg0L7Qv9GI0YLQtdCzINC60LDRgtCw0LvQvtCz0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIHBlcm1pc3Npb24gZ3JvdXBzIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ9Cf0LDRgNCw0LzQtdGC0YDQuCDQt9CwINC/0YDQuNC80LXRgCDQs9GA0YPQv9C1INC30LAg0LTQvtC30LLQvtC70LUg0LDRgtGA0LjQsdGD0YLQsCDQvtC/0YjRgtC10LMg0LrQsNGC0LDQu9C+0LPQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJ9CT0YDRg9C/0LAg0L/RgNC40YHRgtGD0L/QsCc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/sr_Latn_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNyX0xhdG5fR2VuZXJhbENhdGFsb2c7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVuY3Rpb25hbGl0eSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0l0ZW1zIGluIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnZhbGlkIGl0ZW1zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGFsb2cgSXRlbSd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnS29tZW50YXIgMic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJ0tyZWlyYW5qZSBpIHVwcmF2bGphbmplIG9wxaF0aW0ga2F0YWxvZ29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnRGVmaW5pxaFlIGtvbWVudGFyIDIgdSBvcMWhdGVtIGthdGFsb2d1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAnRGVmaW5pxaFlIFVSTCBwdXRhbmp1IHphIEpTIENvbG9yIFBpY2tlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ1JlZ2lzdHJhY2lqYSBwcmlzdHVwbm9nIG1vZHVsYSB6YSBBZG1pbkdlbmVyYWxDYXRhbG9nIHUgaW50ZXJmZWpzdSBhZG1pbmlzdHJhdG9yYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAnT3DFoXRpIGthdGFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1BhcmFtZXRyaSB6YSBwcmltZXIga29tZW50YXJhIDIgYXRyaWJ1dGEgb3DFoXRlZyBrYXRhbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnUGFyYW1ldHJpIHphIHByaW1lciBncnVwZSB6YSBkb3p2b2xlIGF0cmlidXRhIG9wxaF0ZWcga2F0YWxvZ2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Blcm1pc3Npb24gR3JvdXAnfSA9ICdHcnVwYSBwcmlzdHVwYSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/sv_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnN2X0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdGdW5rdGlvbmFsaXRldCc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAnSGFudGVyYSBncnVuZGthdGFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgSXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludmFsaWQgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgSXRlbSd9ID0gJ0zDpGdnIHRpbGwga2F0YWxvZ3Bvc3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgQ2xhc3MnfSA9ICdMw6RnZyB0aWxsIGtsYXNzIGkga2F0YWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnS2F0YWxvZ2tsYXNzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IElUU00uR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50IDInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICdTa2FwYSBvY2ggaGFudGVyYSBncnVuZGthdGFsb2dlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ1JlZ2lzdHJlcmluZyBhdiBmcm9udGVuZG1vZHVsIGbDtnIgQWRtaW5HZW5lcmFsQ2F0YWxvZy1pbnN0w6RsbG5pbmdhciBpIGFkbWluYXJlYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyd9ID0gJ0dydW5ka2F0YWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsQ2F0YWxvZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBjb21tZW50IDIgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnUGFyYW1ldHJhciBmw7ZyIGV4ZW1wZWxrb21tZW50YXIgMiBpIGF0dHJpYnV0ZW4gZsO2ciBncnVuZGthdGFsb2dlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnUGFyYW1ldHJhciBmw7ZyIGV4ZW1wZWwgcMOlIGJlaMO2cmlnaGV0c2VncnVwcGVyIGkgZ3J1bmRrYXRhbG9nZW5zIGF0dHJpYnV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/sw_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnN3X0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdVdGVuZGFqaSc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAnVXNpbWFtaXppIHdhIGthdGFsb2dpIHdhIHVqdW1sYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnT25nZXphIGtpcGVuZ2VsZSB5YSBrYXRhbG9naSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ09uZ2V6YSB0YWJha2EgbGEga2F0YWxvZ2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ1RhYmFrYSBsYSBrYXRhbG9naSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGFsb2cgSXRlbSd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBJVFNNLkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudCAyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIHRoZSBHZW5lcmFsIENhdGFsb2cuJ30gPSAnVGVuZ2VuZXphIG5hIHNpbWFtaWEgS2F0YWxvZ2kgeWEgdWp1bWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ1VzYWppbGkgd2EgbW9kdWxpIHlhIG1hemluZ2lyYSB5YSBtYmVsZSBrd2EgdXNhbmlkaSB3YSBrYXRhbG9naSB5YSB1anVtbGEgeWEgbXNpbWFtaXppIGthdGlrYSBlbmVvIGxhIHVzaW1hbWl6aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAnS2F0YWxvZ2kgeWEgdWp1bWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdWaWdlem8ga3dhIG1mYW5vIE1hb25pIDIgeWEgc2lmYSB6YSBrYXRhbG9naSB6YSB1anVtbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIHBlcm1pc3Npb24gZ3JvdXBzIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1ZpZ2V6byBrd2EgbWZhbm8gcnVodXNhIHphIHZpa3VuZGkga3dhIHNpZmEgemEga2F0YWxvZ2kgemEgdWp1bWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/th_TH_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnRoX1RIX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICfguJ/guLHguIfguIHguYzguIrguLHguYjguJnguIHguLLguKPguJfguLPguIfguLLguJknOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJ+C4geC4suC4o+C4iOC4seC4lOC4geC4suC4o+C5geC4hOC5h+C4leC4leC4suC4peC5h+C4reC4geC4l+C4seC5iOC4p+C5hOC4myc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAn4LmA4Lie4Li04LmI4Lih4Lij4Liy4Lii4LiB4Liy4Lij4LmB4LiE4LmH4LiV4LiV4Liy4Lil4LmH4Lit4LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAn4LmA4Lie4Li04LmI4Lih4Lir4LmJ4Lit4LiH4LmB4LiE4LmH4LiV4LiV4Liy4Lil4LmH4Lit4LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICfguKvguYnguK3guIfguYHguITguYfguJXguJXguLLguKXguYfguK3guIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJ+C4quC4o+C5ieC4suC4h+C5geC4peC4sOC4iOC4seC4lOC4geC4suC4o+C5geC4hOC5h+C4leC4leC4suC4peC5h+C4reC4geC4l+C4seC5iOC4p+C5hOC4myc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJ+C4geC4suC4o+C4peC4h+C4l+C4sOC5gOC4muC4teC4ouC4meC5guC4oeC4lOC4ueC4pSBGcm9udGVuZCDguKrguLPguKvguKPguLHguJrguIHguLLguKPguIHguLPguKvguJnguJTguITguYjguLLguILguK3guIcgQWRtaW5HZW5lcmFsQ2F0YWxvZyDguYPguJnguJ7guLfguYnguJnguJfguLXguYjguILguK3guIfguYHguK3guJTguKHguLTguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAn4LmB4LiE4LmH4LiV4LiV4Liy4Lil4LmH4Lit4LiB4LiX4Lix4LmI4Lin4LmE4LibJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWxDYXRhbG9nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIGNvbW1lbnQgMiBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICfguJ7guLLguKPguLLguKHguLTguYDguJXguK3guKPguYzguKrguLPguKvguKPguLHguJrguJXguLHguKfguK3guKLguYjguLLguIfguITguKfguLLguKHguITguLTguJTguYDguKvguYfguJnguJfguLXguYgyIOC4guC4reC4h+C5geC4hOC5h+C4leC4leC4suC4peC5h+C4reC4geC5geC4reC4leC4l+C4o+C4tOC4muC4tOC4p+C4leC5jOC4l+C4seC5iOC4p+C5hOC4myc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICfguJ7guLLguKPguLLguKHguLTguYDguJXguK3guKPguYzguKrguLPguKvguKPguLHguJrguJXguLHguKfguK3guKLguYjguLLguIfguIHguKXguLjguYjguKHguJfguLXguYjguYTguJTguYnguKPguLHguJrguK3guJnguLjguI3guLLguJXguILguK3guIfguYHguK3guJXguJfguKPguLTguJrguLTguKfguJXguYzguYHguITguYfguJXguJXguLLguKXguYfguK3guIHguJfguLHguYjguKfguYTguJsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/tr_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnRyX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICfEsMWfbGV2c2VsbGlrJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgaXRlbXMgYnkgY2xhc3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQnfSA9ICdHZW5lbCBLYXRhbG9nIFnDtm5ldGltaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnS2F0YWxvZyDDlmdlc2kgRWtsZXlpbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ0thdGFsb2cgU8SxbsSxZsSxIEVrbGV5aW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0thdGFsb2cgU8SxbsSxZsSxJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0YWxvZyBJdGVtJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IElUU00uR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50IDInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICdHZW5lbCBLYXRhbG9nIHnDtm5ldGltaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgRmllbGRzIEdlbmVyYWxDYXRhbG9nIEJhY2tlbmQgR1VJJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBBZG1pbkdlbmVyYWxDYXRhbG9nIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGFkbWluIGFyZWEuJ30gPQogICAgICAgICdZw7ZuZXRpbSBiw7Zsw7xtw7xuZWtpIEFkbWluR2VuZXJhbENhdGFsb2cgYXlhcmxhcsSxIGnDp2luIMO2bnnDvHogbW9kw7xsIGtheWTEsS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAnR2VuZWwgS2F0YWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsQ2F0YWxvZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBjb21tZW50IDIgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAnR2VuZWwga2F0YWxvZyDDtnpuaXRlbGlrbGVyaW5pbiBpa2luY2kgw7ZybmVrIHlvcnVtdW51biBwYXJhbWV0cmVsZXJpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICdHZW5lbCBrYXRhbG9nIMO2em5pdGVsaWtsZXJpbmluIMO2cm5layBpemluIGdydXBsYXLEsW7EsW4gcGFyYW1ldHJlbGVyaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/uk_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnVrX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICfQpNGD0L3QutGG0ZbQvtC90LDQu9GM0L3RltGB0YLRjCc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyBNYW5hZ2VtZW50J30gPSAn0JrQtdGA0YPQstCw0L3QvdGPINC30LDQs9Cw0LvRjNC90LjQvCDQutCw0YLQsNC70L7Qs9C+0LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXRlbXMgaW4gQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgSXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludmFsaWQgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGFsb2cgSXRlbSd9ID0gJ9CU0L7QtNCw0YLQuCDQtdC70LXQvNC10L3RgiDQutCw0YLQsNC70L7Qs9GDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAn0JTQvtC00LDRgtC4INC60LvQsNGBINC60LDRgtCw0LvQvtCz0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ9Ca0LvQsNGBINC60LDRgtCw0LvQvtCz0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJ9Ch0YLQstC+0YDQuNGC0Lgg0ZYg0LrQtdGA0YPQstCw0YLQuCDQt9Cw0LPQsNC70YzQvdC40Lwg0LrQsNGC0LDQu9C+0LPQvtC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgZ2VuZXJhbCBjYXRhbG9nIGNvbW1lbnQgMi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgVVJMIEpTIENvbG9yIFBpY2tlciBwYXRoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIEZpZWxkcyBHZW5lcmFsQ2F0YWxvZyBCYWNrZW5kIEdVSSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgQWRtaW5HZW5lcmFsQ2F0YWxvZyBjb25maWd1cmF0aW9uIGluIHRoZSBhZG1pbiBhcmVhLid9ID0KICAgICAgICAnRnJvbnRlbmQg0LzQvtC00YPQu9GMINGA0LXRlNGB0YLRgNCw0YbRltGXINCyINC30L7QvdGWINCw0LTQvNGW0L3RltGB0YLRgNGD0LLQsNC90L3RjyDQtNC70Y8g0LrQvtC90YTRltCz0YPRgNCw0YbRltGXIEFkbWluR2VuZXJhbENhdGFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBDYXRhbG9nJ30gPSAn0JfQsNCz0LDQu9GM0L3QuCDQutCw0YLQsNC70L7Qsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsQ2F0YWxvZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBjb21tZW50IDIgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAn0J/QsNGA0LDQvNC10YLRgNC4INC00LvRjyDQv9GA0LjQutC70LDQtNGDINC60L7QvNC10L3RgtCw0YAgMiDQsNGC0YDQuNCx0YPRgtGW0LIg0LfQsNCz0LDQu9GM0L3QvtCz0L4g0LrQsNGC0LDQu9C+0LPRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAn0J/QsNGA0LDQvNC10YLRgNC4INC00LvRjyDQv9GA0LjQutC70LDQtNGDINC00L7Qt9Cy0L7Qu9GDINCz0YDRg9C/INC30LDQs9Cw0LvRjNC90LjRhSDQsNGC0YDQuNCx0YPRgtGW0LIg0LrQsNGC0LDQu9C+0LPRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/vi_VN_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnZpX1ZOX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICdDaOG7qWMgbsSDbmcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJ1F14bqjbiBsw70gZGFuaCBt4bulYyBjaHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAnVGjDqm0gZGFuaCBt4bulYyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBDbGFzcyd9ID0gJ1Row6ptIGzhu5twIGRhbmggbeG7pWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0zhu5twIGRhbmggbeG7pWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJ1ThuqFvIHbDoCBxdeG6o24gbMO9IGRhbmggbeG7pWMgY2h1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBVUkwgSlMgQ29sb3IgUGlja2VyIHBhdGguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgRmllbGRzIEdlbmVyYWxDYXRhbG9nIEJhY2tlbmQgR1VJJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBBZG1pbkdlbmVyYWxDYXRhbG9nIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGFkbWluIGFyZWEuJ30gPQogICAgICAgICfEkMSDbmcga8O9IG3DtC3EkXVuIMSR4buDIGPhuqV1IGjDrG5oIEFkbWluR2VuZXJhbENhdGFsb2cgdHJvbmcgZ2lhbyBkaeG7h24gcXXhuqNuIHRy4buLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyd9ID0gJ0RhbmggbeG7pWMgY2h1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1RoYW0gc+G7kSBjaG8gY2jDuiB0aMOtY2ggdGjhu6kgMiBj4bunYSB0aHXhu5ljIHTDrW5oIGRhbmggbeG7pWMgY2h1bmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBleGFtcGxlIHBlcm1pc3Npb24gZ3JvdXBzIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJ1RoYW0gc+G7kSBjaG8gbmjDs20gY+G6pXAgcGjDqXAgY+G7p2EgdGh14buZYyB0w61uaCBkYW5oIG3hu6VjIGNodW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/zh_CN_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnpoX0NOX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICflip/og70nOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJ+ebruW9leeuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJ+S7peS4i+adoeebruWxnuS6juexu++8mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICfnvJbovpHmnaHnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAn5re75Yqg57G7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAn5re75Yqg5p2h55uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAn5re75Yqg55uu5b2V6aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAn5re75Yqg5paw55uu5b2V57G7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICfnm67lvZXnsbsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICfnvJbovpHnm67lvZXpobnnm64nOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJ+itpuWRiuS6i+S7tueKtuaAgeS4jeiDveiuvue9ruS4uuaXoOaViOOAgic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJ+azqOmHijInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgdGhlIEdlbmVyYWwgQ2F0YWxvZy4nfSA9ICfliJvlu7rlkoznrqHnkIbnm67lvZUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLid9ID0gJ+WumuS5iemAmueUqOebruW9leazqOmHijLjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgVVJMIEpTIENvbG9yIFBpY2tlciBwYXRoLid9ID0gJ+WumuS5iUpT6aKc6Imy6YCJ5oup5Zmo55qE6Lev5b6EVVJM44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgRmllbGRzIEdlbmVyYWxDYXRhbG9nIEJhY2tlbmQgR1VJJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBBZG1pbkdlbmVyYWxDYXRhbG9nIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGFkbWluIGFyZWEuJ30gPQogICAgICAgICflnKjns7vnu5/nrqHnkIbkuK3ms6jlhoznm67lvZXnrqHnkIbmqKHlnZdBZG1pbkdlbmVyYWxDYXRhbG9n55qE5YmN56uv5qih5Z2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgQ2F0YWxvZyd9ID0gJ+ebruW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsQ2F0YWxvZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBjb21tZW50IDIgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAn55uu5b2V5bGe5oCn5qC35L6LLeazqOmHijLnmoTlj4LmlbDorr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBncm91cHMgb2YgdGhlIGdlbmVyYWwgY2F0YWxvZyBhdHRyaWJ1dGVzLid9ID0KICAgICAgICAn55uu5b2V5bGe5oCn5qC35L6LLeadg+mZkOe7hOeahOWPguaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJtaXNzaW9uIEdyb3VwJ30gPSAn5p2D6ZmQ57uEJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdXYXJuaW5nJywKICAgICdXYXJuaW5nIGluY2lkZW50IHN0YXRlIGNhbiBub3QgYmUgc2V0IHRvIGludmFsaWQuJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/zh_TW_GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnpoX1RXX0dlbmVyYWxDYXRhbG9nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bmN0aW9uYWxpdHknfSA9ICflip/og70nOwoKICAgICMgVGVtcGxhdGU6IEFkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBpdGVtcyBieSBjbGFzcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbkdlbmVyYWxDYXRhbG9nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCd9ID0gJ+ebrumMhOeuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdGVtcyBpbiBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENsYXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW52YWxpZCBpdGVtcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0YWxvZyBJdGVtJ30gPSAn5re75Yqg55uu6YyE6aCF55uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRhbG9nIENsYXNzJ30gPSAn5re75Yqg5paw55uu6YyE6aGe5YilJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICfnm67pjITpoZ7liKUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRhbG9nIEl0ZW0nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogSVRTTS5HZW5lcmFsQ2F0YWxvZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnQgMid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSB0aGUgR2VuZXJhbCBDYXRhbG9nLid9ID0gJ+WJteW7uuWSjOeuoeeQhuebrumMhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIGdlbmVyYWwgY2F0YWxvZyBjb21tZW50IDIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIFVSTCBKUyBDb2xvciBQaWNrZXIgcGF0aC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBGaWVsZHMgR2VuZXJhbENhdGFsb2cgQmFja2VuZCBHVUknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIEFkbWluR2VuZXJhbENhdGFsb2cgY29uZmlndXJhdGlvbiBpbiB0aGUgYWRtaW4gYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIENhdGFsb2cnfSA9ICfnm67pjIQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbENhdGFsb2cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGV4YW1wbGUgY29tbWVudCAyIG9mIHRoZSBnZW5lcmFsIGNhdGFsb2cgYXR0cmlidXRlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGdyb3VwcyBvZiB0aGUgZ2VuZXJhbCBjYXRhbG9nIGF0dHJpYnV0ZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVybWlzc2lvbiBHcm91cCd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnV2FybmluZycsCiAgICAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLicsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Modules/AdminDynamicFieldGeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZzsKCnVzZSB2NS4yNDsKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgbmFtZXNwYWNlOjphdXRvY2xlYW47CnVzZSB1dGY4OwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IGJsZXNzIHslUGFyYW19LCAkVHlwZTsKCiAgICAjIFNvbWUgc2V0dXAKICAgICRTZWxmLT57VGVtcGxhdGVGaWxlfSA9ICdBZG1pbkR5bmFtaWNGaWVsZEdlbmVyYWxDYXRhbG9nJzsKCiAgICAjIHNldCBwb3NzaWJsZSB2YWx1ZXMgaGFuZGxpbmcgc3RyaW5ncwogICAgJFNlbGYtPntFbXB0eVN0cmluZ30gICAgID0gJ19EeW5hbWljRmllbGRzX0VtcHR5U3RyaW5nX0RvbnRfVXNlX0l0X1N0cmluZ19QbGVhc2UnOwogICAgJFNlbGYtPntEdXBsaWNhdGVTdHJpbmd9ID0gJ19EeW5hbWljRmllbGRzX0R1cGxpY2F0ZWRTdHJpbmdfRG9udF9Vc2VfSXRfU3RyaW5nX1BsZWFzZSc7CiAgICAkU2VsZi0+e0RlbGV0ZWRTdHJpbmd9ICAgPSAnX0R5bmFtaWNGaWVsZHNfRGVsZXRlZFN0cmluZ19Eb250X1VzZV9JdF9TdHJpbmdfUGxlYXNlJzsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIFN0b3JlIGxhc3QgZW50aXR5IHNjcmVlbi4KICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW5FbnRpdHknLAogICAgICAgIFZhbHVlICAgICA9PiAkU2VsZi0+e1JlcXVlc3RlZFVSTH0sCiAgICApOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZCcgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fQWRkKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkQWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fQWRkQWN0aW9uKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlJyApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9DaGFuZ2UoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDaGFuZ2VBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9DaGFuZ2VBY3Rpb24oCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVW5kZWZpbmVkIHN1YmFjdGlvbi4nKSwKICAgICk7Cn0KCnN1YiBfQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRQYXJhbU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgbXkgJUdldFBhcmFtOwoKICAgICMgY2hlY2sgaWYgd2UgY2xvbmUgZnJvbSBhbiBleGlzdGluZyBmaWVsZAogICAgbXkgJENsb25lRmllbGRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICJJRCIgKTsKICAgIGlmICgkQ2xvbmVGaWVsZElEKSB7CiAgICAgICAgbXkgJEZpZWxkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgICAgIElEID0+ICRDbG9uZUZpZWxkSUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiB3ZSBmb3VuZCBhIGZpZWxkIGNvbmZpZywgY29weSBpdHMgY29udGVudCBmb3IgdXNhZ2UgaW4gX1Nob3dTY3JlZW4KICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRGaWVsZENvbmZpZykgKSB7CgogICAgICAgICAgICAjIGNvcHkgc3RhbmRhcmQgc3R1ZmYKICAgICAgICAgICAgZm9yIG15ICRLZXkgKHF3KE9iamVjdFR5cGUgRmllbGRUeXBlIExhYmVsIE5hbWUgVmFsaWRJRCkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskS2V5fSA9ICRGaWVsZENvbmZpZy0+eyRLZXl9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzcGVjaWFsIHN0dWZmIGFuZCBjb3B5IGluLWRlcHRoIGNvbnRlbnQgYXMgZmxhdCBsaXN0CiAgICAgICAgICAgIENPTkZJR0tFWToKICAgICAgICAgICAgZm9yIG15ICRDb25maWdLZXkgKCBrZXlzICRGaWVsZENvbmZpZy0+e0NvbmZpZ30tPiUqICkgewogICAgICAgICAgICAgICAgbmV4dCBDT05GSUdLRVkgaWYgJENvbmZpZ0tleSBlcSAnUGFydE9mU2V0JzsKCiAgICAgICAgICAgICAgICBteSAkREZEZXRhaWxzID0gJEZpZWxkQ29uZmlnLT57Q29uZmlnfTsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskQ29uZmlnS2V5fSA9ICRERkRldGFpbHMtPnskQ29uZmlnS2V5fTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkR2V0UGFyYW17Q2xvbmVGaWVsZElEfSA9ICRDbG9uZUZpZWxkSUQ7CiAgICB9CgogICAgZm9yIG15ICROZWVkZWQgKHF3KE9iamVjdFR5cGUgRmllbGRUeXBlIEZpZWxkT3JkZXIpKSB7CiAgICAgICAgJEdldFBhcmFteyROZWVkZWR9IC8vPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkTmVlZGVkICk7CiAgICAgICAgaWYgKCAhJEdldFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ05lZWQgJXMnLCAkTmVlZGVkICksCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGZvciBteSAkRmlsdGVyUGFyYW0gKHF3KE9iamVjdFR5cGVGaWx0ZXIgTmFtZXNwYWNlRmlsdGVyKSkgewogICAgICAgICRHZXRQYXJhbXskRmlsdGVyUGFyYW19ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEZpbHRlclBhcmFtICk7CiAgICB9CgogICAgIyBleHRyYWN0IGZpZWxkIHR5cGUgc3BlY2lmaWMgcGFyYW1ldGVycywgZS5nLiBNdWx0aVZhbHVlCiAgICBTRVRUSU5HOgogICAgZm9yIG15ICRTZXR0aW5nICggJFBhcmFte0ZpZWxkVHlwZVNldHRpbmdzfS0+QCogKSB7CgogICAgICAgICMgc2tpcCBjdXN0b20gaW5wdXRzIHdoaWNoIGFyZSBoYW5kbGVkIHNlcGFyYXRlbHkKICAgICAgICAjIGN1cnJlbnRseSBvbmx5IHVzZWQgZm9yIHJlZmVyZW5jZSBmaWx0ZXIgbGlzdAogICAgICAgIG5leHQgU0VUVElORyBpZiAhJFNldHRpbmctPntJbnB1dFR5cGV9OwoKICAgICAgICBteSAkTmFtZSA9ICRTZXR0aW5nLT57Q29uZmlnUGFyYW1OYW1lfTsKICAgICAgICBpZiAoICRTZXR0aW5nLT57TXVsdGlwbGV9ICkgewogICAgICAgICAgICAkR2V0UGFyYW17JE5hbWV9LT5AKiA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICROYW1lICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkR2V0UGFyYW17JE5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJE5hbWUgKTsKICAgICAgICB9CgogICAgICAgICMgdmFsaWRhdGUgaW5wdXQgaWYgbmVjZXNzYXJ5CiAgICAgICAgaWYgKCAkU2V0dGluZy0+e01hbmRhdG9yeX0gKSB7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskTmFtZX0gfHwgKCAkU2V0dGluZy0+e011bHRpcGxlfSAmJiAhJEdldFBhcmFteyROYW1lfS0+QCogKSApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ05lZWQgJXMnLCAkTmFtZSApLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB0aGUgb2JqZWN0IHR5cGUgYW5kIGZpZWxkIHR5cGUgZGlzcGxheSBuYW1lCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJE9iamVjdFR5cGVOYW1lID0gJENvbmZpZ09iamVjdC0+R2V0KCdEeW5hbWljRmllbGRzOjpPYmplY3RUeXBlJyktPnsgJEdldFBhcmFte09iamVjdFR5cGV9IH0tPntEaXNwbGF5TmFtZX0gfHwgJyc7CiAgICBteSAkRmllbGRUeXBlTmFtZSAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZHM6OkRyaXZlcicpLT57ICRHZXRQYXJhbXtGaWVsZFR5cGV9IH0tPntEaXNwbGF5TmFtZX0gICAgICB8fCAnJzsKCiAgICAjIGNoZWNrIG5hbWVzcGFjZSB2YWxpZGl0eQogICAgbXkgJE5hbWVzcGFjZXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZDo6TmFtZXNwYWNlcycpOwogICAgbXkgJE5hbWVzcGFjZSAgPSAnJzsKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCROYW1lc3BhY2VzKSAmJiAkR2V0UGFyYW17TmFtZXNwYWNlRmlsdGVyfSApIHsKICAgICAgICAkTmFtZXNwYWNlID0gKCBncmVwIHsgJF8gZXEgJEdldFBhcmFte05hbWVzcGFjZUZpbHRlcn0gfSAkTmFtZXNwYWNlcy0+QCogKSA/ICRHZXRQYXJhbXtOYW1lc3BhY2VGaWx0ZXJ9IDogJyc7CiAgICB9CgogICAgcmV0dXJuICRTZWxmLT5fU2hvd1NjcmVlbigKICAgICAgICAlUGFyYW0sCiAgICAgICAgJUdldFBhcmFtLAogICAgICAgIE1vZGUgICAgICAgICAgID0+ICdBZGQnLAogICAgICAgIEJyZWFkY3J1bWJUZXh0ID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0FkZCAlcyBmaWVsZCcsICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkRmllbGRUeXBlTmFtZSkgKSwKICAgICAgICBPYmplY3RUeXBlTmFtZSA9PiAkT2JqZWN0VHlwZU5hbWUsCiAgICAgICAgRmllbGRUeXBlTmFtZSAgPT4gJEZpZWxkVHlwZU5hbWUsCiAgICApOwp9CgpzdWIgX0FkZEFjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICBteSAlRXJyb3JzOwogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICROZWVkZWQgKHF3KE5hbWUgTGFiZWwgRmllbGRPcmRlciBHZW5lcmFsQ2F0YWxvZ0NsYXNzKSkgewogICAgICAgICRHZXRQYXJhbXskTmVlZGVkfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICROZWVkZWQgKTsKICAgICAgICBpZiAoICEkR2V0UGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICROZWVkZWQgLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJE5lZWRlZCAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJyk7CiAgICAgICAgfQogICAgfQoKICAgICMgZXh0cmFjdCBmaWVsZCB0eXBlIHNwZWNpZmljIHBhcmFtZXRlcnMsIGUuZy4gTXVsdGlWYWx1ZQogICAgU0VUVElORzoKICAgIGZvciBteSAkU2V0dGluZyAoICRQYXJhbXtGaWVsZFR5cGVTZXR0aW5nc30tPkAqICkgewoKICAgICAgICAjIHNraXAgY3VzdG9tIGlucHV0cyB3aGljaCBhcmUgaGFuZGxlZCBzZXBhcmF0ZWx5CiAgICAgICAgIyBjdXJyZW50bHkgb25seSB1c2VkIGZvciByZWZlcmVuY2UgZmlsdGVyIGxpc3QKICAgICAgICBuZXh0IFNFVFRJTkcgaWYgISRTZXR0aW5nLT57SW5wdXRUeXBlfTsKCiAgICAgICAgbXkgJE5hbWUgPSAkU2V0dGluZy0+e0NvbmZpZ1BhcmFtTmFtZX07CiAgICAgICAgaWYgKCAkU2V0dGluZy0+e011bHRpcGxlfSApIHsKICAgICAgICAgICAgJEdldFBhcmFteyROYW1lfS0+QCogPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAkTmFtZSApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJEdldFBhcmFteyROYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICROYW1lICk7CiAgICAgICAgfQoKICAgICAgICAjIHZhbGlkYXRlIGlucHV0IGlmIG5lY2Vzc2FyeQogICAgICAgIGlmICggJFNldHRpbmctPntNYW5kYXRvcnl9ICkgewogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17JE5hbWV9IHx8ICggJFNldHRpbmctPntNdWx0aXBsZX0gJiYgISRHZXRQYXJhbXskTmFtZX0tPkAqICkgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkTmFtZSAuICdTZXJ2ZXJFcnJvcicgfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3sgJE5hbWUgLiAnU2VydmVyRXJyb3JNZXNzYWdlJyB9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLicpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CgogICAgaWYgKCAkR2V0UGFyYW17RmllbGRPcmRlcn0gKSB7CgogICAgICAgICMgY2hlY2sgaWYgZmllbGQgb3JkZXIgaXMgbnVtZXJpYyBhbmQgcG9zaXRpdmUKICAgICAgICBpZiAoICRHZXRQYXJhbXtGaWVsZE9yZGVyfSAhfiBte1xBICg/OiBcZCApKyBcen14bXMgKSB7CgogICAgICAgICAgICAjIGFkZCBzZXJ2ZXIgZXJyb3IgZXJyb3IgY2xhc3MKICAgICAgICAgICAgJEVycm9yc3tGaWVsZE9yZGVyU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7RmllbGRPcmRlclNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoZSBmaWVsZCBtdXN0IGJlIG51bWVyaWMuJyk7CiAgICAgICAgfQogICAgfQoKICAgIGZvciBteSAkQ29uZmlnUGFyYW0gKAogICAgICAgIHF3KAogICAgICAgICAgICBPYmplY3RUeXBlIE9iamVjdFR5cGVOYW1lIEZpZWxkVHlwZSBGaWVsZFR5cGVOYW1lIFBvc3NpYmxlTm9uZQogICAgICAgICAgICBWYWxpZElEIFRvb2x0aXAgTXVsdGlzZWxlY3QgTXVsdGlWYWx1ZSBOYW1lc3BhY2UKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgICRHZXRQYXJhbXskQ29uZmlnUGFyYW19ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJENvbmZpZ1BhcmFtICk7CiAgICB9CgogICAgZm9yIG15ICRGaWx0ZXJQYXJhbSAocXcoT2JqZWN0VHlwZUZpbHRlciBOYW1lc3BhY2VGaWx0ZXIpKSB7CiAgICAgICAgJEdldFBhcmFteyRGaWx0ZXJQYXJhbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkRmlsdGVyUGFyYW0gKTsKICAgIH0KCiAgICBpZiAoICRHZXRQYXJhbXtOYW1lfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBuYW1lIGlzIGFscGhhbnVtZXJpYwogICAgICAgIGlmICggJEdldFBhcmFte05hbWV9ICF+IG17XEEgKD86IFthLXpBLVpdIHwgXGQgKSsgXHp9eG1zICkgewoKICAgICAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzCiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPQogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlKCdUaGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBvbmx5IEFTQ0lJIGxldHRlcnMgYW5kIG51bWJlcnMuJyk7CiAgICAgICAgfQoKICAgICAgICAkR2V0UGFyYW17TmFtZX0gPSAkR2V0UGFyYW17TmFtZXNwYWNlfSA/ICRHZXRQYXJhbXtOYW1lc3BhY2V9IC4gJy0nIC4gJEdldFBhcmFte05hbWV9IDogJEdldFBhcmFte05hbWV9OwoKICAgICAgICAjIGNoZWNrIGlmIG5hbWUgaXMgZHVwbGljYXRlZAogICAgICAgIG15ICVEeW5hbWljRmllbGRzTGlzdCA9ICV7CiAgICAgICAgICAgICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3QoCiAgICAgICAgICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBSZXN1bHRUeXBlID0+ICdIQVNIJywKICAgICAgICAgICAgKQogICAgICAgIH07CgogICAgICAgICVEeW5hbWljRmllbGRzTGlzdCA9IHJldmVyc2UgJUR5bmFtaWNGaWVsZHNMaXN0OwoKICAgICAgICBpZiAoICREeW5hbWljRmllbGRzTGlzdHsgJEdldFBhcmFte05hbWV9IH0gKSB7CgogICAgICAgICAgICAjIGFkZCBzZXJ2ZXIgZXJyb3IgZXJyb3IgY2xhc3MKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoZXJlIGlzIGFub3RoZXIgZmllbGQgd2l0aCB0aGUgc2FtZSBuYW1lLicpOwogICAgICAgIH0KICAgIH0KCiAgICAjIFByZXBhcmUgdGhlIG11bHRpc2VsZWN0IGFuZCBtdWx0aXZhbHVlIHBhcmFtZXRlcnMKICAgIGlmICggZGVmaW5lZCAkR2V0UGFyYW17TXVsdGlzZWxlY3R9ICkgewogICAgICAgICRHZXRQYXJhbXtNdWx0aXNlbGVjdH0gPSAnY2hlY2tlZD1jaGVja2VkJzsKICAgICAgICAkR2V0UGFyYW17TXVsdGlWYWx1ZX0gID0gMDsKICAgIH0KCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgdW5jb3JyZWN0YWJsZSBlcnJvcnMKICAgIGlmICggISRHZXRQYXJhbXtWYWxpZElEfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIFZhbGlkSUQnKSwKICAgICAgICApOwogICAgfQoKICAgICMgcmV0dXJuIHRvIGFkZCBzY3JlZW4gaWYgZXJyb3JzCiAgICBpZiAoJUVycm9ycykgewogICAgICAgIHJldHVybiAkU2VsZi0+X1Nob3dTY3JlZW4oCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBNb2RlID0+ICdBZGQnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgc3BlY2lmaWMgY29uZmlnCiAgICBteSAlRmllbGRDb25maWcgPSAoCiAgICAgICAgUG9zc2libGVOb25lID0+ICRHZXRQYXJhbXtQb3NzaWJsZU5vbmV9LAogICAgICAgIFRvb2x0aXAgICAgICA9PiAkR2V0UGFyYW17VG9vbHRpcH0sCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICRHZXRQYXJhbXtHZW5lcmFsQ2F0YWxvZ0NsYXNzfSwKICAgICAgICBNdWx0aXNlbGVjdCAgPT4gJEdldFBhcmFte011bHRpc2VsZWN0fSwKICAgICAgICBNdWx0aVZhbHVlICAgPT4gJEdldFBhcmFte011bHRpVmFsdWV9LAogICAgKTsKCiAgICAjIGV4dHJhY3QgZmllbGQgdHlwZSBzcGVjaWZpYyBwYXJhbWV0ZXJzLCBlLmcuIE11bHRpVmFsdWUKICAgIFNFVFRJTkc6CiAgICBmb3IgbXkgJFNldHRpbmcgKCAkUGFyYW17RmllbGRUeXBlU2V0dGluZ3N9LT5AKiApIHsKCiAgICAgICAgIyBza2lwIGN1c3RvbSBpbnB1dHMgd2hpY2ggYXJlIGhhbmRsZWQgc2VwYXJhdGVseQogICAgICAgICMgY3VycmVudGx5IG9ubHkgdXNlZCBmb3IgcmVmZXJlbmNlIGZpbHRlciBsaXN0CiAgICAgICAgbmV4dCBTRVRUSU5HIGlmICEkU2V0dGluZy0+e0lucHV0VHlwZX07CgogICAgICAgIG15ICROYW1lID0gJFNldHRpbmctPntDb25maWdQYXJhbU5hbWV9OwogICAgICAgICRGaWVsZENvbmZpZ3skTmFtZX0gPSAkR2V0UGFyYW17JE5hbWV9OwogICAgfQoKICAgICMgY3JlYXRlIGEgbmV3IGZpZWxkCiAgICBteSAkRmllbGRJRCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEFkZCgKICAgICAgICBOYW1lICAgICAgID0+ICRHZXRQYXJhbXtOYW1lfSwKICAgICAgICBMYWJlbCAgICAgID0+ICRHZXRQYXJhbXtMYWJlbH0sCiAgICAgICAgRmllbGRPcmRlciA9PiAkR2V0UGFyYW17RmllbGRPcmRlcn0sCiAgICAgICAgRmllbGRUeXBlICA9PiAkR2V0UGFyYW17RmllbGRUeXBlfSwKICAgICAgICBPYmplY3RUeXBlID0+ICRHZXRQYXJhbXtPYmplY3RUeXBlfSwKICAgICAgICBDb25maWcgICAgID0+IFwlRmllbGRDb25maWcsCiAgICAgICAgVmFsaWRJRCAgICA9PiAkR2V0UGFyYW17VmFsaWRJRH0sCiAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIGlmICggISRGaWVsZElEICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NvdWxkIG5vdCBjcmVhdGUgdGhlIG5ldyBmaWVsZCcpLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFJlZGlyZWN0U3RyaW5nID0gIkFjdGlvbj1BZG1pbkR5bmFtaWNGaWVsZCI7CgogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkR2V0UGFyYW17T2JqZWN0VHlwZUZpbHRlcn0gKSApIHsKICAgICAgICAkUmVkaXJlY3RTdHJpbmcgLj0gIjtPYmplY3RUeXBlRmlsdGVyPSIgLiAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlID0+ICdbJSBEYXRhLkZpbHRlciB8IHVyaSAlXScsCiAgICAgICAgICAgIERhdGEgICAgID0+IHsKICAgICAgICAgICAgICAgIEZpbHRlciA9PiAkR2V0UGFyYW17T2JqZWN0VHlwZUZpbHRlcn0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJEdldFBhcmFte05hbWVzcGFjZUZpbHRlcn0gKSApIHsKICAgICAgICAkUmVkaXJlY3RTdHJpbmcgLj0gIjtOYW1lc3BhY2VGaWx0ZXI9IiAuICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGUgPT4gJ1slIERhdGEuRmlsdGVyIHwgdXJpICVdJywKICAgICAgICAgICAgRGF0YSAgICAgPT4gewogICAgICAgICAgICAgICAgRmlsdGVyID0+ICRHZXRQYXJhbXtOYW1lc3BhY2VGaWx0ZXJ9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAkUmVkaXJlY3RTdHJpbmcgKTsKfQoKc3ViIF9DaGFuZ2UgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBteSAlR2V0UGFyYW07CiAgICBmb3IgbXkgJE5lZWRlZCAocXcoT2JqZWN0VHlwZSBGaWVsZFR5cGUpKSB7CiAgICAgICAgJEdldFBhcmFteyROZWVkZWR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJE5lZWRlZCApOwogICAgICAgIGlmICggISRHZXRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdOZWVkICVzJywgJE5lZWRlZCApLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBmb3IgbXkgJEZpbHRlclBhcmFtIChxdyhPYmplY3RUeXBlRmlsdGVyIE5hbWVzcGFjZUZpbHRlcikpIHsKICAgICAgICAkR2V0UGFyYW17JEZpbHRlclBhcmFtfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRGaWx0ZXJQYXJhbSApOwogICAgfQoKICAgICMgZ2V0IHRoZSBvYmplY3QgdHlwZSBhbmQgZmllbGQgdHlwZSBkaXNwbGF5IG5hbWUKICAgIG15ICRDb25maWdPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkT2JqZWN0VHlwZU5hbWUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZHM6Ok9iamVjdFR5cGUnKS0+eyAkR2V0UGFyYW17T2JqZWN0VHlwZX0gfS0+e0Rpc3BsYXlOYW1lfSB8fCAnJzsKICAgIG15ICRGaWVsZFR5cGVOYW1lICA9ICRDb25maWdPYmplY3QtPkdldCgnRHluYW1pY0ZpZWxkczo6RHJpdmVyJyktPnsgJEdldFBhcmFte0ZpZWxkVHlwZX0gfS0+e0Rpc3BsYXlOYW1lfSAgICAgIHx8ICcnOwoKICAgIG15ICRGaWVsZElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApOwogICAgaWYgKCAhJEZpZWxkSUQgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBJRCcpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBkYXRhCiAgICBteSAkRHluYW1pY0ZpZWxkRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkR2V0KAogICAgICAgIElEID0+ICRGaWVsZElELAogICAgKTsKCiAgICAjIGNoZWNrIGZvciB2YWxpZCBkeW5hbWljIGZpZWxkIGNvbmZpZ3VyYXRpb24KICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGREYXRhKSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCBnZXQgZGF0YSBmb3IgZHluYW1pYyBmaWVsZCAlcycsICRGaWVsZElEICksCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAlQ29uZmlnOwoKICAgICMgZXh0cmFjdCBjb25maWd1cmF0aW9uCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkRHluYW1pY0ZpZWxkRGF0YS0+e0NvbmZpZ30gKSApIHsKICAgICAgICAlQ29uZmlnID0gJER5bmFtaWNGaWVsZERhdGEtPntDb25maWd9LT4lKjsKICAgIH0KCiAgICByZXR1cm4gJFNlbGYtPl9TaG93U2NyZWVuKAogICAgICAgICVQYXJhbSwKICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgJER5bmFtaWNGaWVsZERhdGEtPiUqLAogICAgICAgICVDb25maWcsCiAgICAgICAgSUQgICAgICAgICAgICAgPT4gJEZpZWxkSUQsCiAgICAgICAgTW9kZSAgICAgICAgICAgPT4gJ0NoYW5nZScsCiAgICAgICAgQnJlYWRjcnVtYlRleHQgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ2hhbmdlICVzIGZpZWxkJywgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRGaWVsZFR5cGVOYW1lKSApLAogICAgICAgIE9iamVjdFR5cGVOYW1lID0+ICRPYmplY3RUeXBlTmFtZSwKICAgICAgICBGaWVsZFR5cGVOYW1lICA9PiAkRmllbGRUeXBlTmFtZSwKICAgICk7Cn0KCnN1YiBfQ2hhbmdlQWN0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJEZpZWxkSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICk7CiAgICBpZiAoICEkRmllbGRJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIElEJyksCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAlRXJyb3JzOwogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICROZWVkZWQgKHF3KE5hbWUgTGFiZWwgRmllbGRPcmRlciBHZW5lcmFsQ2F0YWxvZ0NsYXNzKSkgewogICAgICAgICRHZXRQYXJhbXskTmVlZGVkfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICROZWVkZWQgKTsKICAgICAgICBpZiAoICEkR2V0UGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICROZWVkZWQgLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJE5lZWRlZCAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJyk7CiAgICAgICAgfQogICAgfQoKICAgICMgZXh0cmFjdCBmaWVsZCB0eXBlIHNwZWNpZmljIHBhcmFtZXRlcnMsIGUuZy4gTXVsdGlWYWx1ZQogICAgU0VUVElORzoKICAgIGZvciBteSAkU2V0dGluZyAoICRQYXJhbXtGaWVsZFR5cGVTZXR0aW5nc30tPkAqICkgewoKICAgICAgICAjIHNraXAgY3VzdG9tIGlucHV0cyB3aGljaCBhcmUgaGFuZGxlZCBzZXBhcmF0ZWx5CiAgICAgICAgIyBjdXJyZW50bHkgb25seSB1c2VkIGZvciByZWZlcmVuY2UgZmlsdGVyIGxpc3QKICAgICAgICBuZXh0IFNFVFRJTkcgaWYgISRTZXR0aW5nLT57SW5wdXRUeXBlfTsKCiAgICAgICAgbXkgJE5hbWUgPSAkU2V0dGluZy0+e0NvbmZpZ1BhcmFtTmFtZX07CiAgICAgICAgaWYgKCAkU2V0dGluZy0+e011bHRpcGxlfSApIHsKICAgICAgICAgICAgJEdldFBhcmFteyROYW1lfS0+QCogPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAkTmFtZSApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJEdldFBhcmFteyROYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICROYW1lICk7CiAgICAgICAgfQoKICAgICAgICAjIHZhbGlkYXRlIGlucHV0IGlmIG5lY2Vzc2FyeQogICAgICAgIGlmICggJFNldHRpbmctPntNYW5kYXRvcnl9ICkgewogICAgICAgICAgICBpZiAoICFkZWZpbmVkICRHZXRQYXJhbXskTmFtZX0gfHwgKCAkU2V0dGluZy0+e011bHRpcGxlfSAmJiAhJEdldFBhcmFteyROYW1lfS0+QCogKSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICROYW1lIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkTmFtZSAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBkYXRhCiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwogICAgbXkgJER5bmFtaWNGaWVsZERhdGEgICA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICBJRCA9PiAkRmllbGRJRCwKICAgICk7CgogICAgIyBjaGVjayBmb3IgdmFsaWQgZHluYW1pYyBmaWVsZCBjb25maWd1cmF0aW9uCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkRGF0YSkgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDb3VsZCBub3QgZ2V0IGRhdGEgZm9yIGR5bmFtaWMgZmllbGQgJXMnLCAkRmllbGRJRCApLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkR2V0UGFyYW17RmllbGRPcmRlcn0gKSB7CgogICAgICAgICMgY2hlY2sgaWYgZmllbGQgb3JkZXIgaXMgbnVtZXJpYyBhbmQgcG9zaXRpdmUKICAgICAgICBpZiAoICRHZXRQYXJhbXtGaWVsZE9yZGVyfSAhfiBte1xBICg/OiBcZCApKyBcen14bXMgKSB7CgogICAgICAgICAgICAjIGFkZCBzZXJ2ZXIgZXJyb3IgZXJyb3IgY2xhc3MKICAgICAgICAgICAgJEVycm9yc3tGaWVsZE9yZGVyU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7RmllbGRPcmRlclNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoZSBmaWVsZCBtdXN0IGJlIG51bWVyaWMuJyk7CiAgICAgICAgfQogICAgfQoKICAgIGZvciBteSAkQ29uZmlnUGFyYW0gKAogICAgICAgIHF3KAogICAgICAgICAgICBPYmplY3RUeXBlIE9iamVjdFR5cGVOYW1lIEZpZWxkVHlwZSBGaWVsZFR5cGVOYW1lIFBvc3NpYmxlTm9uZQogICAgICAgICAgICBWYWxpZElEIFRvb2x0aXAgR2VuZXJhbENhdGFsb2dDbGFzcyBNdWx0aXNlbGVjdCBNdWx0aVZhbHVlIE5hbWVzcGFjZQogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFteyRDb25maWdQYXJhbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkQ29uZmlnUGFyYW0gKTsKICAgIH0KCiAgICBmb3IgbXkgJEZpbHRlclBhcmFtIChxdyhPYmplY3RUeXBlRmlsdGVyIE5hbWVzcGFjZUZpbHRlcikpIHsKICAgICAgICAkR2V0UGFyYW17JEZpbHRlclBhcmFtfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRGaWx0ZXJQYXJhbSApOwogICAgfQoKICAgIGlmICggJEdldFBhcmFte05hbWV9ICkgewoKICAgICAgICAjIGNoZWNrIGlmIG5hbWUgaXMgbG93ZXJjYXNlCiAgICAgICAgaWYgKCAkR2V0UGFyYW17TmFtZX0gIX4gbXtcQSAoPzogW2EtekEtWl0gfCBcZCApKyBcen14bXMgKSB7CgogICAgICAgICAgICAjIGFkZCBzZXJ2ZXIgZXJyb3IgZXJyb3IgY2xhc3MKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9CiAgICAgICAgICAgICAgICBUcmFuc2xhdGFibGUoJ1RoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIG9ubHkgQVNDSUkgbGV0dGVycyBhbmQgbnVtYmVycy4nKTsKICAgICAgICB9CgogICAgICAgICRHZXRQYXJhbXtOYW1lfSA9ICRHZXRQYXJhbXtOYW1lc3BhY2V9ID8gJEdldFBhcmFte05hbWVzcGFjZX0gLiAnLScgLiAkR2V0UGFyYW17TmFtZX0gOiAkR2V0UGFyYW17TmFtZX07CgogICAgICAgICMgY2hlY2sgaWYgbmFtZSBpcyBkdXBsaWNhdGVkCiAgICAgICAgbXkgJUR5bmFtaWNGaWVsZHNMaXN0ID0gJXsKICAgICAgICAgICAgJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdCgKICAgICAgICAgICAgICAgIFZhbGlkICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIFJlc3VsdFR5cGUgPT4gJ0hBU0gnLAogICAgICAgICAgICApCiAgICAgICAgfTsKCiAgICAgICAgJUR5bmFtaWNGaWVsZHNMaXN0ID0gcmV2ZXJzZSAlRHluYW1pY0ZpZWxkc0xpc3Q7CgogICAgICAgIGlmICgKICAgICAgICAgICAgJER5bmFtaWNGaWVsZHNMaXN0eyAkR2V0UGFyYW17TmFtZX0gfSAmJgogICAgICAgICAgICAkRHluYW1pY0ZpZWxkc0xpc3R7ICRHZXRQYXJhbXtOYW1lfSB9IG5lICRGaWVsZElECiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICAjIGFkZCBzZXJ2ZXIgZXJyb3IgY2xhc3MKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoZXJlIGlzIGFub3RoZXIgZmllbGQgd2l0aCB0aGUgc2FtZSBuYW1lLicpOwogICAgICAgIH0KCiAgICAgICAgIyBpZiBpdCdzIGFuIGludGVybmFsIGZpZWxkLCBpdCdzIG5hbWUgc2hvdWxkIG5vdCBjaGFuZ2UKICAgICAgICBpZiAoCiAgICAgICAgICAgICREeW5hbWljRmllbGREYXRhLT57SW50ZXJuYWxGaWVsZH0gJiYKICAgICAgICAgICAgJER5bmFtaWNGaWVsZHNMaXN0eyAkR2V0UGFyYW17TmFtZX0gfSBuZSAkRmllbGRJRAogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIGNsYXNzCiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gVHJhbnNsYXRhYmxlKCdUaGUgbmFtZSBmb3IgdGhpcyBmaWVsZCBzaG91bGQgbm90IGNoYW5nZS4nKTsKICAgICAgICAgICAgJFBhcmFte0ludGVybmFsRmllbGR9ICAgICAgICAgICA9ICREeW5hbWljRmllbGREYXRhLT57SW50ZXJuYWxGaWVsZH07CiAgICAgICAgfQogICAgfQoKICAgICMgUHJlcGFyZSB0aGUgbXVsdGlzZWxlY3QgYW5kIG11bHRpdmFsdWUgcGFyYW1ldGVycwogICAgaWYgKCBkZWZpbmVkICRHZXRQYXJhbXtNdWx0aXNlbGVjdH0gKSB7CiAgICAgICAgJEdldFBhcmFte011bHRpc2VsZWN0fSA9ICdjaGVja2VkPWNoZWNrZWQnOwogICAgICAgICRHZXRQYXJhbXtNdWx0aVZhbHVlfSAgPSAwOwogICAgfQoKICAgICMgdW5jb3JyZWN0YWJsZSBlcnJvcnMKICAgIGlmICggISRHZXRQYXJhbXtWYWxpZElEfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIFZhbGlkSUQnKSwKICAgICAgICApOwogICAgfQoKICAgICMgQ2hlY2sgaWYgZHluYW1pYyBmaWVsZCBpcyBwcmVzZW50IGluIFN5c0NvbmZpZyBzZXR0aW5nCiAgICBteSAkVXBkYXRlRW50aXR5ICAgICAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVcGRhdGVFbnRpdHknICkgfHwgJyc7CiAgICBteSAkU3lzQ29uZmlnT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKICAgIG15ICVEeW5hbWljRmllbGRPbGREYXRhICAgICAgID0gJXskRHluYW1pY0ZpZWxkRGF0YX07CiAgICBteSBASXNEeW5hbWljRmllbGRJblN5c0NvbmZpZyA9ICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ3VyYXRpb25FbnRpdHlDaGVjaygKICAgICAgICBFbnRpdHlUeXBlID0+ICdEeW5hbWljRmllbGQnLAogICAgICAgIEVudGl0eU5hbWUgPT4gJER5bmFtaWNGaWVsZERhdGEtPntOYW1lfSwKICAgICk7CiAgICBpZiAoQElzRHluYW1pY0ZpZWxkSW5TeXNDb25maWcpIHsKCiAgICAgICAgIyBBbiBlbnRpdHkgcHJlc2VudCBpbiBTeXNDb25maWcgY291bGRuJ3QgYmUgaW52YWxpZGF0ZWQuCiAgICAgICAgaWYgKAogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMb29rdXAoIFZhbGlkSUQgPT4gJEdldFBhcmFte1ZhbGlkSUR9ICkKICAgICAgICAgICAgbmUgJ3ZhbGlkJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkRXJyb3Jze1ZhbGlkSURJbnZhbGlkfSAgICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tWYWxpZE9wdGlvblNlcnZlckVycm9yfSA9ICdJblNldHRpbmcnOwogICAgICAgIH0KCiAgICAgICAgIyBJbiBjYXNlIGNoYW5naW5nIG5hbWUgYW4gYXV0aG9yaXphdGlvbiAoVXBkYXRlRW50aXR5KSBzaG91bGQgYmUgc2VudAogICAgICAgIGVsc2lmICggJER5bmFtaWNGaWVsZERhdGEtPntOYW1lfSBuZSAkR2V0UGFyYW17TmFtZX0gJiYgISRVcGRhdGVFbnRpdHkgKSB7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZUludmFsaWR9ICAgICAgICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7SW5TZXR0aW5nTmFtZVNlcnZlckVycm9yfSA9IDE7CiAgICAgICAgfQogICAgfQoKICAgICMgcmV0dXJuIHRvIGNoYW5nZSBzY3JlZW4gaWYgZXJyb3JzCiAgICBpZiAoJUVycm9ycykgewogICAgICAgIHJldHVybiAkU2VsZi0+X1Nob3dTY3JlZW4oCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBJRCAgID0+ICRGaWVsZElELAogICAgICAgICAgICBNb2RlID0+ICdDaGFuZ2UnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgc3BlY2lmaWMgY29uZmlnCiAgICBteSAlRmllbGRDb25maWcgPSAoCiAgICAgICAgUG9zc2libGVOb25lID0+ICRHZXRQYXJhbXtQb3NzaWJsZU5vbmV9LAogICAgICAgIFRvb2x0aXAgICAgICA9PiAkR2V0UGFyYW17VG9vbHRpcH0sCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICRHZXRQYXJhbXtHZW5lcmFsQ2F0YWxvZ0NsYXNzfSwKICAgICAgICBNdWx0aXNlbGVjdCAgPT4gJEdldFBhcmFte011bHRpc2VsZWN0fSwKICAgICAgICBNdWx0aVZhbHVlICAgPT4gJEdldFBhcmFte011bHRpVmFsdWV9LAogICAgKTsKCiAgICAjIGV4dHJhY3QgZmllbGQgdHlwZSBzcGVjaWZpYyBwYXJhbWV0ZXJzLCBlLmcuIE11bHRpVmFsdWUKICAgIFNFVFRJTkc6CiAgICBmb3IgbXkgJFNldHRpbmcgKCAkUGFyYW17RmllbGRUeXBlU2V0dGluZ3N9LT5AKiApIHsKCiAgICAgICAgIyBza2lwIGN1c3RvbSBpbnB1dHMgd2hpY2ggYXJlIGhhbmRsZWQgc2VwYXJhdGVseQogICAgICAgICMgY3VycmVudGx5IG9ubHkgdXNlZCBmb3IgcmVmZXJlbmNlIGZpbHRlciBsaXN0CiAgICAgICAgbmV4dCBTRVRUSU5HIGlmICEkU2V0dGluZy0+e0lucHV0VHlwZX07CgogICAgICAgIG15ICROYW1lID0gJFNldHRpbmctPntDb25maWdQYXJhbU5hbWV9OwogICAgICAgICRGaWVsZENvbmZpZ3skTmFtZX0gPSAkR2V0UGFyYW17JE5hbWV9OwogICAgfQoKICAgICMgdXBkYXRlIGR5bmFtaWMgZmllbGQgKEZpZWxkVHlwZSBhbmQgT2JqZWN0VHlwZSBjYW5ub3QgYmUgY2hhbmdlZDsgdXNlIG9sZCB2YWx1ZXMpCiAgICBteSAkVXBkYXRlU3VjY2VzcyA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZFVwZGF0ZSgKICAgICAgICBJRCAgICAgICAgID0+ICRGaWVsZElELAogICAgICAgIE5hbWUgICAgICAgPT4gJEdldFBhcmFte05hbWV9LAogICAgICAgIExhYmVsICAgICAgPT4gJEdldFBhcmFte0xhYmVsfSwKICAgICAgICBGaWVsZE9yZGVyID0+ICRHZXRQYXJhbXtGaWVsZE9yZGVyfSwKICAgICAgICBGaWVsZFR5cGUgID0+ICREeW5hbWljRmllbGREYXRhLT57RmllbGRUeXBlfSwKICAgICAgICBPYmplY3RUeXBlID0+ICREeW5hbWljRmllbGREYXRhLT57T2JqZWN0VHlwZX0sCiAgICAgICAgQ29uZmlnICAgICA9PiBcJUZpZWxkQ29uZmlnLAogICAgICAgIFZhbGlkSUQgICAgPT4gJEdldFBhcmFte1ZhbGlkSUR9LAogICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBpZiAoICEkVXBkYXRlU3VjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ291bGQgbm90IHVwZGF0ZSB0aGUgZmllbGQgJXMnLCAkR2V0UGFyYW17TmFtZX0gKSwKICAgICAgICApOwogICAgfQoKICAgIGlmICgKICAgICAgICBASXNEeW5hbWljRmllbGRJblN5c0NvbmZpZwogICAgICAgICYmICREeW5hbWljRmllbGRPbGREYXRhe05hbWV9IG5lICRHZXRQYXJhbXtOYW1lfQogICAgICAgICYmICRVcGRhdGVFbnRpdHkKICAgICAgICApCiAgICB7CiAgICAgICAgU0VUVElORzoKICAgICAgICBmb3IgbXkgJFNldHRpbmdOYW1lIChASXNEeW5hbWljRmllbGRJblN5c0NvbmZpZykgewoKICAgICAgICAgICAgbXkgJVNldHRpbmcgPSAkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nR2V0KAogICAgICAgICAgICAgICAgTmFtZSA9PiAkU2V0dGluZ05hbWUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFNFVFRJTkcgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCBcJVNldHRpbmcgKTsKCiAgICAgICAgICAgICRTZXR0aW5ne0VmZmVjdGl2ZVZhbHVlfSA9fiBzLyREeW5hbWljRmllbGRPbGREYXRhe05hbWV9LyRHZXRQYXJhbXtOYW1lfS9nOwoKICAgICAgICAgICAgbXkgJEV4Y2x1c2l2ZUxvY2tHVUlEID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ0xvY2soCiAgICAgICAgICAgICAgICBOYW1lICAgPT4gJFNldHRpbmd7TmFtZX0sCiAgICAgICAgICAgICAgICBGb3JjZSAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNldHRpbmd7RXhjbHVzaXZlTG9ja0dVSUR9ID0gJEV4Y2x1c2l2ZUxvY2tHVUlEOwoKICAgICAgICAgICAgJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ1VwZGF0ZSgKICAgICAgICAgICAgICAgICVTZXR0aW5nLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ3VyYXRpb25EZXBsb3koCiAgICAgICAgICAgIENvbW1lbnRzICAgICAgPT4gIkR5bmFtaWNGaWVsZCBuYW1lIGNoYW5nZSIsCiAgICAgICAgICAgIERpcnR5U2V0dGluZ3MgPT4gXEBJc0R5bmFtaWNGaWVsZEluU3lzQ29uZmlnLAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgRm9yY2UgICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJEZpbHRlclN0cmluZyA9ICcnOwoKICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJEdldFBhcmFte09iamVjdFR5cGVGaWx0ZXJ9ICkgKSB7CiAgICAgICAgJEZpbHRlclN0cmluZyAuPSAiO09iamVjdFR5cGVGaWx0ZXI9IiAuICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGUgPT4gJ1slIERhdGEuRmlsdGVyIHwgdXJpICVdJywKICAgICAgICAgICAgRGF0YSAgICAgPT4gewogICAgICAgICAgICAgICAgRmlsdGVyID0+ICRHZXRQYXJhbXtPYmplY3RUeXBlRmlsdGVyfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkR2V0UGFyYW17TmFtZXNwYWNlRmlsdGVyfSApICkgewogICAgICAgICRGaWx0ZXJTdHJpbmcgLj0gIjtOYW1lc3BhY2VGaWx0ZXI9IiAuICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGUgPT4gJ1slIERhdGEuRmlsdGVyIHwgdXJpICVdJywKICAgICAgICAgICAgRGF0YSAgICAgPT4gewogICAgICAgICAgICAgICAgRmlsdGVyID0+ICRHZXRQYXJhbXtOYW1lc3BhY2VGaWx0ZXJ9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBpZiB0aGUgdXNlciB3b3VsZCBsaWtlIHRvIGNvbnRpbnVlIGVkaXRpbmcgdGhlIGR5bmFtaWMgZmllbGQsIGp1c3QgcmVkaXJlY3QgdG8gdGhlIGNoYW5nZSBzY3JlZW4KICAgIGlmICgKICAgICAgICBkZWZpbmVkICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKQogICAgICAgICYmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbnRpbnVlQWZ0ZXJTYXZlJyApIGVxICcxJyApCiAgICAgICAgKQogICAgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1DaGFuZ2U7T2JqZWN0VHlwZT0kRHluYW1pY0ZpZWxkRGF0YS0+e09iamVjdFR5cGV9O0ZpZWxkVHlwZT0kRHluYW1pY0ZpZWxkRGF0YS0+e0ZpZWxkVHlwZX07SUQ9JEZpZWxkSUQkRmlsdGVyU3RyaW5nIgogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBvdGhlcndpc2UgcmV0dXJuIHRvIG92ZXJ2aWV3CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPUFkbWluRHluYW1pY0ZpZWxkJEZpbHRlclN0cmluZyIgKTsKICAgIH0KfQoKc3ViIF9TaG93U2NyZWVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFBhcmFte0Rpc3BsYXlGaWVsZE5hbWV9ID0gJ05ldyc7CgogICAgbXkgJE5hbWVzcGFjZTsKICAgIGlmICggJFBhcmFte01vZGV9IGVxICdDaGFuZ2UnIHx8ICggJFBhcmFte05hbWV9ICYmICEkUGFyYW17Q2xvbmVGaWVsZElEfSApICkgewogICAgICAgICRQYXJhbXtTaG93V2FybmluZ30gICAgICA9ICdTaG93V2FybmluZyc7CiAgICAgICAgJFBhcmFte0Rpc3BsYXlGaWVsZE5hbWV9ID0gJFBhcmFte05hbWV9OwoKICAgICAgICAjIGNoZWNrIGZvciBuYW1lc3BhY2UKICAgICAgICBpZiAoICRQYXJhbXtOYW1lfSA9fiAvKC4qKS0oLiopLyApIHsKICAgICAgICAgICAgJE5hbWVzcGFjZSA9ICQxOwogICAgICAgICAgICAkUGFyYW17UGxhaW5GaWVsZE5hbWV9ID0gJDI7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkUGFyYW17UGxhaW5GaWVsZE5hbWV9ID0gJFBhcmFte05hbWV9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgICMgZ2V0IGFsbCBmaWVsZHMKICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICAjIGdldCB0aGUgbGlzdCBvZiBvcmRlciBudW1iZXJzIChpcyBhbHJlYWR5IHNvcnRlZCkuCiAgICBteSBARHluYW1pY2ZpZWxkT3JkZXJMaXN0OwogICAgbXkgJUR5bmFtaWNmaWVsZE5hbWVzTGlzdDsKICAgIGZvciBteSAkRHluYW1pY2ZpZWxkICggQHskRHluYW1pY0ZpZWxkTGlzdH0gKSB7CiAgICAgICAgcHVzaCBARHluYW1pY2ZpZWxkT3JkZXJMaXN0LCAkRHluYW1pY2ZpZWxkLT57RmllbGRPcmRlcn07CiAgICAgICAgJER5bmFtaWNmaWVsZE5hbWVzTGlzdHsgJER5bmFtaWNmaWVsZC0+e0ZpZWxkT3JkZXJ9IH0gPSAkRHluYW1pY2ZpZWxkLT57TGFiZWx9OwogICAgfQoKICAgICMgd2hlbiBhZGRpbmcgd2UgbmVlZCB0byBjcmVhdGUgYW4gZXh0cmEgb3JkZXIgbnVtYmVyIGZvciB0aGUgbmV3IGZpZWxkCiAgICBpZiAoICRQYXJhbXtNb2RlfSBlcSAnQWRkJyApIHsKCiAgICAgICAgIyBnZXQgdGhlIGxhc3QgZWxlbWVudCBmcm9tIHRoZSBvcmRlciBsaXN0IGFuZCBhZGQgMQogICAgICAgIG15ICRMYXN0T3JkZXJOdW1iZXIgPSAkRHluYW1pY2ZpZWxkT3JkZXJMaXN0Wy0xXTsKICAgICAgICAkTGFzdE9yZGVyTnVtYmVyKys7CgogICAgICAgICMgYWRkIHRoaXMgbmV3IG9yZGVyIG51bWJlciB0byB0aGUgZW5kIG9mIHRoZSBsaXN0CiAgICAgICAgcHVzaCBARHluYW1pY2ZpZWxkT3JkZXJMaXN0LCAkTGFzdE9yZGVyTnVtYmVyOwogICAgfQoKICAgICMgc2hvdyB0aGUgbmFtZXMgb2YgdGhlIG90aGVyIGZpZWxkcyB0byBlYXNlIG9yZGVyaW5nCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJU9yZGVyTmFtZXNMaXN0OwogICAgbXkgJEN1cnJlbnRseVRleHQgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0N1cnJlbnRseScpIC4gJzogJzsKICAgIGZvciBteSAkT3JkZXJOdW1iZXIgKCBzb3J0IEBEeW5hbWljZmllbGRPcmRlckxpc3QgKSB7CiAgICAgICAgJE9yZGVyTmFtZXNMaXN0eyRPcmRlck51bWJlcn0gPSAkT3JkZXJOdW1iZXI7CiAgICAgICAgaWYgKCAkRHluYW1pY2ZpZWxkTmFtZXNMaXN0eyRPcmRlck51bWJlcn0gJiYgJE9yZGVyTnVtYmVyIG5lICRQYXJhbXtGaWVsZE9yZGVyfSApIHsKICAgICAgICAgICAgJE9yZGVyTmFtZXNMaXN0eyRPcmRlck51bWJlcn0gPSAkT3JkZXJOdW1iZXIgLiAnIC0gJwogICAgICAgICAgICAgICAgLiAkQ3VycmVudGx5VGV4dAogICAgICAgICAgICAgICAgLiAkRHluYW1pY2ZpZWxkTmFtZXNMaXN0eyRPcmRlck51bWJlcn07CiAgICAgICAgfQogICAgfQoKICAgICMgaGVhZGVyCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICBteSAkRHluYW1pY0ZpZWxkT3JkZXJTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJU9yZGVyTmFtZXNMaXN0LAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0ZpZWxkT3JkZXInLAogICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte0ZpZWxkT3JkZXJ9IHx8IDEsCiAgICAgICAgUG9zc2libGVOb25lICA9PiAwLAogICAgICAgIFRyYW5zbGF0aW9uICAgPT4gMCwKICAgICAgICBTb3J0ICAgICAgICAgID0+ICdOdW1lcmljS2V5JywKICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUgVzc1cGMgVmFsaWRhdGVfTnVtYmVyJywKICAgICk7CgogICAgbXkgJENsYXNzTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5DbGFzc0xpc3QoKTsKCiAgICAjIGJ1aWxkIGdyb3VwIHNlbGVjdGlvbgogICAgbXkgJEdlbmVyYWxDYXRhbG9nQ2xhc3NTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+ICRDbGFzc0xpc3QsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdHZW5lcmFsQ2F0YWxvZ0NsYXNzJywKICAgICAgICBTZWxlY3RlZElEICAgPT4gJFBhcmFte0NvbmZpZ317Q2xhc3N9IHx8ICcwJywKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZSBXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCcsCiAgICAgICAgU29ydCAgICAgICAgID0+ICdBbHBoYW51bWVyaWNWYWx1ZScsCiAgICAgICAgUG9zc2libGVOb25lID0+IDAsCiAgICApOwoKICAgIG15ICRNdWx0aVZhbHVlU3RyZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAwID0+IFRyYW5zbGF0YWJsZSgnTm8nKSwKICAgICAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ1llcycpLAogICAgICAgIH0sCiAgICAgICAgTmFtZSAgICAgICA9PiAnTXVsdGlWYWx1ZScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17Q29uZmlnfXtNdWx0aVZhbHVlfSB8fCAnMCcsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplIFc1MHBjJywKICAgICk7CgogICAgbXkgJE5hbWVzcGFjZUxpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0R5bmFtaWNGaWVsZDo6TmFtZXNwYWNlcycpOwogICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoJE5hbWVzcGFjZUxpc3QpICkgewogICAgICAgIG15ICROYW1lc3BhY2VTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gJE5hbWVzcGFjZUxpc3QsCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ05hbWVzcGFjZScsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJE5hbWVzcGFjZSB8fCAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICA9PiAxLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgID0+IDAsCiAgICAgICAgICAgIFNvcnQgICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplIFc1MHBjJywKICAgICAgICApOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRHluYW1pY0ZpZWxkTmFtZXNwYWNlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lc3BhY2VTdHJnID0+ICROYW1lc3BhY2VTdHJnLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKCiAgICAjIGNyZWF0ZSB0aGUgVmFsaWRpdHkgc2VsZWN0CiAgICBteSAkVmFsaWRpdHlTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlVmFsaWRMaXN0LAogICAgICAgIE5hbWUgICAgICAgICA9PiAnVmFsaWRJRCcsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtWYWxpZElEfSB8fCAxLAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAwLAogICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplIFc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkJywKICAgICk7CgogICAgbXkgJFBvc3NpYmxlTm9uZSA9ICRQYXJhbXtDb25maWd9e1Bvc3NpYmxlTm9uZX0gfHwgJzAnOwoKICAgICMgY3JlYXRlIHRyYW5zbGF0YWJsZSB2YWx1ZXMgb3B0aW9uIGxpc3QKICAgIG15ICRQb3NzaWJsZU5vbmVTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdObycpLAogICAgICAgICAgICAxID0+IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdQb3NzaWJsZU5vbmUnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBvc3NpYmxlTm9uZSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUgVzUwcGMnLAogICAgKTsKCiAgICAjIGRlZmluZSB0b29sdGlwCiAgICBteSAkVG9vbHRpcCA9ICRQYXJhbXtDb25maWd9e1Rvb2x0aXB9IC8vICcnOwoKICAgICMgY3JlYXRlIHRoZSBkZWZhdWx0IHZhbHVlIGVsZW1lbnQKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1Rvb2x0aXAnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFRvb2x0aXAgPT4gJFRvb2x0aXAsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJFJlYWRvbmx5SW50ZXJuYWxGaWVsZCA9ICcnOwoKICAgICMgSW50ZXJuYWwgZmllbGRzIGNhbiBub3QgYmUgZGVsZXRlZCBhbmQgbmFtZSBzaG91bGQgbm90IGNoYW5nZS4KICAgIGlmICggJFBhcmFte0ludGVybmFsRmllbGR9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdJbnRlcm5hbEZpZWxkJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgICAgICRSZWFkb25seUludGVybmFsRmllbGQgPSAncmVhZG9ubHknOwogICAgfQoKICAgIG15ICREeW5hbWljRmllbGROYW1lID0gJFBhcmFte05hbWV9OwoKICAgICMgQWRkIHdhcm5pbmcgaW4gY2FzZSB0aGUgRHluYW1pY0ZpZWxkIGJlbG9uZ3MgYSBTeXNDb25maWcgc2V0dGluZy4KICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgogICAgIyBJbiBjYXNlIGRpcnR5IHNldHRpbmcgZGlzYWJsZSBmb3JtCiAgICBteSAkSXNEaXJ0eUNvbmZpZyA9IDA7CiAgICBteSBASXNEaXJ0eVJlc3VsdCA9ICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ3VyYXRpb25EaXJ0eVNldHRpbmdzTGlzdCgpOwogICAgbXkgJUlzRGlydHlMaXN0ICAgPSBtYXAgeyAkXyA9PiAxIH0gQElzRGlydHlSZXN1bHQ7CgogICAgbXkgQElzRHluYW1pY0ZpZWxkSW5TeXNDb25maWcgPSAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWd1cmF0aW9uRW50aXR5Q2hlY2soCiAgICAgICAgRW50aXR5VHlwZSA9PiAnRHluYW1pY0ZpZWxkJywKICAgICAgICBFbnRpdHlOYW1lID0+ICREeW5hbWljRmllbGROYW1lIC8vICcnLAogICAgKTsKCiAgICBpZiAoQElzRHluYW1pY0ZpZWxkSW5TeXNDb25maWcpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRHluYW1pY0ZpZWxkSW5TeXNDb25maWcnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIE9sZE5hbWUgPT4gJER5bmFtaWNGaWVsZE5hbWUsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICBmb3IgbXkgJFNldHRpbmdOYW1lIChASXNEeW5hbWljRmllbGRJblN5c0NvbmZpZykgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZEluU3lzQ29uZmlnUm93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIFNldHRpbmdOYW1lID0+ICRTZXR0aW5nTmFtZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIFZlcmlmeSBpZiBkaXJ0eSBzZXR0aW5nCiAgICAgICAgICAgIGlmICggJElzRGlydHlMaXN0eyRTZXR0aW5nTmFtZX0gKSB7CiAgICAgICAgICAgICAgICAkSXNEaXJ0eUNvbmZpZyA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgfQoKICAgIGlmICgkSXNEaXJ0eUNvbmZpZykgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGRJblN5c0NvbmZpZ0RpcnR5JywKCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkRmlsdGVyU3RyZyA9ICcnOwogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17T2JqZWN0VHlwZUZpbHRlcn0gKSApIHsKICAgICAgICAkRmlsdGVyU3RyZyAuPSAiO09iamVjdFR5cGVGaWx0ZXI9IiAuICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGUgPT4gJ1slIERhdGEuRmlsdGVyIHwgdXJpICVdJywKICAgICAgICAgICAgRGF0YSAgICAgPT4gewogICAgICAgICAgICAgICAgRmlsdGVyID0+ICRQYXJhbXtPYmplY3RUeXBlRmlsdGVyfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17TmFtZXNwYWNlRmlsdGVyfSApICkgewogICAgICAgICRGaWx0ZXJTdHJnIC49ICI7TmFtZXNwYWNlRmlsdGVyPSIgLiAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlID0+ICdbJSBEYXRhLkZpbHRlciB8IHVyaSAlXScsCiAgICAgICAgICAgIERhdGEgICAgID0+IHsKICAgICAgICAgICAgICAgIEZpbHRlciA9PiAkUGFyYW17TmFtZXNwYWNlRmlsdGVyfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2VuZXJhdGUgb3V0cHV0CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluRHluYW1pY0ZpZWxkR2VuZXJhbENhdGFsb2cnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgRmlsdGVyU3RyZyAgICAgICAgICAgICAgPT4gJEZpbHRlclN0cmcsCiAgICAgICAgICAgIFZhbGlkaXR5U3RyZyAgICAgICAgICAgID0+ICRWYWxpZGl0eVN0cmcsCiAgICAgICAgICAgIER5bmFtaWNGaWVsZE9yZGVyU3RyZyAgID0+ICREeW5hbWljRmllbGRPcmRlclN0cmcsCiAgICAgICAgICAgIEdlbmVyYWxDYXRhbG9nQ2xhc3NTdHJnID0+ICRHZW5lcmFsQ2F0YWxvZ0NsYXNzU3RyZywKICAgICAgICAgICAgTXVsdGlWYWx1ZVN0cmcgICAgICAgICAgPT4gJE11bHRpVmFsdWVTdHJnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmVTdHJnICAgICAgICA9PiAkUG9zc2libGVOb25lU3RyZywKICAgICAgICAgICAgUmVhZG9ubHlJbnRlcm5hbEZpZWxkICAgPT4gJFJlYWRvbmx5SW50ZXJuYWxGaWVsZCwKICAgICAgICAgICAgVG9vbHRpcCAgICAgICAgICAgICAgICAgPT4gJFRvb2x0aXAsCiAgICAgICAgfQogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=</File>
        <File Location="Kernel/Modules/AdminGeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5HZW5lcmFsQ2F0YWxvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0hhc2hSZWZXaXRoRGF0YSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IHByZWYgZm9yIGNvbHVtbnMga2V5CiAgICAkU2VsZi0+e1ByZWZLZXlJbmNsdWRlSW52YWxpZH0gPSAnSW5jbHVkZUludmFsaWQnIC4gJy0nIC4gJFNlbGYtPntBY3Rpb259OwoKICAgIG15ICVQcmVmZXJlbmNlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID0gJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlJbmNsdWRlSW52YWxpZH0gfTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFZhbGlkT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CiAgICBteSAkR2VuZXJhbENhdGFsb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKTsKCiAgICAkUGFyYW17SW5jbHVkZUludmFsaWR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0luY2x1ZGVJbnZhbGlkJyApOwoKICAgIGlmICggZGVmaW5lZCAkUGFyYW17SW5jbHVkZUludmFsaWR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9LAogICAgICAgICAgICBWYWx1ZSAgPT4gJFBhcmFte0luY2x1ZGVJbnZhbGlkfSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA9ICRQYXJhbXtJbmNsdWRlSW52YWxpZH07CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdHZW5lcmFsQ2F0YWxvZzo6RnJvbnRlbmQ6OkpTQ29sb3JQaWNrZXJQYXRoJywKICAgICAgICBWYWx1ZSA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0dlbmVyYWxDYXRhbG9nOjpGcm9udGVuZDo6SlNDb2xvclBpY2tlclBhdGgnKSwKICAgICk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBjYXRhbG9nIGl0ZW0gbGlzdAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0l0ZW1MaXN0JyApIHsKICAgICAgICBteSAkQ2xhc3MgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAiQ2xhc3MiICkgfHwgJyc7CgogICAgICAgICMgY2hlY2sgbmVlZGVkIGNsYXNzCiAgICAgICAgaWYgKCAhJENsYXNzICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KCiAgICAgICAgIyBvdXRwdXQgb3ZlcnZpZXcKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFBhcmFtICAgICA9PiBcJVBhcmFtLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgID0+ICRDbGFzcywKICAgICAgICAgICAgICAgIFN1YmFjdGlvbiA9PiAkU2VsZi0+e1N1YmFjdGlvbn0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdJdGVtJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAkQ2xhc3MsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnSW5jbHVkZUludmFsaWQnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEluY2x1ZGVJbnZhbGlkICAgICAgICA9PiAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSwKICAgICAgICAgICAgICAgIEluY2x1ZGVJbnZhbGlkQ2hlY2tlZCA9PiAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA/ICdjaGVja2VkJyA6ICcnLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGF2YWlsYWJpbGl0eSBsaXN0CiAgICAgICAgbXkgJVZhbGlkTGlzdCA9ICRWYWxpZE9iamVjdC0+VmFsaWRMaXN0KCk7CgogICAgICAgICMgZ2V0IGNhdGFsb2cgaXRlbSBsaXN0CiAgICAgICAgbXkgJEl0ZW1JRExpc3QgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1MaXN0KAogICAgICAgICAgICBDbGFzcyA9PiAkQ2xhc3MsCiAgICAgICAgICAgIFZhbGlkID0+ICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID8gMCA6IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpdGVtIGxpc3QKICAgICAgICBpZiAoICEkSXRlbUlETGlzdCB8fCAhJXskSXRlbUlETGlzdH0gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRJdGVtSUQgKCBzb3J0IHsgJEl0ZW1JRExpc3QtPnskYX0gY21wICRJdGVtSURMaXN0LT57JGJ9IH0ga2V5cyAleyRJdGVtSURMaXN0fSApIHsKCiAgICAgICAgICAgICMgZ2V0IGl0ZW0gZGF0YQogICAgICAgICAgICBteSAkSXRlbURhdGEgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1HZXQoCiAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgb3V0cHV0IG92ZXJ2aWV3IGl0ZW0gbGlzdAogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3SXRlbUxpc3QnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJXskSXRlbURhdGF9LAogICAgICAgICAgICAgICAgICAgIFZhbGlkID0+ICRWYWxpZExpc3R7ICRJdGVtRGF0YS0+e1ZhbGlkSUR9IH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBBY3Rpb25PdmVydmlldwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25BZGRJdGVtJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAkQ2xhc3MsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBBY3Rpb25PdmVydmlldwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25PdmVydmlldycsCiAgICAgICAgKTsKCiAgICAgICAgIyBvdXRwdXQgaGVhZGVyIGFuZCBuYXZiYXIKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgICAgICMgY3JlYXRlIG91dHB1dCBzdHJpbmcKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbkdlbmVyYWxDYXRhbG9nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgZm9vdGVyCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBjYXRhbG9nIGl0ZW0gZWRpdAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0l0ZW1FZGl0JyApIHsKICAgICAgICBteSAlSXRlbURhdGE7CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgICRJdGVtRGF0YXtJdGVtSUR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gIkl0ZW1JRCIgKTsKCiAgICAgICAgIyBhZGQgYSBuZXcgY2F0YWxvZyBpdGVtCiAgICAgICAgaWYgKCAkSXRlbURhdGF7SXRlbUlEfSBlcSAnTkVXJyApIHsKCiAgICAgICAgICAgICMgZ2V0IGNsYXNzCiAgICAgICAgICAgICRJdGVtRGF0YXtDbGFzc30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAiQ2xhc3MiICk7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIG92ZXJ2aWV3CiAgICAgICAgICAgIGlmICggISRJdGVtRGF0YXtDbGFzc30gKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGVkaXQgYW4gZXhpc3RpbmcgY2F0YWxvZyBpdGVtCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGdldCBpdGVtIGRhdGEKICAgICAgICAgICAgbXkgJEl0ZW1EYXRhUmVmID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtR2V0KAogICAgICAgICAgICAgICAgSXRlbUlEID0+ICRJdGVtRGF0YXtJdGVtSUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBTZW5kIGRhdGEgdG8gSlMgaWYgdGhlcmUgaXMgYSBzcGVjaWZpYyBzY3JlZW4gKCdXYXJuaW5nJyBpdGVtIGluICdJVFNNOjpDb3JlOjpJbmNpZGVudFN0YXRlJyBjbGFzcykuCiAgICAgICAgICAgICMgU2VlIGJ1ZyMxNDY4Mi4KICAgICAgICAgICAgaWYgKCAkSXRlbURhdGFSZWYtPntDbGFzc30gZXEgJ0lUU006OkNvcmU6OkluY2lkZW50U3RhdGUnICYmICRJdGVtRGF0YVJlZi0+e05hbWV9IGVxICdXYXJuaW5nJyApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAnV2FybmluZ0luY2lkZW50U3RhdGUnLAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+IDEsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGl0ZW0gZGF0YQogICAgICAgICAgICBpZiAoICEkSXRlbURhdGFSZWYgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJUl0ZW1EYXRhID0gJXskSXRlbURhdGFSZWZ9OwogICAgICAgIH0KCiAgICAgICAgIyBvdXRwdXQgb3ZlcnZpZXcKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgIENsYXNzICAgICA9PiAkSXRlbURhdGF7Q2xhc3N9LAogICAgICAgICAgICAgICAgU3ViYWN0aW9uID0+ICRTZWxmLT57U3ViYWN0aW9ufSwKICAgICAgICAgICAgICAgIEl0ZW1OYW1lICA9PiAkSXRlbURhdGF7TmFtZX0sCiAgICAgICAgICAgICAgICBJdGVtRWRpdCAgPT4gJEl0ZW1EYXRhe0l0ZW1JRH0gZXEgJ05FVycgPyAwIDogMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGdlbmVyYXRlIFZhbGlkT3B0aW9uU3RyZwogICAgICAgIG15ICVWYWxpZExpc3QgICAgICAgID0gJFZhbGlkT2JqZWN0LT5WYWxpZExpc3QoKTsKICAgICAgICBteSAlVmFsaWRMaXN0UmV2ZXJzZSA9IHJldmVyc2UgJVZhbGlkTGlzdDsKICAgICAgICBteSAkVmFsaWRPcHRpb25TdHJnICA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBOYW1lICAgICAgID0+ICdWYWxpZElEJywKICAgICAgICAgICAgRGF0YSAgICAgICA9PiBcJVZhbGlkTGlzdCwKICAgICAgICAgICAgU2VsZWN0ZWRJRCA9PiAkSXRlbURhdGF7VmFsaWRJRH0gfHwgJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CgogICAgICAgICMgb3V0cHV0IEl0ZW1FZGl0CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0l0ZW1FZGl0JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlSXRlbURhdGEsCiAgICAgICAgICAgICAgICBWYWxpZE9wdGlvblN0cmcgPT4gJFZhbGlkT3B0aW9uU3RyZywKICAgICAgICAgICAgICAgIEl0ZW1FZGl0ICAgICAgICA9PiAkSXRlbURhdGF7SXRlbUlEfSBlcSAnTkVXJyA/IDAgOiAxLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgc2hvdyBlYWNoIHByZWZlcmVuY2VzIHNldHRpbmcKICAgICAgICBteSAlUHJlZmVyZW5jZXMgPSAoKTsKICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlcycpICkgewogICAgICAgICAgICAlUHJlZmVyZW5jZXMgPSAleyAkQ29uZmlnT2JqZWN0LT5HZXQoJ0dlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXMnKSB9OwogICAgICAgIH0KCiAgICAgICAgSVRFTToKICAgICAgICBmb3IgbXkgJEl0ZW0gKAoKICAgICAgICAgICAgIyBzb3J0IGl0ZW1zIGJ5IHByaW9yaXR5CiAgICAgICAgICAgIHNvcnQgewogICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRQcmVmZXJlbmNlc3skYX17UHJpb3JpdHl9ICYmIGRlZmluZWQgJFByZWZlcmVuY2VzeyRifXtQcmlvcml0eX0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFByZWZlcmVuY2VzeyRhfXtQcmlvcml0eX0gPD0+ICRQcmVmZXJlbmNlc3skYn17UHJpb3JpdHl9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc29ydCBhbHBoYWJldGljYWxseSBpZiBubyBwcmlvcml0eSBpcyBjb25maWd1cmVkCiAgICAgICAgICAgICAgICBlbHNpZiAoICFkZWZpbmVkICRQcmVmZXJlbmNlc3skYX17UHJpb3JpdHl9ICYmICFkZWZpbmVkICRQcmVmZXJlbmNlc3skYn17UHJpb3JpdHl9ICkgewogICAgICAgICAgICAgICAgICAgICRhIGNtcCAkYjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHNvcnQgcHJpb3JpdHkgYWJvdmUgbm9uLXByaW9yaXR5CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50KCBkZWZpbmVkICRQcmVmZXJlbmNlc3skYX17UHJpb3JpdHl9ICkgPD0+IGludCggZGVmaW5lZCAkUHJlZmVyZW5jZXN7JGJ9e1ByaW9yaXR5fSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGtleXMgJVByZWZlcmVuY2VzCiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICAjIHNraXAgaXRlbXMgdGhhdCBkb24ndCBiZWxvbmcgdG8gdGhlIGNsYXNzCiAgICAgICAgICAgIGlmICggJFByZWZlcmVuY2VzeyRJdGVtfS0+e0NsYXNzfSAmJiAkUHJlZmVyZW5jZXN7JEl0ZW19LT57Q2xhc3N9IG5lICRJdGVtRGF0YXtDbGFzc30gKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IElURU07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZmluZCBvdXRwdXQgbW9kdWxlCiAgICAgICAgICAgIG15ICRNb2R1bGUgPSAkUHJlZmVyZW5jZXN7JEl0ZW19LT57TW9kdWxlfQogICAgICAgICAgICAgICAgfHwgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzOjpHZW5lcmljJzsKCiAgICAgICAgICAgICMgbG9hZCBtb2R1bGUKICAgICAgICAgICAgaWYgKCAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZSgkTW9kdWxlKSApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY3JlYXRlIG9iamVjdCBmb3IgdGhpcyBwcmVmZXJlbmNlcyBpdGVtCiAgICAgICAgICAgIG15ICRPYmplY3QgPSAkTW9kdWxlLT5uZXcoCiAgICAgICAgICAgICAgICAleyRTZWxmfSwKICAgICAgICAgICAgICAgIENvbmZpZ0l0ZW0gPT4gJFByZWZlcmVuY2VzeyRJdGVtfSwKICAgICAgICAgICAgICAgIERlYnVnICAgICAgPT4gJFNlbGYtPntEZWJ1Z30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgYWxsIHBhcmFtZXRlcnMKICAgICAgICAgICAgbXkgQFBhcmFtcyA9ICRPYmplY3QtPlBhcmFtKCBHZW5lcmFsQ2F0YWxvZ0RhdGEgPT4geyAlSXRlbURhdGEsICVQYXJhbSB9ICk7CiAgICAgICAgICAgIGZvciBteSAkUGFyYW1JdGVtIChAUGFyYW1zKSB7CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIHJlZiggJFBhcmFtSXRlbS0+e0RhdGF9ICkgZXEgJ0hBU0gnCiAgICAgICAgICAgICAgICAgICAgfHwgcmVmKCAkUHJlZmVyZW5jZXN7JEl0ZW19LT57RGF0YX0gKSBlcSAnSEFTSCcKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJFBhcmFtSXRlbS0+eydPcHRpb24nfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAleyAkUHJlZmVyZW5jZXN7JEl0ZW19IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICV7JFBhcmFtSXRlbX0sCiAgICAgICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAhJFBhcmFtSXRlbS0+e01hbmRhdG9yeX0sCiAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJyAuICggJFBhcmFtSXRlbS0+e01hbmRhdG9yeX0gPyAnIFZhbGlkYXRlX1JlcXVpcmVkJyA6ICcnICksCiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCByZWYgJFBhcmFtSXRlbS0+e1NlbGVjdGVkSUR9IGVxICdBUlJBWScgJiYgISRQYXJhbUl0ZW0tPntNdWx0aXBsZX0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFBhcmFtSXRlbS0+e1NlbGVjdGVkSUR9ID0gJFBhcmFtSXRlbS0+e1NlbGVjdGVkSUR9WzBdOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1ByZWZlcmVuY2VJdGVtJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJXsgJFByZWZlcmVuY2VzeyRJdGVtfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAleyRQYXJhbUl0ZW19LAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICRQYXJhbUl0ZW0tPntCbG9ja30gfHwgJFByZWZlcmVuY2VzeyRJdGVtfS0+e0Jsb2NrfSB8fCAnT3B0aW9uJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCAkSXRlbURhdGF7Q2xhc3N9IGVxICdORVcnICkgewoKICAgICAgICAgICAgIyBvdXRwdXQgSXRlbUVkaXRDbGFzc0FkZAogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0l0ZW1FZGl0Q2xhc3NBZGQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgQ2xhc3MgPT4gJEl0ZW1EYXRhe0NsYXNzfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBvdXRwdXQgSXRlbUVkaXRDbGFzc0V4aXN0CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnSXRlbUVkaXRDbGFzc0V4aXN0JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIENsYXNzID0+ICRJdGVtRGF0YXtDbGFzc30sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBBY3Rpb25PdmVydmlldwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25PdmVydmlldycsCiAgICAgICAgKTsKCiAgICAgICAgIyBvdXRwdXQgaGVhZGVyCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICAjIGNyZWF0ZSBvdXRwdXQgc3RyaW5nCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5HZW5lcmFsQ2F0YWxvZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CgogICAgICAgICMgYWRkIGZvb3RlcgogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgY2F0YWxvZyBpdGVtIHNhdmUKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJdGVtU2F2ZScgKSB7CiAgICAgICAgbXkgJUl0ZW1EYXRhOwoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICBmb3IgbXkgJFBhcmFtIChxdyhDbGFzcyBJdGVtSUQgVmFsaWRJRCBDb21tZW50KSkgewogICAgICAgICAgICAkSXRlbURhdGF7JFBhcmFtfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbSApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgbmFtZSBwYXJhbSwgbmFtZSBtdXN0IGJlIG5vdCBlbXB0eSwgYnV0IG51bWJlciB6ZXJvICgwKSBpcyBhbGxvd2VkCiAgICAgICAgJEl0ZW1EYXRhe05hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ05hbWUnICk7CgogICAgICAgICMgY2hlY2sgY2xhc3MKICAgICAgICBpZiAoICRJdGVtRGF0YXtDbGFzc30gZXEgJ05FVycgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iICk7CiAgICAgICAgfQoKICAgICAgICAjIHNhdmUgdG8gZGF0YWJhc2UKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBteSAkSXRlbUlEID0gJEl0ZW1EYXRhe0l0ZW1JRH07CiAgICAgICAgaWYgKCAkSXRlbURhdGF7SXRlbUlEfSBlcSAnTkVXJyApIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1BZGQoCiAgICAgICAgICAgICAgICAlSXRlbURhdGEsCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkSXRlbUlEID0gJFN1Y2Nlc3M7CgogICAgICAgICAgICBpZiAoJFN1Y2Nlc3MpIHsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIGl0ZW0gaXMgZmlyc3Qgb2YgY2xhc3MKICAgICAgICAgICAgICAgIG15ICRJdGVtTGlzdCA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUxpc3QoCiAgICAgICAgICAgICAgICAgICAgQ2xhc3MgPT4gJEl0ZW1EYXRhe0NsYXNzfSwKICAgICAgICAgICAgICAgICAgICBWYWxpZCA9PiAwLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGlmIHNvLCByZWRpcmVjdCBpbnRvIGVkaXQgbWFzayB3aXRoIG5ld2x5IGNyZWF0ZWQgaXRlbSB0byBmb3JjZSBzZXR0aW5nIHByZWZlcmVuY2VzIHZhbHVlcwogICAgICAgICAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkSXRlbUxpc3QpICYmICgga2V5cyAkSXRlbUxpc3QtPiUqICkgPT0gMSApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1JdGVtRWRpdDtDbGFzcz0kSXRlbURhdGF7Q2xhc3N9O0l0ZW1JRD0kSXRlbUlEIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtVXBkYXRlKAogICAgICAgICAgICAgICAgJUl0ZW1EYXRhLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgIH0KCiAgICAgICAgIyB1cGRhdGUgcHJlZmVyZW5jZXMKICAgICAgICBteSAkR0NEYXRhICAgICAgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1HZXQoIEl0ZW1JRCA9PiAkSXRlbUlEICk7CiAgICAgICAgbXkgJVByZWZlcmVuY2VzID0gKCk7CiAgICAgICAgbXkgJE5vdGUgICAgICAgID0gJyc7CgogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzJykgKSB7CiAgICAgICAgICAgICVQcmVmZXJlbmNlcyA9ICV7ICRDb25maWdPYmplY3QtPkdldCgnR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlcycpIH07CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJEl0ZW0gKCBzb3J0IGtleXMgJVByZWZlcmVuY2VzICkgewogICAgICAgICAgICBteSAkTW9kdWxlID0gJFByZWZlcmVuY2VzeyRJdGVtfS0+e01vZHVsZX0KICAgICAgICAgICAgICAgIHx8ICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6R2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlczo6R2VuZXJpYyc7CgogICAgICAgICAgICAjIGxvYWQgbW9kdWxlCiAgICAgICAgICAgIGlmICggISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPlJlcXVpcmUoJE1vZHVsZSkgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkT2JqZWN0ID0gJE1vZHVsZS0+bmV3KAogICAgICAgICAgICAgICAgJXskU2VsZn0sCiAgICAgICAgICAgICAgICBDb25maWdJdGVtID0+ICRQcmVmZXJlbmNlc3skSXRlbX0sCiAgICAgICAgICAgICAgICBEZWJ1ZyAgICAgID0+ICRTZWxmLT57RGVidWd9LAogICAgICAgICAgICApOwogICAgICAgICAgICBteSBAUGFyYW1zID0gJE9iamVjdC0+UGFyYW0oIEdlbmVyYWxDYXRhbG9nRGF0YSA9PiAkR0NEYXRhICk7CiAgICAgICAgICAgIGlmIChAUGFyYW1zKSB7CiAgICAgICAgICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKICAgICAgICAgICAgICAgIGZvciBteSAkUGFyYW1JdGVtIChAUGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgQEFycmF5ID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJFBhcmFtSXRlbS0+e05hbWV9ICk7CiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkUGFyYW1JdGVtLT57TmFtZX0gfSA9IFxAQXJyYXk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgISRPYmplY3QtPlJ1bigKICAgICAgICAgICAgICAgICAgICAgICAgR2V0UGFyYW0gPT4gXCVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgSXRlbUlEICAgPT4gJEdDRGF0YS0+e0l0ZW1JRH0sCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkTm90ZSAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoIEluZm8gPT4gJE9iamVjdC0+RXJyb3IoKSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICAgICAgfQoKICAgICAgICBteSAkQ29udGludWVBZnRlclNhdmUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ29udGludWVBZnRlclNhdmUnICk7CiAgICAgICAgaWYgKCRDb250aW51ZUFmdGVyU2F2ZSkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249SXRlbUVkaXQ7Q2xhc3M9JEl0ZW1EYXRhe0NsYXNzfTtJdGVtSUQ9JEl0ZW1EYXRhe0l0ZW1JRH0iCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHJlZGlyZWN0IHRvIG92ZXJ2aWV3IGNsYXNzIGxpc3QKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1JdGVtTGlzdDtDbGFzcz0kSXRlbURhdGF7Q2xhc3N9IgogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBvdmVydmlldwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzZSB7CgogICAgICAgICMgb3V0cHV0IG92ZXJ2aWV3CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdDbGFzcycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGNhdGFsb2cgY2xhc3MgbGlzdAogICAgICAgIG15ICRDbGFzc0xpc3QgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkNsYXNzTGlzdCgpOwoKICAgICAgICBpZiAoIEB7JENsYXNzTGlzdH0gKSB7CgogICAgICAgICAgICBmb3IgbXkgJENsYXNzICggQHskQ2xhc3NMaXN0fSApIHsKCiAgICAgICAgICAgICAgICAjIG91dHB1dCBvdmVydmlldyBjbGFzcyBsaXN0CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld0NsYXNzTGlzdCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzID0+ICRDbGFzcywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBvdGhlcndpc2UgaXQgZGlzcGxheXMgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb0RhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIEFjdGlvbkFkZENsYXNzCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbkFkZENsYXNzJywKICAgICAgICApOwoKICAgICAgICAjIG91dHB1dCBoZWFkZXIgYW5kIG5hdmJhcgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAgICAgIyBjcmVhdGUgb3V0cHV0IHN0cmluZwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluR2VuZXJhbENhdGFsb2cnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCBmb290ZXIKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KfQoKMTsK</File>
        <File Location="Kernel/Output/HTML/GeneralCatalogPreferences/Generic.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzOjpHZW5lcmljOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEZpbGU6OkJhc2VuYW1lIHF3KGZpbGVwYXJzZSk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ29uZmlnSXRlbScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgcGFyYW1zCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoIFVzZXJJRCBDb25maWdJdGVtICkpIHsKICAgICAgICBkaWUgIkdvdCBubyAkTmVlZGVkISIgaWYgKCAhJFNlbGYtPnskTmVlZGVkfSApOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFBhcmFtIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFBhcmFtcyAgID0gKCk7CiAgICBteSAkR2V0UGFyYW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkU2VsZi0+e0NvbmZpZ0l0ZW19LT57UHJlZktleX0gKTsKCiAgICBpZiAoICFkZWZpbmVkKCRHZXRQYXJhbSkgKSB7CiAgICAgICAgJEdldFBhcmFtID0gZGVmaW5lZCggJFBhcmFte0dlbmVyYWxDYXRhbG9nRGF0YX0tPnsgJFNlbGYtPntDb25maWdJdGVtfS0+e1ByZWZLZXl9IH0gKQogICAgICAgICAgICA/ICRQYXJhbXtHZW5lcmFsQ2F0YWxvZ0RhdGF9LT57ICRTZWxmLT57Q29uZmlnSXRlbX0tPntQcmVmS2V5fSB9CiAgICAgICAgICAgIDogJFNlbGYtPntDb25maWdJdGVtfS0+e0RhdGFTZWxlY3RlZH07CiAgICB9CgogICAgZm9yIG15ICRTZWxlY3RPcHRpb24gKHF3KE1hbmRhdG9yeSBNdWx0aXBsZSkpIHsKICAgICAgICAkUGFyYW17JFNlbGVjdE9wdGlvbn0gPSAkU2VsZi0+e0NvbmZpZ0l0ZW19eyRTZWxlY3RPcHRpb259OwogICAgfQoKICAgIGlmICggISggZGVmaW5lZCAkU2VsZi0+e0NvbmZpZ0l0ZW19LT57QmxvY2t9ICYmICRTZWxmLT57Q29uZmlnSXRlbX0tPntCbG9ja30gKSApIHsKICAgICAgICAkU2VsZi0+e0NvbmZpZ0l0ZW19LT57QmxvY2t9ID0gJ0lucHV0JzsKICAgIH0KCiAgICBpZiAoICRTZWxmLT57Q29uZmlnSXRlbX0tPntCbG9ja30gZXEgJ1Blcm1pc3Npb24nICkgewogICAgICAgICRQYXJhbXtEYXRhfSAgPSB7ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cExpc3QoIFZhbGlkID0+IDEgKSB9OwogICAgICAgICRQYXJhbXtCbG9ja30gPSAnT3B0aW9uJzsKICAgIH0KCiAgICBpZiAoICRTZWxmLT57Q29uZmlnSXRlbX0tPntCbG9ja30gZXEgJ05hbWVNb2R1bGUnICkgewoKICAgICAgICAjIGdldCBtYWluIG9iamVjdAogICAgICAgIG15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKCiAgICAgICAgIyBpdGVyYXRlIG9uIG5hbWUgbW9kdWxlIGZpbGVzCiAgICAgICAgbXkgJE5hbWVNb2R1bGVEaXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0hvbWUnKSAuICcvS2VybmVsL1N5c3RlbS9JVFNNQ29uZmlnSXRlbS9OYW1lJzsKICAgICAgICBteSBATmFtZU1vZHVsZXM7CiAgICAgICAgaWYgKCAtZCAkTmFtZU1vZHVsZURpciApIHsKICAgICAgICAgICAgbXkgQEFsbE5hbWVNb2R1bGVGaWxlcyA9ICRNYWluT2JqZWN0LT5EaXJlY3RvcnlSZWFkKAogICAgICAgICAgICAgICAgRGlyZWN0b3J5ID0+ICROYW1lTW9kdWxlRGlyLAogICAgICAgICAgICAgICAgRmlsdGVyICAgID0+ICcqLnBtJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgTkFNRV9NT0RVTEVfRklMRToKICAgICAgICAgICAgZm9yIG15ICROYW1lTW9kdWxlRmlsZSAoQEFsbE5hbWVNb2R1bGVGaWxlcykgewogICAgICAgICAgICAgICAgbXkgJENsYXNzTmFtZUZpbmFsUGFydCA9IGZpbGVwYXJzZSggJE5hbWVNb2R1bGVGaWxlLCAnLnBtJyApOwogICAgICAgICAgICAgICAgbXkgJENsYXNzTmFtZSAgICAgICAgICA9ICJLZXJuZWw6OlN5c3RlbTo6SVRTTUNvbmZpZ0l0ZW06Ok5hbWU6OiRDbGFzc05hbWVGaW5hbFBhcnQiOwoKICAgICAgICAgICAgICAgIGlmICggISRNYWluT2JqZWN0LT5SZXF1aXJlQmFzZUNsYXNzKCRDbGFzc05hbWUpICkgewogICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvbmZpZ0l0ZW0gbmFtZSBtb2R1bGUgJENsYXNzTmFtZSBjb3VsZCBub3QgYmUgbG9hZGVkISIsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBuZXh0IE5BTUVfTU9EVUxFX0ZJTEU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcHVzaCBATmFtZU1vZHVsZXMsICRDbGFzc05hbWVGaW5hbFBhcnQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRQYXJhbXtEYXRhfS0+JSogPSBtYXAgeyAkXyA9PiAkXyB9IEBOYW1lTW9kdWxlczsKICAgICAgICAkUGFyYW17QmxvY2t9ID0gJ09wdGlvbic7CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ0l0ZW19LT57QmxvY2t9IGVxICdOdW1iZXJNb2R1bGUnICkgewoKICAgICAgICAjIGdldCBtYWluIG9iamVjdAogICAgICAgIG15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKCiAgICAgICAgIyBpdGVyYXRlIG9uIG51bWJlciBtb2R1bGUgZmlsZXMKICAgICAgICBteSAkTnVtYmVyTW9kdWxlRGlyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdIb21lJykgLiAnL0tlcm5lbC9TeXN0ZW0vSVRTTUNvbmZpZ0l0ZW0vTnVtYmVyJzsKICAgICAgICBteSBATnVtYmVyTW9kdWxlczsKICAgICAgICBpZiAoIC1kICROdW1iZXJNb2R1bGVEaXIgKSB7CiAgICAgICAgICAgIG15IEBBbGxOdW1iZXJNb2R1bGVGaWxlcyA9ICRNYWluT2JqZWN0LT5EaXJlY3RvcnlSZWFkKAogICAgICAgICAgICAgICAgRGlyZWN0b3J5ID0+ICROdW1iZXJNb2R1bGVEaXIsCiAgICAgICAgICAgICAgICBGaWx0ZXIgICAgPT4gJyoucG0nLAogICAgICAgICAgICApOwogICAgICAgICAgICBOVU1CRVJfTU9EVUxFX0ZJTEU6CiAgICAgICAgICAgIGZvciBteSAkTnVtYmVyTW9kdWxlRmlsZSAoQEFsbE51bWJlck1vZHVsZUZpbGVzKSB7CiAgICAgICAgICAgICAgICBteSAkQ2xhc3NOYW1lRmluYWxQYXJ0ID0gZmlsZXBhcnNlKCAkTnVtYmVyTW9kdWxlRmlsZSwgJy5wbScgKTsKICAgICAgICAgICAgICAgIG15ICRDbGFzc05hbWUgICAgICAgICAgPSAiS2VybmVsOjpTeXN0ZW06OklUU01Db25maWdJdGVtOjpOdW1iZXI6OiRDbGFzc05hbWVGaW5hbFBhcnQiOwoKICAgICAgICAgICAgICAgIGlmICggISRNYWluT2JqZWN0LT5SZXF1aXJlQmFzZUNsYXNzKCRDbGFzc05hbWUpICkgewogICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvbmZpZ0l0ZW0gbnVtYmVyIG1vZHVsZSAkQ2xhc3NOYW1lIGNvdWxkIG5vdCBiZSBsb2FkZWQhIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIG5leHQgTlVNQkVSX01PRFVMRV9GSUxFOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHB1c2ggQE51bWJlck1vZHVsZXMsICRDbGFzc05hbWVGaW5hbFBhcnQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRQYXJhbXtEYXRhfS0+JSogPSBtYXAgeyAkXyA9PiAkXyB9IEBOdW1iZXJNb2R1bGVzOwogICAgICAgICRQYXJhbXtCbG9ja30gPSAnT3B0aW9uJzsKICAgIH0KCiAgICBpZiAoICRTZWxmLT57Q29uZmlnSXRlbX0tPntCbG9ja30gZXEgJ1ZlcnNpb25TdHJpbmdNb2R1bGUnICkgewoKICAgICAgICAjIGdldCBtYWluIG9iamVjdAogICAgICAgIG15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKCiAgICAgICAgIyBpdGVyYXRlIG9uIHZlcnNpb24gc3RyaW5nIG1vZHVsZSBmaWxlcwogICAgICAgIG15ICRWZXJzaW9uU3RyaW5nTW9kdWxlRGlyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdIb21lJykgLiAnL0tlcm5lbC9TeXN0ZW0vSVRTTUNvbmZpZ0l0ZW0vVmVyc2lvblN0cmluZyc7CiAgICAgICAgbXkgQFZlcnNpb25TdHJpbmdNb2R1bGVzOwogICAgICAgIGlmICggLWQgJFZlcnNpb25TdHJpbmdNb2R1bGVEaXIgKSB7CiAgICAgICAgICAgIG15IEBBbGxWZXJzaW9uU3RyaW5nTW9kdWxlRmlsZXMgPSAkTWFpbk9iamVjdC0+RGlyZWN0b3J5UmVhZCgKICAgICAgICAgICAgICAgIERpcmVjdG9yeSA9PiAkVmVyc2lvblN0cmluZ01vZHVsZURpciwKICAgICAgICAgICAgICAgIEZpbHRlciAgICA9PiAnKi5wbScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBWRVJTSU9OX1NUUklOR19NT0RVTEVfRklMRToKICAgICAgICAgICAgZm9yIG15ICRWZXJzaW9uU3RyaW5nTW9kdWxlRmlsZSAoQEFsbFZlcnNpb25TdHJpbmdNb2R1bGVGaWxlcykgewogICAgICAgICAgICAgICAgbXkgJENsYXNzTmFtZUZpbmFsUGFydCA9IGZpbGVwYXJzZSggJFZlcnNpb25TdHJpbmdNb2R1bGVGaWxlLCAnLnBtJyApOwogICAgICAgICAgICAgICAgbXkgJENsYXNzTmFtZSAgICAgICAgICA9ICJLZXJuZWw6OlN5c3RlbTo6SVRTTUNvbmZpZ0l0ZW06OlZlcnNpb25TdHJpbmc6OiRDbGFzc05hbWVGaW5hbFBhcnQiOwoKICAgICAgICAgICAgICAgIGlmICggISRNYWluT2JqZWN0LT5SZXF1aXJlQmFzZUNsYXNzKCRDbGFzc05hbWUpICkgewogICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvbmZpZ0l0ZW0gdmVyc2lvbiBzdHJpbmcgbW9kdWxlICRDbGFzc05hbWUgY291bGQgbm90IGJlIGxvYWRlZCEiLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBWRVJTSU9OX1NUUklOR19NT0RVTEVfRklMRTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwdXNoIEBWZXJzaW9uU3RyaW5nTW9kdWxlcywgJENsYXNzTmFtZUZpbmFsUGFydDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkUGFyYW17RGF0YX0tPiUqID0gbWFwIHsgJF8gPT4gJF8gfSBAVmVyc2lvblN0cmluZ01vZHVsZXM7CiAgICAgICAgJFBhcmFte0Jsb2NrfSA9ICdPcHRpb24nOwogICAgfQoKICAgIGlmICggJFNlbGYtPntDb25maWdJdGVtfS0+e0Jsb2NrfSBlcSAnQ29uZmlnSXRlbVZlcnNpb25UcmlnZ2VyJyApIHsKICAgICAgICBpZiAoICRQYXJhbXtHZW5lcmFsQ2F0YWxvZ0RhdGF9e0l0ZW1JRH0gbmUgJ05FVycgKSB7CiAgICAgICAgICAgIG15ICRDbGFzc0RlZmluaXRpb24gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNvbmZpZ0l0ZW0nKS0+RGVmaW5pdGlvbkdldCgKICAgICAgICAgICAgICAgIENsYXNzSUQgPT4gJFBhcmFte0dlbmVyYWxDYXRhbG9nRGF0YX17SXRlbUlEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJUR5bmFtaWNGaWVsZE5hbWVzID0gbWFwIHsgJ0R5bmFtaWNGaWVsZF8nIC4gJF8gPT4gJ0R5bmFtaWNGaWVsZF8nIC4gJF8gfSBrZXlzICRDbGFzc0RlZmluaXRpb24tPntEeW5hbWljRmllbGRSZWZ9LT4lKjsKCiAgICAgICAgICAgICRQYXJhbXtEYXRhfSA9IHsKICAgICAgICAgICAgICAgICRTZWxmLT57Q29uZmlnSXRlbX0tPntEYXRhfS0+JSosCiAgICAgICAgICAgICAgICAlRHluYW1pY0ZpZWxkTmFtZXMsCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAkUGFyYW17QmxvY2t9ID0gJ09wdGlvbic7CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ0l0ZW19LT57QmxvY2t9IGVxICdDb25maWdJdGVtQ2xhc3NDYXRlZ29yaWVzJyApIHsKICAgICAgICBteSBAQ2F0ZWdvcmllcyA9IHZhbHVlcyAlewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUxpc3QoCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q29uZmlnSXRlbTo6Q2xhc3M6OkNhdGVnb3J5JywKICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICkKICAgICAgICB9OwogICAgICAgICRQYXJhbXtEYXRhfS0+JSogPSBtYXAgeyAkXyA9PiAkXyB9IEBDYXRlZ29yaWVzOwogICAgICAgICRQYXJhbXtCbG9ja30gPSAnT3B0aW9uJzsKICAgIH0KCiAgICBwdXNoKAogICAgICAgIEBQYXJhbXMsCiAgICAgICAgewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJFNlbGYtPntDb25maWdJdGVtfS0+e1ByZWZLZXl9LAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbSwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gQFBhcmFtczsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICV7ICRQYXJhbXtHZXRQYXJhbX0gfSApIHsKICAgICAgICBteSBAQXJyYXkgPSBAeyAkUGFyYW17R2V0UGFyYW19LT57JEtleX0gfTsKCiAgICAgICAgIyBwcmVmIHVwZGF0ZSBkYgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5HZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzU2V0KAogICAgICAgICAgICBJdGVtSUQgPT4gJFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgIEtleSAgICA9PiAkS2V5LAogICAgICAgICAgICBWYWx1ZSAgPT4gXEBBcnJheSwKICAgICAgICApOwogICAgfQoKICAgICRTZWxmLT57TWVzc2FnZX0gPSAnUHJlZmVyZW5jZXMgdXBkYXRlZCBzdWNjZXNzZnVsbHkhJzsKICAgIHJldHVybiAxOwp9CgpzdWIgRXJyb3IgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gJFNlbGYtPntFcnJvcn0gfHwgJyc7Cn0KCnN1YiBNZXNzYWdlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuICRTZWxmLT57TWVzc2FnZX0gfHwgJyc7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AAAGeneralCatalog.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgojIENvbW1vbgpbJSBUcmFuc2xhdGUoIkZ1bmN0aW9uYWxpdHkiKSB8IGh0bWwgJV0K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminDynamicFieldGeneralCatalog.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSW52aXNpYmxlVGV4dCI+CiAgICAgICAgWyUgVHJhbnNsYXRlKCJEeW5hbWljIEZpZWxkcyIpIHwgaHRtbCAlXSAtIFslIFRyYW5zbGF0ZShEYXRhLk9iamVjdFR5cGVOYW1lKSB8IGh0bWwgJV06CiAgICAgICAgWyUgVVNFIFRpdGxlID0gU3RyaW5nKERhdGEuQnJlYWRjcnVtYlRleHQpICVdCiAgICAgICAgWyUgVGl0bGUgfCBodG1sICVdCiAgICA8L2gxPgoKICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgnRHluYW1pYyBGaWVsZHMgTWFuYWdlbWVudCcpLAogICAgICAgICAgICAgICAgTGluayA9PiAnQWRtaW5EeW5hbWljRmllbGQnIF8gRGF0YS5GaWx0ZXJTdHJnLAogICAgICAgICAgICB9LAogICAgICAgIF0KICAgICVdCgogICAgWyUgVVNFIEJyZWFkY3J1bWJOYW1lID0gU3RyaW5nKFRyYW5zbGF0ZShEYXRhLk9iamVjdFR5cGVOYW1lKSkgJV0KCiAgICBbJSBTV0lUQ0ggRGF0YS5Nb2RlICVdCiAgICAgICAgWyUgQ0FTRSAnQWRkJyAlXQogICAgICAgICAgICBbJSBCcmVhZGNydW1iUGF0aC5wdXNoKHsgTmFtZSA9PiBCcmVhZGNydW1iTmFtZS5hcHBlbmQoICc6ICcsIFRpdGxlICkgfSkgJV0KICAgICAgICBbJSBDQVNFICdDaGFuZ2UnICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IEJyZWFkY3J1bWJOYW1lLmFwcGVuZCggJzogJywgVGl0bGUsICcgLSAnLCBEYXRhLk5hbWUgKSB9KSAlXQogICAgWyUgRU5EICVdCgogICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pbkR5bmFtaWNGaWVsZFslIERhdGEuRmlsdGVyU3RyZyAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gYmFjayB0byBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGZvcm0gaWQ9IkVudGl0eVVwZGF0ZSIgYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iQWRtaW5EeW5hbWljRmllbGRHZW5lcmFsQ2F0YWxvZyI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuTW9kZSB8IGh0bWwgJV1BY3Rpb24iPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJPYmplY3RUeXBlIiB2YWx1ZT0iWyUgRGF0YS5PYmplY3RUeXBlIHwgaHRtbCAlXSI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkZpZWxkVHlwZSIgdmFsdWU9IlslIERhdGEuRmllbGRUeXBlIHwgaHRtbCAlXSI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik9iamVjdFR5cGVGaWx0ZXIiIHZhbHVlPSJbJSBEYXRhLk9iamVjdFR5cGVGaWx0ZXIgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJOYW1lc3BhY2VGaWx0ZXIiIHZhbHVlPSJbJSBEYXRhLk5hbWVzcGFjZUZpbHRlciB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IklEIiB2YWx1ZT0iWyUgRGF0YS5JRCB8IGh0bWwgJV0iPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDb250aW51ZUFmdGVyU2F2ZSIgaWQ9IkNvbnRpbnVlQWZ0ZXJTYXZlIiB2YWx1ZT0iIi8+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJHZW5lcmFsIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTGF5b3V0R3JpZCBDb2x1bW5zV2l0aFNwYWNpbmciPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTaXplMW9mMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTmFtZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ik5hbWUiIGNsYXNzPSJXNTBwYyBbJSBEYXRhLk5hbWVTZXJ2ZXJFcnJvciB8IGh0bWwgJV0gWyUgRGF0YS5TaG93V2FybmluZyB8IGh0bWwgJV0gIFZhbGlkYXRlX0FscGhhbnVtZXJpYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBEYXRhLlBsYWluRmllbGROYW1lIHwgaHRtbCAlXSIgbmFtZT0iTmFtZSIgWyUgRGF0YS5SZWFkb25seUludGVybmFsRmllbGQgfCBodG1sICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOYW1lRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQsIGFuZCB0aGUgdmFsdWUgc2hvdWxkIGJlIGFscGhhYmV0aWMgYW5kIG51bWVyaWMgY2hhcmFjdGVycyBvbmx5LiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuTmFtZVNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJNdXN0IGJlIHVuaXF1ZSBhbmQgb25seSBhY2NlcHQgYWxwaGFiZXRpYyBhbmQgbnVtZXJpYyBjaGFyYWN0ZXJzLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Ildhcm5pbmcgSGlkZGVuIj5bJSBUcmFuc2xhdGUoIkNoYW5naW5nIHRoaXMgdmFsdWUgd2lsbCByZXF1aXJlIG1hbnVhbCBjaGFuZ2VzIGluIHRoZSBzeXN0ZW0uIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTGFiZWwiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiTGFiZWwiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iTGFiZWwiIGNsYXNzPSJXNTBwYyBbJSBEYXRhLkxhYmVsU2VydmVyRXJyb3IgfCBodG1sICVdIFZhbGlkYXRlX1JlcXVpcmVkIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjIwMCIgdmFsdWU9IlslIERhdGEuTGFiZWwgfCBodG1sICVdIiBuYW1lPSJMYWJlbCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJMYWJlbEVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGFiZWxTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoIlRoaXMgaXMgdGhlIG5hbWUgdG8gYmUgc2hvd24gb24gdGhlIHNjcmVlbnMgd2hlcmUgdGhlIGZpZWxkIGlzIGFjdGl2ZS4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJGaWVsZE9yZGVyIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkZpZWxkIG9yZGVyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkR5bmFtaWNGaWVsZE9yZGVyU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJGaWVsZE9yZGVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgbnVtZXJpYy4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkZpZWxkT3JkZXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLkZpZWxkT3JkZXJTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiVGhpcyBpcyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhpcyBmaWVsZCB3aWxsIGJlIHNob3duIG9uIHRoZSBzY3JlZW5zIHdoZXJlIGlzIGFjdGl2ZS4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkTmFtZXNwYWNlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOYW1lc3BhY2UiPlslIFRyYW5zbGF0ZSgiTmFtZXNwYWNlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5hbWVzcGFjZVN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiVGhpcyBpcyB0aGUgbmFtZXNwYWNlIGluIHdoaWNoIHRoaXMgZmllbGQgd2lsbCBiZSB1c2VkIGFzIHByZWZpeCB3aXRoIHRoZSBuYW1lLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGROYW1lc3BhY2UiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUb29sdGlwVmFsdWUiPlslIFRyYW5zbGF0ZSgiVG9vbHRpcCBtZXNzYWdlOiIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9IlRvb2x0aXBWYWx1ZSIgY2xhc3M9Ilc3NXBjIiByb3dzPSIzIiBjb2xzPSI4MCIgbmFtZT0iVG9vbHRpcCI+WyUgRGF0YS5Ub29sdGlwIHwgaHRtbCAlXTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoIlRoaXMgaXMgdGhlIHRvb2x0aXAgbWVzc2FnZSBzaG93biBpbnNpZGUgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNpemUxb2YyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJWYWxpZElEIj5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbGlkaXR5U3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJWYWxpZElERXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJWYWxpZElEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZXF1aXJlZFZhbGlkT3B0aW9uU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlJlcXVpcmVkVmFsaWRPcHRpb25TZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkluU2V0dGluZ1ZhbGlkT3B0aW9uU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSXMgbm90IHBvc3NpYmxlIHRvIGludmFsaWRhdGUgdGhpcyBlbnRyeSwgYWxsIGNvbmZpZyBzZXR0aW5ncyBoYXZlIHRvIGJlIGNoYW5nZWQgYmVmb3JlaGFuZC4iKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkluU2V0dGluZ1ZhbGlkT3B0aW9uU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkZpZWxkVHlwZU5hbWUiPlslIFRyYW5zbGF0ZSgiRmllbGQgdHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJGaWVsZFR5cGVOYW1lIiByZWFkb25seSBjbGFzcz0iVzUwcGMiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjAwIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKERhdGEuRmllbGRUeXBlTmFtZSkgfCBodG1sICVdIiBuYW1lPSJGaWVsZFR5cGVOYW1lIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iT2JqZWN0VHlwZU5hbWUiPlslIFRyYW5zbGF0ZSgiT2JqZWN0IHR5cGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT2JqZWN0VHlwZU5hbWUiIHJlYWRvbmx5IGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBUcmFuc2xhdGUoRGF0YS5PYmplY3RUeXBlTmFtZSkgfCBodG1sICVdIiBuYW1lPSJPYmplY3RUeXBlTmFtZSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbnRlcm5hbEZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJJbnRlcm5hbEZpZWxkIj5bJSBUcmFuc2xhdGUoIkludGVybmFsIGZpZWxkIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkludGVybmFsRmllbGQiIHJlYWRvbmx5IGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIxIiB2YWx1ZT0iWyUgRGF0YS5JbnRlcm5hbEZpZWxkIHwgaHRtbCAlXSIgbmFtZT0iSW50ZXJuYWxGaWVsZCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcHJvdGVjdGVkIGFuZCBjYW4ndCBiZSBkZWxldGVkLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkludGVybmFsRmllbGQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkSW5TeXNDb25maWciKSAlXQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik9sZE5hbWUiIGlkPSJPbGROYW1lIiB2YWx1ZT0iWyUgRGF0YS5PbGROYW1lIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlVwZGF0ZUVudGl0eSIgaWQ9IlVwZGF0ZUVudGl0eSIgdmFsdWU9IiIvPgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkVudGl0eUluU2V0dGluZyIgY2xhc3M9IkhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlRleHREaWFsb2ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPlslIFRyYW5zbGF0ZSgiVGhpcyBkeW5hbWljIGZpZWxkIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBjb25maWcgc2V0dGluZ3M6IikgfCBodG1sICVdPC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGRJblN5c0NvbmZpZ1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJJblN5c0NvbmZpZ1NldHRpbmciPlslIERhdGEuU2V0dGluZ05hbWUgJV08L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRJblN5c0NvbmZpZ1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRJblN5c0NvbmZpZyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZEluU3lzQ29uZmlnRGlydHkiKSAlXQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN5c0NvbmZpZ0RpcnR5IiBpZD0iU3lzQ29uZmlnRGlydHkiIHZhbHVlPSIxIi8+ClslIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRJblN5c0NvbmZpZ0RpcnR5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoRGF0YS5GaWVsZFR5cGVOYW1lKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJGaWVsZCBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlBvc3NpYmxlTm9uZSI+WyUgVHJhbnNsYXRlKCJBZGQgZW1wdHkgdmFsdWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qb3NzaWJsZU5vbmVTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJBY3RpdmF0ZSB0aGlzIG9wdGlvbiB0byBjcmVhdGUgYW4gZW1wdHkgc2VsZWN0YWJsZSB2YWx1ZS4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJHZW5lcmFsQ2F0YWxvZ0NsYXNzIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiRmlsdGVyIGl0ZW1zIGJ5IGNsYXNzLiIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuR2VuZXJhbENhdGFsb2dDbGFzc1N0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkdlbmVyYWxDYXRhbG9nQ2xhc3NFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJHZW5lcmFsQ2F0YWxvZ0NsYXNzU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5HZW5lcmFsQ2F0YWxvZ0NsYXNzU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJTZXQgdGhlIGdlbmVyYWwgY2F0YWxvZyBjbGFzcy4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJNdWx0aXNlbGVjdCI+WyUgVHJhbnNsYXRlKCJNdWx0aXNlbGVjdCIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iTXVsdGlzZWxlY3QiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJNdWx0aXNlbGVjdCIgWyUgRGF0YS5NdWx0aXNlbGVjdCB8IGh0bWwgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTXVsdGlWYWx1ZSI+WyUgVHJhbnNsYXRlKCJNdWx0aXBsZSBWYWx1ZXMiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk11bHRpVmFsdWVTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJBY3RpdmF0ZSB0aGlzIG9wdGlvbiB0byBhbGxvdyBtdWx0aXBsZSB2YWx1ZXMgZm9yIHRoaXMgZmllbGQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29uZmlnUGFyYW1Sb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLkNvbmZpZ1BhcmFtTmFtZSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpZWxkU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZShEYXRhLkV4cGxhbmF0aW9uKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJDb25maWdQYXJhbVJvdyIpICVdCgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuTW9kZSA9PSAnQ2hhbmdlJyAlXQogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgaWQ9IlN1Ym1pdEFuZENvbnRpbnVlIiB0eXBlPSJidXR0b24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSBhbmQgZmluaXNoIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIFslIEVMU0UgJV0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIGlkPSJTdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5EeW5hbWljRmllbGRbJSBEYXRhLkZpbHRlclN0cmcgJV0iPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminGeneralCatalog.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlldyIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxPlslIFRyYW5zbGF0ZSgiR2VuZXJhbCBDYXRhbG9nIE1hbmFnZW1lbnQiKSB8IGh0bWwgJV08L2gxPgoKICAgIFslIFVTRSBJdGVtc1RpdGxlID0gU3RyaW5nKFRyYW5zbGF0ZSgiSXRlbXMgaW4gQ2xhc3MiKSkgJV0KICAgIFslIFVTRSBFZGl0VGl0bGUgID0gU3RyaW5nKFRyYW5zbGF0ZSgiRWRpdCBJdGVtIikpICVdCgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdHZW5lcmFsIENhdGFsb2cgTWFuYWdlbWVudCcpLAogICAgICAgICAgICAgICAgTGluayA9PiAnQWRtaW5HZW5lcmFsQ2F0YWxvZycsCiAgICAgICAgICAgIH0sCiAgICAgICAgXTsKCiAgICAgICAgSUYgRGF0YS5DbGFzcyAmJiBEYXRhLkNsYXNzID09ICdORVcnOwoKICAgICAgICAgICAgQnJlYWRjcnVtYlBhdGgucHVzaCh7CiAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgnQWRkIENsYXNzJyksCiAgICAgICAgICAgIH0pOwoKICAgICAgICBFTFNJRiBEYXRhLkNsYXNzOwoKICAgICAgICAgICAgQ2xhc3NVUkkgPSBEYXRhLkNsYXNzOwoKICAgICAgICAgICAgQnJlYWRjcnVtYlBhdGgucHVzaCh7CiAgICAgICAgICAgICAgICBOYW1lID0+IEl0ZW1zVGl0bGUuYXBwZW5kKCAnOiAnLCBEYXRhLkNsYXNzICksCiAgICAgICAgICAgICAgICBMaW5rID0+ICdBZG1pbkdlbmVyYWxDYXRhbG9nO1N1YmFjdGlvbj1JdGVtTGlzdDtDbGFzcz0nIF8gQ2xhc3NVUkksCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgSUYgRGF0YS5TdWJhY3Rpb24gJiYgRGF0YS5TdWJhY3Rpb24gPT0gJ0l0ZW1FZGl0JzsKICAgICAgICAgICAgICAgIEJyZWFkY3J1bWJQYXRoLnB1c2goewogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gRGF0YS5JdGVtRWRpdCA/IEVkaXRUaXRsZS5hcHBlbmQoICc6ICcsIERhdGEuSXRlbU5hbWUgKSA6IFRyYW5zbGF0ZSgnQWRkIEl0ZW0nKSwKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgRU5EOwoKICAgICAgICBFTkQ7CiAgICAlXQoKICAgIFslIElOQ0xVREUgIkJyZWFkY3J1bWIudHQiIFBhdGggPSBCcmVhZGNydW1iUGF0aCAlXQoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNsdWRlSW52YWxpZCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkZpbHRlciBieSB2YWxpZCBzdGF0ZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IkluY2x1ZGVJbnZhbGlkIiBuYW1lPSJJbmNsdWRlSW52YWxpZCIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkluY2x1ZGUgaW52YWxpZCBpdGVtcyIpIHwgaHRtbCAlXSIgWyUgRGF0YS5JbmNsdWRlSW52YWxpZENoZWNrZWQgfCBodG1sICVdLz4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkluY2x1ZGVJbnZhbGlkIj5bJSBUcmFuc2xhdGUoIkluY2x1ZGUgaW52YWxpZCBpdGVtcyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5jbHVkZUludmFsaWQiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9J0NvbnRlbnQnPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uQWRkSXRlbSIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0iZ2V0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9Ikl0ZW1FZGl0Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDbGFzcyIgdmFsdWU9IlslIERhdGEuQ2xhc3MgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJJdGVtSUQiIHZhbHVlPSJORVciLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIENyZWF0ZSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiQWRkIENhdGFsb2cgSXRlbSIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZEl0ZW0iKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRDbGFzcyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0iZ2V0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9Ikl0ZW1FZGl0Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJJdGVtSUQiIHZhbHVlPSJORVciLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNsYXNzIiB2YWx1ZT0iTkVXIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciBDcmVhdGUiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQWRkIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCBDYXRhbG9nIENsYXNzIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkQ2xhc3MiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3Q2xhc3MiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNhdGFsb2cgQ2xhc3MiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld0NsYXNzTGlzdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXNCbG9jayIgIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1JdGVtTGlzdDtDbGFzcz1bJSBEYXRhLkNsYXNzIHwgdXJpICVdIj5bJSBEYXRhLkNsYXNzIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld0NsYXNzTGlzdCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJOb0RhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdDbGFzcyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld0l0ZW0iKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9Ilc2MHBjIj5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIiPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld0l0ZW1MaXN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuVmFsaWRJRCAhPSAxJV1jbGFzcz0iSW52YWxpZCJbJSBFTkQgJV0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUl0ZW1FZGl0O0l0ZW1JRD1bJSBEYXRhLkl0ZW1JRCB8IHVyaSAlXSI+WyUgRGF0YS5OYW1lIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkNlbnRlciI+WyUgVHJhbnNsYXRlKERhdGEuVmFsaWQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld0l0ZW1MaXN0IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld0l0ZW0iKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiSXRlbUVkaXQiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslLQogICAgICAgICAgICAgICAgSUYgRGF0YS5DbGFzcyAmJiBEYXRhLkNsYXNzID09ICdORVcnOwogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0ZSgiQWRkIENhdGFsb2cgQ2xhc3MiKSB8IGh0bWw7CiAgICAgICAgICAgICAgICBFTFNJRiBEYXRhLkl0ZW1FZGl0OwogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0ZSgiRWRpdCBDYXRhbG9nIEl0ZW0iKSB8IGh0bWw7CiAgICAgICAgICAgICAgICBFTFNFOwogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0ZSgiQWRkIENhdGFsb2cgSXRlbSIpIHwgaHRtbDsKICAgICAgICAgICAgICAgIEVORDsKICAgICAgICAgICAgICAgICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJnZXQiIGNsYXNzPSJWYWxpZGF0ZSI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9Ikl0ZW1TYXZlIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iSXRlbUlEIiB2YWx1ZT0iWyUgRGF0YS5JdGVtSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ29udGludWVBZnRlclNhdmUiIGlkPSJDb250aW51ZUFmdGVyU2F2ZSIgdmFsdWU9IiIvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSXRlbUVkaXRDbGFzc0FkZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkNsYXNzRHNjIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiQ2F0YWxvZyBDbGFzcyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iQ2xhc3MiIGlkPSJDbGFzc0RzYyIgdmFsdWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCIgbWF4bGVuZ3RoPSIxMDAiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDbGFzc0RzY0Vycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSIgPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDbGFzc0RzY1NlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkl0ZW1FZGl0Q2xhc3NBZGQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJdGVtRWRpdENsYXNzRXhpc3QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJDYXRhbG9nIENsYXNzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2xhc3MgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDbGFzcyIgdmFsdWU9IlslIERhdGEuQ2xhc3MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkl0ZW1FZGl0Q2xhc3NFeGlzdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5hbWUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOYW1lIiBpZD0iTmFtZSIgdmFsdWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCIgbWF4bGVuZ3RoPSIxMDAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5hbWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiID48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJlZmVyZW5jZUl0ZW0iKSAlXQpbJSBJRiBEYXRhLlR5cGUgPT0gJ0lucHV0S2V5JyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdWyUgSUYgRGF0YS5LZXkgJV0gWyUgVHJhbnNsYXRlKERhdGEuS2V5KSB8IGh0bWwgJV1bJSBFTkQgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGlkPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5TZWxlY3RlZElEIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjEwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBFTFNJRiBEYXRhLlR5cGUgPT0gJ0lucHV0JyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdOjxici8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBpZD0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuU2VsZWN0ZWRJRCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5EZXNjICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKERhdGEuRGVzYykgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIEVMU0lGIERhdGEuVHlwZSA9PSAnVGV4dEFyZWEnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV06PGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIG5hbWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGlkPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiByb3dzPSJbJSBEYXRhLlJvd3MgfCBodG1sICVdIiBjb2xzPSJbJSBEYXRhLkNvbHMgfCBodG1sICVdIj5bJSBEYXRhLlNlbGVjdGVkSUQgfCBodG1sICVdPC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuRGVzYyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZShEYXRhLkRlc2MpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBFTFNJRiBEYXRhLlR5cGUgPT0gJ09wdGlvbicgJV0KICAgICAgICAgICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5NYW5kYXRvcnkgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdWyUgSUYgRGF0YS5LZXkgJV0gWyUgVHJhbnNsYXRlKERhdGEuS2V5KSB8IGh0bWwgJV1bJSBFTkQgJV06PGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdWyUgSUYgRGF0YS5LZXkgJV0gWyUgVHJhbnNsYXRlKERhdGEuS2V5KSB8IGh0bWwgJV1bJSBFTkQgJV06PGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkRlc2MgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoRGF0YS5EZXNjKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuTWFuZGF0b3J5ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJbJSBEYXRhLk5hbWUgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiID48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iWyUgRGF0YS5OYW1lICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIEVMU0lGIERhdGEuVHlwZSA9PSAnVXBsb2FkJyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdWyUgSUYgRGF0YS5LZXkgJV0gWyUgVHJhbnNsYXRlKERhdGEuS2V5KSB8IGh0bWwgJV1bJSBFTkQgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGlkPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiB0eXBlPSJmaWxlIiBzaXplPSIzMCIgY2xhc3M9ImZpeGVkIi8+PGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiI+WyUgRGF0YS5GaWxlbmFtZSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIEVMU0lGIERhdGEuVHlwZSA9PSAnUGFzc3dvcmQnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV1bJSBJRiBEYXRhLktleSAlXSBbJSBUcmFuc2xhdGUoRGF0YS5LZXkpIHwgaHRtbCAlXVslIEVORCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGlkPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiB2YWx1ZT0iIiBjbGFzcz0iVzUwcGMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgRUxTSUYgRGF0YS5UeXBlID09ICdDb2xvclBpY2tlcicgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXTo8YnIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaWQ9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLlNlbGVjdGVkSUQgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgSlNDb2xvclBpY2tlciB7cGlja2VyQm9yZGVyQ29sb3I6JyNCQkIgI0JCQiAjQkJCICNCQkInLCBwaWNrZXJJbnNldENvbG9yOicjQkJCICNCQkIgI0JCQiAjQkJCJ30iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuRGVzYyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZShEYXRhLkRlc2MpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBFTkQgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByZWZlcmVuY2VJdGVtIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVmFsaWRJRCI+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbGlkT3B0aW9uU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ29tbWVudCI+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDb21tZW50IiBpZD0iQ29tbWVudCIgdmFsdWU9IlslIERhdGEuQ29tbWVudCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgbWF4bGVuZ3RoPSIyMDAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgSUYgKERhdGEuQ2xhc3MgJiYgRGF0YS5DbGFzcyA9PSAnTkVXJykgfHwgRGF0YS5JdGVtSUQgPT0gJ05FVycgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5hbWU9IlN1Ym1pdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVMU0UgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5hbWU9IlN1Ym1pdEFuZENvbnRpbnVlIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0QW5kQ29udGludWUiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlN1Ym1pdCI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5hbWU9IlN1Ym1pdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUgYW5kIGZpbmlzaCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUl0ZW1MaXN0O0NsYXNzPVslIERhdGEuQ2xhc3MgJV0iPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSXRlbUVkaXQiKSAlXQogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXciKSAlXQo=</File>
        <File Location="Kernel/System/DynamicField/Driver/GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OkdlbmVyYWxDYXRhbG9nOwoKIyMgbm9maWx0ZXIoVGlkeUFsbDo6UGx1Z2luOjpPVE9CTzo6UGVybDo6UGFyYW1PYmplY3QpCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwp1c2UgdXRmODsKCnVzZSBwYXJlbnQgcXcoS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjpCYXNlRW50aXR5KTsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TWFpbicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjpHZW5lcmFsQ2F0YWxvZyAtIGRyaXZlciBmb3IgdGhlIEdlbmVyYWxDYXRhbG9nIGR5bmFtaWMgZmllbGQKCj1oZWFkMSBERVNDUklQVElPTgoKRHluYW1pY0ZpZWxkcyBHZW5lcmFsQ2F0YWxvZyBEcml2ZXIgZGVsZWdhdGUuIFRoaXMgZHluYW1pYyBmaWVsZCBkcml2ZXIgZ2l2ZXMgYWNjZXNzIHRvIHRoZSBsaXN0cwp0aGF0IGFyZSBkZWNsYXJlZCBpbiB0aGUgZ2VuZXJhbCBjYXRhbG9nLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKClRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgTDxLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kPi4KUGxlYXNlIGxvb2sgdGhlcmUgZm9yIGEgZGV0YWlsZWQgcmVmZXJlbmNlIG9mIHRoZSBmdW5jdGlvbnMuCgo9aGVhZDIgbmV3KCkKCml0IGlzIHVzdWFsbHkgbm90IG5lY2Vzc2FyeSB0byBleHBsaWNpdGx5IGNyZWF0ZSBpbnN0YW5jZXMgb2YgZHluYW1pYyBmaWVsZCBkcml2ZXJzLgpJbnN0YW5jZXMgb2YgdGhlIGRyaXZlcnMgYXJlIGNyZWF0ZWQgaW4gdGhlIGNvbnN0cnVjdG9yIG9mIHRoZQpkeW5hbWljIGZpZWxkIGJhY2tlbmQgb2JqZWN0IEM8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uCgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICgkVHlwZSkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0gYmxlc3Mge30sICRUeXBlOwoKICAgICMgR2VuZXJhbENhdGFsb2cgZHluYW1pYyBmaWVsZHMgYXJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgdGFibGUgYXR0cmlidXRlIGR5bmFtaWNfZmllbGRfdmFsdWUudmFsdWVfaW50LgogICAgJFNlbGYtPntWYWx1ZVR5cGV9ICAgICAgPSAnSW50ZWdlcic7CiAgICAkU2VsZi0+e1ZhbHVlS2V5fSAgICAgICA9ICdWYWx1ZUludCc7CiAgICAkU2VsZi0+e1RhYmxlQXR0cmlidXRlfSA9ICd2YWx1ZV9pbnQnOwoKICAgICMgc2V0IGZpZWxkIGJlaGF2aW9ycwogICAgJFNlbGYtPntCZWhhdmlvcnN9ID0gewogICAgICAgICdJc0FDTFJlZHVjaWJsZScgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICdJc05vdGlmaWNhdGlvbkV2ZW50Q29uZGl0aW9uJyA9PiAwLAogICAgICAgICdJc1NvcnRhYmxlJyAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICdJc0ZpbHRyYWJsZScgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICdJc1N0YXRzQ29uZGl0aW9uJyAgICAgICAgICAgICA9PiAwLAogICAgICAgICdJc0N1c3RvbWVySW50ZXJmYWNlQ2FwYWJsZScgICA9PiAxLAogICAgICAgICdJc0xpa2VPcGVyYXRvckNhcGFibGUnICAgICAgICA9PiAwLCAgICAjIG9ubHkgdGhlIGl0ZW1faWRzIGFyZSBzdG9yZWQgaW4gZHluYW1pY19maWVsZF92YWx1ZQogICAgICAgICdJc0hpZGRlbkluVGlja2V0SW5mb3JtYXRpb24nICA9PiAwLAogICAgICAgICdJc1NldENhcGFibGUnICAgICAgICAgICAgICAgICA9PiAxLAogICAgfTsKCiAgICAjIGdldCB0aGUgRHluYW1pYyBGaWVsZCBCYWNrZW5kIGN1c3RvbSBleHRlbnNpb25zCiAgICBteSAkRHluYW1pY0ZpZWxkRHJpdmVyRXh0ZW5zaW9ucyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpEcml2ZXI6OkdlbmVyYWxDYXRhbG9nJyk7CgogICAgRVhURU5TSU9OOgogICAgZm9yIG15ICRFeHRlbnNpb25LZXkgKCBzb3J0IGtleXMgJXskRHluYW1pY0ZpZWxkRHJpdmVyRXh0ZW5zaW9uc30gKSB7CgogICAgICAgICMgc2tpcCBpbnZhbGlkIGV4dGVuc2lvbnMKICAgICAgICBuZXh0IEVYVEVOU0lPTiBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICREeW5hbWljRmllbGREcml2ZXJFeHRlbnNpb25zLT57JEV4dGVuc2lvbktleX0gKTsKCiAgICAgICAgIyBjcmVhdGUgYSBleHRlbnNpb24gY29uZmlnIHNob3J0Y3V0CiAgICAgICAgbXkgJEV4dGVuc2lvbiA9ICREeW5hbWljRmllbGREcml2ZXJFeHRlbnNpb25zLT57JEV4dGVuc2lvbktleX07CgogICAgICAgICMgY2hlY2sgaWYgZXh0ZW5zaW9uIGhhcyBhIG5ldyBtb2R1bGUKICAgICAgICBpZiAoICRFeHRlbnNpb24tPntNb2R1bGV9ICkgewoKICAgICAgICAgICAgIyBjaGVjayBpZiBtb2R1bGUgY2FuIGJlIGxvYWRlZAogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZUJhc2VDbGFzcyggJEV4dGVuc2lvbi0+e01vZHVsZX0gKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkaWUgIkNhbid0IGxvYWQgZHluYW1pYyBmaWVsZHMgYmFja2VuZCBtb2R1bGUiCiAgICAgICAgICAgICAgICAgICAgLiAiICRFeHRlbnNpb24tPntNb2R1bGV9ISAkQCI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgZXh0ZW5zaW9uIGNvbnRhaW5zIG1vcmUgYmVoYXZpb3JzCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJEV4dGVuc2lvbi0+e0JlaGF2aW9yc30gKSApIHsKCiAgICAgICAgICAgICV7ICRTZWxmLT57QmVoYXZpb3JzfSB9ID0gKAogICAgICAgICAgICAgICAgJXsgJFNlbGYtPntCZWhhdmlvcnN9IH0sCiAgICAgICAgICAgICAgICAleyAkRXh0ZW5zaW9uLT57QmVoYXZpb3JzfSB9CiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIERpc3BsYXlWYWx1ZVJlbmRlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWN0aXZhdGUgSFRNTE91dHB1dCB3aGVuIGl0IHdhc24ndCBzcGVjaWZpZWQKICAgIG15ICRIVE1MT3V0cHV0ID0gJFBhcmFte0hUTUxPdXRwdXR9IC8vIDE7CgogICAgIyBnZXQgcmF3IFZhbHVlIHN0cmluZ3MgZnJvbSBmaWVsZCB2YWx1ZQogICAgbXkgQFZhbHVlcyA9ICFyZWYgJFBhcmFte1ZhbHVlfQogICAgICAgID8gKCAkUGFyYW17VmFsdWV9ICkKICAgICAgICA6IHNjYWxhciAkUGFyYW17VmFsdWV9LT5AKiA/ICRQYXJhbXtWYWx1ZX0tPkAqCiAgICAgICAgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJycpOwoKICAgICRQYXJhbXtWYWx1ZU1heENoYXJzfSB8fD0gJyc7CgogICAgbXkgJEl0ZW1MaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9e0NvbmZpZ317Q2xhc3N9LAogICAgKTsKCiAgICBteSBAUmVhZGFibGVWYWx1ZXM7CiAgICBteSBAUmVhZGFibGVUaXRsZXM7CiAgICBmb3IgbXkgJFZhbHVlSXRlbSAoQFZhbHVlcykgewogICAgICAgICRWYWx1ZUl0ZW0gLy89ICcnOwoKICAgICAgICAjIHJlcGxhY2UgYWdlbnQgbG9naW4gd2l0aCBmdWxsIG5hbWUKICAgICAgICBpZiAoJFZhbHVlSXRlbSkgewogICAgICAgICAgICAkVmFsdWVJdGVtID0gJEl0ZW1MaXN0LT57JFZhbHVlSXRlbX07CiAgICAgICAgfQoKICAgICAgICAjIHNldCB0aXRsZSBhcyB2YWx1ZSBhZnRlciB1cGRhdGUgYW5kIGJlZm9yZSBsaW1pdAogICAgICAgIHB1c2ggQFJlYWRhYmxlVGl0bGVzLCAkVmFsdWVJdGVtOwoKICAgICAgICAjIEhUTUwgT3V0cHV0IHRyYW5zZm9ybWF0aW9uCiAgICAgICAgaWYgKCRIVE1MT3V0cHV0KSB7CiAgICAgICAgICAgICRWYWx1ZUl0ZW0gPSAkUGFyYW17TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgIFRleHQgPT4gJFZhbHVlSXRlbSwKICAgICAgICAgICAgICAgIE1heCAgPT4gJFBhcmFte1ZhbHVlTWF4Q2hhcnN9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaWYgKCAkUGFyYW17VmFsdWVNYXhDaGFyc30gJiYgbGVuZ3RoKCRWYWx1ZUl0ZW0pID4gJFBhcmFte1ZhbHVlTWF4Q2hhcnN9ICkgewogICAgICAgICAgICAgICAgJFZhbHVlSXRlbSA9IHN1YnN0ciggJFZhbHVlSXRlbSwgMCwgJFBhcmFte1ZhbHVlTWF4Q2hhcnN9ICkgLiAnLi4uJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcHVzaCBAUmVhZGFibGVWYWx1ZXMsICRWYWx1ZUl0ZW07CiAgICB9CgogICAgbXkgJFZhbHVlU2VwYXJhdG9yOwogICAgbXkgJFRpdGxlID0gam9pbiggJywgJywgQFJlYWRhYmxlVGl0bGVzICk7CgogICAgIyBIVE1MT3V0cHV0IHRyYW5zZm9ybWF0aW9ucwogICAgaWYgKCRIVE1MT3V0cHV0KSB7CiAgICAgICAgJFRpdGxlID0gJFBhcmFte0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoCiAgICAgICAgICAgIFRleHQgPT4gJFRpdGxlLAogICAgICAgICAgICBNYXggID0+ICRQYXJhbXtUaXRsZU1heENoYXJzfSB8fCAnJywKICAgICAgICApOwogICAgICAgICRWYWx1ZVNlcGFyYXRvciA9ICc8YnIvPic7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoICRQYXJhbXtUaXRsZU1heENoYXJzfSAmJiBsZW5ndGgoJFRpdGxlKSA+ICRQYXJhbXtUaXRsZU1heENoYXJzfSApIHsKICAgICAgICAgICAgJFRpdGxlID0gc3Vic3RyKCAkVGl0bGUsIDAsICRQYXJhbXtUaXRsZU1heENoYXJzfSApIC4gJy4uLic7CiAgICAgICAgfQogICAgICAgICRWYWx1ZVNlcGFyYXRvciA9ICJcbiI7CiAgICB9CgogICAgIyByZXR1cm4gYSBkYXRhIHN0cnVjdHVyZQogICAgcmV0dXJuIHsKICAgICAgICBWYWx1ZSA9PiBqb2luKCAkVmFsdWVTZXBhcmF0b3IsIEBSZWFkYWJsZVZhbHVlcyApLAogICAgICAgIFRpdGxlID0+ICRUaXRsZSwKICAgICAgICBMaW5rICA9PiB1bmRlZiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdGhpcyBmaWVsZCB0eXBlIGRvZXMgbm90IHN1cHBvcnQgdGhlIExpbmsgRmVhdHVyZQogICAgfTsKfQoKc3ViIFJlYWRhYmxlVmFsdWVSZW5kZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkVmFsdWUgPSAnJzsKCiAgICAjIGNoZWNrIHZhbHVlCiAgICBteSBAVmFsdWVzOwogICAgaWYgKCByZWYgJFBhcmFte1ZhbHVlfSBlcSAnQVJSQVknICkgewogICAgICAgIEBWYWx1ZXMgPSBAeyAkUGFyYW17VmFsdWV9IH07CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBAVmFsdWVzID0gKCAkUGFyYW17VmFsdWV9ICk7CiAgICB9CgogICAgIyBteSAkQ2xhc3NMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkNsYXNzTGlzdCgpOwogICAgbXkgJEl0ZW1MaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9e0NvbmZpZ317Q2xhc3N9LAogICAgKTsKCiAgICBteSBAUmVhZGFibGVWYWx1ZXM7CgogICAgZm9yIG15ICRJdGVtIChAVmFsdWVzKSB7CiAgICAgICAgJEl0ZW0gLy89ICcnOwoKICAgICAgICAjIHJlcGxhY2UgYWdlbnQgbG9naW4gd2l0aCBmdWxsIG5hbWUKICAgICAgICBpZiAoJEl0ZW0pIHsKICAgICAgICAgICAgJEl0ZW0gPSAkSXRlbUxpc3QtPnskSXRlbX07CiAgICAgICAgfQoKICAgICAgICBwdXNoIEBSZWFkYWJsZVZhbHVlcywgJEl0ZW0gfHwgJyc7CiAgICB9CgogICAgIyBzZXQgbmV3IGxpbmUgc2VwYXJhdG9yCiAgICBteSAkSXRlbVNlcGFyYXRvciA9ICcsICc7CgogICAgIyBPdXRwdXQgdHJhbnNmb3JtYXRpb25zCiAgICAkVmFsdWUgPSBqb2luKCAkSXRlbVNlcGFyYXRvciwgQFJlYWRhYmxlVmFsdWVzICk7CiAgICBteSAkVGl0bGUgPSAkVmFsdWU7CgogICAgIyBwcmVwYXJlIHRpdGxlCiAgICAkVGl0bGUgPSAkVmFsdWU7CgogICAgaWYgKCAkUGFyYW17VGl0bGVNYXhDaGFyc30gJiYgbGVuZ3RoICRUaXRsZSA+ICRQYXJhbXtUaXRsZU1heENoYXJzfSApIHsKICAgICAgICAkVGl0bGUgPSBzdWJzdHIoICRUaXRsZSwgMCwgJFBhcmFte1RpdGxlTWF4Q2hhcnN9ICkgLiAnLi4uJzsKICAgIH0KCiAgICAjIHJldHVybiBhIGRhdGEgc3RydWN0dXJlCiAgICByZXR1cm4gewogICAgICAgIFZhbHVlID0+ICRWYWx1ZSwKICAgICAgICBUaXRsZSA9PiAkVGl0bGUsCiAgICB9Owp9CgpzdWIgUG9zc2libGVWYWx1ZXNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkSXRlbUxpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ317Q29uZmlnfXtDbGFzc30sCiAgICApOwoKICAgIG15ICVQb3NzaWJsZVZhbHVlcyA9ICRJdGVtTGlzdC0+JSo7CgogICAgIyBzZXQgUG9zc2libGVOb25lIGF0dHJpYnV0ZQogICAgbXkgJEZpZWxkUG9zc2libGVOb25lOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtPdmVycmlkZVBvc3NpYmxlTm9uZX0gKSB7CiAgICAgICAgJEZpZWxkUG9zc2libGVOb25lID0gJFBhcmFte092ZXJyaWRlUG9zc2libGVOb25lfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRGaWVsZFBvc3NpYmxlTm9uZSA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9e0NvbmZpZ317UG9zc2libGVOb25lfSB8fCAwOwogICAgfQoKICAgICMgc2V0IG5vbmUgdmFsdWUgaWYgZGVmaW5lZCBvbiBmaWVsZCBjb25maWcKICAgIGlmICgkRmllbGRQb3NzaWJsZU5vbmUpIHsKICAgICAgICAkUG9zc2libGVWYWx1ZXN7Jyd9ID0gJy0nOwogICAgfQoKICAgIHJldHVybiBcJVBvc3NpYmxlVmFsdWVzOwp9CgpzdWIgU2VhcmNoRmllbGRSZW5kZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBwb3NzaWJsZSB2YWx1ZXMgYW5kIHBhc3MgdGhlbSBvbgogICAgJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ317Q29uZmlnfXtQb3NzaWJsZVZhbHVlc30gPSAkU2VsZi0+UG9zc2libGVWYWx1ZXNHZXQoJVBhcmFtKTsKCiAgICByZXR1cm4gJFNlbGYtPlNVUEVSOjpTZWFyY2hGaWVsZFJlbmRlciglUGFyYW0pOwp9CgoxOwo=</File>
        <File Location="Kernel/System/GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDaGVja0l0ZW0nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZyAtIGdlbmVyYWwgY2F0YWxvZyBsaWIKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9Y3V0Cgo9aGVhZDIgbmV3KCkKCmNyZWF0ZXMgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwoKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJEdlbmVyYWxDYXRhbG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IGJsZXNzIHt9LCAkVHlwZTsKCiAgICAjIGxvYWQgZ2VuZXJhdG9yIHByZWZlcmVuY2VzIG1vZHVsZQogICAgbXkgJEdlbmVyYXRvck1vZHVsZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnR2VuZXJhbENhdGFsb2c6OlByZWZlcmVuY2VzTW9kdWxlJykKICAgICAgICB8fCAnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nOjpQcmVmZXJlbmNlc0RCJzsKICAgIGlmICggJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZSgkR2VuZXJhdG9yTW9kdWxlKSApIHsKICAgICAgICAkU2VsZi0+e1ByZWZlcmVuY2VzT2JqZWN0fSA9ICRHZW5lcmF0b3JNb2R1bGUtPm5ldyglUGFyYW0pOwogICAgfQoKICAgICMgZGVmaW5lIGNhY2hlIHNldHRpbmdzCiAgICAkU2VsZi0+e0NhY2hlVHlwZX0gPSAnR2VuZXJhbENhdGFsb2cnOwogICAgJFNlbGYtPntDYWNoZVRUTH0gID0gNjAgKiA2MCAqIDM7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgQ2xhc3NMaXN0KCkKCnJldHVybiBhIHJlZmVyZW5jZSB0byBhbiBhcnJheSBvZiBhbGwgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzZXMgc29ydGVkIGFscGhhYmV0aWNhbGx5LgpDbGFzc2VzIHRoYXQgZG8gbm90IGhhdmUgYW55IHZhbGlkIGl0ZW1zIGFyZSByZXR1cm5lZCBhcyB3ZWxsLgoKICAgIG15ICRDbGFzc0xpc3QgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkNsYXNzTGlzdDsKCnJldHVybnM6CgogICAgbXkgJENsYXNzTGlzdCA9IFsgJ1Job2Rvczo6UmhvZG9zJywgJ1Job2Rvczo6U3RlZ25hJyBdOwoKPWN1dAoKc3ViIENsYXNzTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYXNrIGRhdGFiYXNlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBESVNUSU5DVChnZW5lcmFsX2NhdGFsb2dfY2xhc3MpICcKICAgICAgICAgICAgLiAnRlJPTSBnZW5lcmFsX2NhdGFsb2cgT1JERVIgQlkgZ2VuZXJhbF9jYXRhbG9nX2NsYXNzJywKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSBAQ2xhc3NMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEBDbGFzc0xpc3QsICRSb3dbMF07CiAgICB9CgogICAgIyBjYWNoZSB0aGUgcmVzdWx0CiAgICBteSAkQ2FjaGVLZXkgPSAnQ2xhc3NMaXN0JzsKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICBWYWx1ZSA9PiBcQENsYXNzTGlzdCwKICAgICk7CgogICAgcmV0dXJuIFxAQ2xhc3NMaXN0Owp9Cgo9aGVhZDIgQ2xhc3NSZW5hbWUoKQoKcmVuYW1lcyBhIGdlbmVyYWwgY2F0YWxvZyBjbGFzcwoKICAgIG15ICRTdWNjZXNzID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5DbGFzc1JlbmFtZSgKICAgICAgICBDbGFzc09sZCA9PiAnSVRTTTo6Q29uZmlnSXRlbTo6U3RhdGUnLAogICAgICAgIENsYXNzTmV3ID0+ICdJVFNNOjpDb25maWdJdGVtOjpEZXBsb3ltZW50U3RhdGUnLAogICAgKTsKCj1jdXQKCnN1YiBDbGFzc1JlbmFtZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDbGFzc09sZCBDbGFzc05ldykpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjbGVhbnVwIGdpdmVuIHBhcmFtcwogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQ2xhc3NPbGQgQ2xhc3NOZXcpKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNoZWNrSXRlbScpLT5TdHJpbmdDbGVhbigKICAgICAgICAgICAgU3RyaW5nUmVmICAgICAgICAgPT4gXCRQYXJhbXskQXJndW1lbnR9LAogICAgICAgICAgICBSZW1vdmVBbGxOZXdsaW5lcyA9PiAxLAogICAgICAgICAgICBSZW1vdmVBbGxUYWJzICAgICA9PiAxLAogICAgICAgICAgICBSZW1vdmVBbGxTcGFjZXMgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDEgaWYgJFBhcmFte0NsYXNzTmV3fSBlcSAkUGFyYW17Q2xhc3NPbGR9OwoKICAgICMgY2hlY2sgaWYgbmV3IGNsYXNzIG5hbWUgYWxyZWFkeSBleGlzdHMKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICdTRUxFQ1QgaWQgRlJPTSBnZW5lcmFsX2NhdGFsb2cgV0hFUkUgZ2VuZXJhbF9jYXRhbG9nX2NsYXNzID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte0NsYXNzTmV3fSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJEFscmVhZHlFeGlzdHMgPSAwOwogICAgd2hpbGUgKCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSApIHsKICAgICAgICAkQWxyZWFkeUV4aXN0cyA9IDE7CiAgICB9CgogICAgaWYgKCRBbHJlYWR5RXhpc3RzKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDYW4ndCByZW5hbWUgY2xhc3MgJFBhcmFte0NsYXNzT2xkfSEgTmV3IGNsYXNzbmFtZSBhbHJlYWR5IGV4aXN0cy4iCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyByZXNldCBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICApOwoKICAgICMgcmVuYW1lIGdlbmVyYWwgY2F0YWxvZyBjbGFzcwogICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJ1VQREFURSBnZW5lcmFsX2NhdGFsb2cgU0VUIGdlbmVyYWxfY2F0YWxvZ19jbGFzcyA9ID8gJwogICAgICAgICAgICAuICdXSEVSRSBnZW5lcmFsX2NhdGFsb2dfY2xhc3MgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtDbGFzc05ld30sIFwkUGFyYW17Q2xhc3NPbGR9IF0sCiAgICApOwp9Cgo9aGVhZDIgSXRlbUxpc3QoKQoKcmV0dXJucyBhIGxpc3Qgb2YgaXRlbXMgaW4gYSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgYXMgYSBoYXNoIHJlZmVyZW5jZS4KVGhlIGtleSBpcyB0aGUgY2xhc3MgSUQsIHRoZSB2YWx1ZSBpcyB0aGUgY2xhc3MgbmFtZS4KV2hlbiBubyBpdGVtcyBhcmUgZm91bmQgdGhhbiBhIHJlZmVyZW5jZSB0byBhbiBlbXB0eSBoYXNoIGlzIHJldHVybmVkLgoKV2hlbiB0aGUgcGFyYW1ldGVyIEM8VmFsaWQ+IGlzIHNldCB0byBhIHRydWUgdmFsdWUgdGhlbiBvbmx5IHZhbGlkIGl0ZW1zIGFyZSByZXR1cm5lZC4KVGhpcyBpcyB0aGUgZGVmYXVsdC4gV2hlbiBDPFZhbGlkPiBpcyBleHBsaWNpdGx5IHNldCB0byBDPDA+IHRoZW4gaW52YWxpZCBpdGVtcwphcmUgYWxzbyByZXR1cm5lZC4KClRoZSBwYXJhbWV0ZXIgQzxQcmVmZXJlbmNlcz4gYWxsb3dzIHRvIGFkZCBmdXJ0aGVyIHJlc3RyaWN0aW9ucyBvbiB0aGUgbGlzdC4KVGhlIHJlc3RyaWN0aW9ucyBhcmUgY29tYmluZWQgd2l0aCAnQU5EJyBsb2dpYy4KCiAgICBteSAkSXRlbUxpc3QgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1MaXN0KAogICAgICAgIENsYXNzICAgICAgICAgPT4gJ0lUU006OlNlcnZpY2U6OlR5cGUnLAogICAgICAgIFZhbGlkICAgICAgICAgPT4gMCwgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIGRlZmF1bHQgMQogICAgICAgIFByZWZlcmVuY2VzICAgPT4geyAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIGRlZmF1bHQge30KICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAyLCAgICAgICAgICAgICAgICAgICAgICMgb3Igd2hhdGV2ZXIgcHJlZmVyZW5jZXMgY2FuIGJlIHVzZWQKICAgICAgICB9LAogICAgKTsKClJldHVybnM6CgogICAgbXkgJEl0ZW1MaXN0ID0gewogICAgICAgIDcxID0+ICdFbmQgVXNlciBTZXJ2aWNlJywKICAgICAgICA3MiA9PiAnRnJvbnQgRW5kJywKICAgICAgICA3MyA9PiAnQmFjayBFbmQnLAogICAgICAgIC4uLgogICAgfTsKCm9yIHdoZW4gdGhlIHBhY2thZ2UgSVRTTUNvcmUgaXMgbm90IGluc3RhbGxlZDoKCiAgICBteSAkSXRlbUxpc3QgPSB7fTsKCm9yIGluIGNhc2Ugb2Ygc29tZSBlcnJvcjoKCiAgICBteSAlSXRlbUxpc2UgPSB1bmRlZjsKCj1jdXQKCnN1YiBJdGVtTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17Q2xhc3N9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBDbGFzcyEnCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZQogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17VmFsaWR9ICkgewogICAgICAgICRQYXJhbXtWYWxpZH0gPSAxOwogICAgfQoKICAgIG15ICRQcmVmZXJlbmNlc0NhY2hlS2V5ID0gJyc7CiAgICBteSAkUHJlZmVyZW5jZXNUYWJsZSAgICA9ICcnOwogICAgbXkgJFByZWZlcmVuY2VzV2hlcmUgICAgPSAnJzsKICAgIG15IEBQcmVmZXJlbmNlc0JpbmQ7CgogICAgIyBoYW5kbGUgZ2l2ZW4gcHJlZmVyZW5jZXMKICAgIGlmICggZXhpc3RzICRQYXJhbXtQcmVmZXJlbmNlc30gJiYgcmVmICRQYXJhbXtQcmVmZXJlbmNlc30gZXEgJ0hBU0gnICkgewoKICAgICAgICAkUHJlZmVyZW5jZXNUYWJsZSA9ICcsIGdlbmVyYWxfY2F0YWxvZ19wcmVmZXJlbmNlcyc7CiAgICAgICAgbXkgQFdoZXJlczsKCiAgICAgICAgIyBhZGQgYWxsIHByZWZlcmVuY2VzIGdpdmVuIHRvIHdoZXJlLWNsYXVzZQogICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICV7ICRQYXJhbXtQcmVmZXJlbmNlc30gfSApIHsKCiAgICAgICAgICAgIGlmICggcmVmKCAkUGFyYW17UHJlZmVyZW5jZXN9LT57JEtleX0gKSBuZSAnQVJSQVknICkgewogICAgICAgICAgICAgICAgJFBhcmFte1ByZWZlcmVuY2VzfS0+eyRLZXl9ID0gWyAkUGFyYW17UHJlZmVyZW5jZXN9LT57JEtleX0gXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHVzaCBAV2hlcmVzLCAnKHByZWZfa2V5ID0gPyBBTkQgcHJlZl92YWx1ZSBJTiAoJwogICAgICAgICAgICAgICAgLiBqb2luKCAnLCAnLCBtYXAgeyc/J30gQHsgJFBhcmFte1ByZWZlcmVuY2VzfS0+eyRLZXl9IH0gKQogICAgICAgICAgICAgICAgLiAnKSknOwoKICAgICAgICAgICAgcHVzaCBAUHJlZmVyZW5jZXNCaW5kLCBcJEtleSwgbWFwIHsgXCRfIH0gQHsgJFBhcmFte1ByZWZlcmVuY2VzfS0+eyRLZXl9IH07CgogICAgICAgICAgICAjIGFkZCBmdW5jdGlvbmFsaXR5IGxpc3QgdG8gY2FjaGUga2V5CiAgICAgICAgICAgICRQcmVmZXJlbmNlc0NhY2hlS2V5IC49ICcjIyMjJyBpZiAkUHJlZmVyZW5jZXNDYWNoZUtleTsKICAgICAgICAgICAgJFByZWZlcmVuY2VzQ2FjaGVLZXkgLj0gam9pbiBxeyMjIyN9LCAkS2V5LCBtYXAgeyRffSBAeyAkUGFyYW17UHJlZmVyZW5jZXN9LT57JEtleX0gfTsKICAgICAgICB9CgogICAgICAgICRQcmVmZXJlbmNlc1doZXJlID0gJ0FORCBnZW5lcmFsX2NhdGFsb2cuaWQgPSBnZW5lcmFsX2NhdGFsb2dfcHJlZmVyZW5jZXMuZ2VuZXJhbF9jYXRhbG9nX2lkJzsKICAgICAgICAkUHJlZmVyZW5jZXNXaGVyZSAuPSAnIEFORCAnIC4gam9pbiAnIEFORCAnLCBAV2hlcmVzOwogICAgfQoKICAgICMgY3JlYXRlIHNxbCBzdHJpbmcKICAgIG15ICRTUUwgPSAiU0VMRUNUIGlkLCBuYW1lIEZST00gZ2VuZXJhbF9jYXRhbG9nICRQcmVmZXJlbmNlc1RhYmxlICIKICAgICAgICAuICJXSEVSRSBnZW5lcmFsX2NhdGFsb2dfY2xhc3MgPSA/ICRQcmVmZXJlbmNlc1doZXJlICI7CiAgICBteSBAQmluZCA9ICggXCRQYXJhbXtDbGFzc30sIEBQcmVmZXJlbmNlc0JpbmQgKTsKCiAgICAjIGFkZCB2YWxpZCBzdHJpbmcgdG8gc3FsIHN0cmluZwogICAgaWYgKCAkUGFyYW17VmFsaWR9ICkgewogICAgICAgICRTUUwgLj0gJ0FORCB2YWxpZF9pZCA9IDEgJzsKICAgIH0KCiAgICAjIGNyZWF0ZSBjYWNoZSBrZXkKICAgIG15ICRDYWNoZUtleSA9ICdJdGVtTGlzdDo6JyAuICRQYXJhbXtDbGFzc30gLiAnIyMjIycgLiAkUGFyYW17VmFsaWR9IC4gJyMjIyMnIC4gJFByZWZlcmVuY2VzQ2FjaGVLZXk7CgogICAgIyBjaGVjayBpZiByZXN1bHQgaXMgYWxyZWFkeSBjYWNoZWQKICAgIG15ICRDYWNoZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgIyBhc2sgZGF0YWJhc2UKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfSA9ICRSb3dbMV07CiAgICB9CgogICAgIyBqdXN0IHJldHVybiB3aXRob3V0IGxvZ2dpbmcgYW4gZXJyb3IgYW5kIHdpdGhvdXQgY2FjaGluZyB0aGUgZW1wdHkgcmVzdWx0CiAgICByZXR1cm4ge30gaWYgISVEYXRhOwoKICAgICMgY2FjaGUgdGhlIHJlc3VsdAogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+IFwlRGF0YSwKICAgICk7CgogICAgcmV0dXJuIFwlRGF0YTsKfQoKPWhlYWQyIEl0ZW1HZXQoKQoKZ2V0IGl0ZW0gYXR0cmlidXRlcyBpbmNsdWRpbmcgdGhlIHByZWZlcmVuY2VzLiBOb3RlIHRoYXQgcHJlZmVyZW5jZXMgYXJlIGdlbmVyYWxseSByZXR1cm5lZCBhcyBhcnJheSByZWZzLgoKICAgIG15ICRJdGVtRGF0YVJlZiA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUdldCgKICAgICAgICBJdGVtSUQgPT4gMywKICAgICk7CgpvcgoKICAgIG15ICRJdGVtRGF0YVJlZiA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUdldCgKICAgICAgICBDbGFzcyA9PiAnSVRTTTo6U2VydmljZTo6VHlwZScsCiAgICAgICAgTmFtZSAgPT4gJ1VuZGVycGlubmluZyBDb250cmFjdCcsCiAgICApOwoKcmV0dXJucwoKICAgIG15ICRJdGVtID0gewogICAgICAgICdJdGVtSUQnICAgICA9PiAnMjMnLAogICAgICAgICdDbGFzcycgICAgICA9PiAnSVRTTTo6U2VydmljZTo6VHlwZScsCiAgICAgICAgJ05hbWUnICAgICAgID0+ICdVbmRlcnBpbm5pbmcgQ29udHJhY3QnCiAgICAgICAgJ0NvbW1lbnQnICAgID0+IFsnU29tZSBDb21tZW50J10sCiAgICAgICAgJ1ZhbGlkSUQnICAgID0+ICcxJywKICAgICAgICAnQ3JlYXRlVGltZScgPT4gJzIwMTItMDEtMTIgMDk6MzY6MjQnLAogICAgICAgICdDcmVhdGVCeScgICA9PiAnMScsCiAgICAgICAgJ0NoYW5nZVRpbWUnID0+ICcyMDEyLTAxLTEyIDA5OjM2OjI0JywKICAgICAgICAnQ2hhbmdlQnknICAgPT4gJzEnLAogICAgfTsKCj1jdXQKCnN1YiBJdGVtR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtJdGVtSUR9ICYmICggISRQYXJhbXtDbGFzc30gfHwgJFBhcmFte05hbWV9IGVxICcnICkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIEl0ZW1JRCBPUiBDbGFzcyBhbmQgTmFtZSEnCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjcmVhdGUgc3FsIHN0cmluZwogICAgbXkgJFNRTCA9ICdTRUxFQ1QgaWQsIGdlbmVyYWxfY2F0YWxvZ19jbGFzcywgbmFtZSwgdmFsaWRfaWQsIGNvbW1lbnRzLCAnCiAgICAgICAgLiAnY3JlYXRlX3RpbWUsIGNyZWF0ZV9ieSwgY2hhbmdlX3RpbWUsIGNoYW5nZV9ieSBGUk9NIGdlbmVyYWxfY2F0YWxvZyBXSEVSRSAnOwogICAgbXkgQEJJTkQ7CgogICAgIyBhZGQgb3B0aW9ucyB0byBzcWwgc3RyaW5nCiAgICBpZiAoICRQYXJhbXtDbGFzc30gJiYgJFBhcmFte05hbWV9IG5lICcnICkgewoKICAgICAgICAjIGNoZWNrIGlmIHJlc3VsdCBpcyBhbHJlYWR5IGNhY2hlZAogICAgICAgIG15ICRDYWNoZUtleSA9ICdJdGVtR2V0OjpDbGFzczo6JyAuICRQYXJhbXtDbGFzc30gLiAnOjonIC4gJFBhcmFte05hbWV9OwogICAgICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICAgICApOwogICAgICAgIHJldHVybiAkQ2FjaGUgaWYgJENhY2hlOwoKICAgICAgICAjIGFkZCBjbGFzcyBhbmQgbmFtZSB0byBzcWwgc3RyaW5nCiAgICAgICAgJFNRTCAuPSAnZ2VuZXJhbF9jYXRhbG9nX2NsYXNzID0gPyBBTkQgbmFtZSA9ID8nOwogICAgICAgIHB1c2ggQEJJTkQsICggXCRQYXJhbXtDbGFzc30sIFwkUGFyYW17TmFtZX0gKTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGNoZWNrIGlmIHJlc3VsdCBpcyBhbHJlYWR5IGNhY2hlZAogICAgICAgIG15ICRDYWNoZUtleSA9ICdJdGVtR2V0OjpJdGVtSUQ6OicgLiAkUGFyYW17SXRlbUlEfTsKICAgICAgICBteSAkQ2FjaGUgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICAgICAgIyBhZGQgaXRlbSBpZCB0byBzcWwgc3RyaW5nCiAgICAgICAgJFNRTCAuPSAnaWQgPSA/JzsKICAgICAgICBwdXNoIEBCSU5ELCBcJFBhcmFte0l0ZW1JRH07CiAgICB9CgogICAgIyBhc2sgZGF0YWJhc2UKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICRTUUwsCiAgICAgICAgQmluZCAgPT4gXEBCSU5ELAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJUl0ZW1EYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkSXRlbURhdGF7SXRlbUlEfSAgICAgPSAkUm93WzBdOwogICAgICAgICRJdGVtRGF0YXtDbGFzc30gICAgICA9ICRSb3dbMV07CiAgICAgICAgJEl0ZW1EYXRhe05hbWV9ICAgICAgID0gJFJvd1syXTsKICAgICAgICAkSXRlbURhdGF7VmFsaWRJRH0gICAgPSAkUm93WzNdOwogICAgICAgICRJdGVtRGF0YXtDb21tZW50fSAgICA9ICRSb3dbNF0gfHwgJyc7CiAgICAgICAgJEl0ZW1EYXRhe0NyZWF0ZVRpbWV9ID0gJFJvd1s1XTsKICAgICAgICAkSXRlbURhdGF7Q3JlYXRlQnl9ICAgPSAkUm93WzZdOwogICAgICAgICRJdGVtRGF0YXtDaGFuZ2VUaW1lfSA9ICRSb3dbN107CiAgICAgICAgJEl0ZW1EYXRhe0NoYW5nZUJ5fSAgID0gJFJvd1s4XTsKICAgIH0KCiAgICAjIGNoZWNrIGl0ZW0KICAgIGlmICggISRJdGVtRGF0YXtJdGVtSUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnSXRlbSBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBnZW5lcmFsIGNhdGFsb2cgcHJlZmVyZW5jZXMKICAgIG15ICVQcmVmZXJlbmNlcyA9ICRTZWxmLT5HZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzR2V0KCBJdGVtSUQgPT4gJEl0ZW1EYXRhe0l0ZW1JRH0gKTsKCiAgICAjIG1lcmdlIGhhc2gKICAgIGlmICglUHJlZmVyZW5jZXMpIHsKICAgICAgICAlSXRlbURhdGEgPSAoICVJdGVtRGF0YSwgJVByZWZlcmVuY2VzICk7CiAgICB9CgogICAgIyBjYWNoZSB0aGUgcmVzdWx0CiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICAgICBLZXkgICA9PiAnSXRlbUdldDo6Q2xhc3M6OicgLiAkSXRlbURhdGF7Q2xhc3N9IC4gJzo6JyAuICRJdGVtRGF0YXtOYW1lfSwKICAgICAgICBWYWx1ZSA9PiBcJUl0ZW1EYXRhLAogICAgKTsKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgICAgIEtleSAgID0+ICdJdGVtR2V0OjpJdGVtSUQ6OicgLiAkSXRlbURhdGF7SXRlbUlEfSwKICAgICAgICBWYWx1ZSA9PiBcJUl0ZW1EYXRhLAogICAgKTsKCiAgICByZXR1cm4gXCVJdGVtRGF0YTsKfQoKPWhlYWQyIEl0ZW1BZGQoKQoKYWRkcyBhIG5ldyBnZW5lcmFsIGNhdGFsb2cgaXRlbS4gUHJlZmVyZW5jZXMgY2FuJ3QgYmUgcGFzc2VkIGluIHRoaXMgbWV0aG9kLgoKICAgIG15ICRJdGVtSUQgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1BZGQoCiAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnSVRTTTo6U2VydmljZTo6VHlwZScsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnSXRlbSBOYW1lJywKICAgICAgICBWYWxpZElEICAgICAgID0+IDEsCiAgICAgICAgQ29tbWVudCAgICAgICA9PiAnQ29tbWVudCcsICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEl0ZW1BZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQ2xhc3MgVmFsaWRJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgbmFtZSBtdXN0IGJlIG5vdCBlbXB0eSwgYnV0IG51bWJlciB6ZXJvICgwKSBpcyBhbGxvd2VkCiAgICBpZiAoICEoIGRlZmluZWQgJFBhcmFte05hbWV9ICkgfHwgISggbGVuZ3RoICRQYXJhbXtOYW1lfSApICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBOYW1lISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZXMKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENvbW1lbnQpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gfHw9ICcnOwogICAgfQoKICAgICMgY2xlYW51cCBnaXZlbiBwYXJhbXMKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENsYXNzKSkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDaGVja0l0ZW0nKS0+U3RyaW5nQ2xlYW4oCiAgICAgICAgICAgIFN0cmluZ1JlZiAgICAgICAgID0+IFwkUGFyYW17JEFyZ3VtZW50fSwKICAgICAgICAgICAgUmVtb3ZlQWxsTmV3bGluZXMgPT4gMSwKICAgICAgICAgICAgUmVtb3ZlQWxsVGFicyAgICAgPT4gMSwKICAgICAgICAgICAgUmVtb3ZlQWxsU3BhY2VzICAgPT4gMSwKICAgICAgICApOwogICAgfQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoTmFtZSBDb21tZW50KSkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDaGVja0l0ZW0nKS0+U3RyaW5nQ2xlYW4oCiAgICAgICAgICAgIFN0cmluZ1JlZiAgICAgICAgID0+IFwkUGFyYW17JEFyZ3VtZW50fSwKICAgICAgICAgICAgUmVtb3ZlQWxsTmV3bGluZXMgPT4gMSwKICAgICAgICAgICAgUmVtb3ZlQWxsVGFicyAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgZmluZCBleGl0aW5nIGl0ZW0gd2l0aCBzYW1lIG5hbWUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIGlkIEZST00gZ2VuZXJhbF9jYXRhbG9nICcKICAgICAgICAgICAgLiAnV0hFUkUgZ2VuZXJhbF9jYXRhbG9nX2NsYXNzID0gPyBBTkQgbmFtZSA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtDbGFzc30sIFwkUGFyYW17TmFtZX0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICROb0FkZDsKICAgIHdoaWxlICggJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkTm9BZGQgPSAxOwogICAgfQoKICAgICMgYWJvcnQgaW5zZXJ0IG9mIG5ldyBpdGVtLCBpZiBpdGVtIG5hbWUgYWxyZWFkeSBleGlzdHMKICAgIGlmICgkTm9BZGQpIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4KICAgICAgICAgICAgICAgICJDYW4ndCBhZGQgbmV3IGl0ZW0hIEdlbmVyYWwgY2F0YWxvZyBpdGVtIHdpdGggc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoaXMgY2xhc3MuIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHJlc2V0IGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICk7CgogICAgIyBpbnNlcnQgbmV3IGl0ZW0KICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gZ2VuZXJhbF9jYXRhbG9nICcKICAgICAgICAgICAgLiAnKGdlbmVyYWxfY2F0YWxvZ19jbGFzcywgbmFtZSwgdmFsaWRfaWQsIGNvbW1lbnRzLCAnCiAgICAgICAgICAgIC4gJ2NyZWF0ZV90aW1lLCBjcmVhdGVfYnksIGNoYW5nZV90aW1lLCBjaGFuZ2VfYnkpIFZBTFVFUyAnCiAgICAgICAgICAgIC4gJyg/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgPywgY3VycmVudF90aW1lc3RhbXAsID8pJywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtDbGFzc30sIFwkUGFyYW17TmFtZX0sCiAgICAgICAgICAgIFwkUGFyYW17VmFsaWRJRH0sCiAgICAgICAgICAgIFwkUGFyYW17Q29tbWVudH0sIFwkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgXCRQYXJhbXtVc2VySUR9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgZmluZCBpZCBvZiBuZXcgaXRlbQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQgRlJPTSBnZW5lcmFsX2NhdGFsb2cgJwogICAgICAgICAgICAuICdXSEVSRSBnZW5lcmFsX2NhdGFsb2dfY2xhc3MgPSA/IEFORCBuYW1lID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte0NsYXNzfSwgXCRQYXJhbXtOYW1lfSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJEl0ZW1JRDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJEl0ZW1JRCA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuICRJdGVtSUQ7Cn0KCj1oZWFkMiBJdGVtVXBkYXRlKCkKCnVwZGF0ZXMgYW4gZXhpc3RpbmcgZ2VuZXJhbCBjYXRhbG9nIGl0ZW0uIFByZWZlcmVuY2VzIGNhbid0IGJlIHBhc3NlZCBpbiB0aGlzIG1ldGhvZC4KCiAgICBteSAkU3VjY2VzcyA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbVVwZGF0ZSgKICAgICAgICBJdGVtSUQgICAgICAgID0+IDEyMywKICAgICAgICBOYW1lICAgICAgICAgID0+ICdJdGVtIE5hbWUnLAogICAgICAgIFZhbGlkSUQgICAgICAgPT4gMSwKICAgICAgICBDb21tZW50ICAgICAgID0+ICdDb21tZW50JywgICAgIyAob3B0aW9uYWwpCiAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBJdGVtVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEl0ZW1JRCBWYWxpZElEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBuYW1lIG11c3QgYmUgbm90IGVtcHR5LCBidXQgbnVtYmVyIHplcm8gKDApIGlzIGFsbG93ZWQKICAgIGlmICggJFBhcmFte05hbWV9IGVxICcnICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBOYW1lISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZXMKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENvbW1lbnQpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gfHw9ICcnOwogICAgfQoKICAgICMgY2xlYW51cCBnaXZlbiBwYXJhbXMKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENsYXNzKSkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDaGVja0l0ZW0nKS0+U3RyaW5nQ2xlYW4oCiAgICAgICAgICAgIFN0cmluZ1JlZiAgICAgICAgID0+IFwkUGFyYW17JEFyZ3VtZW50fSwKICAgICAgICAgICAgUmVtb3ZlQWxsTmV3bGluZXMgPT4gMSwKICAgICAgICAgICAgUmVtb3ZlQWxsVGFicyAgICAgPT4gMSwKICAgICAgICAgICAgUmVtb3ZlQWxsU3BhY2VzICAgPT4gMSwKICAgICAgICApOwogICAgfQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoTmFtZSBDb21tZW50KSkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDaGVja0l0ZW0nKS0+U3RyaW5nQ2xlYW4oCiAgICAgICAgICAgIFN0cmluZ1JlZiAgICAgICAgID0+IFwkUGFyYW17JEFyZ3VtZW50fSwKICAgICAgICAgICAgUmVtb3ZlQWxsTmV3bGluZXMgPT4gMSwKICAgICAgICAgICAgUmVtb3ZlQWxsVGFicyAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNsYXNzIG9mIGl0ZW0KICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICdTRUxFQ1QgZ2VuZXJhbF9jYXRhbG9nX2NsYXNzIEZST00gZ2VuZXJhbF9jYXRhbG9nIFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte0l0ZW1JRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRDbGFzczsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJENsYXNzID0gJFJvd1swXTsKICAgIH0KCiAgICBpZiAoICEkQ2xhc3MgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDYW4ndCB1cGRhdGUgaXRlbSEgR2VuZXJhbCBjYXRhbG9nIGl0ZW0gbm90IGZvdW5kIGluIHRoaXMgY2xhc3MuIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGZpbmQgZXhpdGluZyBpdGVtIHdpdGggc2FtZSBuYW1lCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAnU0VMRUNUIGlkIEZST00gZ2VuZXJhbF9jYXRhbG9nIFdIRVJFIGdlbmVyYWxfY2F0YWxvZ19jbGFzcyA9ID8gQU5EIG5hbWUgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkQ2xhc3MsIFwkUGFyYW17TmFtZX0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRVcGRhdGUgPSAxOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBpZiAoICRQYXJhbXtJdGVtSUR9IG5lICRSb3dbMF0gKSB7CiAgICAgICAgICAgICRVcGRhdGUgPSAwOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICEkVXBkYXRlICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PgogICAgICAgICAgICAgICAgIkNhbid0IHVwZGF0ZSBpdGVtISBHZW5lcmFsIGNhdGFsb2cgaXRlbSB3aXRoIHNhbWUgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIGNsYXNzLiIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyByZXNldCBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICApOwoKICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICdVUERBVEUgZ2VuZXJhbF9jYXRhbG9nIFNFVCAnCiAgICAgICAgICAgIC4gJ25hbWUgPSA/LCB2YWxpZF9pZCA9ID8sIGNvbW1lbnRzID0gPywgJwogICAgICAgICAgICAuICdjaGFuZ2VfdGltZSA9IGN1cnJlbnRfdGltZXN0YW1wLCBjaGFuZ2VfYnkgPSA/ICcKICAgICAgICAgICAgLiAnV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtOYW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtWYWxpZElEfSwgXCRQYXJhbXtDb21tZW50fSwKICAgICAgICAgICAgXCRQYXJhbXtVc2VySUR9LCAgXCRQYXJhbXtJdGVtSUR9LAogICAgICAgIF0sCiAgICApOwp9Cgo9aGVhZDIgR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlc1NldCgpCgpzZXRzIGEgc2luZ2xlIHByZWZlcmVuY2UgZm9yIGEgZ2VuZXJhbCBjYXRhbG9nIGl0ZW0KCiAgICAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkdlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXNTZXQoCiAgICAgICAgSXRlbUlEID0+IDEyMywKICAgICAgICBLZXkgICAgPT4gJ1VzZXJDb21tZW50JywKICAgICAgICBWYWx1ZSAgPT4gJ3NvbWUgY29tbWVudCcsCiAgICApOwoKPWN1dAoKc3ViIEdlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXNTZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICApOwoKICAgIHJldHVybiAkU2VsZi0+e1ByZWZlcmVuY2VzT2JqZWN0fS0+R2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlc1NldCglUGFyYW0pOwp9Cgo9aGVhZDIgR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlc0dldCgpCgpnZXRzIGFsbCBwcmVmZXJlbmNlcyBmb3IgYSBnZW5lcmFsIGNhdGFsb2cgaXRlbQoKICAgIG15ICVQcmVmZXJlbmNlcyA9ICRRdWV1ZU9iamVjdC0+R2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlc0dldCgKICAgICAgICBJdGVtSUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuICRTZWxmLT57UHJlZmVyZW5jZXNPYmplY3R9LT5HZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzR2V0KCVQYXJhbSk7Cn0KCjE7Cg==</File>
        <File Location="Kernel/System/GeneralCatalog/PreferencesDB.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZzo6UHJlZmVyZW5jZXNEQjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KElzQXJyYXlSZWZXaXRoRGF0YSk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nOjpQcmVmZXJlbmNlc0RCIC0gc29tZSBwcmVmZXJlbmNlcyBmdW5jdGlvbnMgZm9yIGdlbmVyYWwgY2F0YWxvZwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1jdXQKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKCiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2c6OlByZWZlcmVuY2VzREInKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0gYmxlc3Mge30sICRUeXBlOwoKICAgICMgcHJlZmVyZW5jZXMgdGFibGUgZGF0YQogICAgJFNlbGYtPntQcmVmZXJlbmNlc1RhYmxlfSAgICAgID0gJ2dlbmVyYWxfY2F0YWxvZ19wcmVmZXJlbmNlcyc7CiAgICAkU2VsZi0+e1ByZWZlcmVuY2VzVGFibGVLZXl9ICAgPSAncHJlZl9rZXknOwogICAgJFNlbGYtPntQcmVmZXJlbmNlc1RhYmxlVmFsdWV9ID0gJ3ByZWZfdmFsdWUnOwogICAgJFNlbGYtPntQcmVmZXJlbmNlc1RhYmxlR2NJRH0gID0gJ2dlbmVyYWxfY2F0YWxvZ19pZCc7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlc1NldCgpCgpzZXRzIGEgc2luZ2xlIHByZWZlcmVuY2UgZm9yIGEgZ2VuZXJhbCBjYXRhbG9nIGl0ZW0KCiAgICAkUHJlZmVyZW5jZXNPYmplY3QtPkdlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXNTZXQoCiAgICAgICAgSXRlbUlEID0+IDEyMzQsCiAgICAgICAgS2V5ICAgID0+ICdGdW5jdGlvbmFsaXR5JywKICAgICAgICBWYWx1ZSAgPT4gWydvcGVyYXRpb25hbCddLAogICAgKTsKCj1jdXQKCnN1YiBHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzU2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhJdGVtSUQgS2V5KSkgewogICAgICAgIGlmICggIWRlZmluZWQoICRQYXJhbXskTmVlZGVkfSApICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkUGFyYW17VmFsdWV9ICYmICggcmVmICRQYXJhbXtWYWx1ZX0gbmUgJ0FSUkFZJyApICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVmFsdWUgaW52YWxpZCEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGVsZXRlIG9sZCBkYXRhCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICJERUxFVEUgRlJPTSAkU2VsZi0+e1ByZWZlcmVuY2VzVGFibGV9IFdIRVJFICIKICAgICAgICAgICAgLiAiJFNlbGYtPntQcmVmZXJlbmNlc1RhYmxlR2NJRH0gPSA/IEFORCAkU2VsZi0+e1ByZWZlcmVuY2VzVGFibGVLZXl9ID0gPyIsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgXCRQYXJhbXtLZXl9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgaW5zZXJ0IG5ldyBkYXRhLCBpZiBnaXZlbiAoYWxsb3dzIHRvIHNpbXBseSBkZWxldGUgZGF0YSkKICAgIHJldHVybiB1bmxlc3MgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWV9ICk7CgogICAgbXkgJE51bUluc2VydHMgPSAkREJPYmplY3QtPkRvQXJyYXkoCiAgICAgICAgU1FMID0+ICJJTlNFUlQgSU5UTyAkU2VsZi0+e1ByZWZlcmVuY2VzVGFibGV9ICgkU2VsZi0+e1ByZWZlcmVuY2VzVGFibGVHY0lEfSwgIgogICAgICAgICAgICAuICIgJFNlbGYtPntQcmVmZXJlbmNlc1RhYmxlS2V5fSwgJFNlbGYtPntQcmVmZXJlbmNlc1RhYmxlVmFsdWV9KSAiCiAgICAgICAgICAgIC4gIiBWQUxVRVMgKD8sID8sID8pIiwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgJFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgICRQYXJhbXtLZXl9LAogICAgICAgICAgICAkUGFyYW17VmFsdWV9LAogICAgICAgIF0sCiAgICApOwoKICAgIGlmICggJE51bUluc2VydHMgIT0gc2NhbGFyICRQYXJhbXtWYWx1ZX0tPkAqICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiUHJlZmVyZW5jZXMgaW5zZXJ0aW9uIGZhaWxlZCEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlc0dldCgpCgpnZXRzIGFsbCBwcmVmZXJlbmNlcyBmb3IgYSBnZW5lcmFsIGNhdGFsb2cgaXRlbQoKICAgIG15ICVQcmVmZXJlbmNlcyA9ICRQcmVmZXJlbmNlc09iamVjdC0+R2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlc0dldCgKICAgICAgICBJdGVtSUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhJdGVtSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBxdWV1ZSBwcmVmZXJlbmNlcyBhcmUgYXZhaWxhYmxlCiAgICBpZiAoICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0dlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXMnKSApIHsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgcHJlZmVyZW5jZXMKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgJFNlbGYtPntQcmVmZXJlbmNlc1RhYmxlS2V5fSwgJFNlbGYtPntQcmVmZXJlbmNlc1RhYmxlVmFsdWV9ICIKICAgICAgICAgICAgLiAiIEZST00gJFNlbGYtPntQcmVmZXJlbmNlc1RhYmxlfSBXSEVSRSAkU2VsZi0+e1ByZWZlcmVuY2VzVGFibGVHY0lEfSA9ID8iLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0l0ZW1JRH0gXSwKICAgICk7CgogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRheyAkUm93WzBdIH0gLy89IFtdOwogICAgICAgIHB1c2ggJERhdGF7ICRSb3dbMF0gfS0+QCosICRSb3dbMV07CiAgICB9CgogICAgIyByZXR1cm4gZGF0YQogICAgcmV0dXJuICVEYXRhOwp9CgoxOwo=</File>
        <File Location="scripts/test/GeneralCatalog.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKdXNlIFRlc3QyOjpWMCBxdyggZG9uZV90ZXN0aW5nIGZhaWwgaXMgb2sgKTsKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpSZWdpc3Rlck9NOyAgICAjIFNldCB1cCAkS2VybmVsOjpPTQoKIyBjcmVhdGUgbmVlZGVkIG9iamVjdHMKbXkgJENvbmZpZ09iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKbXkgJEdlbmVyYWxDYXRhbG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyk7Cm15ICRVc2VyT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgojIGdldCBoZWxwZXIgb2JqZWN0CiRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgIFJlc3RvcmVEYXRhYmFzZSA9PiAxLAogICAgfSwKKTsKbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgojIGRlZmluZSBuZWVkZWQgdmFyaWFibGUKbXkgJFJhbmRvbUlEID0gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBtYWtlIHByZXBhcmF0aW9ucwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGNyZWF0ZSBuZWVkZWQgdXNlcnMKbXkgQFVzZXJJRHM7CnsKCiAgICAjIGRpc2FibGUgZW1haWwgY2hlY2tzIHRvIGNyZWF0ZSBuZXcgdXNlcgogICAgbXkgJENoZWNrRW1haWxBZGRyZXNzZXNPcmcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0NoZWNrRW1haWxBZGRyZXNzZXMnKSB8fCAxOwogICAgJENvbmZpZ09iamVjdC0+U2V0KAogICAgICAgIEtleSAgID0+ICdDaGVja0VtYWlsQWRkcmVzc2VzJywKICAgICAgICBWYWx1ZSA9PiAwLAogICAgKTsKCiAgICBmb3IgbXkgJENvdW50ZXIgKCAxIC4uIDIgKSB7CgogICAgICAgICMgY3JlYXRlIG5ldyB1c2VycyBmb3IgdGhlIHRlc3RzCiAgICAgICAgbXkgJFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyQWRkKAogICAgICAgICAgICBVc2VyRmlyc3RuYW1lID0+ICdHZW5lcmFsQ2F0YWxvZycgLiAkQ291bnRlciwKICAgICAgICAgICAgVXNlckxhc3RuYW1lICA9PiAnVW5pdFRlc3QnLAogICAgICAgICAgICBVc2VyTG9naW4gICAgID0+ICdVbml0VGVzdC1HZW5lcmFsQ2F0YWxvZy0nIC4gJENvdW50ZXIgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgIFVzZXJFbWFpbCAgICAgPT4gJ1VuaXRUZXN0LUdlbmVyYWxDYXRhbG9nLScgLiAkQ291bnRlciAuICdAbG9jYWxob3N0JywKICAgICAgICAgICAgVmFsaWRJRCAgICAgICA9PiAxLAogICAgICAgICAgICBDaGFuZ2VVc2VySUQgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgcHVzaCBAVXNlcklEcywgJFVzZXJJRDsKICAgIH0KCiAgICAjIHJlc3RvcmUgb3JpZ2luYWwgZW1haWwgY2hlY2sgcGFyYW0KICAgICRDb25maWdPYmplY3QtPlNldCgKICAgICAgICBLZXkgICA9PiAnQ2hlY2tFbWFpbEFkZHJlc3NlcycsCiAgICAgICAgVmFsdWUgPT4gJENoZWNrRW1haWxBZGRyZXNzZXNPcmcsCiAgICApOwp9CgojIGNyZWF0ZSBuZWVkZWQgcmFuZG9tIGNsYXNzZXMKbXkgQENsYXNzUmFuZCA9IG1hcCB7ICRIZWxwZXItPkdldFJhbmRvbU51bWJlciB9ICggMCAuLiAyICk7CgojIHN0b3JlIG9yaWdpbmFsIGdlbmVyYWwgY2F0YWxvZyBwZXJtaXNzaW9uIHByZWZlcmVuY2VzIHNldHRpbmcKbXkgJEdlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXNQZXJtaXNzaW9uc09yZzsKaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0dlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXMnKSApIHsKICAgICRHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzUGVybWlzc2lvbnNPcmcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0dlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXMnKS0+e1Blcm1pc3Npb25zfTsKfQoKIyBlbmFibGUgZ2VuZXJhbCBjYXRhbG9nIHBlcm1pc3Npb24gcHJlZmVyZW5jZXMgc2V0dGluZyB3aXRoIGEgZHVtbXkgdHJ1ZSB2YWx1ZQokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlcyMjI1Blcm1pc3Npb25zJywKICAgIFZhbHVlID0+IDEsCik7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgZGVmaW5lIGdlbmVyYWwgdGVzdHMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKbXkgJEl0ZW1EYXRhID0gWwoKICAgICMgdGhpcyBpdGVtIGlzIE5PVCBjb21wbGV0ZSBhbmQgbXVzdCBub3QgYmUgYWRkZWQKICAgIHsKICAgICAgICBBZGQgPT4gewogICAgICAgICAgICBOYW1lICAgID0+ICdUZXN0SXRlbTEnLAogICAgICAgICAgICBWYWxpZElEID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoaXMgaXRlbSBpcyBOT1QgY29tcGxldGUgYW5kIG11c3Qgbm90IGJlIGFkZGVkCiAgICB7CiAgICAgICAgQWRkID0+IHsKICAgICAgICAgICAgQ2xhc3MgICA9PiAnVW5pdFRlc3Q6OlRlc3RDbGFzcycgLiAkQ2xhc3NSYW5kWzBdLAogICAgICAgICAgICBWYWxpZElEID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoaXMgaXRlbSBpcyBOT1QgY29tcGxldGUgYW5kIG11c3Qgbm90IGJlIGFkZGVkCiAgICB7CiAgICAgICAgQWRkID0+IHsKICAgICAgICAgICAgQ2xhc3MgID0+ICdVbml0VGVzdDo6VGVzdENsYXNzJyAuICRDbGFzc1JhbmRbMF0sCiAgICAgICAgICAgIE5hbWUgICA9PiAnVGVzdEl0ZW0yJywKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0aGlzIGl0ZW0gaXMgTk9UIGNvbXBsZXRlIGFuZCBtdXN0IG5vdCBiZSBhZGRlZAogICAgewogICAgICAgIEFkZCA9PiB7CiAgICAgICAgICAgIENsYXNzICAgPT4gJ1VuaXRUZXN0OjpUZXN0Q2xhc3MnIC4gJENsYXNzUmFuZFswXSwKICAgICAgICAgICAgTmFtZSAgICA9PiAnVGVzdEl0ZW0zJywKICAgICAgICAgICAgVmFsaWRJRCA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGhpcyBpdGVtIG11c3QgYmUgaW5zZXJ0ZWQgc3VjY2Vzc2Z1bGx5CiAgICB7CiAgICAgICAgQWRkID0+IHsKICAgICAgICAgICAgQ2xhc3MgICA9PiAnVW5pdFRlc3Q6OlRlc3RDbGFzcycgLiAkQ2xhc3NSYW5kWzBdLAogICAgICAgICAgICBOYW1lICAgID0+ICdUZXN0SXRlbTQnLAogICAgICAgICAgICBWYWxpZElEID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEFkZEdldCA9PiB7CiAgICAgICAgICAgIENsYXNzICAgID0+ICdVbml0VGVzdDo6VGVzdENsYXNzJyAuICRDbGFzc1JhbmRbMF0sCiAgICAgICAgICAgIE5hbWUgICAgID0+ICdUZXN0SXRlbTQnLAogICAgICAgICAgICBWYWxpZElEICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICA9PiAnJywKICAgICAgICAgICAgQ3JlYXRlQnkgPT4gMSwKICAgICAgICAgICAgQ2hhbmdlQnkgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoZSBwcmVmZXJlbmNlcyBvZiB0aGUgaXRlbSBvbmUgYWRkLXRlc3QgYmVmb3JlIG11c3QgYmUgc2V0CiAgICB7CiAgICAgICAgUHJlZmVyZW5jZXNTZXQgPT4gewogICAgICAgICAgICBIZWxsbyA9PiAnV29ybGQnLAogICAgICAgICAgICBDb2xvciA9PiAnUmVkJywKICAgICAgICB9LAogICAgICAgIFByZWZlcmVuY2VzR2V0ID0+IHsKICAgICAgICAgICAgSGVsbG8gPT4gJ1dvcmxkJywKICAgICAgICAgICAgQ29sb3IgPT4gJ1JlZCcsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0aGlzIGl0ZW0gaGF2ZSB0aGUgc2FtZSBuYW1lIGFzIG9uZSB0ZXN0IGJlZm9yZSBhbmQgbXVzdCBub3QgYmUgYWRkZWQKICAgIHsKICAgICAgICBBZGQgPT4gewogICAgICAgICAgICBDbGFzcyAgID0+ICdVbml0VGVzdDo6VGVzdENsYXNzJyAuICRDbGFzc1JhbmRbMF0sCiAgICAgICAgICAgIE5hbWUgICAgPT4gJ1Rlc3RJdGVtNCcsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gMSwKICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGhpcyBpdGVtIG11c3QgYmUgaW5zZXJ0ZWQgc3VjY2Vzc2Z1bGx5CiAgICB7CiAgICAgICAgQWRkID0+IHsKICAgICAgICAgICAgQ2xhc3MgICA9PiAnVW5pdFRlc3Q6OlRlc3RDbGFzcycgLiAkQ2xhc3NSYW5kWzBdLAogICAgICAgICAgICBOYW1lICAgID0+ICdUZXN0SXRlbTUnLAogICAgICAgICAgICBWYWxpZElEID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEFkZEdldCA9PiB7CiAgICAgICAgICAgIENsYXNzICAgID0+ICdVbml0VGVzdDo6VGVzdENsYXNzJyAuICRDbGFzc1JhbmRbMF0sCiAgICAgICAgICAgIE5hbWUgICAgID0+ICdUZXN0SXRlbTUnLAogICAgICAgICAgICBWYWxpZElEICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICA9PiAnJywKICAgICAgICAgICAgQ3JlYXRlQnkgPT4gMSwKICAgICAgICAgICAgQ2hhbmdlQnkgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoZSBwcmVmZXJlbmNlcyBvZiB0aGUgaXRlbSBvbmUgYWRkLXRlc3QgYmVmb3JlIG11c3QgYmUgc2V0CiAgICB7CiAgICAgICAgUHJlZmVyZW5jZXNTZXQgPT4gewogICAgICAgICAgICBIZWxsbyA9PiAnTmV3V29ybGQnLAogICAgICAgICAgICBDb2xvciA9PiAnQmx1ZScsCiAgICAgICAgfSwKICAgICAgICBQcmVmZXJlbmNlc0dldCA9PiB7CiAgICAgICAgICAgIEhlbGxvID0+ICdOZXdXb3JsZCcsCiAgICAgICAgICAgIENvbG9yID0+ICdCbHVlJywKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoZSBpdGVtIG9uZSBhZGQtdGVzdCBiZWZvcmUgbXVzdCBiZSBOT1QgdXBkYXRlZCAoaXRlbSB1cGRhdGUgYXJndW1lbnRzIE5PVCBjb21wbGV0ZSkKICAgIHsKICAgICAgICBVcGRhdGUgPT4gewogICAgICAgICAgICBWYWxpZElEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICBVc2VySUQgID0+ICRVc2VySURzWzBdLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGhlIGl0ZW0gb25lIGFkZC10ZXN0IGJlZm9yZSBtdXN0IGJlIE5PVCB1cGRhdGVkIChpdGVtIHVwZGF0ZSBhcmd1bWVudHMgTk9UIGNvbXBsZXRlKQogICAgewogICAgICAgIFVwZGF0ZSA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnVGVzdEl0ZW01VVBEQVRFMScsCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoZSBpdGVtIG9uZSBhZGQtdGVzdCBiZWZvcmUgbXVzdCBiZSBOT1QgdXBkYXRlZCAoaXRlbSB1cGRhdGUgYXJndW1lbnRzIE5PVCBjb21wbGV0ZSkKICAgIHsKICAgICAgICBVcGRhdGUgPT4gewogICAgICAgICAgICBWYWxpZElEID0+ICRVc2VySURzWzBdLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGhlIGl0ZW0gb25lIGFkZC10ZXN0IGJlZm9yZSBtdXN0IGJlIHVwZGF0ZWQgKGl0ZW0gdXBkYXRlIGFyZ3VtZW50cyBhcmUgY29tcGxldGUpCiAgICB7CiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgTmFtZSAgICA9PiAnVGVzdEl0ZW01VVBEQVRFMicsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIFVzZXJJRCAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgfSwKICAgICAgICBVcGRhdGVHZXQgPT4gewogICAgICAgICAgICBOYW1lICAgICA9PiAnVGVzdEl0ZW01VVBEQVRFMicsCiAgICAgICAgICAgIFZhbGlkSUQgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICBDb21tZW50ICA9PiAnJywKICAgICAgICAgICAgQ3JlYXRlQnkgPT4gMSwKICAgICAgICAgICAgQ2hhbmdlQnkgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0aGUgaXRlbSBvbmUgYWRkLXRlc3QgYmVmb3JlIG11c3QgYmUgdXBkYXRlZCAoaXRlbSB1cGRhdGUgYXJndW1lbnRzIGFyZSBjb21wbGV0ZSkKICAgIHsKICAgICAgICBVcGRhdGUgPT4gewogICAgICAgICAgICBOYW1lICAgID0+ICdUZXN0SXRlbTVVUERBVEUzJywKICAgICAgICAgICAgVmFsaWRJRCA9PiAxLAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBVcGRhdGVHZXQgPT4gewogICAgICAgICAgICBOYW1lICAgICA9PiAnVGVzdEl0ZW01VVBEQVRFMycsCiAgICAgICAgICAgIFZhbGlkSUQgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgID0+ICcnLAogICAgICAgICAgICBDcmVhdGVCeSA9PiAxLAogICAgICAgICAgICBDaGFuZ2VCeSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGhpcyB0ZW1wbGF0ZSBtdXN0IGJlIGluc2VydGVkIHN1Y2Nlc3NmdWxseSAoY2hlY2sgc3RyaW5nIGNsZWFuZXIgZnVuY3Rpb24pCiAgICB7CiAgICAgICAgQWRkID0+IHsKICAgICAgICAgICAgQ2xhc3MgICA9PiAiIFx0IFxuIFxyIFVuaXQgVGVzdCA6OiBUZXN0IENsYXNzIFx0IFxuIFxyICIgLiAkQ2xhc3NSYW5kWzBdLAogICAgICAgICAgICBOYW1lICAgID0+ICIgXHQgXG4gXHIgVGVzdCBJdGVtIFx0IFxuIFxyICIsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCA9PiAiIFx0IFxuIFxyIFRlc3QgQ29tbWVudCBcdCBcbiBcciAiLAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBBZGRHZXQgPT4gewogICAgICAgICAgICBDbGFzcyAgICA9PiAnVW5pdFRlc3Q6OlRlc3RDbGFzcycgLiAkQ2xhc3NSYW5kWzBdLAogICAgICAgICAgICBOYW1lICAgICA9PiAnVGVzdCBJdGVtJywKICAgICAgICAgICAgVmFsaWRJRCAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgPT4gJ1Rlc3QgQ29tbWVudCcsCiAgICAgICAgICAgIENyZWF0ZUJ5ID0+IDEsCiAgICAgICAgICAgIENoYW5nZUJ5ID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0aGUgaXRlbSBvbmUgYWRkLXRlc3QgYmVmb3JlIG11c3QgYmUgdXBkYXRlZCBzdWNjZXNzZnVsbHkgKGNoZWNrIHN0cmluZyBjbGVhbmVyIGZ1bmN0aW9uKQogICAgewogICAgICAgIFVwZGF0ZSA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgPT4gIiBcdCBcbiBcciBUZXN0IEl0ZW0gVVBEQVRFMSBcdCBcbiBcciAiLAogICAgICAgICAgICBWYWxpZElEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICBDb21tZW50ID0+ICIgXHQgXG4gXHIgVGVzdCBDb21tZW50IFVQREFURTEgXHQgXG4gXHIgIiwKICAgICAgICAgICAgVXNlcklEICA9PiAkVXNlcklEc1swXSwKICAgICAgICB9LAogICAgICAgIFVwZGF0ZUdldCA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdUZXN0IEl0ZW0gVVBEQVRFMScsCiAgICAgICAgICAgIFZhbGlkSUQgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICBDb21tZW50ICA9PiAnVGVzdCBDb21tZW50IFVQREFURTEnLAogICAgICAgICAgICBDcmVhdGVCeSA9PiAxLAogICAgICAgICAgICBDaGFuZ2VCeSA9PiAkVXNlcklEc1swXSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoaXMgaXRlbSBtdXN0IGJlIGluc2VydGVkIHN1Y2Nlc3NmdWxseSAodW5pY29kZSBjaGVja3MpCiAgICB7CiAgICAgICAgQWRkID0+IHsKICAgICAgICAgICAgQ2xhc3MgICA9PiAnVW5pdFRlc3Q6OlRlc3RDbGFzc8KpJyAuICRDbGFzc1JhbmRbMV0sCiAgICAgICAgICAgIE5hbWUgICAgPT4gJyDPkiDPoSBUZXN0IEl0ZW0gxqkgz54gJywKICAgICAgICAgICAgVmFsaWRJRCA9PiAxLAogICAgICAgICAgICBDb21tZW50ID0+ICcgz6Ag0K8gVGVzdCBDb21tZW50INGsINGgICcsCiAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEFkZEdldCA9PiB7CiAgICAgICAgICAgIENsYXNzICAgID0+ICdVbml0VGVzdDo6VGVzdENsYXNzwqknIC4gJENsYXNzUmFuZFsxXSwKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ8+SIM+hIFRlc3QgSXRlbSDGqSDPnicsCiAgICAgICAgICAgIFZhbGlkSUQgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgID0+ICfPoCDQryBUZXN0IENvbW1lbnQg0awg0aAnLAogICAgICAgICAgICBDcmVhdGVCeSA9PiAxLAogICAgICAgICAgICBDaGFuZ2VCeSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGhlIGl0ZW0gb25lIGFkZC10ZXN0IGJlZm9yZSBtdXN0IGJlIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5ICh1bmljb2RlIGNoZWNrcykKICAgIHsKICAgICAgICBVcGRhdGUgPT4gewogICAgICAgICAgICBOYW1lICAgID0+ICdUZXN0IEl0ZW0gxqkgyaQgVVBEQVRFMScsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgIENvbW1lbnQgPT4gJyBUZXN0IENvbW1lbnQg0Zkg0ZIgVVBEQVRFMSAnLAogICAgICAgICAgICBVc2VySUQgID0+ICRVc2VySURzWzFdLAogICAgICAgIH0sCiAgICAgICAgVXBkYXRlR2V0ID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ1Rlc3QgSXRlbSDGqSDJpCBVUERBVEUxJywKICAgICAgICAgICAgVmFsaWRJRCAgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgIENvbW1lbnQgID0+ICdUZXN0IENvbW1lbnQg0Zkg0ZIgVVBEQVRFMScsCiAgICAgICAgICAgIENyZWF0ZUJ5ID0+IDEsCiAgICAgICAgICAgIENoYW5nZUJ5ID0+ICRVc2VySURzWzFdLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGhpcyBpdGVtIG11c3QgYmUgaW5zZXJ0ZWQgc3VjY2Vzc2Z1bGx5IChhIHNlY29uZCBpdGVtIHdpdGggRnVuY3Rpb25hbGl0eSAndGVzdDEnKQogICAgewogICAgICAgIEFkZCA9PiB7CiAgICAgICAgICAgIENsYXNzICAgPT4gJ1VuaXRUZXN0OjpUZXN0Q2xhc3MnIC4gJENsYXNzUmFuZFswXSwKICAgICAgICAgICAgTmFtZSAgICA9PiAnVGVzdEl0ZW02JywKICAgICAgICAgICAgVmFsaWRJRCA9PiAxLAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBBZGRHZXQgPT4gewogICAgICAgICAgICBDbGFzcyAgICA9PiAnVW5pdFRlc3Q6OlRlc3RDbGFzcycgLiAkQ2xhc3NSYW5kWzBdLAogICAgICAgICAgICBOYW1lICAgICA9PiAnVGVzdEl0ZW02JywKICAgICAgICAgICAgVmFsaWRJRCAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgPT4gJycsCiAgICAgICAgICAgIENyZWF0ZUJ5ID0+IDEsCiAgICAgICAgICAgIENoYW5nZUJ5ID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0aGUgaXRlbSBvbmUgYWRkLXRlc3QgYmVmb3JlIG11c3QgYmUgdXBkYXRlZCAoc2V0IGZ1bmN0aW9uYWxpdHkgdG8gJycpCiAgICB7CiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgTmFtZSAgICA9PiAnVGVzdEl0ZW02VVBEQVRFMScsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gMSwKICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgVXBkYXRlR2V0ID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ1Rlc3RJdGVtNlVQREFURTEnLAogICAgICAgICAgICBWYWxpZElEICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICA9PiAnJywKICAgICAgICAgICAgQ3JlYXRlQnkgPT4gMSwKICAgICAgICAgICAgQ2hhbmdlQnkgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoaXMgaXRlbSBtdXN0IGJlIGluc2VydGVkIHN1Y2Nlc3NmdWxseSAoc3BlY2lhbCBjaGFyYWN0ZXIgY2hlY2tzKQogICAgewogICAgICAgIEFkZCA9PiB7CiAgICAgICAgICAgIENsYXNzICAgPT4gJ1VuaXRUZXN0OjpUZXN0Q2xhc3NbdGVzdF0lKlxcJyAuICRDbGFzc1JhbmRbMV0sCiAgICAgICAgICAgIE5hbWUgICAgPT4gJyBbdGVzdF0lKlxcIFRlc3QgSXRlbSBbdGVzdF0lKlxcICcsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCA9PiAnIFt0ZXN0XSUqXFwgVGVzdCBDb21tZW50IFt0ZXN0XSUqXFwgJywKICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgQWRkR2V0ID0+IHsKICAgICAgICAgICAgQ2xhc3MgICAgPT4gJ1VuaXRUZXN0OjpUZXN0Q2xhc3NbdGVzdF0lKlxcJyAuICRDbGFzc1JhbmRbMV0sCiAgICAgICAgICAgIE5hbWUgICAgID0+ICdbdGVzdF0lKlxcIFRlc3QgSXRlbSBbdGVzdF0lKlxcJywKICAgICAgICAgICAgVmFsaWRJRCAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgPT4gJ1t0ZXN0XSUqXFwgVGVzdCBDb21tZW50IFt0ZXN0XSUqXFwnLAogICAgICAgICAgICBDcmVhdGVCeSA9PiAxLAogICAgICAgICAgICBDaGFuZ2VCeSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGhlIGl0ZW0gb25lIGFkZC10ZXN0IGJlZm9yZSBtdXN0IGJlIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5IChzcGVjaWFsIGNoYXJhY3RlciBjaGVja3MpCiAgICB7CiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgTmFtZSAgICA9PiAnIFt0ZXN0XSUqXFwgVGVzdCBJdGVtIFVQREFURTEgW3Rlc3RdJSpcXCAnLAogICAgICAgICAgICBWYWxpZElEID0+ICRVc2VySURzWzFdLAogICAgICAgICAgICBDb21tZW50ID0+ICcgW3Rlc3RdJSpcXCBUZXN0IENvbW1lbnQgVVBEQVRFMSBbdGVzdF0lKlxcICcsCiAgICAgICAgICAgIFVzZXJJRCAgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgfSwKICAgICAgICBVcGRhdGVHZXQgPT4gewogICAgICAgICAgICBOYW1lICAgICA9PiAnW3Rlc3RdJSpcXCBUZXN0IEl0ZW0gVVBEQVRFMSBbdGVzdF0lKlxcJywKICAgICAgICAgICAgVmFsaWRJRCAgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgIENvbW1lbnQgID0+ICdbdGVzdF0lKlxcIFRlc3QgQ29tbWVudCBVUERBVEUxIFt0ZXN0XSUqXFwnLAogICAgICAgICAgICBDcmVhdGVCeSA9PiAxLAogICAgICAgICAgICBDaGFuZ2VCeSA9PiAkVXNlcklEc1sxXSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoaXMgaXRlbSBtdXN0IGJlIGluc2VydGVkIHN1Y2Nlc3NmdWxseQogICAgewogICAgICAgIEFkZCA9PiB7CiAgICAgICAgICAgIENsYXNzICAgPT4gJ1VuaXRUZXN0OjpUZXN0Q2xhc3MnIC4gJENsYXNzUmFuZFswXSwKICAgICAgICAgICAgTmFtZSAgICA9PiAnVGVzdEl0ZW1QcmVmZXJlbmNlcycsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gMSwKICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgQWRkR2V0ID0+IHsKICAgICAgICAgICAgQ2xhc3MgICAgPT4gJ1VuaXRUZXN0OjpUZXN0Q2xhc3MnIC4gJENsYXNzUmFuZFswXSwKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ1Rlc3RJdGVtUHJlZmVyZW5jZXMnLAogICAgICAgICAgICBWYWxpZElEICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICA9PiAnJywKICAgICAgICAgICAgQ3JlYXRlQnkgPT4gMSwKICAgICAgICAgICAgQ2hhbmdlQnkgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoZSBwcmVmZXJlbmNlcyBvZiB0aGUgaXRlbSBvbmUgYWRkLXRlc3QgYmVmb3JlIG11c3QgYmUgc2V0CiAgICB7CiAgICAgICAgUHJlZmVyZW5jZXNTZXQgPT4gewogICAgICAgICAgICBUZXN0ICA9PiAnaGVsbG8gd29ybGQnLAogICAgICAgICAgICBHcm91cCA9PiAzMywKICAgICAgICB9LAogICAgICAgIFByZWZlcmVuY2VzR2V0ID0+IHsKICAgICAgICAgICAgVGVzdCAgPT4gJ2hlbGxvIHdvcmxkJywKICAgICAgICAgICAgR3JvdXAgPT4gMzMsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0aGUgcHJlZmVyZW5jZXMgb2YgdGhlIGl0ZW0gb25lIGFkZC10ZXN0IGJlZm9yZSBtdXN0IGJlIHNldAogICAgewogICAgICAgIFByZWZlcmVuY2VzU2V0ID0+IHsKICAgICAgICAgICAgVGVzdCA9PiAnaGVsbG8nLAogICAgICAgICAgICBTaXplID0+IDM4LAogICAgICAgIH0sCiAgICAgICAgUHJlZmVyZW5jZXNHZXQgPT4gewogICAgICAgICAgICBUZXN0ID0+ICdoZWxsbycsCiAgICAgICAgICAgIFNpemUgPT4gMzgsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0aGlzIGl0ZW0gaGFzIGFuIGVtcHR5IG5hbWUgYW5kIG11c3Qgbm90IGJlIGFkZGVkCiAgICB7CiAgICAgICAgQWRkID0+IHsKICAgICAgICAgICAgQ2xhc3MgICA9PiAnVW5pdFRlc3Q6OlRlc3RDbGFzcycgLiAkQ2xhc3NSYW5kWzBdLAogICAgICAgICAgICBOYW1lICAgID0+ICcnLAogICAgICAgICAgICBWYWxpZElEID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoaXMgaXRlbSBtdXN0IGJlIGFkZGVkLCB0aGUgbnVtYmVyIHplcm8gKDApIGlzIGFsbG93ZWQgYXMgbmFtZQogICAgewogICAgICAgIEFkZCA9PiB7CiAgICAgICAgICAgIENsYXNzICAgPT4gJ1VuaXRUZXN0OjpUZXN0Q2xhc3MnIC4gJENsYXNzUmFuZFswXSwKICAgICAgICAgICAgTmFtZSAgICA9PiAnMCcsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gMSwKICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgQWRkR2V0ID0+IHsKICAgICAgICAgICAgQ2xhc3MgICAgPT4gJ1VuaXRUZXN0OjpUZXN0Q2xhc3MnIC4gJENsYXNzUmFuZFswXSwKICAgICAgICAgICAgTmFtZSAgICAgPT4gJzAnLAogICAgICAgICAgICBWYWxpZElEICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICA9PiAnJywKICAgICAgICAgICAgQ3JlYXRlQnkgPT4gMSwKICAgICAgICAgICAgQ2hhbmdlQnkgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRoZSBpdGVtIG9uZSBhZGQtdGVzdCBiZWZvcmUgbXVzdCBiZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseSAodXBkYXRpbmcgbmFtZSB0byBudW1iZXIgemVybyAoMCkgKQogICAgewogICAgICAgIFVwZGF0ZSA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgPT4gJzAnLAogICAgICAgICAgICBWYWxpZElEID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgPT4gJycsCiAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFVwZGF0ZUdldCA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICcwJywKICAgICAgICAgICAgVmFsaWRJRCAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgPT4gJycsCiAgICAgICAgICAgIENyZWF0ZUJ5ID0+IDEsCiAgICAgICAgICAgIENoYW5nZUJ5ID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0aGUgaXRlbSBvbmUgYWRkLXRlc3QgYmVmb3JlIG11c3Qgbm90IGJlIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5CiAgICAjIChlbXB0eSBzdHJpbmcgYXMgbmFtZSBpcyBub3QgYWxsb3dlZCApCiAgICB7CiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgTmFtZSAgICA9PiAnJywKICAgICAgICAgICAgVmFsaWRJRCA9PiAxLAogICAgICAgICAgICBDb21tZW50ID0+ICcnLAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCl07CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgcnVuIGdlbmVyYWwgdGVzdHMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKbXkgJFRlc3RDb3VudCA9IDE7Cm15ICRMYXN0QWRkZWRJdGVtSUQ7Cm15ICVBZGRlZEl0ZW1Db3VudGVyOwoKZm9yIG15ICRJdGVtICggQHskSXRlbURhdGF9ICkgewoKICAgIGlmICggJEl0ZW0tPntBZGR9ICkgewoKICAgICAgICAjIGFkZCBuZXcgaXRlbQogICAgICAgIG15ICRJdGVtSUQgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1BZGQoCiAgICAgICAgICAgICV7ICRJdGVtLT57QWRkfSB9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgaWYgaXRlbSB3YXMgYWRkZWQgc3VjY2Vzc2Z1bGx5IG9yIG5vdAogICAgICAgIGlmICggJEl0ZW0tPntBZGRHZXR9ICkgewoKICAgICAgICAgICAgb2soICRJdGVtSUQsICJUZXN0ICRUZXN0Q291bnQ6IEl0ZW1BZGQoKSAtIEl0ZW1LZXk6ICRJdGVtSUQiICk7CgogICAgICAgICAgICBpZiAoJEl0ZW1JRCkgewoKICAgICAgICAgICAgICAgICMgc2V0IGxhc3QgaXRlbSBpZCB2YXJpYWJsZQogICAgICAgICAgICAgICAgJExhc3RBZGRlZEl0ZW1JRCA9ICRJdGVtSUQ7CgogICAgICAgICAgICAgICAgIyBpbmNyZW1lbnQgdGhlIGFkZGVkIGl0ZW0gY291bnRlcgogICAgICAgICAgICAgICAgJEFkZGVkSXRlbUNvdW50ZXJ7ICRJdGVtLT57QWRkR2V0fS0+e0NsYXNzfSB9Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG9rKCAhJEl0ZW1JRCwgIlRlc3QgJFRlc3RDb3VudDogSXRlbUFkZCgpIiApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgaXRlbSBkYXRhIHRvIGNoZWNrIHRoZSB2YWx1ZXMgYWZ0ZXIgY3JlYXRpb24gb2YgaXRlbSB1c2luZyBJdGVtSWQgYW5kIFVzZXJJRAogICAgICAgIG15ICRJdGVtR2V0ID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtR2V0KAogICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgVXNlcklEID0+ICRJdGVtLT57QWRkfS0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpdGVtIGRhdGEgYWZ0ZXIgY3JlYXRpb24gb2YgaXRlbQogICAgICAgIGZvciBteSAkSXRlbUF0dHJpYnV0ZSAoIHNvcnQga2V5cyAleyAkSXRlbS0+e0FkZEdldH0gfSApIHsKICAgICAgICAgICAgaXMoCiAgICAgICAgICAgICAgICAkSXRlbUdldC0+eyRJdGVtQXR0cmlidXRlfSwKICAgICAgICAgICAgICAgICRJdGVtLT57QWRkR2V0fS0+eyRJdGVtQXR0cmlidXRlfSwKICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IEl0ZW1HZXQoKSAtIFVzaW5nIEl0ZW1JRCBhbmQgVXNlcklEIC0gJEl0ZW1BdHRyaWJ1dGUgIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGl0ZW0gZGF0YSB0byBjaGVjayB0aGUgdmFsdWVzIGFmdGVyIGNyZWF0aW9uIG9mIGl0ZW0gdXNpbmcgQ2xhc3MgYW5kIE5hbWUKICAgICAgICAkSXRlbUdldCA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJEl0ZW0tPntBZGRHZXR9LT57Q2xhc3N9LAogICAgICAgICAgICBOYW1lICA9PiAkSXRlbS0+e0FkZEdldH0tPntOYW1lfSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGl0ZW0gZGF0YSBhZnRlciBjcmVhdGlvbiBvZiBpdGVtCiAgICAgICAgZm9yIG15ICRJdGVtQXR0cmlidXRlICggc29ydCBrZXlzICV7ICRJdGVtLT57QWRkR2V0fSB9ICkgewogICAgICAgICAgICBpcygKICAgICAgICAgICAgICAgICRJdGVtR2V0LT57JEl0ZW1BdHRyaWJ1dGV9LAogICAgICAgICAgICAgICAgJEl0ZW0tPntBZGRHZXR9LT57JEl0ZW1BdHRyaWJ1dGV9LAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogSXRlbUdldCgpIC0gVXNpbmcgQ2xhc3MgYW5kIE5hbWUgLSAkSXRlbUF0dHJpYnV0ZSAiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRJdGVtLT57VXBkYXRlfSApIHsKCiAgICAgICAgIyBjaGVjayBsYXN0IGl0ZW0gaWQgdmFyaWFibGUKICAgICAgICBpZiAoICEkTGFzdEFkZGVkSXRlbUlEICkgewogICAgICAgICAgICBmYWlsKCJUZXN0ICRUZXN0Q291bnQ6IE5PIExBU1QgSVRFTSBJRCBHSVZFTiIpOwogICAgICAgIH0KCiAgICAgICAgIyB1cGRhdGUgdGhlIGl0ZW0KICAgICAgICBteSAkVXBkYXRlU3VjZXNzID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtVXBkYXRlKAogICAgICAgICAgICAleyAkSXRlbS0+e1VwZGF0ZX0gfSwKICAgICAgICAgICAgSXRlbUlEID0+ICRMYXN0QWRkZWRJdGVtSUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpZiBpdGVtIHdhcyB1cGRhdGVkIHN1Y2Nlc3NmdWxseSBvciBub3QKICAgICAgICBpZiAoICRJdGVtLT57VXBkYXRlR2V0fSApIHsKICAgICAgICAgICAgb2soCiAgICAgICAgICAgICAgICAkVXBkYXRlU3VjZXNzLAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogSXRlbVVwZGF0ZSgpIC0gSXRlbUtleTogJExhc3RBZGRlZEl0ZW1JRCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBvaygKICAgICAgICAgICAgICAgICEkVXBkYXRlU3VjZXNzLAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogSXRlbVVwZGF0ZSgpIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGl0ZW0gZGF0YSB0byBjaGVjayB0aGUgdmFsdWVzIGFmdGVyIHRoZSB1cGRhdGUKICAgICAgICBteSAkSXRlbUdldDIgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1HZXQoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkTGFzdEFkZGVkSXRlbUlELAogICAgICAgICAgICBVc2VySUQgPT4gJEl0ZW0tPntVcGRhdGV9LT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGl0ZW0gZGF0YSBhZnRlciB1cGRhdGUKICAgICAgICBmb3IgbXkgJEl0ZW1BdHRyaWJ1dGUgKCBzb3J0IGtleXMgJXsgJEl0ZW0tPntVcGRhdGVHZXR9IH0gKSB7CiAgICAgICAgICAgIGlzKAogICAgICAgICAgICAgICAgJEl0ZW1HZXQyLT57JEl0ZW1BdHRyaWJ1dGV9LAogICAgICAgICAgICAgICAgJEl0ZW0tPntVcGRhdGVHZXR9LT57JEl0ZW1BdHRyaWJ1dGV9LAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogSXRlbUdldCgpIC0gJEl0ZW1BdHRyaWJ1dGUiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRJdGVtLT57UHJlZmVyZW5jZXNTZXR9ICkgewoKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkSXRlbS0+e1ByZWZlcmVuY2VzU2V0fSB9ICkgewoKICAgICAgICAgICAgIyBzZXQgcHJlZmVyZW5jZXMKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkdlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXNTZXQoCiAgICAgICAgICAgICAgICBLZXkgICAgPT4gJEtleSwKICAgICAgICAgICAgICAgIFZhbHVlICA9PiAkSXRlbS0+e1ByZWZlcmVuY2VzU2V0fS0+eyRLZXl9LAogICAgICAgICAgICAgICAgSXRlbUlEID0+ICRMYXN0QWRkZWRJdGVtSUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBvaygKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogUHJlZmVyZW5jZXNTZXQoKSAtICRLZXkiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHByZWZlcmVuY2VzCiAgICBpZiAoICRJdGVtLT57UHJlZmVyZW5jZXNHZXR9ICkgewogICAgICAgIG15ICVQcmVmZXJlbmNlcyA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+R2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlc0dldCgKICAgICAgICAgICAgSXRlbUlEID0+ICRMYXN0QWRkZWRJdGVtSUQsCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXsgJEl0ZW0tPntQcmVmZXJlbmNlc0dldH0gfSApIHsKICAgICAgICAgICAgaWYgKCAkSXRlbS0+e1ByZWZlcmVuY2VzR2V0fS0+eyRLZXl9IGVxICRQcmVmZXJlbmNlc3skS2V5fSApIHsKICAgICAgICAgICAgICAgIG9rKAogICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogUHJlZmVyZW5jZXNHZXQoKSAtICRLZXkiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIG9rKAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogUHJlZmVyZW5jZXNHZXQoKSAtICRLZXkiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAkVGVzdENvdW50Kys7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBtYWtlIHByZXBhcmF0aW9ucyBmb3IgbGF0ZXIgdGVzdHMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBjcmVhdGUgbmVlZGVkIGFycmF5cwpteSAlRXhpc3RpbmdDbGFzc2VzVG1wOwpJVEVNOgpmb3IgbXkgJEl0ZW0gKCBAeyRJdGVtRGF0YX0gKSB7CiAgICBuZXh0IElURU0gaWYgISRJdGVtLT57QWRkR2V0fS0+e0NsYXNzfTsKICAgICRFeGlzdGluZ0NsYXNzZXNUbXB7ICRJdGVtLT57QWRkR2V0fS0+e0NsYXNzfSB9ID0gMTsKfQpteSBARXhpc3RpbmdDbGFzc2VzID0gc29ydCBrZXlzICVFeGlzdGluZ0NsYXNzZXNUbXA7CgpteSAlRXhpc3RpbmdGdW5jdGlvbmFsaXRpZXNUbXA7CklURU06CmZvciBteSAkSXRlbSAoIEB7JEl0ZW1EYXRhfSApIHsKICAgICRJdGVtLT57VXBkYXRlR2V0fS0+e0Z1bmN0aW9uYWxpdHl9IHx8PSAnJzsKICAgICRFeGlzdGluZ0Z1bmN0aW9uYWxpdGllc1RtcHsgJEl0ZW0tPntVcGRhdGVHZXR9LT57RnVuY3Rpb25hbGl0eX0gfSA9IDE7Cn0KCm15IEBOb25FeGlzdGluZ0NsYXNzZXMgPSAoICdVbml0VGVzdDo6Tm9FeGlzdGluZ0NsYXNzMScsICdVbml0VGVzdDo6Tm9FeGlzdGluZ0NsYXNzMicgKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBDbGFzc0xpc3QgdGVzdCAxCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCm15ICRDbGFzc0xpc3QxID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5DbGFzc0xpc3QoKTsKCmZvciBteSAkQ2xhc3MgKEBFeGlzdGluZ0NsYXNzZXMpIHsKCiAgICBteSAkQ2xhc3NDb3VudCA9IDA7CiAgICBpZiAoICRDbGFzc0xpc3QxICYmIHJlZiAkQ2xhc3NMaXN0MSBlcSAnQVJSQVknICkgewogICAgICAgICRDbGFzc0NvdW50ID0gZ3JlcCB7ICRfIGVxICRDbGFzcyB9IEB7JENsYXNzTGlzdDF9OwogICAgfQoKICAgIGlzKAogICAgICAgICRDbGFzc0NvdW50LAogICAgICAgIDEsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2xhc3NMaXN0KCkgLSAkQ2xhc3MgbGlzdGVkIiwKICAgICk7CgogICAgJFRlc3RDb3VudCsrOwp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgSXRlbUxpc3QgdGVzdCAxCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCmZvciBteSAkQ2xhc3MgKEBOb25FeGlzdGluZ0NsYXNzZXMpIHsKCiAgICBteSAkSXRlbUxpc3QgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICRDbGFzcywKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICBvaygKICAgICAgICAhJEl0ZW1MaXN0LAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IEl0ZW1MaXN0KCkgLSAkQ2xhc3Mgbm90IGV4aXN0cyIsCiAgICApOwoKICAgICRUZXN0Q291bnQrKzsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIEl0ZW1MaXN0IHRlc3QgMgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgpmb3IgbXkgJENsYXNzIChARXhpc3RpbmdDbGFzc2VzKSB7CgogICAgbXkgJEl0ZW1MaXN0ID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyA9PiAkQ2xhc3MsCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgbXkgJExpc3RDb3VudCA9ICdOVUxMJzsKICAgIGlmICggZGVmaW5lZCAkSXRlbUxpc3QgJiYgcmVmICRJdGVtTGlzdCBlcSAnSEFTSCcgKSB7CiAgICAgICAgJExpc3RDb3VudCA9IGtleXMgJXskSXRlbUxpc3R9OwogICAgfQoKICAgIGlzKAogICAgICAgICRMaXN0Q291bnQsCiAgICAgICAgJEFkZGVkSXRlbUNvdW50ZXJ7JENsYXNzfSwKICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBJdGVtTGlzdCgpIC0gJENsYXNzIGNvcnJlY3QgbnVtYmVyIG9mIGl0ZW1zIiwKICAgICk7CgogICAgJFRlc3RDb3VudCsrOwp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgSXRlbUxpc3QgdGVzdCAzIC0gSXRlbSBMaXN0IHdpdGggcHJlZmVyZW5jZXMgKHNpbmdsZSBoYXNoIGVudHJ5KQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgp7CgogICAgbXkgJENsYXNzICAgID0gJ1VuaXRUZXN0OjpUZXN0Q2xhc3MnIC4gJENsYXNzUmFuZFswXTsKICAgIG15ICRJdGVtTGlzdCA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJENsYXNzLAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgUHJlZmVyZW5jZXMgPT4gewogICAgICAgICAgICBIZWxsbyA9PiAnV29ybGQnLAogICAgICAgIH0sCiAgICApOwoKICAgIG15ICRMaXN0Q291bnQgPSAnTlVMTCc7CiAgICBpZiAoIGRlZmluZWQgJEl0ZW1MaXN0ICYmIHJlZiAkSXRlbUxpc3QgZXEgJ0hBU0gnICkgewogICAgICAgICRMaXN0Q291bnQgPSBrZXlzICV7JEl0ZW1MaXN0fTsKICAgIH0KCiAgICBpcygKICAgICAgICAkTGlzdENvdW50LAogICAgICAgIDEsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogSXRlbUxpc3QoKSBwcmVmZXJlbmNlcyAoc2luZ2xlIGhhc2ggZW50cnkpIC0gJENsYXNzIGNvcnJlY3QgbnVtYmVyIG9mIGl0ZW1zIiwKICAgICk7CgogICAgJFRlc3RDb3VudCsrOwp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgSXRlbUxpc3QgdGVzdCA0IC0gSXRlbSBMaXN0IHdpdGggcHJlZmVyZW5jZXMgKGFycmF5KQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgp7CgogICAgbXkgJENsYXNzICAgID0gJ1VuaXRUZXN0OjpUZXN0Q2xhc3MnIC4gJENsYXNzUmFuZFswXTsKICAgIG15ICRJdGVtTGlzdCA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJENsYXNzLAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgUHJlZmVyZW5jZXMgPT4gewogICAgICAgICAgICBDb2xvciA9PiBbICdSZWQnLCAnQmx1ZScgXSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkTGlzdENvdW50ID0gJ05VTEwnOwogICAgaWYgKCBkZWZpbmVkICRJdGVtTGlzdCAmJiByZWYgJEl0ZW1MaXN0IGVxICdIQVNIJyApIHsKICAgICAgICAkTGlzdENvdW50ID0ga2V5cyAleyRJdGVtTGlzdH07CiAgICB9CgogICAgaXMoCiAgICAgICAgJExpc3RDb3VudCwKICAgICAgICAyLAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IEl0ZW1MaXN0KCkgcHJlZmVyZW5jZXMgKGFycmF5KSAtICRDbGFzcyBjb3JyZWN0IG51bWJlciBvZiBpdGVtcyIsCiAgICApOwoKICAgICRUZXN0Q291bnQrKzsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIFByZWZlcmVuY2VzIHRlc3QgMQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCmZvciBteSAkQ2xhc3MgKEBFeGlzdGluZ0NsYXNzZXMpIHsKCiAgICBteSAkSXRlbUlEID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtQWRkKAogICAgICAgIENsYXNzICAgPT4gJENsYXNzLAogICAgICAgIE5hbWUgICAgPT4gJ0l0ZW0gUHJlZmVyZW5jZXMnLAogICAgICAgIFZhbGlkSUQgPT4gMSwKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwoKICAgICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+R2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlc1NldCgKICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICBLZXkgICAgPT4gJ1VuaXRUZXN0UHJlZicsCiAgICAgICAgVmFsdWUgID0+ICcxJywKICAgICk7CgogICAgbXkgJEl0ZW1MaXN0ID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyAgICAgICA9PiAkQ2xhc3MsCiAgICAgICAgUHJlZmVyZW5jZXMgPT4gewogICAgICAgICAgICBVbml0VGVzdFByZWYgPT4gMSwKICAgICAgICB9LAogICAgKTsKCiAgICBpcygKICAgICAgICAkSXRlbUxpc3QtPnskSXRlbUlEfSwKICAgICAgICAnSXRlbSBQcmVmZXJlbmNlcycsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogSXRlbUxpc3QoKSAtIENsYXNzICRDbGFzcyBQcmVmZXJlbmNlcyBtYXRjaCIsCiAgICApOwoKICAgICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+R2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlc1NldCgKICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICBLZXkgICAgPT4gJ1VuaXRUZXN0UHJlZicsCiAgICAgICAgVmFsdWUgID0+ICcyJywKICAgICk7CgogICAgJEl0ZW1MaXN0ID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyAgICAgICA9PiAkQ2xhc3MsCiAgICAgICAgUHJlZmVyZW5jZXMgPT4gewogICAgICAgICAgICBVbml0VGVzdFByZWYgPT4gMSwKICAgICAgICB9LAogICAgKTsKCiAgICBvaygKICAgICAgICAhJEl0ZW1MaXN0LAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IEl0ZW1MaXN0KCkgLSBDbGFzcyAkQ2xhc3MgUHJlZmVyZW5jZXMgbm90IG1hdGNoIGFmdGVyIFByZWZlcmVuY2VzU2V0IENoYW5nZSIKICAgICk7CgogICAgJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtVXBkYXRlKAogICAgICAgIEl0ZW1JRCAgPT4gJEl0ZW1JRCwKICAgICAgICBOYW1lICAgID0+ICdJdGVtIFByZWZlcmVuY2VzJywKICAgICAgICBWYWxpZElEID0+IDIsCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgKTsKCiAgICAkVGVzdENvdW50Kys7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBQcmVmZXJlbmNlcyB0ZXN0IDIKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKPWZvciBuZXZlcgoKbXkgJUZ1bmN0aW9uYWxpdHlMaXN0MSA9IG1hcCB7ICRfID0+IDEgfSBrZXlzICVFeGlzdGluZ0Z1bmN0aW9uYWxpdGllc1RtcDsKCmZvciBteSAkQ2xhc3MgKEBFeGlzdGluZ0NsYXNzZXMpIHsKCiAgICBteSAkRnVuY3Rpb25hbGl0eUxpc3QgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkZ1bmN0aW9uYWxpdHlMaXN0KAogICAgICAgIENsYXNzID0+ICRDbGFzcywKICAgICk7CgogICAgb2soCiAgICAgICAgJEZ1bmN0aW9uYWxpdHlMaXN0ICYmIHJlZiAkRnVuY3Rpb25hbGl0eUxpc3QgZXEgJ0FSUkFZJywKICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBGdW5jdGlvbmFsaXR5TGlzdCgpIC0gcmV0dXJuIGEgYXJyYXkgcmVmZXJlbmNlIiwKICAgICk7CgogICAgZm9yIG15ICRGdW5jdGlvbmFsaXR5ICggQHskRnVuY3Rpb25hbGl0eUxpc3R9ICkgewogICAgICAgIGRlbGV0ZSAkRnVuY3Rpb25hbGl0eUxpc3QxeyRGdW5jdGlvbmFsaXR5fTsKICAgIH0KCiAgICAkVGVzdENvdW50Kys7Cn0KCm9rKAogICAgIWtleXMgJUZ1bmN0aW9uYWxpdHlMaXN0MSwKICAgICJUZXN0ICRUZXN0Q291bnQ6IEZ1bmN0aW9uYWxpdHlMaXN0KCkiLAopOwoKJFRlc3RDb3VudCsrOwoKPWN1dAoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIENsYXNzUmVuYW1lIHRlc3QgMSAoY2hlY2sgbm9ybWFsIHJlbmFtZSkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKQ0xBU1M6CmZvciBteSAkQ2xhc3MgKEBFeGlzdGluZ0NsYXNzZXMpIHsKCiAgICBteSAkT2xkSXRlbUxpc3QgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICRDbGFzcywKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICBteSAkU3VjY2VzcyA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+Q2xhc3NSZW5hbWUoCiAgICAgICAgQ2xhc3NPbGQgPT4gJENsYXNzLAogICAgICAgIENsYXNzTmV3ID0+ICRDbGFzcyAuICdSRU5BTUUxJywKICAgICk7CgogICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgZmFpbCgiVGVzdCAkVGVzdENvdW50OiBDbGFzc1JlbmFtZSgpIC0gUmVuYW1lIGZhaWxlZCIpOwoKICAgICAgICBuZXh0IENMQVNTOwogICAgfQoKICAgIG15ICROZXdJdGVtTGlzdCA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgPT4gJENsYXNzIC4gJ1JFTkFNRTEnLAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwoKICAgIGlmICgKICAgICAgICAhJE9sZEl0ZW1MaXN0CiAgICAgICAgfHwgISROZXdJdGVtTGlzdAogICAgICAgIHx8IHJlZiAkT2xkSXRlbUxpc3QgbmUgJ0hBU0gnCiAgICAgICAgfHwgcmVmICROZXdJdGVtTGlzdCBuZSAnSEFTSCcKICAgICAgICApCiAgICB7CiAgICAgICAgZmFpbCgiVGVzdCAkVGVzdENvdW50OiBDbGFzc1JlbmFtZSgpIC0gSXRlbUxpc3QgZmFpbGVkIik7CgogICAgICAgIG5leHQgQ0xBU1M7CiAgICB9CgogICAgT0xES0VZOgogICAgZm9yIG15ICRPbGRLZXkgKCBzb3J0IGtleXMgJXskT2xkSXRlbUxpc3R9ICkgewoKICAgICAgICBpZiAoICFleGlzdHMgJE5ld0l0ZW1MaXN0LT57JE9sZEtleX0gKSB7CiAgICAgICAgICAgICROZXdJdGVtTGlzdC0+e0ZhaWxlZER1bW15fSA9IDE7CiAgICAgICAgICAgIG5leHQgT0xES0VZOwogICAgICAgIH0KCiAgICAgICAgbmV4dCBPTERLRVkgaWYgJE9sZEl0ZW1MaXN0LT57JE9sZEtleX0gbmUgJE5ld0l0ZW1MaXN0LT57JE9sZEtleX07CgogICAgICAgIGRlbGV0ZSAkTmV3SXRlbUxpc3QtPnskT2xkS2V5fTsKICAgIH0KCiAgICBvaygKICAgICAgICAha2V5cyAleyROZXdJdGVtTGlzdH0sCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2xhc3NSZW5hbWUoKSIsCiAgICApOwoKICAgICRUZXN0Q291bnQrKzsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIENsYXNzUmVuYW1lIHRlc3QgMiAoY2hlY2sgc3RyaW5nIGNsZWFuZXIgZnVuY3Rpb24pCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCkNMQVNTOgpmb3IgbXkgJENsYXNzIChARXhpc3RpbmdDbGFzc2VzKSB7CgogICAgbXkgJE9sZEl0ZW1MaXN0ID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyA9PiAkQ2xhc3MgLiAnUkVOQU1FMScsCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgbXkgJFN1Y2Nlc3MgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkNsYXNzUmVuYW1lKAogICAgICAgIENsYXNzT2xkID0+ICRDbGFzcyAuICdSRU5BTUUxJywKICAgICAgICBDbGFzc05ldyA9PiAnICcgLiAkQ2xhc3MgLiAiUkUgTkEgTUUgMiBcbiBcciBcdCAiLAogICAgKTsKCiAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICBmYWlsKCAiVGVzdCAkVGVzdENvdW50OiBDbGFzc1JlbmFtZSgpIC0gUmVuYW1lIGZhaWxlZCIsICk7CgogICAgICAgIG5leHQgQ0xBU1M7CiAgICB9CgogICAgbXkgJE5ld0l0ZW1MaXN0ID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyA9PiAkQ2xhc3MgLiAnUkVOQU1FMicsCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgaWYgKAogICAgICAgICEkT2xkSXRlbUxpc3QKICAgICAgICB8fCAhJE5ld0l0ZW1MaXN0CiAgICAgICAgfHwgcmVmICRPbGRJdGVtTGlzdCBuZSAnSEFTSCcKICAgICAgICB8fCByZWYgJE5ld0l0ZW1MaXN0IG5lICdIQVNIJwogICAgICAgICkKICAgIHsKICAgICAgICBmYWlsKCAiVGVzdCAkVGVzdENvdW50OiBDbGFzc1JlbmFtZSgpIC0gSXRlbUxpc3QgZmFpbGVkIiwgKTsKCiAgICAgICAgbmV4dCBDTEFTUzsKICAgIH0KCiAgICBPTERLRVk6CiAgICBmb3IgbXkgJE9sZEtleSAoIHNvcnQga2V5cyAleyRPbGRJdGVtTGlzdH0gKSB7CgogICAgICAgIGlmICggIWV4aXN0cyAkTmV3SXRlbUxpc3QtPnskT2xkS2V5fSApIHsKICAgICAgICAgICAgJE5ld0l0ZW1MaXN0LT57RmFpbGVkRHVtbXl9ID0gMTsKICAgICAgICAgICAgbmV4dCBPTERLRVk7CiAgICAgICAgfQoKICAgICAgICBuZXh0IE9MREtFWSBpZiAkT2xkSXRlbUxpc3QtPnskT2xkS2V5fSBuZSAkTmV3SXRlbUxpc3QtPnskT2xkS2V5fTsKCiAgICAgICAgZGVsZXRlICROZXdJdGVtTGlzdC0+eyRPbGRLZXl9OwogICAgfQoKICAgIG9rKAogICAgICAgICFrZXlzICV7JE5ld0l0ZW1MaXN0fSwKICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBDbGFzc1JlbmFtZSgpIiwKICAgICk7CgogICAgJFRlc3RDb3VudCsrOwp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgQ2xhc3NSZW5hbWUgdGVzdCAyIChpZGVudGljYWwgbmFtZSB0ZXN0KQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgpmb3IgbXkgJENsYXNzIChARXhpc3RpbmdDbGFzc2VzKSB7CgogICAgbXkgJFN1Y2Nlc3MgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkNsYXNzUmVuYW1lKAogICAgICAgIENsYXNzT2xkID0+ICRDbGFzcyAuICdSRU5BTUUyJywKICAgICAgICBDbGFzc05ldyA9PiAkQ2xhc3MgLiAnUkVOQU1FMicsCiAgICApOwoKICAgIG9rKAogICAgICAgICRTdWNjZXNzLAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IENsYXNzUmVuYW1lKCkgLSBvbGRuYW1lIGFuZCBuZXduYW1lIGlkZW50aWNhbCIsCiAgICApOwoKICAgICRUZXN0Q291bnQrKzsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIENsYXNzUmVuYW1lIHRlc3QgMyAobmV3IGNsYXNzIG5hbWUgYWxyZWFkeSBleGlzdHMpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUFkZCgKICAgIENsYXNzICAgICAgICAgPT4gJ1VuaXRUZXN0OjpUZXN0Q2xhc3MnIC4gJENsYXNzUmFuZFsyXSwKICAgIE5hbWUgICAgICAgICAgPT4gJ0R1bW15JywKICAgIEZ1bmN0aW9uYWxpdHkgPT4gJycsCiAgICBWYWxpZElEICAgICAgID0+IDEsCiAgICBVc2VySUQgICAgICAgID0+IDEsCik7Cgpmb3IgbXkgJENsYXNzIChARXhpc3RpbmdDbGFzc2VzKSB7CgogICAgbXkgJFN1Y2Nlc3MgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkNsYXNzUmVuYW1lKAogICAgICAgIENsYXNzT2xkID0+ICRDbGFzcyAuICdSRU5BTUUyJywKICAgICAgICBDbGFzc05ldyA9PiAnVW5pdFRlc3Q6OlRlc3RDbGFzcycgLiAkQ2xhc3NSYW5kWzJdLAogICAgKTsKCiAgICBvaygKICAgICAgICAhJFN1Y2Nlc3MsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2xhc3NSZW5hbWUoKSAtIG5ldyBjbGFzcyBuYW1lIGFscmVhZHkgZXhpc3RzIiwKICAgICk7CgogICAgJFRlc3RDb3VudCsrOwp9CgojIHJlc3RvcmUgb3JpZ2luYWwgZ2VuZXJhbCBjYXRhbG9nIHBlcm1pc3Npb24gcHJlZmVyZW5jZXMgc2V0dGluZwokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlcyMjI1Blcm1pc3Npb25zJywKICAgIFZhbHVlID0+ICRHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzUGVybWlzc2lvbnNPcmcsCik7Cgpkb25lX3Rlc3Rpbmc7Cg==</File>
        <File Location="scripts/test/DynamicField/Driver/GeneralCatalog/ValueSearch.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKdXNlIHY1LjI0Owp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKdXNlIFRlc3QyOjpWMCBxdyggZG9uZV90ZXN0aW5nIGlzIG9rIHJlZl9vayApOwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlJlZ2lzdGVyT007ICAgICMgU2V0IHVwICRLZXJuZWw6Ok9NCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCiMgZ2V0IGhlbHBlciBvYmplY3QKJEtlcm5lbDo6T00tPk9iamVjdFBhcmFtQWRkKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyA9PiB7CiAgICAgICAgUmVzdG9yZURhdGFiYXNlID0+IDEsCiAgICB9LAopOwpteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiMgc2V0IHVwIHRoZSB0ZXN0IGNsYXNzIHdpdGggc29tZSBpdGVtcy4KbXkgJEdlbmVyYWxDYXRhbG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyk7Cm15IEBDaXJjbGVzICAgICAgICAgICAgICA9ICgKICAgICfwn5+gIC0gVSsxRjdFMCAtIExBUkdFIE9SQU5HRSBDSVJDTEUnLAogICAgJ/Cfn6EgLSBVKzFGN0UxIC0gTEFSR0UgWUVMTE9XIENJUkNMRScsCiAgICAn8J+foiAtIFUrMUY3RTIgLSBMQVJHRSBHUkVFTiBDSVJDTEUnLAogICAgJ/Cfn6MgLSBVKzFGN0UzIC0gTEFSR0UgUFVSUExFIENJUkNMRScsCiAgICAn8J+fpCAtIFUrMUY3RTQgLSBMQVJHRSBCUk9XTiBDSVJDTEUnLAopOwpteSAlQ2lyY2xlSUQyTmFtZTsKbXkgJFRlc3RDbGFzcyA9ICdVbml0VGVzdDo6Q2lyY2xlOjpMYXJnZSc7CmZvciBteSAkQ2lyY2xlIChAQ2lyY2xlcykgewogICAgbXkgJEl0ZW1JRCA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUFkZCgKICAgICAgICBDbGFzcyAgID0+ICRUZXN0Q2xhc3MsCiAgICAgICAgTmFtZSAgICA9PiAkQ2lyY2xlLAogICAgICAgIFZhbGlkSUQgPT4gMSwKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwogICAgb2soICRJdGVtSUQsICJjaXJjbGUgYWRkZWQ6ICRDaXJjbGUiICk7CiAgICAkQ2lyY2xlSUQyTmFtZXskSXRlbUlEfSA9ICRDaXJjbGU7Cn0KbXkgJUNpcmNsZU5hbWUySUQgPSByZXZlcnNlICVDaXJjbGVJRDJOYW1lOwoKIyBnZXQgbmVlZGVkIG9iamVjdHMKbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKbXkgJEJhY2tlbmRPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiMgZGVmaW5lIG5lZWRlZCB2YXJpYWJsZQpteSAkUmFuZG9tSUQgPSAkSGVscGVyLT5HZXRSYW5kb21OdW1iZXI7CgojIGNyZWF0ZSBhIGR5bmFtaWMgZmllbGQKbXkgJEZpZWxkSUQgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRBZGQoCiAgICBOYW1lICAgICAgID0+ICJkeW5hbWljZmllbGR0ZXN0Y2lyY2xlIiwKICAgIExhYmVsICAgICAgPT4gJ2EgZGVzY3JpcHRpb24nLAogICAgRmllbGRPcmRlciA9PiA5OTkxLAogICAgRmllbGRUeXBlICA9PiAnR2VuZXJhbENhdGFsb2cnLAogICAgT2JqZWN0VHlwZSA9PiAnQ3VzdG9tZXJVc2VyJywKICAgIENvbmZpZyAgICAgPT4gewogICAgICAgIENsYXNzICAgICAgPT4gJFRlc3RDbGFzcywKICAgICAgICBNdWx0aVZhbHVlID0+IDEsCiAgICB9LAogICAgVmFsaWRJRCA9PiAxLAogICAgVXNlcklEICA9PiAxLAopOwpvayggJEZpZWxkSUQsICJEeW5hbWljRmllbGRBZGQoKSBzdWNjZXNzZnVsIGZvciBGaWVsZCBJRCAkRmllbGRJRCIgKTsKCm15ICREeW5hbWljRmllbGRDb25maWcgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRHZXQoIElEID0+ICRGaWVsZElEICk7CnJlZl9vayggJER5bmFtaWNGaWVsZENvbmZpZywgJ0hBU0gnLCAnZ290IGEgZHluYW1pYyBmaWVsZCcgKTsKCm15IEBPYmplY3ROYW1lczsKCiMgYXV0b2dlbmVyYXRlZCBzcGVjaWZpYyBjdXN0b21lcnMKZm9yIG15ICRDaXJjbGUgKEBDaXJjbGVzKSB7CiAgICBteSAkT2JqZWN0TmFtZSA9ICJjdXN0b21lciAkUmFuZG9tSUQgZm9yICRDaXJjbGUiOwoKICAgIG15ICRTdWNjZXNzID0gJEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiBbICRDaXJjbGVOYW1lMklEeyRDaXJjbGV9IF0sCiAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0TmFtZSAgICAgICAgID0+ICRPYmplY3ROYW1lLAogICAgKTsKICAgIG9rKCAkU3VjY2VzcywgIkNyZWF0aW9uIG9mIGR5bmFtaWMgZmllbGQgdmFsdWUgdmlhIG9iamVjdCBuYW1lOiAkT2JqZWN0TmFtZSIgKTsKCiAgICBwdXNoIEBPYmplY3ROYW1lcywgJE9iamVjdE5hbWU7Cn0KCiMgYWRkIGEgZ2VuZXJpYyBjdXN0b21lcgp7CiAgICBteSAkT2JqZWN0TmFtZSA9ICJjdXN0b21lciAkUmFuZG9tSUQgZm9yIGFsbCBjaXJjbGVzIjsKICAgIG15ICRTdWNjZXNzICAgID0gJEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiBbIHZhbHVlcyAlQ2lyY2xlTmFtZTJJRCBdLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAogICAgICAgIE9iamVjdE5hbWUgICAgICAgICA9PiAkT2JqZWN0TmFtZSwKICAgICk7CiAgICBvayggJFN1Y2Nlc3MsICJDcmVhdGlvbiBvZiBkeW5hbWljIGZpZWxkIHZhbHVlcyBnZW5lcmljIGN1c3RvbWVyIiApOwoKICAgIHB1c2ggQE9iamVjdE5hbWVzLCAkT2JqZWN0TmFtZTsKfQoKIyBmZXRjaCBvYmplY3QgSURzIGZvciBvYmplY3QgbmFtZXMKbXkgJE9iamVjdElEQnlPYmplY3ROYW1lID0gJER5bmFtaWNGaWVsZE9iamVjdC0+T2JqZWN0TWFwcGluZ0dldCgKICAgIE9iamVjdE5hbWUgPT4gXEBPYmplY3ROYW1lcywKICAgIE9iamVjdFR5cGUgPT4gJ0N1c3RvbWVyVXNlcicsCik7CmlzKAogICAgc2NhbGFyIGtleXMgJE9iamVjdElEQnlPYmplY3ROYW1lLT4lKiwKICAgIHNjYWxhciBAT2JqZWN0TmFtZXMsCiAgICAnTnVtYmVyIG9mIGZvdW5kIG9iamVjdCBJRHMgbXVzdCBtYXRjaCBudW1iZXIgb2Ygb2JqZWN0IG5hbWVzLicsCik7CgojIENoZWNrIHRoYXQgVmFsdWVTZWFyY2goKSByZXR1cm5zIHRoZSBleHBlY3RlZCByZXN1bHRzLgojIEl0IGxvb2tzIGxpa2UgVmFsdWVTZWFyY2ggb25seSBhY2NlcHRzIGEgc2luZ2xlIHNlYXJjaCB0ZXJtLAojIHNvIHdlIGV4cGVjdCB0byBmaW5kIHR3byBjdXN0b21lcnMsIHRoZSBzcGVjaWZpYyBjdXN0b21lciBhbmQgdGhlIGdlbmVyaWMgY3VzdG9tZXIuCm15ICRSZXN1bHRzID0gJEJhY2tlbmRPYmplY3QtPlZhbHVlU2VhcmNoKAogICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICBTZWFyY2ggICAgICAgICAgICAgPT4gJENpcmNsZU5hbWUySUR7J/Cfn6IgLSBVKzFGN0UyIC0gTEFSR0UgR1JFRU4gQ0lSQ0xFJ30sCik7Cm9rKCBJc0FycmF5UmVmV2l0aERhdGEoJFJlc3VsdHMpLCAnVmFsdWVTZWFyY2ggbXVzdCByZXR1cm4gYSByZXN1bHQuJyApOwoKbXkgQEZvdW5kT2JqZWN0SURzID0gbWFwIHsgJF8tPntPYmplY3RJRH0gfSAkUmVzdWx0cy0+QCo7CmlzKAogICAgWyBzb3J0IEBGb3VuZE9iamVjdElEcyBdLAogICAgWyBzb3J0ICRPYmplY3RJREJ5T2JqZWN0TmFtZS0+eyAkT2JqZWN0TmFtZXNbMl0gfSwgJE9iamVjdElEQnlPYmplY3ROYW1lLT57ICRPYmplY3ROYW1lc1s1XSB9IF0sICAgICMgR3JlZW4gYW5kIGdlbmVyaWMKICAgICdnb3QgdGhlIGV4cGV0ZWQgdHdvIHJlc3VsdHMnCik7Cgpkb25lX3Rlc3Rpbmc7Cg==</File>
        <File Location="scripts/test/Selenium/Output/GeneralCatalogPreferencesGeneric.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKdXNlIFRlc3QyOjpWMCBxdyggZG9uZV90ZXN0aW5nIGlzIG9rICk7CgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJPTTsgICAgIyBTZXQgdXAgJEtlcm5lbDo6T00KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW07CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bS0+bmV3KCBMb2dFeGVjdXRlQ29tbWFuZEFjdGl2ZSA9PiAxICk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICAjIGdldCBoZWxwZXIgb2JqZWN0CiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgZ2V0IHN5c2NvbmZpZyBvYmplY3QKICAgICAgICBteSAkU3lzQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAwLAogICAgICAgICAgICBLZXkgICA9PiAnR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlcyMjI0NvbW1lbnQyJywKICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgTW9kdWxlICA9PiAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkdlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXM6OkdlbmVyaWMnLAogICAgICAgICAgICAgICAgTGFiZWwgICA9PiAnQ29tbWVudDInLAogICAgICAgICAgICAgICAgRGVzYyAgICA9PiAnRGVmaW5lIHRoZSBnZW5lcmFsIGNhdGFsb2cgY29tbWVudCAyLicsCiAgICAgICAgICAgICAgICBCbG9jayAgID0+ICdUZXh0QXJlYScsCiAgICAgICAgICAgICAgICBDb2xzICAgID0+ICc1MCcsCiAgICAgICAgICAgICAgICBSb3dzICAgID0+ICc1JywKICAgICAgICAgICAgICAgIFByZWZLZXkgPT4gJ0NvbW1lbnQyJywKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAwLAogICAgICAgICAgICBLZXkgICA9PiAnR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlcyMjI1Blcm1pc3Npb25zJywKICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgTW9kdWxlICA9PiAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkdlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXM6OkdlbmVyaWMnLAogICAgICAgICAgICAgICAgTGFiZWwgICA9PiAnUGVybWlzc2lvbnMnLAogICAgICAgICAgICAgICAgRGVzYyAgICA9PiAnRGVmaW5lIHRoZSBncm91cCB3aXRoIHBlcm1pc3Npb25zLicsCiAgICAgICAgICAgICAgICBCbG9jayAgID0+ICdQZXJtaXNzaW9uJywKICAgICAgICAgICAgICAgIENsYXNzICAgPT4gJ0lUU006OkNvbmZpZ0l0ZW06OkNsYXNzJywKICAgICAgICAgICAgICAgIFByZWZLZXkgPT4gJ1Blcm1pc3Npb24nLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsnYWRtaW4nXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICAgICAjIFRlc3QgY2FzZTogQ29tbWVudDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwogICAgICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgICAgICMgbmF2aWdhdGUgdG8gQWRtaW5HZW5lcmFsQ2F0YWxvZyBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZG1pbkdlbmVyYWxDYXRhbG9nIik7CgogICAgICAgICMgY2xpY2sgIkFkZCBDYXRhbG9nIENsYXNzIgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhhdCBnZW5lcmFsIGNhdGFsb2cgcHJlZmVyZW5jZSBDb21tZW50MiBpcyBub3QgcHJlc2VudCB3aGlsZSBpbnZhbGlkCiAgICAgICAgJFNlbGVuaXVtLT5jb250ZW50X2xhY2tzKAogICAgICAgICAgICAnI0NvbW1lbnQyJywKICAgICAgICAgICAgJyNDb21tZW50MiBpcyBub3QgZW5hYmxlZCEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGdlbmVyYWwgY2F0YWxvZyBwcmVmZXJlbmNlIENvbW1lbnQyIGRlZmF1bHQgc3lzY29uZmlnCiAgICAgICAgbXkgJVByZWZlcmVuY2VDb21tZW50MkNvbmZpZyA9ICRTeXNDb25maWdPYmplY3QtPlNldHRpbmdHZXQoCiAgICAgICAgICAgIE5hbWUgICAgPT4gJ0dlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXMjIyNDb21tZW50MicsCiAgICAgICAgICAgIERlZmF1bHQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIHNldCBnZW5lcmFsIGNhdGFsb2cgcHJlZmVyZW5jZSBDb21tZW50MiB0byB2YWxpZAogICAgICAgIG15ICVQcmVmZXJlbmNlQ29tbWVudDJDb25maWdVcGRhdGUgPSBtYXAgeyAkXy0+e0tleX0gPT4gJF8tPntDb250ZW50fSB9CiAgICAgICAgICAgIGdyZXAgeyBkZWZpbmVkICRfLT57S2V5fSB9CiAgICAgICAgICAgIEB7ICRQcmVmZXJlbmNlQ29tbWVudDJDb25maWd7WE1MQ29udGVudFBhcnNlZH0tPntWYWx1ZX0tPlswXS0+e0hhc2h9LT5bMF0tPntJdGVtfSB9OwoKICAgICAgICAjQHsgJFByZWZlcmVuY2VDb21tZW50MkNvbmZpZ3tTZXR0aW5nfS0+WzFdLT57SGFzaH0tPlsxXS0+e0l0ZW19IH07CgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzIyMjQ29tbWVudDInLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVByZWZlcmVuY2VDb21tZW50MkNvbmZpZ1VwZGF0ZSwKICAgICAgICApOwoKICAgICAgICAjIHJlZnJlc2ggc2NyZWVuIGZvciBzeXNjb25maWcgdXBkYXRlIHRvIHRha2UgZWZmZWN0CiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZFJlZnJlc2goKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhhdCBnZW5lcmFsIGNhdGFsb2cgcHJlZmVyZW5jZSBDb21tZW50MiBpcyBwcmVzZW50IHdoaWxlIHZhbGlkCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDb21tZW50MiIsICdjc3MnICktPmlzX2VuYWJsZWQoKTsKICAgICAgICBvayggJFN1Y2Nlc3MsICIjQ29tbWVudDIgaXMgZW5hYmxlZCEiICk7CgogICAgICAgICMgY3JlYXRlIHJlYWwgdGVzdCBjYXRhbG9nIGNsYXNzCiAgICAgICAgbXkgJENhdGFsb2dDbGFzc0RzYyAgPSAiQ2F0YWxvZ0NsYXNzRHNjIiAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENhdGFsb2dDbGFzc05hbWUgPSAiQ2F0YWxvZ0NsYXNzTmFtZSIgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0NsYXNzRHNjIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRDYXRhbG9nQ2xhc3NEc2MpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hbWUiLCAgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCRDYXRhbG9nQ2xhc3NOYW1lKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDb21tZW50IiwgICdjc3MnICktPnNlbmRfa2V5cygiU2VsZW5pdW0gY2F0YWxvZyBjbGFzcyIpOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCcjVmFsaWRJRCcpLnZhbCgnMScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7Iik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1N1Ym1pdCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIGNsaWNrICJBZGQgQ2F0YWxvZyBJdGVtIgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjcmVhdGUgcmVhbCB0ZXN0IGNhdGFsb2cgaXRlbQogICAgICAgIG15ICRDYXRhbG9nQ2xhc3NJdGVtID0gIkNhdGFsb2dDbGFzc0l0ZW0iIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNOYW1lIiwgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCRDYXRhbG9nQ2xhc3NJdGVtKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDb21tZW50IiwgJ2NzcycgKS0+c2VuZF9rZXlzKCJTZWxlbml1bSBjYXRhbG9nIGl0ZW0iKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI1ZhbGlkSUQnKS52YWwoJzEnKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIpOwoKICAgICAgICAjIHNldCBpbmNsdWRlZCBxdWV1ZSBhdHRyaWJ1dGUgQ29tbWVudDIKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDb21tZW50MiIsICdjc3MnICktPnNlbmRfa2V5cygnR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlc0dlbmVyaWMgQ29tbWVudDInKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgZ2V0IHRlc3QgY2F0YWxvZyBpdGVtcyBJRHMKICAgICAgICBteSBAQ2F0YWxvZ0l0ZW1JRHM7CiAgICAgICAgZm9yIG15ICRDYXRhbG9nSXRlbXMgKCAkQ2F0YWxvZ0NsYXNzTmFtZSwgJENhdGFsb2dDbGFzc0l0ZW0gKSB7CiAgICAgICAgICAgIG15ICRDYXRhbG9nQ2xhc3NJdGVtRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICAgICAgQ2xhc3MgPT4gJENhdGFsb2dDbGFzc0RzYywKICAgICAgICAgICAgICAgIE5hbWUgID0+ICRDYXRhbG9nSXRlbXMsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDYXRhbG9nSXRlbUlEID0gJENhdGFsb2dDbGFzc0l0ZW1EYXRhLT57SXRlbUlEfTsKICAgICAgICAgICAgcHVzaCBAQ2F0YWxvZ0l0ZW1JRHMsICRDYXRhbG9nSXRlbUlEOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBuZXcgdGVzdCBjYXRhbG9nIGl0ZW0gQ29tbWVudDIgdmFsdWUKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgKICAgICAgICAgICAgIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFkbWluR2VuZXJhbENhdGFsb2c7U3ViYWN0aW9uPUl0ZW1FZGl0O0l0ZW1JRD0kQ2F0YWxvZ0l0ZW1JRHNbMV0nICldIgogICAgICAgICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgaXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnI0NvbW1lbnQyJywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICdHZW5lcmFsQ2F0YWxvZ1ByZWZlcmVuY2VzR2VuZXJpYyBDb21tZW50MicsCiAgICAgICAgICAgICIjQ29tbWVudDIgc3RvcmVkIHZhbHVlIiwKICAgICAgICApOwoKICAgICAgICAjIHVwZGF0ZSBDb21tZW50MgogICAgICAgIG15ICRVcGRhdGVDb21tZW50MiA9ICJVcGRhdGVkIGNvbW1lbnQgZm9yIEdlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXNHZW5lcmljIENvbW1lbnQyIjsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDb21tZW50MiIsICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjQ29tbWVudDIiLCAnY3NzJyApLT5zZW5kX2tleXMoJFVwZGF0ZUNvbW1lbnQyKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgY2hlY2sgdXBkYXRlZCBDb21tZW50MiB2YWx1ZQogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAkQ2F0YWxvZ0NsYXNzSXRlbSwgJ2xpbmtfdGV4dCcgKS0+VmVyaWZpZWRDbGljaygpOwogICAgICAgIGlzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJyNDb21tZW50MicsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAkVXBkYXRlQ29tbWVudDIsCiAgICAgICAgICAgICIjQ29tbWVudDIgdXBkYXRlZCB2YWx1ZSIsCiAgICAgICAgKTsKCiAgICAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICAgICAjIFRlc3QgY2FzZTogUGVybWlzc2lvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwogICAgICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgICAgICMgbmF2aWdhdGUgdG8gQWRtaW5HZW5lcmFsQ2F0YWxvZyBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZG1pbkdlbmVyYWxDYXRhbG9nIik7CgogICAgICAgICMgY2xpY2sgb24gdGVzdCBDYXRhbG9nQ2xhc3MKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJENhdGFsb2dDbGFzc0RzYywgJ2xpbmtfdGV4dCcgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIGNsaWNrICJBZGQgQ2F0YWxvZyBJdGVtIgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhhdCBnZW5lcmFsIGNhdGFsb2cgcHJlZmVyZW5jZSBQZXJtaXNzaW9ucyBpcyBub3QgcHJlc2VudCB3aGlsZSBpbnZhbGlkCiAgICAgICAgJFNlbGVuaXVtLT5jb250ZW50X2xhY2tzKAogICAgICAgICAgICAnI1Blcm1pc3Npb25fU2VhcmNoJywKICAgICAgICAgICAgJyNQZXJtaXNzaW9ucyBpcyBub3QgZW5hYmxlZCEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGdlbmVyYWwgY2F0YWxvZyBwcmVmZXJlbmNlIFBlcm1pc3Npb24gZGVmYXVsdCBzeXNjb25maWcKICAgICAgICBteSAlUHJlZmVyZW5jZVBlcm1pc3Npb25zQ29uZmlnID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ0dldCgKICAgICAgICAgICAgTmFtZSAgICA9PiAnR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlcyMjI1Blcm1pc3Npb25zJywKICAgICAgICAgICAgRGVmYXVsdCA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15ICRQcmVmZXJlbmNlUGVybWlzc2lvbnNFZmZlY3RpdmVDb25maWcgPSAkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nRWZmZWN0aXZlVmFsdWVHZXQoCiAgICAgICAgICAgIFZhbHVlID0+ICRQcmVmZXJlbmNlUGVybWlzc2lvbnNDb25maWd7WE1MQ29udGVudFBhcnNlZH0tPntWYWx1ZX0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzZXQgQ2xhc3MgZm9yIEdlbmVyYWxDYXRhbG9nUHJlZmVyZW5jZXMjIyNQZXJtaXNzaW9ucyBhcyB0ZXN0IENhdGFsb2dDbGFzcwogICAgICAgICRQcmVmZXJlbmNlUGVybWlzc2lvbnNFZmZlY3RpdmVDb25maWctPntDbGFzc30gPSAkQ2F0YWxvZ0NsYXNzRHNjOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnR2VuZXJhbENhdGFsb2dQcmVmZXJlbmNlcyMjI1Blcm1pc3Npb25zJywKICAgICAgICAgICAgVmFsdWUgPT4gJFByZWZlcmVuY2VQZXJtaXNzaW9uc0VmZmVjdGl2ZUNvbmZpZywKICAgICAgICApOwoKICAgICAgICAjIHJlZnJlc2ggc2NyZWVuIGZvciBzeXNjb25maWcgdXBkYXRlIHRvIHRha2UgZWZmZWN0CiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZFJlZnJlc2goKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhhdCBnZW5lcmFsIGNhdGFsb2cgcHJlZmVyZW5jZSBQZXJtaXNzaW9ucyBpcyBwcmVzZW50IHdoaWxlIHZhbGlkCiAgICAgICAgJFN1Y2Nlc3MgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNQZXJtaXNzaW9uX1NlYXJjaCIsICdjc3MnICktPmlzX2VuYWJsZWQoKTsKICAgICAgICBvayggJFN1Y2Nlc3MsICIjUGVybWlzc2lvbnMgaXMgZW5hYmxlZCEiICk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGRlbGV0ZSBjcmVhdGVkIHRlc3QgY2F0YWxvZyBjbGFzcwogICAgICAgIGZvciBteSAkQ2F0YWxvZ0l0ZW0gKEBDYXRhbG9nSXRlbUlEcykgewoKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMID0+ICJERUxFVEUgRlJPTSBnZW5lcmFsX2NhdGFsb2dfcHJlZmVyZW5jZXMgV0hFUkUgZ2VuZXJhbF9jYXRhbG9nX2lkID0gJENhdGFsb2dJdGVtIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgb2soICRTdWNjZXNzLCAiQ2F0YWxvZ0l0ZW1JRCAkQ2F0YWxvZ0l0ZW0gcHJlZmVyZW5jZSAtIGRlbGV0ZWQiICk7CiAgICAgICAgICAgICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCA9PiAiREVMRVRFIEZST00gZ2VuZXJhbF9jYXRhbG9nIFdIRVJFIGlkID0gJENhdGFsb2dJdGVtIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgb2soICRTdWNjZXNzLCAiQ2F0YWxvZ0l0ZW1JRCAkQ2F0YWxvZ0l0ZW0gLSBkZWxldGVkIiwgKTsKICAgICAgICB9CgogICAgICAgICMgY2xlYW4gdXAgY2FjaGUKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnR2VuZXJhbENhdGFsb2cnICk7CiAgICB9Cik7Cgpkb25lX3Rlc3Rpbmc7Cg==</File>
        <File Location="scripts/test/Selenium/Agent/Admin/AdminGeneralCatalog.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKdXNlIFRlc3QyOjpWMCBxdyggZG9uZV90ZXN0aW5nIGlzIG9rICk7CgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7ICAgICMgU2V0IHVwICRLZXJuZWw6Ok9NCnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtOwoKbXkgJFNlbGVuaXVtID0gS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bS0+bmV3KCBMb2dFeGVjdXRlQ29tbWFuZEFjdGl2ZSA9PiAxICk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBDcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsnYWRtaW4nXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZG1pbkdlbmVyYWxDYXRhbG9nIHNjcmVlbi4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZG1pbkdlbmVyYWxDYXRhbG9nIik7CgogICAgICAgICMgQ2xpY2sgIkFkZCBDYXRhbG9nIENsYXNzIi4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nQWRkJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgZm9yIGlucHV0IGZpZWxkcy4KICAgICAgICBmb3IgbXkgJElEICgKICAgICAgICAgICAgcXcoQ2xhc3NEc2MgTmFtZSBWYWxpZElEIENvbW1lbnQpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBjbGllbnQgc2lkZSB2YWxpZGF0aW9uLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hbWUiLCAgICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3VibWl0IiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiAkKCIjTmFtZS5FcnJvciIpLmxlbmd0aCcgKTsKCiAgICAgICAgaXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCcjTmFtZScpLmhhc0NsYXNzKCdFcnJvcicpIgogICAgICAgICAgICApLAogICAgICAgICAgICAnMScsCiAgICAgICAgICAgICdDbGllbnQgc2lkZSB2YWxpZGF0aW9uIGNvcnJlY3RseSBkZXRlY3RlZCBtaXNzaW5nIGlucHV0IHZhbHVlJywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSByZWFsIHRlc3QgY2F0YWxvZyBjbGFzcy4KICAgICAgICBteSAkQ2F0YWxvZ0NsYXNzRHNjICA9ICJDYXRhbG9nQ2xhc3NEc2MiIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2F0YWxvZ0NsYXNzTmFtZSA9ICJDYXRhbG9nQ2xhc3NOYW1lIiAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjQ2xhc3NEc2MiLCAnY3NzJyApLT5zZW5kX2tleXMoJENhdGFsb2dDbGFzc0RzYyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTmFtZSIsICAgICAnY3NzJyApLT5zZW5kX2tleXMoJENhdGFsb2dDbGFzc05hbWUpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0NvbW1lbnQiLCAgJ2NzcycgKS0+c2VuZF9rZXlzKCJTZWxlbml1bSBjYXRhbG9nIGNsYXNzIik7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJyNWYWxpZElEJykudmFsKCcxJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJyNTdWJtaXQnLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2xpY2sgIkdvIHRvIG92ZXJ2aWV3Ii4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249QWRtaW5HZW5lcmFsQ2F0YWxvZycgKV0iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIENoZWNrIGZvciBjcmVhdGVkIHRlc3QgY2F0YWxvZyBjbGFzcyBpbiBBZG1pbkdlbmVyYWxDYXRhbG9nIHNjcmVlbiBhbmQgY2xpY2sgb24gaXQuCiAgICAgICAgJFNlbGVuaXVtLT5jb250ZW50X2NvbnRhaW5zKAogICAgICAgICAgICAkQ2F0YWxvZ0NsYXNzRHNjLAogICAgICAgICAgICAiQ3JlYXRlZCB0ZXN0IGNhdGFsb2cgY2xhc3MgJENhdGFsb2dDbGFzc0RzYyAtIGZvdW5kIiwKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KAogICAgICAgICAgICAiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249QWRtaW5HZW5lcmFsQ2F0YWxvZztTdWJhY3Rpb249SXRlbUxpc3Q7Q2xhc3M9JENhdGFsb2dDbGFzc0RzYycgKV0iCiAgICAgICAgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIENsaWNrICJBZGQgQ2F0YWxvZyBJdGVtIi4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nQWRkJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgY2xpZW50IHNpZGUgdmFsaWRhdGlvbi4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNOYW1lIiwgICAnY3NzJyApLT5jbGVhcigpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1Ym1pdCIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gJCgiI05hbWUuRXJyb3IiKS5sZW5ndGgnICk7CgogICAgICAgIGlzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgInJldHVybiBcJCgnI05hbWUnKS5oYXNDbGFzcygnRXJyb3InKSIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJzEnLAogICAgICAgICAgICAnQ2xpZW50IHNpZGUgdmFsaWRhdGlvbiBjb3JyZWN0bHkgZGV0ZWN0ZWQgbWlzc2luZyBpbnB1dCB2YWx1ZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBUcnkgdG8gY3JlYXRlIGNhdGFsb2cgaXRlbSB0aGF0IGFscmVhZHkgZXhpc3RzLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hbWUiLCAnY3NzJyApLT5zZW5kX2tleXMoJENhdGFsb2dDbGFzc05hbWUpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBWZXJpZnkgZXJyb3IgbWVzc2FnZS4KICAgICAgICAkU2VsZW5pdW0tPmNvbnRlbnRfY29udGFpbnMoCiAgICAgICAgICAgICdDYW5cJ3QgYWRkIG5ldyBpdGVtISBHZW5lcmFsIGNhdGFsb2cgaXRlbSB3aXRoIHNhbWUgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIGNsYXNzLicsCiAgICAgICAgICAgICJFcnJvciBtZXNzYWdlIC0gZGlzcGxheWVkIiwKICAgICAgICApOwoKICAgICAgICAjIFJldHVybiBiYWNrIHRvIHRlc3QgY2F0YWxvZyBjbGFzcyBzY3JlZW4gYW5kIGNsaWNrIG9uICJBZGQgQ2F0YWxvZyBJdGVtIi4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KAogICAgICAgICAgICAiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWRtaW5HZW5lcmFsQ2F0YWxvZztTdWJhY3Rpb249SXRlbUxpc3Q7Q2xhc3M9JENhdGFsb2dDbGFzc0RzYyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDcmVhdGUgcmVhbCB0ZXN0IGNhdGFsb2cgaXRlbS4KICAgICAgICBteSAkQ2F0YWxvZ0NsYXNzSXRlbSA9ICJDYXRhbG9nQ2xhc3NJdGVtIiAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTmFtZSIsICAgICdjc3MnICktPnNlbmRfa2V5cygkQ2F0YWxvZ0NsYXNzSXRlbSk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjQ29tbWVudCIsICdjc3MnICktPnNlbmRfa2V5cygiU2VsZW5pdW0gY2F0YWxvZyBpdGVtIik7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJyNWYWxpZElEJykudmFsKCcxJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgR2V0IHRlc3QgY2F0YWxvZyBpdGVtcyBJRHMuCiAgICAgICAgbXkgQENhdGFsb2dJdGVtSURzOwogICAgICAgIGZvciBteSAkQ2F0YWxvZ0l0ZW1zICggJENhdGFsb2dDbGFzc05hbWUsICRDYXRhbG9nQ2xhc3NJdGVtICkgewogICAgICAgICAgICBteSAkQ2F0YWxvZ0NsYXNzSXRlbURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgICAgIENsYXNzID0+ICRDYXRhbG9nQ2xhc3NEc2MsCiAgICAgICAgICAgICAgICBOYW1lICA9PiAkQ2F0YWxvZ0l0ZW1zLAogICAgICAgICAgICApOwogICAgICAgICAgICBteSAkQ2F0YWxvZ0l0ZW1JRCA9ICRDYXRhbG9nQ2xhc3NJdGVtRGF0YS0+e0l0ZW1JRH07CiAgICAgICAgICAgIHB1c2ggQENhdGFsb2dJdGVtSURzLCAkQ2F0YWxvZ0l0ZW1JRDsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgZm9yIGNyZWF0ZWQgdGVzdCBjYXRhbG9nIGl0ZW0gYW5kIGNsaWNrIG9uIGl0LgogICAgICAgICRTZWxlbml1bS0+Y29udGVudF9jb250YWlucygKICAgICAgICAgICAgJENhdGFsb2dDbGFzc0l0ZW0sCiAgICAgICAgICAgICJDcmVhdGVkIHRlc3QgY2F0YWxvZyBpdGVtICRDYXRhbG9nQ2xhc3NJdGVtIC0gZm91bmQiLAogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoCiAgICAgICAgICAgICIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZG1pbkdlbmVyYWxDYXRhbG9nO1N1YmFjdGlvbj1JdGVtRWRpdDtJdGVtSUQ9JENhdGFsb2dJdGVtSURzWzFdJyApXSIKICAgICAgICApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgbmV3IHRlc3QgY2F0YWxvZyBpdGVtIHZhbHVlcy4KICAgICAgICBpcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjTmFtZScsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAkQ2F0YWxvZ0NsYXNzSXRlbSwKICAgICAgICAgICAgIiNOYW1lIHN0b3JlZCB2YWx1ZSIsCiAgICAgICAgKTsKICAgICAgICBpcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjQ29tbWVudCcsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAiU2VsZW5pdW0gY2F0YWxvZyBpdGVtIiwKICAgICAgICAgICAgIiNDb21tZW50IHN0b3JlZCB2YWx1ZSIsCiAgICAgICAgKTsKCiAgICAgICAgIyBFZGl0IG5hbWUgYW5kIGNvbW1lbnQuCiAgICAgICAgbXkgJEVkaXRDYXRhbG9nQ2xhc3NJdGVtID0gIkVkaXQiIC4gJENhdGFsb2dDbGFzc0l0ZW07CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTmFtZSIsICAgICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTmFtZSIsICAgICdjc3MnICktPnNlbmRfa2V5cygkRWRpdENhdGFsb2dDbGFzc0l0ZW0pOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0NvbW1lbnQiLCAnY3NzJyApLT5zZW5kX2tleXMoIiBlZGl0Iik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1N1Ym1pdCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIENoZWNrIGVkaXRlZCB0ZXN0IGNhdGFsb2cgaXRlbSB2YWx1ZXMuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICRFZGl0Q2F0YWxvZ0NsYXNzSXRlbSwgJ2xpbmtfdGV4dCcgKS0+VmVyaWZpZWRDbGljaygpOwogICAgICAgIGlzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJyNOYW1lJywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICRFZGl0Q2F0YWxvZ0NsYXNzSXRlbSwKICAgICAgICAgICAgIiNOYW1lIHVwZGF0ZWQgdmFsdWUiLAogICAgICAgICk7CiAgICAgICAgaXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnI0NvbW1lbnQnLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgIlNlbGVuaXVtIGNhdGFsb2cgaXRlbSBlZGl0IiwKICAgICAgICAgICAgIiNDb21tZW50IHVwZGF0ZWQgdmFsdWUiLAogICAgICAgICk7CgogICAgICAgICMgQ2xpY2sgb24gJ2NhbmNlbCcgYW5kIHZlcmlmeSBjb3JyZWN0IGxpbmsuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJDYW5jZWwiLCAnbGlua190ZXh0JyApLT5WZXJpZmllZENsaWNrKCk7CiAgICAgICAgb2soCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAkRWRpdENhdGFsb2dDbGFzc0l0ZW0sICdsaW5rX3RleHQnICksCiAgICAgICAgICAgICJDYW5jZWwgbGluayBpcyBjb3JyZWN0LiIKICAgICAgICApOwoKICAgICAgICAjIEdldCBXYXJuaW5nSUQuIFRPRE86IHRoaXMgd29ya3Mgb25seSB3aGVuIElUU01Db3JlIGlzIGFscmVhZHkgaW5zdGFsbGVkCiAgICAgICAgbXkgJEl0ZW1EYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDb3JlOjpJbmNpZGVudFN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ1dhcm5pbmcnLAogICAgICAgICk7CiAgICAgICAgbXkgJFdhcm5pbmdJRCA9ICRJdGVtRGF0YVJlZi0+e0l0ZW1JRH0gLy8gJyc7CiAgICAgICAgb2soCiAgICAgICAgICAgICRXYXJuaW5nSUQsCiAgICAgICAgICAgICJXYXJuaW5nIGluY2lkZW50IHN0YXRlIElEIC0gJFdhcm5pbmdJRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBXYXJuaW5nIGVkaXQgc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoCiAgICAgICAgICAgICIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZG1pbkdlbmVyYWxDYXRhbG9nO1N1YmFjdGlvbj1JdGVtRWRpdDtJdGVtSUQ9JFdhcm5pbmdJRCIKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI1ZhbGlkSUQiKS5sZW5ndGggJiYgJCgiI0Z1bmN0aW9uYWxpdHkiKS5sZW5ndGg7JwogICAgICAgICk7CgogICAgICAgICMgU2VsZWN0ICd3YXJuaW5nJyBhcyBGdW5jdGlvbmFsaXR5IG9wdGlvbi4KICAgICAgICAkU2VsZW5pdW0tPklucHV0RmllbGRWYWx1ZVNldCgKICAgICAgICAgICAgRWxlbWVudCA9PiAnI0Z1bmN0aW9uYWxpdHknLAogICAgICAgICAgICBWYWx1ZSAgID0+ICd3YXJuaW5nJywKICAgICAgICApOwoKICAgICAgICAjIFNlbGVjdCAnSW52YWxpZCcgYXMgVmFsaWRJRCBvcHRpb24uCiAgICAgICAgJFNlbGVuaXVtLT5JbnB1dEZpZWxkVmFsdWVTZXQoCiAgICAgICAgICAgIEVsZW1lbnQgPT4gJyNWYWxpZElEJywKICAgICAgICAgICAgVmFsdWUgICA9PiAnMicsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yalF1ZXJ5RXZlbnRCb3VuZCgKICAgICAgICAgICAgQ1NTU2VsZWN0b3IgPT4gJyNTdWJtaXRBbmRDb250aW51ZScsCiAgICAgICAgICAgIEV2ZW50ICAgICAgID0+ICdjbGljaycsCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3JqUXVlcnlFdmVudEJvdW5kKAogICAgICAgICAgICBDU1NTZWxlY3RvciA9PiAnI1N1Ym1pdCcsCiAgICAgICAgICAgIEV2ZW50ICAgICAgID0+ICdjbGljaycsCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGljayAnU2F2ZScgYW5kICdTYXZlIGFuZCBmaW5pc2gnLgogICAgICAgIGZvciBteSAkQnV0dG9uSUQgKHF3KFN1Ym1pdEFuZENvbnRpbnVlIFN1Ym1pdCkpIHsKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJEJ1dHRvbklEIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuICQoIi5EaWFsb2c6dmlzaWJsZSIpLmxlbmd0aDsnICk7CgogICAgICAgICAgICBteSAkV2FybmluZ1RleHQgPSAnV2FybmluZyBpbmNpZGVudCBzdGF0ZSBjYW4gbm90IGJlIHNldCB0byBpbnZhbGlkLic7CgogICAgICAgICAgICBvaygKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoInJldHVybiBcJCgnLkRpYWxvZzpjb250YWlucyhcIiRXYXJuaW5nVGV4dFwiKScpLmxlbmd0aDsiKSwKICAgICAgICAgICAgICAgICInJEJ1dHRvbklEJyBjbGljayAtIFdhcm5pbmcgZGlhbG9nIGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRTZWxlbml1bS0+V2FpdEZvcmpRdWVyeUV2ZW50Qm91bmQoCiAgICAgICAgICAgICAgICBDU1NTZWxlY3RvciA9PiAnI0RpYWxvZ0J1dHRvbjEnLAogICAgICAgICAgICAgICAgRXZlbnQgICAgICAgPT4gJ2NsaWNrJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgQ2xpY2sgdGhlIGNhbmNlbCBidXR0b24uCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnI0RpYWxvZ0J1dHRvbjEnLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gISQoIi5EaWFsb2c6dmlzaWJsZSIpLmxlbmd0aDsnICk7CiAgICAgICAgfQoKICAgICAgICAjIFNlbGVjdCAnVmFsaWQnIGFzIFZhbGlkSUQgb3B0aW9uLgogICAgICAgICRTZWxlbml1bS0+SW5wdXRGaWVsZFZhbHVlU2V0KAogICAgICAgICAgICBFbGVtZW50ID0+ICcjVmFsaWRJRCcsCiAgICAgICAgICAgIFZhbHVlICAgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgICMgQ2xpY2sgU2F2ZS4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJtaXRBbmRDb250aW51ZSIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNWYWxpZElEIikubGVuZ3RoICYmICQoIiNGdW5jdGlvbmFsaXR5IikubGVuZ3RoOycKICAgICAgICApOwoKICAgICAgICBvaygKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgicmV0dXJuIFwkKCcjRnVuY3Rpb25hbGl0eScpLnZhbCgpID09ICd3YXJuaW5nJzsiKSwKICAgICAgICAgICAgIkluY2lkZW50IFN0YXRlIFR5cGUgaXMgc2V0IHRvICd3YXJuaW5nJyIsCiAgICAgICAgKTsKICAgICAgICBvaygKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgicmV0dXJuIFwkKCcjVmFsaWRJRCcpLnZhbCgpID09ICcxJzsiKSwKICAgICAgICAgICAgIlZhbGlkSUQgaXMgc2V0IHRvICcxJyIsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgRGVsZXRlIGNyZWF0ZWQgdGVzdCBjYXRhbG9nIGNsYXNzLgogICAgICAgIGZvciBteSAkQ2F0YWxvZ0l0ZW0gKEBDYXRhbG9nSXRlbUlEcykgewoKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gZ2VuZXJhbF9jYXRhbG9nX3ByZWZlcmVuY2VzIFdIRVJFIGdlbmVyYWxfY2F0YWxvZ19pZCA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkQ2F0YWxvZ0l0ZW0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgb2soCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICJDYXRhbG9nSXRlbUlEICRDYXRhbG9nSXRlbSBwcmVmZXJlbmNlIC0gZGVsZXRlZCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSBnZW5lcmFsX2NhdGFsb2cgV0hFUkUgaWQgPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJENhdGFsb2dJdGVtIF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG9rKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiQ2F0YWxvZ0l0ZW1JRCAkQ2F0YWxvZ0l0ZW0gLSBkZWxldGVkIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgQ2xlYW4gdXAgY2FjaGUuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0dlbmVyYWxDYXRhbG9nJyApOwogICAgfQopOwoKZG9uZV90ZXN0aW5nOwo=</File>
        <File Location="var/httpd/htdocs/js/thirdparty/jscolor_1.4.1/arrow.gif" Permission="660" Encode="Base64">R0lGODlhBwALAKECAAAAAP///6g8eKg8eCH5BAEKAAIALAAAAAAHAAsAAAITTIQYcLnsgGxvijrxqdQq6DRJAQA7</File>
        <File Location="var/httpd/htdocs/js/thirdparty/jscolor_1.4.1/cross.gif" Permission="660" Encode="Base64">R0lGODlhDwAPAKEBAAAAAP///////////yH5BAEKAAIALAAAAAAPAA8AAAIklB8Qx53b4otSUWcvyiz4/4AeQJbmKY4p1HHapBlwPL/uVRsFADs=</File>
        <File Location="var/httpd/htdocs/js/thirdparty/jscolor_1.4.1/hs.png" Permission="660" Encode="Base64">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</File>
        <File Location="var/httpd/htdocs/js/thirdparty/jscolor_1.4.1/hv.png" Permission="660" Encode="Base64">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</File>
        <File Location="var/httpd/htdocs/js/thirdparty/jscolor_1.4.1/jscolor.js" Permission="660" Encode="Base64">LyoqDQogKiBqc2NvbG9yLCBKYXZhU2NyaXB0IENvbG9yIFBpY2tlcg0KICoNCiAqIEB2ZXJzaW9uIDEuNC4xDQogKiBAbGljZW5zZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9sZXNzZXIuaHRtbA0KICogQGF1dGhvciAgSmFuIE9kdmFya28sIGh0dHA6Ly9vZHZhcmtvLmN6DQogKiBAY3JlYXRlZCAyMDA4LTA2LTE1DQogKiBAdXBkYXRlZCAyMDEzLTA0LTA4DQogKiBAbGluayAgICBodHRwOi8vanNjb2xvci5jb20NCiAqLw0KDQoNCnZhciBqc2NvbG9yID0gew0KDQoNCglkaXIgOiAnJywgLy8gbG9jYXRpb24gb2YganNjb2xvciBkaXJlY3RvcnkgKGxlYXZlIGVtcHR5IHRvIGF1dG9kZXRlY3QpDQoJYmluZENsYXNzIDogJ2NvbG9yJywgLy8gY2xhc3MgbmFtZQ0KCWJpbmRpbmcgOiB0cnVlLCAvLyBhdXRvbWF0aWMgYmluZGluZyB2aWEgPGlucHV0IGNsYXNzPSIuLi4iPg0KCXByZWxvYWRpbmcgOiB0cnVlLCAvLyB1c2UgaW1hZ2UgcHJlbG9hZGluZz8NCg0KDQoJaW5zdGFsbCA6IGZ1bmN0aW9uKCkgew0KCQlqc2NvbG9yLmFkZEV2ZW50KHdpbmRvdywgJ2xvYWQnLCBqc2NvbG9yLmluaXQpOw0KCX0sDQoNCg0KCWluaXQgOiBmdW5jdGlvbigpIHsNCgkJaWYoanNjb2xvci5iaW5kaW5nKSB7DQoJCQlqc2NvbG9yLmJpbmQoKTsNCgkJfQ0KCQlpZihqc2NvbG9yLnByZWxvYWRpbmcpIHsNCgkJCWpzY29sb3IucHJlbG9hZCgpOw0KCQl9DQoJfSwNCg0KDQoJZ2V0RGlyIDogZnVuY3Rpb24oKSB7DQoJCWlmKCFqc2NvbG9yLmRpcikgew0KCQkJdmFyIGRldGVjdGVkID0ganNjb2xvci5kZXRlY3REaXIoKTsNCgkJCWpzY29sb3IuZGlyID0gZGV0ZWN0ZWQhPT1mYWxzZSA/IGRldGVjdGVkIDogJ2pzY29sb3IvJzsNCgkJfQ0KCQlyZXR1cm4ganNjb2xvci5kaXI7DQoJfSwNCg0KDQoJZGV0ZWN0RGlyIDogZnVuY3Rpb24oKSB7DQoJCXZhciBiYXNlID0gbG9jYXRpb24uaHJlZjsNCg0KCQl2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdiYXNlJyk7DQoJCWZvcih2YXIgaT0wOyBpPGUubGVuZ3RoOyBpKz0xKSB7DQoJCQlpZihlW2ldLmhyZWYpIHsgYmFzZSA9IGVbaV0uaHJlZjsgfQ0KCQl9DQoNCgkJdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7DQoJCWZvcih2YXIgaT0wOyBpPGUubGVuZ3RoOyBpKz0xKSB7DQoJCQlpZihlW2ldLnNyYyAmJiAvKF58XC8panNjb2xvclwuanMoWz8jXS4qKT8kL2kudGVzdChlW2ldLnNyYykpIHsNCgkJCQl2YXIgc3JjID0gbmV3IGpzY29sb3IuVVJJKGVbaV0uc3JjKTsNCgkJCQl2YXIgc3JjQWJzID0gc3JjLnRvQWJzb2x1dGUoYmFzZSk7DQoJCQkJc3JjQWJzLnBhdGggPSBzcmNBYnMucGF0aC5yZXBsYWNlKC9bXlwvXSskLywgJycpOyAvLyByZW1vdmUgZmlsZW5hbWUNCgkJCQlzcmNBYnMucXVlcnkgPSBudWxsOw0KCQkJCXNyY0Ficy5mcmFnbWVudCA9IG51bGw7DQoJCQkJcmV0dXJuIHNyY0Ficy50b1N0cmluZygpOw0KCQkJfQ0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoNCgliaW5kIDogZnVuY3Rpb24oKSB7DQoJCXZhciBtYXRjaENsYXNzID0gbmV3IFJlZ0V4cCgnKF58XFxzKSgnK2pzY29sb3IuYmluZENsYXNzKycpXFxzKihcXHtbXn1dKlxcfSk/JywgJ2knKTsNCgkJdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKTsNCgkJZm9yKHZhciBpPTA7IGk8ZS5sZW5ndGg7IGkrPTEpIHsNCgkJCXZhciBtOw0KCQkJaWYoIWVbaV0uY29sb3IgJiYgZVtpXS5jbGFzc05hbWUgJiYgKG0gPSBlW2ldLmNsYXNzTmFtZS5tYXRjaChtYXRjaENsYXNzKSkpIHsNCgkJCQl2YXIgcHJvcCA9IHt9Ow0KCQkJCWlmKG1bM10pIHsNCgkJCQkJdHJ5IHsNCgkJCQkJCXByb3AgPSAobmV3IEZ1bmN0aW9uICgncmV0dXJuICgnICsgbVszXSArICcpJykpKCk7DQoJCQkJCX0gY2F0Y2goZUludmFsaWRQcm9wKSB7fQ0KCQkJCX0NCgkJCQllW2ldLmNvbG9yID0gbmV3IGpzY29sb3IuY29sb3IoZVtpXSwgcHJvcCk7DQoJCQl9DQoJCX0NCgl9LA0KDQoNCglwcmVsb2FkIDogZnVuY3Rpb24oKSB7DQoJCWZvcih2YXIgZm4gaW4ganNjb2xvci5pbWdSZXF1aXJlKSB7DQoJCQlpZihqc2NvbG9yLmltZ1JlcXVpcmUuaGFzT3duUHJvcGVydHkoZm4pKSB7DQoJCQkJanNjb2xvci5sb2FkSW1hZ2UoZm4pOw0KCQkJfQ0KCQl9DQoJfSwNCg0KDQoJaW1hZ2VzIDogew0KCQlwYWQgOiBbIDE4MSwgMTAxIF0sDQoJCXNsZCA6IFsgMTYsIDEwMSBdLA0KCQljcm9zcyA6IFsgMTUsIDE1IF0sDQoJCWFycm93IDogWyA3LCAxMSBdDQoJfSwNCg0KDQoJaW1nUmVxdWlyZSA6IHt9LA0KCWltZ0xvYWRlZCA6IHt9LA0KDQoNCglyZXF1aXJlSW1hZ2UgOiBmdW5jdGlvbihmaWxlbmFtZSkgew0KCQlqc2NvbG9yLmltZ1JlcXVpcmVbZmlsZW5hbWVdID0gdHJ1ZTsNCgl9LA0KDQoNCglsb2FkSW1hZ2UgOiBmdW5jdGlvbihmaWxlbmFtZSkgew0KCQlpZighanNjb2xvci5pbWdMb2FkZWRbZmlsZW5hbWVdKSB7DQoJCQlqc2NvbG9yLmltZ0xvYWRlZFtmaWxlbmFtZV0gPSBuZXcgSW1hZ2UoKTsNCgkJCWpzY29sb3IuaW1nTG9hZGVkW2ZpbGVuYW1lXS5zcmMgPSBqc2NvbG9yLmdldERpcigpK2ZpbGVuYW1lOw0KCQl9DQoJfSwNCg0KDQoJZmV0Y2hFbGVtZW50IDogZnVuY3Rpb24obWl4ZWQpIHsNCgkJcmV0dXJuIHR5cGVvZiBtaXhlZCA9PT0gJ3N0cmluZycgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtaXhlZCkgOiBtaXhlZDsNCgl9LA0KDQoNCglhZGRFdmVudCA6IGZ1bmN0aW9uKGVsLCBldm50LCBmdW5jKSB7DQoJCWlmKGVsLmFkZEV2ZW50TGlzdGVuZXIpIHsNCgkJCWVsLmFkZEV2ZW50TGlzdGVuZXIoZXZudCwgZnVuYywgZmFsc2UpOw0KCQl9IGVsc2UgaWYoZWwuYXR0YWNoRXZlbnQpIHsNCgkJCWVsLmF0dGFjaEV2ZW50KCdvbicrZXZudCwgZnVuYyk7DQoJCX0NCgl9LA0KDQoNCglmaXJlRXZlbnQgOiBmdW5jdGlvbihlbCwgZXZudCkgew0KCQlpZighZWwpIHsNCgkJCXJldHVybjsNCgkJfQ0KCQlpZihkb2N1bWVudC5jcmVhdGVFdmVudCkgew0KCQkJdmFyIGV2ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTsNCgkJCWV2LmluaXRFdmVudChldm50LCB0cnVlLCB0cnVlKTsNCgkJCWVsLmRpc3BhdGNoRXZlbnQoZXYpOw0KCQl9IGVsc2UgaWYoZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3QpIHsNCgkJCXZhciBldiA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KCk7DQoJCQllbC5maXJlRXZlbnQoJ29uJytldm50LCBldik7DQoJCX0gZWxzZSBpZihlbFsnb24nK2V2bnRdKSB7IC8vIGFsdGVybmF0aXZlbHkgdXNlIHRoZSB0cmFkaXRpb25hbCBldmVudCBtb2RlbCAoSUU1KQ0KCQkJZWxbJ29uJytldm50XSgpOw0KCQl9DQoJfSwNCg0KDQoJZ2V0RWxlbWVudFBvcyA6IGZ1bmN0aW9uKGUpIHsNCgkJdmFyIGUxPWUsIGUyPWU7DQoJCXZhciB4PTAsIHk9MDsNCgkJaWYoZTEub2Zmc2V0UGFyZW50KSB7DQoJCQlkbyB7DQoJCQkJeCArPSBlMS5vZmZzZXRMZWZ0Ow0KCQkJCXkgKz0gZTEub2Zmc2V0VG9wOw0KCQkJfSB3aGlsZShlMSA9IGUxLm9mZnNldFBhcmVudCk7DQoJCX0NCgkJd2hpbGUoKGUyID0gZTIucGFyZW50Tm9kZSkgJiYgZTIubm9kZU5hbWUudG9VcHBlckNhc2UoKSAhPT0gJ0JPRFknKSB7DQoJCQl4IC09IGUyLnNjcm9sbExlZnQ7DQoJCQl5IC09IGUyLnNjcm9sbFRvcDsNCgkJfQ0KCQlyZXR1cm4gW3gsIHldOw0KCX0sDQoNCg0KCWdldEVsZW1lbnRTaXplIDogZnVuY3Rpb24oZSkgew0KCQlyZXR1cm4gW2Uub2Zmc2V0V2lkdGgsIGUub2Zmc2V0SGVpZ2h0XTsNCgl9LA0KDQoNCglnZXRSZWxNb3VzZVBvcyA6IGZ1bmN0aW9uKGUpIHsNCgkJdmFyIHggPSAwLCB5ID0gMDsNCgkJaWYgKCFlKSB7IGUgPSB3aW5kb3cuZXZlbnQ7IH0NCgkJaWYgKHR5cGVvZiBlLm9mZnNldFggPT09ICdudW1iZXInKSB7DQoJCQl4ID0gZS5vZmZzZXRYOw0KCQkJeSA9IGUub2Zmc2V0WTsNCgkJfSBlbHNlIGlmICh0eXBlb2YgZS5sYXllclggPT09ICdudW1iZXInKSB7DQoJCQl4ID0gZS5sYXllclg7DQoJCQl5ID0gZS5sYXllclk7DQoJCX0NCgkJcmV0dXJuIHsgeDogeCwgeTogeSB9Ow0KCX0sDQoNCg0KCWdldFZpZXdQb3MgOiBmdW5jdGlvbigpIHsNCgkJaWYodHlwZW9mIHdpbmRvdy5wYWdlWU9mZnNldCA9PT0gJ251bWJlcicpIHsNCgkJCXJldHVybiBbd2luZG93LnBhZ2VYT2Zmc2V0LCB3aW5kb3cucGFnZVlPZmZzZXRdOw0KCQl9IGVsc2UgaWYoZG9jdW1lbnQuYm9keSAmJiAoZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0IHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSkgew0KCQkJcmV0dXJuIFtkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQsIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wXTsNCgkJfSBlbHNlIGlmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCkpIHsNCgkJCXJldHVybiBbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3BdOw0KCQl9IGVsc2Ugew0KCQkJcmV0dXJuIFswLCAwXTsNCgkJfQ0KCX0sDQoNCg0KCWdldFZpZXdTaXplIDogZnVuY3Rpb24oKSB7DQoJCWlmKHR5cGVvZiB3aW5kb3cuaW5uZXJXaWR0aCA9PT0gJ251bWJlcicpIHsNCgkJCXJldHVybiBbd2luZG93LmlubmVyV2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodF07DQoJCX0gZWxzZSBpZihkb2N1bWVudC5ib2R5ICYmIChkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIHx8IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0KSkgew0KCQkJcmV0dXJuIFtkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoLCBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodF07DQoJCX0gZWxzZSBpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSkgew0KCQkJcmV0dXJuIFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHRdOw0KCQl9IGVsc2Ugew0KCQkJcmV0dXJuIFswLCAwXTsNCgkJfQ0KCX0sDQoNCg0KCVVSSSA6IGZ1bmN0aW9uKHVyaSkgeyAvLyBTZWUgUkZDMzk4Ng0KDQoJCXRoaXMuc2NoZW1lID0gbnVsbDsNCgkJdGhpcy5hdXRob3JpdHkgPSBudWxsOw0KCQl0aGlzLnBhdGggPSAnJzsNCgkJdGhpcy5xdWVyeSA9IG51bGw7DQoJCXRoaXMuZnJhZ21lbnQgPSBudWxsOw0KDQoJCXRoaXMucGFyc2UgPSBmdW5jdGlvbih1cmkpIHsNCgkJCXZhciBtID0gdXJpLm1hdGNoKC9eKChbQS1aYS16XVswLTlBLVphLXorLi1dKikoOikpPygoXC9cLykoW15cLz8jXSopKT8oW14/I10qKSgoXD8pKFteI10qKSk/KCgjKSguKikpPy8pOw0KCQkJdGhpcy5zY2hlbWUgPSBtWzNdID8gbVsyXSA6IG51bGw7DQoJCQl0aGlzLmF1dGhvcml0eSA9IG1bNV0gPyBtWzZdIDogbnVsbDsNCgkJCXRoaXMucGF0aCA9IG1bN107DQoJCQl0aGlzLnF1ZXJ5ID0gbVs5XSA/IG1bMTBdIDogbnVsbDsNCgkJCXRoaXMuZnJhZ21lbnQgPSBtWzEyXSA/IG1bMTNdIDogbnVsbDsNCgkJCXJldHVybiB0aGlzOw0KCQl9Ow0KDQoJCXRoaXMudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsNCgkJCXZhciByZXN1bHQgPSAnJzsNCgkJCWlmKHRoaXMuc2NoZW1lICE9PSBudWxsKSB7IHJlc3VsdCA9IHJlc3VsdCArIHRoaXMuc2NoZW1lICsgJzonOyB9DQoJCQlpZih0aGlzLmF1dGhvcml0eSAhPT0gbnVsbCkgeyByZXN1bHQgPSByZXN1bHQgKyAnLy8nICsgdGhpcy5hdXRob3JpdHk7IH0NCgkJCWlmKHRoaXMucGF0aCAhPT0gbnVsbCkgeyByZXN1bHQgPSByZXN1bHQgKyB0aGlzLnBhdGg7IH0NCgkJCWlmKHRoaXMucXVlcnkgIT09IG51bGwpIHsgcmVzdWx0ID0gcmVzdWx0ICsgJz8nICsgdGhpcy5xdWVyeTsgfQ0KCQkJaWYodGhpcy5mcmFnbWVudCAhPT0gbnVsbCkgeyByZXN1bHQgPSByZXN1bHQgKyAnIycgKyB0aGlzLmZyYWdtZW50OyB9DQoJCQlyZXR1cm4gcmVzdWx0Ow0KCQl9Ow0KDQoJCXRoaXMudG9BYnNvbHV0ZSA9IGZ1bmN0aW9uKGJhc2UpIHsNCgkJCXZhciBiYXNlID0gbmV3IGpzY29sb3IuVVJJKGJhc2UpOw0KCQkJdmFyIHIgPSB0aGlzOw0KCQkJdmFyIHQgPSBuZXcganNjb2xvci5VUkk7DQoNCgkJCWlmKGJhc2Uuc2NoZW1lID09PSBudWxsKSB7IHJldHVybiBmYWxzZTsgfQ0KDQoJCQlpZihyLnNjaGVtZSAhPT0gbnVsbCAmJiByLnNjaGVtZS50b0xvd2VyQ2FzZSgpID09PSBiYXNlLnNjaGVtZS50b0xvd2VyQ2FzZSgpKSB7DQoJCQkJci5zY2hlbWUgPSBudWxsOw0KCQkJfQ0KDQoJCQlpZihyLnNjaGVtZSAhPT0gbnVsbCkgew0KCQkJCXQuc2NoZW1lID0gci5zY2hlbWU7DQoJCQkJdC5hdXRob3JpdHkgPSByLmF1dGhvcml0eTsNCgkJCQl0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyhyLnBhdGgpOw0KCQkJCXQucXVlcnkgPSByLnF1ZXJ5Ow0KCQkJfSBlbHNlIHsNCgkJCQlpZihyLmF1dGhvcml0eSAhPT0gbnVsbCkgew0KCQkJCQl0LmF1dGhvcml0eSA9IHIuYXV0aG9yaXR5Ow0KCQkJCQl0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyhyLnBhdGgpOw0KCQkJCQl0LnF1ZXJ5ID0gci5xdWVyeTsNCgkJCQl9IGVsc2Ugew0KCQkJCQlpZihyLnBhdGggPT09ICcnKSB7DQoJCQkJCQl0LnBhdGggPSBiYXNlLnBhdGg7DQoJCQkJCQlpZihyLnF1ZXJ5ICE9PSBudWxsKSB7DQoJCQkJCQkJdC5xdWVyeSA9IHIucXVlcnk7DQoJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCXQucXVlcnkgPSBiYXNlLnF1ZXJ5Ow0KCQkJCQkJfQ0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJaWYoci5wYXRoLnN1YnN0cigwLDEpID09PSAnLycpIHsNCgkJCQkJCQl0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyhyLnBhdGgpOw0KCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQlpZihiYXNlLmF1dGhvcml0eSAhPT0gbnVsbCAmJiBiYXNlLnBhdGggPT09ICcnKSB7DQoJCQkJCQkJCXQucGF0aCA9ICcvJytyLnBhdGg7DQoJCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkJdC5wYXRoID0gYmFzZS5wYXRoLnJlcGxhY2UoL1teXC9dKyQvLCcnKStyLnBhdGg7DQoJCQkJCQkJfQ0KCQkJCQkJCXQucGF0aCA9IHJlbW92ZURvdFNlZ21lbnRzKHQucGF0aCk7DQoJCQkJCQl9DQoJCQkJCQl0LnF1ZXJ5ID0gci5xdWVyeTsNCgkJCQkJfQ0KCQkJCQl0LmF1dGhvcml0eSA9IGJhc2UuYXV0aG9yaXR5Ow0KCQkJCX0NCgkJCQl0LnNjaGVtZSA9IGJhc2Uuc2NoZW1lOw0KCQkJfQ0KCQkJdC5mcmFnbWVudCA9IHIuZnJhZ21lbnQ7DQoNCgkJCXJldHVybiB0Ow0KCQl9Ow0KDQoJCWZ1bmN0aW9uIHJlbW92ZURvdFNlZ21lbnRzKHBhdGgpIHsNCgkJCXZhciBvdXQgPSAnJzsNCgkJCXdoaWxlKHBhdGgpIHsNCgkJCQlpZihwYXRoLnN1YnN0cigwLDMpPT09Jy4uLycgfHwgcGF0aC5zdWJzdHIoMCwyKT09PScuLycpIHsNCgkJCQkJcGF0aCA9IHBhdGgucmVwbGFjZSgvXlwuKy8sJycpLnN1YnN0cigxKTsNCgkJCQl9IGVsc2UgaWYocGF0aC5zdWJzdHIoMCwzKT09PScvLi8nIHx8IHBhdGg9PT0nLy4nKSB7DQoJCQkJCXBhdGggPSAnLycrcGF0aC5zdWJzdHIoMyk7DQoJCQkJfSBlbHNlIGlmKHBhdGguc3Vic3RyKDAsNCk9PT0nLy4uLycgfHwgcGF0aD09PScvLi4nKSB7DQoJCQkJCXBhdGggPSAnLycrcGF0aC5zdWJzdHIoNCk7DQoJCQkJCW91dCA9IG91dC5yZXBsYWNlKC9cLz9bXlwvXSokLywgJycpOw0KCQkJCX0gZWxzZSBpZihwYXRoPT09Jy4nIHx8IHBhdGg9PT0nLi4nKSB7DQoJCQkJCXBhdGggPSAnJzsNCgkJCQl9IGVsc2Ugew0KCQkJCQl2YXIgcm0gPSBwYXRoLm1hdGNoKC9eXC8/W15cL10qLylbMF07DQoJCQkJCXBhdGggPSBwYXRoLnN1YnN0cihybS5sZW5ndGgpOw0KCQkJCQlvdXQgPSBvdXQgKyBybTsNCgkJCQl9DQoJCQl9DQoJCQlyZXR1cm4gb3V0Ow0KCQl9DQoNCgkJaWYodXJpKSB7DQoJCQl0aGlzLnBhcnNlKHVyaSk7DQoJCX0NCg0KCX0sDQoNCg0KCS8vDQoJLy8gVXNhZ2UgZXhhbXBsZToNCgkvLyB2YXIgbXlDb2xvciA9IG5ldyBqc2NvbG9yLmNvbG9yKG15SW5wdXRFbGVtZW50KQ0KCS8vDQoNCgljb2xvciA6IGZ1bmN0aW9uKHRhcmdldCwgcHJvcCkgew0KDQoNCgkJdGhpcy5yZXF1aXJlZCA9IHRydWU7IC8vIHJlZnVzZSBlbXB0eSB2YWx1ZXM/DQoJCXRoaXMuYWRqdXN0ID0gdHJ1ZTsgLy8gYWRqdXN0IHZhbHVlIHRvIHVuaWZvcm0gbm90YXRpb24/DQoJCXRoaXMuaGFzaCA9IGZhbHNlOyAvLyBwcmVmaXggY29sb3Igd2l0aCAjIHN5bWJvbD8NCgkJdGhpcy5jYXBzID0gdHJ1ZTsgLy8gdXBwZXJjYXNlPw0KCQl0aGlzLnNsaWRlciA9IHRydWU7IC8vIHNob3cgdGhlIHZhbHVlL3NhdHVyYXRpb24gc2xpZGVyPw0KCQl0aGlzLnZhbHVlRWxlbWVudCA9IHRhcmdldDsgLy8gdmFsdWUgaG9sZGVyDQoJCXRoaXMuc3R5bGVFbGVtZW50ID0gdGFyZ2V0OyAvLyB3aGVyZSB0byByZWZsZWN0IGN1cnJlbnQgY29sb3INCgkJdGhpcy5vbkltbWVkaWF0ZUNoYW5nZSA9IG51bGw7IC8vIG9uY2hhbmdlIGNhbGxiYWNrIChjYW4gYmUgZWl0aGVyIHN0cmluZyBvciBmdW5jdGlvbikNCgkJdGhpcy5oc3YgPSBbMCwgMCwgMV07IC8vIHJlYWQtb25seSAgMC02LCAwLTEsIDAtMQ0KCQl0aGlzLnJnYiA9IFsxLCAxLCAxXTsgLy8gcmVhZC1vbmx5ICAwLTEsIDAtMSwgMC0xDQoJCXRoaXMubWluSCA9IDA7IC8vIHJlYWQtb25seSAgMC02DQoJCXRoaXMubWF4SCA9IDY7IC8vIHJlYWQtb25seSAgMC02DQoJCXRoaXMubWluUyA9IDA7IC8vIHJlYWQtb25seSAgMC0xDQoJCXRoaXMubWF4UyA9IDE7IC8vIHJlYWQtb25seSAgMC0xDQoJCXRoaXMubWluViA9IDA7IC8vIHJlYWQtb25seSAgMC0xDQoJCXRoaXMubWF4ViA9IDE7IC8vIHJlYWQtb25seSAgMC0xDQoNCgkJdGhpcy5waWNrZXJPbmZvY3VzID0gdHJ1ZTsgLy8gZGlzcGxheSBwaWNrZXIgb24gZm9jdXM/DQoJCXRoaXMucGlja2VyTW9kZSA9ICdIU1YnOyAvLyBIU1YgfCBIVlMNCgkJdGhpcy5waWNrZXJQb3NpdGlvbiA9ICdib3R0b20nOyAvLyBsZWZ0IHwgcmlnaHQgfCB0b3AgfCBib3R0b20NCgkJdGhpcy5waWNrZXJTbWFydFBvc2l0aW9uID0gdHJ1ZTsgLy8gYXV0b21hdGljYWxseSBhZGp1c3QgcGlja2VyIHBvc2l0aW9uIHdoZW4gbmVjZXNzYXJ5DQoJCXRoaXMucGlja2VyQnV0dG9uSGVpZ2h0ID0gMjA7IC8vIHB4DQoJCXRoaXMucGlja2VyQ2xvc2FibGUgPSBmYWxzZTsNCgkJdGhpcy5waWNrZXJDbG9zZVRleHQgPSAnQ2xvc2UnOw0KCQl0aGlzLnBpY2tlckJ1dHRvbkNvbG9yID0gJ0J1dHRvblRleHQnOyAvLyBweA0KCQl0aGlzLnBpY2tlckZhY2UgPSAxMDsgLy8gcHgNCgkJdGhpcy5waWNrZXJGYWNlQ29sb3IgPSAnVGhyZWVERmFjZSc7IC8vIENTUyBjb2xvcg0KCQl0aGlzLnBpY2tlckJvcmRlciA9IDE7IC8vIHB4DQoJCXRoaXMucGlja2VyQm9yZGVyQ29sb3IgPSAnVGhyZWVESGlnaGxpZ2h0IFRocmVlRFNoYWRvdyBUaHJlZURTaGFkb3cgVGhyZWVESGlnaGxpZ2h0JzsgLy8gQ1NTIGNvbG9yDQoJCXRoaXMucGlja2VySW5zZXQgPSAxOyAvLyBweA0KCQl0aGlzLnBpY2tlckluc2V0Q29sb3IgPSAnVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodCBUaHJlZURIaWdobGlnaHQgVGhyZWVEU2hhZG93JzsgLy8gQ1NTIGNvbG9yDQoJCXRoaXMucGlja2VyWkluZGV4ID0gMTAwMDA7DQoNCg0KCQlmb3IodmFyIHAgaW4gcHJvcCkgew0KCQkJaWYocHJvcC5oYXNPd25Qcm9wZXJ0eShwKSkgew0KCQkJCXRoaXNbcF0gPSBwcm9wW3BdOw0KCQkJfQ0KCQl9DQoNCg0KCQl0aGlzLmhpZGVQaWNrZXIgPSBmdW5jdGlvbigpIHsNCgkJCWlmKGlzUGlja2VyT3duZXIoKSkgew0KCQkJCXJlbW92ZVBpY2tlcigpOw0KCQkJfQ0KCQl9Ow0KDQoNCgkJdGhpcy5zaG93UGlja2VyID0gZnVuY3Rpb24oKSB7DQoJCQlpZighaXNQaWNrZXJPd25lcigpKSB7DQoJCQkJdmFyIHRwID0ganNjb2xvci5nZXRFbGVtZW50UG9zKHRhcmdldCk7IC8vIHRhcmdldCBwb3MNCgkJCQl2YXIgdHMgPSBqc2NvbG9yLmdldEVsZW1lbnRTaXplKHRhcmdldCk7IC8vIHRhcmdldCBzaXplDQoJCQkJdmFyIHZwID0ganNjb2xvci5nZXRWaWV3UG9zKCk7IC8vIHZpZXcgcG9zDQoJCQkJdmFyIHZzID0ganNjb2xvci5nZXRWaWV3U2l6ZSgpOyAvLyB2aWV3IHNpemUNCgkJCQl2YXIgcHMgPSBnZXRQaWNrZXJEaW1zKHRoaXMpOyAvLyBwaWNrZXIgc2l6ZQ0KCQkJCXZhciBhLCBiLCBjOw0KCQkJCXN3aXRjaCh0aGlzLnBpY2tlclBvc2l0aW9uLnRvTG93ZXJDYXNlKCkpIHsNCgkJCQkJY2FzZSAnbGVmdCc6IGE9MTsgYj0wOyBjPS0xOyBicmVhazsNCgkJCQkJY2FzZSAncmlnaHQnOmE9MTsgYj0wOyBjPTE7IGJyZWFrOw0KCQkJCQljYXNlICd0b3AnOiAgYT0wOyBiPTE7IGM9LTE7IGJyZWFrOw0KCQkJCQlkZWZhdWx0OiAgICAgYT0wOyBiPTE7IGM9MTsgYnJlYWs7DQoJCQkJfQ0KCQkJCXZhciBsID0gKHRzW2JdK3BzW2JdKS8yOw0KDQoJCQkJLy8gcGlja2VyIHBvcw0KCQkJCWlmICghdGhpcy5waWNrZXJTbWFydFBvc2l0aW9uKSB7DQoJCQkJCXZhciBwcCA9IFsNCgkJCQkJCXRwW2FdLA0KCQkJCQkJdHBbYl0rdHNbYl0tbCtsKmMNCgkJCQkJXTsNCgkJCQl9IGVsc2Ugew0KCQkJCQl2YXIgcHAgPSBbDQoJCQkJCQktdnBbYV0rdHBbYV0rcHNbYV0gPiB2c1thXSA/DQoJCQkJCQkJKC12cFthXSt0cFthXSt0c1thXS8yID4gdnNbYV0vMiAmJiB0cFthXSt0c1thXS1wc1thXSA+PSAwID8gdHBbYV0rdHNbYV0tcHNbYV0gOiB0cFthXSkgOg0KCQkJCQkJCXRwW2FdLA0KCQkJCQkJLXZwW2JdK3RwW2JdK3RzW2JdK3BzW2JdLWwrbCpjID4gdnNbYl0gPw0KCQkJCQkJCSgtdnBbYl0rdHBbYl0rdHNbYl0vMiA+IHZzW2JdLzIgJiYgdHBbYl0rdHNbYl0tbC1sKmMgPj0gMCA/IHRwW2JdK3RzW2JdLWwtbCpjIDogdHBbYl0rdHNbYl0tbCtsKmMpIDoNCgkJCQkJCQkodHBbYl0rdHNbYl0tbCtsKmMgPj0gMCA/IHRwW2JdK3RzW2JdLWwrbCpjIDogdHBbYl0rdHNbYl0tbC1sKmMpDQoJCQkJCV07DQoJCQkJfQ0KCQkJCWRyYXdQaWNrZXIocHBbYV0sIHBwW2JdKTsNCgkJCX0NCgkJfTsNCg0KDQoJCXRoaXMuaW1wb3J0Q29sb3IgPSBmdW5jdGlvbigpIHsNCgkJCWlmKCF2YWx1ZUVsZW1lbnQpIHsNCgkJCQl0aGlzLmV4cG9ydENvbG9yKCk7DQoJCQl9IGVsc2Ugew0KCQkJCWlmKCF0aGlzLmFkanVzdCkgew0KCQkJCQlpZighdGhpcy5mcm9tU3RyaW5nKHZhbHVlRWxlbWVudC52YWx1ZSwgbGVhdmVWYWx1ZSkpIHsNCgkJCQkJCXN0eWxlRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBzdHlsZUVsZW1lbnQuanNjU3R5bGUuYmFja2dyb3VuZEltYWdlOw0KCQkJCQkJc3R5bGVFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHN0eWxlRWxlbWVudC5qc2NTdHlsZS5iYWNrZ3JvdW5kQ29sb3I7DQoJCQkJCQlzdHlsZUVsZW1lbnQuc3R5bGUuY29sb3IgPSBzdHlsZUVsZW1lbnQuanNjU3R5bGUuY29sb3I7DQoJCQkJCQl0aGlzLmV4cG9ydENvbG9yKGxlYXZlVmFsdWUgfCBsZWF2ZVN0eWxlKTsNCgkJCQkJfQ0KCQkJCX0gZWxzZSBpZighdGhpcy5yZXF1aXJlZCAmJiAvXlxzKiQvLnRlc3QodmFsdWVFbGVtZW50LnZhbHVlKSkgew0KCQkJCQl2YWx1ZUVsZW1lbnQudmFsdWUgPSAnJzsNCgkJCQkJc3R5bGVFbGVtZW50LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IHN0eWxlRWxlbWVudC5qc2NTdHlsZS5iYWNrZ3JvdW5kSW1hZ2U7DQoJCQkJCXN0eWxlRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBzdHlsZUVsZW1lbnQuanNjU3R5bGUuYmFja2dyb3VuZENvbG9yOw0KCQkJCQlzdHlsZUVsZW1lbnQuc3R5bGUuY29sb3IgPSBzdHlsZUVsZW1lbnQuanNjU3R5bGUuY29sb3I7DQoJCQkJCXRoaXMuZXhwb3J0Q29sb3IobGVhdmVWYWx1ZSB8IGxlYXZlU3R5bGUpOw0KDQoJCQkJfSBlbHNlIGlmKHRoaXMuZnJvbVN0cmluZyh2YWx1ZUVsZW1lbnQudmFsdWUpKSB7DQoJCQkJCS8vIE9LDQoJCQkJfSBlbHNlIHsNCgkJCQkJdGhpcy5leHBvcnRDb2xvcigpOw0KCQkJCX0NCgkJCX0NCgkJfTsNCg0KDQoJCXRoaXMuZXhwb3J0Q29sb3IgPSBmdW5jdGlvbihmbGFncykgew0KCQkJaWYoIShmbGFncyAmIGxlYXZlVmFsdWUpICYmIHZhbHVlRWxlbWVudCkgew0KCQkJCXZhciB2YWx1ZSA9IHRoaXMudG9TdHJpbmcoKTsNCgkJCQlpZih0aGlzLmNhcHMpIHsgdmFsdWUgPSB2YWx1ZS50b1VwcGVyQ2FzZSgpOyB9DQoJCQkJaWYodGhpcy5oYXNoKSB7IHZhbHVlID0gJyMnK3ZhbHVlOyB9DQoJCQkJdmFsdWVFbGVtZW50LnZhbHVlID0gdmFsdWU7DQoJCQl9DQoJCQlpZighKGZsYWdzICYgbGVhdmVTdHlsZSkgJiYgc3R5bGVFbGVtZW50KSB7DQoJCQkJc3R5bGVFbGVtZW50LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICJub25lIjsNCgkJCQlzdHlsZUVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0NCgkJCQkJJyMnK3RoaXMudG9TdHJpbmcoKTsNCgkJCQlzdHlsZUVsZW1lbnQuc3R5bGUuY29sb3IgPQ0KCQkJCQkwLjIxMyAqIHRoaXMucmdiWzBdICsNCgkJCQkJMC43MTUgKiB0aGlzLnJnYlsxXSArDQoJCQkJCTAuMDcyICogdGhpcy5yZ2JbMl0NCgkJCQkJPCAwLjUgPyAnI0ZGRicgOiAnIzAwMCc7DQoJCQl9DQoJCQlpZighKGZsYWdzICYgbGVhdmVQYWQpICYmIGlzUGlja2VyT3duZXIoKSkgew0KCQkJCXJlZHJhd1BhZCgpOw0KCQkJfQ0KCQkJaWYoIShmbGFncyAmIGxlYXZlU2xkKSAmJiBpc1BpY2tlck93bmVyKCkpIHsNCgkJCQlyZWRyYXdTbGQoKTsNCgkJCX0NCgkJfTsNCg0KDQoJCXRoaXMuZnJvbUhTViA9IGZ1bmN0aW9uKGgsIHMsIHYsIGZsYWdzKSB7IC8vIG51bGwgPSBkb24ndCBjaGFuZ2UNCgkJCWlmKGggIT09IG51bGwpIHsgaCA9IE1hdGgubWF4KDAuMCwgdGhpcy5taW5ILCBNYXRoLm1pbig2LjAsIHRoaXMubWF4SCwgaCkpOyB9DQoJCQlpZihzICE9PSBudWxsKSB7IHMgPSBNYXRoLm1heCgwLjAsIHRoaXMubWluUywgTWF0aC5taW4oMS4wLCB0aGlzLm1heFMsIHMpKTsgfQ0KCQkJaWYodiAhPT0gbnVsbCkgeyB2ID0gTWF0aC5tYXgoMC4wLCB0aGlzLm1pblYsIE1hdGgubWluKDEuMCwgdGhpcy5tYXhWLCB2KSk7IH0NCg0KCQkJdGhpcy5yZ2IgPSBIU1ZfUkdCKA0KCQkJCWg9PT1udWxsID8gdGhpcy5oc3ZbMF0gOiAodGhpcy5oc3ZbMF09aCksDQoJCQkJcz09PW51bGwgPyB0aGlzLmhzdlsxXSA6ICh0aGlzLmhzdlsxXT1zKSwNCgkJCQl2PT09bnVsbCA/IHRoaXMuaHN2WzJdIDogKHRoaXMuaHN2WzJdPXYpDQoJCQkpOw0KDQoJCQl0aGlzLmV4cG9ydENvbG9yKGZsYWdzKTsNCgkJfTsNCg0KDQoJCXRoaXMuZnJvbVJHQiA9IGZ1bmN0aW9uKHIsIGcsIGIsIGZsYWdzKSB7IC8vIG51bGwgPSBkb24ndCBjaGFuZ2UNCgkJCWlmKHIgIT09IG51bGwpIHsgciA9IE1hdGgubWF4KDAuMCwgTWF0aC5taW4oMS4wLCByKSk7IH0NCgkJCWlmKGcgIT09IG51bGwpIHsgZyA9IE1hdGgubWF4KDAuMCwgTWF0aC5taW4oMS4wLCBnKSk7IH0NCgkJCWlmKGIgIT09IG51bGwpIHsgYiA9IE1hdGgubWF4KDAuMCwgTWF0aC5taW4oMS4wLCBiKSk7IH0NCg0KCQkJdmFyIGhzdiA9IFJHQl9IU1YoDQoJCQkJcj09PW51bGwgPyB0aGlzLnJnYlswXSA6IHIsDQoJCQkJZz09PW51bGwgPyB0aGlzLnJnYlsxXSA6IGcsDQoJCQkJYj09PW51bGwgPyB0aGlzLnJnYlsyXSA6IGINCgkJCSk7DQoJCQlpZihoc3ZbMF0gIT09IG51bGwpIHsNCgkJCQl0aGlzLmhzdlswXSA9IE1hdGgubWF4KDAuMCwgdGhpcy5taW5ILCBNYXRoLm1pbig2LjAsIHRoaXMubWF4SCwgaHN2WzBdKSk7DQoJCQl9DQoJCQlpZihoc3ZbMl0gIT09IDApIHsNCgkJCQl0aGlzLmhzdlsxXSA9IGhzdlsxXT09PW51bGwgPyBudWxsIDogTWF0aC5tYXgoMC4wLCB0aGlzLm1pblMsIE1hdGgubWluKDEuMCwgdGhpcy5tYXhTLCBoc3ZbMV0pKTsNCgkJCX0NCgkJCXRoaXMuaHN2WzJdID0gaHN2WzJdPT09bnVsbCA/IG51bGwgOiBNYXRoLm1heCgwLjAsIHRoaXMubWluViwgTWF0aC5taW4oMS4wLCB0aGlzLm1heFYsIGhzdlsyXSkpOw0KDQoJCQkvLyB1cGRhdGUgUkdCIGFjY29yZGluZyB0byBmaW5hbCBIU1YsIGFzIHNvbWUgdmFsdWVzIG1pZ2h0IGJlIHRyaW1tZWQNCgkJCXZhciByZ2IgPSBIU1ZfUkdCKHRoaXMuaHN2WzBdLCB0aGlzLmhzdlsxXSwgdGhpcy5oc3ZbMl0pOw0KCQkJdGhpcy5yZ2JbMF0gPSByZ2JbMF07DQoJCQl0aGlzLnJnYlsxXSA9IHJnYlsxXTsNCgkJCXRoaXMucmdiWzJdID0gcmdiWzJdOw0KDQoJCQl0aGlzLmV4cG9ydENvbG9yKGZsYWdzKTsNCgkJfTsNCg0KDQoJCXRoaXMuZnJvbVN0cmluZyA9IGZ1bmN0aW9uKGhleCwgZmxhZ3MpIHsNCgkJCXZhciBtID0gaGV4Lm1hdGNoKC9eXFcqKFswLTlBLUZdezN9KFswLTlBLUZdezN9KT8pXFcqJC9pKTsNCgkJCWlmKCFtKSB7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfSBlbHNlIHsNCgkJCQlpZihtWzFdLmxlbmd0aCA9PT0gNikgeyAvLyA2LWNoYXIgbm90YXRpb24NCgkJCQkJdGhpcy5mcm9tUkdCKA0KCQkJCQkJcGFyc2VJbnQobVsxXS5zdWJzdHIoMCwyKSwxNikgLyAyNTUsDQoJCQkJCQlwYXJzZUludChtWzFdLnN1YnN0cigyLDIpLDE2KSAvIDI1NSwNCgkJCQkJCXBhcnNlSW50KG1bMV0uc3Vic3RyKDQsMiksMTYpIC8gMjU1LA0KCQkJCQkJZmxhZ3MNCgkJCQkJKTsNCgkJCQl9IGVsc2UgeyAvLyAzLWNoYXIgbm90YXRpb24NCgkJCQkJdGhpcy5mcm9tUkdCKA0KCQkJCQkJcGFyc2VJbnQobVsxXS5jaGFyQXQoMCkrbVsxXS5jaGFyQXQoMCksMTYpIC8gMjU1LA0KCQkJCQkJcGFyc2VJbnQobVsxXS5jaGFyQXQoMSkrbVsxXS5jaGFyQXQoMSksMTYpIC8gMjU1LA0KCQkJCQkJcGFyc2VJbnQobVsxXS5jaGFyQXQoMikrbVsxXS5jaGFyQXQoMiksMTYpIC8gMjU1LA0KCQkJCQkJZmxhZ3MNCgkJCQkJKTsNCgkJCQl9DQoJCQkJcmV0dXJuIHRydWU7DQoJCQl9DQoJCX07DQoNCg0KCQl0aGlzLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7DQoJCQlyZXR1cm4gKA0KCQkJCSgweDEwMCB8IE1hdGgucm91bmQoMjU1KnRoaXMucmdiWzBdKSkudG9TdHJpbmcoMTYpLnN1YnN0cigxKSArDQoJCQkJKDB4MTAwIHwgTWF0aC5yb3VuZCgyNTUqdGhpcy5yZ2JbMV0pKS50b1N0cmluZygxNikuc3Vic3RyKDEpICsNCgkJCQkoMHgxMDAgfCBNYXRoLnJvdW5kKDI1NSp0aGlzLnJnYlsyXSkpLnRvU3RyaW5nKDE2KS5zdWJzdHIoMSkNCgkJCSk7DQoJCX07DQoNCg0KCQlmdW5jdGlvbiBSR0JfSFNWKHIsIGcsIGIpIHsNCgkJCXZhciBuID0gTWF0aC5taW4oTWF0aC5taW4ocixnKSxiKTsNCgkJCXZhciB2ID0gTWF0aC5tYXgoTWF0aC5tYXgocixnKSxiKTsNCgkJCXZhciBtID0gdiAtIG47DQoJCQlpZihtID09PSAwKSB7IHJldHVybiBbIG51bGwsIDAsIHYgXTsgfQ0KCQkJdmFyIGggPSByPT09biA/IDMrKGItZykvbSA6IChnPT09biA/IDUrKHItYikvbSA6IDErKGctcikvbSk7DQoJCQlyZXR1cm4gWyBoPT09Nj8wOmgsIG0vdiwgdiBdOw0KCQl9DQoNCg0KCQlmdW5jdGlvbiBIU1ZfUkdCKGgsIHMsIHYpIHsNCgkJCWlmKGggPT09IG51bGwpIHsgcmV0dXJuIFsgdiwgdiwgdiBdOyB9DQoJCQl2YXIgaSA9IE1hdGguZmxvb3IoaCk7DQoJCQl2YXIgZiA9IGklMiA/IGgtaSA6IDEtKGgtaSk7DQoJCQl2YXIgbSA9IHYgKiAoMSAtIHMpOw0KCQkJdmFyIG4gPSB2ICogKDEgLSBzKmYpOw0KCQkJc3dpdGNoKGkpIHsNCgkJCQljYXNlIDY6DQoJCQkJY2FzZSAwOiByZXR1cm4gW3YsbixtXTsNCgkJCQljYXNlIDE6IHJldHVybiBbbix2LG1dOw0KCQkJCWNhc2UgMjogcmV0dXJuIFttLHYsbl07DQoJCQkJY2FzZSAzOiByZXR1cm4gW20sbix2XTsNCgkJCQljYXNlIDQ6IHJldHVybiBbbixtLHZdOw0KCQkJCWNhc2UgNTogcmV0dXJuIFt2LG0sbl07DQoJCQl9DQoJCX0NCg0KDQoJCWZ1bmN0aW9uIHJlbW92ZVBpY2tlcigpIHsNCgkJCWRlbGV0ZSBqc2NvbG9yLnBpY2tlci5vd25lcjsNCgkJCWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0ucmVtb3ZlQ2hpbGQoanNjb2xvci5waWNrZXIuYm94Qik7DQoJCX0NCg0KDQoJCWZ1bmN0aW9uIGRyYXdQaWNrZXIoeCwgeSkgew0KCQkJaWYoIWpzY29sb3IucGlja2VyKSB7DQoJCQkJanNjb2xvci5waWNrZXIgPSB7DQoJCQkJCWJveCA6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLA0KCQkJCQlib3hCIDogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksDQoJCQkJCXBhZCA6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLA0KCQkJCQlwYWRCIDogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksDQoJCQkJCXBhZE0gOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwNCgkJCQkJc2xkIDogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksDQoJCQkJCXNsZEIgOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwNCgkJCQkJc2xkTSA6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLA0KCQkJCQlidG4gOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwNCgkJCQkJYnRuUyA6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSwNCgkJCQkJYnRuVCA6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFRISVMucGlja2VyQ2xvc2VUZXh0KQ0KCQkJCX07DQoJCQkJZm9yKHZhciBpPTAsc2VnU2l6ZT00OyBpPGpzY29sb3IuaW1hZ2VzLnNsZFsxXTsgaSs9c2VnU2l6ZSkgew0KCQkJCQl2YXIgc2VnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQoJCQkJCXNlZy5zdHlsZS5oZWlnaHQgPSBzZWdTaXplKydweCc7DQoJCQkJCXNlZy5zdHlsZS5mb250U2l6ZSA9ICcxcHgnOw0KCQkJCQlzZWcuc3R5bGUubGluZUhlaWdodCA9ICcwJzsNCgkJCQkJanNjb2xvci5waWNrZXIuc2xkLmFwcGVuZENoaWxkKHNlZyk7DQoJCQkJfQ0KCQkJCWpzY29sb3IucGlja2VyLnNsZEIuYXBwZW5kQ2hpbGQoanNjb2xvci5waWNrZXIuc2xkKTsNCgkJCQlqc2NvbG9yLnBpY2tlci5ib3guYXBwZW5kQ2hpbGQoanNjb2xvci5waWNrZXIuc2xkQik7DQoJCQkJanNjb2xvci5waWNrZXIuYm94LmFwcGVuZENoaWxkKGpzY29sb3IucGlja2VyLnNsZE0pOw0KCQkJCWpzY29sb3IucGlja2VyLnBhZEIuYXBwZW5kQ2hpbGQoanNjb2xvci5waWNrZXIucGFkKTsNCgkJCQlqc2NvbG9yLnBpY2tlci5ib3guYXBwZW5kQ2hpbGQoanNjb2xvci5waWNrZXIucGFkQik7DQoJCQkJanNjb2xvci5waWNrZXIuYm94LmFwcGVuZENoaWxkKGpzY29sb3IucGlja2VyLnBhZE0pOw0KCQkJCWpzY29sb3IucGlja2VyLmJ0blMuYXBwZW5kQ2hpbGQoanNjb2xvci5waWNrZXIuYnRuVCk7DQoJCQkJanNjb2xvci5waWNrZXIuYnRuLmFwcGVuZENoaWxkKGpzY29sb3IucGlja2VyLmJ0blMpOw0KCQkJCWpzY29sb3IucGlja2VyLmJveC5hcHBlbmRDaGlsZChqc2NvbG9yLnBpY2tlci5idG4pOw0KCQkJCWpzY29sb3IucGlja2VyLmJveEIuYXBwZW5kQ2hpbGQoanNjb2xvci5waWNrZXIuYm94KTsNCgkJCX0NCg0KCQkJdmFyIHAgPSBqc2NvbG9yLnBpY2tlcjsNCg0KCQkJLy8gY29udHJvbHMgaW50ZXJhY3Rpb24NCgkJCXAuYm94Lm9ubW91c2V1cCA9DQoJCQlwLmJveC5vbm1vdXNlb3V0ID0gZnVuY3Rpb24oKSB7IHRhcmdldC5mb2N1cygpOyB9Ow0KCQkJcC5ib3gub25tb3VzZWRvd24gPSBmdW5jdGlvbigpIHsgYWJvcnRCbHVyPXRydWU7IH07DQoJCQlwLmJveC5vbm1vdXNlbW92ZSA9IGZ1bmN0aW9uKGUpIHsNCgkJCQlpZiAoaG9sZFBhZCB8fCBob2xkU2xkKSB7DQoJCQkJCWhvbGRQYWQgJiYgc2V0UGFkKGUpOw0KCQkJCQlob2xkU2xkICYmIHNldFNsZChlKTsNCgkJCQkJaWYgKGRvY3VtZW50LnNlbGVjdGlvbikgew0KCQkJCQkJZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk7DQoJCQkJCX0gZWxzZSBpZiAod2luZG93LmdldFNlbGVjdGlvbikgew0KCQkJCQkJd2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOw0KCQkJCQl9DQoJCQkJCWRpc3BhdGNoSW1tZWRpYXRlQ2hhbmdlKCk7DQoJCQkJfQ0KCQkJfTsNCgkJCWlmKCdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdykgeyAvLyBpZiB0b3VjaCBkZXZpY2UNCgkJCQlwLmJveC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBmdW5jdGlvbihlKSB7DQoJCQkJCXZhciBldmVudD17DQoJCQkJCQknb2Zmc2V0WCc6IGUudG91Y2hlc1swXS5wYWdlWC10b3VjaE9mZnNldC5YLA0KCQkJCQkJJ29mZnNldFknOiBlLnRvdWNoZXNbMF0ucGFnZVktdG91Y2hPZmZzZXQuWQ0KCQkJCQl9Ow0KCQkJCQlpZiAoaG9sZFBhZCB8fCBob2xkU2xkKSB7DQoJCQkJCQlob2xkUGFkICYmIHNldFBhZChldmVudCk7DQoJCQkJCQlob2xkU2xkICYmIHNldFNsZChldmVudCk7DQoJCQkJCQlkaXNwYXRjaEltbWVkaWF0ZUNoYW5nZSgpOw0KCQkJCQl9DQoJCQkJCWUuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIHByZXZlbnQgbW92ZSAidmlldyIgb24gYnJvc3dlcg0KCQkJCQllLnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgRGVmYXVsdCAtIEFuZHJvaWQgRml4IChlbHNlIGFuZHJvaWQgZ2VuZXJhdGVkIG9ubHkgMS0yIHRvdWNobW92ZSBldmVudHMpDQoJCQkJfSwgZmFsc2UpOw0KCQkJfQ0KCQkJcC5wYWRNLm9ubW91c2V1cCA9DQoJCQlwLnBhZE0ub25tb3VzZW91dCA9IGZ1bmN0aW9uKCkgeyBpZihob2xkUGFkKSB7IGhvbGRQYWQ9ZmFsc2U7IGpzY29sb3IuZmlyZUV2ZW50KHZhbHVlRWxlbWVudCwnY2hhbmdlJyk7IH0gfTsNCgkJCXAucGFkTS5vbm1vdXNlZG93biA9IGZ1bmN0aW9uKGUpIHsNCgkJCQkvLyBpZiB0aGUgc2xpZGVyIGlzIGF0IHRoZSBib3R0b20sIG1vdmUgaXQgdXANCgkJCQlzd2l0Y2gobW9kZUlEKSB7DQoJCQkJCWNhc2UgMDogaWYgKFRISVMuaHN2WzJdID09PSAwKSB7IFRISVMuZnJvbUhTVihudWxsLCBudWxsLCAxLjApOyB9OyBicmVhazsNCgkJCQkJY2FzZSAxOiBpZiAoVEhJUy5oc3ZbMV0gPT09IDApIHsgVEhJUy5mcm9tSFNWKG51bGwsIDEuMCwgbnVsbCk7IH07IGJyZWFrOw0KCQkJCX0NCgkJCQlob2xkU2xkPWZhbHNlOw0KCQkJCWhvbGRQYWQ9dHJ1ZTsNCgkJCQlzZXRQYWQoZSk7DQoJCQkJZGlzcGF0Y2hJbW1lZGlhdGVDaGFuZ2UoKTsNCgkJCX07DQoJCQlpZignb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cpIHsNCgkJCQlwLnBhZE0uYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGZ1bmN0aW9uKGUpIHsNCgkJCQkJdG91Y2hPZmZzZXQ9ew0KCQkJCQkJJ1gnOiBlLnRhcmdldC5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCwNCgkJCQkJCSdZJzogZS50YXJnZXQub2Zmc2V0UGFyZW50Lm9mZnNldFRvcA0KCQkJCQl9Ow0KCQkJCQl0aGlzLm9ubW91c2Vkb3duKHsNCgkJCQkJCSdvZmZzZXRYJzplLnRvdWNoZXNbMF0ucGFnZVgtdG91Y2hPZmZzZXQuWCwNCgkJCQkJCSdvZmZzZXRZJzplLnRvdWNoZXNbMF0ucGFnZVktdG91Y2hPZmZzZXQuWQ0KCQkJCQl9KTsNCgkJCQl9KTsNCgkJCX0NCgkJCXAuc2xkTS5vbm1vdXNldXAgPQ0KCQkJcC5zbGRNLm9ubW91c2VvdXQgPSBmdW5jdGlvbigpIHsgaWYoaG9sZFNsZCkgeyBob2xkU2xkPWZhbHNlOyBqc2NvbG9yLmZpcmVFdmVudCh2YWx1ZUVsZW1lbnQsJ2NoYW5nZScpOyB9IH07DQoJCQlwLnNsZE0ub25tb3VzZWRvd24gPSBmdW5jdGlvbihlKSB7DQoJCQkJaG9sZFBhZD1mYWxzZTsNCgkJCQlob2xkU2xkPXRydWU7DQoJCQkJc2V0U2xkKGUpOw0KCQkJCWRpc3BhdGNoSW1tZWRpYXRlQ2hhbmdlKCk7DQoJCQl9Ow0KCQkJaWYoJ29udG91Y2hzdGFydCcgaW4gd2luZG93KSB7DQoJCQkJcC5zbGRNLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbihlKSB7DQoJCQkJCXRvdWNoT2Zmc2V0PXsNCgkJCQkJCSdYJzogZS50YXJnZXQub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQsDQoJCQkJCQknWSc6IGUudGFyZ2V0Lm9mZnNldFBhcmVudC5vZmZzZXRUb3ANCgkJCQkJfTsNCgkJCQkJdGhpcy5vbm1vdXNlZG93bih7DQoJCQkJCQknb2Zmc2V0WCc6ZS50b3VjaGVzWzBdLnBhZ2VYLXRvdWNoT2Zmc2V0LlgsDQoJCQkJCQknb2Zmc2V0WSc6ZS50b3VjaGVzWzBdLnBhZ2VZLXRvdWNoT2Zmc2V0LlkNCgkJCQkJfSk7DQoJCQkJfSk7DQoJCQl9DQoNCgkJCS8vIHBpY2tlcg0KCQkJdmFyIGRpbXMgPSBnZXRQaWNrZXJEaW1zKFRISVMpOw0KCQkJcC5ib3guc3R5bGUud2lkdGggPSBkaW1zWzBdICsgJ3B4JzsNCgkJCXAuYm94LnN0eWxlLmhlaWdodCA9IGRpbXNbMV0gKyAncHgnOw0KDQoJCQkvLyBwaWNrZXIgYm9yZGVyDQoJCQlwLmJveEIuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOw0KCQkJcC5ib3hCLnN0eWxlLmNsZWFyID0gJ2JvdGgnOw0KCQkJcC5ib3hCLnN0eWxlLmxlZnQgPSB4KydweCc7DQoJCQlwLmJveEIuc3R5bGUudG9wID0geSsncHgnOw0KCQkJcC5ib3hCLnN0eWxlLnpJbmRleCA9IFRISVMucGlja2VyWkluZGV4Ow0KCQkJcC5ib3hCLnN0eWxlLmJvcmRlciA9IFRISVMucGlja2VyQm9yZGVyKydweCBzb2xpZCc7DQoJCQlwLmJveEIuc3R5bGUuYm9yZGVyQ29sb3IgPSBUSElTLnBpY2tlckJvcmRlckNvbG9yOw0KCQkJcC5ib3hCLnN0eWxlLmJhY2tncm91bmQgPSBUSElTLnBpY2tlckZhY2VDb2xvcjsNCg0KCQkJLy8gcGFkIGltYWdlDQoJCQlwLnBhZC5zdHlsZS53aWR0aCA9IGpzY29sb3IuaW1hZ2VzLnBhZFswXSsncHgnOw0KCQkJcC5wYWQuc3R5bGUuaGVpZ2h0ID0ganNjb2xvci5pbWFnZXMucGFkWzFdKydweCc7DQoNCgkJCS8vIHBhZCBib3JkZXINCgkJCXAucGFkQi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7DQoJCQlwLnBhZEIuc3R5bGUubGVmdCA9IFRISVMucGlja2VyRmFjZSsncHgnOw0KCQkJcC5wYWRCLnN0eWxlLnRvcCA9IFRISVMucGlja2VyRmFjZSsncHgnOw0KCQkJcC5wYWRCLnN0eWxlLmJvcmRlciA9IFRISVMucGlja2VySW5zZXQrJ3B4IHNvbGlkJzsNCgkJCXAucGFkQi5zdHlsZS5ib3JkZXJDb2xvciA9IFRISVMucGlja2VySW5zZXRDb2xvcjsNCg0KCQkJLy8gcGFkIG1vdXNlIGFyZWENCgkJCXAucGFkTS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7DQoJCQlwLnBhZE0uc3R5bGUubGVmdCA9ICcwJzsNCgkJCXAucGFkTS5zdHlsZS50b3AgPSAnMCc7DQoJCQlwLnBhZE0uc3R5bGUud2lkdGggPSBUSElTLnBpY2tlckZhY2UgKyAyKlRISVMucGlja2VySW5zZXQgKyBqc2NvbG9yLmltYWdlcy5wYWRbMF0gKyBqc2NvbG9yLmltYWdlcy5hcnJvd1swXSArICdweCc7DQoJCQlwLnBhZE0uc3R5bGUuaGVpZ2h0ID0gcC5ib3guc3R5bGUuaGVpZ2h0Ow0KCQkJcC5wYWRNLnN0eWxlLmN1cnNvciA9ICdjcm9zc2hhaXInOw0KDQoJCQkvLyBzbGlkZXIgaW1hZ2UNCgkJCXAuc2xkLnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7DQoJCQlwLnNsZC5zdHlsZS53aWR0aCA9IGpzY29sb3IuaW1hZ2VzLnNsZFswXSsncHgnOw0KCQkJcC5zbGQuc3R5bGUuaGVpZ2h0ID0ganNjb2xvci5pbWFnZXMuc2xkWzFdKydweCc7DQoNCgkJCS8vIHNsaWRlciBib3JkZXINCgkJCXAuc2xkQi5zdHlsZS5kaXNwbGF5ID0gVEhJUy5zbGlkZXIgPyAnYmxvY2snIDogJ25vbmUnOw0KCQkJcC5zbGRCLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsNCgkJCXAuc2xkQi5zdHlsZS5yaWdodCA9IFRISVMucGlja2VyRmFjZSsncHgnOw0KCQkJcC5zbGRCLnN0eWxlLnRvcCA9IFRISVMucGlja2VyRmFjZSsncHgnOw0KCQkJcC5zbGRCLnN0eWxlLmJvcmRlciA9IFRISVMucGlja2VySW5zZXQrJ3B4IHNvbGlkJzsNCgkJCXAuc2xkQi5zdHlsZS5ib3JkZXJDb2xvciA9IFRISVMucGlja2VySW5zZXRDb2xvcjsNCg0KCQkJLy8gc2xpZGVyIG1vdXNlIGFyZWENCgkJCXAuc2xkTS5zdHlsZS5kaXNwbGF5ID0gVEhJUy5zbGlkZXIgPyAnYmxvY2snIDogJ25vbmUnOw0KCQkJcC5zbGRNLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsNCgkJCXAuc2xkTS5zdHlsZS5yaWdodCA9ICcwJzsNCgkJCXAuc2xkTS5zdHlsZS50b3AgPSAnMCc7DQoJCQlwLnNsZE0uc3R5bGUud2lkdGggPSBqc2NvbG9yLmltYWdlcy5zbGRbMF0gKyBqc2NvbG9yLmltYWdlcy5hcnJvd1swXSArIFRISVMucGlja2VyRmFjZSArIDIqVEhJUy5waWNrZXJJbnNldCArICdweCc7DQoJCQlwLnNsZE0uc3R5bGUuaGVpZ2h0ID0gcC5ib3guc3R5bGUuaGVpZ2h0Ow0KCQkJdHJ5IHsNCgkJCQlwLnNsZE0uc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInOw0KCQkJfSBjYXRjaChlT2xkSUUpIHsNCgkJCQlwLnNsZE0uc3R5bGUuY3Vyc29yID0gJ2hhbmQnOw0KCQkJfQ0KDQoJCQkvLyAiY2xvc2UiIGJ1dHRvbg0KCQkJZnVuY3Rpb24gc2V0QnRuQm9yZGVyKCkgew0KCQkJCXZhciBpbnNldENvbG9ycyA9IFRISVMucGlja2VySW5zZXRDb2xvci5zcGxpdCgvXHMrLyk7DQoJCQkJdmFyIHBpY2tlck91dHNldENvbG9yID0gaW5zZXRDb2xvcnMubGVuZ3RoIDwgMiA/IGluc2V0Q29sb3JzWzBdIDogaW5zZXRDb2xvcnNbMV0gKyAnICcgKyBpbnNldENvbG9yc1swXSArICcgJyArIGluc2V0Q29sb3JzWzBdICsgJyAnICsgaW5zZXRDb2xvcnNbMV07DQoJCQkJcC5idG4uc3R5bGUuYm9yZGVyQ29sb3IgPSBwaWNrZXJPdXRzZXRDb2xvcjsNCgkJCX0NCgkJCXAuYnRuLnN0eWxlLmRpc3BsYXkgPSBUSElTLnBpY2tlckNsb3NhYmxlID8gJ2Jsb2NrJyA6ICdub25lJzsNCgkJCXAuYnRuLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsNCgkJCXAuYnRuLnN0eWxlLmxlZnQgPSBUSElTLnBpY2tlckZhY2UgKyAncHgnOw0KCQkJcC5idG4uc3R5bGUuYm90dG9tID0gVEhJUy5waWNrZXJGYWNlICsgJ3B4JzsNCgkJCXAuYnRuLnN0eWxlLnBhZGRpbmcgPSAnMCAxNXB4JzsNCgkJCXAuYnRuLnN0eWxlLmhlaWdodCA9ICcxOHB4JzsNCgkJCXAuYnRuLnN0eWxlLmJvcmRlciA9IFRISVMucGlja2VySW5zZXQgKyAncHggc29saWQnOw0KCQkJc2V0QnRuQm9yZGVyKCk7DQoJCQlwLmJ0bi5zdHlsZS5jb2xvciA9IFRISVMucGlja2VyQnV0dG9uQ29sb3I7DQoJCQlwLmJ0bi5zdHlsZS5mb250ID0gJzEycHggc2Fucy1zZXJpZic7DQoJCQlwLmJ0bi5zdHlsZS50ZXh0QWxpZ24gPSAnY2VudGVyJzsNCgkJCXRyeSB7DQoJCQkJcC5idG4uc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInOw0KCQkJfSBjYXRjaChlT2xkSUUpIHsNCgkJCQlwLmJ0bi5zdHlsZS5jdXJzb3IgPSAnaGFuZCc7DQoJCQl9DQoJCQlwLmJ0bi5vbm1vdXNlZG93biA9IGZ1bmN0aW9uICgpIHsNCgkJCQlUSElTLmhpZGVQaWNrZXIoKTsNCgkJCX07DQoJCQlwLmJ0blMuc3R5bGUubGluZUhlaWdodCA9IHAuYnRuLnN0eWxlLmhlaWdodDsNCg0KCQkJLy8gbG9hZCBpbWFnZXMgaW4gb3B0aW1hbCBvcmRlcg0KCQkJc3dpdGNoKG1vZGVJRCkgew0KCQkJCWNhc2UgMDogdmFyIHBhZEltZyA9ICdocy5wbmcnOyBicmVhazsNCgkJCQljYXNlIDE6IHZhciBwYWRJbWcgPSAnaHYucG5nJzsgYnJlYWs7DQoJCQl9DQoJCQlwLnBhZE0uc3R5bGUuYmFja2dyb3VuZEltYWdlID0gInVybCgnIitqc2NvbG9yLmdldERpcigpKyJjcm9zcy5naWYnKSI7DQoJCQlwLnBhZE0uc3R5bGUuYmFja2dyb3VuZFJlcGVhdCA9ICJuby1yZXBlYXQiOw0KCQkJcC5zbGRNLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICJ1cmwoJyIranNjb2xvci5nZXREaXIoKSsiYXJyb3cuZ2lmJykiOw0KCQkJcC5zbGRNLnN0eWxlLmJhY2tncm91bmRSZXBlYXQgPSAibm8tcmVwZWF0IjsNCgkJCXAucGFkLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICJ1cmwoJyIranNjb2xvci5nZXREaXIoKStwYWRJbWcrIicpIjsNCgkJCXAucGFkLnN0eWxlLmJhY2tncm91bmRSZXBlYXQgPSAibm8tcmVwZWF0IjsNCgkJCXAucGFkLnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbiA9ICIwIDAiOw0KDQoJCQkvLyBwbGFjZSBwb2ludGVycw0KCQkJcmVkcmF3UGFkKCk7DQoJCQlyZWRyYXdTbGQoKTsNCg0KCQkJanNjb2xvci5waWNrZXIub3duZXIgPSBUSElTOw0KCQkJZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXS5hcHBlbmRDaGlsZChwLmJveEIpOw0KCQl9DQoNCg0KCQlmdW5jdGlvbiBnZXRQaWNrZXJEaW1zKG8pIHsNCgkJCXZhciBkaW1zID0gWw0KCQkJCTIqby5waWNrZXJJbnNldCArIDIqby5waWNrZXJGYWNlICsganNjb2xvci5pbWFnZXMucGFkWzBdICsNCgkJCQkJKG8uc2xpZGVyID8gMipvLnBpY2tlckluc2V0ICsgMipqc2NvbG9yLmltYWdlcy5hcnJvd1swXSArIGpzY29sb3IuaW1hZ2VzLnNsZFswXSA6IDApLA0KCQkJCW8ucGlja2VyQ2xvc2FibGUgPw0KCQkJCQk0Km8ucGlja2VySW5zZXQgKyAzKm8ucGlja2VyRmFjZSArIGpzY29sb3IuaW1hZ2VzLnBhZFsxXSArIG8ucGlja2VyQnV0dG9uSGVpZ2h0IDoNCgkJCQkJMipvLnBpY2tlckluc2V0ICsgMipvLnBpY2tlckZhY2UgKyBqc2NvbG9yLmltYWdlcy5wYWRbMV0NCgkJCV07DQoJCQlyZXR1cm4gZGltczsNCgkJfQ0KDQoNCgkJZnVuY3Rpb24gcmVkcmF3UGFkKCkgew0KCQkJLy8gcmVkcmF3IHRoZSBwYWQgcG9pbnRlcg0KCQkJc3dpdGNoKG1vZGVJRCkgew0KCQkJCWNhc2UgMDogdmFyIHlDb21wb25lbnQgPSAxOyBicmVhazsNCgkJCQljYXNlIDE6IHZhciB5Q29tcG9uZW50ID0gMjsgYnJlYWs7DQoJCQl9DQoJCQl2YXIgeCA9IE1hdGgucm91bmQoKFRISVMuaHN2WzBdLzYpICogKGpzY29sb3IuaW1hZ2VzLnBhZFswXS0xKSk7DQoJCQl2YXIgeSA9IE1hdGgucm91bmQoKDEtVEhJUy5oc3ZbeUNvbXBvbmVudF0pICogKGpzY29sb3IuaW1hZ2VzLnBhZFsxXS0xKSk7DQoJCQlqc2NvbG9yLnBpY2tlci5wYWRNLnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbiA9DQoJCQkJKFRISVMucGlja2VyRmFjZStUSElTLnBpY2tlckluc2V0K3ggLSBNYXRoLmZsb29yKGpzY29sb3IuaW1hZ2VzLmNyb3NzWzBdLzIpKSArICdweCAnICsNCgkJCQkoVEhJUy5waWNrZXJGYWNlK1RISVMucGlja2VySW5zZXQreSAtIE1hdGguZmxvb3IoanNjb2xvci5pbWFnZXMuY3Jvc3NbMV0vMikpICsgJ3B4JzsNCg0KCQkJLy8gcmVkcmF3IHRoZSBzbGlkZXIgaW1hZ2UNCgkJCXZhciBzZWcgPSBqc2NvbG9yLnBpY2tlci5zbGQuY2hpbGROb2RlczsNCg0KCQkJc3dpdGNoKG1vZGVJRCkgew0KCQkJCWNhc2UgMDoNCgkJCQkJdmFyIHJnYiA9IEhTVl9SR0IoVEhJUy5oc3ZbMF0sIFRISVMuaHN2WzFdLCAxKTsNCgkJCQkJZm9yKHZhciBpPTA7IGk8c2VnLmxlbmd0aDsgaSs9MSkgew0KCQkJCQkJc2VnW2ldLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZ2IoJysNCgkJCQkJCQkocmdiWzBdKigxLWkvc2VnLmxlbmd0aCkqMTAwKSsnJSwnKw0KCQkJCQkJCShyZ2JbMV0qKDEtaS9zZWcubGVuZ3RoKSoxMDApKyclLCcrDQoJCQkJCQkJKHJnYlsyXSooMS1pL3NlZy5sZW5ndGgpKjEwMCkrJyUpJzsNCgkJCQkJfQ0KCQkJCQlicmVhazsNCgkJCQljYXNlIDE6DQoJCQkJCXZhciByZ2IsIHMsIGMgPSBbIFRISVMuaHN2WzJdLCAwLCAwIF07DQoJCQkJCXZhciBpID0gTWF0aC5mbG9vcihUSElTLmhzdlswXSk7DQoJCQkJCXZhciBmID0gaSUyID8gVEhJUy5oc3ZbMF0taSA6IDEtKFRISVMuaHN2WzBdLWkpOw0KCQkJCQlzd2l0Y2goaSkgew0KCQkJCQkJY2FzZSA2Og0KCQkJCQkJY2FzZSAwOiByZ2I9WzAsMSwyXTsgYnJlYWs7DQoJCQkJCQljYXNlIDE6IHJnYj1bMSwwLDJdOyBicmVhazsNCgkJCQkJCWNhc2UgMjogcmdiPVsyLDAsMV07IGJyZWFrOw0KCQkJCQkJY2FzZSAzOiByZ2I9WzIsMSwwXTsgYnJlYWs7DQoJCQkJCQljYXNlIDQ6IHJnYj1bMSwyLDBdOyBicmVhazsNCgkJCQkJCWNhc2UgNTogcmdiPVswLDIsMV07IGJyZWFrOw0KCQkJCQl9DQoJCQkJCWZvcih2YXIgaT0wOyBpPHNlZy5sZW5ndGg7IGkrPTEpIHsNCgkJCQkJCXMgPSAxIC0gMS8oc2VnLmxlbmd0aC0xKSppOw0KCQkJCQkJY1sxXSA9IGNbMF0gKiAoMSAtIHMqZik7DQoJCQkJCQljWzJdID0gY1swXSAqICgxIC0gcyk7DQoJCQkJCQlzZWdbaV0uc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3JnYignKw0KCQkJCQkJCShjW3JnYlswXV0qMTAwKSsnJSwnKw0KCQkJCQkJCShjW3JnYlsxXV0qMTAwKSsnJSwnKw0KCQkJCQkJCShjW3JnYlsyXV0qMTAwKSsnJSknOw0KCQkJCQl9DQoJCQkJCWJyZWFrOw0KCQkJfQ0KCQl9DQoNCg0KCQlmdW5jdGlvbiByZWRyYXdTbGQoKSB7DQoJCQkvLyByZWRyYXcgdGhlIHNsaWRlciBwb2ludGVyDQoJCQlzd2l0Y2gobW9kZUlEKSB7DQoJCQkJY2FzZSAwOiB2YXIgeUNvbXBvbmVudCA9IDI7IGJyZWFrOw0KCQkJCWNhc2UgMTogdmFyIHlDb21wb25lbnQgPSAxOyBicmVhazsNCgkJCX0NCgkJCXZhciB5ID0gTWF0aC5yb3VuZCgoMS1USElTLmhzdlt5Q29tcG9uZW50XSkgKiAoanNjb2xvci5pbWFnZXMuc2xkWzFdLTEpKTsNCgkJCWpzY29sb3IucGlja2VyLnNsZE0uc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uID0NCgkJCQknMCAnICsgKFRISVMucGlja2VyRmFjZStUSElTLnBpY2tlckluc2V0K3kgLSBNYXRoLmZsb29yKGpzY29sb3IuaW1hZ2VzLmFycm93WzFdLzIpKSArICdweCc7DQoJCX0NCg0KDQoJCWZ1bmN0aW9uIGlzUGlja2VyT3duZXIoKSB7DQoJCQlyZXR1cm4ganNjb2xvci5waWNrZXIgJiYganNjb2xvci5waWNrZXIub3duZXIgPT09IFRISVM7DQoJCX0NCg0KDQoJCWZ1bmN0aW9uIGJsdXJUYXJnZXQoKSB7DQoJCQlpZih2YWx1ZUVsZW1lbnQgPT09IHRhcmdldCkgew0KCQkJCVRISVMuaW1wb3J0Q29sb3IoKTsNCgkJCX0NCgkJCWlmKFRISVMucGlja2VyT25mb2N1cykgew0KCQkJCVRISVMuaGlkZVBpY2tlcigpOw0KCQkJfQ0KCQl9DQoNCg0KCQlmdW5jdGlvbiBibHVyVmFsdWUoKSB7DQoJCQlpZih2YWx1ZUVsZW1lbnQgIT09IHRhcmdldCkgew0KCQkJCVRISVMuaW1wb3J0Q29sb3IoKTsNCgkJCX0NCgkJfQ0KDQoNCgkJZnVuY3Rpb24gc2V0UGFkKGUpIHsNCgkJCXZhciBtcG9zID0ganNjb2xvci5nZXRSZWxNb3VzZVBvcyhlKTsNCgkJCXZhciB4ID0gbXBvcy54IC0gVEhJUy5waWNrZXJGYWNlIC0gVEhJUy5waWNrZXJJbnNldDsNCgkJCXZhciB5ID0gbXBvcy55IC0gVEhJUy5waWNrZXJGYWNlIC0gVEhJUy5waWNrZXJJbnNldDsNCgkJCXN3aXRjaChtb2RlSUQpIHsNCgkJCQljYXNlIDA6IFRISVMuZnJvbUhTVih4Kig2Lyhqc2NvbG9yLmltYWdlcy5wYWRbMF0tMSkpLCAxIC0geS8oanNjb2xvci5pbWFnZXMucGFkWzFdLTEpLCBudWxsLCBsZWF2ZVNsZCk7IGJyZWFrOw0KCQkJCWNhc2UgMTogVEhJUy5mcm9tSFNWKHgqKDYvKGpzY29sb3IuaW1hZ2VzLnBhZFswXS0xKSksIG51bGwsIDEgLSB5Lyhqc2NvbG9yLmltYWdlcy5wYWRbMV0tMSksIGxlYXZlU2xkKTsgYnJlYWs7DQoJCQl9DQoJCX0NCg0KDQoJCWZ1bmN0aW9uIHNldFNsZChlKSB7DQoJCQl2YXIgbXBvcyA9IGpzY29sb3IuZ2V0UmVsTW91c2VQb3MoZSk7DQoJCQl2YXIgeSA9IG1wb3MueSAtIFRISVMucGlja2VyRmFjZSAtIFRISVMucGlja2VySW5zZXQ7DQoJCQlzd2l0Y2gobW9kZUlEKSB7DQoJCQkJY2FzZSAwOiBUSElTLmZyb21IU1YobnVsbCwgbnVsbCwgMSAtIHkvKGpzY29sb3IuaW1hZ2VzLnNsZFsxXS0xKSwgbGVhdmVQYWQpOyBicmVhazsNCgkJCQljYXNlIDE6IFRISVMuZnJvbUhTVihudWxsLCAxIC0geS8oanNjb2xvci5pbWFnZXMuc2xkWzFdLTEpLCBudWxsLCBsZWF2ZVBhZCk7IGJyZWFrOw0KCQkJfQ0KCQl9DQoNCg0KCQlmdW5jdGlvbiBkaXNwYXRjaEltbWVkaWF0ZUNoYW5nZSgpIHsNCgkJCWlmIChUSElTLm9uSW1tZWRpYXRlQ2hhbmdlKSB7DQoJCQkJdmFyIGNhbGxiYWNrOw0KCQkJCWlmICh0eXBlb2YgVEhJUy5vbkltbWVkaWF0ZUNoYW5nZSA9PT0gJ3N0cmluZycpIHsNCgkJCQkJY2FsbGJhY2sgPSBuZXcgRnVuY3Rpb24gKFRISVMub25JbW1lZGlhdGVDaGFuZ2UpOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWNhbGxiYWNrID0gVEhJUy5vbkltbWVkaWF0ZUNoYW5nZTsNCgkJCQl9DQoJCQkJY2FsbGJhY2suY2FsbChUSElTKTsNCgkJCX0NCgkJfQ0KDQoNCgkJdmFyIFRISVMgPSB0aGlzOw0KCQl2YXIgbW9kZUlEID0gdGhpcy5waWNrZXJNb2RlLnRvTG93ZXJDYXNlKCk9PT0naHZzJyA/IDEgOiAwOw0KCQl2YXIgYWJvcnRCbHVyID0gZmFsc2U7DQoJCXZhcg0KCQkJdmFsdWVFbGVtZW50ID0ganNjb2xvci5mZXRjaEVsZW1lbnQodGhpcy52YWx1ZUVsZW1lbnQpLA0KCQkJc3R5bGVFbGVtZW50ID0ganNjb2xvci5mZXRjaEVsZW1lbnQodGhpcy5zdHlsZUVsZW1lbnQpOw0KCQl2YXINCgkJCWhvbGRQYWQgPSBmYWxzZSwNCgkJCWhvbGRTbGQgPSBmYWxzZSwNCgkJCXRvdWNoT2Zmc2V0ID0ge307DQoJCXZhcg0KCQkJbGVhdmVWYWx1ZSA9IDE8PDAsDQoJCQlsZWF2ZVN0eWxlID0gMTw8MSwNCgkJCWxlYXZlUGFkID0gMTw8MiwNCgkJCWxlYXZlU2xkID0gMTw8MzsNCg0KCQkvLyB0YXJnZXQNCgkJanNjb2xvci5hZGRFdmVudCh0YXJnZXQsICdmb2N1cycsIGZ1bmN0aW9uKCkgew0KCQkJaWYoVEhJUy5waWNrZXJPbmZvY3VzKSB7IFRISVMuc2hvd1BpY2tlcigpOyB9DQoJCX0pOw0KCQlqc2NvbG9yLmFkZEV2ZW50KHRhcmdldCwgJ2JsdXInLCBmdW5jdGlvbigpIHsNCgkJCWlmKCFhYm9ydEJsdXIpIHsNCgkJCQl3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpeyBhYm9ydEJsdXIgfHwgYmx1clRhcmdldCgpOyBhYm9ydEJsdXI9ZmFsc2U7IH0sIDApOw0KCQkJfSBlbHNlIHsNCgkJCQlhYm9ydEJsdXIgPSBmYWxzZTsNCgkJCX0NCgkJfSk7DQoNCgkJLy8gdmFsdWVFbGVtZW50DQoJCWlmKHZhbHVlRWxlbWVudCkgew0KCQkJdmFyIHVwZGF0ZUZpZWxkID0gZnVuY3Rpb24oKSB7DQoJCQkJVEhJUy5mcm9tU3RyaW5nKHZhbHVlRWxlbWVudC52YWx1ZSwgbGVhdmVWYWx1ZSk7DQoJCQkJZGlzcGF0Y2hJbW1lZGlhdGVDaGFuZ2UoKTsNCgkJCX07DQoJCQlqc2NvbG9yLmFkZEV2ZW50KHZhbHVlRWxlbWVudCwgJ2tleXVwJywgdXBkYXRlRmllbGQpOw0KCQkJanNjb2xvci5hZGRFdmVudCh2YWx1ZUVsZW1lbnQsICdpbnB1dCcsIHVwZGF0ZUZpZWxkKTsNCgkJCWpzY29sb3IuYWRkRXZlbnQodmFsdWVFbGVtZW50LCAnYmx1cicsIGJsdXJWYWx1ZSk7DQoJCQl2YWx1ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdhdXRvY29tcGxldGUnLCAnb2ZmJyk7DQoJCX0NCg0KCQkvLyBzdHlsZUVsZW1lbnQNCgkJaWYoc3R5bGVFbGVtZW50KSB7DQoJCQlzdHlsZUVsZW1lbnQuanNjU3R5bGUgPSB7DQoJCQkJYmFja2dyb3VuZEltYWdlIDogc3R5bGVFbGVtZW50LnN0eWxlLmJhY2tncm91bmRJbWFnZSwNCgkJCQliYWNrZ3JvdW5kQ29sb3IgOiBzdHlsZUVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yLA0KCQkJCWNvbG9yIDogc3R5bGVFbGVtZW50LnN0eWxlLmNvbG9yDQoJCQl9Ow0KCQl9DQoNCgkJLy8gcmVxdWlyZSBpbWFnZXMNCgkJc3dpdGNoKG1vZGVJRCkgew0KCQkJY2FzZSAwOiBqc2NvbG9yLnJlcXVpcmVJbWFnZSgnaHMucG5nJyk7IGJyZWFrOw0KCQkJY2FzZSAxOiBqc2NvbG9yLnJlcXVpcmVJbWFnZSgnaHYucG5nJyk7IGJyZWFrOw0KCQl9DQoJCWpzY29sb3IucmVxdWlyZUltYWdlKCdjcm9zcy5naWYnKTsNCgkJanNjb2xvci5yZXF1aXJlSW1hZ2UoJ2Fycm93LmdpZicpOw0KDQoJCXRoaXMuaW1wb3J0Q29sb3IoKTsNCgl9DQoNCn07DQoNCi8vLS0tIE9UUlNDSURlcGxveW1lbnRTdGF0ZUNvbG9ycw0KLy9qc2NvbG9yLmluc3RhbGwoKTsNCi8vLS0t</File>
        <File Location="var/httpd/htdocs/js/ITSM.GeneralCatalog.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNCBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgSVRTTSA9IElUU00gfHwge307CgovKioKICogQG5hbWVzcGFjZSBHZW5lcmFsQ2F0YWxvZwogKiBAYXV0aG9yIFJvdGhlciBPU1MgR21iSAogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb24gZm9yIEdlbmVyYWwgQ2F0YWxvZy4KICovCiBJVFNNLkdlbmVyYWxDYXRhbG9nID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIEdlbmVyYWxDYXRhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGFjdGlvbnMgZm9yIEdlbmVyYWwgQ2F0YWxvZy4KICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uKCkgewoKICAgICAgICAvLyBpbml0IGNoZWNrYm94IHRvIGluY2x1ZGUgaW52YWxpZCBlbGVtZW50cwogICAgICAgICQoJ2lucHV0I0luY2x1ZGVJbnZhbGlkJykub2ZmKCdjaGFuZ2UnKS5vbignY2hhbmdlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgVVJMID0gQ29yZS5Db25maWcuR2V0KCJCYXNlbGluayIpICsgJ0FjdGlvbj0nICsgQ29yZS5Db25maWcuR2V0KCJBY3Rpb24iKSArICc7U3ViYWN0aW9uPUl0ZW1MaXN0O0NsYXNzPScgKyAkKCdbbmFtZT0iQ2xhc3MiXScpLnZhbCgpICsgJztJbmNsdWRlSW52YWxpZD0nICsgKCAkKHRoaXMpLmlzKCc6Y2hlY2tlZCcpID8gMSA6IDAgKTsKICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBVUkw7CiAgICAgICAgfSk7CgogICAgICAgIGlmICh0eXBlb2YgQ29yZS5Db25maWcuR2V0KCdXYXJuaW5nSW5jaWRlbnRTdGF0ZScpICE9PSAndW5kZWZpbmVkJwogICAgICAgICAgICAmJiBwYXJzZUludChDb3JlLkNvbmZpZy5HZXQoJ1dhcm5pbmdJbmNpZGVudFN0YXRlJyksIDEwKSA9PT0gMQogICAgICAgICkgewogICAgICAgICAgICAkKCcjU3VibWl0JykuY2xpY2soZnVuY3Rpb24oRXZlbnQpewogICAgICAgICAgICAgICAgdmFyIEZ1bmN0aW9uYWxpdHkgPSAkKCcjRnVuY3Rpb25hbGl0eScpLnZhbCgpLAogICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgICAgICAgPSAkKCcjVmFsaWRJRCcpLnZhbCgpOwoKICAgICAgICAgICAgICAgIEV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgogICAgICAgICAgICAgICAgaWYgKEZ1bmN0aW9uYWxpdHkgPT09ICd3YXJuaW5nJyAmJiBWYWxpZElEICE9ICcxJykgewogICAgICAgICAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dEaWFsb2coewogICAgICAgICAgICAgICAgICAgICAgICBNb2RhbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGU6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdXYXJuaW5nJyksCiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUw6ICc8cD4nICsgQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ1dhcm5pbmcgaW5jaWRlbnQgc3RhdGUgY2FuIG5vdCBiZSBzZXQgdG8gaW52YWxpZC4nKSArICc8L3A+JywKICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb25Ub3A6ICcxNSUnLAogICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbkxlZnQ6ICdDZW50ZXInLAogICAgICAgICAgICAgICAgICAgICAgICBDbG9zZU9uRXNjYXBlOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2VPbkNsaWNrT3V0c2lkZTogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvbnM6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbDogQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ0NhbmNlbCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLkNsb3NlRGlhbG9nKCQoJy5EaWFsb2c6dmlzaWJsZScpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCdmb3JtJykudHJpZ2dlcignc3VibWl0Jyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKfShJVFNNLkdlbmVyYWxDYXRhbG9nIHx8IHt9KSk7Cg==</File>
        <File Location="var/httpd/htdocs/js/ITSM.GeneralCatalog.JSColorPicker.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNCBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgSVRTTSA9IElUU00gfHwge307CklUU00uR2VuZXJhbENhdGFsb2cgPSBJVFNNLkdlbmVyYWxDYXRhbG9nIHx8IHt9OwoKCi8qKgogKiBAbmFtZXNwYWNlIEdlbmVyYWxDYXRhbG9nCiAqIEBhdXRob3IgUm90aGVyIE9TUyBHbWJICiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbiBmb3IgdGhlIEdlbmVyYWwgQ2F0YWxvZyBDb2xvciBQaWNrZXIgbW9kdWxlLgogKi8KIElUU00uR2VuZXJhbENhdGFsb2cuSlNDb2xvclBpY2tlciA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBtZW1iZXJvZiBHZW5lcmFsQ2F0YWxvZy5Db2xvclBpY2tlcgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhY3Rpb25zIGZvciBHZW5lcmFsIENhdGFsb2cuCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbigpIHsKCiAgICAgICAgLypnbG9iYWwganNjb2xvcjogdHJ1ZSAqLwogICAgICAgIGpzY29sb3IuZGlyID0gQ29yZS5Db25maWcuR2V0KCdHZW5lcmFsQ2F0YWxvZzo6RnJvbnRlbmQ6OkpTQ29sb3JQaWNrZXJQYXRoJyk7CiAgICAgICAganNjb2xvci5iaW5kQ2xhc3MgPSAnSlNDb2xvclBpY2tlcic7CiAgICAgICAganNjb2xvci5pbnN0YWxsKCk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0NPTkZJR19MT0FERUQnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oSVRTTS5HZW5lcmFsQ2F0YWxvZy5KU0NvbG9yUGlja2VyIHx8IHt9KSk7Cg==</File>
        <File Location="var/packagesetup/GeneralCatalog.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIHZhcjo6cGFja2FnZXNldHVwOjpHZW5lcmFsQ2F0YWxvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGRWYWx1ZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycsCik7Cgo9aGVhZDEgTkFNRQoKdmFyOjpwYWNrYWdlc2V0dXA6OkdlbmVyYWxDYXRhbG9nIC0gY29kZSB0byBleGVjdXRlIGR1cmluZyBwYWNrYWdlIGluc3RhbGxhdGlvbgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKCiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDb2RlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgndmFyOjpwYWNrYWdlc2V0dXA6OkdlbmVyYWxDYXRhbG9nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IGJsZXNzIHt9LCAkVHlwZTsKCiAgICAjIEZvcmNlIGEgcmVsb2FkIG9mIFpaWkF1dG8ucG0gYW5kIFpaWkFBdXRvLnBtIHRvIGdldCB0aGUgZnJlc2ggY29uZmlndXJhdGlvbiB2YWx1ZXMuCiAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAlSU5DICkgewogICAgICAgIGlmICggJE1vZHVsZSA9fiBtL1paWkFBP3V0b1wucG0kLyApIHsKICAgICAgICAgICAgZGVsZXRlICRJTkN7JE1vZHVsZX07CiAgICAgICAgfQogICAgfQoKICAgICMgQ3JlYXRlIGNvbW1vbiBvYmplY3RzIHdpdGggZnJlc2ggZGVmYXVsdCBjb25maWcuCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQ7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgQ29kZUluc3RhbGwoKQoKcnVucyB0aGUgY29kZSBpbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVJbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZUluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENvZGVSZWluc3RhbGwoKQoKcnVucyB0aGUgY29kZSByZWluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVJlaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVSZWluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENvZGVVbmluc3RhbGwoKQoKcnVucyB0aGUgY29kZSB1bmluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVuaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVVbmluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHJlbW92ZSBEeW5hbWljIEZpZWxkcyBhbmQgaXRzIHZhbHVlcwogICAgJFNlbGYtPl9EeW5hbWljRmllbGRzRGVsZXRlKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfRHluYW1pY0ZpZWxkc0RlbGV0ZSgpCgpkZWxldGUgYWxsIGV4aXN0aW5nIGR5bmFtaWMgZmllbGRzIHdpdGggZmllbGQgdHlwZSBHZW5lcmFsQ2F0YWxvZwoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0R5bmFtaWNGaWVsZHNEZWxldGUoKTsKCj1jdXQKCnN1YiBfRHluYW1pY0ZpZWxkc0RlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKICAgIG15ICREeW5hbWljRmllbGRWYWx1ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGRWYWx1ZScpOwoKICAgICMgZ2V0IHRoZSBsaXN0IG9mIGFsbCBkeW5hbWljIGZpZWxkcyAodmFsaWQgYW5kIGludmFsaWQgb25lcykKICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICAjIGRlbGV0ZSB0aGUgZHluYW1pYyBmaWVsZHMKICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkICggQHskRHluYW1pY0ZpZWxkTGlzdH0gKSB7CgogICAgICAgICMgY2hlY2sgaWYgZmllbGQgc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCB1bmxlc3MgJER5bmFtaWNGaWVsZC0+e0ZpZWxkVHlwZX0gZXEgJ0dlbmVyYWxDYXRhbG9nJzsKCiAgICAgICAgIyBkZWxldGUgYWxsIGZpZWxkIHZhbHVlcwogICAgICAgIG15ICRWYWx1ZXNEZWxldGVTdWNjZXNzID0gJER5bmFtaWNGaWVsZFZhbHVlT2JqZWN0LT5BbGxWYWx1ZXNEZWxldGUoCiAgICAgICAgICAgIEZpZWxkSUQgPT4gJER5bmFtaWNGaWVsZC0+e0lEfSwKICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgdmFsdWVzIGNvdWxkIGJlIGRlbGV0ZWQKICAgICAgICBpZiAoJFZhbHVlc0RlbGV0ZVN1Y2Nlc3MpIHsKCiAgICAgICAgICAgICMgZGVsZXRlIGZpZWxkCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkRGVsZXRlKAogICAgICAgICAgICAgICAgSUQgICAgID0+ICREeW5hbWljRmllbGQtPntJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgZGVsZXRlIGR5bmFtaWMgZmllbGQgJyREeW5hbWljRmllbGQtPntOYW1lfSchIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgdmFsdWVzIGNvdWxkIG5vdCBiZSBkZWxldGVkCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgZGVsZXRlIHZhbHVlcyBmb3IgZHluYW1pYyBmaWVsZCAnJER5bmFtaWNGaWVsZC0+e05hbWV9JyEiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="doc/en/GeneralCatalog.pdf" Permission="644" Encode="Base64">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</File>
    </Filelist>
    <DatabaseInstall Type="post">
        <TableCreate Type="post" Name="general_catalog">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="general_catalog_class" Required="true" Size="100" Type="VARCHAR"></Column>
            <Column Name="name" Required="true" Size="100" Type="VARCHAR"></Column>
            <Column Name="valid_id" Required="true" Type="SMALLINT"></Column>
            <Column Name="comments" Required="false" Size="200" Type="VARCHAR"></Column>
            <Column Name="create_time" Required="true" Type="DATE"></Column>
            <Column Name="create_by" Required="true" Type="INTEGER"></Column>
            <Column Name="change_time" Required="true" Type="DATE"></Column>
            <Column Name="change_by" Required="true" Type="INTEGER"></Column>
            <Unique>
                                <UniqueColumn Name="general_catalog_class"></UniqueColumn>
                <UniqueColumn Name="name"></UniqueColumn>
</Unique>
            <ForeignKey ForeignTable="users">
                <Reference Foreign="id" Local="create_by">
                </Reference>
                <Reference Foreign="id" Local="change_by">
                </Reference>
            </ForeignKey>
        </TableCreate>
        <TableCreate Type="post" Name="general_catalog_preferences">
            <Column Name="general_catalog_id" Required="true" Type="INTEGER"></Column>
            <Column Name="pref_key" Required="true" Size="255" Type="VARCHAR"></Column>
            <Column Name="pref_value" Required="false" Size="255" Type="VARCHAR"></Column>
            <Index Name="general_catalog_preferences_general_catalog_id">
                <IndexColumn Name="general_catalog_id">
                </IndexColumn>
            </Index>
            <ForeignKey ForeignTable="general_catalog">
                <Reference Foreign="id" Local="general_catalog_id">
                </Reference>
            </ForeignKey>
        </TableCreate>
    </DatabaseInstall>
    <DatabaseUpgrade Type="pre">
        <TableCreate Type="pre" Name="general_catalog_preferences" Version="1.3.72">
            <Column Name="general_catalog_id" Required="true" Type="INTEGER"></Column>
            <Column Name="pref_key" Required="true" Size="255" Type="VARCHAR"></Column>
            <Column Name="pref_value" Required="false" Size="255" Type="VARCHAR"></Column>
            <Index Name="general_catalog_preferences_general_catalog_id">
                <IndexColumn Name="general_catalog_id">
                </IndexColumn>
            </Index>
            <ForeignKey ForeignTable="general_catalog">
                <Reference Foreign="id" Local="general_catalog_id">
                </Reference>
            </ForeignKey>
        </TableCreate>
    </DatabaseUpgrade>
    <DatabaseUninstall Type="pre">
        <TableDrop Type="pre" Name="general_catalog_preferences">
        </TableDrop>
        <TableDrop Type="pre" Name="general_catalog">
        </TableDrop>
    </DatabaseUninstall>
</otrs_package>