@font-face{font-family:'Minister W01 Light';src:url("../fonts//b537745e-f813-459f-8880-27e4bf041a71.eot?#iefix");src:url("../fonts//b537745e-f813-459f-8880-27e4bf041a71.eot?#iefix") format("eot"),url("../fonts//a99cbe28-f80c-44f9-b5ab-cee570c35627.woff2") format("woff2"),url("../fonts//8079483a-06d4-4662-92e2-3c4fa66db83c.woff") format("woff"),url("../fonts//6e9af4d1-130b-4b2b-849f-aea4edfd5762.ttf") format("truetype"),url("../fonts//04fd39dc-9e94-4462-8d61-e2915723a9de.svg#04fd39dc-9e94-4462-8d61-e2915723a9de") format("svg")}@font-face{font-family:'Minister W01 Book';src:url("../fonts//22fcdaa5-1fea-4809-a37e-e5bb33705f98.eot?#iefix");src:url("../fonts//22fcdaa5-1fea-4809-a37e-e5bb33705f98.eot?#iefix") format("eot"),url("../fonts//a3e32f21-9639-4c14-bd82-938bf09cef69.woff2") format("woff2"),url("../fonts//b7fde8da-78ef-42f5-9c62-6a41482db46d.woff") format("woff"),url("../fonts//c4d564c9-50fa-4382-bbd1-333d3cca3be2.ttf") format("truetype"),url("../fonts//0d50dd8b-2de5-4bf6-92c3-b980a6e48eff.svg#0d50dd8b-2de5-4bf6-92c3-b980a6e48eff") format("svg")}@font-face{font-family:'Proxima Nova W07 Semibold';src:url("../fonts//1a3eb1f8-8591-4ff6-9372-d7cebbb9c94a.eot?#iefix");src:url("../fonts//1a3eb1f8-8591-4ff6-9372-d7cebbb9c94a.eot?#iefix") format("eot"),url("../fonts//252ced82-77b2-4a11-bb04-22dc964e1e93.woff2") format("woff2"),url("../fonts//70895a76-f2b7-4346-ba39-e8665c2b513f.woff") format("woff"),url("../fonts//0ef60e2c-0009-4fac-9a49-40003332ec4b.ttf") format("truetype"),url("../fonts//6f8328bd-ad5c-46b6-8210-73f0242ef13d.svg#6f8328bd-ad5c-46b6-8210-73f0242ef13d") format("svg")}@font-face{font-family:'Proxima Nova W08 Reg';src:url("../fonts//0020eb30-c98c-4a76-aaa5-c39374f14534.eot?#iefix");src:url("../fonts//0020eb30-c98c-4a76-aaa5-c39374f14534.eot?#iefix") format("eot"),url("../fonts//781c5453-0067-4e64-9386-7c0726d63d57.woff2") format("woff2"),url("../fonts//510df0e5-5b9f-4a1c-b46a-bcf1739bda43.woff") format("woff"),url("../fonts//47e08118-5050-469b-a40c-dc3b2307e87e.ttf") format("truetype"),url("../fonts//d93bd409-7380-4bb8-9d9f-d8035b5e0387.svg#d93bd409-7380-4bb8-9d9f-d8035b5e0387") format("svg")}/* line 25, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.shop_table_responsive thead,.woocommerce-page table.shop_table_responsive thead{display:none}/* line 31, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.shop_table_responsive tbody tr:first-child td:first-child,.woocommerce-page table.shop_table_responsive tbody tr:first-child td:first-child{border-top:0}/* line 36, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.shop_table_responsive tbody th,.woocommerce-page table.shop_table_responsive tbody th{display:none}/* line 41, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.shop_table_responsive tr,.woocommerce-page table.shop_table_responsive tr{display:block}/* line 44, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.shop_table_responsive tr td,.woocommerce-page table.shop_table_responsive tr td{display:block}/* line 47, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.shop_table_responsive tr td:before,.woocommerce-page table.shop_table_responsive tr td:before{content:attr(data-title) ": ";font-weight:700}/* line 54, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.shop_table_responsive tr:nth-child(2n) td,.woocommerce-page table.shop_table_responsive tr:nth-child(2n) td{background-color:rgba(0,0,0,0.025)}/* line 64, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.my_account_orders tr td.order-actions,.woocommerce-page table.my_account_orders tr td.order-actions{text-align:left}/* line 67, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.my_account_orders tr td.order-actions:before,.woocommerce-page table.my_account_orders tr td.order-actions:before{display:none}/* line 71, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.my_account_orders tr td.order-actions .button,.woocommerce-page table.my_account_orders tr td.order-actions .button{float:none;margin:.125em .25em .125em 0}/* line 84, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2,.woocommerce-page .col2-set .col-1,.woocommerce-page .col2-set .col-2{float:none;width:100%}/* line 95, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{margin:0px 0px 20px;margin:0rem 0rem 1.25rem}@media (min-width: 480px){/* line 95, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{width:47.84314%;float:left}/* line 66, node_modules/susy/sass/susy/language/susy/_gallery.scss */.woocommerce ul.products li.product:nth-child(2n+1),.woocommerce-page ul.products li.product:nth-child(2n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}/* line 66, node_modules/susy/sass/susy/language/susy/_gallery.scss */.woocommerce ul.products li.product:nth-child(2n+2),.woocommerce-page ul.products li.product:nth-child(2n+2){margin-left:52.15686%;margin-right:-100%;clear:none}}@media (min-width: 640px){/* line 95, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{width:22.59942%;float:left}/* line 66, node_modules/susy/sass/susy/language/susy/_gallery.scss */.woocommerce ul.products li.product:nth-child(4n+1),.woocommerce-page ul.products li.product:nth-child(4n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}/* line 66, node_modules/susy/sass/susy/language/susy/_gallery.scss */.woocommerce ul.products li.product:nth-child(4n+2),.woocommerce-page ul.products li.product:nth-child(4n+2){margin-left:25.80019%;margin-right:-100%;clear:none}/* line 66, node_modules/susy/sass/susy/language/susy/_gallery.scss */.woocommerce ul.products li.product:nth-child(4n+3),.woocommerce-page ul.products li.product:nth-child(4n+3){margin-left:51.60039%;margin-right:-100%;clear:none}/* line 66, node_modules/susy/sass/susy/language/susy/_gallery.scss */.woocommerce ul.products li.product:nth-child(4n+4),.woocommerce-page ul.products li.product:nth-child(4n+4){margin-left:77.40058%;margin-right:-100%;clear:none}}/* line 123, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce div.product div.images,.woocommerce div.product div.summary,.woocommerce #content div.product div.images,.woocommerce #content div.product div.summary,.woocommerce-page div.product div.images,.woocommerce-page div.product div.summary,.woocommerce-page #content div.product div.images,.woocommerce-page #content div.product div.summary{float:none;width:100%}/* line 135, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.cart .product-thumbnail,.woocommerce #content table.cart .product-thumbnail,.woocommerce-page table.cart .product-thumbnail,.woocommerce-page #content table.cart .product-thumbnail{display:none}/* line 139, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.cart td.actions,.woocommerce #content table.cart td.actions,.woocommerce-page table.cart td.actions,.woocommerce-page #content table.cart td.actions{text-align:left}/* line 142, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.cart td.actions .coupon,.woocommerce #content table.cart td.actions .coupon,.woocommerce-page table.cart td.actions .coupon,.woocommerce-page #content table.cart td.actions .coupon{float:none;content:"";display:table;padding-bottom:.5em}/* line 148, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.cart td.actions input,.woocommerce table.cart td.actions .button,.woocommerce table.cart td.actions .input-text,.woocommerce #content table.cart td.actions input,.woocommerce #content table.cart td.actions .button,.woocommerce #content table.cart td.actions .input-text,.woocommerce-page table.cart td.actions input,.woocommerce-page table.cart td.actions .button,.woocommerce-page table.cart td.actions .input-text,.woocommerce-page #content table.cart td.actions input,.woocommerce-page #content table.cart td.actions .button,.woocommerce-page #content table.cart td.actions .input-text{width:48%;box-sizing:border-box}/* line 155, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce table.cart td.actions .input-text+.button,.woocommerce table.cart td.actions .button.alt,.woocommerce #content table.cart td.actions .input-text+.button,.woocommerce #content table.cart td.actions .button.alt,.woocommerce-page table.cart td.actions .input-text+.button,.woocommerce-page table.cart td.actions .button.alt,.woocommerce-page #content table.cart td.actions .input-text+.button,.woocommerce-page #content table.cart td.actions .button.alt{float:right}/* line 163, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce .cart-collaterals .cart_totals,.woocommerce .cart-collaterals .shipping_calculator,.woocommerce .cart-collaterals .cross-sells,.woocommerce-page .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .shipping_calculator,.woocommerce-page .cart-collaterals .cross-sells{width:100%;float:none;text-align:left}/* line 177, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce.woocommerce-checkout form.login .form-row,.woocommerce-page.woocommerce-checkout form.login .form-row{width:100%;float:none}/* line 185, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce #payment .terms,.woocommerce-page #payment .terms{text-align:left;padding:0}/* line 190, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce #payment #place_order,.woocommerce-page #payment #place_order{float:none;width:100%;box-sizing:border-box;margin-bottom:1em}/* line 202, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.woocommerce .lost_reset_password .form-row-first,.woocommerce .lost_reset_password .form-row-last,.woocommerce-page .lost_reset_password .form-row-first,.woocommerce-page .lost_reset_password .form-row-last{width:100%;float:none;margin-right:0}/* line 216, wp-content/themes/ams/woocommerce/css/woocommerce-smallscreen.scss */.single-product .twentythirteen .panel{padding-left:20px !important;padding-right:20px !important}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3Nhc3MvdmFyaWFibGVzLXNpdGUvX3R5cG9ncmFwaHkuc2NzcyIsIndvb2NvbW1lcmNlLXNtYWxsc2NyZWVuLnNjc3MiLCIuLi8uLi9zYXNzL21peGlucy9fbWl4aW5zLW1hc3Rlci5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2JyZWFrcG9pbnQtcGx1Z2luLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX3JlbS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX3NwYW4uc2NzcyIsIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19kaXJlY3Rpb24uc2NzcyIsIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19pc29sYXRlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fZ2FsbGVyeS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX3Jvd3Muc2NzcyIsIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvZmxvYXQvX2VuZC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLFdBQ0MsZ0NBQWlDLENBQ2pDLG9FQUF5RSxDQUN6RSxrYUFBMmIsQ0FFNWIsV0FDQywrQkFBZ0MsQ0FDaEMsb0VBQXlFLENBQ3pFLGthQUEyYixDQUU1YixXQUNDLHVDQUF3QyxDQUN4QyxvRUFBeUUsQ0FDekUsa2FBQTJiLENBRTViLFdBQ0Msa0NBQW1DLENBQ25DLG9FQUF5RSxDQUN6RSxrYUFBMmIsQ0FBQSxnRkFBQSxDQ0Y1YixtR0FLRyxZQUFhLENBQ2IsZ0ZBQUEsQ0FOSCwrSkFXSyxZQUFhLENBQ2IsZ0ZBQUEsQ0FaTCx5R0FnQkksWUFBYSxDQUNiLGdGQUFBLENBakJKLDZGQXFCRyxhQUFjLENBZ0JkLGdGQUFBLENBckNILG1HQXdCSSxhQUFjLENBTWQsZ0ZBQUEsQ0E5QkosaUhBMkJLLDZCQUE4QixDQUM5QixlQUFnQixDQUNoQixnRkFBQSxDQTdCTCwrSEFrQ0ssa0NBQW1DLENBQ25DLGdGQUFBLENBbkNMLHVIQTRDSyxlQUFnQixDQVVoQixnRkFBQSxDQXRETCxxSUErQ00sWUFBYSxDQUNiLGdGQUFBLENBaEROLHVJQW1ETSxVQUFXLENBQ1gsNEJBQTZCLENBQzdCLGdGQUFBLENBckROLGtJQWlFRyxVQUFXLENBQ1gsVUFBVyxDQUNYLGdGQUFBLENBbkVILDZFQ3NDRSxtQkFoQlksQ0FpQlosd0JBUmEsQ0QrRFosMEJFaEV5QixnRkFBQSxDRjlCNUIsNkVHREksZUN3STBDLENEeEkxQyxVRUE0RCxDTCtGN0QscUVBQUEsQ0E5RkgsNkdHREksYUd3RGlCLENIeERqQixrQklvRDZCLENKcEQ3QixVS1owQixDTFkxQixhTWdCK0IsQ0Z3RDlCLHFFQUFBLENQdkVMLDZHR0RJLHFCQ3dJMEMsQ0R4STFDLGtCSW9ENkIsQ0pwRDdCLFVLSjBCLENENEV6QixDTHpDRCwwQkFBd0IsZ0ZBQUEsQ0Y5QjVCLDZFR0RJLGVDd0kwQyxDRHhJMUMsVUVBNEQsQ0wrRjdELHFFQUFBLENBOUZILDZHR0RJLGFHd0RpQixDSHhEakIsa0JJb0Q2QixDSnBEN0IsVUtaMEIsQ0xZMUIsYU1nQitCLENGd0Q5QixxRUFBQSxDUHZFTCw2R0dESSxxQkN3STBDLENEeEkxQyxrQklvRDZCLENKcEQ3QixVS0owQixDRDRFekIscUVBQUEsQ1B2RUwsNkdHREkscUJDd0kwQyxDRHhJMUMsa0JJb0Q2QixDSnBEN0IsVUtKMEIsQ0Q0RXpCLHFFQUFBLENQdkVMLDZHR0RJLHFCQ3dJMEMsQ0R4STFDLGtCSW9ENkIsQ0pwRDdCLFVLSjBCLENENEV6QixDQUFBLGlGQUFBLENQdkVMLDRWQXdHRyxVQUFXLENBQ1gsVUFBVyxDQUNYLGlGQUFBLENBMUdILHdNQW1IRyxZQUFhLENBQ2IsaUZBQUEsQ0FwSEgsd0tBdUhHLGVBQWdCLENBbUJoQixpRkFBQSxDQTFJSCx3TUEwSEksVUFBVyxDQy9IZCxVQUFXLENBQ1gsYUFBYyxDRGdJWCxtQkFBb0IsQ0FDcEIsaUZBQUEsQ0E3SEosZ21CQWtJSSxTQUFVLENBQ1YscUJBQXNCLENBQ3RCLGlGQUFBLENBcElKLGdkQXdJSSxXQUFZLENBQ1osaUZBQUEsQ0F6SUosdVNBaUpHLFVBQVcsQ0FDWCxVQUFXLENBQ1gsZUFBZ0IsQ0FDaEIsaUZBQUEsQ0FwSkgsbUhBNkpJLFVBQVcsQ0FDWCxVQUFXLENBQ1gsaUZBQUEsQ0EvSkosK0RBcUtHLGVBQWdCLENBQ2hCLFNBQVUsQ0FDVixpRkFBQSxDQXZLSCwyRUEwS0csVUFBVyxDQUNYLFVBQVcsQ0FDWCxxQkFBc0IsQ0FDdEIsaUJBQWtCLENBQ2xCLGlGQUFBLENBOUtILGdOQXVMRyxVQUFXLENBQ1gsVUFBVyxDQUNYLGNBQWUsQ0FDZixpRkFBQSxDQU9ILHVDQUdHLDRCQUE2QixDQUM3Qiw2QkFBOEIiLCJmaWxlIjoid29vY29tbWVyY2Utc21hbGxzY3JlZW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnbW9kdWxhcnNjYWxlJztcblxuJGZvbnQtcGF0aDogJ0ZvbnRzJyAhZGVmYXVsdDtcblxuQGZvbnQtZmFjZXtcblx0Zm9udC1mYW1pbHk6ICdNaW5pc3RlciBXMDEgTGlnaHQnO1xuXHRzcmM6IHVybCgnI3skZm9udC1wYXRofS9iNTM3NzQ1ZS1mODEzLTQ1OWYtODg4MC0yN2U0YmYwNDFhNzEuZW90PyNpZWZpeCcpO1xuXHRzcmM6IHVybCgnI3skZm9udC1wYXRofS9iNTM3NzQ1ZS1mODEzLTQ1OWYtODg4MC0yN2U0YmYwNDFhNzEuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW90JyksIHVybCgnI3skZm9udC1wYXRofS9hOTljYmUyOC1mODBjLTQ0ZjktYjVhYi1jZWU1NzBjMzU2Mjcud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnI3skZm9udC1wYXRofS84MDc5NDgzYS0wNmQ0LTQ2NjItOTJlMi0zYzRmYTY2ZGI4M2Mud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJyN7JGZvbnQtcGF0aH0vNmU5YWY0ZDEtMTMwYi00YjJiLTg0OWYtYWVhNGVkZmQ1NzYyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCcjeyRmb250LXBhdGh9LzA0ZmQzOWRjLTllOTQtNDQ2Mi04ZDYxLWUyOTE1NzIzYTlkZS5zdmcjMDRmZDM5ZGMtOWU5NC00NDYyLThkNjEtZTI5MTU3MjNhOWRlJykgZm9ybWF0KCdzdmcnKTtcbn1cbkBmb250LWZhY2V7XG5cdGZvbnQtZmFtaWx5OiAnTWluaXN0ZXIgVzAxIEJvb2snO1xuXHRzcmM6IHVybCgnI3skZm9udC1wYXRofS8yMmZjZGFhNS0xZmVhLTQ4MDktYTM3ZS1lNWJiMzM3MDVmOTguZW90PyNpZWZpeCcpO1xuXHRzcmM6IHVybCgnI3skZm9udC1wYXRofS8yMmZjZGFhNS0xZmVhLTQ4MDktYTM3ZS1lNWJiMzM3MDVmOTguZW90PyNpZWZpeCcpIGZvcm1hdCgnZW90JyksIHVybCgnI3skZm9udC1wYXRofS9hM2UzMmYyMS05NjM5LTRjMTQtYmQ4Mi05MzhiZjA5Y2VmNjkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnI3skZm9udC1wYXRofS9iN2ZkZThkYS03OGVmLTQyZjUtOWM2Mi02YTQxNDgyZGI0NmQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJyN7JGZvbnQtcGF0aH0vYzRkNTY0YzktNTBmYS00MzgyLWJiZDEtMzMzZDNjY2EzYmUyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCcjeyRmb250LXBhdGh9LzBkNTBkZDhiLTJkZTUtNGJmNi05MmMzLWI5ODBhNmU0OGVmZi5zdmcjMGQ1MGRkOGItMmRlNS00YmY2LTkyYzMtYjk4MGE2ZTQ4ZWZmJykgZm9ybWF0KCdzdmcnKTtcbn1cbkBmb250LWZhY2V7XG5cdGZvbnQtZmFtaWx5OiAnUHJveGltYSBOb3ZhIFcwNyBTZW1pYm9sZCc7XG5cdHNyYzogdXJsKCcjeyRmb250LXBhdGh9LzFhM2ViMWY4LTg1OTEtNGZmNi05MzcyLWQ3Y2ViYmI5Yzk0YS5lb3Q/I2llZml4Jyk7XG5cdHNyYzogdXJsKCcjeyRmb250LXBhdGh9LzFhM2ViMWY4LTg1OTEtNGZmNi05MzcyLWQ3Y2ViYmI5Yzk0YS5lb3Q/I2llZml4JykgZm9ybWF0KCdlb3QnKSwgdXJsKCcjeyRmb250LXBhdGh9LzI1MmNlZDgyLTc3YjItNGExMS1iYjA0LTIyZGM5NjRlMWU5My53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcjeyRmb250LXBhdGh9LzcwODk1YTc2LWYyYjctNDM0Ni1iYTM5LWU4NjY1YzJiNTEzZi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnI3skZm9udC1wYXRofS8wZWY2MGUyYy0wMDA5LTRmYWMtOWE0OS00MDAwMzMzMmVjNGIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJyN7JGZvbnQtcGF0aH0vNmY4MzI4YmQtYWQ1Yy00NmI2LTgyMTAtNzNmMDI0MmVmMTNkLnN2ZyM2ZjgzMjhiZC1hZDVjLTQ2YjYtODIxMC03M2YwMjQyZWYxM2QnKSBmb3JtYXQoJ3N2ZycpO1xufVxuQGZvbnQtZmFjZXtcblx0Zm9udC1mYW1pbHk6ICdQcm94aW1hIE5vdmEgVzA4IFJlZyc7XG5cdHNyYzogdXJsKCcjeyRmb250LXBhdGh9LzAwMjBlYjMwLWM5OGMtNGE3Ni1hYWE1LWMzOTM3NGYxNDUzNC5lb3Q/I2llZml4Jyk7XG5cdHNyYzogdXJsKCcjeyRmb250LXBhdGh9LzAwMjBlYjMwLWM5OGMtNGE3Ni1hYWE1LWMzOTM3NGYxNDUzNC5lb3Q/I2llZml4JykgZm9ybWF0KCdlb3QnKSwgdXJsKCcjeyRmb250LXBhdGh9Lzc4MWM1NDUzLTAwNjctNGU2NC05Mzg2LTdjMDcyNmQ2M2Q1Ny53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcjeyRmb250LXBhdGh9LzUxMGRmMGU1LTViOWYtNGExYy1iNDZhLWJjZjE3MzliZGE0My53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnI3skZm9udC1wYXRofS80N2UwODExOC01MDUwLTQ2OWItYTQwYy1kYzNiMjMwN2U4N2UudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJyN7JGZvbnQtcGF0aH0vZDkzYmQ0MDktNzM4MC00YmI4LTlkOWYtZDgwMzViNWUwMzg3LnN2ZyNkOTNiZDQwOS03MzgwLTRiYjgtOWQ5Zi1kODAzNWI1ZTAzODcnKSBmb3JtYXQoJ3N2ZycpO1xufVxuXG4kbXMtcmF0aW86IDEuMjtcblxuJGZvbnRfX3NlcmlmLWxpZ2h0OiAnTWluaXN0ZXIgVzAxIExpZ2h0JztcbiRmb250X19zZXJpZi1ib29rOiAnTWluaXN0ZXIgVzAxIEJvb2snO1xuJGZvbnRfX3NhbnMtc2VyaWYtc2VtaWJvbGQ6ICdQcm94aW1hIE5vdmEgVzA3IFNlbWlib2xkJywgc2Fucy1zZXJpZjtcbiRmb250X19zYW5zLXNlcmlmLXJlZ3VsYXI6ICdQcm94aW1hIE5vdmEgVzA4IFJlZycsIHNhbnMtc2VyaWY7XG5cbiRmb250X19tYWluOiAkZm9udF9fc2VyaWYtbGlnaHQsIHNlcmlmO1xuJGZvbnRfX2hlYWRpbmdzOiAkZm9udF9fbWFpbjtcbiRmb250X19jb2RlOiBNb25hY28sIENvbnNvbGFzLCAnQW5kYWxlIE1vbm8nLCAnRGVqYVZ1IFNhbnMgTW9ubycsIG1vbm9zcGFjZTtcbiRmb250X19wcmU6ICdDb3VyaWVyIDEwIFBpdGNoJywgQ291cmllciwgbW9ub3NwYWNlO1xuJGZvbnRfX2xpbmUtaGVpZ2h0LWJvZHk6IDIwIC8gMTY7XG4kZm9udF9fbGluZS1oZWlnaHQtcHJlOiAxLjY7XG4kZm9udF9fd2VpZ2h0LWJvZHk6IDQwMDtcbiRmb250X193ZWlnaHQtaGVhZGluZ3M6IDQwMDtcbiIsIi8qKlxuICogd29vY29tbWVyY2Utc21hbGxzY3JlZW4uc2Nzc1xuICogT3B0aW1pc2VzIHRoZSBkZWZhdWx0IFdvb0NvbW1lcmNlIGZyb250ZW5kIGxheW91dCB3aGVuIHZpZXdlZCBvbiBzbWFsbGVyIHNjcmVlbnMuXG4gKi9cblxuLyoqXG4gKiBJbXBvcnRzXG4gKi9cbiRmb250LXBhdGg6IFwiLi4vZm9udHMvXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vc2Fzcy92YXJpYWJsZXMtc2l0ZS92YXJpYWJsZXMtc2l0ZVwiO1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uLy4uL3Nhc3MvbWl4aW5zL21peGlucy1tYXN0ZXJcIjtcbkBpbXBvcnQgXCJzdXN5XCI7XG5cbi8qKlxuICogU3R5bGUgYmVnaW5zXG4gKi9cbi53b29jb21tZXJjZSxcbi53b29jb21tZXJjZS1wYWdlIHtcblxuXHR0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUge1xuXHRcdHRoZWFkIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0dGJvZHkge1xuXHRcdFx0dHI6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHR0ZDpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0Ym9yZGVyLXRvcDogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR0aCB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dHIge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdHRkIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS10aXRsZSkgJzogJztcblx0XHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCY6bnRoLWNoaWxkKDJuKSB7XG5cdFx0XHRcdHRkIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMDI1KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHRhYmxlLm15X2FjY291bnRfb3JkZXJzIHtcblx0XHR0ciB7XG5cdFx0XHR0ZCB7XG5cdFx0XHRcdCYub3JkZXItYWN0aW9ucyB7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LmJ1dHRvbiB7XG5cdFx0XHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0XHRcdG1hcmdpbjogLjEyNWVtIC4yNWVtIC4xMjVlbSAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmFsIGxheW91dFxuXHQgKi9cblx0LmNvbDItc2V0IHtcblx0XHQuY29sLTEsXG5cdFx0LmNvbC0yIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFByb2R1Y3RzXG5cdCAqL1xuXHR1bC5wcm9kdWN0cyB7XG5cdFx0bGkucHJvZHVjdCB7XG5cdFx0XHRAaW5jbHVkZSByZW0tZmFsbGJhY2sobWFyZ2luLCAwLCAwLCAkZm9udF9fbGluZS1oZWlnaHQtYm9keSk7XG5cblx0XHRcdC8vIHdpZHRoOiA0OCU7XG5cdFx0XHQvLyBmbG9hdDogbGVmdDtcblx0XHRcdC8vIGNsZWFyOiBib3RoO1xuXHRcdFx0Ly8gbWFyZ2luOiAwIDAgMi45OTJlbTtcblx0XHRcdC8vXG5cdFx0XHQvLyAmOm50aC1jaGlsZCgybikge1xuXHRcdFx0Ly9cdCBmbG9hdDogcmlnaHQ7XG5cdFx0XHQvL1x0IGNsZWFyOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHQvLyB9XG5cblx0XHRcdEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgkbWluLXdpZHRoLXBob25lLWxhcmdlLCAkY29sdW1ucy1waG9uZS1sYXJnZSkge1xuXHRcdFx0XHRAaW5jbHVkZSBnYWxsZXJ5KDMgb2YgJGNvbHVtbnMtcGhvbmUtbGFyZ2UpO1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoJG1pbi13aWR0aC10YWJsZXQtcG9ydHJhaXQsICRjb2x1bW5zLXRhYmxldC1wb3J0cmFpdCkge1xuXHRcdFx0XHRAaW5jbHVkZSBnYWxsZXJ5KDIgb2YgJGNvbHVtbnMtdGFibGV0LXBvcnRyYWl0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUHJvZHVjdCBEZXRhaWxzXG5cdCAqL1xuXHRkaXYucHJvZHVjdCxcblx0I2NvbnRlbnQgZGl2LnByb2R1Y3Qge1xuXHRcdGRpdi5pbWFnZXMsXG5cdFx0ZGl2LnN1bW1hcnkge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2FydFxuXHQgKi9cblx0dGFibGUuY2FydCxcblx0I2NvbnRlbnQgdGFibGUuY2FydCB7XG5cdFx0LnByb2R1Y3QtdGh1bWJuYWlsIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0dGQuYWN0aW9ucyB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0XHQuY291cG9uIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAuNWVtO1xuXHRcdFx0fVxuXG5cdFx0XHRpbnB1dCxcblx0XHRcdC5idXR0b24sXG5cdFx0XHQuaW5wdXQtdGV4dCB7XG5cdFx0XHRcdHdpZHRoOiA0OCU7XG5cdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHR9XG5cblx0XHRcdC5pbnB1dC10ZXh0ICsgLmJ1dHRvbixcblx0XHRcdC5idXR0b24uYWx0IHtcblx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5jYXJ0LWNvbGxhdGVyYWxzIHtcblx0XHQuY2FydF90b3RhbHMsXG5cdFx0LnNoaXBwaW5nX2NhbGN1bGF0b3IsXG5cdFx0LmNyb3NzLXNlbGxzIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja291dFxuXHQgKi9cblx0Ji53b29jb21tZXJjZS1jaGVja291dCB7XG5cdFx0Zm9ybS5sb2dpbiB7XG5cdFx0XHQuZm9ybS1yb3cge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0I3BheW1lbnQge1xuXHRcdC50ZXJtcyB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cblx0XHQjcGxhY2Vfb3JkZXIge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEFjY291bnRcblx0ICovXG5cdC5sb3N0X3Jlc2V0X3Bhc3N3b3JkIHtcblx0XHQuZm9ybS1yb3ctZmlyc3QsXG5cdFx0LmZvcm0tcm93LWxhc3Qge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBUd2VudHkgVGhpcnRlZW4gc3BlY2lmaWMgc3R5bGVzXG4gKi9cbi5zaW5nbGUtcHJvZHVjdCB7XG5cdC50d2VudHl0aGlydGVlbiB7XG5cdFx0LnBhbmVsIHtcblx0XHRcdHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50O1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjBweCAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxufVxuIiwiLy8gUmVtIG91dHB1dCB3aXRoIHB4IGZhbGxiYWNrXG5AbWl4aW4gZm9udC1zaXplKCRzaXplVmFsdWU6IDEpIHtcblx0Zm9udC1zaXplOiAoc3RyaXAtdW5pdCgkc2l6ZVZhbHVlKSAqIDE2KSArIHB4O1xuXHRmb250LXNpemU6IHN0cmlwLXVuaXQoJHNpemVWYWx1ZSkgKyByZW07XG59XG5cbi8vIENlbnRlciBibG9ja1xuQG1peGluIGNlbnRlci1ibG9jayB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tbGVmdDogYXV0bztcblx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vLyBDbGVhcmZpeFxuQG1peGluIGNsZWFyZml4KCkge1xuXHRjb250ZW50OiBcIlwiO1xuXHRkaXNwbGF5OiB0YWJsZTtcbn1cblxuLy8gQ2xlYXIgYWZ0ZXIgKG5vdCBhbGwgY2xlYXJmaXggbmVlZCB0aGlzIGFsc28pXG5AbWl4aW4gY2xlYXJmaXgtYWZ0ZXIoKSB7XG5cdGNsZWFyOiBib3RoO1xufVxuXG5AbWl4aW4gY2xlYXItYWZ0ZXIoKSB7XG5cdCY6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cdFx0QGluY2x1ZGUgY2xlYXJmaXgtYWZ0ZXIoKTtcblx0fVxufVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG5AbWl4aW4gcmVtLWZhbGxiYWNrKCRwcm9wZXJ0eSwgJHZhbHVlcy4uLikge1xuICAkbWF4OiBsZW5ndGgoJHZhbHVlcyk7XG4gICRweFZhbHVlczogJyc7XG4gICRyZW1WYWx1ZXM6ICcnO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KG50aCgkdmFsdWVzLCAkaSkpO1xuICAgICRweFZhbHVlczogI3skcHhWYWx1ZXMgKyAkdmFsdWUqMTZ9cHg7XG5cbiAgICBAaWYgJGkgPCAkbWF4IHtcbiAgICAgICRweFZhbHVlczogI3skcHhWYWx1ZXMgKyBcIiBcIn07XG4gICAgfVxuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQobnRoKCR2YWx1ZXMsICRpKSk7XG4gICAgJHJlbVZhbHVlczogI3skcmVtVmFsdWVzICsgJHZhbHVlfXJlbTtcblxuICAgIEBpZiAkaSA8ICRtYXgge1xuICAgICAgJHJlbVZhbHVlczogI3skcmVtVmFsdWVzICsgXCIgXCJ9O1xuICAgIH1cbiAgfVxuXG4gICN7JHByb3BlcnR5fTogJHB4VmFsdWVzO1xuICAjeyRwcm9wZXJ0eX06ICRyZW1WYWx1ZXM7XG59XG5cbi8vLyBIb3Jpem9udGFsLCB2ZXJ0aWNhbCBvciBhYnNvbHV0ZSBjZW50ZXJpbmdcbi8vLyBJZiBzcGVjaWZpZWQsIHRoaXMgbWl4aW4gd2lsbCB1c2UgbmVnYXRpdmUgbWFyZ2luc1xuLy8vIGJhc2VkIG9uIGVsZW1lbnQncyBkaW1lbnNpb25zLiBFbHNlLCBpdCB3aWxsIHJlbHlcbi8vLyBvbiBDU1MgdHJhbnNmb3JtcyB3aGljaCBoYXZlIGEgbGVzc2VyIGJyb3dzZXIgc3VwcG9ydFxuLy8vIGJ1dCBhcmUgbW9yZSBmbGV4aWJsZSBhcyB0aGV5IGRvbid0IHJlcXVpcmUgdG8gc2V0XG4vLy8gYW55IHNwZWNpZmljIGRpbWVuc2lvbnMgdG8gdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xlbmd0aCB8IG51bGx9ICR3aWR0aCBbbnVsbF0gLSBFbGVtZW50IHdpZHRoXG4vLy8gQHBhcmFtIHtMZW5ndGggfCBudWxsfSAkaGVpZ2h0IFtudWxsXSAtIEVsZW1lbnQgaGVpZ2h0XG4vLy9cbkBtaXhpbiBjZW50ZXIoJHdpZHRoOiBudWxsLCAkaGVpZ2h0OiBudWxsKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcblxuICBAaWYgbm90ICR3aWR0aCBhbmQgbm90ICRoZWlnaHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB9IEBlbHNlIGlmICR3aWR0aCBhbmQgJGhlaWdodCB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbWFyZ2luOiAtKCR3aWR0aCAvIDIpICN7MCAwfSAtKCRoZWlnaHQgLyAyKVxuICB9IEBlbHNlIGlmIG5vdCAkaGVpZ2h0IHtcbiAgICBtYXJnaW4tbGVmdDogLSgkd2lkdGggLyAyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgbWFyZ2luLXRvcDogLSgkaGVpZ2h0IC8gMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfVxufVxuIiwiLy8gQnJlYWtwb2ludCBJbnRlZ3JhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG4kc3VzeS1tZWRpYTogKCkgIWRlZmF1bHQ7XG4kc3VzeS1tZWRpYS1mYWxsYmFjazogZmFsc2UgIWRlZmF1bHQ7XG5cbiRfc3VzeS1tZWRpYS1jb250ZXh0OiAoKTtcblxuXG4vLyBTdXN5IEJyZWFrcG9pbnRcbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gQ2hhbmdlIGdyaWRzIGF0IGRpZmZlcmVudCBtZWRpYSBxdWVyeSBicmVha3BvaW50cy5cbi8vIC0gJHF1ZXJ5ICAgICA6IDxtaW4td2lkdGg+IFs8bWF4LXdpZHRoPl0gfCA8cHJvcGVydHk+IDx2YWx1ZT4gfCA8bWFwPlxuLy8gLSAkbGF5b3V0ICAgIDogPHNldHRpbmdzPlxuLy8gLSAkbm8tcXVlcnkgIDogPGJvb2xlYW4+IHwgPHNlbGVjdG9yPlxuQG1peGluIHN1c3ktYnJlYWtwb2ludChcbiAgJHF1ZXJ5LFxuICAkbGF5b3V0OiBmYWxzZSxcbiAgJG5vLXF1ZXJ5OiAkc3VzeS1tZWRpYS1mYWxsYmFja1xuKSB7XG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEtcm91dGVyKCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGlmICRsYXlvdXQge1xuICAgICAgQGluY2x1ZGUgd2l0aC1sYXlvdXQoJGxheW91dCkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFN1c3kgTWVkaWFcbi8vIC0tLS0tLS0tLS1cbi8vIC0gJHF1ZXJ5OiA8bWluLXdpZHRoPiBbPG1heC13aWR0aD5dIHwgPHByb3BlcnR5PiA8dmFsdWU+XG4vLyAtICRuby1xdWVyeTogPGJvb2xlYW4+IHwgPHNlbGVjdG9yPlxuQG1peGluIHN1c3ktbWVkaWEoXG4gICRxdWVyeSxcbiAgJG5vLXF1ZXJ5OiAkc3VzeS1tZWRpYS1mYWxsYmFja1xuKSB7XG4gICRvbGQtY29udGV4dDogJF9zdXN5LW1lZGlhLWNvbnRleHQ7XG4gICRuYW1lOiBpZihtYXAtaGFzLWtleSgkc3VzeS1tZWRpYSwgJHF1ZXJ5KSwgJHF1ZXJ5LCBudWxsKTtcbiAgJHF1ZXJ5OiBzdXN5LWdldC1tZWRpYSgkcXVlcnkpO1xuICAkcXVlcnk6IHN1c3ktcGFyc2UtbWVkaWEoJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBzdXN5LW1lZGlhLWNvbnRleHQoJHF1ZXJ5LCAkbmFtZSk7XG5cbiAgQGlmICRuby1xdWVyeSBhbmQgdHlwZS1vZigkbm8tcXVlcnkpICE9IHN0cmluZyB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2Uge1xuICAgIEBtZWRpYSAje3N1c3ktcmVuZGVyLW1lZGlhKCRxdWVyeSl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRuby1xdWVyeSkgPT0gc3RyaW5nIHtcbiAgICAgICN7JG5vLXF1ZXJ5fSAmIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1tZWRpYS1jb250ZXh0KCRvbGQtY29udGV4dCwgJGNsZWFuOiB0cnVlKTtcbn1cblxuXG4vLyBNZWRpYSBSb3V0ZXJcbi8vIC0tLS0tLS0tLS0tLVxuLy8gUm91dCBtZWRpYSBhcmd1bWVudHMgdG8gdGhlIGNvcnJlY3QgbWl4aW4uXG5AbWl4aW4gc3VzeS1tZWRpYS1yb3V0ZXIoXG4gICRxdWVyeSxcbiAgJG5vLXF1ZXJ5OiAkc3VzeS1tZWRpYS1mYWxsYmFja1xuKSB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoYnJlYWtwb2ludCwgKG1peGluOiBicmVha3BvaW50KSwgJHdhcm46IGZhbHNlKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBzdXN5LW1lZGlhKCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBVcGRhdGUgQ29udGV4dFxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gU2V0IHRoZSBuZXcgbWVkaWEgY29udGV4dFxuQG1peGluIHN1c3ktbWVkaWEtY29udGV4dChcbiAgJHF1ZXJ5LFxuICAkbmFtZTogbnVsbCxcbiAgJGNsZWFuOiBmYWxzZVxuKSB7XG4gICRxdWVyeTogbWFwLW1lcmdlKChuYW1lOiAkbmFtZSksICRxdWVyeSk7XG5cbiAgQGlmICRjbGVhbiB7XG4gICAgJF9zdXN5LW1lZGlhLWNvbnRleHQ6ICRxdWVyeSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkX3N1c3ktbWVkaWEtY29udGV4dDogbWFwLW1lcmdlKCRfc3VzeS1tZWRpYS1jb250ZXh0LCAkcXVlcnkpICFnbG9iYWw7XG4gIH1cbn1cblxuXG4vLyBNZWRpYSBDb250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlIGZ1bGwgbWVkaWEgY29udGV4dCwgb3IgYSBzaW5nbGUgbWVkaWEgcHJvcGVydHkgKGUuZy4gbWluLXdpZHRoKVxuQGZ1bmN0aW9uIHN1c3ktbWVkaWEtY29udGV4dChcbiAgJHByb3BlcnR5OiBmYWxzZVxuKSB7XG4gIEBpZiAkcHJvcGVydHkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkX3N1c3ktbWVkaWEtY29udGV4dCwgJHByb3BlcnR5KTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkX3N1c3ktbWVkaWEtY29udGV4dDtcbiAgfVxufVxuXG5cbi8vIEdldCBNZWRpYVxuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBuYW1lZCBtZWRpYS1xdWVyeSBmcm9tICRzdXN5LW1lZGlhLlxuLy8gLSAkbmFtZTogPGtleT5cbkBmdW5jdGlvbiBzdXN5LWdldC1tZWRpYShcbiAgJG5hbWVcbikge1xuICBAaWYgbWFwLWhhcy1rZXkoJHN1c3ktbWVkaWEsICRuYW1lKSB7XG4gICAgJG1hcC12YWx1ZTogbWFwLWdldCgkc3VzeS1tZWRpYSwgJG5hbWUpO1xuICAgIEBpZiAoJG5hbWUgPT0gJG1hcC12YWx1ZSkge1xuICAgICAgJG5hbWU6ICRtYXAtdmFsdWU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkbmFtZTogc3VzeS1nZXQtbWVkaWEoJG1hcC12YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmFtZTtcbn1cblxuXG4vLyBSZW5kZXIgTWVkaWFcbi8vIC0tLS0tLS0tLS0tLVxuLy8gQnVpbGQgYSBtZWRpYS1xdWVyeSBzdHJpbmcgZnJvbSB2YXJpb3VzIG1lZGlhIHNldHRpbmdzXG5AZnVuY3Rpb24gc3VzeS1yZW5kZXItbWVkaWEoXG4gICRxdWVyeVxuKSB7XG4gICRvdXRwdXQ6IG51bGw7XG4gIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRxdWVyeSB7XG4gICAgJHN0cmluZzogbnVsbDtcblxuICAgIEBpZiAkcHJvcGVydHkgPT0gbWVkaWEge1xuICAgICAgJHN0cmluZzogJHZhbHVlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHN0cmluZzogJygjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfSknO1xuICAgIH1cblxuICAgICRvdXRwdXQ6IGlmKCRvdXRwdXQsICcjeyRvdXRwdXR9IGFuZCAjeyRzdHJpbmd9JywgJHN0cmluZyk7XG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cblxuLy8gUGFyc2UgTWVkaWFcbi8vIC0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gcGFyc2VkIG1lZGlhLXF1ZXJ5IHNldHRpbmdzIGJhc2VkIG9uIHNob3J0aGFuZFxuQGZ1bmN0aW9uIHN1c3ktcGFyc2UtbWVkaWEoXG4gICRxdWVyeVxuKSB7XG4gICRtcTogbnVsbDtcbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBtYXAge1xuICAgICRtcTogJHF1ZXJ5O1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBudW1iZXIge1xuICAgICRtcTogKG1pbi13aWR0aDogJHF1ZXJ5KTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbGlzdCBhbmQgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09IG51bWJlciB7XG4gICAgICAkbXE6IChcbiAgICAgICAgbWluLXdpZHRoOiBtaW4oJHF1ZXJ5Li4uKSxcbiAgICAgICAgbWF4LXdpZHRoOiBtYXgoJHF1ZXJ5Li4uKSxcbiAgICAgICk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkbXE6IChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJG1xOiAobWVkaWE6ICcjeyRxdWVyeX0nKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1xO1xufVxuIiwiLy8gcmVtIFN1cHBvcnRcbi8vID09PT09PT09PT09XG5cbi8vIHJlbVxuLy8gLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3Igb3V0cHV0IGRpcmVjdGx5LlxuLy8gLSAkcHJvcCAgOiA8Y3NzIHByb3BlcnR5PlxuLy8gLSAkdmFsICAgOiA8Y3NzIHZhbHVlPlxuQG1peGluIHN1c3ktcmVtKFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gICRfcmVxczogKFxuICAgIHZhcmlhYmxlOiByaHl0aG0tdW5pdCByZW0td2l0aC1weC1mYWxsYmFjayxcbiAgICBtaXhpbjogcmVtLFxuICApO1xuICBAaWYgc3VzeS1zdXBwb3J0KHJlbSwgJF9yZXFzLCAkd2FybjogZmFsc2UpIGFuZCAkcmh5dGhtLXVuaXQgPT0gcmVtIHtcbiAgICBAaW5jbHVkZSByZW0oJHByb3AsICR2YWwpO1xuICB9IEBlbHNlIHtcbiAgICAjeyRwcm9wfTogJHZhbDtcbiAgfVxufVxuIiwiLy8gU3BhbiBTeW50YXhcbi8vID09PT09PT09PT09XG5cbi8vIFNwYW4gW21peGluXVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBzcGFubmluZyBlbGVtZW50IHVzaW5nIHNob3J0aGFuZCBzeW50YXguXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbjogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRvdXRwdXQ6IHNwYW4tbWF0aCgkc3Bhbik7XG4gICRuZXN0aW5nOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjbGVhcjogc3VzeS1nZXQoY2xlYXIsICRzcGFuKTtcblxuICAkYm94OiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRjb250ZW50LWJveDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpICE9ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuICAkYm94OiAkYm94IG9yIGlmKGlzLWluc2lkZSgkc3BhbikgYW5kICRjb250ZW50LWJveCwgYm9yZGVyLWJveCwgbnVsbCk7XG5cbiAgQGlmICRjbGVhciA9PSBicmVhayB7XG4gICAgQGluY2x1ZGUgYnJlYWs7XG4gIH0gQGVsc2UgaWYgJGNsZWFyID09IG5vYnJlYWsge1xuICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc3BhbiwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTtcbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgQGlmIHZhbGlkLWNvbHVtbnMoJG5lc3RpbmcsIHNpbGVudCkge1xuICAgIEBpbmNsdWRlIG5lc3RlZCgkc3BhbikgeyBAY29udGVudDsgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTcGFuIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIHNwYW4uXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQGZ1bmN0aW9uIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgQHJldHVybiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG59XG5cbi8vIFNwYW4gTWF0aFxuLy8gLS0tLS0tLS0tXG4vLyBHZXQgYWxsIHRoZSBzcGFuIHJlc3VsdHMuXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIHNwYW4tbWF0aChcbiAgJHNwYW5cbikge1xuICAkbmVzdCAgICAgICAgICAgICA6IGlmKHN1c3ktZ2V0KHJvbGUsICRzcGFuKSA9PSBuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRzcGxpdC1uZXN0ICAgICAgIDogaWYoaXMtc3BsaXQoJHNwYW4pIGFuZCAkbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkZWRnZSAgICAgICAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgICAgICAgOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuXG4gICRmbG9hdCAgICAgICAgICAgIDogZnJvbTtcbiAgJHBhZGRpbmctYmVmb3JlICAgOiBudWxsO1xuICAkcGFkZGluZy1hZnRlciAgICA6IG51bGw7XG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbDtcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsO1xuXG4gIC8vIGNhbGN1bGF0ZSB3aWR0aHNcbiAgJHNwcmVhZDogaW5kZXgobWFwLXZhbHVlcygkc3BhbiksIHNwcmVhZCk7XG4gICRzcGFuOiBpZigkc3BsaXQtbmVzdCBhbmQgbm90KCRzcHJlYWQpLCBtYXAtbWVyZ2UoJHNwYW4sIChzcHJlYWQ6IHdpZGUpKSwgJHNwYW4pO1xuICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbiAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAvLyBhcHBseSBndXR0ZXJzXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaWYgbm90KHN1c3ktZ2V0KHJvbGUsICRzcGFuKSkge1xuICAgICAgJHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJHBhZGRpbmctYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QoJHNwbGl0LW5lc3QpIHtcbiAgICAgICRtYXJnaW4tYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJG1hcmdpbi1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNwZWNpYWwgbWFyZ2luIGhhbmRsaW5nXG4gIEBpZiBzdXN5LWdldChvdXRwdXQsICRzcGFuKSA9PSBpc29sYXRlIGFuZCAkbG9jYXRpb24ge1xuICAgICRtYXJnaW4tYmVmb3JlOiBnZXQtaXNvbGF0aW9uKCRzcGFuKTtcbiAgICAkbWFyZ2luLWFmdGVyOiAtMTAwJTtcbiAgfSBAZWxzZSBpZiAkZWRnZSB7XG4gICAgJGlzLXNwbGl0OiBpcy1zcGxpdCgkc3Bhbik7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG5cbiAgICBAaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkZmxvYXQ6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJHNwYW4pO1xuICAgIH1cblxuICAgIEBpZiBub3QoJGlzLXNwbGl0KSB7XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gZmlyc3QgYW5kICRwb3MgPT0gYmVmb3JlKSB7XG4gICAgICAgICRtYXJnaW4tYmVmb3JlOiAwO1xuICAgICAgfVxuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGxhc3QgYW5kICRwb3MgPT0gYWZ0ZXIpIHtcbiAgICAgICAgJG1hcmdpbi1hZnRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gKFxuICAgIHdpZHRoICAgICAgICAgICA6ICR3aWR0aCxcbiAgICBmbG9hdCAgICAgICAgICAgOiAkZmxvYXQsXG4gICAgbWFyZ2luLWJlZm9yZSAgIDogJG1hcmdpbi1iZWZvcmUsXG4gICAgbWFyZ2luLWFmdGVyICAgIDogJG1hcmdpbi1hZnRlcixcbiAgICBwYWRkaW5nLWJlZm9yZSAgOiAkcGFkZGluZy1iZWZvcmUsXG4gICAgcGFkZGluZy1hZnRlciAgIDogJHBhZGRpbmctYWZ0ZXIsXG4gICAgZmxvdyAgICAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xufVxuXG4vLyBHZXQgU3BhbiBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBzcGFuIHdpZHRoLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBnZXQtc3Bhbi13aWR0aChcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcblxuICAkbiAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRsb2NhdGlvbiA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGd1dHRlcnMgIDogc3VzeS1nZXQoZ3V0dGVycywgJHNwYW4pO1xuICAkc3ByZWFkICAgOiBzdXN5LWdldChzcHJlYWQsICRzcGFuKTtcblxuICAkY29udGV4dCAgOiBudWxsO1xuICAkc3Bhbi1zdW0gOiBudWxsO1xuICAkd2lkdGggICAgOiBudWxsO1xuXG4gIEBpZiAkbiA9PSAnZnVsbCcge1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuICAgICRyb2xlOiBzdXN5LWdldChyb2xlLCAkc3Bhbik7XG4gICAgJG46IGlmKCRwb3MgPT0gc3BsaXQgYW5kICRyb2xlICE9IG5lc3QsIHN1c3ktY291bnQoJGNvbHVtbnMpLCAxMDAlKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRuKSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiKCN7dHlwZS1vZigkbil9KSAjeyRufSBpcyBub3QgYSB2YWxpZCBzcGFuLlwiO1xuICB9IEBlbHNlIGlmIHVuaXRsZXNzKCRuKSB7XG4gICAgJGNvbnRleHQ6IHN1c3ktc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgaWYoaXMtc3BsaXQoJHNwYW4pLCB3aWRlLCBuYXJyb3cpKTtcbiAgICAkc3ByZWFkOiBpZihpcy1pbnNpZGUoJHNwYW4pLCAkc3ByZWFkIG9yIHdpZGUsICRzcHJlYWQpO1xuICAgICRzcGFuLXN1bTogc3VzeSgkbiwgJGxvY2F0aW9uLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQpO1xuXG4gICAgJF9tYXRoOiBzdXN5LWdldChtYXRoLCAkc3Bhbik7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJHNwYW4pO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICR3aWR0aDogJHNwYW4tc3VtICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc3VtIC8gJGNvbnRleHQpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHdpZHRoOiAkbjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuIiwiLy8gRGlyZWN0aW9uIEhlbHBlcnNcbi8vID09PT09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRmxvdyBEZWZhdWx0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFBSSVZBVEVcbkBpbmNsdWRlIHN1c3ktZGVmYXVsdHMoKFxuICBmbG93OiBsdHIsXG4pKTtcblxuLy8gR2V0IERpcmVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSAnZnJvbScgb3IgJ3RvJyBkaXJlY3Rpb24gb2YgYSBsdHIgb3IgcnRsIGZsb3cuXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG4vLyAtIFska2V5XSAgIDogZnJvbSB8IHRvXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbihcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAka2V5OiBmcm9tXG4pIHtcbiAgJHJldHVybjogaWYoJGZsb3cgPT0gcnRsLCAoZnJvbTogcmlnaHQsIHRvOiBsZWZ0KSwgKGZyb206IGxlZnQsIHRvOiByaWdodCkpO1xuICBAcmV0dXJuIG1hcC1nZXQoJHJldHVybiwgJGtleSk7XG59XG5cbi8vIFRvXG4vLyAtLVxuLy8gUmV0dXJuIHRoZSAndG8nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiB0byhcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCB0byk7XG59XG5cbi8vIEZyb21cbi8vIC0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiBmcm9tKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICBAcmV0dXJuIGdldC1kaXJlY3Rpb24oJGZsb3csIGZyb20pO1xufVxuIiwiLy8gSXNvbGF0aW9uIFN5bnRheFxuLy8gPT09PT09PT09PT09PT09PVxuXG5cbi8vIElzb2xhdGUgW01peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBTZXQgaXNvbGF0aW9uIGFzIGFuIG92ZXJyaWRlLlxuLy8gLSAkbG9jYXRpb246IDxzcGFuPlxuQG1peGluIGlzb2xhdGUoXG4gICRpc29sYXRlOiAxXG4pIHtcbiAgJGluc3BlY3Q6ICRpc29sYXRlO1xuXG4gICRvdXRwdXQ6IChcbiAgICBwdXNoOiBpc29sYXRlKCRpc29sYXRlKSxcbiAgICBmbG93OiBzdXN5LWdldChmbG93LCAkaXNvbGF0ZSksXG4gICk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGlzb2xhdGUsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgaXNvbGF0ZS1vdXRwdXQoJG91dHB1dC4uLik7XG59XG5cblxuLy8gSXNvbGF0ZSBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBhbiBpc29sYXRpb24gb2Zmc2V0IHdpZHRoLlxuLy8gLSAkbG9jYXRpb246IDxzcGFuPlxuQGZ1bmN0aW9uIGlzb2xhdGUoXG4gICRpc29sYXRlOiAxXG4pIHtcbiAgJGlzb2xhdGU6IHBhcnNlLXNwYW4oJGlzb2xhdGUpO1xuICAkaXNvbGF0aW9uOiBzdXN5LWdldChzcGFuLCAkaXNvbGF0ZSk7XG5cbiAgQGlmICRpc29sYXRpb24gYW5kIG5vdChnZXQtbG9jYXRpb24oJGlzb2xhdGUpKSB7XG4gICAgJG5ldzogKFxuICAgICAgc3BhbjogbnVsbCxcbiAgICAgIGxvY2F0aW9uOiAkaXNvbGF0aW9uLFxuICAgICk7XG4gICAgJGlzb2xhdGU6IG1hcC1tZXJnZSgkaXNvbGF0ZSwgJG5ldyk7XG4gIH1cblxuICBAcmV0dXJuIGdldC1pc29sYXRpb24oJGlzb2xhdGUpO1xufVxuXG5cbi8vIEdldCBJc29sYXRpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgaXNvbGF0aW9uIG9mZnNldCB3aWR0aFxuLy8gLSAkaW5wdXQ6IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LWlzb2xhdGlvbihcbiAgJGlucHV0XG4pIHtcbiAgJGxvY2F0aW9uICAgOiBnZXQtbG9jYXRpb24oJGlucHV0KTtcbiAgJGNvbHVtbnMgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkaW5wdXQpO1xuICAkd2lkdGggICAgICA6IG51bGw7XG5cbiAgQGlmIHR5cGUtb2YoJGxvY2F0aW9uKSA9PSBudW1iZXIgYW5kIG5vdCh1bml0bGVzcygkbG9jYXRpb24pKSB7XG4gICAgJHdpZHRoOiAkbG9jYXRpb247XG4gIH0gQGVsc2UgaWYgJGxvY2F0aW9uIHtcbiAgICAkcHVzaDogJGxvY2F0aW9uIC0gMTtcbiAgICBAaWYgJHB1c2ggPiAwIHtcbiAgICAgICRwdXNoOiBtYXAtbWVyZ2UoJGlucHV0LCAoXG4gICAgICAgIHNwYW46ICRwdXNoLFxuICAgICAgICBsb2NhdGlvbjogMSxcbiAgICAgICAgc3ByZWFkOiB3aWRlLFxuICAgICAgKSk7XG4gICAgICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRwdXNoKTtcbiAgICB9XG4gIH1cblxuICBAaWYgc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkaW5wdXQpID09IHNwbGl0XG4gICAgICBhbmQgc3VzeS1nZXQoZ3V0dGVycywgJGlucHV0KSA+IDAge1xuICAgICR3aWR0aDogaWYoJHdpZHRoID09IG51bGwsIGd1dHRlcnMoJGlucHV0KSwgJHdpZHRoICsgZ3V0dGVycygkaW5wdXQpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoIG9yIDA7XG59XG4iLCIvLyBHYWxsZXJ5IFN5bnRheFxuLy8gPT09PT09PT09PT09PT1cblxuLy8gR2FsbGVyeVxuLy8gLS0tLS0tLVxuLy8gQ3JlYXRlIGFuIGlzb2xhdGVkIGdhbGxlcnlcbi8vIC0gJHNwYW4gICAgICAgIDogPHNwYW4+XG4vLyAtIFskc2VsZWN0b3JdICA6IGNoaWxkIHwgb2YtdHlwZVxuQG1peGluIGdhbGxlcnkoXG4gICRzcGFuLFxuICAkc2VsZWN0b3I6IGNoaWxkXG4pIHtcbiAgJGluc3BlY3QgICAgOiAkc3BhbjtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJHNwYW4gICAgICAgOiBtYXAtbWVyZ2UoJHNwYW4sIChsb2NhdGlvbjogMSkpO1xuXG4gICRuICAgICAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjb2x1bW5zICAgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkc3Bhbik7XG4gICRjb250ZXh0ICAgICAgOiBzdXN5LWNvdW50KCRjb2x1bW5zKTtcbiAgJGZsb3cgICAgICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKTtcblxuICAkaW5zaWRlICAgICAgIDogaXMtaW5zaWRlKCRzcGFuKTtcbiAgJGZyb20gICAgICAgICA6IGZyb20oJGZsb3cpO1xuICAkbGluZSAgICAgICAgIDogZmxvb3IoJGNvbnRleHQgLyAkbik7XG4gICRzeW1tZXRyaWNhbCAgOiBpcy1zeW1tZXRyaWNhbCgkY29sdW1ucyk7XG5cbiAgJG91dHB1dDogKFxuICAgIHdpZHRoICAgICAgICAgICAgIDogbnVsbCxcbiAgICBmbG9hdCAgICAgICAgICAgICA6IGZyb20sXG4gICAgbWFyZ2luLWJlZm9yZSAgICAgOiBudWxsLFxuICAgIG1hcmdpbi1hZnRlciAgICAgIDogbnVsbCxcbiAgICBwYWRkaW5nLWJlZm9yZSAgICA6IG51bGwsXG4gICAgcGFkZGluZy1hZnRlciAgICAgOiBudWxsLFxuICAgIGZsb3cgICAgICAgICAgICAgIDogJGZsb3csXG4gICk7XG5cbiAgQGlmICRpbnNpZGUge1xuICAgICRndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG4gICAgJG91dHB1dDogbWFwLW1lcmdlKCRvdXRwdXQsIChcbiAgICAgIHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpLFxuICAgICAgcGFkZGluZy1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpLFxuICAgICkpO1xuICB9XG5cbiAgQGlmICRzeW1tZXRyaWNhbCB7XG4gICAgJG91dHB1dDogbWFwLW1lcmdlKCRvdXRwdXQsICh3aWR0aDogZ2V0LXNwYW4td2lkdGgoJHNwYW4pKSk7XG4gIH1cblxuICAkYm94ICAgICAgICAgIDogc3VzeS1nZXQoYm94LXNpemluZywgJHNwYW4pO1xuICAkZ2xvYmFsLWJveCAgIDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpID09ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChnYWxsZXJ5LCAkaW5zcGVjdCk7XG5cbiAgLy8gQ29sbGVjdGl2ZSBPdXRwdXRcbiAgQGlmICRib3ggPT0gYm9yZGVyLWJveCBvciAoJGluc2lkZSBhbmQgbm90KCRib3gpIGFuZCBub3QoJGdsb2JhbC1ib3gpKSB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiBib3JkZXItYm94KSk7XG4gIH0gQGVsc2UgaWYgJGJveCA9PSBjb250ZW50LWJveCB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiBjb250ZW50LWJveCkpO1xuICB9XG5cbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgLy8gSW5kaXZpZHVhbCBMb29wXG4gIEBmb3IgJGl0ZW0gZnJvbSAxIHRocm91Z2ggJGxpbmUge1xuICAgICRudGg6ICcjeyRsaW5lfW4gKyAjeyRpdGVtfSc7XG4gICAgJjpudGgtI3skc2VsZWN0b3J9KCN7JG50aH0pIHtcbiAgICAgIC8vIEluZGl2aWR1YWwgUHJlcFxuICAgICAgJG91dHB1dDogKFxuICAgICAgICB3aWR0aCAgICAgICAgICAgICA6IGlmKCRzeW1tZXRyaWNhbCwgbnVsbCwgZ2V0LXNwYW4td2lkdGgoJHNwYW4pKSxcbiAgICAgICAgZmxvYXQgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICBtYXJnaW4tYmVmb3JlICAgICA6IGdldC1pc29sYXRpb24oJHNwYW4pLFxuICAgICAgICBtYXJnaW4tYWZ0ZXIgICAgICA6IC0xMDAlLFxuICAgICAgICBwYWRkaW5nLWJlZm9yZSAgICA6IG51bGwsXG4gICAgICAgIHBhZGRpbmctYWZ0ZXIgICAgIDogbnVsbCxcbiAgICAgICAgZmxvdyAgICAgICAgICAgICAgOiAkZmxvdyxcbiAgICAgICk7XG5cbiAgICAgIC8vIEluZGl2aWR1YWwgT3V0cHV0XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuLW91dHB1dCgkb3V0cHV0Li4uKTtcblxuICAgICAgQGlmIGdldC1lZGdlKCRzcGFuKSA9PSBmaXJzdCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrO1xuICAgICAgICBAaW5jbHVkZSBmaXJzdCgkc3Bhbik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9icmVhaztcbiAgICAgIH1cblxuICAgICAgLy8gSW5kaXZpZHVhbCBMb2NhdGlvbiBJbmNyZW1lbnRcbiAgICAgICRsb2NhdGlvbjogZ2V0LWxvY2F0aW9uKCRzcGFuKSArICRuO1xuICAgICAgJGxvY2F0aW9uOiBpZigkbG9jYXRpb24gPiAkY29udGV4dCwgMSwgJGxvY2F0aW9uKTtcbiAgICAgICRzcGFuOiBtYXAtbWVyZ2UoJHNwYW4sIChsb2NhdGlvbjogJGxvY2F0aW9uKSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSb3cgU3RhcnQgJiBFbmRcbi8vID09PT09PT09PT09PT09PVxuXG4vLyBCcmVha1xuLy8gLS0tLS1cbi8vIEFwcGx5IHRvIGFueSBlbGVtZW50IHRoYXQgc2hvdWxkIGZvcmNlIGEgbGluZSBicmVhay5cbkBtaXhpbiBicmVhayB7XG4gIEBpbmNsdWRlIG91dHB1dCgoY2xlYXI6IGJvdGgpKTtcbn1cblxuXG4vLyBOb0JyZWFrXG4vLyAtLS0tLS0tXG4vLyBDYW5jZWwgdGhlIGJyZWFrKCkgZWZmZWN0LCBlLmcuIHdoZW4gdXNpbmcgbWVkaWEgcXVlcmllcy5cbkBtaXhpbiBub2JyZWFrIHtcbiAgQGluY2x1ZGUgb3V0cHV0KChjbGVhcjogbm9uZSkpO1xufVxuXG5cbi8vIEZ1bGxcbi8vIC0tLS1cbi8vIC0gWyRjb250ZXh0XTogPGxheW91dCBzaG9ydGhhbmQ+XG5AbWl4aW4gZnVsbChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgOiAkY29udGV4dDtcbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGZ1bGwsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgc3BhbihmdWxsIG9mIHBhcnNlLWdyaWQoJGNvbnRleHQpIGJyZWFrKTtcbn1cblxuXG4vLyBGaXJzdFxuLy8gLS0tLS1cbi8vIC0gWyRjb250ZXh0XTogPHNldHRpbmdzPlxuQG1peGluIGZpcnN0KFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkY29udGV4dDtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3JpZCgkY29udGV4dCk7XG4gICRmbG93ICAgICA6IHN1c3ktZ2V0KGZsb3csICRjb250ZXh0KTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZmlyc3QsICRpbnNwZWN0KTtcbiAgQGlmIG5vdChpcy1zcGxpdCgkY29udGV4dCkpIHtcbiAgICBAaW5jbHVkZSBmbG9hdC1maXJzdCgkZmxvdyk7XG4gIH1cbn1cblxuQG1peGluIGFscGhhKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICBAaW5jbHVkZSBmaXJzdCgkY29udGV4dCk7XG59XG5cblxuLy8gTGFzdFxuLy8gLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8c2V0dGluZ3M+XG5AbWl4aW4gbGFzdChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgIDogJGNvbnRleHQ7XG4gICRjb250ZXh0ICA6IHBhcnNlLWdyaWQoJGNvbnRleHQpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChsYXN0LCAkaW5zcGVjdCk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRjb250ZXh0KSxcbiAgICBsYXN0LWZsb3c6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJGNvbnRleHQpLFxuICAgIG1hcmdpbjogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCBudWxsLCAwKSxcbiAgKTtcblxuICBAaW5jbHVkZSBmbG9hdC1sYXN0KCRvdXRwdXQuLi4pO1xufVxuXG5AbWl4aW4gb21lZ2EoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGxhc3QoJGNvbnRleHQpO1xufVxuXG5cbi8vIEdldCBFZGdlXG4vLyAtLS0tLS0tLVxuLy8gQ2FsY3VsYXRlIGVkZ2UgdmFsdWUgYmFzZWQgb24gbG9jYXRpb24sIGlmIHBvc3NpYmxlXG5AZnVuY3Rpb24gZ2V0LWVkZ2UoXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJGVkZ2UgICAgICAgOiBzdXN5LWdldChlZGdlLCAkc3Bhbik7XG5cbiAgQGlmIG5vdCgkZWRnZSkge1xuICAgICRjb3VudDogc3VzeS1jb3VudChzdXN5LWdldChjb2x1bW5zLCAkc3BhbikpO1xuICAgICRsb2NhdGlvbjogc3VzeS1nZXQobG9jYXRpb24sICRzcGFuKTtcbiAgICAkbjogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuXG4gICAgJG51bWJlcjogaWYodHlwZS1vZigkbG9jYXRpb24pID09IG51bWJlciwgdHJ1ZSwgZmFsc2UpO1xuICAgICRpbmRleDogaWYoJG51bWJlciBhbmQgdW5pdGxlc3MoJGxvY2F0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xuXG4gICAgQGlmICRuID09ICRjb3VudCB7XG4gICAgICAkZWRnZTogZnVsbDtcbiAgICB9IEBlbHNlIGlmICRsb2NhdGlvbiBhbmQgJG4gYW5kICRpbmRleCB7XG4gICAgICBAaWYgJGxvY2F0aW9uID09IDEge1xuICAgICAgICAkZWRnZTogaWYoJG4gPT0gJGNvdW50LCBmdWxsLCBmaXJzdCk7XG4gICAgICB9IEBlbHNlIGlmICRsb2NhdGlvbiArICRuIC0gMSA9PSAkY291bnQge1xuICAgICAgICAkZWRnZTogbGFzdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGVkZ2UgPT0gYWxwaGEgb3IgJGVkZ2UgPT0gb21lZ2Ege1xuICAgICRlZGdlOiBpZigkZWRnZSA9PSBhbHBoYSwgZmlyc3QsIGxhc3QpO1xuICB9XG5cbiAgQHJldHVybiAkZWRnZTtcbn1cblxuXG4vLyBHZXQgTG9jYXRpb25cbi8vIC0tLS0tLS0tLS0tLVxuLy8gQ2FsY3VsYXRlIGxvY2F0aW9uIHZhbHVlIGJhc2VkIG9uIGVkZ2UsIGlmIHBvc3NpYmxlXG5AZnVuY3Rpb24gZ2V0LWxvY2F0aW9uKFxuICAkc3BhblxuKSB7XG4gICRzcGFuICAgICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRsb2NhdGlvbiAgIDogc3VzeS1nZXQobG9jYXRpb24sICRzcGFuKTtcbiAgJGVkZ2UgICAgICAgOiBnZXQtZWRnZSgkc3Bhbik7XG4gICRuICAgICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuXG4gIEBpZiAkZWRnZSBhbmQgbm90KCRsb2NhdGlvbikgYW5kIHR5cGUtb2YoJG4pID09IG51bWJlciBhbmQgdW5pdGxlc3MoJG4pIHtcbiAgICBAaWYgJGVkZ2UgPT0gZmlyc3Qge1xuICAgICAgJGxvY2F0aW9uOiAxO1xuICAgIH0gQGVsc2UgaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkbG9jYXRpb246IHN1c3ktY291bnQoc3VzeS1nZXQoY29sdW1ucywgJHNwYW4pKSAtICRuICsgMTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsb2NhdGlvblxufVxuIiwiLy8gRmxvYXQgRW5kcyBBUElcbi8vID09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRW5kIERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgbGFzdC1mbG93OiB0byxcbikpO1xuXG4vLyBGbG9hdCBMYXN0XG4vLyAtLS0tLS0tLS0tXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gZmxvYXQtbGFzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAkbGFzdC1mbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBsYXN0LWZsb3cpLFxuICAkbWFyZ2luOiAwXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb2F0OiBpZigkbGFzdC1mbG93ID09IHRvLCAkdG8sIG51bGwpLFxuICAgIG1hcmdpbi0jeyR0b306ICRtYXJnaW4sXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuXG4vLyBGbG9hdCBGaXJzdFxuLy8gLS0tLS0tLS0tLS1cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1maXJzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJG91dHB1dDogKFxuICAgIG1hcmdpbi0je2Zyb20oJGZsb3cpfTogMCxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iXX0= */
