<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
    <Name>Dashboard-MyTicketSearchProfile</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-26 16:09:21" Version="11.1.1">Initial release for OTOBO 11.1.</ChangeLog>
    <Description Lang="en">Provides a widget in the Dashboard with the tickets returned by one of the user ticket search templates.</Description>
    <Framework>11.1.x</Framework>
    <BuildCommitID>0cd56e90839f75e85ad4aec078d38acab7441705</BuildCommitID>
    <BuildDate>2026-06-26 16:09:25</BuildDate>
    <BuildHost>opms.rother-oss.com</BuildHost>
    <Filelist>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentDashboardTicketProfileSearch.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRmlsdGVyIikgJV0KPGRpdiBjbGFzcz0iRGFzaGJvYXJkQWN0aW9ucyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlNlbGVjdGVkVGVtcGxhdGVBbmRUaWNrZXRzQ291bnQiKSAlXQogICAgPHVsIGNsYXNzPSJUYWIgQWN0aW9ucyI+CiAgICAgICAgPGxpIGNsYXNzPSJMYXN0Ij48YSBocmVmPSIjIiBpZD0iRGFzaGJvYXJkWyUgRGF0YS5OYW1lIHwgaHRtbCAlXUFsbCIgZGF0YS1maWx0ZXI9IkFsbCI+WyUgVHJhbnNsYXRlKERhdGEuUHJvZmlsZVRlbXBsYXRlTmFtZSkgfCBodG1sICVdIChbJSBEYXRhLkNvdW50IHwgaHRtbCAlXSk8L2E+PC9saT4KICAgIDwvdWw+ClslIFJlbmRlckJsb2NrRW5kKCJTZWxlY3RlZFRlbXBsYXRlQW5kVGlja2V0c0NvdW50IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9UZW1wbGF0ZVNlbGVjdGVkIikgJV0KICAgIDx1bCBjbGFzcz0iVGFiIEFjdGlvbnMiPgogICAgICAgIDxsaSBjbGFzcz0iTGFzdCI+WyUgVHJhbnNsYXRlKCJObyBzZWFyY2ggdGVtcGxhdGUgc2VsZWN0ZWQiKSB8IGh0bWwgJV08L2xpPgogICAgPC91bD4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVGVtcGxhdGVTZWxlY3RlZCIpICVdCjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0ZpbHRlck5hdkJhciIpICVdCjxzcGFuIGNsYXNzPSJQYWdpbmF0aW9uIj4KICAgIFslIERhdGEuU2l0ZU5hdkJhciAlXQo8L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRmlsdGVyTmF2QmFyIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNGaWx0ZXIiKSAlXQoKIzwhLS0gVGhpcyBmb3JtIHdpbGwgbm90IGJlIHN1Ym1pdHRlZCwgd2UgbmVlZCBpdCBmb3IgdGhlIEFKQVggY2FsbHMuIC0tPgo8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDdXN0b21lcklEIiB2YWx1ZT0iWyUgRGF0YS5DdXN0b21lcklEIHwgaHRtbCAlXSIvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ3VzdG9tZXJVc2VySUQiIHZhbHVlPSJbJSBEYXRhLkN1c3RvbWVyVXNlcklEIHwgaHRtbCAlXSIvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRmlsdGVyWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaWQ9IkZpbHRlclslIERhdGEuTmFtZSB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLkZpbHRlclZhbHVlIHwgaHRtbCAlXSIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFkZGl0aW9uYWxGaWx0ZXJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBpZD0iQWRkaXRpb25hbEZpbHRlclslIERhdGEuTmFtZSB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLkFkZGl0aW9uYWxGaWx0ZXJWYWx1ZSB8IGh0bWwgJV0iIC8+CiAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgPHRoZWFkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyIikgJV0KICAgICAgICAgICAgPHRyPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiR2VuZXJhbE92ZXJ2aWV3SGVhZGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJNZXRhIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iRGFzaGJvYXJkSGVhZGVyIFslIERhdGEuQ1NTIHwgaHRtbCAlXSIgZGF0YS1jb2x1bW49IlslIERhdGEuSGVhZGVyQ29sdW1uTmFtZSB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5UaXRsZSkgfCBodG1sICVdIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlck1ldGFMaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICA8YSBpZD0iWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwgaHRtbCAlXUZsYWdPdmVydmlld0NvbnRyb2xbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBuYW1lPSJbJSBEYXRhLkhlYWRlckNvbHVtbk5hbWUgfCBodG1sICVdT3ZlcnZpZXdDb250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLlRpdGxlKSB8IGh0bWwgJV0iPjwvYT4KClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YUxpbmsiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YUVtcHR5IikgJV0KICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuSGVhZGVyQ29sdW1uTmFtZSkgfCBodG1sICVdIj48L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YUVtcHR5IikgJV0KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyVGlja2V0SGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlclRpY2tldE51bWJlckNvbHVtbiIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkRhc2hib2FyZEhlYWRlciBUaWNrZXROdW1iZXIgWyUgRGF0YS5DU1MgfCBodG1sICVdIiBkYXRhLWNvbHVtbj0iVGlja2V0TnVtYmVyIj4KICAgICAgICAgICAgICAgICAgICA8YSBpZD0iVGlja2V0TnVtYmVyT3ZlcnZpZXdDb250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgbmFtZT0iVGlja2V0TnVtYmVyT3ZlcnZpZXdDb250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaHJlZj0iIyIgdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIiA+WyUgQ29uZmlnKCJUaWNrZXQ6Okhvb2siKSAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyVGlja2V0TnVtYmVyQ29sdW1uIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4iKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJEYXNoYm9hcmRIZWFkZXIgWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwgaHRtbCAlXSBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iIGRhdGEtY29sdW1uPSJbJSBEYXRhLkhlYWRlckNvbHVtbk5hbWUgfCBodG1sICVdIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iQ29sdW1uU2V0dGluZ3NUcmlnZ2VyIiB0aXRsZT0iWyUgRGF0YS5GaWx0ZXJUaXRsZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtZmlsdGVyIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbHVtblNldHRpbmdzQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29sdW1uU2V0dGluZ3NCb3giPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Db2x1bW5GaWx0ZXJTdHJnICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rQ3VzdG9tZXJJRFNlYXJjaCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9IkN1c3RvbWVySURBdXRvQ29tcGxldGUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lcklEU2VhcmNoIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rVXNlclNlYXJjaCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9IlVzZXJBdXRvQ29tcGxldGUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtVc2VyU2VhcmNoIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJEZWxldGVGaWx0ZXIgSGlkZGVuIj48aSBjbGFzcz0iZmEgZmEtdHJhc2gtbyI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxhIGlkPSJbJSBEYXRhLkhlYWRlckNvbHVtbk5hbWUgfCBodG1sICVdT3ZlcnZpZXdDb250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgbmFtZT0iWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwgaHRtbCAlXU92ZXJ2aWV3Q29udHJvbFslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGhyZWY9IiMiIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSIgPlslIERhdGEuSGVhZGVyTmFtZVRyYW5zbGF0ZWQgfCBodG1sICVdPC9hPgoKWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5MaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICA8YSBpZD0iWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwgaHRtbCAlXU92ZXJ2aWV3Q29udHJvbFslIERhdGEuTmFtZSB8IGh0bWwgJV0iIG5hbWU9IlslIERhdGEuSGVhZGVyQ29sdW1uTmFtZSB8IGh0bWwgJV1PdmVydmlld0NvbnRyb2xbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBocmVmPSIjIiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iID5bJSBEYXRhLkhlYWRlck5hbWVUcmFuc2xhdGVkIHwgaHRtbCAlXTwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5MaW5rIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJDb2x1bW5TZXR0aW5nc1RyaWdnZXIiIHRpdGxlPSJbJSBEYXRhLkZpbHRlclRpdGxlIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1maWx0ZXIiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29sdW1uU2V0dGluZ3NDb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb2x1bW5TZXR0aW5nc0JveCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNvbHVtbkZpbHRlclN0cmcgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lclVzZXJTZWFyY2giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJDdXN0b21lclVzZXJBdXRvQ29tcGxldGUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lclVzZXJTZWFyY2giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9IkRlbGV0ZUZpbHRlciBIaWRkZW4iPjxpIGNsYXNzPSJmYSBmYS10cmFzaC1vIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iR3JheSIgdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIiA+WyUgRGF0YS5IZWFkZXJOYW1lVHJhbnNsYXRlZCB8IGh0bWwgJV08L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRmlsdGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5FbXB0eSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkdyYXkiIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSIgPlslIERhdGEuSGVhZGVyTmFtZVRyYW5zbGF0ZWQgJV08L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRW1wdHkiKSAlXQogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4iKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlclRpY2tldEhlYWRlciIpICVdCgpbJSBSZW5kZXJCbG9ja0VuZCgiR2VuZXJhbE92ZXJ2aWV3SGVhZGVyIikgJV0KCiAgICAgICAgICAgIDwvdHI+CgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlciIpICVdCiAgICAgICAgPC90aGVhZD4KCiAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93IikgJV0KICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiR2VuZXJhbE92ZXJ2aWV3Um93IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNSb3dNZXRhIikgJV0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iWyUgRGF0YS5DbGFzc1RhYmxlIHwgaHRtbCAlXSBGbGFncyIgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLlRpdGxlKSB8IGh0bWwgJV0iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93TWV0YUltYWdlIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJbJSBEYXRhLkNsYXNzIHwgaHRtbCAlXSBTbWFsbCIgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLlRpdGxlKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iWyUgRGF0YS5DbGFzc1NwYW4gfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1zdGFyIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc3RhciI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtPlslIFRyYW5zbGF0ZShEYXRhLlRpdGxlKSB8IGh0bWwgJV08L2VtPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93TWV0YUltYWdlIikgJV0KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93TWV0YSIpICVdCgojICAgICAgICAgICAgPHRkIGNsYXNzPSJXMTBwYyI+CiMgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGlja2V0Wm9vbTtUaWNrZXRJRD1bJSBEYXRhLlRpY2tldElEICVdIiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iIGNsYXNzPSJBc0Jsb2NrIE1hc3RlckFjdGlvbkxpbmsiPlslIERhdGEuVGlja2V0TnVtYmVyIHwgaHRtbCAlXTwvYT4KIyAgICAgICAgICAgIDwvdGQ+CiMgICAgICAgICAgICA8dGQgY2xhc3M9Ilc1MHBjIj4KIyAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+WyUgRGF0YS5UaXRsZSB8IHRydW5jYXRlKDcwKSB8IGh0bWwgJV08L2Rpdj4KIyAgICAgICAgICAgIDwvdGQ+CiMgICAgICAgICAgICA8dGQ+WyUgRGF0YS5UaW1lIHwgaHRtbCAlXTwvdGQ+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljVGlja2V0Q29sdW1uIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY1RpY2tldE51bWJlciIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGlja2V0Wm9vbTtUaWNrZXRJRD1bJSBEYXRhLlRpY2tldElEICVdIiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iIGNsYXNzPSJBc0Jsb2NrIE1hc3RlckFjdGlvbkxpbmsiPlslIERhdGEuVGlja2V0TnVtYmVyIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljVGlja2V0TnVtYmVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0VzY2FsYXRpb25UaW1lIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNlcnZpY2UgVGltZSIpIHwgaHRtbCAlXTogWyUgRGF0YS5Fc2NhbGF0aW9uVGltZVdvcmtpbmdUaW1lIHwgaHRtbCAlXSAtIFslIERhdGEuRXNjYWxhdGlvbkRlc3RpbmF0aW9uRGF0ZSB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXSIgY2xhc3M9IlslIERhdGEuRXNjYWxhdGlvbkNsYXNzIHwgaHRtbCAlXSI+WyUgRGF0YS5Fc2NhbGF0aW9uVGltZUh1bWFuIHwgaHRtbCAlXTxici8+WyUgRGF0YS5VcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0VzY2FsYXRpb25UaW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtbiIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5HZW5lcmljVmFsdWUgfCBodG1sICVdIj5bJSBEYXRhLkdlbmVyaWNWYWx1ZSB8IHRydW5jYXRlKDQwKSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0VGl0bGUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuV2hvbGVUaXRsZSB8IGh0bWwgJV0iPlslIERhdGEuVGl0bGUgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0VGl0bGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uVHJhbnNsYXRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5HZW5lcmljVmFsdWUpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuR2VuZXJpY1ZhbHVlKSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uVHJhbnNsYXRhYmxlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtblRpbWUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuR2VuZXJpY1ZhbHVlIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpIHwgaHRtbCAlXSI+WyUgRGF0YS5HZW5lcmljVmFsdWUgfCBMb2NhbGl6ZSgiVGltZVNob3J0IikgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtblRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uRXNjYWxhdGlvbiIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5HZW5lcmljVmFsdWUgfCBodG1sICVdIiBjbGFzcz0iWyUgRGF0YS5DbGFzcyB8IGh0bWwgJV0iPlslIERhdGEuR2VuZXJpY1ZhbHVlIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNDb2x1bW5Fc2NhbGF0aW9uIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNUaWNrZXRDb2x1bW4iKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0R5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkTGluayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIERhdGEuTGluayB8IEludGVycG9sYXRlICVdIiAgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJEeW5hbWljRmllbGRMaW5rIj5bJSBEYXRhLlZhbHVlICVdPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0R5bmFtaWNGaWVsZExpbmsiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkUGxhaW4iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbHVlICVdClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkUGxhaW4iKSAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNEeW5hbWljRmllbGQiKSAlXQoKWyUgUmVuZGVyQmxvY2tFbmQoIkdlbmVyYWxPdmVydmlld1JvdyIpICVdCiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY05vbmUiKSAlXQogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkF1dG9Db2xzcGFuIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm5vbmUiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljTm9uZSIpICVdCiAgICAgICAgPC90Ym9keT4KICAgIDwvdGFibGU+CjwvZm9ybT4K</File>
        <File Location="Kernel/Output/HTML/Dashboard/TicketProfileSearch.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OlRpY2tldFByb2ZpbGVTZWFyY2g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgcGFyYW1ldGVycwogICAgZm9yIG15ICROZWVkZWQgKHF3KENvbmZpZyBOYW1lIFVzZXJJRCkpIHsKICAgICAgICBkaWUgIkdvdCBubyAkTmVlZGVkISIgaWYgKCAhJFNlbGYtPnskTmVlZGVkfSApOwogICAgfQoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgIG15ICRSZW1vdmVGaWx0ZXJzID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1JlbW92ZUZpbHRlcnMnICkgfHwgJFBhcmFte1JlbW92ZUZpbHRlcnN9IHx8IDA7CgogICAgIyBnZXQgc29ydGluZyBwYXJhbXMKICAgIGZvciBteSAkSXRlbSAocXcoU29ydEJ5IE9yZGVyQnkpKSB7CiAgICAgICAgJFNlbGYtPnskSXRlbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkSXRlbSApIHx8ICRQYXJhbXskSXRlbX07CiAgICB9CgogICAgIyBHZXQgYWRkIGZpbHRlcnMgcGFyYW0uCiAgICAkU2VsZi0+e0FkZEZpbHRlcnN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZEZpbHRlcnMnICkgfHwgJFBhcmFte0FkZEZpbHRlcnN9IHx8IDA7CiAgICAkU2VsZi0+e1RhYkFjdGlvbn0gID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1RhYkFjdGlvbicgKSAgfHwgJFBhcmFte1RhYkFjdGlvbn0gIHx8IDA7CgogICAgIyBHZXQgcHJldmlvdXMgc29ydGluZyBjb2x1bW4uCiAgICAkU2VsZi0+e1NvcnRpbmdDb2x1bW59ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRpbmdDb2x1bW4nICkgfHwgJFBhcmFte1NvcnRpbmdDb2x1bW59OwoKICAgICMgc2V0IGZpbHRlciBzZXR0aW5ncwogICAgZm9yIG15ICRJdGVtIChxdyhDb2x1bW5GaWx0ZXIgR2V0Q29sdW1uRmlsdGVyIEdldENvbHVtbkZpbHRlclNlbGVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRJdGVtfSA9ICRQYXJhbXskSXRlbX07CiAgICB9CgogICAgIyBzYXZlIGNvbHVtbiBmaWx0ZXJzCiAgICAkU2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzfSAgICAgICAgID0gJ1VzZXJEYXNoYm9hcmRUaWNrZXRHZW5lcmljQ29sdW1uRmlsdGVycycgLiAkU2VsZi0+e05hbWV9OwogICAgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc1JlYWxLZXlzfSA9ICdVc2VyRGFzaGJvYXJkVGlja2V0R2VuZXJpY0NvbHVtbkZpbHRlcnNSZWFsS2V5cycgLiAkU2VsZi0+e05hbWV9OwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkSlNPTk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkpTT04nKTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFVzZXJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgaWYgKCRSZW1vdmVGaWx0ZXJzKSB7CiAgICAgICAgJFVzZXJPYmplY3QtPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30sCiAgICAgICAgICAgIFZhbHVlICA9PiAnJywKICAgICAgICApOwogICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgS2V5ICAgID0+ICRTZWxmLT57UHJlZktleUNvbHVtbkZpbHRlcnNSZWFsS2V5c30sCiAgICAgICAgICAgIFZhbHVlICA9PiAnJywKICAgICAgICApOwogICAgfQoKICAgICMganVzdCBpbiBjYXNlIG5ldyBmaWx0ZXIgdmFsdWVzIGFycml2ZQogICAgZWxzaWYgKAogICAgICAgIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0dldENvbHVtbkZpbHRlcn0gKQogICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0gKQogICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0NvbHVtbkZpbHRlcn0gKQogICAgICAgICkKICAgIHsKCiAgICAgICAgaWYgKCAhJENvbmZpZ09iamVjdC0+R2V0KCdEZW1vU3lzdGVtJykgKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHRoZSB1c2VyIGhhcyBmaWx0ZXIgcHJlZmVyZW5jZXMgZm9yIHRoaXMgd2lkZ2V0CiAgICAgICAgICAgIG15ICVQcmVmZXJlbmNlcyA9ICRVc2VyT2JqZWN0LT5HZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb2x1bW5QcmVmVmFsdWVzOwogICAgICAgICAgICBpZiAoICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30gfSApIHsKICAgICAgICAgICAgICAgICRDb2x1bW5QcmVmVmFsdWVzID0gJEpTT05PYmplY3QtPkRlY29kZSgKICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30gfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFBSRUZWQUxVRVM6CiAgICAgICAgICAgIGZvciBteSAkQ29sdW1uICggc29ydCBrZXlzICV7ICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0fSB9ICkgewogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0tPnskQ29sdW1ufSBlcSAnRGVsZXRlRmlsdGVyJyApIHsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJENvbHVtblByZWZWYWx1ZXMtPnskQ29sdW1ufTsKICAgICAgICAgICAgICAgICAgICBuZXh0IFBSRUZWQUxVRVM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkQ29sdW1uUHJlZlZhbHVlcy0+eyRDb2x1bW59ID0gJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9LT57JENvbHVtbn07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30sCiAgICAgICAgICAgICAgICBWYWx1ZSAgPT4gJEpTT05PYmplY3QtPkVuY29kZSggRGF0YSA9PiAkQ29sdW1uUHJlZlZhbHVlcyApLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzYXZlIHJlYWwga2V5J3MgbmFtZQogICAgICAgICAgICBteSAkQ29sdW1uUHJlZlJlYWxLZXlzVmFsdWVzOwogICAgICAgICAgICBpZiAoICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc1JlYWxLZXlzfSB9ICkgewogICAgICAgICAgICAgICAgJENvbHVtblByZWZSZWFsS2V5c1ZhbHVlcyA9ICRKU09OT2JqZWN0LT5EZWNvZGUoCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZktleUNvbHVtbkZpbHRlcnNSZWFsS2V5c30gfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgUkVBTEtFWVZBTFVFUzoKICAgICAgICAgICAgZm9yIG15ICRDb2x1bW4gKCBzb3J0IGtleXMgJXsgJFNlbGYtPntDb2x1bW5GaWx0ZXJ9IH0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IFJFQUxLRVlWQUxVRVMgaWYgISRDb2x1bW47CgogICAgICAgICAgICAgICAgbXkgJERlbGV0ZUZpbHRlciA9IDA7CiAgICAgICAgICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJFNlbGYtPntDb2x1bW5GaWx0ZXJ9LT57JENvbHVtbn0gKSApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIGdyZXAgeyAkXyBlcSAnRGVsZXRlRmlsdGVyJyB9IEB7ICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICREZWxldGVGaWx0ZXIgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59ICkgKSB7CgogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgZ3JlcCB7ICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59LT57JF99IGVxICdEZWxldGVGaWx0ZXInIH0KICAgICAgICAgICAgICAgICAgICAgICAga2V5cyAleyAkU2VsZi0+e0NvbHVtbkZpbHRlcn0tPnskQ29sdW1ufSB9CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICREZWxldGVGaWx0ZXIgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoJERlbGV0ZUZpbHRlcikgewogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkQ29sdW1uUHJlZlJlYWxLZXlzVmFsdWVzLT57JENvbHVtbn07CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59OwogICAgICAgICAgICAgICAgICAgIG5leHQgUkVBTEtFWVZBTFVFUzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRDb2x1bW5QcmVmUmVhbEtleXNWYWx1ZXMtPnskQ29sdW1ufSA9ICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59OwogICAgICAgICAgICB9CiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc1JlYWxLZXlzfSwKICAgICAgICAgICAgICAgIFZhbHVlICA9PiAkSlNPTk9iamVjdC0+RW5jb2RlKCBEYXRhID0+ICRDb2x1bW5QcmVmUmVhbEtleXNWYWx1ZXMgKSwKICAgICAgICAgICAgKTsKCiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgdGhlIHVzZXIgaGFzIGZpbHRlciBwcmVmZXJlbmNlcyBmb3IgdGhpcyB3aWRnZXQKICAgIG15ICVQcmVmZXJlbmNlcyA9ICRVc2VyT2JqZWN0LT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBjb2x1bW4gbmFtZXMgZnJvbSBQcmVmZXJlbmNlcwogICAgbXkgJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVyczsKICAgIGlmICggJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzfSB9ICkgewogICAgICAgICRQcmVmZXJlbmNlc0NvbHVtbkZpbHRlcnMgPSAkSlNPTk9iamVjdC0+RGVjb2RlKAogICAgICAgICAgICBEYXRhID0+ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30gfSwKICAgICAgICApOwogICAgfQoKICAgIGlmICgkUHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzKSB7CiAgICAgICAgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9ID0gJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVyczsKICAgICAgICBteSBAQ29sdW1uRmlsdGVycyA9IGtleXMgJXskUHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzfTsKICAgICAgICBmb3IgbXkgJEZpZWxkIChAQ29sdW1uRmlsdGVycykgewogICAgICAgICAgICAkU2VsZi0+e0dldENvbHVtbkZpbHRlcn0tPnsgJEZpZWxkIC4gJFNlbGYtPntOYW1lfSB9ID0gJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVycy0+eyRGaWVsZH07CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGNvbHVtbiByZWFsIG5hbWVzIGZyb20gUHJlZmVyZW5jZXMKICAgIG15ICRQcmVmZXJlbmNlc0NvbHVtbkZpbHRlcnNSZWFsS2V5czsKICAgIGlmICggJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzUmVhbEtleXN9IH0gKSB7CiAgICAgICAgJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVyc1JlYWxLZXlzID0gJEpTT05PYmplY3QtPkRlY29kZSgKICAgICAgICAgICAgRGF0YSA9PiAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZktleUNvbHVtbkZpbHRlcnNSZWFsS2V5c30gfSwKICAgICAgICApOwogICAgfQoKICAgIGlmICgkUHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzUmVhbEtleXMpIHsKICAgICAgICBteSBAQ29sdW1uRmlsdGVyc1JlYWwgPSBrZXlzICV7JFByZWZlcmVuY2VzQ29sdW1uRmlsdGVyc1JlYWxLZXlzfTsKICAgICAgICBmb3IgbXkgJEZpZWxkIChAQ29sdW1uRmlsdGVyc1JlYWwpIHsKICAgICAgICAgICAgJFNlbGYtPntDb2x1bW5GaWx0ZXJ9LT57JEZpZWxkfSA9ICRQcmVmZXJlbmNlc0NvbHVtbkZpbHRlcnNSZWFsS2V5cy0+eyRGaWVsZH07CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGN1cnJlbnQgZmlsdGVyCiAgICBteSAkTmFtZSAgICAgICAgICAgICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ05hbWUnICkgfHwgJyc7CiAgICBteSAkUHJlZmVyZW5jZXNLZXkgICAgICAgICAgID0gJ1VzZXJEYXNoYm9hcmRUaWNrZXRHZW5lcmljRmlsdGVyJyAuICRTZWxmLT57TmFtZX07CiAgICBteSAkQWRkaXRpb25hbFByZWZlcmVuY2VzS2V5ID0gJ1VzZXJEYXNoYm9hcmRUaWNrZXRHZW5lcmljQWRkaXRpb25hbEZpbHRlcicgLiAkU2VsZi0+e05hbWV9OwogICAgaWYgKCAkU2VsZi0+e05hbWV9IGVxICROYW1lICkgewogICAgICAgICRTZWxmLT57RmlsdGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdGaWx0ZXInICkgfHwgJyc7CiAgICB9CgogICAgIyBSZW1lbWJlciB0aGUgc2VsZWN0ZWQgZmlsdGVyIGluIHRoZSBzZXNzaW9uLgogICAgaWYgKCAkU2VsZi0+e0ZpbHRlcn0gKSB7CgogICAgICAgICMgdXBkYXRlIHNlc3Npb24KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgICAgICBLZXkgICAgICAgPT4gJFByZWZlcmVuY2VzS2V5LAogICAgICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntGaWx0ZXJ9LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHByZWZlcmVuY2VzCiAgICAgICAgaWYgKCAhJENvbmZpZ09iamVjdC0+R2V0KCdEZW1vU3lzdGVtJykgKSB7CiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBLZXkgICAgPT4gJFByZWZlcmVuY2VzS2V5LAogICAgICAgICAgICAgICAgVmFsdWUgID0+ICRTZWxmLT57RmlsdGVyfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkU2VsZi0+e1Nlc3Npb259eyRQcmVmZXJlbmNlc0tleX0gfHwgJFNlbGYtPntDb25maWd9LT57RmlsdGVyfSB8fCAnQWxsJzsKICAgIH0KCiAgICAkU2VsZi0+e1ByZWZTZWFyY2hUZW1wbGF0ZX0gPSAnVXNlckRhc2hib2FyZFByZWYnIC4gJFNlbGYtPntOYW1lfSAuICctU2VhcmNoVGVtcGxhdGUnOwogICAgJFNlbGYtPntQcmVmS2V5U2hvd259ICAgICAgID0gJ1VzZXJEYXNoYm9hcmRQcmVmJyAuICRTZWxmLT57TmFtZX0gLiAnLVNob3duJzsKICAgICRTZWxmLT57UHJlZktleUNvbHVtbnN9ICAgICA9ICdVc2VyRGFzaGJvYXJkUHJlZicgLiAkU2VsZi0+e05hbWV9IC4gJy1Db2x1bW5zJzsKICAgICRTZWxmLT57UGFnZVNob3dufSAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+eyAkU2VsZi0+e1ByZWZLZXlTaG93bn0gfQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+e0xpbWl0fTsKICAgICRTZWxmLT57U3RhcnRIaXR9ID0gaW50KCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU3RhcnRIaXQnICkgfHwgMSApOwoKICAgICMgZGVmaW5lIGZpbHRlcmFibGUgY29sdW1ucwogICAgJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfSA9IHsKICAgICAgICAnT3duZXInICAgICAgICAgID0+IDEsCiAgICAgICAgJ1Jlc3BvbnNpYmxlJyAgICA9PiAxLAogICAgICAgICdDdXN0b21lcklEJyAgICAgPT4gMSwKICAgICAgICAnQ3VzdG9tZXJVc2VySUQnID0+IDEsCiAgICAgICAgJ1N0YXRlJyAgICAgICAgICA9PiAxLAogICAgICAgICdRdWV1ZScgICAgICAgICAgPT4gMSwKICAgICAgICAnUHJpb3JpdHknICAgICAgID0+IDEsCiAgICAgICAgJ1R5cGUnICAgICAgICAgICA9PiAxLAogICAgICAgICdMb2NrJyAgICAgICAgICAgPT4gMSwKICAgICAgICAnU2VydmljZScgICAgICAgID0+IDEsCiAgICAgICAgJ1NMQScgICAgICAgICAgICA9PiAxLAogICAgfTsKCiAgICAjIGhhc2ggd2l0aCBhbGwgdmFsaWQgc29ydGFibGUgY29sdW1ucyAodGFrZW4gZnJvbSBUaWNrZXRTZWFyY2gpCiAgICAjIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBDcmVhdGVkfE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlCiAgICAjIHxQcmlvcml0eXxUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8Q2hhbmdlZHxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgIyB8IEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30gPSB7CiAgICAgICAgJ0FnZScgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ0NyZWF0ZWQnICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ093bmVyJyAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1Jlc3BvbnNpYmxlJyAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ0N1c3RvbWVySUQnICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1N0YXRlJyAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1RpY2tldE51bWJlcicgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1F1ZXVlJyAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1ByaW9yaXR5JyAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1R5cGUnICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ0xvY2snICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1RpdGxlJyAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1NlcnZpY2UnICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ0NoYW5nZWQnICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1NMQScgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1BlbmRpbmdUaW1lJyAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ0VzY2FsYXRpb25UaW1lJyAgICAgICAgID0+IDEsCiAgICAgICAgJ0VzY2FsYXRpb25VcGRhdGVUaW1lJyAgID0+IDEsCiAgICAgICAgJ0VzY2FsYXRpb25SZXNwb25zZVRpbWUnID0+IDEsCiAgICAgICAgJ0VzY2FsYXRpb25Tb2x1dGlvblRpbWUnID0+IDEsCiAgICB9OwoKICAgICRTZWxmLT57VXNlVGlja2V0U2VydmljZX0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6U2VydmljZScpIHx8IDA7CgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9ICkgewoKICAgICAgICAjIGdldCBwcm9jZXNzIG1hbmFnZW1lbnQgY29uZmlndXJhdGlvbgogICAgICAgICRTZWxmLT57UHJvY2Vzc01hbmFnZW1lbnRQcm9jZXNzSUR9ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnUHJvY2Vzczo6RHluYW1pY0ZpZWxkUHJvY2Vzc01hbmFnZW1lbnRQcm9jZXNzSUQnKTsKICAgICAgICAkU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50QWN0aXZpdHlJRH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1Byb2Nlc3M6OkR5bmFtaWNGaWVsZFByb2Nlc3NNYW5hZ2VtZW50QWN0aXZpdHlJRCcpOwoKICAgICAgICAjIGdldCB0aGUgbGlzdCBvZiBwcm9jZXNzZXMgaW4gdGhlIHN5c3RlbQogICAgICAgIG15ICRQcm9jZXNzTGlzdEhhc2ggPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UHJvY2Vzc01hbmFnZW1lbnQ6OlByb2Nlc3MnKS0+UHJvY2Vzc0xpc3QoCiAgICAgICAgICAgIFByb2Nlc3NTdGF0ZSA9PiBbICdBY3RpdmUnLCAnRmFkZUF3YXknLCAnSW5hY3RpdmUnIF0sCiAgICAgICAgICAgIEludGVyZmFjZSAgICA9PiAnYWxsJywKICAgICAgICAgICAgU2lsZW50ICAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyB1c2Ugb25seSB0aGUgcHJvY2VzcyBFbnRpdHlJRHMKICAgICAgICBAeyAkU2VsZi0+e1Byb2Nlc3NMaXN0fSB9ID0gc29ydCBrZXlzICV7JFByb2Nlc3NMaXN0SGFzaH07CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUHJlZmVyZW5jZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNvbmZpZ3VyZSBjb2x1bW5zCiAgICBteSBAQ29sdW1uc0VuYWJsZWQ7CiAgICBteSBAQ29sdW1uc0F2YWlsYWJsZTsKICAgIG15IEBDb2x1bW5zQXZhaWxhYmxlTm90RW5hYmxlZDsKCiAgICAjIGNoZWNrIGZvciBkZWZhdWx0IHNldHRpbmdzCiAgICBpZiAoCiAgICAgICAgJFNlbGYtPntDb25maWd9LT57RGVmYXVsdENvbHVtbnN9CiAgICAgICAgJiYgSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfSApCiAgICAgICAgKQogICAgewogICAgICAgIEBDb2x1bW5zQXZhaWxhYmxlID0gZ3JlcCB7ICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfS0+eyRffSB9CiAgICAgICAgICAgIGtleXMgJXsgJFNlbGYtPntDb25maWd9LT57RGVmYXVsdENvbHVtbnN9IH07CiAgICAgICAgQENvbHVtbnNFbmFibGVkID0gZ3JlcCB7ICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfS0+eyRffSBlcSAnMicgfQogICAgICAgICAgICBzb3J0IHsgJFNlbGYtPl9EZWZhdWx0Q29sdW1uU29ydCgpIH0ga2V5cyAleyAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0Q29sdW1uc30gfTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIHRoZSB1c2VyIGhhcyBmaWx0ZXIgcHJlZmVyZW5jZXMgZm9yIHRoaXMgd2lkZ2V0CiAgICBteSAlUHJlZmVyZW5jZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBKU09OIG9iamVjdAogICAgbXkgJEpTT05PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SlNPTicpOwoKICAgICMgaWYgcHJlZmVyZW5jZSBzZXR0aW5ncyBhcmUgYXZhaWxhYmxlLCB0YWtlIHRoZW0KICAgIGlmICggJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5zfSB9ICkgewoKICAgICAgICBteSAkQ29sdW1uc0VuYWJsZWQgPSAkSlNPTk9iamVjdC0+RGVjb2RlKAogICAgICAgICAgICBEYXRhID0+ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+eyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5zfSB9LAogICAgICAgICk7CgogICAgICAgIEBDb2x1bW5zRW5hYmxlZCA9IGdyZXAgeyAkQ29sdW1uc0VuYWJsZWQtPntDb2x1bW5zfS0+eyRffSA9PSAxIH0KICAgICAgICAgICAga2V5cyAleyAkQ29sdW1uc0VuYWJsZWQtPntDb2x1bW5zfSB9OwoKICAgICAgICBpZiAoICRDb2x1bW5zRW5hYmxlZC0+e09yZGVyfSAmJiBAeyAkQ29sdW1uc0VuYWJsZWQtPntPcmRlcn0gfSApIHsKICAgICAgICAgICAgQENvbHVtbnNFbmFibGVkID0gQHsgJENvbHVtbnNFbmFibGVkLT57T3JkZXJ9IH07CiAgICAgICAgfQoKICAgICAgICAjIHJlbW92ZSBkdXBsaWNhdGUgY29sdW1ucwogICAgICAgIG15ICVVbmlxdWVDb2x1bW5zOwogICAgICAgIG15IEBDb2x1bW5zRW5hYmxlZEF1eDsKCiAgICAgICAgZm9yIG15ICRDb2x1bW4gKEBDb2x1bW5zRW5hYmxlZCkgewogICAgICAgICAgICBpZiAoICEkVW5pcXVlQ29sdW1uc3skQ29sdW1ufSApIHsKICAgICAgICAgICAgICAgIHB1c2ggQENvbHVtbnNFbmFibGVkQXV4LCAkQ29sdW1uOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRVbmlxdWVDb2x1bW5zeyRDb2x1bW59ID0gMTsKICAgICAgICB9CgogICAgICAgICMgc2V0IGZpbHRlcmVkIGNvbHVtbiBsaXN0CiAgICAgICAgQENvbHVtbnNFbmFibGVkID0gQENvbHVtbnNFbmFibGVkQXV4OwogICAgfQoKICAgIG15ICVDb2x1bW5zOwogICAgZm9yIG15ICRDb2x1bW5OYW1lICggc29ydCB7ICRhIGNtcCAkYiB9IEBDb2x1bW5zQXZhaWxhYmxlICkgewogICAgICAgICRDb2x1bW5ze0NvbHVtbnN9LT57JENvbHVtbk5hbWV9ID0gKCBncmVwIHsgJENvbHVtbk5hbWUgZXEgJF8gfSBAQ29sdW1uc0VuYWJsZWQgKSA/IDEgOiAwOwogICAgICAgIGlmICggIWdyZXAgeyAkXyBlcSAkQ29sdW1uTmFtZSB9IEBDb2x1bW5zRW5hYmxlZCApIHsKICAgICAgICAgICAgcHVzaCBAQ29sdW1uc0F2YWlsYWJsZU5vdEVuYWJsZWQsICRDb2x1bW5OYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIHJlbW92ZSBDdXN0b21lcklEIGlmIEN1c3RvbWVyIEluZm9ybWF0aW9uIENlbnRlcgogICAgaWYgKCAkU2VsZi0+e0FjdGlvbn0gZXEgJ0FnZW50Q3VzdG9tZXJJbmZvcm1hdGlvbkNlbnRlcicgKSB7CiAgICAgICAgZGVsZXRlICRDb2x1bW5ze0NvbHVtbnN9LT57Q3VzdG9tZXJJRH07CiAgICAgICAgQENvbHVtbnNFbmFibGVkICAgICAgICAgICAgID0gZ3JlcCB7ICRfIG5lICdDdXN0b21lcklEJyB9IEBDb2x1bW5zRW5hYmxlZDsKICAgICAgICBAQ29sdW1uc0F2YWlsYWJsZU5vdEVuYWJsZWQgPSBncmVwIHsgJF8gbmUgJ0N1c3RvbWVySUQnIH0gQENvbHVtbnNBdmFpbGFibGVOb3RFbmFibGVkOwogICAgfQoKICAgIG15ICRTZWFyY2hQcm9maWxlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlYXJjaFByb2ZpbGUnKTsKICAgIG15ICVQcm9maWxlcyAgICAgICAgICAgID0gJFNlYXJjaFByb2ZpbGVPYmplY3QtPlNlYXJjaFByb2ZpbGVMaXN0KAogICAgICAgIEJhc2UgICAgICA9PiAnVGlja2V0U2VhcmNoJywKICAgICAgICBVc2VyTG9naW4gPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgKTsKCiAgICBteSBAUGFyYW1zID0gKAogICAgICAgIHsKICAgICAgICAgICAgRGVzYyAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdTdG9yZWQgU2VhcmNoIFByb2ZpbGVzJyksCiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICRTZWxmLT57UHJlZlNlYXJjaFRlbXBsYXRlfSwKICAgICAgICAgICAgQmxvY2sgICAgICAgPT4gJ09wdGlvbicsCiAgICAgICAgICAgIERhdGEgICAgICAgID0+IFwlUHJvZmlsZXMsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgID0+ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmU2VhcmNoVGVtcGxhdGV9IH0sCiAgICAgICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIERlc2MgID0+IFRyYW5zbGF0YWJsZSgnU2hvd24gVGlja2V0cycpLAogICAgICAgICAgICBOYW1lICA9PiAkU2VsZi0+e1ByZWZLZXlTaG93bn0sCiAgICAgICAgICAgIEJsb2NrID0+ICdPcHRpb24nLAogICAgICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICAgICA1ICA9PiAnIDUnLAogICAgICAgICAgICAgICAgMTAgPT4gJzEwJywKICAgICAgICAgICAgICAgIDE1ID0+ICcxNScsCiAgICAgICAgICAgICAgICAyMCA9PiAnMjAnLAogICAgICAgICAgICAgICAgMjUgPT4gJzI1JywKICAgICAgICAgICAgICAgIDUwID0+ICc1MCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFNlbGVjdGVkSUQgID0+ICRTZWxmLT57UGFnZVNob3dufSwKICAgICAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgRGVzYyAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1Nob3duIENvbHVtbnMnKSwKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAkU2VsZi0+e1ByZWZLZXlDb2x1bW5zfSwKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnQWxsb2NhdGlvbkxpc3QnLAogICAgICAgICAgICBDb2x1bW5zICAgICAgICAgID0+ICRKU09OT2JqZWN0LT5FbmNvZGUoIERhdGEgPT4gXCVDb2x1bW5zICksCiAgICAgICAgICAgIENvbHVtbnNFbmFibGVkICAgPT4gJEpTT05PYmplY3QtPkVuY29kZSggRGF0YSA9PiBcQENvbHVtbnNFbmFibGVkICksCiAgICAgICAgICAgIENvbHVtbnNBdmFpbGFibGUgPT4gJEpTT05PYmplY3QtPkVuY29kZSggRGF0YSA9PiBcQENvbHVtbnNBdmFpbGFibGVOb3RFbmFibGVkICksCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMSwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gQFBhcmFtczsKfQoKc3ViIENvbmZpZyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgaWYgZnJvbnRlbmQgbW9kdWxlIG9mIGxpbmsgaXMgdXNlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntMaW5rfSAmJiAkU2VsZi0+e0NvbmZpZ30tPntMaW5rfSA9fiAvQWN0aW9uPSguKz8pKFsmO10uKz98KSQvICkgewogICAgICAgIG15ICRBY3Rpb24gPSAkMTsKICAgICAgICBpZiAoICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyRBY3Rpb259ICkgewogICAgICAgICAgICAkU2VsZi0+e0NvbmZpZ30tPntMaW5rfSA9ICcnOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gKAogICAgICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAoKICAgICAgICAjIERvbid0IGNhY2hlIHRoaXMgZ2xvYmFsbHkgYXMgaXQgY29udGFpbnMgSlMgdGhhdCBpcyBub3QgaW5zaWRlIG9mIHRoZSBIVE1MLgogICAgICAgIENhY2hlVFRMID0+IHVuZGVmLAogICAgICAgIENhY2hlS2V5ID0+IHVuZGVmLAogICAgKTsKfQoKc3ViIEZpbHRlckNvbnRlbnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgISRQYXJhbXtGaWx0ZXJDb2x1bW59OwoKICAgIG15ICRUaWNrZXRJRHM7CiAgICBteSAkSGVhZGVyQ29sdW1uID0gJFBhcmFte0ZpbHRlckNvbHVtbn07CiAgICBteSBAT3JpZ2luYWxWaWV3YWJsZVRpY2tldHM7CgogICAgaWYgKAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnT25seVZhbHVlc09uVGlja2V0JykKICAgICAgICB8fCAkSGVhZGVyQ29sdW1uIGVxICdDdXN0b21lcklEJwogICAgICAgIHx8ICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVyVXNlcklEJwogICAgICAgICkKICAgIHsKICAgICAgICBteSAlU2VhcmNoUGFyYW1zID0gJFNlbGYtPl9TZWFyY2hQYXJhbXNHZXQoJVBhcmFtKTsKICAgICAgICBteSAlVGlja2V0U2VhcmNoID0gJXsgJFNlYXJjaFBhcmFtc3tUaWNrZXRTZWFyY2h9IH07CiAgICAgICAgbXkgJVRpY2tldFNlYXJjaFN1bW1hcnk7CgogICAgICAgICMgYWRkIHByb2Nlc3MgbWFuYWdlbWVudCBzZWFyY2ggdGVybXMKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0lzUHJvY2Vzc1dpZGdldH0gKSB7CiAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7ICdEeW5hbWljRmllbGRfJyAuICRTZWxmLT57UHJvY2Vzc01hbmFnZW1lbnRQcm9jZXNzSUR9IH0gPSB7CiAgICAgICAgICAgICAgICBMaWtlID0+ICRTZWxmLT57UHJvY2Vzc0xpc3R9LAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSB8fCBJc0FycmF5UmVmV2l0aERhdGEoICRTZWxmLT57UHJvY2Vzc0xpc3R9ICkgKSB7CiAgICAgICAgICAgIEBPcmlnaW5hbFZpZXdhYmxlVGlja2V0cyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJVRpY2tldFNlYXJjaCwKICAgICAgICAgICAgICAgICV7ICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyAkU2VsZi0+e0ZpbHRlcn0gfSB9LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJEhlYWRlckNvbHVtbiA9fiBtL15EeW5hbWljRmllbGRfLyAmJiAhZGVmaW5lZCAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gKSB7CgogICAgICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgICAgIFZhbGlkICAgICAgPT4gMCwKICAgICAgICAgICAgT2JqZWN0VHlwZSA9PiBbJ1RpY2tldCddLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY29sdW1uIHZhbHVlcyBmb3IgdG8gYnVpbGQgdGhlIGZpbHRlcnMgbGF0ZXIKICAgIG15ICRDb2x1bW5WYWx1ZXMgPSAkU2VsZi0+X0dldENvbHVtblZhbHVlcygKICAgICAgICBPcmlnaW5hbFRpY2tldElEcyA9PiBcQE9yaWdpbmFsVmlld2FibGVUaWNrZXRzLAogICAgICAgIEhlYWRlckNvbHVtbiAgICAgID0+ICRIZWFkZXJDb2x1bW4sCiAgICApOwoKICAgICMgbWFrZSBzdXJlIHRoYXQgZXZlbiBhIHZhbHVlIG9mIDAgaXMgcGFzc2VkIGFzIGEgU2VsZWN0ZWQgdmFsdWUsIGUuZy4gVW5jaGVja2VkIHZhbHVlIG9mIGEKICAgICMgY2hlY2stYm94IGR5bmFtaWMgZmllbGQuCiAgICBteSAkU2VsZWN0ZWRWYWx1ZSA9IGRlZmluZWQgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJ9LT57ICRIZWFkZXJDb2x1bW4gLiAkU2VsZi0+e05hbWV9IH0KICAgICAgICA/ICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyfS0+eyAkSGVhZGVyQ29sdW1uIC4gJFNlbGYtPntOYW1lfSB9CiAgICAgICAgOiAnJzsKCiAgICBteSAkTGFiZWxDb2x1bW4gPSAkSGVhZGVyQ29sdW1uOwogICAgaWYgKCAkTGFiZWxDb2x1bW4gPX4gbXsgXEEgRHluYW1pY0ZpZWxkXyB9eG1zICkgewoKICAgICAgICBteSAkRHluYW1pY0ZpZWxkQ29uZmlnOwogICAgICAgICRMYWJlbENvbHVtbiA9fiBze1xBIER5bmFtaWNGaWVsZF8gfXt9eG1zOwoKICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICRERkNvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJERGQ29uZmlnKTsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJERGQ29uZmlnLT57TmFtZX0gbmUgJExhYmVsQ29sdW1uOwoKICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZpZyA9ICRERkNvbmZpZzsKICAgICAgICAgICAgbGFzdCBEWU5BTUlDRklFTEQ7CiAgICAgICAgfQogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZykgKSB7CiAgICAgICAgICAgICRMYWJlbENvbHVtbiA9ICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH07CiAgICAgICAgfQogICAgfQoKICAgICMgdmFyaWFibGUgdG8gc2F2ZSB0aGUgZmlsdGVyJ3MgSFRNTCBjb2RlCiAgICBteSAkQ29sdW1uRmlsdGVySlNPTiA9ICRTZWxmLT5fQ29sdW1uRmlsdGVySlNPTigKICAgICAgICBDb2x1bW5OYW1lICAgID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAkTGFiZWxDb2x1bW4sCiAgICAgICAgQ29sdW1uVmFsdWVzICA9PiAkQ29sdW1uVmFsdWVzLT57JEhlYWRlckNvbHVtbn0sCiAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkU2VsZWN0ZWRWYWx1ZSwKICAgICAgICBEYXNoYm9hcmROYW1lID0+ICRTZWxmLT57TmFtZX0sCiAgICApOwoKICAgIHJldHVybiAkQ29sdW1uRmlsdGVySlNPTjsKCn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlU2VhcmNoUGFyYW1zID0gJFNlbGYtPl9TZWFyY2hQYXJhbXNHZXQoJVBhcmFtKTsKICAgIG15IEBDb2x1bW5zICAgICAgPSBAeyAkU2VhcmNoUGFyYW1ze0NvbHVtbnN9IH07CiAgICBteSAlVGlja2V0U2VhcmNoID0gJXsgJFNlYXJjaFBhcmFtc3tUaWNrZXRTZWFyY2h9IH07CiAgICBteSAlVGlja2V0U2VhcmNoU3VtbWFyeTsKCiAgICBteSAkVXNlck9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgbXkgJVByZWZlcmVuY2VzID0gJFVzZXJPYmplY3QtPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgaWYgbm8gc2VhcmNoIHRlbXBsYXRlIGlzIHNldCBub3RoaW5nIHdpbGwgYmUgZm91bmQKICAgIG15ICRQcmVmU2VhcmNoVGVtcGxhdGUgPSAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZlNlYXJjaFRlbXBsYXRlfSB9ID8gJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZTZWFyY2hUZW1wbGF0ZX0gfSA6ICcnOwogICAgbXkgJENhY2hlS2V5ICAgICAgICAgICA9IGpvaW4gJy0nLCAkU2VsZi0+e05hbWV9LCAkU2VsZi0+e0FjdGlvbn0sICRTZWxmLT57UGFnZVNob3dufSwgJFNlbGYtPntTdGFydEhpdH0sICRTZWxmLT57VXNlcklEfSwgJFByZWZTZWFyY2hUZW1wbGF0ZTsKICAgIG15ICRDYWNoZUNvbHVtbnMgICAgICAgPSBqb2luKAogICAgICAgICcsJywKICAgICAgICBtYXAgeyAkXyAuICc9PicgLiAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0tPnskX30gfSBzb3J0IGtleXMgJXsgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9IH0KICAgICk7CiAgICAkQ2FjaGVLZXkgLj0gJy0nIC4gJENhY2hlQ29sdW1ucyBpZiAkQ2FjaGVDb2x1bW5zOwoKICAgICMgSWYgU29ydEJ5IHBhcmFtZXRlciBpcyBub3QgZGVmaW5lZCwgc2V0IHRvIHZhbHVlIGZyb20gJVRpY2tldFNlYXJjaCwgb3RoZXJ3aXNlIHNldCB0byBkZWZhdWx0IHZhbHVlICdBZ2UnLgogICAgaWYgKCAhZGVmaW5lZCAkU2VsZi0+e1NvcnRCeX0gKSB7CiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXRTZWFyY2h7U29ydEJ5fSAmJiAkU2VsZi0+e1ZhbGlkU29ydGFibGVDb2x1bW5zfS0+eyAkVGlja2V0U2VhcmNoe1NvcnRCeX0gfSApIHsKICAgICAgICAgICAgJFNlbGYtPntTb3J0Qnl9ID0gJFRpY2tldFNlYXJjaHtTb3J0Qnl9OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPntTb3J0Qnl9ID0gJ0FnZSc7CiAgICAgICAgfQogICAgfQoKICAgICRDYWNoZUtleSAuPSAnLScgLiAkU2VsZi0+e1NvcnRCeX0gaWYgZGVmaW5lZCAkU2VsZi0+e1NvcnRCeX07CgogICAgIyBTZXQgT3JkZXJCeSBwYXJhbWV0ZXIgdG8gdGhlIHNlYXJjaC4KICAgIG15ICRJc0NhY2hlRm9yVXNlID0gMDsKICAgIGlmICggJFNlbGYtPntPcmRlckJ5fSApIHsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57QWRkRmlsdGVyc30KICAgICAgICAgICAgfHwgJFNlbGYtPntUYWJBY3Rpb259CiAgICAgICAgICAgIHx8ICFkZWZpbmVkICRTZWxmLT57U29ydGluZ0NvbHVtbn0KICAgICAgICAgICAgfHwgJFNlbGYtPntTb3J0aW5nQ29sdW1ufSBuZSAkU2VsZi0+e1NvcnRCeX0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFRpY2tldFNlYXJjaHtPcmRlckJ5fSA9ICRTZWxmLT57T3JkZXJCeX07CiAgICAgICAgICAgICRJc0NhY2hlRm9yVXNlID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gPSAkU2VsZi0+e09yZGVyQnl9IGVxICdVcCcgPyAnRG93bicgOiAnVXAnOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNldCBvcmRlciBmb3IgYmxvY2tzLgogICAgJFRpY2tldFNlYXJjaHtPcmRlckJ5fSA9ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gfHwgJ0Rvd24nOwoKICAgICMgU2V0IHByZXZpb3VzIHNvcnRpbmcgY29sdW1uIHBhcmFtZXRlciBmb3IgYWxsIGNvbHVtbnMuCiAgICAkUGFyYW17U29ydGluZ0NvbHVtbn0gPSAkU2VsZi0+e1NvcnRCeX07CgogICAgJENhY2hlS2V5IC49ICctJyAuICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gaWYgZGVmaW5lZCAkVGlja2V0U2VhcmNoe09yZGVyQnl9OwoKICAgICMgQ3VzdG9tZXJJbmZvcm1hdGlvbkNlbnRlciBzaG93cyBkYXRhIHBlciBDdXN0b21lcklECiAgICBpZiAoICRQYXJhbXtDdXN0b21lcklEfSApIHsKICAgICAgICAkQ2FjaGVLZXkgLj0gJy0nIC4gJFBhcmFte0N1c3RvbWVySUR9OwogICAgfQoKICAgICMgQ3VzdG9tZXJVc2VySW5mb3JtYXRpb25DZW50ZXIgc2hvd3MgZGF0YSBwZXIgQ3VzdG9tZXJVc2VySUQKICAgIGlmICggJFBhcmFte0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAkQ2FjaGVLZXkgLj0gJy0nIC4gJFBhcmFte0N1c3RvbWVyVXNlcklEfTsKICAgIH0KCiAgICAjIGdldCBjYWNoZSBvYmplY3QKICAgIG15ICRDYWNoZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgICMgY2hlY2sgY2FjaGUKICAgIG15ICRUaWNrZXRJRHMgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICBUeXBlID0+ICdEYXNoYm9hcmQnLAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5IC4gJy0nIC4gJFNlbGYtPntGaWx0ZXJ9IC4gJy1MaXN0JywKICAgICk7CgogICAgIyBmaW5kIGFuZCBzaG93IHRpY2tldCBsaXN0CiAgICBteSAkQ2FjaGVVc2VkID0gMTsKCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgIGlmICggISRUaWNrZXRJRHMgKSB7CgogICAgICAgICMgcXVvdGUgYWxsIEN1c3RvbWVySURzCiAgICAgICAgaWYgKCAkVGlja2V0U2VhcmNoe0N1c3RvbWVySUR9ICkgewogICAgICAgICAgICAkVGlja2V0U2VhcmNoe0N1c3RvbWVySUR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlF1ZXJ5U3RyaW5nRXNjYXBlKAogICAgICAgICAgICAgICAgUXVlcnlTdHJpbmcgPT4gJFRpY2tldFNlYXJjaHtDdXN0b21lcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgYWRkIHNvcnQgYnkgcGFyYW1ldGVyIHRvIHRoZSBzZWFyY2gKICAgICAgICBpZiAoICFkZWZpbmVkICRUaWNrZXRTZWFyY2h7U29ydEJ5fSB8fCAhJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPnsgJFRpY2tldFNlYXJjaHtTb3J0Qnl9IH0gKSB7CiAgICAgICAgICAgIGlmICggJFNlbGYtPntTb3J0Qnl9ICYmICRTZWxmLT57VmFsaWRTb3J0YWJsZUNvbHVtbnN9LT57ICRTZWxmLT57U29ydEJ5fSB9ICkgewogICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHtTb3J0Qnl9ID0gJFNlbGYtPntTb3J0Qnl9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHtTb3J0Qnl9ID0gJ0FnZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRDYWNoZVVzZWQgPSAkSXNDYWNoZUZvclVzZSA/IDEgOiAwOwoKICAgICAgICAjIGFkZCBwcm9jZXNzIG1hbmFnZW1lbnQgc2VhcmNoIHRlcm1zCiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9ICkgewogICAgICAgICAgICAkVGlja2V0U2VhcmNoeyAnRHluYW1pY0ZpZWxkXycgLiAkU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50UHJvY2Vzc0lEfSB9ID0gewogICAgICAgICAgICAgICAgTGlrZSA9PiAkU2VsZi0+e1Byb2Nlc3NMaXN0fSwKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIG15IEBUaWNrZXRJRHNBcnJheTsKICAgICAgICBpZiAoICEkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9IHx8IElzQXJyYXlSZWZXaXRoRGF0YSggJFNlbGYtPntQcm9jZXNzTGlzdH0gKSApIHsKCiAgICAgICAgICAgICMgQ29weSBvcmlnaW5hbCBjb2x1bW4gZmlsdGVyLgogICAgICAgICAgICBteSAlQ29sdW1uRmlsdGVyID0gJXsgJFNlbGYtPntDb2x1bW5GaWx0ZXJ9IHx8IHt9IH07CiAgICAgICAgICAgIEBUaWNrZXRJRHNBcnJheSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgIFJlc3VsdCA9PiAnQVJSQVknLAogICAgICAgICAgICAgICAgJVRpY2tldFNlYXJjaCwKICAgICAgICAgICAgICAgICV7ICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyAkU2VsZi0+e0ZpbHRlcn0gfSB9LAogICAgICAgICAgICAgICAgJUNvbHVtbkZpbHRlciwKICAgICAgICAgICAgICAgIExpbWl0ID0+ICRTZWxmLT57UGFnZVNob3dufSArICRTZWxmLT57U3RhcnRIaXR9IC0gMSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgJFRpY2tldElEcyA9IFxAVGlja2V0SURzQXJyYXk7CiAgICB9CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJFN1bW1hcnkgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICBUeXBlID0+ICdEYXNoYm9hcmQnLAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5IC4gJy1TdW1tYXJ5JywKICAgICk7CgogICAgIyBJZiBubyBjYWNoZSBvciBuZXcgbGlzdCByZXN1bHQsIGRvIGNvdW50IGxvb2t1cC4KICAgIGlmICggISRTdW1tYXJ5IHx8ICEkQ2FjaGVVc2VkICkgewoKICAgICAgICAjIERlZmluZSB0aGUgc3VtbWFyeSB0eXBlcyBmb3Igd2hpY2ggbm8gY291bnQgaXMgbmVlZGVkLCBiZWNhdXNlIHdlIGhhdmUgbm8gb3V0cHV0LgogICAgICAgIG15ICVMb29rdXBOb0NvdW50U3VtbWFyeVR5cGUgPSAoCiAgICAgICAgICAgIEFzc2lnbmVkVG9DdXN0b21lclVzZXIgICAgPT4gMSwKICAgICAgICAgICAgQWNjZXNzaWJsZUZvckN1c3RvbWVyVXNlciA9PiAxLAogICAgICAgICk7CgogICAgICAgIFRZUEU6CiAgICAgICAgZm9yIG15ICRUeXBlICggc29ydCBrZXlzICVUaWNrZXRTZWFyY2hTdW1tYXJ5ICkgewogICAgICAgICAgICBuZXh0IFRZUEUgaWYgJExvb2t1cE5vQ291bnRTdW1tYXJ5VHlwZXskVHlwZX07CiAgICAgICAgICAgIG5leHQgVFlQRSBpZiAhJFRpY2tldFNlYXJjaFN1bW1hcnl7JFR5cGV9OwoKICAgICAgICAgICAgIyBDb3B5IG9yaWdpbmFsIGNvbHVtbiBmaWx0ZXIuCiAgICAgICAgICAgIG15ICVDb2x1bW5GaWx0ZXIgPSAleyAkU2VsZi0+e0NvbHVtbkZpbHRlcn0gfHwge30gfTsKCiAgICAgICAgICAgICMgYWRkIHByb2Nlc3MgbWFuYWdlbWVudCBzZWFyY2ggdGVybXMKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9ICkgewogICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHsgJ0R5bmFtaWNGaWVsZF8nIC4gJFNlbGYtPntQcm9jZXNzTWFuYWdlbWVudFByb2Nlc3NJRH0gfSA9IHsKICAgICAgICAgICAgICAgICAgICBMaWtlID0+ICRTZWxmLT57UHJvY2Vzc0xpc3R9LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFN1bW1hcnktPnskVHlwZX0gPSAwOwoKICAgICAgICAgICAgaWYgKCAhJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSB8fCBJc0FycmF5UmVmV2l0aERhdGEoICRTZWxmLT57UHJvY2Vzc0xpc3R9ICkgKSB7CgogICAgICAgICAgICAgICAgIyBDaGFuZ2UgZmlsdGVyIG5hbWUgYWNjb3JkaW5nbHkuCiAgICAgICAgICAgICAgICAkU3VtbWFyeS0+eyRUeXBlfSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICAgICAgICAgICAgICAlVGlja2V0U2VhcmNoLAogICAgICAgICAgICAgICAgICAgICV7ICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyRUeXBlfSB9LAogICAgICAgICAgICAgICAgICAgICVDb2x1bW5GaWx0ZXIsCiAgICAgICAgICAgICAgICApIHx8IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgY2FjaGUKICAgIGlmICggISRDYWNoZVVzZWQgJiYgJFNlbGYtPntDb25maWd9LT57Q2FjaGVUVExMb2NhbH0gKSB7CiAgICAgICAgJENhY2hlT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIFR5cGUgID0+ICdEYXNoYm9hcmQnLAogICAgICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXkgLiAnLVN1bW1hcnknLAogICAgICAgICAgICBWYWx1ZSA9PiAkU3VtbWFyeSwKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDb25maWd9LT57Q2FjaGVUVExMb2NhbH0gKiA2MCwKICAgICAgICApOwogICAgICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAnRGFzaGJvYXJkJywKICAgICAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5IC4gJy0nIC4gJFNlbGYtPntGaWx0ZXJ9IC4gJy1MaXN0JywKICAgICAgICAgICAgVmFsdWUgPT4gJFRpY2tldElEcywKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDb25maWd9LT57Q2FjaGVUVExMb2NhbH0gKiA2MCwKICAgICAgICApOwogICAgfQoKICAgICMgU2V0IHRoZSBjc3MgY2xhc3MgZm9yIHRoZSBzZWxlY3RlZCBmaWx0ZXIgYW5kIGFkZGl0aW9uYWwgZmlsdGVyLgogICAgJFN1bW1hcnktPnsgJFNlbGYtPntGaWx0ZXJ9IC4gJzo6U2VsZWN0ZWQnIH0gPSAnU2VsZWN0ZWQnOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgdGlja2V0IGNvdW50cwogICAgIyBpZiB0aGUgc2VhcmNoIHRlbXBsYXRlIGlzIGludmFsaWQgKG51bGwgb3IgZGVsZXRlZCkgY291bnQgbm8gdGlja2V0cwogICAgaWYgKCAkVGlja2V0U2VhcmNoe0ludmFsaWRTZWFyY2hUZW1wbGF0ZX0gKSB7CiAgICAgICAgJFN1bW1hcnktPntBbGx9ID0gMDsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRmlsdGVyJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyAkU2VsZi0+e0NvbmZpZ30gfSwKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICBQcm9maWxlVGVtcGxhdGVOYW1lID0+ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmU2VhcmNoVGVtcGxhdGV9IH0sCiAgICAgICAgICAgICV7JFN1bW1hcnl9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZTZWFyY2hUZW1wbGF0ZX0gfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU2VsZWN0ZWRUZW1wbGF0ZUFuZFRpY2tldHNDb3VudCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgUHJvZmlsZVRlbXBsYXRlTmFtZSA9PiAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZlNlYXJjaFRlbXBsYXRlfSB9LAogICAgICAgICAgICAgICAgQ291bnQgICAgICAgICAgICAgICA9PiAkU3VtbWFyeS0+e0FsbH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1RlbXBsYXRlU2VsZWN0ZWQnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBhZGQgcGFnZSBuYXYgYmFyCiAgICBteSAkVG90YWwgPSAkU3VtbWFyeS0+eyAkU2VsZi0+e0ZpbHRlcn0gfSB8fCAwOwoKICAgIG15ICVHZXRDb2x1bW5GaWx0ZXIgPSAkU2VsZi0+e0dldENvbHVtbkZpbHRlcn0gPyAleyAkU2VsZi0+e0dldENvbHVtbkZpbHRlcn0gfSA6ICgpOwoKICAgIG15ICRDb2x1bW5GaWx0ZXJMaW5rID0gJyc7CiAgICBDT0xVTU5OQU1FOgogICAgZm9yIG15ICRDb2x1bW5OYW1lICggc29ydCBrZXlzICVHZXRDb2x1bW5GaWx0ZXIgKSB7CiAgICAgICAgbmV4dCBDT0xVTU5OQU1FIGlmICEkQ29sdW1uTmFtZTsKICAgICAgICBuZXh0IENPTFVNTk5BTUUgaWYgISRHZXRDb2x1bW5GaWx0ZXJ7JENvbHVtbk5hbWV9OwogICAgICAgICRDb2x1bW5GaWx0ZXJMaW5rCiAgICAgICAgICAgIC49ICc7JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJ0NvbHVtbkZpbHRlcicgLiAkQ29sdW1uTmFtZSApCiAgICAgICAgICAgIC4gJz0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSggJEdldENvbHVtbkZpbHRlcnskQ29sdW1uTmFtZX0gKTsKICAgIH0KCiAgICBteSAkTGlua1BhZ2UgPQogICAgICAgICdTdWJhY3Rpb249RWxlbWVudDtOYW1lPScgLiAkU2VsZi0+e05hbWV9CiAgICAgICAgLiAnO0ZpbHRlcj0nIC4gJFNlbGYtPntGaWx0ZXJ9CiAgICAgICAgLiAnO1NvcnRCeT0nIC4gKCAkU2VsZi0+e1NvcnRCeX0gfHwgJycgKQogICAgICAgIC4gJztPcmRlckJ5PScgLiAoICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gfHwgJycgKQogICAgICAgIC4gJENvbHVtbkZpbHRlckxpbmsKICAgICAgICAuICc7JzsKCiAgICBpZiAoICRQYXJhbXtDdXN0b21lcklEfSApIHsKICAgICAgICAkTGlua1BhZ2UgLj0gIkN1c3RvbWVySUQ9JFBhcmFte0N1c3RvbWVySUR9OyI7CiAgICB9CiAgICBpZiAoICRQYXJhbXtDdXN0b21lclVzZXJJRH0gKSB7CiAgICAgICAgJExpbmtQYWdlIC49ICJDdXN0b21lclVzZXJJRD0kUGFyYW17Q3VzdG9tZXJVc2VySUR9OyI7CiAgICB9CgogICAgbXkgJVBhZ2VOYXYgPSAkTGF5b3V0T2JqZWN0LT5QYWdlTmF2QmFyKAogICAgICAgIFN0YXJ0SGl0ICAgID0+ICRTZWxmLT57U3RhcnRIaXR9LAogICAgICAgIFBhZ2VTaG93biAgID0+ICRTZWxmLT57UGFnZVNob3dufSwKICAgICAgICBBbGxIaXRzICAgICA9PiAkVG90YWwgfHwgMSwKICAgICAgICBBY3Rpb24gICAgICA9PiAnQWN0aW9uPScgLiAkTGF5b3V0T2JqZWN0LT57QWN0aW9ufSwKICAgICAgICBMaW5rICAgICAgICA9PiAkTGlua1BhZ2UsCiAgICAgICAgQUpBWFJlcGxhY2UgPT4gJ0Rhc2hib2FyZCcgLiAkU2VsZi0+e05hbWV9LAogICAgICAgIElEUHJlZml4ICAgID0+ICdEYXNoYm9hcmQnIC4gJFNlbGYtPntOYW1lfSwKICAgICAgICBBSkFYICAgICAgICA9PiAkUGFyYW17QUpBWH0sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0ZpbHRlck5hdkJhcicsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAogICAgICAgICAgICBOYW1lID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICVQYWdlTmF2LAogICAgICAgIH0sCiAgICApOwoKICAgICMgc2hvdyB0YWJsZSBoZWFkZXIKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXInLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgZGVmaW5lIHdoaWNoIG1ldGEgaXRlbXMgd2lsbCBiZSBzaG93bgogICAgbXkgQE1ldGFJdGVtcyA9ICRMYXlvdXRPYmplY3QtPlRpY2tldE1ldGFJdGVtc0NvdW50KCk7CgogICAgIyByZW1vdmUgKC0pIGZyb20gbmFtZSBmb3IgSlMgY29uZmlnCiAgICBteSAkV2lkZ2V0TmFtZSA9ICRTZWxmLT57TmFtZX07CiAgICAkV2lkZ2V0TmFtZSA9fiBzey19e31nOwoKICAgICMgc2hvdyBub24tbGFiZWxlZCB0YWJsZSBoZWFkZXJzCiAgICBteSAkQ1NTID0gJyc7CgogICAgIyBTZW5kIGRhdGEgdG8gSlMgZm9yIGluaXQgY29udGFpbmVyLgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdJbml0Q29udGFpbmVyRGFzaGJvYXJkJyAuICRTZWxmLT57TmFtZX0sCiAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICBTb3J0QnkgID0+ICRTZWxmLT57U29ydEJ5fSB8fCAnQWdlJywKICAgICAgICAgICAgT3JkZXJCeSA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgIH0sCiAgICApOwoKICAgIGZvciBteSAkSXRlbSAoQE1ldGFJdGVtcykgewogICAgICAgICRDU1MgPSAnJzsKICAgICAgICBteSAkVGl0bGUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEl0ZW0pOwoKICAgICAgICAjIHNldCB0aXRsZSBkZXNjcmlwdGlvbgogICAgICAgIGlmICggJFNlbGYtPntTb3J0Qnl9ICYmICRTZWxmLT57U29ydEJ5fSBlcSAkSXRlbSApIHsKICAgICAgICAgICAgbXkgJFRpdGxlRGVzYyA9ICcnOwogICAgICAgICAgICBpZiAoICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gZXEgJ0Rvd24nICkgewogICAgICAgICAgICAgICAgJENTUyAuPSAnIFNvcnREZXNjZW5kaW5nTGFyZ2UnOwogICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnc29ydGVkIGRlc2NlbmRpbmcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRDU1MgLj0gJyBTb3J0QXNjZW5kaW5nTGFyZ2UnOwogICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnc29ydGVkIGFzY2VuZGluZycpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkVGl0bGVEZXNjID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRUaXRsZURlc2MpOwogICAgICAgICAgICAkVGl0bGUgLj0gJywgJyAuICRUaXRsZURlc2M7CiAgICAgICAgfQoKICAgICAgICAjIGFkZCBzdXJyb3VuZGluZyBjb250YWluZXIKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnR2VuZXJhbE92ZXJ2aWV3SGVhZGVyJywKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YScsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgQ1NTICAgICAgICAgICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkSXRlbSwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIGlmICggJEl0ZW0gZXEgJ05ldyBBcnRpY2xlJyApIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlck1ldGFFbXB0eScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICRJdGVtLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICBLZXkgICA9PiAnSGVhZGVyTWV0YScgLiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJEl0ZW0sCiAgICAgICAgICAgICAgICAgICAgU29ydGluZ0NvbHVtbiAgICA9PiAkUGFyYW17U29ydGluZ0NvbHVtbn0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YUxpbmsnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkSXRlbSwKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgID0+ICRUaXRsZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2VuZCBkYXRhIHRvIEpTCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ0hlYWRlckNvbHVtbicgLiAkV2lkZ2V0TmFtZSwKICAgICAgICBWYWx1ZSA9PiBcQENvbHVtbnMKICAgICk7CgogICAgIyBzaG93IGFsbCBuZWVkZWQgaGVhZGVycwogICAgSEVBREVSQ09MVU1OOgogICAgZm9yIG15ICRIZWFkZXJDb2x1bW4gKEBDb2x1bW5zKSB7CgogICAgICAgICMgc2tpcCBDdXN0b21lcklEIGlmIEN1c3RvbWVyIEluZm9ybWF0aW9uIENlbnRlcgogICAgICAgIGlmICggJFNlbGYtPntBY3Rpb259IGVxICdBZ2VudEN1c3RvbWVySW5mb3JtYXRpb25DZW50ZXInICYmICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVySUQnICkgewogICAgICAgICAgICBuZXh0IEhFQURFUkNPTFVNTjsKICAgICAgICB9CgogICAgICAgIGlmICggJEhlYWRlckNvbHVtbiAhfiBte1xBIER5bmFtaWNGaWVsZF99eG1zICkgewoKICAgICAgICAgICAgJENTUyA9ICcnOwogICAgICAgICAgICBteSAkVGl0bGUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEhlYWRlckNvbHVtbik7CgogICAgICAgICAgICAjIFNldCB0aXRsZSBkZXNjcmlwdGlvbi4KICAgICAgICAgICAgaWYgKCAkU2VsZi0+e1NvcnRCeX0gJiYgJFNlbGYtPntTb3J0Qnl9IGVxICRIZWFkZXJDb2x1bW4gKSB7CiAgICAgICAgICAgICAgICBteSAkVGl0bGVEZXNjID0gJyc7CiAgICAgICAgICAgICAgICBpZiAoICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gZXEgJ0Rvd24nICkgewogICAgICAgICAgICAgICAgICAgICRDU1MgLj0gJyBTb3J0RGVzY2VuZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAgICAgICAkVGl0bGVEZXNjID0gVHJhbnNsYXRhYmxlKCdzb3J0ZWQgZGVzY2VuZGluZycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJENTUyAuPSAnIFNvcnRBc2NlbmRpbmdMYXJnZSc7CiAgICAgICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnc29ydGVkIGFzY2VuZGluZycpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRUaXRsZURlc2MgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJFRpdGxlRGVzYyk7CiAgICAgICAgICAgICAgICAkVGl0bGUgLj0gJywgJyAuICRUaXRsZURlc2M7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdHJhbnNsYXRlIHRoZSBjb2x1bW4gbmFtZSB0byB3cml0ZSBpdCBpbiB0aGUgY3VycmVudCBsYW5ndWFnZQogICAgICAgICAgICBteSAkVHJhbnNsYXRlZFdvcmQ7CiAgICAgICAgICAgIGlmICggJEhlYWRlckNvbHVtbiBlcSAnRXNjYWxhdGlvblRpbWUnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdTZXJ2aWNlIFRpbWUnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0VzY2FsYXRpb25SZXNwb25zZVRpbWUnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdGaXJzdCBSZXNwb25zZSBUaW1lJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdFc2NhbGF0aW9uU29sdXRpb25UaW1lJyApIHsKICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnU29sdXRpb24gVGltZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnRXNjYWxhdGlvblVwZGF0ZVRpbWUnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdVcGRhdGUgVGltZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnUGVuZGluZ1RpbWUnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdQZW5kaW5nIHRpbGwnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVyQ29tcGFueU5hbWUnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDdXN0b21lciBOYW1lJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdDdXN0b21lcklEJyApIHsKICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQ3VzdG9tZXIgSUQnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVyTmFtZScgKSB7CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0N1c3RvbWVyIFVzZXIgTmFtZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnQ3VzdG9tZXJVc2VySUQnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDdXN0b21lciBVc2VyIElEJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEhlYWRlckNvbHVtbik7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkIHN1cnJvdW5kaW5nIGNvbnRhaW5lcgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0dlbmVyYWxPdmVydmlld0hlYWRlcicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlclRpY2tldEhlYWRlcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdUaWNrZXROdW1iZXInICkgewoKICAgICAgICAgICAgICAgICMgc2VuZCBkYXRhIHRvIEpTCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJ1RpY2tldE51bWJlckNvbHVtbicgLiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgICAgICBTb3J0aW5nQ29sdW1uID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyVGlja2V0TnVtYmVyQ29sdW1uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICA9PiAkQ1NTIHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBuZXh0IEhFQURFUkNPTFVNTjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJEZpbHRlclRpdGxlICAgICA9ICRUcmFuc2xhdGVkV29yZDsKICAgICAgICAgICAgbXkgJEZpbHRlclRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnZmlsdGVyIG5vdCBhY3RpdmUnKTsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0gJiYgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9LT57JEhlYWRlckNvbHVtbn0gKSB7CiAgICAgICAgICAgICAgICAkQ1NTIC49ICcgRmlsdGVyQWN0aXZlJzsKICAgICAgICAgICAgICAgICRGaWx0ZXJUaXRsZURlc2MgPSBUcmFuc2xhdGFibGUoJ2ZpbHRlciBhY3RpdmUnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkRmlsdGVyVGl0bGVEZXNjID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRGaWx0ZXJUaXRsZURlc2MpOwogICAgICAgICAgICAkRmlsdGVyVGl0bGUgLj0gJywgJyAuICRGaWx0ZXJUaXRsZURlc2M7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4nLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJEhlYWRlckNvbHVtbiAgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIEhlYWRlck5hbWVUcmFuc2xhdGVkID0+ICRUcmFuc2xhdGVkV29yZCB8fCAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgICAgID0+ICRDU1MgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHZlcmlmeSBpZiBjb2x1bW4gaXMgZmlsdGVyYWJsZSBhbmQgc29ydGFibGUKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPnskSGVhZGVyQ29sdW1ufQogICAgICAgICAgICAgICAgJiYgJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+eyRIZWFkZXJDb2x1bW59CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICBteSAkQ3NzOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVySUQnCiAgICAgICAgICAgICAgICAgICAgfHwgJEhlYWRlckNvbHVtbiBlcSAnUmVzcG9uc2libGUnCiAgICAgICAgICAgICAgICAgICAgfHwgJEhlYWRlckNvbHVtbiBlcSAnT3duZXInCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRDc3MgPSAnSGlkZGVuJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHZhcmlhYmxlIHRvIHNhdmUgdGhlIGZpbHRlcidzIEhUTUwgY29kZQogICAgICAgICAgICAgICAgbXkgJENvbHVtbkZpbHRlckhUTUwgPSAkU2VsZi0+X0luaXRpYWxDb2x1bW5GaWx0ZXIoCiAgICAgICAgICAgICAgICAgICAgQ29sdW1uTmFtZSA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgIENzcyAgICAgICAgPT4gJENzcywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAnQ29sdW1uRmlsdGVyU29ydCcgLiAkSGVhZGVyQ29sdW1uIC4gJFdpZGdldE5hbWUsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJ0FnZScsCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydGluZ0NvbHVtbiAgICA9PiAkUGFyYW17U29ydGluZ0NvbHVtbn0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmsnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgICAgID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgICAgID0+ICRDU1MsCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlck5hbWVUcmFuc2xhdGVkID0+ICRUcmFuc2xhdGVkV29yZCB8fCAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBDb2x1bW5GaWx0ZXJTdHJnICAgICA9PiAkQ29sdW1uRmlsdGVySFRNTCwKICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9IHx8ICdBZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlclRpdGxlICAgICAgICAgID0+ICRGaWx0ZXJUaXRsZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVySUQnICkgewoKICAgICAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJ0N1c3RvbWVySURBdXRvY29tcGxldGUnLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVyeURlbGF5ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heFJlc3VsdHNEaXNwbGF5ZWQgPT4gMjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5RdWVyeUxlbmd0aCAgICAgID0+IDIsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lcklEU2VhcmNoJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnUmVzcG9uc2libGUnIHx8ICRIZWFkZXJDb2x1bW4gZXEgJ093bmVyJyApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdVc2VyQXV0b2NvbXBsZXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVlcnlEZWxheSAgICAgICAgICA9PiAxMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhSZXN1bHRzRGlzcGxheWVkID0+IDIwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWluUXVlcnlMZW5ndGggICAgICA9PiAyLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rVXNlclNlYXJjaCcsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyB2ZXJpZnkgaWYgY29sdW1uIGlzIGp1c3QgZmlsdGVyYWJsZQogICAgICAgICAgICBlbHNpZiAoICRTZWxmLT57VmFsaWRGaWx0ZXJhYmxlQ29sdW1uc30tPnskSGVhZGVyQ29sdW1ufSApIHsKCiAgICAgICAgICAgICAgICBteSAkQ3NzOwogICAgICAgICAgICAgICAgaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdDdXN0b21lclVzZXJJRCcgKSB7CiAgICAgICAgICAgICAgICAgICAgJENzcyA9ICdIaWRkZW4nOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgdmFyaWFibGUgdG8gc2F2ZSB0aGUgZmlsdGVyJ3MgSFRNTCBjb2RlCiAgICAgICAgICAgICAgICBteSAkQ29sdW1uRmlsdGVySFRNTCA9ICRTZWxmLT5fSW5pdGlhbENvbHVtbkZpbHRlcigKICAgICAgICAgICAgICAgICAgICBDb2x1bW5OYW1lID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgQ3NzICAgICAgICA9PiAkQ3NzLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5GaWx0ZXInIC4gJEhlYWRlckNvbHVtbiAuICRXaWRnZXROYW1lLAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9IHx8ICdBZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ1NTICAgICAgICAgICAgICAgICAgPT4gJENTUywKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRXb3JkIHx8ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbHVtbkZpbHRlclN0cmcgICAgID0+ICRDb2x1bW5GaWx0ZXJIVE1MLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlclRpdGxlICAgICAgICAgID0+ICRGaWx0ZXJUaXRsZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVyVXNlcklEJyApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDdXN0b21lclVzZXJBdXRvY29tcGxldGUnLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVyeURlbGF5ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heFJlc3VsdHNEaXNwbGF5ZWQgPT4gMjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5RdWVyeUxlbmd0aCAgICAgID0+IDIsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lclVzZXJTZWFyY2gnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdmVyaWZ5IGlmIGNvbHVtbiBpcyBqdXN0IHNvcnRhYmxlCiAgICAgICAgICAgIGVsc2lmICggJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPnskSGVhZGVyQ29sdW1ufSApIHsKCiAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5Tb3J0YWJsZScgLiAkSGVhZGVyQ29sdW1uIC4gJFdpZGdldE5hbWUsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgICAgICBTb3J0aW5nQ29sdW1uICAgID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uTGluaycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ1NTICAgICAgICAgICAgICAgICAgPT4gJENTUywKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRXb3JkIHx8ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgID0+ICRTZWxmLT57U29ydEJ5fSB8fCAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRW1wdHknLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlck5hbWVUcmFuc2xhdGVkID0+ICRUcmFuc2xhdGVkV29yZCB8fCAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lICAgICA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgRHluYW1pYyBmaWVsZHMKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZENvbmZpZzsKICAgICAgICAgICAgbXkgJERGQ29sdW1uID0gJEhlYWRlckNvbHVtbjsKICAgICAgICAgICAgJERGQ29sdW1uID1+IHMvRHluYW1pY0ZpZWxkXy8vZzsKICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICBmb3IgbXkgJERGQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJERGQ29uZmlnKTsKICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICRERkNvbmZpZy0+e05hbWV9IG5lICRERkNvbHVtbjsKCiAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkQ29uZmlnID0gJERGQ29uZmlnOwogICAgICAgICAgICAgICAgbGFzdCBEWU5BTUlDRklFTEQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbmV4dCBIRUFERVJDT0xVTU4gaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgbXkgJExhYmVsID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfTsKCiAgICAgICAgICAgIG15ICRUcmFuc2xhdGVkTGFiZWwgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJExhYmVsKTsKCiAgICAgICAgICAgIG15ICREeW5hbWljRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICAgICAgbXkgJENTUyAgICAgICAgICAgICA9ICcnOwogICAgICAgICAgICBteSAkRmlsdGVyVGl0bGUgICAgID0gJExhYmVsOwogICAgICAgICAgICBteSAkRmlsdGVyVGl0bGVEZXNjID0gVHJhbnNsYXRhYmxlKCdmaWx0ZXIgbm90IGFjdGl2ZScpOwogICAgICAgICAgICBpZiAoICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0fSAmJiBkZWZpbmVkICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0fS0+eyREeW5hbWljRmllbGROYW1lfSApIHsKICAgICAgICAgICAgICAgICRDU1MgLj0gJ0ZpbHRlckFjdGl2ZSAnOwogICAgICAgICAgICAgICAgJEZpbHRlclRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnZmlsdGVyIGFjdGl2ZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRGaWx0ZXJUaXRsZURlc2MgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEZpbHRlclRpdGxlRGVzYyk7CiAgICAgICAgICAgICRGaWx0ZXJUaXRsZSAuPSAnLCAnIC4gJEZpbHRlclRpdGxlRGVzYzsKCiAgICAgICAgICAgICMgZ2V0IGZpZWxkIHNvcnRhYmxlIGNvbmRpdGlvbgogICAgICAgICAgICBteSAkSXNTb3J0YWJsZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNTb3J0YWJsZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNldCB0aXRsZQogICAgICAgICAgICBteSAkVGl0bGUgPSAkTGFiZWw7CgogICAgICAgICAgICAjIGFkZCBzdXJyb3VuZGluZyBjb250YWluZXIKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdHZW5lcmFsT3ZlcnZpZXdIZWFkZXInLAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJUaWNrZXRIZWFkZXInLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkSXNTb3J0YWJsZSkgewogICAgICAgICAgICAgICAgbXkgJFRpdGxlRGVzYyA9ICcnOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRTZWxmLT57U29ydEJ5fQogICAgICAgICAgICAgICAgICAgICYmICggJFNlbGYtPntTb3J0Qnl9IGVxICggJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9ICkgKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gZXEgJ0Rvd24nICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydERlc2NlbmRpbmdMYXJnZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaXRsZURlc2MgPSBUcmFuc2xhdGFibGUoJ3NvcnRlZCBkZXNjZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydEFzY2VuZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnc29ydGVkIGFzY2VuZGluZycpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkVGl0bGVEZXNjKTsKICAgICAgICAgICAgICAgICAgICAkVGl0bGUgLj0gJywgJyAuICRUaXRsZURlc2M7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJER5bmFtaWNGaWVsZE5hbWUgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgPT4gJENTUyAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBjaGVjayBpZiB0aGUgZHluYW1pYyBmaWVsZCBpcyBzb3J0YWJsZSBhbmQgZmlsdGVyYWJsZSAoc29ydGFibGUgY2hlY2sgd2FzIG1hZGUgYmVmb3JlKQogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57JER5bmFtaWNGaWVsZE5hbWV9ICkgewoKICAgICAgICAgICAgICAgICAgICAjIHZhcmlhYmxlIHRvIHNhdmUgdGhlIGZpbHRlcidzIEhUTUwgY29kZQogICAgICAgICAgICAgICAgICAgIG15ICRDb2x1bW5GaWx0ZXJIVE1MID0gJFNlbGYtPl9Jbml0aWFsQ29sdW1uRmlsdGVyKAogICAgICAgICAgICAgICAgICAgICAgICBDb2x1bW5OYW1lID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCAgICAgID0+ICRMYWJlbCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJ0NvbHVtbkZpbHRlclNvcnQnIC4gJER5bmFtaWNGaWVsZE5hbWUgLiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9IHx8ICdBZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydGluZ0NvbHVtbiAgICA9PiAkUGFyYW17U29ydGluZ0NvbHVtbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBvdXRwdXQgc29ydGFibGUgYW5kIGZpbHRlcmFibGUgZHluYW1pYyBmaWVsZAogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRmlsdGVyTGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJER5bmFtaWNGaWVsZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRMYWJlbCB8fCAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbHVtbkZpbHRlclN0cmcgICAgID0+ICRDb2x1bW5GaWx0ZXJIVE1MLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgID0+ICRTZWxmLT57U29ydEJ5fSB8fCAnQWdlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXJUaXRsZSAgICAgICAgICA9PiAkRmlsdGVyVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIG90aGVyd2lzZSB0aGUgZHluYW1pYyBmaWVsZCBpcyBvbmx5IHNvcnRhYmxlIChzb3J0YWJsZSBjaGVjayB3YXMgbWFkZSBiZWZvcmUpCiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5Tb3J0YWJsZScgLiAkRHluYW1pY0ZpZWxkTmFtZSAuICRXaWRnZXROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJER5bmFtaWNGaWVsZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0aW5nQ29sdW1uICAgID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIG91dHB1dCBzb3J0YWJsZSBkeW5hbWljIGZpZWxkCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5MaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lICAgICA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgICAgID0+ICRDU1MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJOYW1lVHJhbnNsYXRlZCA9PiAkVHJhbnNsYXRlZExhYmVsIHx8ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgID0+ICRTZWxmLT57U29ydEJ5fSB8fCAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXJUaXRsZSAgICAgICAgICA9PiAkRmlsdGVyVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB0aGUgZHluYW1pYyBmaWVsZCB3YXMgbm90IHNvcnRhYmxlIChjaGVjayB3YXMgbWFkZSBhbmQgZmFpbCBiZWZvcmUpCiAgICAgICAgICAgICMgaXQgbWlnaHQgYmUgZmlsdGVyYWJsZQogICAgICAgICAgICBlbHNpZiAoICRTZWxmLT57VmFsaWRGaWx0ZXJhYmxlQ29sdW1uc30tPnskRHluYW1pY0ZpZWxkTmFtZX0gKSB7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJER5bmFtaWNGaWVsZE5hbWUgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgPT4gJENTUyAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgdmFyaWFibGUgdG8gc2F2ZSB0aGUgZmlsdGVyJ3MgSFRNTCBjb2RlCiAgICAgICAgICAgICAgICBteSAkQ29sdW1uRmlsdGVySFRNTCA9ICRTZWxmLT5fSW5pdGlhbENvbHVtbkZpbHRlcigKICAgICAgICAgICAgICAgICAgICBDb2x1bW5OYW1lID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgIExhYmVsICAgICAgPT4gJExhYmVsLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5GaWx0ZXInIC4gJER5bmFtaWNGaWVsZE5hbWUgLiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJER5bmFtaWNGaWVsZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJ0FnZScsCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIG91dHB1dCBmaWx0ZXJhYmxlIChub3Qgc29ydGFibGUpIGR5bmFtaWMgZmllbGQKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgICAgID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJOYW1lVHJhbnNsYXRlZCA9PiAkVHJhbnNsYXRlZExhYmVsIHx8ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBDb2x1bW5GaWx0ZXJTdHJnICAgICA9PiAkQ29sdW1uRmlsdGVySFRNTCwKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXJUaXRsZSAgICAgICAgICA9PiAkRmlsdGVyVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIHRoZSBmaWVsZCBpcyBub3QgZmlsdGVyYWJsZSBhbmQgbm90IHNvcnRhYmxlCiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICREeW5hbWljRmllbGROYW1lIHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgID0+ICRDU1MgICAgICAgICAgICAgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgb3V0cHV0IHBsYWluIGR5bmFtaWMgZmllbGQgaGVhZGVyIChub3QgZmlsdGVyYWJsZSwgbm90IHNvcnRhYmxlKQogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkVtcHR5JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJOYW1lVHJhbnNsYXRlZCA9PiAkVHJhbnNsYXRlZExhYmVsIHx8ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lICAgICA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ1NTICAgICAgICAgICAgICAgICAgPT4gJENTUywKICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgc2hvdyB0aWNrZXRzCiAgICBteSAkQ291bnQgPSAwOwoKICAgICMgaWYgdGhlIHNlYXJjaCB0ZW1wbGF0ZSBpcyBpbnZhbGlkIChudWxsIG9yIGRlbGV0ZWQpIGxpc3Qgbm8gdGlja2V0cwogICAgaWYgKCAhJFRpY2tldFNlYXJjaHtJbnZhbGlkU2VhcmNoVGVtcGxhdGV9ICkgewoKICAgICAgICBUSUNLRVRJRDoKICAgICAgICBmb3IgbXkgJFRpY2tldElEICggQHskVGlja2V0SURzfSApIHsKICAgICAgICAgICAgJENvdW50Kys7CiAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgJENvdW50IDwgJFNlbGYtPntTdGFydEhpdH07CiAgICAgICAgICAgIG15ICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAwLAogICAgICAgICAgICAgICAgU2lsZW50ICAgICAgICA9PiAxCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICElVGlja2V0OwoKICAgICAgICAgICAgIyBzZXQgYSBkZWZhdWx0IHRpdGxlIGlmIHRpY2tldCBoYXMgbm8gdGl0bGUKICAgICAgICAgICAgaWYgKCAhJFRpY2tldHtUaXRsZX0gKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0e1RpdGxlfSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAnVGhpcyB0aWNrZXQgaGFzIG5vIHRpdGxlIG9yIHN1YmplY3QnCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkV2hvbGVUaXRsZSA9ICRUaWNrZXR7VGl0bGV9IHx8ICcnOwogICAgICAgICAgICAkVGlja2V0e1RpdGxlfSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFN1YmplY3RDbGVhbigKICAgICAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkVGlja2V0e1RpY2tldE51bWJlcn0sCiAgICAgICAgICAgICAgICBTdWJqZWN0ICAgICAgPT4gJFRpY2tldHtUaXRsZX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNyZWF0ZSBodW1hbiBhZ2UKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntUaW1lfSBuZSAnQWdlJyApIHsKICAgICAgICAgICAgICAgICRUaWNrZXR7VGltZX0gPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgPT4gJFRpY2tldHsgJFNlbGYtPntDb25maWd9LT57VGltZX0gfSwKICAgICAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICBTcGFjZSAgICAgICAgICAgICAgPT4gJyAnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRUaWNrZXR7VGltZX0gPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgICAgICAgICBBZ2UgICA9PiAkVGlja2V0eyAkU2VsZi0+e0NvbmZpZ30tPntUaW1lfSB9LAogICAgICAgICAgICAgICAgICAgIFNwYWNlID0+ICcgJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2hvdyB0aWNrZXQKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gXCVUaWNrZXQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgdGlja2V0IGZsYWdzCiAgICAgICAgICAgIG15IEBUaWNrZXRNZXRhSXRlbXMgPSAkTGF5b3V0T2JqZWN0LT5UaWNrZXRNZXRhSXRlbXMoCiAgICAgICAgICAgICAgICBUaWNrZXQgPT4gXCVUaWNrZXQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZvciBteSAkSXRlbSAoQFRpY2tldE1ldGFJdGVtcykgewoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0dlbmVyYWxPdmVydmlld1JvdycsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY1Jvd01ldGEnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgaWYgKCRJdGVtKSB7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNSb3dNZXRhSW1hZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICRJdGVtLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2F2ZSBjb2x1bW4gY29udGVudAogICAgICAgICAgICBteSAkRGF0YVZhbHVlOwoKICAgICAgICAgICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgICAgICAgICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgICAgICAgICAjIHNob3cgYWxsIG5lZWRlZCBjb2x1bW5zCiAgICAgICAgICAgIENPTFVNTjoKICAgICAgICAgICAgZm9yIG15ICRDb2x1bW4gKEBDb2x1bW5zKSB7CgogICAgICAgICAgICAgICAgIyBza2lwIEN1c3RvbWVySUQgaWYgQ3VzdG9tZXIgSW5mb3JtYXRpb24gQ2VudGVyCiAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57QWN0aW9ufSBlcSAnQWdlbnRDdXN0b21lckluZm9ybWF0aW9uQ2VudGVyJyAmJiAkQ29sdW1uIGVxICdDdXN0b21lcklEJyApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IENPTFVNTjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICRDb2x1bW4gIX4gbXtcQSBEeW5hbWljRmllbGRffXhtcyApIHsKCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0dlbmVyYWxPdmVydmlld1JvdycsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY1RpY2tldENvbHVtbicsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgbXkgJEJsb2NrVHlwZSA9ICcnOwogICAgICAgICAgICAgICAgICAgIG15ICRDU1NDbGFzcyAgPSAnJzsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkQ29sdW1uIGVxICdUaWNrZXROdW1iZXInICkgewogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNUaWNrZXROdW1iZXInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJVRpY2tldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVGlja2V0e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgQ09MVU1OOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ0VzY2FsYXRpb25UaW1lJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJUVzY2FsYXRpb25EYXRhOwogICAgICAgICAgICAgICAgICAgICAgICAkRXNjYWxhdGlvbkRhdGF7RXNjYWxhdGlvblRpbWV9ICAgICAgICAgICAgPSAkVGlja2V0e0VzY2FsYXRpb25UaW1lfTsKICAgICAgICAgICAgICAgICAgICAgICAgJEVzY2FsYXRpb25EYXRhe0VzY2FsYXRpb25EZXN0aW5hdGlvbkRhdGV9ID0gJFRpY2tldHtFc2NhbGF0aW9uRGVzdGluYXRpb25EYXRlfTsKCiAgICAgICAgICAgICAgICAgICAgICAgICRFc2NhbGF0aW9uRGF0YXtFc2NhbGF0aW9uVGltZUh1bWFufSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgID0+ICRFc2NhbGF0aW9uRGF0YXtFc2NhbGF0aW9uVGltZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICAgICAgICAgICAgICkgfHwgJy0nOwogICAgICAgICAgICAgICAgICAgICAgICAkRXNjYWxhdGlvbkRhdGF7RXNjYWxhdGlvblRpbWVXb3JraW5nVGltZX0gPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICA9PiAkRXNjYWxhdGlvbkRhdGF7RXNjYWxhdGlvblRpbWVXb3JraW5nVGltZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0e0VzY2FsYXRpb25UaW1lfSAmJiAkVGlja2V0e0VzY2FsYXRpb25UaW1lfSA8IDYwICogNjAgKiAxICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEVzY2FsYXRpb25EYXRhe0VzY2FsYXRpb25DbGFzc30gPSAnV2FybmluZyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRXNjYWxhdGlvblRpbWUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JUVzY2FsYXRpb25EYXRhfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBDT0xVTU47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnQWdlJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdlICAgPT4gJFRpY2tldHtBZ2V9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BhY2UgPT4gJyAnLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ0VzY2FsYXRpb25Tb2x1dGlvblRpbWUnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQmxvY2tUeXBlID0gJ0VzY2FsYXRpb24nOwogICAgICAgICAgICAgICAgICAgICAgICAkRGF0YVZhbHVlID0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgPT4gJFRpY2tldHtTb2x1dGlvblRpbWV9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0e1NvbHV0aW9uVGltZX0gJiYgJFRpY2tldHtTb2x1dGlvblRpbWV9IDwgNjAgKiA2MCAqIDEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ1NTQ2xhc3MgPSAnV2FybmluZyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdFc2NhbGF0aW9uUmVzcG9uc2VUaW1lJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEJsb2NrVHlwZSA9ICdFc2NhbGF0aW9uJzsKICAgICAgICAgICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgID0+ICRUaWNrZXR7Rmlyc3RSZXNwb25zZVRpbWV9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZWQgJFRpY2tldHtGaXJzdFJlc3BvbnNlVGltZX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICRUaWNrZXR7Rmlyc3RSZXNwb25zZVRpbWV9IDwgNjAgKiA2MCAqIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENTU0NsYXNzID0gJ1dhcm5pbmcnOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnRXNjYWxhdGlvblVwZGF0ZVRpbWUnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQmxvY2tUeXBlID0gJ0VzY2FsYXRpb24nOwogICAgICAgICAgICAgICAgICAgICAgICAkRGF0YVZhbHVlID0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgPT4gJFRpY2tldHtVcGRhdGVUaW1lfSB8fCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGltZVNob3dBbHdheXNMb25nID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGFjZSAgICAgICAgICAgICAgPT4gJyAnLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldHtVcGRhdGVUaW1lfSAmJiAkVGlja2V0e1VwZGF0ZVRpbWV9IDwgNjAgKiA2MCAqIDEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ1NTQ2xhc3MgPSAnV2FybmluZyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdQZW5kaW5nVGltZScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRCbG9ja1R5cGUgPSAnRXNjYWxhdGlvbic7CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSAgID0+ICRUaWNrZXR7J1VudGlsVGltZSd9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BhY2UgPT4gJyAnLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldHtVbnRpbFRpbWV9ICYmICRUaWNrZXR7VW50aWxUaW1lfSA8IC0xICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENTU0NsYXNzID0gJ1dhcm5pbmcnOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnT3duZXInICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBnZXQgb3duZXIgaW5mbwogICAgICAgICAgICAgICAgICAgICAgICBteSAlT3duZXJJbmZvID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRUaWNrZXR7T3duZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkT3duZXJJbmZveydVc2VyRnVsbG5hbWUnfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdSZXNwb25zaWJsZScgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGdldCByZXNwb25zaWJsZSBpbmZvCiAgICAgICAgICAgICAgICAgICAgICAgIG15ICVSZXNwb25zaWJsZUluZm8gPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFRpY2tldHtSZXNwb25zaWJsZUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9ICRSZXNwb25zaWJsZUluZm97J1VzZXJGdWxsbmFtZSd9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRDb2x1bW4gZXEgJ1N0YXRlJwogICAgICAgICAgICAgICAgICAgICAgICB8fCAkQ29sdW1uIGVxICdMb2NrJwogICAgICAgICAgICAgICAgICAgICAgICB8fCAkQ29sdW1uIGVxICdQcmlvcml0eScKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEJsb2NrVHlwZSA9ICdUcmFuc2xhdGFibGUnOwogICAgICAgICAgICAgICAgICAgICAgICAkRGF0YVZhbHVlID0gJFRpY2tldHskQ29sdW1ufTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdDcmVhdGVkJyB8fCAkQ29sdW1uIGVxICdDaGFuZ2VkJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEJsb2NrVHlwZSA9ICdUaW1lJzsKICAgICAgICAgICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9ICRUaWNrZXR7JENvbHVtbn07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnQ3VzdG9tZXJOYW1lJyApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgZ2V0IGN1c3RvbWVyIG5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJEN1c3RvbWVyTmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkVGlja2V0e0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDdXN0b21lck5hbWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyktPkN1c3RvbWVyTmFtZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRpY2tldHtDdXN0b21lclVzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkQ3VzdG9tZXJOYW1lOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ0N1c3RvbWVyQ29tcGFueU5hbWUnICkgewogICAgICAgICAgICAgICAgICAgICAgICBteSAlQ3VzdG9tZXJDb21wYW55RGF0YTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkVGlja2V0e0N1c3RvbWVySUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJUN1c3RvbWVyQ29tcGFueURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJDb21wYW55JyktPkN1c3RvbWVyQ29tcGFueUdldCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21lcklEID0+ICRUaWNrZXR7Q3VzdG9tZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkQ3VzdG9tZXJDb21wYW55RGF0YXtDdXN0b21lckNvbXBhbnlOYW1lfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkVGlja2V0eyRDb2x1bW59OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkQ29sdW1uIGVxICdUaXRsZScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAiQ29udGVudExhcmdlVGlja2V0VGl0bGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICA9PiAiJERhdGFWYWx1ZSAiIHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdob2xlVGl0bGUgPT4gJFdob2xlVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAkQ1NTQ2xhc3MgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtbiRCbG9ja1R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJpY1ZhbHVlID0+ICREYXRhVmFsdWUgfHwgJy0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAkQ1NTQ2xhc3MgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgRHluYW1pYyBmaWVsZHMKICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRDb25maWc7CiAgICAgICAgICAgICAgICAgICAgbXkgJERGQ29sdW1uID0gJENvbHVtbjsKICAgICAgICAgICAgICAgICAgICAkREZDb2x1bW4gPX4gcy9EeW5hbWljRmllbGRfLy9nOwogICAgICAgICAgICAgICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJERGQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkREZDb25maWcpOwogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAkREZDb25maWctPntOYW1lfSBuZSAkREZDb2x1bW47CgogICAgICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkQ29uZmlnID0gJERGQ29uZmlnOwogICAgICAgICAgICAgICAgICAgICAgICBsYXN0IERZTkFNSUNGSUVMRDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbmV4dCBDT0xVTU4gaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgICAgICAgICAjIGdldCBmaWVsZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgIG15ICRWYWx1ZSA9ICRCYWNrZW5kT2JqZWN0LT5WYWx1ZUdldCgKICAgICAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgbXkgJFZhbHVlU3RyZyA9ICRCYWNrZW5kT2JqZWN0LT5EaXNwbGF5VmFsdWVSZW5kZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZU1heENoYXJzICAgICAgPT4gMjAsCiAgICAgICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBpZiAoICRWYWx1ZVN0cmctPntMaW5rfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkTGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICAgICAgICAgPT4gJFZhbHVlU3RyZy0+e1ZhbHVlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICAgICAgICAgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5rICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFZhbHVlU3RyZy0+e0xpbmt9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0R5bmFtaWNGaWVsZFBsYWluJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgc2hvdyAibm9uZSIgaWYgbm8gdGlja2V0IGlzIGF2YWlsYWJsZSBvciBpZiB0aGUgc2VhcmNoIHRlbXBsYXRlIGlzIGludmFsaWQgKG51bGwgb3IgZGVsZXRlZCkKICAgIGlmICggJFRpY2tldFNlYXJjaHtJbnZhbGlkU2VhcmNoVGVtcGxhdGV9IHx8ICEkVGlja2V0SURzIHx8ICFAeyRUaWNrZXRJRHN9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljTm9uZScsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciByZWZyZXNoIHRpbWUKICAgIG15ICRSZWZyZXNoID0gJyc7CiAgICBpZiAoICRTZWxmLT57VXNlclJlZnJlc2hUaW1lfSApIHsKICAgICAgICAkUmVmcmVzaCA9IDYwICogJFNlbGYtPntVc2VyUmVmcmVzaFRpbWV9OwoKICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1dpZGdldFJlZnJlc2gnIC4gJFdpZGdldE5hbWUsCiAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICBOYW1lSFRNTCAgICAgICA9PiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgIFJlZnJlc2hUaW1lICAgID0+ICRSZWZyZXNoLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgPT4gJFBhcmFte0N1c3RvbWVySUR9LAogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJFBhcmFte0N1c3RvbWVyVXNlcklEfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgZm9yIGFjdGl2ZSBmaWx0ZXJzIGFuZCBhZGQgYSAncmVtb3ZlIGZpbHRlcnMnIGJ1dHRvbiB0byB0aGUgd2lkZ2V0IGhlYWRlcgogICAgbXkgJEZpbHRlckFjdGl2ZSA9IDA7CiAgICBpZiAoICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0fSAmJiBJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9ICkgKSB7CiAgICAgICAgJEZpbHRlckFjdGl2ZSA9IDE7CiAgICB9CgogICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnV2lkZ2V0Q29udGFpbmVyJyAuICRXaWRnZXROYW1lLAogICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgPT4gJFBhcmFte0N1c3RvbWVySUR9LAogICAgICAgICAgICBDdXN0b21lclVzZXJJRCA9PiAkUGFyYW17Q3VzdG9tZXJVc2VySUR9LAogICAgICAgICAgICBGaWx0ZXJBY3RpdmUgICA9PiAkRmlsdGVyQWN0aXZlLAogICAgICAgICAgICBTb3J0QnkgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJ0FnZScsCiAgICAgICAgICAgIE9yZGVyQnkgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgIFNvcnRpbmdDb2x1bW4gID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkQ29udGVudCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RGFzaGJvYXJkVGlja2V0UHJvZmlsZVNlYXJjaCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJXsgJFNlbGYtPntDb25maWd9IH0sCiAgICAgICAgICAgIE5hbWUgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgJXskU3VtbWFyeX0sCiAgICAgICAgICAgIEZpbHRlclZhbHVlICAgID0+ICRTZWxmLT57RmlsdGVyfSwKICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgPT4gJFNlbGYtPntDdXN0b21lcklEfSwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJFNlbGYtPntDdXN0b21lclVzZXJJRH0sCiAgICAgICAgfSwKICAgICAgICBBSkFYID0+ICRQYXJhbXtBSkFYfSwKICAgICk7CgogICAgcmV0dXJuICRDb250ZW50Owp9CgpzdWIgX0luaXRpYWxDb2x1bW5GaWx0ZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgISRQYXJhbXtDb2x1bW5OYW1lfTsKICAgIHJldHVybiBpZiAhJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+eyAkUGFyYW17Q29sdW1uTmFtZX0gfTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICRMYWJlbCA9ICRQYXJhbXtMYWJlbH0gfHwgJFBhcmFte0NvbHVtbk5hbWV9OwogICAgJExhYmVsID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRMYWJlbCk7CgogICAgIyBzZXQgZml4ZWQgdmFsdWVzCiAgICBteSAkRGF0YSA9IFsKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICcnLAogICAgICAgICAgICBWYWx1ZSA9PiB1YyAkTGFiZWwsCiAgICAgICAgfSwKICAgIF07CgogICAgIyBkZWZpbmUgaWYgY29sdW1uIGZpbHRlciB2YWx1ZXMgc2hvdWxkIGJlIHRyYW5zbGF0YWJsZQogICAgbXkgJFRyYW5zbGF0aW9uT3B0aW9uID0gMDsKCiAgICBpZiAoCiAgICAgICAgJFBhcmFte0NvbHVtbk5hbWV9IGVxICdTdGF0ZScKICAgICAgICB8fCAkUGFyYW17Q29sdW1uTmFtZX0gZXEgJ0xvY2snCiAgICAgICAgfHwgJFBhcmFte0NvbHVtbk5hbWV9IGVxICdQcmlvcml0eScKICAgICAgICB8fCAkUGFyYW17Q29sdW1uTmFtZX0gZXEgJ1NMQScKICAgICAgICB8fCAkUGFyYW17Q29sdW1uTmFtZX0gZXEgJ1R5cGUnCiAgICAgICAgKQogICAgewogICAgICAgICRUcmFuc2xhdGlvbk9wdGlvbiA9IDE7CiAgICB9CgogICAgbXkgJENsYXNzID0gJ0NvbHVtbkZpbHRlcic7CiAgICBpZiAoICRQYXJhbXtDc3N9ICkgewogICAgICAgICRDbGFzcyAuPSAnICcgLiAkUGFyYW17Q3NzfTsKICAgIH0KCiAgICAjIGJ1aWxkIHNlbGVjdCBIVE1MCiAgICBteSAkQ29sdW1uRmlsdGVySFRNTCA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICdDb2x1bW5GaWx0ZXInIC4gJFBhcmFte0NvbHVtbk5hbWV9IC4gJFNlbGYtPntOYW1lfSwKICAgICAgICBEYXRhICAgICAgICA9PiAkRGF0YSwKICAgICAgICBDbGFzcyAgICAgICA9PiAkQ2xhc3MsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gJFRyYW5zbGF0aW9uT3B0aW9uLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICcnLAogICAgKTsKICAgIHJldHVybiAkQ29sdW1uRmlsdGVySFRNTDsKfQoKc3ViIF9HZXRDb2x1bW5WYWx1ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgIUlzU3RyaW5nV2l0aERhdGEoICRQYXJhbXtIZWFkZXJDb2x1bW59ICk7CgogICAgbXkgJEhlYWRlckNvbHVtbiA9ICRQYXJhbXtIZWFkZXJDb2x1bW59OwogICAgbXkgJUNvbHVtbkZpbHRlclZhbHVlczsKICAgIG15ICRUaWNrZXRJRHM7CgogICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtPcmlnaW5hbFRpY2tldElEc30gKSApIHsKICAgICAgICAkVGlja2V0SURzID0gJFBhcmFte09yaWdpbmFsVGlja2V0SURzfTsKICAgIH0KCiAgICBpZiAoICRIZWFkZXJDb2x1bW4gIX4gbS9eRHluYW1pY0ZpZWxkXy8gKSB7CiAgICAgICAgbXkgJEZ1bmN0aW9uTmFtZSA9ICRIZWFkZXJDb2x1bW4gLiAnRmlsdGVyVmFsdWVzR2V0JzsKICAgICAgICBpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVySUQnICkgewogICAgICAgICAgICAkRnVuY3Rpb25OYW1lID0gJ0N1c3RvbWVyRmlsdGVyVmFsdWVzR2V0JzsKICAgICAgICB9CgogICAgICAgICRDb2x1bW5GaWx0ZXJWYWx1ZXN7JEhlYWRlckNvbHVtbn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpDb2x1bW5GaWx0ZXInKS0+JEZ1bmN0aW9uTmFtZSgKICAgICAgICAgICAgVGlja2V0SURzICAgID0+ICRUaWNrZXRJRHMsCiAgICAgICAgICAgIEhlYWRlckNvbHVtbiA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKCiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CgogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAkRmllbGROYW1lIG5lICRIZWFkZXJDb2x1bW47CgogICAgICAgICAgICAjIGdldCBkeW5hbWljIGZpZWxkIGJhY2tlbmQgb2JqZWN0CiAgICAgICAgICAgIG15ICRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgICAgICAgICAgbXkgJElzRmlsdHJhYmxlID0gJEJhY2tlbmRPYmplY3QtPkhhc0JlaGF2aW9yKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzRmlsdHJhYmxlJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkSXNGaWx0cmFibGU7CgogICAgICAgICAgICAkU2VsZi0+e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57JEhlYWRlckNvbHVtbn0gPSAkSXNGaWx0cmFibGU7CiAgICAgICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCRUaWNrZXRJRHMpICkgewoKICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBoaXN0b3JpY2FsIHZhbHVlcyBmb3IgdGhlIGZpZWxkCiAgICAgICAgICAgICAgICAkQ29sdW1uRmlsdGVyVmFsdWVzeyRIZWFkZXJDb2x1bW59ID0gJEJhY2tlbmRPYmplY3QtPkNvbHVtbkZpbHRlclZhbHVlc0dldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEcyAgICAgICAgICA9PiAkVGlja2V0SURzLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIGdldCBQb3NzaWJsZVZhbHVlcwogICAgICAgICAgICAgICAgJENvbHVtbkZpbHRlclZhbHVlc3skSGVhZGVyQ29sdW1ufSA9ICRCYWNrZW5kT2JqZWN0LT5Qb3NzaWJsZVZhbHVlc0dldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGFzdCBEWU5BTUlDRklFTEQ7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcJUNvbHVtbkZpbHRlclZhbHVlczsKfQoKIyA9b3ZlcgoKIyA9aGVhZDIgX0NvbHVtbkZpbHRlckpTT04oKQoKIyAgICAgY3JlYXRlcyBhIEpTT04gc2VsZWN0IGZpbHRlciBmb3IgY29sdW1uIGhlYWRlcgoKIyAgICAgbXkgJENvbHVtbkZpbHRlckpTT04gPSAkVGlja2V0T3ZlcnZpZXdTbWFsbE9iamVjdC0+X0NvbHVtbkZpbHRlckpTT04oCiMgICAgICAgICBDb2x1bW5OYW1lID0+ICdRdWV1ZScsCiMgICAgICAgICBMYWJlbCAgICAgID0+ICdRdWV1ZScsCiMgICAgICAgICBDb2x1bW5WYWx1ZXMgPT4gewojICAgICAgICAgICAgIDEgPT4gJ1Bvc3RNYXN0ZXInLAojICAgICAgICAgICAgIDIgPT4gJ0p1bmsnLAojICAgICAgICAgfSwKIyAgICAgICAgIFNlbGVjdGVkVmFsdWUgJzEnLAojICAgICApOwoKIyA9Y3V0CgpzdWIgX0NvbHVtbkZpbHRlckpTT04gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgISRQYXJhbXtDb2x1bW5OYW1lfTsKICAgIHJldHVybiBpZiAhJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+eyAkUGFyYW17Q29sdW1uTmFtZX0gfTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICRMYWJlbCA9ICRQYXJhbXtMYWJlbH07CiAgICAkTGFiZWwgPX4gc3sgXEEgRHluYW1pY0ZpZWxkXyB9e31neG1zOwogICAgJExhYmVsID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRMYWJlbCk7CgogICAgIyBzZXQgZml4ZWQgdmFsdWVzCiAgICBteSAkRGF0YSA9IFsKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdEZWxldGVGaWx0ZXInLAogICAgICAgICAgICBWYWx1ZSA9PiB1YyAkTGFiZWwsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgICAgID0+ICctJywKICAgICAgICAgICAgVmFsdWUgICAgPT4gJy0nLAogICAgICAgICAgICBEaXNhYmxlZCA9PiAxLAogICAgICAgIH0sCiAgICBdOwoKICAgIGlmICggJFBhcmFte0NvbHVtblZhbHVlc30gJiYgcmVmICRQYXJhbXtDb2x1bW5WYWx1ZXN9IGVxICdIQVNIJyApIHsKCiAgICAgICAgbXkgJVZhbHVlcyA9ICV7ICRQYXJhbXtDb2x1bW5WYWx1ZXN9IH07CgogICAgICAgICMgU2V0IHBvc3NpYmxlIHZhbHVlcy4KICAgICAgICBmb3IgbXkgJFZhbHVlS2V5ICggc29ydCB7IGxjICRWYWx1ZXN7JGF9IGNtcCBsYyAkVmFsdWVzeyRifSB9IGtleXMgJVZhbHVlcyApIHsKICAgICAgICAgICAgcHVzaCBAeyREYXRhfSwgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJFZhbHVlS2V5LAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlc3skVmFsdWVLZXl9CiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgZGVmaW5lIGlmIGNvbHVtbiBmaWx0ZXIgdmFsdWVzIHNob3VsZCBiZSB0cmFuc2xhdGFibGUKICAgIG15ICRUcmFuc2xhdGlvbk9wdGlvbiA9IDA7CgogICAgaWYgKAogICAgICAgICRQYXJhbXtDb2x1bW5OYW1lfSBlcSAnU3RhdGUnCiAgICAgICAgfHwgJFBhcmFte0NvbHVtbk5hbWV9IGVxICdMb2NrJwogICAgICAgIHx8ICRQYXJhbXtDb2x1bW5OYW1lfSBlcSAnUHJpb3JpdHknCiAgICAgICAgfHwgJFBhcmFte0NvbHVtbk5hbWV9IGVxICdTTEEnCiAgICAgICAgfHwgJFBhcmFte0NvbHVtbk5hbWV9IGVxICdUeXBlJwogICAgICAgICkKICAgIHsKICAgICAgICAkVHJhbnNsYXRpb25PcHRpb24gPSAxOwogICAgfQoKICAgICMgYnVpbGQgc2VsZWN0IEhUTUwKICAgIG15ICRKU09OID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb25KU09OKAogICAgICAgIFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdDb2x1bW5GaWx0ZXInIC4gJFBhcmFte0NvbHVtbk5hbWV9IC4gJFBhcmFte0Rhc2hib2FyZE5hbWV9LAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+ICREYXRhLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdDb2x1bW5GaWx0ZXInLAogICAgICAgICAgICAgICAgU29ydCAgICAgICAgID0+ICdBbHBoYW51bWVyaWNLZXknLAogICAgICAgICAgICAgICAgVHJlZVZpZXcgICAgID0+IDEsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJFBhcmFte1NlbGVjdGVkVmFsdWV9LAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+ICRUcmFuc2xhdGlvbk9wdGlvbiwKICAgICAgICAgICAgICAgIEF1dG9Db21wbGV0ZSA9PiAnb2ZmJywKICAgICAgICAgICAgfSwKICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gJEpTT047Cn0KCnN1YiBfU2VhcmNoUGFyYW1zR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgYWxsIHNlYXJjaCBiYXNlIGF0dHJpYnV0ZXMKICAgIG15ICVUaWNrZXRTZWFyY2g7CgogICAgIyByZWFkIHVzZXIgcHJlZmVyZW5jZXMgYW5kIGNvbmZpZyB0byBnZXQgY29sdW1ucyB0aGF0CiAgICAjIHNob3VsZCBiZSBzaG93biBpbiB0aGUgZGFzaGJvYXJkIHdpZGdldCAodGhlIHByZWZlcmVuY2VzCiAgICAjIGhhdmUgcHJlY2VkZW5jZSkKICAgIG15ICVQcmVmZXJlbmNlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRTZWFyY2hQcm9maWxlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlYXJjaFByb2ZpbGUnKTsKICAgIG15ICVQcm9maWxlOwogICAgaWYgKCAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZlNlYXJjaFRlbXBsYXRlfSB9ICkgewogICAgICAgICVQcm9maWxlID0gJFNlYXJjaFByb2ZpbGVPYmplY3QtPlNlYXJjaFByb2ZpbGVHZXQoCiAgICAgICAgICAgIEJhc2UgICAgICA9PiAnVGlja2V0U2VhcmNoJywKICAgICAgICAgICAgTmFtZSAgICAgID0+ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmU2VhcmNoVGVtcGxhdGV9IH0sCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkU2VsZi0+e1VzZXJMb2dpbn0sCiAgICAgICAgKTsKICAgIH0KICAgIGlmICggISVQcm9maWxlICkgewogICAgICAgICRQcm9maWxle0ludmFsaWRTZWFyY2hUZW1wbGF0ZX0gPSAxOwogICAgfQoKICAgICMgZ2V0IGNvbHVtbiBuYW1lcyBmcm9tIFByZWZlcmVuY2VzCiAgICBteSAkUHJlZmVyZW5jZXNDb2x1bW4gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SlNPTicpLT5EZWNvZGUoCiAgICAgICAgRGF0YSA9PiAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZktleUNvbHVtbnN9IH0sCiAgICApOwoKICAgICMgY2hlY2sgZm9yIGRlZmF1bHQgc2V0dGluZ3MKICAgIG15IEBDb2x1bW5zOwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0Q29sdW1uc30gJiYgSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfSApICkgewogICAgICAgIEBDb2x1bW5zID0gZ3JlcCB7ICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfS0+eyRffSBlcSAnMicgfQogICAgICAgICAgICBzb3J0IHsgJFNlbGYtPl9EZWZhdWx0Q29sdW1uU29ydCgpIH0ga2V5cyAleyAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0Q29sdW1uc30gfTsKICAgIH0KICAgIGlmICgkUHJlZmVyZW5jZXNDb2x1bW4pIHsKICAgICAgICBpZiAoICRQcmVmZXJlbmNlc0NvbHVtbi0+e0NvbHVtbnN9ICYmICV7ICRQcmVmZXJlbmNlc0NvbHVtbi0+e0NvbHVtbnN9IH0gKSB7CiAgICAgICAgICAgIEBDb2x1bW5zID0gZ3JlcCB7CiAgICAgICAgICAgICAgICBkZWZpbmVkICRQcmVmZXJlbmNlc0NvbHVtbi0+e0NvbHVtbnN9LT57JF99CiAgICAgICAgICAgICAgICAgICAgJiYgJFByZWZlcmVuY2VzQ29sdW1uLT57Q29sdW1uc30tPnskX30gZXEgJzEnCiAgICAgICAgICAgIH0gc29ydCB7ICRTZWxmLT5fRGVmYXVsdENvbHVtblNvcnQoKSB9IGtleXMgJXsgJFNlbGYtPntDb25maWd9LT57RGVmYXVsdENvbHVtbnN9IH07CiAgICAgICAgfQogICAgICAgIGlmICggJFByZWZlcmVuY2VzQ29sdW1uLT57T3JkZXJ9ICYmIEB7ICRQcmVmZXJlbmNlc0NvbHVtbi0+e09yZGVyfSB9ICkgewogICAgICAgICAgICBAQ29sdW1ucyA9IEB7ICRQcmVmZXJlbmNlc0NvbHVtbi0+e09yZGVyfSB9OwogICAgICAgIH0KCiAgICAgICAgIyByZW1vdmUgZHVwbGljYXRlIGNvbHVtbnMKICAgICAgICBteSAlVW5pcXVlQ29sdW1uczsKICAgICAgICBteSBAQ29sdW1uc0VuYWJsZWRBdXg7CgogICAgICAgIGZvciBteSAkQ29sdW1uIChAQ29sdW1ucykgewogICAgICAgICAgICBpZiAoICEkVW5pcXVlQ29sdW1uc3skQ29sdW1ufSApIHsKICAgICAgICAgICAgICAgIHB1c2ggQENvbHVtbnNFbmFibGVkQXV4LCAkQ29sdW1uOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRVbmlxdWVDb2x1bW5zeyRDb2x1bW59ID0gMTsKICAgICAgICB9CgogICAgICAgICMgc2V0IGZpbHRlcmVkIGNvbHVtbiBsaXN0CiAgICAgICAgQENvbHVtbnMgPSBAQ29sdW1uc0VuYWJsZWRBdXg7CiAgICB9CgogICAgIyBhbHdheXMgc2V0IFRpY2tldE51bWJlcgogICAgaWYgKCAhZ3JlcCB7ICRfIGVxICdUaWNrZXROdW1iZXInIH0gQENvbHVtbnMgKSB7CiAgICAgICAgdW5zaGlmdCBAQ29sdW1ucywgJ1RpY2tldE51bWJlcic7CiAgICB9CgogICAgIyBhbHNvIGFsd2F5cyBzZXQgUHJvY2Vzc0lEIGFuZCBBY3Rpdml0eUlEIChmb3IgcHJvY2VzcyB3aWRnZXRzKQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9ICkgewoKICAgICAgICBteSBAQWx3YXlzQ29sdW1ucyA9ICgKICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFNlbGYtPntQcm9jZXNzTWFuYWdlbWVudFByb2Nlc3NJRH0sCiAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRTZWxmLT57UHJvY2Vzc01hbmFnZW1lbnRBY3Rpdml0eUlEfSwKICAgICAgICApOwogICAgICAgIG15ICRSZXNvcnQ7CiAgICAgICAgZm9yIG15ICRBbHdheXNDb2x1bW4gKEBBbHdheXNDb2x1bW5zKSB7CiAgICAgICAgICAgIGlmICggIWdyZXAgeyAkXyBlcSAkQWx3YXlzQ29sdW1uIH0gQENvbHVtbnMgKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBDb2x1bW5zLCAkQWx3YXlzQ29sdW1uOwogICAgICAgICAgICAgICAgJFJlc29ydCA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCRSZXNvcnQpIHsKICAgICAgICAgICAgQENvbHVtbnMgPSBzb3J0IHsgJFNlbGYtPl9EZWZhdWx0Q29sdW1uU29ydCgpIH0gQENvbHVtbnM7CiAgICAgICAgfQogICAgfQoKICAgIHsKCiAgICAgICAgIyBsb29wIHRocm91Z2ggYWxsIHRoZSBkeW5hbWljIGZpZWxkcyB0byBnZXQgdGhlIG9uZXMgdGhhdCBzaG91bGQgYmUgc2hvd24KICAgICAgICBEWU5BTUlDRklFTEROQU1FOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkTmFtZSAoQENvbHVtbnMpIHsKCiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxETkFNRSBpZiAkRHluYW1pY0ZpZWxkTmFtZSAhfiBteyBEeW5hbWljRmllbGRfIH14bXM7CgogICAgICAgICAgICAjIHJlbW92ZSBkeW5hbWljIGZpZWxkIHByZWZpeAogICAgICAgICAgICBteSAkRmllbGROYW1lID0gJER5bmFtaWNGaWVsZE5hbWU7CiAgICAgICAgICAgICRGaWVsZE5hbWUgPX4gcy9EeW5hbWljRmllbGRfLy9naTsKICAgICAgICAgICAgJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9LT57JEZpZWxkTmFtZX0gPSAxOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiBbJ1RpY2tldCddLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSB8fCB7fSwKICAgICk7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIG9iamVjdAogICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgIyBnZXQgZmlsdGVyYWJsZSBEeW5hbWljIGZpZWxkcwogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICBteSAkSXNGaWx0cmFibGUgPSAkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzRmlsdHJhYmxlJywKICAgICAgICApOwoKICAgICAgICAjIGlmIHRoZSBkeW5hbWljIGZpZWxkIGlzIGZpbHRlcmFibGUgYWRkIGl0IHRvIHRoZSBWYWxpZEZpbHRlcmFibGVDb2x1bW5zIGhhc2gKICAgICAgICBpZiAoJElzRmlsdHJhYmxlKSB7CiAgICAgICAgICAgICRTZWxmLT57VmFsaWRGaWx0ZXJhYmxlQ29sdW1uc30tPnsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPSAxOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBzb3J0YWJsZSBEeW5hbWljIGZpZWxkcwogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICBteSAkSXNTb3J0YWJsZSA9ICRCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNTb3J0YWJsZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiB0aGUgZHluYW1pYyBmaWVsZCBpcyBzb3J0YWJsZSBhZGQgaXQgdG8gdGhlIFZhbGlkU29ydGFibGVDb2x1bW5zIGhhc2gKICAgICAgICBpZiAoJElzU29ydGFibGUpIHsKICAgICAgICAgICAgJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPnsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPSAxOwogICAgICAgIH0KICAgIH0KCiAgICAlVGlja2V0U2VhcmNoID0gKAogICAgICAgICVQcm9maWxlLAogICAgICAgIENvbnRlbnRTZWFyY2hQcmVmaXggPT4gJyonLAogICAgICAgIENvbnRlbnRTZWFyY2hTdWZmaXggPT4gJyonLAogICAgICAgIEZ1bGxUZXh0SW5kZXggICAgICAgPT4gMSwKICAgICk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoIlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0U2VhcmNoIiktPntFeHRlbmRlZFNlYXJjaENvbmRpdGlvbn0gKSB7CiAgICAgICAgJFRpY2tldFNlYXJjaHtDb25kaXRpb25JbmxpbmV9ID0gJENvbmZpZ09iamVjdC0+R2V0KCJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFNlYXJjaCIpLT57RXh0ZW5kZWRTZWFyY2hDb25kaXRpb259OwogICAgfQoKICAgICMgcGFyYW1ldGVycyBmcm9tIGR5bmFtaWMgZmllbGRzCiAgICBteSAlQXR0cmlidXRlTG9va3VwOwoKICAgICMgY3JlYXRlIGF0dHJpYnV0ZSBsb29rdXAgdGFibGUKICAgIGZvciBteSAkQXR0cmlidXRlICggQHsgJFByb2ZpbGV7U2hvd25BdHRyaWJ1dGVzfSB8fCBbXSB9ICkgewogICAgICAgICRBdHRyaWJ1dGVMb29rdXB7JEF0dHJpYnV0ZX0gPSAxOwogICAgfQoKICAgICMgZHluYW1pYyBmaWVsZHMgc2VhcmNoIHBhcmFtZXRlcnMgZm9yIHRpY2tldCBzZWFyY2gKICAgIG15ICVEeW5hbWljRmllbGRTZWFyY2hQYXJhbWV0ZXJzOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgY29uZmlnIGZvciBmcm9udGVuZCBtb2R1bGUKICAgIG15ICRDb25maWcgICAgICAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0U2VhcmNoIik7CiAgICBteSAkRHluYW1pY0ZpZWxkRmlsdGVyID0gJENvbmZpZy0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aWNrZXQgb2JqZWN0CiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwogICAgbXkgJER5bmFtaWNGaWVsZCAgICAgICA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkRHluYW1pY0ZpZWxkRmlsdGVyIHx8IHt9LAogICAgKTsKCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGdldCBzZWFyY2ggZmllbGQgcHJlZmVyZW5jZXMKICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFByZWZlcmVuY2VzKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICApOwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNBcnJheVJlZldpdGhEYXRhKCRTZWFyY2hGaWVsZFByZWZlcmVuY2VzKTsKCiAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRBdHRyaWJ1dGVMb29rdXB7CiAgICAgICAgICAgICAgICAgICAgJ0xhYmVsU2VhcmNoX0R5bmFtaWNGaWVsZF8nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJFByZWZlcmVuY2UtPntUeXBlfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFBSRUZFUkVOQ0U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZXh0cmFjdCB0aGUgZHluYW1pYyBmaWVsZCB2YWx1ZSBmcm9tIHRoZSBwcm9maWxlCiAgICAgICAgICAgIG15ICRMYXlvdXRPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICAgICAgICAgIG15ICRTZWFyY2hQYXJhbWV0ZXIgPSAkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgUHJvZmlsZSAgICAgICAgICAgID0+IFwlUHJvZmlsZSwKICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNldCBzZWFyY2ggcGFyYW1ldGVyCiAgICAgICAgICAgIGlmICggZGVmaW5lZCAkU2VhcmNoUGFyYW1ldGVyICkgewogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZFNlYXJjaFBhcmFtZXRlcnN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJFNlYXJjaFBhcmFtZXRlci0+e1BhcmFtZXRlcn07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJVRpY2tldFNlYXJjaCA9ICgKICAgICAgICAlVGlja2V0U2VhcmNoLAogICAgICAgICVEeW5hbWljRmllbGRTZWFyY2hQYXJhbWV0ZXJzLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcGFyYW1ldGVycyBmcm9tIHRoZSBhcmNoaXZlIGZsYWcKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkFyY2hpdmVTeXN0ZW0nKSApIHsKCiAgICAgICAgJFByb2ZpbGV7U2VhcmNoSW5BcmNoaXZlfSB8fD0gJyc7CiAgICAgICAgaWYgKCAkUHJvZmlsZXtTZWFyY2hJbkFyY2hpdmV9IGVxICdBbGxUaWNrZXRzJyApIHsKICAgICAgICAgICAgJFRpY2tldFNlYXJjaHtBcmNoaXZlRmxhZ3N9ID0gWyAneScsICduJyBdOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQcm9maWxle1NlYXJjaEluQXJjaGl2ZX0gZXEgJ0FyY2hpdmVkVGlja2V0cycgKSB7CiAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7QXJjaGl2ZUZsYWdzfSA9IFsneSddOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFRpY2tldFNlYXJjaHtBcmNoaXZlRmxhZ3N9ID0gWyduJ107CiAgICAgICAgfQogICAgfQoKICAgICMgcGFyYW1ldGVycyBmcm9tIG5hdGl2ZSB0aW1lIGZpZWxkcwogICAgbXkgJVRpbWVNYXAgPSAoCiAgICAgICAgQXJ0aWNsZUNyZWF0ZSAgICA9PiAnQXJ0aWNsZVRpbWUnLAogICAgICAgIFRpY2tldENyZWF0ZSAgICAgPT4gJ1RpbWUnLAogICAgICAgIFRpY2tldENoYW5nZSAgICAgPT4gJ0NoYW5nZVRpbWUnLAogICAgICAgIFRpY2tldExhc3RDaGFuZ2UgPT4gJ0xhc3RDaGFuZ2VUaW1lJywKICAgICAgICBUaWNrZXRDbG9zZSAgICAgID0+ICdDbG9zZVRpbWUnLAogICAgICAgIFRpY2tldFBlbmRpbmcgICAgPT4gJ1BlbmRpbmdUaW1lJywKICAgICAgICBUaWNrZXRFc2NhbGF0aW9uID0+ICdFc2NhbGF0aW9uVGltZScsCiAgICApOwoKICAgIGZvciBteSAkVGltZVR5cGUgKCBzb3J0IGtleXMgJVRpbWVNYXAgKSB7CgogICAgICAgICMgZ2V0IGNyZWF0ZSB0aW1lIHNldHRpbmdzCiAgICAgICAgaWYgKCAhJFByb2ZpbGV7ICRUaW1lTWFweyRUaW1lVHlwZX0gLiAnU2VhcmNoVHlwZScgfSApIHsKCiAgICAgICAgICAgICMgZG8gbm90aGluZyB3aXRoIHRpbWUgc3R1ZmYKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkUHJvZmlsZXsgJFRpbWVNYXB7JFRpbWVUeXBlfSAuICdTZWFyY2hUeXBlJyB9IGVxICdUaW1lU2xvdCcgKSB7CiAgICAgICAgICAgIGZvciBteSAkS2V5IChxdyhNb250aCBEYXkpKSB7CiAgICAgICAgICAgICAgICAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydCcgLiAkS2V5IH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0JyAuICRLZXkgfSApOwogICAgICAgICAgICAgICAgJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lU3RvcCcgLiAkS2V5IH0gID0gc3ByaW50ZiggIiUwMmQiLCAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wJyAuICRLZXkgfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0RGF5JyB9CiAgICAgICAgICAgICAgICAmJiAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydE1vbnRoJyB9CiAgICAgICAgICAgICAgICAmJiAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydFllYXInIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydFllYXInIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0TW9udGgnIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICAgID0+ICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0RGF5JyB9LAogICAgICAgICAgICAgICAgICAgICAgICBIb3VyICAgICA9PiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBtaWRuaWdodAogICAgICAgICAgICAgICAgICAgICAgICBNaW51dGUgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBTZWNvbmQgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1VzZXJUaW1lWm9uZX0gfHwgS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lLT5Vc2VyRGVmYXVsdFRpbWVab25lR2V0KCksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBDb252ZXJ0IHN0YXJ0IHRpbWUgdG8gbG9jYWwgc3lzdGVtIHRpbWUgem9uZS4KICAgICAgICAgICAgICAgICREYXRlVGltZU9iamVjdC0+VG9PVE9CT1RpbWVab25lKCk7CiAgICAgICAgICAgICAgICAkVGlja2V0U2VhcmNoeyAkVGltZVR5cGUgLiAnVGltZU5ld2VyRGF0ZScgfSA9ICREYXRlVGltZU9iamVjdC0+VG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wRGF5JyB9CiAgICAgICAgICAgICAgICAmJiAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wTW9udGgnIH0KICAgICAgICAgICAgICAgICYmICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVN0b3BZZWFyJyB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgWWVhciAgICAgPT4gJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lU3RvcFllYXInIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVN0b3BNb250aCcgfSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF5ICAgICAgPT4gJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lU3RvcERheScgfSwKICAgICAgICAgICAgICAgICAgICAgICAgSG91ciAgICAgPT4gMjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMganVzdCBiZWZvcmUgbWlkbmlnaHQKICAgICAgICAgICAgICAgICAgICAgICAgTWludXRlICAgPT4gNTksCiAgICAgICAgICAgICAgICAgICAgICAgIFNlY29uZCAgID0+IDU5LAogICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1VzZXJUaW1lWm9uZX0gfHwgS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lLT5Vc2VyRGVmYXVsdFRpbWVab25lR2V0KCksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBDb252ZXJ0IHN0b3AgdGltZSB0byBsb2NhbCBzeXN0ZW0gdGltZSB6b25lLgogICAgICAgICAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5Ub09UT0JPVGltZVpvbmUoKTsKICAgICAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7ICRUaW1lVHlwZSAuICdUaW1lT2xkZXJEYXRlJyB9ID0gJERhdGVUaW1lT2JqZWN0LT5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFByb2ZpbGV7ICRUaW1lTWFweyRUaW1lVHlwZX0gLiAnU2VhcmNoVHlwZScgfSBlcSAnVGltZVBvaW50JyApIHsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0KICAgICAgICAgICAgICAgICYmICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50U3RhcnQnIH0KICAgICAgICAgICAgICAgICYmICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG15ICRUaW1lID0gMDsKICAgICAgICAgICAgICAgIGlmICggJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ21pbnV0ZScgKSB7CiAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ2hvdXInICkgewogICAgICAgICAgICAgICAgICAgICRUaW1lID0gJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0gKiA2MDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ2RheScgKSB7CiAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfSAqIDYwICogMjQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICd3ZWVrJyApIHsKICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9ICogNjAgKiAyNCAqIDc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICdtb250aCcgKSB7CiAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfSAqIDYwICogMjQgKiAzMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ3llYXInICkgewogICAgICAgICAgICAgICAgICAgICRUaW1lID0gJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0gKiA2MCAqIDI0ICogMzY1OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludFN0YXJ0JyB9IGVxICdCZWZvcmUnICkgewoKICAgICAgICAgICAgICAgICAgICAjIG1vcmUgdGhhbiAuLi4gYWdvCiAgICAgICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHsgJFRpbWVUeXBlIC4gJ1RpbWVPbGRlck1pbnV0ZXMnIH0gPSAkVGltZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRTdGFydCcgfSBlcSAnTmV4dCcgKSB7CgogICAgICAgICAgICAgICAgICAgICMgd2l0aGluIG5leHQKICAgICAgICAgICAgICAgICAgICAkVGlja2V0U2VhcmNoeyAkVGltZVR5cGUgLiAnVGltZU5ld2VyTWludXRlcycgfSA9IDA7CiAgICAgICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHsgJFRpbWVUeXBlIC4gJ1RpbWVPbGRlck1pbnV0ZXMnIH0gPSAtJFRpbWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50U3RhcnQnIH0gZXEgJ0FmdGVyJyApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBpbiBtb3JlIHRoZW4gLi4uCiAgICAgICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlck1pbnV0ZXMnIH0gPSAtJFRpbWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgIyB3aXRoaW4gbGFzdCAuLi4KICAgICAgICAgICAgICAgICAgICAkVGlja2V0U2VhcmNoeyAkVGltZVR5cGUgLiAnVGltZU9sZGVyTWludXRlcycgfSA9IDA7CiAgICAgICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlck1pbnV0ZXMnIH0gPSAkVGltZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIEN1c3RvbWVySW5mb3JtYXRpb25DZW50ZXIgc2hvd3MgZGF0YSBwZXIgQ3VzdG9tZXJJRAogICAgaWYgKCAkUGFyYW17Q3VzdG9tZXJJRH0gKSB7CiAgICAgICAgJFRpY2tldFNlYXJjaHtDdXN0b21lcklEUmF3fSA9ICRQYXJhbXtDdXN0b21lcklEfTsKICAgIH0KCiAgICByZXR1cm4gKAogICAgICAgIENvbHVtbnMgICAgICA9PiBcQENvbHVtbnMsCiAgICAgICAgVGlja2V0U2VhcmNoID0+IFwlVGlja2V0U2VhcmNoLAogICAgKTsKfQoKc3ViIF9EZWZhdWx0Q29sdW1uU29ydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVEZWZhdWx0Q29sdW1ucyA9ICgKICAgICAgICBUaWNrZXROdW1iZXIgICAgICAgICAgID0+IDEwMCwKICAgICAgICBBZ2UgICAgICAgICAgICAgICAgICAgID0+IDExMCwKICAgICAgICBDaGFuZ2VkICAgICAgICAgICAgICAgID0+IDExMSwKICAgICAgICBQZW5kaW5nVGltZSAgICAgICAgICAgID0+IDExMiwKICAgICAgICBFc2NhbGF0aW9uVGltZSAgICAgICAgID0+IDExMywKICAgICAgICBFc2NhbGF0aW9uU29sdXRpb25UaW1lID0+IDExNCwKICAgICAgICBFc2NhbGF0aW9uUmVzcG9uc2VUaW1lID0+IDExNSwKICAgICAgICBFc2NhbGF0aW9uVXBkYXRlVGltZSAgID0+IDExNiwKICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICAgID0+IDEyMCwKICAgICAgICBTdGF0ZSAgICAgICAgICAgICAgICAgID0+IDEzMCwKICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgID0+IDE0MCwKICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgID0+IDE1MCwKICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgID0+IDE2MCwKICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgID0+IDE2MSwKICAgICAgICBDdXN0b21lcklEICAgICAgICAgICAgID0+IDE3MCwKICAgICAgICBDdXN0b21lck5hbWUgICAgICAgICAgID0+IDE3MSwKICAgICAgICBDdXN0b21lclVzZXJJRCAgICAgICAgID0+IDE3MiwKICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgID0+IDE4MCwKICAgICAgICBTZXJ2aWNlICAgICAgICAgICAgICAgID0+IDE5MSwKICAgICAgICBTTEEgICAgICAgICAgICAgICAgICAgID0+IDE5MiwKICAgICAgICBQcmlvcml0eSAgICAgICAgICAgICAgID0+IDE5MywKICAgICk7CgogICAgIyBzZXQgZGVmYXVsdCBvcmRlciBvZiBQcm9jZXNzTWFuYWdlbWVudCBjb2x1bW5zIChmb3IgcHJvY2VzcyB3aWRnZXRzKQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9ICkgewogICAgICAgICREZWZhdWx0Q29sdW1uc3siRHluYW1pY0ZpZWxkXyRTZWxmLT57UHJvY2Vzc01hbmFnZW1lbnRQcm9jZXNzSUR9In0gID0gMTAxOwogICAgICAgICREZWZhdWx0Q29sdW1uc3siRHluYW1pY0ZpZWxkXyRTZWxmLT57UHJvY2Vzc01hbmFnZW1lbnRBY3Rpdml0eUlEfSJ9ID0gMTAyOwogICAgfQoKICAgICMgZHluYW1pYyBmaWVsZHMgY2FuIG5vdCBiZSBvbiB0aGUgRGVmYXVsdENvbHVtbnMgc29ydGluZyBoYXNoCiAgICAjIHdoZW4gY29tcGFyaW5nIDIgZHluYW1pYyBmaWVsZHMgc29ydGluZyBtdXN0IGJlIGFscGhhYmV0aWNhbAogICAgaWYgKCAhJERlZmF1bHRDb2x1bW5zeyRhfSAmJiAhJERlZmF1bHRDb2x1bW5zeyRifSApIHsKICAgICAgICByZXR1cm4gJGEgY21wICRiOwogICAgfQoKICAgICMgd2hlbiBhIGR5bmFtaWMgZmllbGQgaXMgY29tcGFyZWQgdG8gYSB0aWNrZXQgYXR0cmlidXRlIGl0IG11c3QgYmUgaGlnaGVyCiAgICBlbHNpZiAoICEkRGVmYXVsdENvbHVtbnN7JGF9ICkgewogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgd2hlbiBhIHRpY2tldCBhdHRyaWJ1dGUgaXMgY29tcGFyZWQgdG8gYSBkeW5hbWljIGZpZWxkIGl0IG11c3QgYmUgbG93ZXIKICAgIGVsc2lmICggISREZWZhdWx0Q29sdW1uc3skYn0gKSB7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQoKICAgICMgb3RoZXJ3aXNlIGRvIGEgbnVtZXJpY2FsIGNvbXBhcmlzb24gd2l0aCB0aGUgdGlja2V0IGF0dHJpYnV0ZXMKICAgIHJldHVybiAkRGVmYXVsdENvbHVtbnN7JGF9IDw9PiAkRGVmYXVsdENvbHVtbnN7JGJ9Owp9CgoxOwo=</File>
        <File Location="Kernel/Config/Files/XML/TicketSearchTemplate.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPG90b2JvX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxTZXR0aW5nIE5hbWU9IkRhc2hib2FyZEJhY2tlbmQjIyMwMTUwLVRpY2tldFNlYXJjaFRlbXBsYXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgdGlja2V0cyBvdmVydmlldyBieSBzZWFyY2ggdGVtcGxhdGUgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4gIk1hbmRhdG9yeSIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGFsd2F5cyBzaG93biBhbmQgY2FuIG5vdCBiZSByZW1vdmVkIGJ5IGFnZW50cy4gTm90ZTogT25seSBUaWNrZXQgYXR0cmlidXRlcyBhbmQgRHluYW1pYyBGaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpEYXNoYm9hcmQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RGFzaGJvYXJkOjpUaWNrZXRQcm9maWxlU2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXQgUHJvZmlsZSBTZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldHMgcmV0dXJuZWQgYnkgYSBzZWxlY3RlZCBzZWFyY2ggdGVtcGxhdGUuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJGaWx0ZXIiIFRyYW5zbGF0YWJsZT0iMSI+QWxsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaW1lIj5BZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbWl0Ij4xMDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVybWlzc2lvbiI+cnc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5Db250ZW50TGFyZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhY2hlVFRMTG9jYWwiPjAuNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdENvbHVtbnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gQXZhaWxhYmxlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIyIiBUcmFuc2xhdGFibGU9IjEiPjIgLSBFbmFibGVkIGJ5IGRlZmF1bHQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWdlIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlZCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNyZWF0ZWQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lckNvbXBhbnlOYW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJJRCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyTmFtZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyVXNlcklEIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblJlc3BvbnNlVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25Tb2x1dGlvblRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25VcGRhdGVUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGlja2V0TnVtYmVyIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTG9jayIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik93bmVyIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVuZGluZ1RpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJRdWV1ZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlc3BvbnNpYmxlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpb3JpdHkiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTZXJ2aWNlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU3RhdGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTTEEiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1hbmRhdG9yeSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJEYXNoYm9hcmRCYWNrZW5kIyMjMDE1MS1UaWNrZXRTZWFyY2hUZW1wbGF0ZTEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSB0aWNrZXRzIG92ZXJ2aWV3IGJ5IHNlYXJjaCB0ZW1wbGF0ZSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLiAiTWFuZGF0b3J5IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgYWx3YXlzIHNob3duIGFuZCBjYW4gbm90IGJlIHJlbW92ZWQgYnkgYWdlbnRzLiBOb3RlOiBPbmx5IFRpY2tldCBhdHRyaWJ1dGVzIGFuZCBEeW5hbWljIEZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkRhc2hib2FyZDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OlRpY2tldFByb2ZpbGVTZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBQcm9maWxlIFNlYXJjaCAxPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXRzIHJldHVybmVkIGJ5IGEgc2VsZWN0ZWQgc2VhcmNoIHRlbXBsYXRlLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRmlsdGVyIiBUcmFuc2xhdGFibGU9IjEiPkFsbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGltZSI+QWdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW1pdCI+MTA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlcm1pc3Npb24iPnJ3PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+Q29udGVudExhcmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYWNoZVRUTExvY2FsIj4wLjU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHRDb2x1bW5zIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEF2YWlsYWJsZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMiIgVHJhbnNsYXRhYmxlPSIxIj4yIC0gRW5hYmxlZCBieSBkZWZhdWx0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZSIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZWQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVkIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJDb21wYW55TmFtZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVySUQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lck5hbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lclVzZXJJRCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25SZXNwb25zZVRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uU29sdXRpb25UaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVXBkYXRlVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpY2tldE51bWJlciIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxvY2siIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJPd25lciIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlbmRpbmdUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUXVldWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXNwb25zaWJsZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2VydmljZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlN0YXRlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU0xBIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNYW5kYXRvcnkiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRGFzaGJvYXJkQmFja2VuZCMjIzAxNTItVGlja2V0U2VhcmNoVGVtcGxhdGUyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgdGlja2V0cyBvdmVydmlldyBieSBzZWFyY2ggdGVtcGxhdGUgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4gIk1hbmRhdG9yeSIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGFsd2F5cyBzaG93biBhbmQgY2FuIG5vdCBiZSByZW1vdmVkIGJ5IGFnZW50cy4gTm90ZTogT25seSBUaWNrZXQgYXR0cmlidXRlcyBhbmQgRHluYW1pYyBGaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpEYXNoYm9hcmQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RGFzaGJvYXJkOjpUaWNrZXRQcm9maWxlU2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXQgUHJvZmlsZSBTZWFyY2ggMjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+VGlja2V0cyByZXR1cm5lZCBieSBhIHNlbGVjdGVkIHNlYXJjaCB0ZW1wbGF0ZS48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkZpbHRlciIgVHJhbnNsYXRhYmxlPSIxIj5BbGw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpbWUiPkFnZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGltaXQiPjEwPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZXJtaXNzaW9uIj5ydzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkNvbnRlbnRMYXJnZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2FjaGVUVExMb2NhbCI+MC41PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Q29sdW1ucyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBBdmFpbGFibGU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjIiIFRyYW5zbGF0YWJsZT0iMSI+MiAtIEVuYWJsZWQgYnkgZGVmYXVsdDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2UiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VkIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlZCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyQ29tcGFueU5hbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lcklEIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJOYW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJVc2VySUQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uUmVzcG9uc2VUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblNvbHV0aW9uVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25UaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblVwZGF0ZVRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaWNrZXROdW1iZXIiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMb2NrIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iT3duZXIiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZW5kaW5nVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlF1ZXVlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVzcG9uc2libGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNlcnZpY2UiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTdGF0ZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNMQSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTWFuZGF0b3J5Ij4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkRhc2hib2FyZEJhY2tlbmQjIyMwMTUzLVRpY2tldFNlYXJjaFRlbXBsYXRlMyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5QYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIHRpY2tldHMgb3ZlcnZpZXcgYnkgc2VhcmNoIHRlbXBsYXRlIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uICJNYW5kYXRvcnkiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBhbHdheXMgc2hvd24gYW5kIGNhbiBub3QgYmUgcmVtb3ZlZCBieSBhZ2VudHMuIE5vdGU6IE9ubHkgVGlja2V0IGF0dHJpYnV0ZXMgYW5kIER5bmFtaWMgRmllbGRzIChEeW5hbWljRmllbGRfTmFtZVgpIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RGFzaGJvYXJkPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkRhc2hib2FyZDo6VGlja2V0UHJvZmlsZVNlYXJjaDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+VGlja2V0IFByb2ZpbGUgU2VhcmNoIDM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldHMgcmV0dXJuZWQgYnkgYSBzZWxlY3RlZCBzZWFyY2ggdGVtcGxhdGUuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJGaWx0ZXIiIFRyYW5zbGF0YWJsZT0iMSI+QWxsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaW1lIj5BZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbWl0Ij4xMDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVybWlzc2lvbiI+cnc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5Db250ZW50TGFyZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhY2hlVFRMTG9jYWwiPjAuNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdENvbHVtbnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gQXZhaWxhYmxlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIyIiBUcmFuc2xhdGFibGU9IjEiPjIgLSBFbmFibGVkIGJ5IGRlZmF1bHQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWdlIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlZCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNyZWF0ZWQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lckNvbXBhbnlOYW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJJRCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyTmFtZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyVXNlcklEIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblJlc3BvbnNlVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25Tb2x1dGlvblRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25VcGRhdGVUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGlja2V0TnVtYmVyIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTG9jayIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik93bmVyIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVuZGluZ1RpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJRdWV1ZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlc3BvbnNpYmxlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpb3JpdHkiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTZXJ2aWNlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU3RhdGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTTEEiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1hbmRhdG9yeSI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJEYXNoYm9hcmRCYWNrZW5kIyMjMDE1NC1UaWNrZXRTZWFyY2hUZW1wbGF0ZTQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSB0aWNrZXRzIG92ZXJ2aWV3IGJ5IHNlYXJjaCB0ZW1wbGF0ZSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLiAiTWFuZGF0b3J5IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgYWx3YXlzIHNob3duIGFuZCBjYW4gbm90IGJlIHJlbW92ZWQgYnkgYWdlbnRzLiBOb3RlOiBPbmx5IFRpY2tldCBhdHRyaWJ1dGVzIGFuZCBEeW5hbWljIEZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkRhc2hib2FyZDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OlRpY2tldFByb2ZpbGVTZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBQcm9maWxlIFNlYXJjaCA0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXRzIHJldHVybmVkIGJ5IGEgc2VsZWN0ZWQgc2VhcmNoIHRlbXBsYXRlLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRmlsdGVyIiBUcmFuc2xhdGFibGU9IjEiPkFsbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGltZSI+QWdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW1pdCI+MTA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlcm1pc3Npb24iPnJ3PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+Q29udGVudExhcmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYWNoZVRUTExvY2FsIj4wLjU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHRDb2x1bW5zIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEF2YWlsYWJsZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMiIgVHJhbnNsYXRhYmxlPSIxIj4yIC0gRW5hYmxlZCBieSBkZWZhdWx0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZSIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZWQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVkIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJDb21wYW55TmFtZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVySUQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lck5hbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lclVzZXJJRCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25SZXNwb25zZVRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uU29sdXRpb25UaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVXBkYXRlVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpY2tldE51bWJlciIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxvY2siIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJPd25lciIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlbmRpbmdUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUXVldWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXNwb25zaWJsZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2VydmljZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlN0YXRlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU0xBIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNYW5kYXRvcnkiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRGFzaGJvYXJkQmFja2VuZCMjIzAxNTUtVGlja2V0U2VhcmNoVGVtcGxhdGU1IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgdGlja2V0cyBvdmVydmlldyBieSBzZWFyY2ggdGVtcGxhdGUgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4gIk1hbmRhdG9yeSIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGFsd2F5cyBzaG93biBhbmQgY2FuIG5vdCBiZSByZW1vdmVkIGJ5IGFnZW50cy4gTm90ZTogT25seSBUaWNrZXQgYXR0cmlidXRlcyBhbmQgRHluYW1pYyBGaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpEYXNoYm9hcmQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RGFzaGJvYXJkOjpUaWNrZXRQcm9maWxlU2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXQgUHJvZmlsZSBTZWFyY2ggNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+VGlja2V0cyByZXR1cm5lZCBieSBhIHNlbGVjdGVkIHNlYXJjaCB0ZW1wbGF0ZS48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkZpbHRlciIgVHJhbnNsYXRhYmxlPSIxIj5BbGw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpbWUiPkFnZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGltaXQiPjEwPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZXJtaXNzaW9uIj5ydzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkNvbnRlbnRMYXJnZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2FjaGVUVExMb2NhbCI+MC41PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Q29sdW1ucyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBBdmFpbGFibGU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjIiIFRyYW5zbGF0YWJsZT0iMSI+MiAtIEVuYWJsZWQgYnkgZGVmYXVsdDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2UiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VkIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlZCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyQ29tcGFueU5hbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lcklEIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJOYW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJVc2VySUQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uUmVzcG9uc2VUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblNvbHV0aW9uVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25UaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblVwZGF0ZVRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaWNrZXROdW1iZXIiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMb2NrIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iT3duZXIiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZW5kaW5nVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlF1ZXVlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVzcG9uc2libGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNlcnZpY2UiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTdGF0ZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNMQSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTWFuZGF0b3J5Ij4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudERhc2hib2FyZCMjIzEwMC1GcmFtZXdvcmsiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UZW1wbGF0ZVNlYXJjaFdpZGdldC5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+Cjwvb3RvYm9fY29uZmlnPgo=</File>
        <File Location="var/httpd/htdocs/skins/Agent/default/css/TemplateSearchWidget.css" Permission="660" Encode="Base64">LyogT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCkFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKi8KCi8qKgogKiBAcGFja2FnZSAgICAgU2tpbiAiRGVmYXVsdCIKICogQHNlY3Rpb24gICAgIFdpZGdldHMKICovCgpAbWVkaWEgc2NyZWVuLHByb2plY3Rpb24sdHYsaGFuZGhlbGQgewoKLkRhc2hib2FyZEFjdGlvbnMgPiAuVGFiLkFjdGlvbnMgbGkgYTpob3ZlciB7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Cgp9IC8qIGVuZCBAbWVkaWEgKi8K</File>
        <File Location="doc/en/Dashboard-MyTicketSearchProfile.pdf" Permission="644" Encode="Base64">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</File>
    </Filelist>
</otrs_package>