| Server IP : 82.208.35.60 / Your IP : 216.73.216.89 Web Server : Apache/2.4.55 (FreeBSD) OpenSSL/1.1.1q-freebsd PHP/7.3.31 System : FreeBSD server7.d2m.cz 12.4-RELEASE-p9 FreeBSD 12.4-RELEASE-p9 GENERIC amd64 User : studiokobylisy_cz ( 1008) PHP Version : 7.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/air-sport_cz/www/admin939wizxmp/themes/new-theme/public/ |
Upload File : |
/*! For license information please see product_page.bundle.js.LICENSE.txt */
(()=>{var t={43284:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=c(n(99663)),i=c(n(22600)),o=c(n(72100)),a=n(76544),s=c(n(25121));function c(t){return t&&t.__esModule?t:{default:t}}var u=window.$,l=function(){function t(e,n){if((0,r.default)(this,t),0!==u(e.container).length){if(this.originalUrl=n,this.useMultiLang=void 0!==e.multiLanguageInput||void 0!==e.multiLanguageField,this.useMultiLang){var i=[];e.multiLanguageInput&&i.push(e.multiLanguageInput),e.multiLanguageField&&i.push(e.multiLanguageField),this.multiLangSelector=i.join(","),this.attachMultiLangEvents()}this.data={url:n,title:"",description:""},this.vm=new o.default({el:e.container,template:'<serp ref="serp" :url="url" :title="title" :description="description" />',components:{serp:s.default},data:this.data}),this.initializeSelectors(e),this.attachInputEvents()}}return(0,i.default)(t,[{key:"attachMultiLangEvents",value:function(t){var e=this;u("body").on("click",t,(function(){e.checkTitle(),e.checkDesc(),e.checkUrl()})),a.EventEmitter.on("languageSelected",(function(){e.checkTitle(),e.checkDesc(),e.checkUrl()}))}},{key:"initializeSelectors",value:function(t){this.defaultTitle=u(t.defaultTitle),this.watchedTitle=u(t.watchedTitle),this.defaultDescription=u(t.defaultDescription),this.watchedDescription=u(t.watchedDescription),this.watchedMetaUrl=u(t.watchedMetaUrl)}},{key:"attachInputEvents",value:function(){var t=this;u(this.defaultTitle).on("keyup change",(function(){return t.checkTitle()})),u(this.watchedTitle).on("keyup change",(function(){return t.checkTitle()})),u(this.defaultDescription).on("keyup change",(function(){return t.checkDesc()})),u(this.watchedDescription).on("keyup change",(function(){return t.checkDesc()})),this.watchedMetaUrl.on("keyup change",(function(){return t.checkUrl()})),this.checkTitle(),this.checkDesc(),this.checkUrl()}},{key:"setTitle",value:function(t){this.data.title=t}},{key:"setDescription",value:function(t){this.data.description=t}},{key:"setUrl",value:function(t){this.data.url=this.originalUrl.replace("{friendy-url}",t),this.data.url=this.data.url.replace("{friendly-url}",t)}},{key:"checkTitle",value:function(){var t=this.defaultTitle,e=this.watchedTitle;this.useMultiLang&&(e=e.closest(this.multiLangSelector).find("input"),t=t.closest(this.multiLangSelector).find("input"));var n=e.length?e.val():"",r=t.length?t.val():"";this.setTitle(""===n?r:n),this.checkUrl()}},{key:"checkDesc",value:function(){var t=this.watchedDescription,e=this.defaultDescription;this.useMultiLang&&(t=t.closest(this.multiLangSelector).find(this.watchedDescription.is("input")?"input":"textarea"),e=e.closest(this.multiLangSelector).find(this.defaultDescription.is("input")?"input":"textarea"));var n=t.length?t.val().innerText||t.val():"",r=e.length?u(e.val()).text()||e.val():"";this.setDescription(""===n?r:n)}},{key:"checkUrl",value:function(){var t=this.watchedMetaUrl;this.useMultiLang&&(t=t.closest(this.multiLangSelector).find("input")),this.setUrl(t.val())}}]),t}();e.default=l},76544:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EventEmitter=void 0;var r,i=(r=n(17187))&&r.__esModule?r:{default:r},o=e.EventEmitter=new i.default;e.default=o},36183:(t,e,n)=>{"use strict";var r=n(73609);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){r(document).ready((function(){r(".js-attribute-checkbox").change((function(t){r(t.target).is(":checked")?0===r('.token[data-value="'+r(t.target).data("value")+'"] .close').length&&r("#form_step3_attributes").tokenfield("createToken",{value:r(t.target).data("value"),label:r(t.target).data("label")}):r('.token[data-value="'+r(t.target).data("value")+'"] .close').click()}))})),r("#form_step3_attributes").on("tokenfield:createdtoken",(function(t){r('.js-attribute-checkbox[data-value="'+t.attrs.value+'"]').is(":checked")||r('.js-attribute-checkbox[data-value="'+t.attrs.value+'"]').prop("checked",!0)})).on("tokenfield:removedtoken",(function(t){r('.js-attribute-checkbox[data-value="'+t.attrs.value+'"]').is(":checked")&&r('.js-attribute-checkbox[data-value="'+t.attrs.value+'"]').prop("checked",!1)})),r("input.form-control[counter], textarea.form-control:not(.autoload_rte)[counter]").each((function(){var t=r(this).attr("counter");function e(t){var e=r(t).attr("counter"),n=r(t).attr("counterType"),i=r(t).val().length;r(t).parent().find("span.currentLength").text(i),"recommended"!==n&&i>e?r(t).parent().find("span.maxLength").addClass("text-danger"):r(t).parent().find("span.maxLength").removeClass("text-danger")}void 0!==t&&!1!==t&&(e(r(this)),r(this).on("input",(function(){e(r(this))})))}))}},13471:(t,e,n)=>{"use strict";var r=n(73609);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=function(){var t=r(".category-tree-overflow"),e=t.width();t.animate({scrollLeft:e},200)},e=function(e){"expand"===e?(r(".js-categories-tree ul").show(),r(".more").toggleClass("less"),t()):(r(".js-categories-tree ul:not(.category-tree)").hide(),r(".less").toggleClass("more"))};r("#categories-tree-expand").on("click",(function(){e("expand"),r("#categories-tree-expand").hide(),r("#categories-tree-reduce").show()})),r("#categories-tree-reduce").on("click",(function(){e("collapse"),r("#categories-tree-reduce").hide(),r("#categories-tree-expand").show()})),r(".category-tree-overflow .checkbox").on("click",(function(e){r(e.target).is("input")||t()})),r(".category-tree-overflow .checkbox label").on("click",(function(e){r(e.target).is("input")||t()}))}},28747:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){n(document).ready((function(){var o=n(".js-combinations-list");if(0!==o.length){var a=o.data("ids-product-attribute").toString().split(","),s=o.attr("data-action-refresh-images").replace(/form-images\/\d+/,"form-images/"+o.data("id-product")),c=a.length,u=0;n.get(s).then((function(t){0!==c&&l(t)})),n("#create-combinations").click((function(t){t.preventDefault(),window.form.send(!1,!1,i)})),window.Dropzone.forElement("#product-images-dropzone").on("success",(function(){var t=n.map(n(".js-combinations-list .combination"),(function(t){return n(t).data("index")}));n.get(s).then((function(n){e(n,t)}))})),n(document).on("click","#form .product-combination-image",(function(){var t=n(this).find("input"),e=t.prop("checked");t.prop("checked",!e),n(this).toggleClass("img-highlight",!e),r()})),n("#product_combination_bulk_impact_on_price_ti, #product_combination_bulk_impact_on_price_te").keyup((function(){var t=n(this),e=window.priceCalculation.normalizePrice(t.val());"product_combination_bulk_impact_on_price_ti"===t.attr("id")?n("#product_combination_bulk_impact_on_price_te").val(window.priceCalculation.removeCurrentTax(e)).change():n("#product_combination_bulk_impact_on_price_ti").val(window.priceCalculation.addCurrentTax(e)).change()}));var l=function r(i){var o=n("#combinations-bulk-form");o.hasClass("inactive")||o.addClass("inactive");var s=f();!1!==s&&n.get(s).then((function(o){n("#loading-attribute").before(o),e(i,a.slice(u,u+50)),(u+=50)<c?r(i):t()}))},f=function(){var t=a.slice(u,u+50).join("-");return 0!==t.length&&o.data("combinations-url").replace(":numbers",t)}}}));var t=function(){var t=n("#combinations-bulk-form");t.hasClass("inactive")&&(t.removeClass("inactive"),n("#loading-attribute").fadeOut(1e3).remove(),n('[data-toggle="popover"]').popover())},e=function(t,e){n.each(e,(function(e,r){var i=n('.combination[data="'+r+'"]'),o=i.attr("data-index"),a=i.find(".images"),s="";0===a.length&&(a=n("#combination_"+o+"_id_image_attr")),n.each(t[r],(function(t,e){s+='<div class="product-combination-image '+(e.id_image_attr?"img-highlight":"")+'">\n <input type="checkbox" name="combination_'+o+'[id_image_attr][]" value="'+e.id+'" '+(e.id_image_attr?'checked="checked"':"")+'>\n <img src="'+e.base_image_url+"-small_default."+e.format+'" alt="" />\n </div>'})),a.html(s),i.fadeIn(1e3)})),r()},r=function(){var t=n("#product-images-dropzone").find(".iscover"),e=null;if(1===t.length){var r=t.parent().find(".dz-image");e=r.find("img").length?r.find("img").attr("src"):r.css("background-image").replace(/^url\(["']?/,"").replace(/["']?\)$/,"")}n.each(n("#form .combination-form"),(function(t,r){var i=e,o=n(r).find(".product-combination-image input:checked:first");if(1===o.length&&(i=o.parent().find("img").attr("src")),i){var a='<img src="'+i+'" class="img-responsive" />';n("#attribute_"+n(r).attr("data")).find("td.img").html(a)}}))},i=function(){n.ajax({type:"POST",url:n("#form_step3_attributes").attr("data-action"),data:n("#attributes-generator input.attribute-generator, #form_id_product").serialize(),beforeSend:function(){n("#create-combinations, #submit, .btn-submit").attr("disabled","disabled")},success:function(t){window.refreshTotalCombinations(1,n(t.form).filter(".combination.loaded").length),n("#accordion_combinations").append(t.form),window.displayFieldsManager.refresh();var r=n(".js-combinations-list").attr("data-action-refresh-images").replace(/form-images\/\d+/,"form-images/"+n(".js-combinations-list").data("id-product"));n.get(r).then((function(n){e(n,t.ids_product_attribute)})),n("input.attribute-generator").remove(),n("#attributes-generator div.token").remove(),n(".js-attribute-checkbox:checked").each((function(){n(this).prop("checked",!1)})),n("#combinations_thead").fadeIn()},complete:function(){n("#create-combinations, #submit, .btn-submit").removeAttr("disabled"),t(),window.supplierCombinations.refresh(),window.warehouseCombinations.refresh()}})}};var n=window.$},66013:(t,e,n)=>{"use strict";var r=n(73609);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=r("#form_step1_categories");return{init:function(){0!==t.length&&(t.categorytree(),this.removeDefaultIfNeeded(),t.on("change","input.default-category",(function(){var e=r(this).val(),n=t.find('input[value="'+e+'"].category'),i=t.find('input[value="'+e+'"].default-category');!1===n.is(":checked")&&!0===i.is(":checked")&&n.trigger("click"),window.defaultCategory.check(e)})))},removeDefaultIfNeeded:function(){t.on("change","input.category",(function(){var e=r(this).val(),n=t.find('input[value="'+e+'"].category'),i=t.find('input[value="'+e+'"].default-category');if(t.find('input[type="checkbox"]').filter(":checked").length<1)n.prop("checked",!0);else if(!1===n.is(":checked")&&!0===i.is(":checked")){var o=function e(n){var r=n.closest("ul").parent(),i=r.find("> div > label > input");return r.is("li")?i.prop("checked")?i:e(r):t.find('input[type="checkbox"]:checked').first()}(n);window.defaultCategory.check(o.val()),window.productCategoriesTags.checkDefaultCategory(o.val())}}))}}}},14982:(t,e,n)=>{"use strict";var r=n(73609),i=n(73609);Object.defineProperty(e,"__esModule",{value:!0});var o=c(n(99663)),a=c(n(22600)),s=c(n(24043));function c(t){return t&&t.__esModule?t:{default:t}}e.default=function(){var t=r("#bulk-combinations-container"),e=r("#delete-combinations"),n=r("#apply-on-combinations"),o=r("[data-uniqid]"),a=r("#form_step2_price"),c=r("#form_step2_price_ttc"),l=r("#form_step1_price_shortcut"),f=r("#form_step1_price_ttc_shortcut"),d=r("#form_step2_ecotax");return{init:function(){var t=this,i=this;e.on("click",(function(t){t.preventDefault(),i.deleteCombinations()})),n.on("click",(function(t){t.preventDefault(),i.applyChangesOnCombinations().hideForm().resetForm().unselectCombinations().submitUpdate()})),a.on("blur",(function(){t.syncToPricingTab()})),c.on("blur",(function(){t.syncToPricingTab()})),l.on("blur",(function(){t.syncToPricingTab()})),f.on("blur",(function(){t.syncToPricingTab()})),d.on("blur",(function(){t.syncToPricingTab()})),o.on("DOMSubtreeModified",(function(t){var e=t.target.getAttribute("data-uniqid"),n=t.target.innerText;r('[data-uniqid="'+e+'"]').each((function(){r(this).text()!==n&&r(this).text(n)}))})),r("#toggle-all-combinations").on("change",(function(t){r('#accordion_combinations td:first-child input[type="checkbox"]').each((function(){r(this).prop("checked",r(t.currentTarget).prop("checked"))}))})),r(document).on("change",".js-combination",(function(){"false"!==r(".bulk-action").attr("aria-expanded")&&r(".js-combination").is(":checked")||r(".js-collapse").collapse("toggle"),r("span.js-bulk-combinations").text(r("input.js-combination:checked").length)}))},getSelectedCombinations:function(){var t=[];return(0,s.default)(r('#accordion_combinations td:first-child input[type="checkbox"]:checked')).forEach((function(e){var n=e.getAttribute("data-id"),r=e.getAttribute("data-index");t.push(new u(n,r))})),t},applyChangesOnCombinations:function(){var t=this.getFormValues();return this.getSelectedCombinations().forEach((function(e){e.updateForm(t),e.syncValues(t)})),this},deleteCombinations:function(){var t=this.getSelectedCombinations(),n=[];t.forEach((function(t){n.push(t.domId)})),window.modalConfirmation.create(window.translate_javascripts["Are you sure you want to delete the selected item(s)?"],null,{onContinue:function(){var t=r(e).attr("data");r.ajax({type:"DELETE",data:{"attribute-ids":n},url:t,beforeSend:function(){r("#create-combinations, #apply-on-combinations, #submit, .btn-submit").attr("disabled","disabled")},success:function(t){window.showSuccessMessage(t.message),window.refreshTotalCombinations(-1,n.length),r("span.js-bulk-combinations").text("0"),n.forEach((function(t){new u(t).removeFromDOM()})),window.displayFieldsManager.refresh()},error:function(t){window.showErrorMessage(i.parseJSON(t.responseText).message)},complete:function(){r("#create-combinations, #apply-on-combinations, #submit, .btn-submit").removeAttr("disabled")}})}}).show()},getFormValues:function(){var e=[];return r(t).find("input").each((function(){""!==r(this).val()&&"product_combination_bulk__token"!==r(this).attr("id")&&e.push({id:r(this).attr("id"),value:r(this).val()})})),e},resetForm:function(){return t.find("input").val(""),this},unselectCombinations:function(){return r("#toggle-all-combinations").prop("checked",!1),this},hideForm:function(){return t.collapse("hide"),this},submitUpdate:function(){r("#form").submit()},syncToPricingTab:function(){r("tr.combination").toArray().forEach((function(t){var e=r("#"+t.id),n=e.attr("data"),i=window.priceCalculation.getCombinationFinalPriceTaxExcludedById(n);e.find(".attribute-finalprice span.final-price").html(i);var o=window.priceCalculation.getCombinationEcotaxTaxIncludedById(n);0===o&&(o=window.priceCalculation.getProductEcotaxTaxIncluded()),e.find(".attribute-finalprice span.attribute-ecotax").html(Number(window.ps_round(o,2)).toFixed(2)),e.find(".attribute-finalprice .attribute-ecotax-preview").toggleClass("d-none",0===Number(o))}))}}};var u=function(){function t(e,n){(0,o.default)(this,t),this.inputBulkPattern="product_combination_bulk_",this.inputPattern="combination_"+n+"_",this.domId=e,this.appId="attribute_"+this.domId,this.element=r("#"+this.appId),this.form=r("#combination_form_"+this.domId)}return(0,a.default)(t,[{key:"isSelected",value:function(){return this.element.checked}},{key:"removeFromDOM",value:function(){r(this.element).remove()}},{key:"updateForm",value:function(t){var e=this;return t.forEach((function(t){var n=t.id.substr(e.inputBulkPattern.length),i=r("#"+e.convertInput(n));i.is(":checkbox")?i.prop("checked",!!t.value):i.val(t.value)})),this.form}},{key:"convertInput",value:function(t){var e="";switch(t){case"quantity":case"reference":case"minimal_quantity":case"low_stock_threshold":case"low_stock_alert":e=this.inputPattern+"attribute_"+t;break;case"cost_price":e=this.inputPattern+"attribute_wholesale_price";break;case"date_availability":e=this.inputPattern+"available_date_attribute";break;case"impact_on_weight":e=this.inputPattern+"attribute_weight";break;case"impact_on_price_te":e=this.inputPattern+"attribute_price";break;case"impact_on_price_ti":e=this.inputPattern+"attribute_priceTI"}return e}},{key:"syncValues",value:function(t){var e=this;return t.forEach((function(t){var n=t.id.substr(e.inputBulkPattern.length),i=t.value;if(-1!==["quantity","impact_on_price_te"].indexOf(n)){n="quantity"===n?"quantity":"price";var o=r("#attribute_"+e.domId+" .attribute-"+n+" input");o.val(i),o.change()}})),!0}}]),t}()},78256:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t,e=n(".js-arrow"),r=n(".js-tabs"),i=n(".js-nav-tabs"),o=void 0,a=0,s=0,c=35;i.find("li").each((function(t,e){c+=n(e).width()})),t=c+70,i.width(t),i.find('[data-toggle="tab"]').on("click",(function(t){n(t.target).hasClass("active")||n("#form_content > .form-contenttab").removeClass("active")})),e.on("click",(function(t){e.is(":visible")&&(s=r.width(),o=i.position(),a="-=0",n(t.currentTarget).hasClass("right-arrow")?s-o.left<c&&(a="-="+s):o.left<35&&(a="+="+s),i.animate({left:a},400,"easeOutQuad",(function(){n(t.currentTarget).hasClass("right-arrow")?(n(".left-arrow").addClass("visible"),n(".right-arrow").removeClass("visible")):(n(".right-arrow").addClass("visible"),n(".left-arrow").removeClass("visible"))})))}))};var n=window.$},12887:(t,e,n)=>{"use strict";var r=n(73609);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){function t(t,e){var n=r(t),i=n.attr("data-formid"),a="#"+i+"-data .delete",s=i+"_source";!0===e&&r("#"+i).typeahead("destroy"),r(document).on("click",a,(function(t){t.preventDefault(),window.modalConfirmation.create(window.translate_javascripts["Are you sure you want to delete this item?"],null,{onContinue:function(){r(t.target).parents(".media").remove(),r("#submit").click()}}).show()})),document[s]=new o.default({datumTokenizer:o.default.tokenizers.whitespace,queryTokenizer:o.default.tokenizers.whitespace,identify:function(t){return t[n.attr("data-mappingvalue")]},remote:{url:n.attr("data-remoteurl"),cache:!1,wildcard:"%QUERY",transform:function(t){return t||[]}}}),r("#"+i).typeahead({limit:20,minLength:2,highlight:!0,cache:!1,hint:!1},{display:n.attr("data-mappingname"),source:document[i+"_source"],limit:30,templates:{suggestion:function(t){return'<div><img src="'+t.image+'" style="width:50px" /> '+t.name+"</div>"}}}).bind("typeahead:select",(function(t,e){var o=r("#"+i+"-data li"),a=parseInt(n.attr("data-limit"),10);if(0!==a&&o.length>=a)return!1;var s=e[n.attr("data-mappingvalue")];e.id_product_attribute&&(s=s+","+e.id_product_attribute);var c=r("#tplcollection-"+i).html().replace("%s",e[n.attr("data-mappingname")]),u='<li class="media">\n <div class="media-left">\n <img class="media-object image" src="'+e.image+'" />\n </div>\n <div class="media-body media-middle">\n '+c+'\n </div>\n <input type="hidden" name="'+n.attr("data-fullname")+'[data][]" value="'+s+'" />\n </li>';return r("#"+i+"-data").append(u),!0})).bind("typeahead:close",(function(t){r(t.target).val("")}))}r(document).ready((function(){r(".autocomplete-search").each((function(){t(r(this),!1)})),r(".autocomplete-search").on("buildTypeahead",(function(){t(r(this),!0)}))}))};var i,o=(i=n(53943))&&i.__esModule?i:{default:i}},66313:(t,e)=>{"use strict";Object.defineProperty(e,"X",{value:!0}),e.Z={name:"Serp",props:{url:{type:String,default:"https://www.example.com/"},description:{type:String,default:""},title:{type:String,default:""}},computed:{displayedTitle:function(){return this.title.length>70?this.title.substring(0,70)+"...":this.title},displayedDescription:function(){return this.description.length>150?this.description.substring(0,150)+"...":this.description}}}},24043:(t,e,n)=>{t.exports={default:n(47185),__esModule:!0}},32242:(t,e,n)=>{t.exports={default:n(33391),__esModule:!0}},99663:(t,e)=>{"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},22600:(t,e,n)=>{"use strict";e.__esModule=!0;var r,i=(r=n(32242))&&r.__esModule?r:{default:r};e.default=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,i.default)(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}()},47185:(t,e,n)=>{n(91867),n(2586),t.exports=n(34579).Array.from},33391:(t,e,n)=>{n(31477);var r=n(34579).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},85663:t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},12159:(t,e,n)=>{var r=n(36727);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},57428:(t,e,n)=>{var r=n(7932),i=n(78728),o=n(16531);t.exports=function(t){return function(e,n,a){var s,c=r(e),u=i(c.length),l=o(a,u);if(t&&n!=n){for(;u>l;)if((s=c[l++])!=s)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},14677:(t,e,n)=>{var r=n(32894),i=n(22939)("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:o?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},32894:t=>{var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},34579:t=>{var e=t.exports={version:"2.6.11"};"number"==typeof __e&&(__e=e)},52445:(t,e,n)=>{"use strict";var r=n(4743),i=n(83101);t.exports=function(t,e,n){e in t?r.f(t,e,i(0,n)):t[e]=n}},19216:(t,e,n)=>{var r=n(85663);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},8333:t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},89666:(t,e,n)=>{t.exports=!n(7929)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},97467:(t,e,n)=>{var r=n(36727),i=n(33938).document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},73338:t=>{t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},83856:(t,e,n)=>{var r=n(33938),i=n(34579),o=n(19216),a=n(41818),s=n(27069),c=function(t,e,n){var u,l,f,d=t&c.F,p=t&c.G,h=t&c.S,v=t&c.P,m=t&c.B,g=t&c.W,y=p?i:i[e]||(i[e]={}),b=y.prototype,_=p?r:h?r[e]:(r[e]||{}).prototype;for(u in p&&(n=e),n)(l=!d&&_&&void 0!==_[u])&&s(y,u)||(f=l?_[u]:n[u],y[u]=p&&"function"!=typeof _[u]?n[u]:m&&l?o(f,r):g&&_[u]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(f):v&&"function"==typeof f?o(Function.call,f):f,v&&((y.virtual||(y.virtual={}))[u]=f,t&c.R&&b&&!b[u]&&a(b,u,f)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},7929:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},33938:t=>{var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},27069:t=>{var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}},41818:(t,e,n)=>{var r=n(4743),i=n(83101);t.exports=n(89666)?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},54881:(t,e,n)=>{var r=n(33938).document;t.exports=r&&r.documentElement},33758:(t,e,n)=>{t.exports=!n(89666)&&!n(7929)((function(){return 7!=Object.defineProperty(n(97467)("div"),"a",{get:function(){return 7}}).a}))},50799:(t,e,n)=>{var r=n(32894);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},45991:(t,e,n)=>{var r=n(15449),i=n(22939)("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||o[i]===t)}},36727:t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},95602:(t,e,n)=>{var r=n(12159);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&r(o.call(t)),e}}},33945:(t,e,n)=>{"use strict";var r=n(98989),i=n(83101),o=n(25378),a={};n(41818)(a,n(22939)("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=r(a,{next:i(1,n)}),o(t,e+" Iterator")}},45700:(t,e,n)=>{"use strict";var r=n(16227),i=n(83856),o=n(57470),a=n(41818),s=n(15449),c=n(33945),u=n(25378),l=n(95089),f=n(22939)("iterator"),d=!([].keys&&"next"in[].keys()),p="keys",h="values",v=function(){return this};t.exports=function(t,e,n,m,g,y,b){c(n,e,m);var _,w,C,x=function(t){if(!d&&t in S)return S[t];switch(t){case p:case h:return function(){return new n(this,t)}}return function(){return new n(this,t)}},A=e+" Iterator",k=g==h,$=!1,S=t.prototype,O=S[f]||S["@@iterator"]||g&&S[g],T=O||x(g),j=g?k?x("entries"):T:void 0,B="Array"==e&&S.entries||O;if(B&&(C=l(B.call(new t)))!==Object.prototype&&C.next&&(u(C,A,!0),r||"function"==typeof C[f]||a(C,f,v)),k&&O&&O.name!==h&&($=!0,T=function(){return O.call(this)}),r&&!b||!d&&!$&&S[f]||a(S,f,T),s[e]=T,s[A]=v,g)if(_={values:k?T:x(h),keys:y?T:x(p),entries:j},b)for(w in _)w in S||o(S,w,_[w]);else i(i.P+i.F*(d||$),e,_);return _}},96630:(t,e,n)=>{var r=n(22939)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},t(o)}catch(t){}return n}},15449:t=>{t.exports={}},16227:t=>{t.exports=!0},98989:(t,e,n)=>{var r=n(12159),i=n(57856),o=n(73338),a=n(58989)("IE_PROTO"),s=function(){},c=function(){var t,e=n(97467)("iframe"),r=o.length;for(e.style.display="none",n(54881).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[o[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[a]=t):n=c(),void 0===e?n:i(n,e)}},4743:(t,e,n)=>{var r=n(12159),i=n(33758),o=n(33206),a=Object.defineProperty;e.f=n(89666)?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},57856:(t,e,n)=>{var r=n(4743),i=n(12159),o=n(46162);t.exports=n(89666)?Object.defineProperties:function(t,e){i(t);for(var n,a=o(e),s=a.length,c=0;s>c;)r.f(t,n=a[c++],e[n]);return t}},95089:(t,e,n)=>{var r=n(27069),i=n(66530),o=n(58989)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},12963:(t,e,n)=>{var r=n(27069),i=n(7932),o=n(57428)(!1),a=n(58989)("IE_PROTO");t.exports=function(t,e){var n,s=i(t),c=0,u=[];for(n in s)n!=a&&r(s,n)&&u.push(n);for(;e.length>c;)r(s,n=e[c++])&&(~o(u,n)||u.push(n));return u}},46162:(t,e,n)=>{var r=n(12963),i=n(73338);t.exports=Object.keys||function(t){return r(t,i)}},83101:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},57470:(t,e,n)=>{t.exports=n(41818)},25378:(t,e,n)=>{var r=n(4743).f,i=n(27069),o=n(22939)("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},58989:(t,e,n)=>{var r=n(20250)("keys"),i=n(65730);t.exports=function(t){return r[t]||(r[t]=i(t))}},20250:(t,e,n)=>{var r=n(34579),i=n(33938),o="__core-js_shared__",a=i[o]||(i[o]={});(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(16227)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},90510:(t,e,n)=>{var r=n(11052),i=n(8333);t.exports=function(t){return function(e,n){var o,a,s=String(i(e)),c=r(n),u=s.length;return c<0||c>=u?t?"":void 0:(o=s.charCodeAt(c))<55296||o>56319||c+1===u||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):o:t?s.slice(c,c+2):a-56320+(o-55296<<10)+65536}}},16531:(t,e,n)=>{var r=n(11052),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},11052:t=>{var e=Math.ceil,n=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?n:e)(t)}},7932:(t,e,n)=>{var r=n(50799),i=n(8333);t.exports=function(t){return r(i(t))}},78728:(t,e,n)=>{var r=n(11052),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},66530:(t,e,n)=>{var r=n(8333);t.exports=function(t){return Object(r(t))}},33206:(t,e,n)=>{var r=n(36727);t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},65730:t=>{var e=0,n=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+n).toString(36))}},22939:(t,e,n)=>{var r=n(20250)("wks"),i=n(65730),o=n(33938).Symbol,a="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=r},83728:(t,e,n)=>{var r=n(14677),i=n(22939)("iterator"),o=n(15449);t.exports=n(34579).getIteratorMethod=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[r(t)]}},2586:(t,e,n)=>{"use strict";var r=n(19216),i=n(83856),o=n(66530),a=n(95602),s=n(45991),c=n(78728),u=n(52445),l=n(83728);i(i.S+i.F*!n(96630)((function(t){Array.from(t)})),"Array",{from:function(t){var e,n,i,f,d=o(t),p="function"==typeof this?this:Array,h=arguments.length,v=h>1?arguments[1]:void 0,m=void 0!==v,g=0,y=l(d);if(m&&(v=r(v,h>2?arguments[2]:void 0,2)),null==y||p==Array&&s(y))for(n=new p(e=c(d.length));e>g;g++)u(n,g,m?v(d[g],g):d[g]);else for(f=y.call(d),n=new p;!(i=f.next()).done;g++)u(n,g,m?a(f,v,[i.value,g],!0):i.value);return n.length=g,n}})},31477:(t,e,n)=>{var r=n(83856);r(r.S+r.F*!n(89666),"Object",{defineProperty:n(4743).f})},91867:(t,e,n)=>{"use strict";var r=n(90510)(!0);n(45700)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},20251:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>s});var r=n(94015),i=n.n(r),o=n(23645),a=n.n(o)()(i());a.push([t.id,".serp-preview[data-v-66c4c5ab]{margin-top:15px;margin-bottom:15px;border-radius:2px;box-shadow:0 0 5px 0 rgba(0,0,0,0.12);background-color:#ffffff;border:solid 1px #e7e7e7;padding:30px;max-width:700px}.serp-preview .serp-arrow[data-v-66c4c5ab]{border-bottom-color:#006621;border-bottom-style:solid;border-bottom-width:0px;border-left-color:rgba(0,0,0,0);border-left-style:solid;border-left-width:4px;border-right-color:rgba(0,0,0,0);border-right-style:solid;border-right-width:4px;border-top-color:#006621;border-top-style:solid;border-top-width:5px;color:gray;cursor:default;font-family:arial, sans-serif;font-size:11px;font-weight:bold;height:0px;position:absolute;line-height:27px;margin-left:3px;margin-top:6px;text-align:center;user-select:none;visibility:visible;white-space:nowrap;width:0px}.serp-preview .serp-title[data-v-66c4c5ab]{color:#1A0DAB;cursor:pointer;font-family:arial, regular;font-size:18px;font-weight:normal;text-align:left;text-decoration:none;visibility:visible;white-space:nowrap}.serp-preview .serp-url[data-v-66c4c5ab]{color:#006621;font-family:arial, regular;font-size:14px;font-style:normal;font-weight:normal;line-height:24px;text-align:left;visibility:visible}.serp-preview .serp-description[data-v-66c4c5ab]{color:#545454;font-family:arial, regular;font-size:13px;font-weight:normal;text-align:left;visibility:visible;word-wrap:break-word}\n","",{version:3,sources:["webpack://./js/app/utils/serp/serp.vue"],names:[],mappings:"AA6EA,+BACI,eAAgB,CAChB,kBAAmB,CACnB,iBAAkB,CAClB,qCAAyC,CACzC,wBAAyB,CACzB,wBAAyB,CACzB,YAAa,CACb,eAAgB,CARpB,2CAWQ,2BAAoC,CACpC,yBAA0B,CAC1B,uBAAwB,CACxB,+BAAmC,CACnC,uBAAwB,CACxB,qBAAsB,CACtB,gCAAoC,CACpC,wBAAyB,CACzB,sBAAuB,CACvB,wBAAiC,CACjC,sBAAuB,CACvB,oBAAqB,CACrB,UAAyB,CACzB,cAAe,CACf,6BAA8B,CAC9B,cAAe,CACf,gBAAiB,CACjB,UAAW,CACX,iBAAkB,CAClB,gBAAiB,CACjB,eAAgB,CAChB,cAAe,CACf,iBAAkB,CAClB,gBAAiB,CACjB,kBAAmB,CACnB,kBAAmB,CACnB,SAAU,CArClB,2CAyCQ,aAAc,CACd,cAAe,CACf,0BAA2B,CAC3B,cAAe,CACf,kBAAmB,CACnB,eAAgB,CAChB,oBAAqB,CACrB,kBAAmB,CACnB,kBAAmB,CAjD3B,yCAqDQ,aAAc,CACd,0BAA2B,CAC3B,cAAe,CACf,iBAAkB,CAClB,kBAAmB,CACnB,gBAAiB,CACjB,eAAgB,CAChB,kBAAmB,CA5D3B,iDAgEQ,aAAc,CACd,0BAA2B,CAC3B,cAAe,CACf,kBAAmB,CACnB,eAAgB,CAChB,kBAAmB,CACnB,oBAAqB",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.serp-preview {\n margin-top: 15px;\n margin-bottom: 15px;\n border-radius: 2px;\n box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.12);\n background-color: #ffffff;\n border: solid 1px #e7e7e7;\n padding: 30px;\n max-width: 700px;\n\n .serp-arrow {\n border-bottom-color: rgb(0, 102, 33);\n border-bottom-style: solid;\n border-bottom-width: 0px;\n border-left-color: rgba(0, 0, 0, 0);\n border-left-style: solid;\n border-left-width: 4px;\n border-right-color: rgba(0, 0, 0, 0);\n border-right-style: solid;\n border-right-width: 4px;\n border-top-color: rgb(0, 102, 33);\n border-top-style: solid;\n border-top-width: 5px;\n color: rgb(128, 128, 128);\n cursor: default;\n font-family: arial, sans-serif;\n font-size: 11px;\n font-weight: bold;\n height: 0px;\n position: absolute;\n line-height: 27px;\n margin-left: 3px;\n margin-top: 6px;\n text-align: center;\n user-select: none;\n visibility: visible;\n white-space: nowrap;\n width: 0px;\n }\n\n .serp-title {\n color: #1A0DAB;\n cursor: pointer;\n font-family: arial, regular;\n font-size: 18px;\n font-weight: normal;\n text-align: left;\n text-decoration: none;\n visibility: visible;\n white-space: nowrap;\n }\n\n .serp-url {\n color: #006621;\n font-family: arial, regular;\n font-size: 14px;\n font-style: normal;\n font-weight: normal;\n line-height: 24px;\n text-align: left;\n visibility: visible;\n }\n\n .serp-description {\n color: #545454;\n font-family: arial, regular;\n font-size: 13px;\n font-weight: normal;\n text-align: left;\n visibility: visible;\n word-wrap: break-word;\n }\n}\n"],sourceRoot:""}]);const s=a},23645:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=t(e);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,r){"string"==typeof t&&(t=[[null,t,""]]);var i={};if(r)for(var o=0;o<this.length;o++){var a=this[o][0];null!=a&&(i[a]=!0)}for(var s=0;s<t.length;s++){var c=[].concat(t[s]);r&&i[c[0]]||(n&&(c[2]?c[2]="".concat(n," and ").concat(c[2]):c[2]=n),e.push(c))}},e}},94015:t=>{"use strict";function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}t.exports=function(t){var n,r,i=(r=4,function(t){if(Array.isArray(t))return t}(n=t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){i=!0,o=t}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}}(n,r)||function(t,n){if(t){if("string"==typeof t)return e(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=i[1],a=i[3];if("function"==typeof btoa){var s=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),c="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),u="/*# ".concat(c," */"),l=a.sources.map((function(t){return"/*# sourceURL=".concat(a.sourceRoot||"").concat(t," */")}));return[o].concat(l).concat([u]).join("\n")}return[o].join("\n")}},17187:t=>{"use strict";var e,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)};e=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var i=Number.isNaN||function(t){return t!=t};function o(){o.init.call(this)}t.exports=o,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var a=10;function s(t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function c(t){return void 0===t._maxListeners?o.defaultMaxListeners:t._maxListeners}function u(t,e,n,r){var i,o,a,u;if(s(n),void 0===(o=t._events)?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,n.listener?n.listener:n),o=t._events),a=o[e]),void 0===a)a=o[e]=n,++t._eventsCount;else if("function"==typeof a?a=o[e]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(i=c(t))>0&&a.length>i&&!a.warned){a.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=t,l.type=e,l.count=a.length,u=l,console&&console.warn&&console.warn(u)}return t}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=l.bind(r);return i.listener=n,r.wrapFn=i,i}function d(t,e,n){var r=t._events;if(void 0===r)return[];var i=r[e];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}(i):h(i,i.length)}function p(t){var e=this._events;if(void 0!==e){var n=e[t];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(t){if("number"!=typeof t||t<0||i(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");a=t}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||i(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this},o.prototype.getMaxListeners=function(){return c(this)},o.prototype.emit=function(t){for(var e=[],n=1;n<arguments.length;n++)e.push(arguments[n]);var i="error"===t,o=this._events;if(void 0!==o)i=i&&void 0===o.error;else if(!i)return!1;if(i){var a;if(e.length>0&&(a=e[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[t];if(void 0===c)return!1;if("function"==typeof c)r(c,this,e);else{var u=c.length,l=h(c,u);for(n=0;n<u;++n)r(l[n],this,e)}return!0},o.prototype.addListener=function(t,e){return u(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return u(this,t,e,!0)},o.prototype.once=function(t,e){return s(e),this.on(t,f(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){return s(e),this.prependListener(t,f(this,t,e)),this},o.prototype.removeListener=function(t,e){var n,r,i,o,a;if(s(e),void 0===(r=this._events))return this;if(void 0===(n=r[t]))return this;if(n===e||n.listener===e)0==--this._eventsCount?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,n.listener||e));else if("function"!=typeof n){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===e||n[o].listener===e){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}(n,i),1===n.length&&(r[t]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",t,a||e)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(t){var e,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[t]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[t]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r<o.length;++r)"removeListener"!==(i=o[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(e=n[t]))this.removeListener(t,e);else if(void 0!==e)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this},o.prototype.listeners=function(t){return d(this,t,!0)},o.prototype.rawListeners=function(t){return d(this,t,!1)},o.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):p.call(t,e)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]}},53943:function(t,e,n){var r,i,o;o=this,r=[n(73609)],void 0===(i=function(t){return o.Bloodhound=(e=t,n=function(){"use strict";return{isMsie:function(){return!!/(msie|trident)/i.test(navigator.userAgent)&&navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]},isBlankString:function(t){return!t||/^\s*$/.test(t)},escapeRegExChars:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isString:function(t){return"string"==typeof t},isNumber:function(t){return"number"==typeof t},isArray:e.isArray,isFunction:e.isFunction,isObject:e.isPlainObject,isUndefined:function(t){return void 0===t},isElement:function(t){return!(!t||1!==t.nodeType)},isJQuery:function(t){return t instanceof e},toStr:function(t){return n.isUndefined(t)||null===t?"":t+""},bind:e.proxy,each:function(t,n){e.each(t,(function(t,e){return n(e,t)}))},map:e.map,filter:e.grep,every:function(t,n){var r=!0;return t?(e.each(t,(function(e,i){if(!(r=n.call(null,i,e,t)))return!1})),!!r):r},some:function(t,n){var r=!1;return t?(e.each(t,(function(e,i){if(r=n.call(null,i,e,t))return!1})),!!r):r},mixin:e.extend,identity:function(t){return t},clone:function(t){return e.extend(!0,{},t)},getIdGenerator:function(){var t=0;return function(){return t++}},templatify:function(t){return e.isFunction(t)?t:function(){return String(t)}},defer:function(t){setTimeout(t,0)},debounce:function(t,e,n){var r,i;return function(){var o,a,s=this,c=arguments;return o=function(){r=null,n||(i=t.apply(s,c))},a=n&&!r,clearTimeout(r),r=setTimeout(o,e),a&&(i=t.apply(s,c)),i}},throttle:function(t,e){var n,r,i,o,a,s;return a=0,s=function(){a=new Date,i=null,o=t.apply(n,r)},function(){var c=new Date,u=e-(c-a);return n=this,r=arguments,u<=0?(clearTimeout(i),i=null,a=c,o=t.apply(n,r)):i||(i=setTimeout(s,u)),o}},stringify:function(t){return n.isString(t)?t:JSON.stringify(t)},noop:function(){}}}(),r="0.11.1",i=function(){"use strict";return{nonword:e,whitespace:t,obj:{nonword:r(e),whitespace:r(t)}};function t(t){return(t=n.toStr(t))?t.split(/\s+/):[]}function e(t){return(t=n.toStr(t))?t.split(/\W+/):[]}function r(t){return function(e){return e=n.isArray(e)?e:[].slice.call(arguments,0),function(r){var i=[];return n.each(e,(function(e){i=i.concat(t(n.toStr(r[e])))})),i}}}}(),a=function(){"use strict";function t(t){this.maxSize=n.isNumber(t)?t:100,this.reset(),this.maxSize<=0&&(this.set=this.get=e.noop)}function r(){this.head=this.tail=null}function i(t,e){this.key=t,this.val=e,this.prev=this.next=null}return n.mixin(t.prototype,{set:function(t,e){var n,r=this.list.tail;this.size>=this.maxSize&&(this.list.remove(r),delete this.hash[r.key],this.size--),(n=this.hash[t])?(n.val=e,this.list.moveToFront(n)):(n=new i(t,e),this.list.add(n),this.hash[t]=n,this.size++)},get:function(t){var e=this.hash[t];if(e)return this.list.moveToFront(e),e.val},reset:function(){this.size=0,this.hash={},this.list=new r}}),n.mixin(r.prototype,{add:function(t){this.head&&(t.next=this.head,this.head.prev=t),this.head=t,this.tail=this.tail||t},remove:function(t){t.prev?t.prev.next=t.next:this.head=t.next,t.next?t.next.prev=t.prev:this.tail=t.prev},moveToFront:function(t){this.remove(t),this.add(t)}}),t}(),s=function(){"use strict";var t;try{(t=window.localStorage).setItem("~~~","!"),t.removeItem("~~~")}catch(e){t=null}function r(e,r){this.prefix=["__",e,"__"].join(""),this.ttlKey="__ttl__",this.keyMatcher=new RegExp("^"+n.escapeRegExChars(this.prefix)),this.ls=r||t,!this.ls&&this._noop()}return n.mixin(r.prototype,{_prefix:function(t){return this.prefix+t},_ttlKey:function(t){return this._prefix(t)+this.ttlKey},_noop:function(){this.get=this.set=this.remove=this.clear=this.isExpired=n.noop},_safeSet:function(t,e){try{this.ls.setItem(t,e)}catch(t){"QuotaExceededError"===t.name&&(this.clear(),this._noop())}},get:function(t){return this.isExpired(t)&&this.remove(t),a(this.ls.getItem(this._prefix(t)))},set:function(t,e,r){return n.isNumber(r)?this._safeSet(this._ttlKey(t),o(i()+r)):this.ls.removeItem(this._ttlKey(t)),this._safeSet(this._prefix(t),o(e))},remove:function(t){return this.ls.removeItem(this._ttlKey(t)),this.ls.removeItem(this._prefix(t)),this},clear:function(){var e,n=function(e){var n,r,i=[],o=t.length;for(n=0;n<o;n++)(r=t.key(n)).match(e)&&i.push(r.replace(e,""));return i}(this.keyMatcher);for(e=n.length;e--;)this.remove(n[e]);return this},isExpired:function(t){var e=a(this.ls.getItem(this._ttlKey(t)));return!!(n.isNumber(e)&&i()>e)}}),r;function i(){return(new Date).getTime()}function o(t){return JSON.stringify(n.isUndefined(t)?null:t)}function a(t){return e.parseJSON(t)}}(),c=function(){"use strict";var t=0,r={},i=6,o=new a(10);function s(t){t=t||{},this.cancelled=!1,this.lastReq=null,this._send=t.transport,this._get=t.limiter?t.limiter(this._get):this._get,this._cache=!1===t.cache?new a(0):o}return s.setMaxPendingRequests=function(t){i=t},s.resetCache=function(){o.reset()},n.mixin(s.prototype,{_fingerprint:function(t){return(t=t||{}).url+t.type+e.param(t.data||{})},_get:function(e,n){var o,a,s=this;function c(t){n(null,t),s._cache.set(o,t)}function u(){n(!0)}function l(){t--,delete r[o],s.onDeckRequestArgs&&(s._get.apply(s,s.onDeckRequestArgs),s.onDeckRequestArgs=null)}o=this._fingerprint(e),this.cancelled||o!==this.lastReq||((a=r[o])?a.done(c).fail(u):t<i?(t++,r[o]=this._send(e).done(c).fail(u).always(l)):this.onDeckRequestArgs=[].slice.call(arguments,0))},get:function(t,r){var i,o;r=r||e.noop,t=n.isString(t)?{url:t}:t||{},o=this._fingerprint(t),this.cancelled=!1,this.lastReq=o,(i=this._cache.get(o))?r(null,i):this._get(t,r)},cancel:function(){this.cancelled=!0}}),s}(),u=window.SearchIndex=function(){"use strict";function t(t){(t=t||{}).datumTokenizer&&t.queryTokenizer||e.error("datumTokenizer and queryTokenizer are both required"),this.identify=t.identify||n.stringify,this.datumTokenizer=t.datumTokenizer,this.queryTokenizer=t.queryTokenizer,this.reset()}return n.mixin(t.prototype,{bootstrap:function(t){this.datums=t.datums,this.trie=t.trie},add:function(t){var e=this;t=n.isArray(t)?t:[t],n.each(t,(function(t){var o,a;e.datums[o=e.identify(t)]=t,a=r(e.datumTokenizer(t)),n.each(a,(function(t){var n,r,a;for(n=e.trie,r=t.split("");a=r.shift();)(n=n.c[a]||(n.c[a]=i())).i.push(o)}))}))},get:function(t){var e=this;return n.map(t,(function(t){return e.datums[t]}))},search:function(t){var e,i,o=this;return e=r(this.queryTokenizer(t)),n.each(e,(function(t){var e,n,r,a;if(i&&0===i.length)return!1;for(e=o.trie,n=t.split("");e&&(r=n.shift());)e=e.c[r];if(!e||0!==n.length)return i=[],!1;a=e.i.slice(0),i=i?function(t,e){var n=0,r=0,i=[];t=t.sort(),e=e.sort();for(var o=t.length,a=e.length;n<o&&r<a;)t[n]<e[r]?n++:(t[n]>e[r]||(i.push(t[n]),n++),r++);return i}(i,a):a})),i?n.map(function(t){for(var e={},n=[],r=0,i=t.length;r<i;r++)e[t[r]]||(e[t[r]]=!0,n.push(t[r]));return n}(i),(function(t){return o.datums[t]})):[]},all:function(){var t=[];for(var e in this.datums)t.push(this.datums[e]);return t},reset:function(){this.datums={},this.trie=i()},serialize:function(){return{datums:this.datums,trie:this.trie}}}),t;function r(t){return t=n.filter(t,(function(t){return!!t})),n.map(t,(function(t){return t.toLowerCase()}))}function i(){var t={i:[],c:{}};return t}}(),l=function(){"use strict";var t;function e(t){this.url=t.url,this.ttl=t.ttl,this.cache=t.cache,this.prepare=t.prepare,this.transform=t.transform,this.transport=t.transport,this.thumbprint=t.thumbprint,this.storage=new s(t.cacheKey)}return t={data:"data",protocol:"protocol",thumbprint:"thumbprint"},n.mixin(e.prototype,{_settings:function(){return{url:this.url,type:"GET",dataType:"json"}},store:function(e){this.cache&&(this.storage.set(t.data,e,this.ttl),this.storage.set(t.protocol,location.protocol,this.ttl),this.storage.set(t.thumbprint,this.thumbprint,this.ttl))},fromCache:function(){var e,n={};return this.cache?(n.data=this.storage.get(t.data),n.protocol=this.storage.get(t.protocol),n.thumbprint=this.storage.get(t.thumbprint),e=n.thumbprint!==this.thumbprint||n.protocol!==location.protocol,n.data&&!e?n.data:null):null},fromNetwork:function(t){var e,n=this;t&&(e=this.prepare(this._settings()),this.transport(e).fail((function(){t(!0)})).done((function(e){t(null,n.transform(e))})))},clear:function(){return this.storage.clear(),this}}),e}(),f=function(){"use strict";function t(t){this.url=t.url,this.prepare=t.prepare,this.transform=t.transform,this.transport=new c({cache:t.cache,limiter:t.limiter,transport:t.transport})}return n.mixin(t.prototype,{_settings:function(){return{url:this.url,type:"GET",dataType:"json"}},get:function(t,e){var n,r=this;if(e)return t=t||"",n=this.prepare(t,this._settings()),this.transport.get(n,(function(t,n){e(t?[]:r.transform(n))}))},cancelLastRequest:function(){this.transport.cancel()}}),t}(),d=function(){"use strict";return function(i){var o,a;return o={initialize:!0,identify:n.stringify,datumTokenizer:null,queryTokenizer:null,sufficient:5,sorter:null,local:[],prefetch:null,remote:null},!(i=n.mixin(o,i||{})).datumTokenizer&&e.error("datumTokenizer is required"),!i.queryTokenizer&&e.error("queryTokenizer is required"),a=i.sorter,i.sorter=a?function(t){return t.sort(a)}:n.identity,i.local=n.isFunction(i.local)?i.local():i.local,i.prefetch=function(i){var o;return i?(o={url:null,ttl:864e5,cache:!0,cacheKey:null,thumbprint:"",prepare:n.identity,transform:n.identity,transport:null},i=n.isString(i)?{url:i}:i,!(i=n.mixin(o,i)).url&&e.error("prefetch requires url to be set"),i.transform=i.filter||i.transform,i.cacheKey=i.cacheKey||i.url,i.thumbprint=r+i.thumbprint,i.transport=i.transport?t(i.transport):e.ajax,i):null}(i.prefetch),i.remote=function(r){var i;if(r)return i={url:null,cache:!0,prepare:null,replace:null,wildcard:null,limiter:null,rateLimitBy:"debounce",rateLimitWait:300,transform:n.identity,transport:null},r=n.isString(r)?{url:r}:r,!(r=n.mixin(i,r)).url&&e.error("remote requires url to be set"),r.transform=r.filter||r.transform,r.prepare=function(t){var e,n,r;return e=t.prepare,n=t.replace,r=t.wildcard,e||(n?i:t.wildcard?o:a);function i(t,e){return e.url=n(e.url,t),e}function o(t,e){return e.url=e.url.replace(r,encodeURIComponent(t)),e}function a(t,e){return e}}(r),r.limiter=function(t){var e,r,i;return e=t.limiter,r=t.rateLimitBy,i=t.rateLimitWait,e||(e=/^throttle$/i.test(r)?a(i):o(i)),e;function o(t){return function(e){return n.debounce(e,t)}}function a(t){return function(e){return n.throttle(e,t)}}}(r),r.transport=r.transport?t(r.transport):e.ajax,delete r.replace,delete r.wildcard,delete r.rateLimitBy,delete r.rateLimitWait,r}(i.remote),i};function t(t){return function(r){var i=e.Deferred();return t(r,(function(t){n.defer((function(){i.resolve(t)}))}),(function(t){n.defer((function(){i.reject(t)}))})),i}}}(),function(){"use strict";var t;function r(t){t=d(t),this.sorter=t.sorter,this.identify=t.identify,this.sufficient=t.sufficient,this.local=t.local,this.remote=t.remote?new f(t.remote):null,this.prefetch=t.prefetch?new l(t.prefetch):null,this.index=new u({identify:this.identify,datumTokenizer:t.datumTokenizer,queryTokenizer:t.queryTokenizer}),!1!==t.initialize&&this.initialize()}return t=window&&window.Bloodhound,r.noConflict=function(){return window&&(window.Bloodhound=t),r},r.tokenizers=i,n.mixin(r.prototype,{__ttAdapter:function(){var t=this;return this.remote?function(e,n,r){return t.search(e,n,r)}:function(e,n){return t.search(e,n)}},_loadPrefetch:function(){var t,n,r=this;return t=e.Deferred(),this.prefetch?(n=this.prefetch.fromCache())?(this.index.bootstrap(n),t.resolve()):this.prefetch.fromNetwork((function(e,n){if(e)return t.reject();r.add(n),r.prefetch.store(r.index.serialize()),t.resolve()})):t.resolve(),t.promise()},_initialize:function(){var t=this;return this.clear(),(this.initPromise=this._loadPrefetch()).done((function(){t.add(t.local)})),this.initPromise},initialize:function(t){return!this.initPromise||t?this._initialize():this.initPromise},add:function(t){return this.index.add(t),this},get:function(t){return t=n.isArray(t)?t:[].slice.call(arguments),this.index.get(t)},search:function(t,e,r){var i,o=this;return i=this.sorter(this.index.search(t)),e(this.remote?i.slice():i),this.remote&&i.length<this.sufficient?this.remote.get(t,(function(t){var e=[];n.each(t,(function(t){!n.some(i,(function(e){return o.identify(t)===o.identify(e)}))&&e.push(t)})),r&&r(e)})):this.remote&&this.remote.cancelLastRequest(),this},all:function(){return this.index.all()},clear:function(){return this.index.reset(),this},clearPrefetchCache:function(){return this.prefetch&&this.prefetch.clear(),this},clearRemoteCache:function(){return c.resetCache(),this},ttAdapter:function(){return this.__ttAdapter()}}),r}());var e,n,r,i,a,s,c,u,l,f,d}.apply(e,r))||(t.exports=i),r=[n(73609)],void 0===(i=function(t){return e=t,n=function(){"use strict";return{isMsie:function(){return!!/(msie|trident)/i.test(navigator.userAgent)&&navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]},isBlankString:function(t){return!t||/^\s*$/.test(t)},escapeRegExChars:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isString:function(t){return"string"==typeof t},isNumber:function(t){return"number"==typeof t},isArray:e.isArray,isFunction:e.isFunction,isObject:e.isPlainObject,isUndefined:function(t){return void 0===t},isElement:function(t){return!(!t||1!==t.nodeType)},isJQuery:function(t){return t instanceof e},toStr:function(t){return n.isUndefined(t)||null===t?"":t+""},bind:e.proxy,each:function(t,n){e.each(t,(function(t,e){return n(e,t)}))},map:e.map,filter:e.grep,every:function(t,n){var r=!0;return t?(e.each(t,(function(e,i){if(!(r=n.call(null,i,e,t)))return!1})),!!r):r},some:function(t,n){var r=!1;return t?(e.each(t,(function(e,i){if(r=n.call(null,i,e,t))return!1})),!!r):r},mixin:e.extend,identity:function(t){return t},clone:function(t){return e.extend(!0,{},t)},getIdGenerator:function(){var t=0;return function(){return t++}},templatify:function(t){return e.isFunction(t)?t:function(){return String(t)}},defer:function(t){setTimeout(t,0)},debounce:function(t,e,n){var r,i;return function(){var o,a,s=this,c=arguments;return o=function(){r=null,n||(i=t.apply(s,c))},a=n&&!r,clearTimeout(r),r=setTimeout(o,e),a&&(i=t.apply(s,c)),i}},throttle:function(t,e){var n,r,i,o,a,s;return a=0,s=function(){a=new Date,i=null,o=t.apply(n,r)},function(){var c=new Date,u=e-(c-a);return n=this,r=arguments,u<=0?(clearTimeout(i),i=null,a=c,o=t.apply(n,r)):i||(i=setTimeout(s,u)),o}},stringify:function(t){return n.isString(t)?t:JSON.stringify(t)},noop:function(){}}}(),r=function(){"use strict";var t={wrapper:"twitter-typeahead",input:"tt-input",hint:"tt-hint",menu:"tt-menu",dataset:"tt-dataset",suggestion:"tt-suggestion",selectable:"tt-selectable",empty:"tt-empty",open:"tt-open",cursor:"tt-cursor",highlight:"tt-highlight"};return function(r){var i,o;return o=n.mixin({},t,r),{css:(i={css:(s={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},menu:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:" 0"}},n.isMsie()&&n.mixin(s.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),s),classes:o,html:(a=o,{wrapper:'<span class="'+a.wrapper+'"></span>',menu:'<div class="'+a.menu+'"></div>'}),selectors:e(o)}).css,html:i.html,classes:i.classes,selectors:i.selectors,mixin:function(t){n.mixin(t,i)}};var a;var s};function e(t){var e={};return n.each(t,(function(t,n){e[n]="."+t})),e}}(),i=function(){"use strict";var t;function r(t){t&&t.el||e.error("EventBus initialized without el"),this.$el=e(t.el)}return"typeahead:",t={render:"rendered",cursorchange:"cursorchanged",select:"selected",autocomplete:"autocompleted"},n.mixin(r.prototype,{_trigger:function(t,n){var r;return r=e.Event("typeahead:"+t),(n=n||[]).unshift(r),this.$el.trigger.apply(this.$el,n),r},before:function(t){var e;return e=[].slice.call(arguments,1),this._trigger("before"+t,e).isDefaultPrevented()},trigger:function(e){var n;this._trigger(e,[].slice.call(arguments,1)),(n=t[e])&&this._trigger(n,[].slice.call(arguments,1))}}),r}(),o=function(){"use strict";var t=/\s+/,e=window.setImmediate?function(t){setImmediate((function(){t()}))}:function(t){setTimeout((function(){t()}),0)};return{onSync:function(t,e,r){return n.call(this,"sync",t,e,r)},onAsync:function(t,e,r){return n.call(this,"async",t,e,r)},off:function(e){var n;if(!this._callbacks)return this;for(e=e.split(t);n=e.shift();)delete this._callbacks[n];return this},trigger:function(n){var i,o,a,s,c;if(!this._callbacks)return this;for(n=n.split(t),a=[].slice.call(arguments,1);(i=n.shift())&&(o=this._callbacks[i]);)s=r(o.sync,this,[i].concat(a)),c=r(o.async,this,[i].concat(a)),s()&&e(c);return this}};function n(e,n,r,i){var o;if(!r)return this;for(n=n.split(t),r=i?function(t,e){return t.bind?t.bind(e):function(){t.apply(e,[].slice.call(arguments,0))}}(r,i):r,this._callbacks=this._callbacks||{};o=n.shift();)this._callbacks[o]=this._callbacks[o]||{sync:[],async:[]},this._callbacks[o][e].push(r);return this}function r(t,e,n){return function(){for(var r,i=0,o=t.length;!r&&i<o;i+=1)r=!1===t[i].apply(e,n);return!r}}}(),a=function(t){"use strict";var e={node:null,pattern:null,tagName:"strong",className:null,wordsOnly:!1,caseSensitive:!1};return function(r){var i;(r=n.mixin({},e,r)).node&&r.pattern&&(r.pattern=n.isArray(r.pattern)?r.pattern:[r.pattern],i=function(t,e,r){for(var i,o=[],a=0,s=t.length;a<s;a++)o.push(n.escapeRegExChars(t[a]));return i=r?"\\b("+o.join("|")+")\\b":"("+o.join("|")+")",e?new RegExp(i):new RegExp(i,"i")}(r.pattern,r.caseSensitive,r.wordsOnly),function t(e,n){for(var r,i=0;i<e.childNodes.length;i++)3===(r=e.childNodes[i]).nodeType?i+=n(r)?1:0:t(r,n)}(r.node,(function(e){var n,o,a;return(n=i.exec(e.data))&&(a=t.createElement(r.tagName),r.className&&(a.className=r.className),(o=e.splitText(n.index)).splitText(n[0].length),a.appendChild(o.cloneNode(!0)),e.parentNode.replaceChild(a,o)),!!n})))}}(window.document),s=function(){"use strict";var t;function r(t,r){var i;(t=t||{}).input||e.error("input is missing"),r.mixin(this),this.$hint=e(t.hint),this.$input=e(t.input),this.query=this.$input.val(),this.queryWhenFocused=this.hasFocus()?this.query:null,this.$overflowHelper=(i=this.$input,e('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:i.css("font-family"),fontSize:i.css("font-size"),fontStyle:i.css("font-style"),fontVariant:i.css("font-variant"),fontWeight:i.css("font-weight"),wordSpacing:i.css("word-spacing"),letterSpacing:i.css("letter-spacing"),textIndent:i.css("text-indent"),textRendering:i.css("text-rendering"),textTransform:i.css("text-transform")}).insertAfter(i)),this._checkLanguageDirection(),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=n.noop)}return t={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"},r.normalizeQuery=function(t){return n.toStr(t).replace(/^\s*/g,"").replace(/\s{2,}/g," ")},n.mixin(r.prototype,o,{_onBlur:function(){this.resetInputValue(),this.trigger("blurred")},_onFocus:function(){this.queryWhenFocused=this.query,this.trigger("focused")},_onKeydown:function(e){var n=t[e.which||e.keyCode];this._managePreventDefault(n,e),n&&this._shouldTrigger(n,e)&&this.trigger(n+"Keyed",e)},_onInput:function(){this._setQuery(this.getInputValue()),this.clearHintIfInvalid(),this._checkLanguageDirection()},_managePreventDefault:function(t,e){var n;switch(t){case"up":case"down":n=!i(e);break;default:n=!1}n&&e.preventDefault()},_shouldTrigger:function(t,e){var n;switch(t){case"tab":n=!i(e);break;default:n=!0}return n},_checkLanguageDirection:function(){var t=(this.$input.css("direction")||"ltr").toLowerCase();this.dir!==t&&(this.dir=t,this.$hint.attr("dir",t),this.trigger("langDirChanged",t))},_setQuery:function(t,e){var n,i,o,a;o=t,a=this.query,i=!!(n=r.normalizeQuery(o)===r.normalizeQuery(a))&&this.query.length!==t.length,this.query=t,e||n?!e&&i&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},bind:function(){var e,r,i,o,a=this;return e=n.bind(this._onBlur,this),r=n.bind(this._onFocus,this),i=n.bind(this._onKeydown,this),o=n.bind(this._onInput,this),this.$input.on("blur.tt",e).on("focus.tt",r).on("keydown.tt",i),!n.isMsie()||n.isMsie()>9?this.$input.on("input.tt",o):this.$input.on("keydown.tt keypress.tt cut.tt paste.tt",(function(e){t[e.which||e.keyCode]||n.defer(n.bind(a._onInput,a,e))})),this},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getLangDir:function(){return this.dir},getQuery:function(){return this.query||""},setQuery:function(t,e){this.setInputValue(t),this._setQuery(t,e)},hasQueryChangedSinceLastFocus:function(){return this.query!==this.queryWhenFocused},getInputValue:function(){return this.$input.val()},setInputValue:function(t){this.$input.val(t),this.clearHintIfInvalid(),this._checkLanguageDirection()},resetInputValue:function(){this.setInputValue(this.query)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,e,n;n=(t=this.getInputValue())!==(e=this.getHint())&&0===e.indexOf(t),(""===t||!n||this.hasOverflow())&&this.clearHint()},hasFocus:function(){return this.$input.is(":focus")},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var t,e,r;return t=this.$input.val().length,e=this.$input[0].selectionStart,n.isNumber(e)?e===t:!document.selection||((r=document.selection.createRange()).moveStart("character",-t),t===r.text.length)},destroy:function(){this.$hint.off(".tt"),this.$input.off(".tt"),this.$overflowHelper.remove(),this.$hint=this.$input=this.$overflowHelper=e("<div>")}}),r;function i(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}}(),c=function(){"use strict";var t,r;function i(t,i){var o;(t=t||{}).templates=t.templates||{},t.templates.notFound=t.templates.notFound||t.templates.empty,t.source||e.error("missing source"),t.node||e.error("missing node"),t.name&&(o=t.name,!/^[_a-zA-Z0-9-]+$/.test(o))&&e.error("invalid dataset name: "+t.name),i.mixin(this),this.highlight=!!t.highlight,this.name=t.name||r(),this.limit=t.limit||5,this.displayFn=function(t){return t=t||n.stringify,n.isFunction(t)?t:e;function e(e){return e[t]}}(t.display||t.displayKey),this.templates=function(t,r){return{notFound:t.notFound&&n.templatify(t.notFound),pending:t.pending&&n.templatify(t.pending),header:t.header&&n.templatify(t.header),footer:t.footer&&n.templatify(t.footer),suggestion:t.suggestion||i};function i(t){return e("<div>").text(r(t))}}(t.templates,this.displayFn),this.source=t.source.__ttAdapter?t.source.__ttAdapter():t.source,this.async=n.isUndefined(t.async)?this.source.length>2:!!t.async,this._resetLastSuggestion(),this.$el=e(t.node).addClass(this.classes.dataset).addClass(this.classes.dataset+"-"+this.name)}return t={val:"tt-selectable-display",obj:"tt-selectable-object"},r=n.getIdGenerator(),i.extractData=function(n){var r=e(n);return r.data(t.obj)?{val:r.data(t.val)||"",obj:r.data(t.obj)||null}:null},n.mixin(i.prototype,o,{_overwrite:function(t,e){(e=e||[]).length?this._renderSuggestions(t,e):this.async&&this.templates.pending?this._renderPending(t):!this.async&&this.templates.notFound?this._renderNotFound(t):this._empty(),this.trigger("rendered",this.name,e,!1)},_append:function(t,e){(e=e||[]).length&&this.$lastSuggestion.length?this._appendSuggestions(t,e):e.length?this._renderSuggestions(t,e):!this.$lastSuggestion.length&&this.templates.notFound&&this._renderNotFound(t),this.trigger("rendered",this.name,e,!0)},_renderSuggestions:function(t,e){var n;n=this._getSuggestionsFragment(t,e),this.$lastSuggestion=n.children().last(),this.$el.html(n).prepend(this._getHeader(t,e)).append(this._getFooter(t,e))},_appendSuggestions:function(t,e){var n,r;r=(n=this._getSuggestionsFragment(t,e)).children().last(),this.$lastSuggestion.after(n),this.$lastSuggestion=r},_renderPending:function(t){var e=this.templates.pending;this._resetLastSuggestion(),e&&this.$el.html(e({query:t,dataset:this.name}))},_renderNotFound:function(t){var e=this.templates.notFound;this._resetLastSuggestion(),e&&this.$el.html(e({query:t,dataset:this.name}))},_empty:function(){this.$el.empty(),this._resetLastSuggestion()},_getSuggestionsFragment:function(r,i){var o,s=this;return o=document.createDocumentFragment(),n.each(i,(function(n){var i,a;a=s._injectQuery(r,n),i=e(s.templates.suggestion(a)).data(t.obj,n).data(t.val,s.displayFn(n)).addClass(s.classes.suggestion+" "+s.classes.selectable),o.appendChild(i[0])})),this.highlight&&a({className:this.classes.highlight,node:o,pattern:r}),e(o)},_getFooter:function(t,e){return this.templates.footer?this.templates.footer({query:t,suggestions:e,dataset:this.name}):null},_getHeader:function(t,e){return this.templates.header?this.templates.header({query:t,suggestions:e,dataset:this.name}):null},_resetLastSuggestion:function(){this.$lastSuggestion=e()},_injectQuery:function(t,e){return n.isObject(e)?n.mixin({_query:t},e):e},update:function(t){var n=this,r=!1,i=!1,o=0;function a(e){i||(i=!0,e=(e||[]).slice(0,n.limit),o=e.length,n._overwrite(t,e),o<n.limit&&n.async&&n.trigger("asyncRequested",t))}this.cancel(),this.cancel=function(){r=!0,n.cancel=e.noop,n.async&&n.trigger("asyncCanceled",t)},this.source(t,a,(function(i){i=i||[],!r&&o<n.limit&&(n.cancel=e.noop,o+=i.length,n._append(t,i.slice(0,n.limit-o)),n.async&&n.trigger("asyncReceived",t))})),!i&&a([])},cancel:e.noop,clear:function(){this._empty(),this.cancel(),this.trigger("cleared")},isEmpty:function(){return this.$el.is(":empty")},destroy:function(){this.$el=e("<div>")}}),i}(),u=function(){"use strict";function t(t,r){var i=this;(t=t||{}).node||e.error("node is required"),r.mixin(this),this.$node=e(t.node),this.query=null,this.datasets=n.map(t.datasets,(function(t){var n=i.$node.find(t.node).first();return t.node=n.length?n:e("<div>").appendTo(i.$node),new c(t,r)}))}return n.mixin(t.prototype,o,{_onSelectableClick:function(t){this.trigger("selectableClicked",e(t.currentTarget))},_onRendered:function(t,e,n,r){this.$node.toggleClass(this.classes.empty,this._allDatasetsEmpty()),this.trigger("datasetRendered",e,n,r)},_onCleared:function(){this.$node.toggleClass(this.classes.empty,this._allDatasetsEmpty()),this.trigger("datasetCleared")},_propagate:function(){this.trigger.apply(this,arguments)},_allDatasetsEmpty:function(){return n.every(this.datasets,(function(t){return t.isEmpty()}))},_getSelectables:function(){return this.$node.find(this.selectors.selectable)},_removeCursor:function(){var t=this.getActiveSelectable();t&&t.removeClass(this.classes.cursor)},_ensureVisible:function(t){var e,n,r,i;n=(e=t.position().top)+t.outerHeight(!0),r=this.$node.scrollTop(),i=this.$node.height()+parseInt(this.$node.css("paddingTop"),10)+parseInt(this.$node.css("paddingBottom"),10),e<0?this.$node.scrollTop(r+e):i<n&&this.$node.scrollTop(r+(n-i))},bind:function(){var t,e=this;return t=n.bind(this._onSelectableClick,this),this.$node.on("click.tt",this.selectors.selectable,t),n.each(this.datasets,(function(t){t.onSync("asyncRequested",e._propagate,e).onSync("asyncCanceled",e._propagate,e).onSync("asyncReceived",e._propagate,e).onSync("rendered",e._onRendered,e).onSync("cleared",e._onCleared,e)})),this},isOpen:function(){return this.$node.hasClass(this.classes.open)},open:function(){this.$node.addClass(this.classes.open)},close:function(){this.$node.removeClass(this.classes.open),this._removeCursor()},setLanguageDirection:function(t){this.$node.attr("dir",t)},selectableRelativeToCursor:function(t){var e,n,r;return n=this.getActiveSelectable(),e=this._getSelectables(),-1===(r=(r=((r=(n?e.index(n):-1)+t)+1)%(e.length+1)-1)<-1?e.length-1:r)?null:e.eq(r)},setCursor:function(t){this._removeCursor(),(t=t&&t.first())&&(t.addClass(this.classes.cursor),this._ensureVisible(t))},getSelectableData:function(t){return t&&t.length?c.extractData(t):null},getActiveSelectable:function(){var t=this._getSelectables().filter(this.selectors.cursor).first();return t.length?t:null},getTopSelectable:function(){var t=this._getSelectables().first();return t.length?t:null},update:function(t){var e=t!==this.query;return e&&(this.query=t,n.each(this.datasets,(function(e){e.update(t)}))),e},empty:function(){n.each(this.datasets,(function(t){t.clear()})),this.query=null,this.$node.addClass(this.classes.empty)},destroy:function(){this.$node.off(".tt"),this.$node=e("<div>"),n.each(this.datasets,(function(t){t.destroy()}))}}),t}(),l=function(){"use strict";var t=u.prototype;function e(){u.apply(this,[].slice.call(arguments,0))}return n.mixin(e.prototype,u.prototype,{open:function(){return!this._allDatasetsEmpty()&&this._show(),t.open.apply(this,[].slice.call(arguments,0))},close:function(){return this._hide(),t.close.apply(this,[].slice.call(arguments,0))},_onRendered:function(){return this._allDatasetsEmpty()?this._hide():this.isOpen()&&this._show(),t._onRendered.apply(this,[].slice.call(arguments,0))},_onCleared:function(){return this._allDatasetsEmpty()?this._hide():this.isOpen()&&this._show(),t._onCleared.apply(this,[].slice.call(arguments,0))},setLanguageDirection:function(e){return this.$node.css("ltr"===e?this.css.ltr:this.css.rtl),t.setLanguageDirection.apply(this,[].slice.call(arguments,0))},_hide:function(){this.$node.hide()},_show:function(){this.$node.css("display","block")}}),e}(),f=function(){"use strict";function t(t,i){var o,a,s,c,u,l,f,d,p,h,v;(t=t||{}).input||e.error("missing input"),t.menu||e.error("missing menu"),t.eventBus||e.error("missing event bus"),i.mixin(this),this.eventBus=t.eventBus,this.minLength=n.isNumber(t.minLength)?t.minLength:1,this.input=t.input,this.menu=t.menu,this.enabled=!0,this.active=!1,this.input.hasFocus()&&this.activate(),this.dir=this.input.getLangDir(),this._hacks(),this.menu.bind().onSync("selectableClicked",this._onSelectableClicked,this).onSync("asyncRequested",this._onAsyncRequested,this).onSync("asyncCanceled",this._onAsyncCanceled,this).onSync("asyncReceived",this._onAsyncReceived,this).onSync("datasetRendered",this._onDatasetRendered,this).onSync("datasetCleared",this._onDatasetCleared,this),o=r(this,"activate","open","_onFocused"),a=r(this,"deactivate","_onBlurred"),s=r(this,"isActive","isOpen","_onEnterKeyed"),c=r(this,"isActive","isOpen","_onTabKeyed"),u=r(this,"isActive","_onEscKeyed"),l=r(this,"isActive","open","_onUpKeyed"),f=r(this,"isActive","open","_onDownKeyed"),d=r(this,"isActive","isOpen","_onLeftKeyed"),p=r(this,"isActive","isOpen","_onRightKeyed"),h=r(this,"_openIfActive","_onQueryChanged"),v=r(this,"_openIfActive","_onWhitespaceChanged"),this.input.bind().onSync("focused",o,this).onSync("blurred",a,this).onSync("enterKeyed",s,this).onSync("tabKeyed",c,this).onSync("escKeyed",u,this).onSync("upKeyed",l,this).onSync("downKeyed",f,this).onSync("leftKeyed",d,this).onSync("rightKeyed",p,this).onSync("queryChanged",h,this).onSync("whitespaceChanged",v,this).onSync("langDirChanged",this._onLangDirChanged,this)}return n.mixin(t.prototype,{_hacks:function(){var t,r;t=this.input.$input||e("<div>"),r=this.menu.$node||e("<div>"),t.on("blur.tt",(function(e){var i,o,a;i=document.activeElement,o=r.is(i),a=r.has(i).length>0,n.isMsie()&&(o||a)&&(e.preventDefault(),e.stopImmediatePropagation(),n.defer((function(){t.focus()})))})),r.on("mousedown.tt",(function(t){t.preventDefault()}))},_onSelectableClicked:function(t,e){this.select(e)},_onDatasetCleared:function(){this._updateHint()},_onDatasetRendered:function(t,e,n,r){this._updateHint(),this.eventBus.trigger("render",n,r,e)},_onAsyncRequested:function(t,e,n){this.eventBus.trigger("asyncrequest",n,e)},_onAsyncCanceled:function(t,e,n){this.eventBus.trigger("asynccancel",n,e)},_onAsyncReceived:function(t,e,n){this.eventBus.trigger("asyncreceive",n,e)},_onFocused:function(){this._minLengthMet()&&this.menu.update(this.input.getQuery())},_onBlurred:function(){this.input.hasQueryChangedSinceLastFocus()&&this.eventBus.trigger("change",this.input.getQuery())},_onEnterKeyed:function(t,e){var n;(n=this.menu.getActiveSelectable())&&this.select(n)&&e.preventDefault()},_onTabKeyed:function(t,e){var n;(n=this.menu.getActiveSelectable())?this.select(n)&&e.preventDefault():(n=this.menu.getTopSelectable())&&this.autocomplete(n)&&e.preventDefault()},_onEscKeyed:function(){this.close()},_onUpKeyed:function(){this.moveCursor(-1)},_onDownKeyed:function(){this.moveCursor(1)},_onLeftKeyed:function(){"rtl"===this.dir&&this.input.isCursorAtEnd()&&this.autocomplete(this.menu.getTopSelectable())},_onRightKeyed:function(){"ltr"===this.dir&&this.input.isCursorAtEnd()&&this.autocomplete(this.menu.getTopSelectable())},_onQueryChanged:function(t,e){this._minLengthMet(e)?this.menu.update(e):this.menu.empty()},_onWhitespaceChanged:function(){this._updateHint()},_onLangDirChanged:function(t,e){this.dir!==e&&(this.dir=e,this.menu.setLanguageDirection(e))},_openIfActive:function(){this.isActive()&&this.open()},_minLengthMet:function(t){return(t=n.isString(t)?t:this.input.getQuery()||"").length>=this.minLength},_updateHint:function(){var t,e,r,i,o,a;t=this.menu.getTopSelectable(),e=this.menu.getSelectableData(t),r=this.input.getInputValue(),!e||n.isBlankString(r)||this.input.hasOverflow()?this.input.clearHint():(i=s.normalizeQuery(r),o=n.escapeRegExChars(i),(a=new RegExp("^(?:"+o+")(.+$)","i").exec(e.val))&&this.input.setHint(r+a[1]))},isEnabled:function(){return this.enabled},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},isActive:function(){return this.active},activate:function(){return!!this.isActive()||!(!this.isEnabled()||this.eventBus.before("active"))&&(this.active=!0,this.eventBus.trigger("active"),!0)},deactivate:function(){return!this.isActive()||!this.eventBus.before("idle")&&(this.active=!1,this.close(),this.eventBus.trigger("idle"),!0)},isOpen:function(){return this.menu.isOpen()},open:function(){return this.isOpen()||this.eventBus.before("open")||(this.menu.open(),this._updateHint(),this.eventBus.trigger("open")),this.isOpen()},close:function(){return this.isOpen()&&!this.eventBus.before("close")&&(this.menu.close(),this.input.clearHint(),this.input.resetInputValue(),this.eventBus.trigger("close")),!this.isOpen()},setVal:function(t){this.input.setQuery(n.toStr(t))},getVal:function(){return this.input.getQuery()},select:function(t){var e=this.menu.getSelectableData(t);return!(!e||this.eventBus.before("select",e.obj)||(this.input.setQuery(e.val,!0),this.eventBus.trigger("select",e.obj),this.close(),0))},autocomplete:function(t){var e,n;return e=this.input.getQuery(),!(!(n=this.menu.getSelectableData(t))||e===n.val||this.eventBus.before("autocomplete",n.obj)||(this.input.setQuery(n.val),this.eventBus.trigger("autocomplete",n.obj),0))},moveCursor:function(t){var e,n,r,i;return e=this.input.getQuery(),n=this.menu.selectableRelativeToCursor(t),i=(r=this.menu.getSelectableData(n))?r.obj:null,!(this._minLengthMet()&&this.menu.update(e)||this.eventBus.before("cursorchange",i)||(this.menu.setCursor(n),r?this.input.setInputValue(r.val):(this.input.resetInputValue(),this._updateHint()),this.eventBus.trigger("cursorchange",i),0))},destroy:function(){this.input.destroy(),this.menu.destroy()}}),t;function r(t){var e=[].slice.call(arguments,1);return function(){var r=[].slice.call(arguments);n.each(e,(function(e){return t[e].apply(t,r)}))}}}(),void function(){"use strict";var t,o,a;function c(t,n){t.each((function(){var t,r=e(this);(t=r.data(o.typeahead))&&n(t,r)}))}function d(t,e){return t.clone().addClass(e.classes.hint).removeData().css(e.css.hint).css((n=t,{backgroundAttachment:n.css("background-attachment"),backgroundClip:n.css("background-clip"),backgroundColor:n.css("background-color"),backgroundImage:n.css("background-image"),backgroundOrigin:n.css("background-origin"),backgroundPosition:n.css("background-position"),backgroundRepeat:n.css("background-repeat"),backgroundSize:n.css("background-size")})).prop("readonly",!0).removeAttr("id name placeholder required").attr({autocomplete:"off",spellcheck:"false",tabindex:-1});var n}function p(t,e){t.data(o.attrs,{dir:t.attr("dir"),autocomplete:t.attr("autocomplete"),spellcheck:t.attr("spellcheck"),style:t.attr("style")}),t.addClass(e.classes.input).attr({autocomplete:"off",spellcheck:!1});try{!t.attr("dir")&&t.attr("dir","auto")}catch(t){}return t}function h(t){var r;return(r=n.isJQuery(t)||n.isElement(t)?e(t).first():[]).length?r:null}t=e.fn.typeahead,o={www:"tt-www",attrs:"tt-attrs",typeahead:"tt-typeahead"},a={initialize:function(t,a){var c;return a=n.isArray(a)?a:[].slice.call(arguments,1),c=r((t=t||{}).classNames),this.each(v);function v(){var r,v,m,g,y,b,_,w,C,x,A;n.each(a,(function(e){e.highlight=!!t.highlight})),r=e(this),v=e(c.html.wrapper),m=h(t.hint),g=h(t.menu),y=!1!==t.hint&&!m,b=!1!==t.menu&&!g,y&&(m=d(r,c)),b&&(g=e(c.html.menu).css(c.css.menu)),m&&m.val(""),r=p(r,c),(y||b)&&(v.css(c.css.wrapper),r.css(y?c.css.input:c.css.inputWithNoHint),r.wrap(v).parent().prepend(y?m:null).append(b?g:null)),A=b?l:u,_=new i({el:r}),w=new s({hint:m,input:r},c),C=new A({node:g,datasets:a},c),x=new f({input:w,menu:C,eventBus:_,minLength:t.minLength},c),r.data(o.www,c),r.data(o.typeahead,x)}},isEnabled:function(){var t;return c(this.first(),(function(e){t=e.isEnabled()})),t},enable:function(){return c(this,(function(t){t.enable()})),this},disable:function(){return c(this,(function(t){t.disable()})),this},isActive:function(){var t;return c(this.first(),(function(e){t=e.isActive()})),t},activate:function(){return c(this,(function(t){t.activate()})),this},deactivate:function(){return c(this,(function(t){t.deactivate()})),this},isOpen:function(){var t;return c(this.first(),(function(e){t=e.isOpen()})),t},open:function(){return c(this,(function(t){t.open()})),this},close:function(){return c(this,(function(t){t.close()})),this},select:function(t){var n=!1,r=e(t);return c(this.first(),(function(t){n=t.select(r)})),n},autocomplete:function(t){var n=!1,r=e(t);return c(this.first(),(function(t){n=t.autocomplete(r)})),n},moveCursor:function(t){var e=!1;return c(this.first(),(function(n){e=n.moveCursor(t)})),e},val:function(t){var e;return arguments.length?(c(this,(function(e){e.setVal(t)})),this):(c(this.first(),(function(t){e=t.getVal()})),e)},destroy:function(){return c(this,(function(t,e){(function(t){var e,r;e=t.data(o.www),r=t.parent().filter(e.selectors.wrapper),n.each(t.data(o.attrs),(function(e,r){n.isUndefined(e)?t.removeAttr(r):t.attr(r,e)})),t.removeData(o.typeahead).removeData(o.www).removeData(o.attr).removeClass(e.classes.input),r.length&&(t.detach().insertAfter(r),r.remove())})(e),t.destroy()})),this}},e.fn.typeahead=function(t){return a[t]?a[t].apply(this,[].slice.call(arguments,1)):a.initialize.apply(this,arguments)},e.fn.typeahead.noConflict=function(){return e.fn.typeahead=t,this}}();var e,n,r,i,o,a,s,c,u,l,f}.apply(e,r))||(t.exports=i)},25121:(t,e,n)=>{"use strict";n.r(e),n.d(e,{__esModule:()=>i.X,default:()=>s});var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"serp"}},[n("div",{staticClass:"serp-preview"},[n("div",{staticClass:"serp-title"},[t._v("\n "+t._s(t.displayedTitle)+"\n ")]),t._v(" "),n("div",{staticClass:"serp-url"},[t._v("\n "+t._s(t.url)),n("span",{staticClass:"serp-arrow"})]),t._v(" "),n("div",{staticClass:"serp-description"},[t._v("\n "+t._s(t.displayedDescription)+"\n ")])])])};r._withStripped=!0;var i=n(66313);const o=i.Z;n(69492);var a=(0,n(51900).Z)(o,r,[],!1,null,"66c4c5ab",null);a.options.__file="js/app/utils/serp/serp.vue";const s=a.exports},51900:(t,e,n)=>{"use strict";function r(t,e,n,r,i,o,a,s){var c,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),r&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),a?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},u._ssrRegister=c):i&&(c=s?function(){i.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:i),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(t,e){return c.call(e),l(t,e)}}else{var f=u.beforeCreate;u.beforeCreate=f?[].concat(f,c):[c]}return{exports:t,options:u}}n.d(e,{Z:()=>r})},69492:(t,e,n)=>{var r=n(20251);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals),(0,n(45346).Z)("2c83d4db",r,!1,{})},45346:(t,e,n)=>{"use strict";function r(t,e){for(var n=[],r={},i=0;i<e.length;i++){var o=e[i],a=o[0],s={id:t+":"+i,css:o[1],media:o[2],sourceMap:o[3]};r[a]?r[a].parts.push(s):n.push(r[a]={id:a,parts:[s]})}return n}n.d(e,{Z:()=>h});var i="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!i)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var o={},a=i&&(document.head||document.getElementsByTagName("head")[0]),s=null,c=0,u=!1,l=function(){},f=null,d="data-vue-ssr-id",p="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function h(t,e,n,i){u=n,f=i||{};var a=r(t,e);return v(a),function(e){for(var n=[],i=0;i<a.length;i++){var s=a[i];(c=o[s.id]).refs--,n.push(c)}for(e?v(a=r(t,e)):a=[],i=0;i<n.length;i++){var c;if(0===(c=n[i]).refs){for(var u=0;u<c.parts.length;u++)c.parts[u]();delete o[c.id]}}}}function v(t){for(var e=0;e<t.length;e++){var n=t[e],r=o[n.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](n.parts[i]);for(;i<n.parts.length;i++)r.parts.push(g(n.parts[i]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{var a=[];for(i=0;i<n.parts.length;i++)a.push(g(n.parts[i]));o[n.id]={id:n.id,refs:1,parts:a}}}}function m(){var t=document.createElement("style");return t.type="text/css",a.appendChild(t),t}function g(t){var e,n,r=document.querySelector("style["+d+'~="'+t.id+'"]');if(r){if(u)return l;r.parentNode.removeChild(r)}if(p){var i=c++;r=s||(s=m()),e=_.bind(null,r,i,!1),n=_.bind(null,r,i,!0)}else r=m(),e=w.bind(null,r),n=function(){r.parentNode.removeChild(r)};return e(t),function(r){if(r){if(r.css===t.css&&r.media===t.media&&r.sourceMap===t.sourceMap)return;e(t=r)}else n()}}var y,b=(y=[],function(t,e){return y[t]=e,y.filter(Boolean).join("\n")});function _(t,e,n,r){var i=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=b(e,i);else{var o=document.createTextNode(i),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(o,a[e]):t.appendChild(o)}}function w(t,e){var n=e.css,r=e.media,i=e.sourceMap;if(r&&t.setAttribute("media",r),f.ssrId&&t.setAttribute(d,e.id),i&&(n+="\n/*# sourceURL="+i.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}},72100:(t,e,n)=>{t.exports=n(91317)},91317:(t,e,n)=>{"use strict";var r=Object.freeze({});function i(t){return null==t}function o(t){return null!=t}function a(t){return!0===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function c(t){return null!==t&&"object"==typeof t}var u=Object.prototype.toString;function l(t){return"[object Object]"===u.call(t)}function f(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return o(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function p(t){return null==t?"":Array.isArray(t)||l(t)&&t.toString===u?JSON.stringify(t,null,2):String(t)}function h(t){var e=parseFloat(t);return isNaN(e)?t:e}function v(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i<r.length;i++)n[r[i]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}var m=v("slot,component",!0),g=v("key,ref,slot,slot-scope,is");function y(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function _(t,e){return b.call(t,e)}function w(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var C=/-(\w)/g,x=w((function(t){return t.replace(C,(function(t,e){return e?e.toUpperCase():""}))})),A=w((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),k=/\B([A-Z])/g,$=w((function(t){return t.replace(k,"-$1").toLowerCase()})),S=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function O(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function T(t,e){for(var n in e)t[n]=e[n];return t}function j(t){for(var e={},n=0;n<t.length;n++)t[n]&&T(e,t[n]);return e}function B(t,e,n){}var E=function(t,e,n){return!1},L=function(t){return t};function D(t,e){if(t===e)return!0;var n=c(t),r=c(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{var i=Array.isArray(t),o=Array.isArray(e);if(i&&o)return t.length===e.length&&t.every((function(t,n){return D(t,e[n])}));if(t instanceof Date&&e instanceof Date)return t.getTime()===e.getTime();if(i||o)return!1;var a=Object.keys(t),s=Object.keys(e);return a.length===s.length&&a.every((function(n){return D(t[n],e[n])}))}catch(t){return!1}}function I(t,e){for(var n=0;n<t.length;n++)if(D(t[n],e))return n;return-1}function M(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}var N="data-server-rendered",F=["component","directive","filter"],P=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],R={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:E,isReservedAttr:E,isUnknownElement:E,getTagNamespace:B,parsePlatformTagName:L,mustUseProp:E,async:!0,_lifecycleHooks:P},z=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function q(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var U,H=new RegExp("[^"+z.source+".$_\\d]"),K="__proto__"in{},V="undefined"!=typeof window,Q="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,W=Q&&WXEnvironment.platform.toLowerCase(),J=V&&window.navigator.userAgent.toLowerCase(),G=J&&/msie|trident/.test(J),Z=J&&J.indexOf("msie 9.0")>0,X=J&&J.indexOf("edge/")>0,Y=(J&&J.indexOf("android"),J&&/iphone|ipad|ipod|ios/.test(J)||"ios"===W),tt=(J&&/chrome\/\d+/.test(J),J&&/phantomjs/.test(J),J&&J.match(/firefox\/(\d+)/)),et={}.watch,nt=!1;if(V)try{var rt={};Object.defineProperty(rt,"passive",{get:function(){nt=!0}}),window.addEventListener("test-passive",null,rt)}catch(r){}var it=function(){return void 0===U&&(U=!V&&!Q&&void 0!==n.g&&n.g.process&&"server"===n.g.process.env.VUE_ENV),U},ot=V&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function at(t){return"function"==typeof t&&/native code/.test(t.toString())}var st,ct="undefined"!=typeof Symbol&&at(Symbol)&&"undefined"!=typeof Reflect&&at(Reflect.ownKeys);st="undefined"!=typeof Set&&at(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=B,lt=0,ft=function(){this.id=lt++,this.subs=[]};ft.prototype.addSub=function(t){this.subs.push(t)},ft.prototype.removeSub=function(t){y(this.subs,t)},ft.prototype.depend=function(){ft.target&&ft.target.addDep(this)},ft.prototype.notify=function(){for(var t=this.subs.slice(),e=0,n=t.length;e<n;e++)t[e].update()},ft.target=null;var dt=[];function pt(t){dt.push(t),ft.target=t}function ht(){dt.pop(),ft.target=dt[dt.length-1]}var vt=function(t,e,n,r,i,o,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},mt={child:{configurable:!0}};mt.child.get=function(){return this.componentInstance},Object.defineProperties(vt.prototype,mt);var gt=function(t){void 0===t&&(t="");var e=new vt;return e.text=t,e.isComment=!0,e};function yt(t){return new vt(void 0,void 0,void 0,String(t))}function bt(t){var e=new vt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var _t=Array.prototype,wt=Object.create(_t);["push","pop","shift","unshift","splice","sort","reverse"].forEach((function(t){var e=_t[t];q(wt,t,(function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var i,o=e.apply(this,n),a=this.__ob__;switch(t){case"push":case"unshift":i=n;break;case"splice":i=n.slice(2)}return i&&a.observeArray(i),a.dep.notify(),o}))}));var Ct=Object.getOwnPropertyNames(wt),xt=!0;function At(t){xt=t}var kt=function(t){var e;this.value=t,this.dep=new ft,this.vmCount=0,q(t,"__ob__",this),Array.isArray(t)?(K?(e=wt,t.__proto__=e):function(t,e,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];q(t,o,e[o])}}(t,wt,Ct),this.observeArray(t)):this.walk(t)};function $t(t,e){var n;if(c(t)&&!(t instanceof vt))return _(t,"__ob__")&&t.__ob__ instanceof kt?n=t.__ob__:xt&&!it()&&(Array.isArray(t)||l(t))&&Object.isExtensible(t)&&!t._isVue&&(n=new kt(t)),e&&n&&n.vmCount++,n}function St(t,e,n,r,i){var o=new ft,a=Object.getOwnPropertyDescriptor(t,e);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set;s&&!c||2!==arguments.length||(n=t[e]);var u=!i&&$t(n);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(t):n;return ft.target&&(o.depend(),u&&(u.dep.depend(),Array.isArray(e)&&function t(e){for(var n=void 0,r=0,i=e.length;r<i;r++)(n=e[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&t(n)}(e))),e},set:function(e){var r=s?s.call(t):n;e===r||e!=e&&r!=r||s&&!c||(c?c.call(t,e):n=e,u=!i&&$t(e),o.notify())}})}}function Ot(t,e,n){if(Array.isArray(t)&&f(e))return t.length=Math.max(t.length,e),t.splice(e,1,n),n;if(e in t&&!(e in Object.prototype))return t[e]=n,n;var r=t.__ob__;return t._isVue||r&&r.vmCount?n:r?(St(r.value,e,n),r.dep.notify(),n):(t[e]=n,n)}function Tt(t,e){if(Array.isArray(t)&&f(e))t.splice(e,1);else{var n=t.__ob__;t._isVue||n&&n.vmCount||_(t,e)&&(delete t[e],n&&n.dep.notify())}}kt.prototype.walk=function(t){for(var e=Object.keys(t),n=0;n<e.length;n++)St(t,e[n])},kt.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)$t(t[e])};var jt=R.optionMergeStrategies;function Bt(t,e){if(!e)return t;for(var n,r,i,o=ct?Reflect.ownKeys(e):Object.keys(e),a=0;a<o.length;a++)"__ob__"!==(n=o[a])&&(r=t[n],i=e[n],_(t,n)?r!==i&&l(r)&&l(i)&&Bt(r,i):Ot(t,n,i));return t}function Et(t,e,n){return n?function(){var r="function"==typeof e?e.call(n,n):e,i="function"==typeof t?t.call(n,n):t;return r?Bt(r,i):i}:e?t?function(){return Bt("function"==typeof e?e.call(this,this):e,"function"==typeof t?t.call(this,this):t)}:e:t}function Lt(t,e){var n=e?t?t.concat(e):Array.isArray(e)?e:[e]:t;return n?function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(n):n}function Dt(t,e,n,r){var i=Object.create(t||null);return e?T(i,e):i}jt.data=function(t,e,n){return n?Et(t,e,n):e&&"function"!=typeof e?t:Et(t,e)},P.forEach((function(t){jt[t]=Lt})),F.forEach((function(t){jt[t+"s"]=Dt})),jt.watch=function(t,e,n,r){if(t===et&&(t=void 0),e===et&&(e=void 0),!e)return Object.create(t||null);if(!t)return e;var i={};for(var o in T(i,t),e){var a=i[o],s=e[o];a&&!Array.isArray(a)&&(a=[a]),i[o]=a?a.concat(s):Array.isArray(s)?s:[s]}return i},jt.props=jt.methods=jt.inject=jt.computed=function(t,e,n,r){if(!t)return e;var i=Object.create(null);return T(i,t),e&&T(i,e),i},jt.provide=Et;var It=function(t,e){return void 0===e?t:e};function Mt(t,e,n){if("function"==typeof e&&(e=e.options),function(t,e){var n=t.props;if(n){var r,i,o={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(i=n[r])&&(o[x(i)]={type:null});else if(l(n))for(var a in n)i=n[a],o[x(a)]=l(i)?i:{type:i};t.props=o}}(e),function(t,e){var n=t.inject;if(n){var r=t.inject={};if(Array.isArray(n))for(var i=0;i<n.length;i++)r[n[i]]={from:n[i]};else if(l(n))for(var o in n){var a=n[o];r[o]=l(a)?T({from:o},a):{from:a}}}}(e),function(t){var e=t.directives;if(e)for(var n in e){var r=e[n];"function"==typeof r&&(e[n]={bind:r,update:r})}}(e),!e._base&&(e.extends&&(t=Mt(t,e.extends,n)),e.mixins))for(var r=0,i=e.mixins.length;r<i;r++)t=Mt(t,e.mixins[r],n);var o,a={};for(o in t)s(o);for(o in e)_(t,o)||s(o);function s(r){var i=jt[r]||It;a[r]=i(t[r],e[r],n,r)}return a}function Nt(t,e,n,r){if("string"==typeof n){var i=t[e];if(_(i,n))return i[n];var o=x(n);if(_(i,o))return i[o];var a=A(o);return _(i,a)?i[a]:i[n]||i[o]||i[a]}}function Ft(t,e,n,r){var i=e[t],o=!_(n,t),a=n[t],s=zt(Boolean,i.type);if(s>-1)if(o&&!_(i,"default"))a=!1;else if(""===a||a===$(t)){var c=zt(String,i.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=function(t,e,n){if(_(e,"default")){var r=e.default;return t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n]?t._props[n]:"function"==typeof r&&"Function"!==Pt(e.type)?r.call(t):r}}(r,i,t);var u=xt;At(!0),$t(a),At(u)}return a}function Pt(t){var e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function Rt(t,e){return Pt(t)===Pt(e)}function zt(t,e){if(!Array.isArray(e))return Rt(e,t)?0:-1;for(var n=0,r=e.length;n<r;n++)if(Rt(e[n],t))return n;return-1}function qt(t,e,n){pt();try{if(e)for(var r=e;r=r.$parent;){var i=r.$options.errorCaptured;if(i)for(var o=0;o<i.length;o++)try{if(!1===i[o].call(r,t,e,n))return}catch(t){Ht(t,r,"errorCaptured hook")}}Ht(t,e,n)}finally{ht()}}function Ut(t,e,n,r,i){var o;try{(o=n?t.apply(e,n):t.call(e))&&!o._isVue&&d(o)&&!o._handled&&(o.catch((function(t){return qt(t,r,i+" (Promise/async)")})),o._handled=!0)}catch(t){qt(t,r,i)}return o}function Ht(t,e,n){if(R.errorHandler)try{return R.errorHandler.call(null,t,e,n)}catch(e){e!==t&&Kt(e)}Kt(t)}function Kt(t,e,n){if(!V&&!Q||"undefined"==typeof console)throw t;console.error(t)}var Vt,Qt=!1,Wt=[],Jt=!1;function Gt(){Jt=!1;var t=Wt.slice(0);Wt.length=0;for(var e=0;e<t.length;e++)t[e]()}if("undefined"!=typeof Promise&&at(Promise)){var Zt=Promise.resolve();Vt=function(){Zt.then(Gt),Y&&setTimeout(B)},Qt=!0}else if(G||"undefined"==typeof MutationObserver||!at(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())Vt="undefined"!=typeof setImmediate&&at(setImmediate)?function(){setImmediate(Gt)}:function(){setTimeout(Gt,0)};else{var Xt=1,Yt=new MutationObserver(Gt),te=document.createTextNode(String(Xt));Yt.observe(te,{characterData:!0}),Vt=function(){Xt=(Xt+1)%2,te.data=String(Xt)},Qt=!0}function ee(t,e){var n;if(Wt.push((function(){if(t)try{t.call(e)}catch(t){qt(t,e,"nextTick")}else n&&n(e)})),Jt||(Jt=!0,Vt()),!t&&"undefined"!=typeof Promise)return new Promise((function(t){n=t}))}var ne=new st;function re(t){!function t(e,n){var r,i,o=Array.isArray(e);if(!(!o&&!c(e)||Object.isFrozen(e)||e instanceof vt)){if(e.__ob__){var a=e.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(o)for(r=e.length;r--;)t(e[r],n);else for(r=(i=Object.keys(e)).length;r--;)t(e[i[r]],n)}}(t,ne),ne.clear()}var ie=w((function(t){var e="&"===t.charAt(0),n="~"===(t=e?t.slice(1):t).charAt(0),r="!"===(t=n?t.slice(1):t).charAt(0);return{name:t=r?t.slice(1):t,once:n,capture:r,passive:e}}));function oe(t,e){function n(){var t=arguments,r=n.fns;if(!Array.isArray(r))return Ut(r,null,arguments,e,"v-on handler");for(var i=r.slice(),o=0;o<i.length;o++)Ut(i[o],null,t,e,"v-on handler")}return n.fns=t,n}function ae(t,e,n,r,o,s){var c,u,l,f;for(c in t)u=t[c],l=e[c],f=ie(c),i(u)||(i(l)?(i(u.fns)&&(u=t[c]=oe(u,s)),a(f.once)&&(u=t[c]=o(f.name,u,f.capture)),n(f.name,u,f.capture,f.passive,f.params)):u!==l&&(l.fns=u,t[c]=l));for(c in e)i(t[c])&&r((f=ie(c)).name,e[c],f.capture)}function se(t,e,n){var r;t instanceof vt&&(t=t.data.hook||(t.data.hook={}));var s=t[e];function c(){n.apply(this,arguments),y(r.fns,c)}i(s)?r=oe([c]):o(s.fns)&&a(s.merged)?(r=s).fns.push(c):r=oe([s,c]),r.merged=!0,t[e]=r}function ce(t,e,n,r,i){if(o(e)){if(_(e,n))return t[n]=e[n],i||delete e[n],!0;if(_(e,r))return t[n]=e[r],i||delete e[r],!0}return!1}function ue(t){return s(t)?[yt(t)]:Array.isArray(t)?function t(e,n){var r,c,u,l,f=[];for(r=0;r<e.length;r++)i(c=e[r])||"boolean"==typeof c||(l=f[u=f.length-1],Array.isArray(c)?c.length>0&&(le((c=t(c,(n||"")+"_"+r))[0])&&le(l)&&(f[u]=yt(l.text+c[0].text),c.shift()),f.push.apply(f,c)):s(c)?le(l)?f[u]=yt(l.text+c):""!==c&&f.push(yt(c)):le(c)&&le(l)?f[u]=yt(l.text+c.text):(a(e._isVList)&&o(c.tag)&&i(c.key)&&o(n)&&(c.key="__vlist"+n+"_"+r+"__"),f.push(c)));return f}(t):void 0}function le(t){return o(t)&&o(t.text)&&!1===t.isComment}function fe(t,e){if(t){for(var n=Object.create(null),r=ct?Reflect.ownKeys(t):Object.keys(t),i=0;i<r.length;i++){var o=r[i];if("__ob__"!==o){for(var a=t[o].from,s=e;s;){if(s._provided&&_(s._provided,a)){n[o]=s._provided[a];break}s=s.$parent}if(!s&&"default"in t[o]){var c=t[o].default;n[o]="function"==typeof c?c.call(e):c}}}return n}}function de(t,e){if(!t||!t.length)return{};for(var n={},r=0,i=t.length;r<i;r++){var o=t[r],a=o.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,o.context!==e&&o.fnContext!==e||!a||null==a.slot)(n.default||(n.default=[])).push(o);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===o.tag?c.push.apply(c,o.children||[]):c.push(o)}}for(var u in n)n[u].every(pe)&&delete n[u];return n}function pe(t){return t.isComment&&!t.asyncFactory||" "===t.text}function he(t,e,n){var i,o=Object.keys(e).length>0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&n&&n!==r&&s===n.$key&&!o&&!n.$hasNormal)return n;for(var c in i={},t)t[c]&&"$"!==c[0]&&(i[c]=ve(e,c,t[c]))}else i={};for(var u in e)u in i||(i[u]=me(e,u));return t&&Object.isExtensible(t)&&(t._normalized=i),q(i,"$stable",a),q(i,"$key",s),q(i,"$hasNormal",o),i}function ve(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:ue(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function me(t,e){return function(){return t[e]}}function ge(t,e){var n,r,i,a,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,i=t.length;r<i;r++)n[r]=e(t[r],r);else if("number"==typeof t)for(n=new Array(t),r=0;r<t;r++)n[r]=e(r+1,r);else if(c(t))if(ct&&t[Symbol.iterator]){n=[];for(var u=t[Symbol.iterator](),l=u.next();!l.done;)n.push(e(l.value,n.length)),l=u.next()}else for(a=Object.keys(t),n=new Array(a.length),r=0,i=a.length;r<i;r++)s=a[r],n[r]=e(t[s],s,r);return o(n)||(n=[]),n._isVList=!0,n}function ye(t,e,n,r){var i,o=this.$scopedSlots[t];o?(n=n||{},r&&(n=T(T({},r),n)),i=o(n)||e):i=this.$slots[t]||e;var a=n&&n.slot;return a?this.$createElement("template",{slot:a},i):i}function be(t){return Nt(this.$options,"filters",t)||L}function _e(t,e){return Array.isArray(t)?-1===t.indexOf(e):t!==e}function we(t,e,n,r,i){var o=R.keyCodes[e]||n;return i&&r&&!R.keyCodes[e]?_e(i,r):o?_e(o,t):r?$(r)!==e:void 0}function Ce(t,e,n,r,i){if(n&&c(n)){var o;Array.isArray(n)&&(n=j(n));var a=function(a){if("class"===a||"style"===a||g(a))o=t;else{var s=t.attrs&&t.attrs.type;o=r||R.mustUseProp(e,s,a)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}var c=x(a),u=$(a);c in o||u in o||(o[a]=n[a],i&&((t.on||(t.on={}))["update:"+a]=function(t){n[a]=t}))};for(var s in n)a(s)}return t}function xe(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];return r&&!e||ke(r=n[t]=this.$options.staticRenderFns[t].call(this._renderProxy,null,this),"__static__"+t,!1),r}function Ae(t,e,n){return ke(t,"__once__"+e+(n?"_"+n:""),!0),t}function ke(t,e,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&"string"!=typeof t[r]&&$e(t[r],e+"_"+r,n);else $e(t,e,n)}function $e(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function Se(t,e){if(e&&l(e)){var n=t.on=t.on?T({},t.on):{};for(var r in e){var i=n[r],o=e[r];n[r]=i?[].concat(i,o):o}}return t}function Oe(t,e,n,r){e=e||{$stable:!n};for(var i=0;i<t.length;i++){var o=t[i];Array.isArray(o)?Oe(o,e,n):o&&(o.proxy&&(o.fn.proxy=!0),e[o.key]=o.fn)}return r&&(e.$key=r),e}function Te(t,e){for(var n=0;n<e.length;n+=2){var r=e[n];"string"==typeof r&&r&&(t[e[n]]=e[n+1])}return t}function je(t,e){return"string"==typeof t?e+t:t}function Be(t){t._o=Ae,t._n=h,t._s=p,t._l=ge,t._t=ye,t._q=D,t._i=I,t._m=xe,t._f=be,t._k=we,t._b=Ce,t._v=yt,t._e=gt,t._u=Oe,t._g=Se,t._d=Te,t._p=je}function Ee(t,e,n,i,o){var s,c=this,u=o.options;_(i,"_uid")?(s=Object.create(i))._original=i:(s=i,i=i._original);var l=a(u._compiled),f=!l;this.data=t,this.props=e,this.children=n,this.parent=i,this.listeners=t.on||r,this.injections=fe(u.inject,i),this.slots=function(){return c.$slots||he(t.scopedSlots,c.$slots=de(n,i)),c.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return he(t.scopedSlots,this.slots())}}),l&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=he(t.scopedSlots,this.$slots)),u._scopeId?this._c=function(t,e,n,r){var o=Pe(s,t,e,n,r,f);return o&&!Array.isArray(o)&&(o.fnScopeId=u._scopeId,o.fnContext=i),o}:this._c=function(t,e,n,r){return Pe(s,t,e,n,r,f)}}function Le(t,e,n,r,i){var o=bt(t);return o.fnContext=n,o.fnOptions=r,e.slot&&((o.data||(o.data={})).slot=e.slot),o}function De(t,e){for(var n in e)t[x(n)]=e[n]}Be(Ee.prototype);var Ie={init:function(t,e){if(t.componentInstance&&!t.componentInstance._isDestroyed&&t.data.keepAlive){var n=t;Ie.prepatch(n,n)}else(t.componentInstance=function(t,e){var n={_isComponent:!0,_parentVnode:t,parent:e},r=t.data.inlineTemplate;return o(r)&&(n.render=r.render,n.staticRenderFns=r.staticRenderFns),new t.componentOptions.Ctor(n)}(t,Je)).$mount(e?t.elm:void 0,e)},prepatch:function(t,e){var n=e.componentOptions;!function(t,e,n,i,o){var a=i.data.scopedSlots,s=t.$scopedSlots,c=!!(a&&!a.$stable||s!==r&&!s.$stable||a&&t.$scopedSlots.$key!==a.$key),u=!!(o||t.$options._renderChildren||c);if(t.$options._parentVnode=i,t.$vnode=i,t._vnode&&(t._vnode.parent=i),t.$options._renderChildren=o,t.$attrs=i.data.attrs||r,t.$listeners=n||r,e&&t.$options.props){At(!1);for(var l=t._props,f=t.$options._propKeys||[],d=0;d<f.length;d++){var p=f[d],h=t.$options.props;l[p]=Ft(p,h,e,t)}At(!0),t.$options.propsData=e}n=n||r;var v=t.$options._parentListeners;t.$options._parentListeners=n,We(t,n,v),u&&(t.$slots=de(o,i.context),t.$forceUpdate())}(e.componentInstance=t.componentInstance,n.propsData,n.listeners,e,n.children)},insert:function(t){var e,n=t.context,r=t.componentInstance;r._isMounted||(r._isMounted=!0,Ye(r,"mounted")),t.data.keepAlive&&(n._isMounted?((e=r)._inactive=!1,en.push(e)):Xe(r,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?function t(e,n){if(!(n&&(e._directInactive=!0,Ze(e))||e._inactive)){e._inactive=!0;for(var r=0;r<e.$children.length;r++)t(e.$children[r]);Ye(e,"deactivated")}}(e,!0):e.$destroy())}},Me=Object.keys(Ie);function Ne(t,e,n,s,u){if(!i(t)){var l=n.$options._base;if(c(t)&&(t=l.extend(t)),"function"==typeof t){var f;if(i(t.cid)&&void 0===(t=function(t,e){if(a(t.error)&&o(t.errorComp))return t.errorComp;if(o(t.resolved))return t.resolved;var n=ze;if(n&&o(t.owners)&&-1===t.owners.indexOf(n)&&t.owners.push(n),a(t.loading)&&o(t.loadingComp))return t.loadingComp;if(n&&!o(t.owners)){var r=t.owners=[n],s=!0,u=null,l=null;n.$on("hook:destroyed",(function(){return y(r,n)}));var f=function(t){for(var e=0,n=r.length;e<n;e++)r[e].$forceUpdate();t&&(r.length=0,null!==u&&(clearTimeout(u),u=null),null!==l&&(clearTimeout(l),l=null))},p=M((function(n){t.resolved=qe(n,e),s?r.length=0:f(!0)})),h=M((function(e){o(t.errorComp)&&(t.error=!0,f(!0))})),v=t(p,h);return c(v)&&(d(v)?i(t.resolved)&&v.then(p,h):d(v.component)&&(v.component.then(p,h),o(v.error)&&(t.errorComp=qe(v.error,e)),o(v.loading)&&(t.loadingComp=qe(v.loading,e),0===v.delay?t.loading=!0:u=setTimeout((function(){u=null,i(t.resolved)&&i(t.error)&&(t.loading=!0,f(!1))}),v.delay||200)),o(v.timeout)&&(l=setTimeout((function(){l=null,i(t.resolved)&&h(null)}),v.timeout)))),s=!1,t.loading?t.loadingComp:t.resolved}}(f=t,l)))return function(t,e,n,r,i){var o=gt();return o.asyncFactory=t,o.asyncMeta={data:e,context:n,children:r,tag:i},o}(f,e,n,s,u);e=e||{},wn(t),o(e.model)&&function(t,e){var n=t.model&&t.model.prop||"value",r=t.model&&t.model.event||"input";(e.attrs||(e.attrs={}))[n]=e.model.value;var i=e.on||(e.on={}),a=i[r],s=e.model.callback;o(a)?(Array.isArray(a)?-1===a.indexOf(s):a!==s)&&(i[r]=[s].concat(a)):i[r]=s}(t.options,e);var p=function(t,e,n){var r=e.options.props;if(!i(r)){var a={},s=t.attrs,c=t.props;if(o(s)||o(c))for(var u in r){var l=$(u);ce(a,c,u,l,!0)||ce(a,s,u,l,!1)}return a}}(e,t);if(a(t.options.functional))return function(t,e,n,i,a){var s=t.options,c={},u=s.props;if(o(u))for(var l in u)c[l]=Ft(l,u,e||r);else o(n.attrs)&&De(c,n.attrs),o(n.props)&&De(c,n.props);var f=new Ee(n,c,a,i,t),d=s.render.call(null,f._c,f);if(d instanceof vt)return Le(d,n,f.parent,s);if(Array.isArray(d)){for(var p=ue(d)||[],h=new Array(p.length),v=0;v<p.length;v++)h[v]=Le(p[v],n,f.parent,s);return h}}(t,p,e,n,s);var h=e.on;if(e.on=e.nativeOn,a(t.options.abstract)){var v=e.slot;e={},v&&(e.slot=v)}!function(t){for(var e=t.hook||(t.hook={}),n=0;n<Me.length;n++){var r=Me[n],i=e[r],o=Ie[r];i===o||i&&i._merged||(e[r]=i?Fe(o,i):o)}}(e);var m=t.options.name||u;return new vt("vue-component-"+t.cid+(m?"-"+m:""),e,void 0,void 0,void 0,n,{Ctor:t,propsData:p,listeners:h,tag:u,children:s},f)}}}function Fe(t,e){var n=function(n,r){t(n,r),e(n,r)};return n._merged=!0,n}function Pe(t,e,n,r,u,l){return(Array.isArray(n)||s(n))&&(u=r,r=n,n=void 0),a(l)&&(u=2),function(t,e,n,r,s){return o(n)&&o(n.__ob__)?gt():(o(n)&&o(n.is)&&(e=n.is),e?(Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0),2===s?r=ue(r):1===s&&(r=function(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return Array.prototype.concat.apply([],t);return t}(r)),"string"==typeof e?(l=t.$vnode&&t.$vnode.ns||R.getTagNamespace(e),u=R.isReservedTag(e)?new vt(R.parsePlatformTagName(e),n,r,void 0,void 0,t):n&&n.pre||!o(f=Nt(t.$options,"components",e))?new vt(e,n,r,void 0,void 0,t):Ne(f,n,t,r,e)):u=Ne(e,n,t,r),Array.isArray(u)?u:o(u)?(o(l)&&function t(e,n,r){if(e.ns=n,"foreignObject"===e.tag&&(n=void 0,r=!0),o(e.children))for(var s=0,c=e.children.length;s<c;s++){var u=e.children[s];o(u.tag)&&(i(u.ns)||a(r)&&"svg"!==u.tag)&&t(u,n,r)}}(u,l),o(n)&&function(t){c(t.style)&&re(t.style),c(t.class)&&re(t.class)}(n),u):gt()):gt());var u,l,f}(t,e,n,r,u)}var Re,ze=null;function qe(t,e){return(t.__esModule||ct&&"Module"===t[Symbol.toStringTag])&&(t=t.default),c(t)?e.extend(t):t}function Ue(t){return t.isComment&&t.asyncFactory}function He(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];if(o(n)&&(o(n.componentOptions)||Ue(n)))return n}}function Ke(t,e){Re.$on(t,e)}function Ve(t,e){Re.$off(t,e)}function Qe(t,e){var n=Re;return function r(){null!==e.apply(null,arguments)&&n.$off(t,r)}}function We(t,e,n){Re=t,ae(e,n||{},Ke,Ve,Qe,t),Re=void 0}var Je=null;function Ge(t){var e=Je;return Je=t,function(){Je=e}}function Ze(t){for(;t&&(t=t.$parent);)if(t._inactive)return!0;return!1}function Xe(t,e){if(e){if(t._directInactive=!1,Ze(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)Xe(t.$children[n]);Ye(t,"activated")}}function Ye(t,e){pt();var n=t.$options[e],r=e+" hook";if(n)for(var i=0,o=n.length;i<o;i++)Ut(n[i],t,null,t,r);t._hasHookEvent&&t.$emit("hook:"+e),ht()}var tn=[],en=[],nn={},rn=!1,on=!1,an=0,sn=0,cn=Date.now;if(V&&!G){var un=window.performance;un&&"function"==typeof un.now&&cn()>document.createEvent("Event").timeStamp&&(cn=function(){return un.now()})}function ln(){var t,e;for(sn=cn(),on=!0,tn.sort((function(t,e){return t.id-e.id})),an=0;an<tn.length;an++)(t=tn[an]).before&&t.before(),e=t.id,nn[e]=null,t.run();var n=en.slice(),r=tn.slice();an=tn.length=en.length=0,nn={},rn=on=!1,function(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,Xe(t[e],!0)}(n),function(t){for(var e=t.length;e--;){var n=t[e],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&Ye(r,"updated")}}(r),ot&&R.devtools&&ot.emit("flush")}var fn=0,dn=function(t,e,n,r,i){this.vm=t,i&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++fn,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new st,this.newDepIds=new st,this.expression="","function"==typeof e?this.getter=e:(this.getter=function(t){if(!H.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}(e),this.getter||(this.getter=B)),this.value=this.lazy?void 0:this.get()};dn.prototype.get=function(){var t;pt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(t){if(!this.user)throw t;qt(t,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&re(t),ht(),this.cleanupDeps()}return t},dn.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},dn.prototype.cleanupDeps=function(){for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},dn.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(t){var e=t.id;if(null==nn[e]){if(nn[e]=!0,on){for(var n=tn.length-1;n>an&&tn[n].id>t.id;)n--;tn.splice(n+1,0,t)}else tn.push(t);rn||(rn=!0,ee(ln))}}(this)},dn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||c(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){qt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},dn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},dn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},dn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var pn={enumerable:!0,configurable:!0,get:B,set:B};function hn(t,e,n){pn.get=function(){return this[e][n]},pn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,pn)}var vn={lazy:!0};function mn(t,e,n){var r=!it();"function"==typeof n?(pn.get=r?gn(e):yn(n),pn.set=B):(pn.get=n.get?r&&!1!==n.cache?gn(e):yn(n.get):B,pn.set=n.set||B),Object.defineProperty(t,e,pn)}function gn(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),ft.target&&e.depend(),e.value}}function yn(t){return function(){return t.call(this,this)}}function bn(t,e,n,r){return l(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=t[n]),t.$watch(e,n,r)}var _n=0;function wn(t){var e=t.options;if(t.super){var n=wn(t.super);if(n!==t.superOptions){t.superOptions=n;var r=function(t){var e,n=t.options,r=t.sealedOptions;for(var i in n)n[i]!==r[i]&&(e||(e={}),e[i]=n[i]);return e}(t);r&&T(t.extendOptions,r),(e=t.options=Mt(n,t.extendOptions)).name&&(e.components[e.name]=t)}}return e}function Cn(t){this._init(t)}function xn(t){return t&&(t.Ctor.options.name||t.tag)}function An(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:(n=t,"[object RegExp]"===u.call(n)&&t.test(e));var n}function kn(t,e){var n=t.cache,r=t.keys,i=t._vnode;for(var o in n){var a=n[o];if(a){var s=xn(a.componentOptions);s&&!e(s)&&$n(n,o,r,i)}}}function $n(t,e,n,r){var i=t[e];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),t[e]=null,y(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=_n++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Mt(wn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&We(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,i=n&&n.context;t.$slots=de(e._renderChildren,i),t.$scopedSlots=r,t._c=function(e,n,r,i){return Pe(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return Pe(t,e,n,r,i,!0)};var o=n&&n.data;St(t,"$attrs",o&&o.attrs||r,null,!0),St(t,"$listeners",e._parentListeners||r,null,!0)}(e),Ye(e,"beforeCreate"),function(t){var e=fe(t.$options.inject,t);e&&(At(!1),Object.keys(e).forEach((function(n){St(t,n,e[n])})),At(!0))}(e),function(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},i=t.$options._propKeys=[];t.$parent&&At(!1);var o=function(o){i.push(o);var a=Ft(o,e,n,t);St(r,o,a),o in t||hn(t,"_props",o)};for(var a in e)o(a);At(!0)}(t,e.props),e.methods&&function(t,e){for(var n in t.$options.props,e)t[n]="function"!=typeof e[n]?B:S(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;l(e=t._data="function"==typeof e?function(t,e){pt();try{return t.call(e,e)}catch(t){return qt(t,e,"data()"),{}}finally{ht()}}(e,t):e||{})||(e={});for(var n,r=Object.keys(e),i=t.$options.props,o=(t.$options.methods,r.length);o--;){var a=r[o];i&&_(i,a)||36!==(n=(a+"").charCodeAt(0))&&95!==n&&hn(t,"_data",a)}$t(e,!0)}(t):$t(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=it();for(var i in e){var o=e[i],a="function"==typeof o?o:o.get;r||(n[i]=new dn(t,a||B,B,vn)),i in t||mn(t,i,o)}}(t,e.computed),e.watch&&e.watch!==et&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)bn(t,n,r[i]);else bn(t,n,r)}}(t,e.watch)}(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),Ye(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(Cn),function(t){Object.defineProperty(t.prototype,"$data",{get:function(){return this._data}}),Object.defineProperty(t.prototype,"$props",{get:function(){return this._props}}),t.prototype.$set=Ot,t.prototype.$delete=Tt,t.prototype.$watch=function(t,e,n){if(l(e))return bn(this,t,e,n);(n=n||{}).user=!0;var r=new dn(this,t,e,n);if(n.immediate)try{e.call(this,r.value)}catch(t){qt(t,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(Cn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var i=0,o=t.length;i<o;i++)r.$on(t[i],n);else(r._events[t]||(r._events[t]=[])).push(n),e.test(t)&&(r._hasHookEvent=!0);return r},t.prototype.$once=function(t,e){var n=this;function r(){n.$off(t,r),e.apply(n,arguments)}return r.fn=e,n.$on(t,r),n},t.prototype.$off=function(t,e){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(t)){for(var r=0,i=t.length;r<i;r++)n.$off(t[r],e);return n}var o,a=n._events[t];if(!a)return n;if(!e)return n._events[t]=null,n;for(var s=a.length;s--;)if((o=a[s])===e||o.fn===e){a.splice(s,1);break}return n},t.prototype.$emit=function(t){var e=this._events[t];if(e){e=e.length>1?O(e):e;for(var n=O(arguments,1),r='event handler for "'+t+'"',i=0,o=e.length;i<o;i++)Ut(e[i],this,n,this,r)}return this}}(Cn),function(t){t.prototype._update=function(t,e){var n=this,r=n.$el,i=n._vnode,o=Ge(n);n._vnode=t,n.$el=i?n.__patch__(i,t):n.__patch__(n.$el,t,e,!1),o(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},t.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},t.prototype.$destroy=function(){var t=this;if(!t._isBeingDestroyed){Ye(t,"beforeDestroy"),t._isBeingDestroyed=!0;var e=t.$parent;!e||e._isBeingDestroyed||t.$options.abstract||y(e.$children,t),t._watcher&&t._watcher.teardown();for(var n=t._watchers.length;n--;)t._watchers[n].teardown();t._data.__ob__&&t._data.__ob__.vmCount--,t._isDestroyed=!0,t.__patch__(t._vnode,null),Ye(t,"destroyed"),t.$off(),t.$el&&(t.$el.__vue__=null),t.$vnode&&(t.$vnode.parent=null)}}}(Cn),function(t){Be(t.prototype),t.prototype.$nextTick=function(t){return ee(t,this)},t.prototype._render=function(){var t,e=this,n=e.$options,r=n.render,i=n._parentVnode;i&&(e.$scopedSlots=he(i.data.scopedSlots,e.$slots,e.$scopedSlots)),e.$vnode=i;try{ze=e,t=r.call(e._renderProxy,e.$createElement)}catch(n){qt(n,e,"render"),t=e._vnode}finally{ze=null}return Array.isArray(t)&&1===t.length&&(t=t[0]),t instanceof vt||(t=gt()),t.parent=i,t}}(Cn);var Sn=[String,RegExp,Array],On={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:Sn,exclude:Sn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)$n(this.cache,t,this.keys)},mounted:function(){var t=this;this.$watch("include",(function(e){kn(t,(function(t){return An(e,t)}))})),this.$watch("exclude",(function(e){kn(t,(function(t){return!An(e,t)}))}))},render:function(){var t=this.$slots.default,e=He(t),n=e&&e.componentOptions;if(n){var r=xn(n),i=this.include,o=this.exclude;if(i&&(!r||!An(i,r))||o&&r&&An(o,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,y(s,c),s.push(c)):(a[c]=e,s.push(c),this.max&&s.length>parseInt(this.max)&&$n(a,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return R}};Object.defineProperty(t,"config",e),t.util={warn:ut,extend:T,mergeOptions:Mt,defineReactive:St},t.set=Ot,t.delete=Tt,t.nextTick=ee,t.observable=function(t){return $t(t),t},t.options=Object.create(null),F.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,T(t.options.components,On),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=O(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Mt(this.options,t),this}}(t),function(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,i=t._Ctor||(t._Ctor={});if(i[r])return i[r];var o=t.name||n.options.name,a=function(t){this._init(t)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=e++,a.options=Mt(n.options,t),a.super=n,a.options.props&&function(t){var e=t.options.props;for(var n in e)hn(t.prototype,"_props",n)}(a),a.options.computed&&function(t){var e=t.options.computed;for(var n in e)mn(t.prototype,n,e[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,F.forEach((function(t){a[t]=n[t]})),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=T({},a.options),i[r]=a,a}}(t),function(t){F.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&l(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Cn),Object.defineProperty(Cn.prototype,"$isServer",{get:it}),Object.defineProperty(Cn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Cn,"FunctionalRenderContext",{value:Ee}),Cn.version="2.6.12";var Tn=v("style,class"),jn=v("input,textarea,option,select,progress"),Bn=function(t,e,n){return"value"===n&&jn(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},En=v("contenteditable,draggable,spellcheck"),Ln=v("events,caret,typing,plaintext-only"),Dn=v("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),In="http://www.w3.org/1999/xlink",Mn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Nn=function(t){return Mn(t)?t.slice(6,t.length):""},Fn=function(t){return null==t||!1===t};function Pn(t,e){return{staticClass:Rn(t.staticClass,e.staticClass),class:o(t.class)?[t.class,e.class]:e.class}}function Rn(t,e){return t?e?t+" "+e:t:e||""}function zn(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,i=t.length;r<i;r++)o(e=zn(t[r]))&&""!==e&&(n&&(n+=" "),n+=e);return n}(t):c(t)?function(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}(t):"string"==typeof t?t:""}var qn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Un=v("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Hn=v("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Kn=function(t){return Un(t)||Hn(t)};function Vn(t){return Hn(t)?"svg":"math"===t?"math":void 0}var Qn=Object.create(null),Wn=v("text,number,password,search,email,tel,url");function Jn(t){return"string"==typeof t?document.querySelector(t)||document.createElement("div"):t}var Gn=Object.freeze({createElement:function(t,e){var n=document.createElement(t);return"select"!==t||e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n},createElementNS:function(t,e){return document.createElementNS(qn[t],e)},createTextNode:function(t){return document.createTextNode(t)},createComment:function(t){return document.createComment(t)},insertBefore:function(t,e,n){t.insertBefore(e,n)},removeChild:function(t,e){t.removeChild(e)},appendChild:function(t,e){t.appendChild(e)},parentNode:function(t){return t.parentNode},nextSibling:function(t){return t.nextSibling},tagName:function(t){return t.tagName},setTextContent:function(t,e){t.textContent=e},setStyleScope:function(t,e){t.setAttribute(e,"")}}),Zn={create:function(t,e){Xn(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Xn(t,!0),Xn(e))},destroy:function(t){Xn(t,!0)}};function Xn(t,e){var n=t.data.ref;if(o(n)){var r=t.context,i=t.componentInstance||t.elm,a=r.$refs;e?Array.isArray(a[n])?y(a[n],i):a[n]===i&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(i)<0&&a[n].push(i):a[n]=[i]:a[n]=i}}var Yn=new vt("",{},[]),tr=["create","activate","update","remove","destroy"];function er(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&o(t.data)===o(e.data)&&function(t,e){if("input"!==t.tag)return!0;var n,r=o(n=t.data)&&o(n=n.attrs)&&n.type,i=o(n=e.data)&&o(n=n.attrs)&&n.type;return r===i||Wn(r)&&Wn(i)}(t,e)||a(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&i(e.asyncFactory.error))}function nr(t,e,n){var r,i,a={};for(r=e;r<=n;++r)o(i=t[r].key)&&(a[i]=r);return a}var rr={create:ir,update:ir,destroy:function(t){ir(t,Yn)}};function ir(t,e){(t.data.directives||e.data.directives)&&function(t,e){var n,r,i,o=t===Yn,a=e===Yn,s=ar(t.data.directives,t.context),c=ar(e.data.directives,e.context),u=[],l=[];for(n in c)r=s[n],i=c[n],r?(i.oldValue=r.value,i.oldArg=r.arg,cr(i,"update",e,t),i.def&&i.def.componentUpdated&&l.push(i)):(cr(i,"bind",e,t),i.def&&i.def.inserted&&u.push(i));if(u.length){var f=function(){for(var n=0;n<u.length;n++)cr(u[n],"inserted",e,t)};o?se(e,"insert",f):f()}if(l.length&&se(e,"postpatch",(function(){for(var n=0;n<l.length;n++)cr(l[n],"componentUpdated",e,t)})),!o)for(n in s)c[n]||cr(s[n],"unbind",t,t,a)}(t,e)}var or=Object.create(null);function ar(t,e){var n,r,i=Object.create(null);if(!t)return i;for(n=0;n<t.length;n++)(r=t[n]).modifiers||(r.modifiers=or),i[sr(r)]=r,r.def=Nt(e.$options,"directives",r.name);return i}function sr(t){return t.rawName||t.name+"."+Object.keys(t.modifiers||{}).join(".")}function cr(t,e,n,r,i){var o=t.def&&t.def[e];if(o)try{o(n.elm,t,n,r,i)}catch(r){qt(r,n.context,"directive "+t.name+" "+e+" hook")}}var ur=[Zn,rr];function lr(t,e){var n=e.componentOptions;if(!(o(n)&&!1===n.Ctor.options.inheritAttrs||i(t.data.attrs)&&i(e.data.attrs))){var r,a,s=e.elm,c=t.data.attrs||{},u=e.data.attrs||{};for(r in o(u.__ob__)&&(u=e.data.attrs=T({},u)),u)a=u[r],c[r]!==a&&fr(s,r,a);for(r in(G||X)&&u.value!==c.value&&fr(s,"value",u.value),c)i(u[r])&&(Mn(r)?s.removeAttributeNS(In,Nn(r)):En(r)||s.removeAttribute(r))}}function fr(t,e,n){t.tagName.indexOf("-")>-1?dr(t,e,n):Dn(e)?Fn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):En(e)?t.setAttribute(e,function(t,e){return Fn(e)||"false"===e?"false":"contenteditable"===t&&Ln(e)?e:"true"}(e,n)):Mn(e)?Fn(n)?t.removeAttributeNS(In,Nn(e)):t.setAttributeNS(In,e,n):dr(t,e,n)}function dr(t,e,n){if(Fn(n))t.removeAttribute(e);else{if(G&&!Z&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var pr={create:lr,update:lr};function hr(t,e){var n=e.elm,r=e.data,a=t.data;if(!(i(r.staticClass)&&i(r.class)&&(i(a)||i(a.staticClass)&&i(a.class)))){var s=function(t){for(var e=t.data,n=t,r=t;o(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=Pn(r.data,e));for(;o(n=n.parent);)n&&n.data&&(e=Pn(e,n.data));return function(t,e){return o(t)||o(e)?Rn(t,zn(e)):""}(e.staticClass,e.class)}(e),c=n._transitionClasses;o(c)&&(s=Rn(s,zn(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var vr,mr,gr,yr,br,_r,wr={create:hr,update:hr},Cr=/[\w).+\-_$\]]/;function xr(t){var e,n,r,i,o,a=!1,s=!1,c=!1,u=!1,l=0,f=0,d=0,p=0;for(r=0;r<t.length;r++)if(n=e,e=t.charCodeAt(r),a)39===e&&92!==n&&(a=!1);else if(s)34===e&&92!==n&&(s=!1);else if(c)96===e&&92!==n&&(c=!1);else if(u)47===e&&92!==n&&(u=!1);else if(124!==e||124===t.charCodeAt(r+1)||124===t.charCodeAt(r-1)||l||f||d){switch(e){case 34:s=!0;break;case 39:a=!0;break;case 96:c=!0;break;case 40:d++;break;case 41:d--;break;case 91:f++;break;case 93:f--;break;case 123:l++;break;case 125:l--}if(47===e){for(var h=r-1,v=void 0;h>=0&&" "===(v=t.charAt(h));h--);v&&Cr.test(v)||(u=!0)}}else void 0===i?(p=r+1,i=t.slice(0,r).trim()):m();function m(){(o||(o=[])).push(t.slice(p,r).trim()),p=r+1}if(void 0===i?i=t.slice(0,r).trim():0!==p&&m(),o)for(r=0;r<o.length;r++)i=Ar(i,o[r]);return i}function Ar(t,e){var n=e.indexOf("(");if(n<0)return'_f("'+e+'")('+t+")";var r=e.slice(0,n),i=e.slice(n+1);return'_f("'+r+'")('+t+(")"!==i?","+i:i)}function kr(t,e){console.error("[Vue compiler]: "+t)}function $r(t,e){return t?t.map((function(t){return t[e]})).filter((function(t){return t})):[]}function Sr(t,e,n,r,i){(t.props||(t.props=[])).push(Mr({name:e,value:n,dynamic:i},r)),t.plain=!1}function Or(t,e,n,r,i){(i?t.dynamicAttrs||(t.dynamicAttrs=[]):t.attrs||(t.attrs=[])).push(Mr({name:e,value:n,dynamic:i},r)),t.plain=!1}function Tr(t,e,n,r){t.attrsMap[e]=n,t.attrsList.push(Mr({name:e,value:n},r))}function jr(t,e,n,r,i,o,a,s){(t.directives||(t.directives=[])).push(Mr({name:e,rawName:n,value:r,arg:i,isDynamicArg:o,modifiers:a},s)),t.plain=!1}function Br(t,e,n){return n?"_p("+e+',"'+t+'")':t+e}function Er(t,e,n,i,o,a,s,c){var u;(i=i||r).right?c?e="("+e+")==='click'?'contextmenu':("+e+")":"click"===e&&(e="contextmenu",delete i.right):i.middle&&(c?e="("+e+")==='click'?'mouseup':("+e+")":"click"===e&&(e="mouseup")),i.capture&&(delete i.capture,e=Br("!",e,c)),i.once&&(delete i.once,e=Br("~",e,c)),i.passive&&(delete i.passive,e=Br("&",e,c)),i.native?(delete i.native,u=t.nativeEvents||(t.nativeEvents={})):u=t.events||(t.events={});var l=Mr({value:n.trim(),dynamic:c},s);i!==r&&(l.modifiers=i);var f=u[e];Array.isArray(f)?o?f.unshift(l):f.push(l):u[e]=f?o?[l,f]:[f,l]:l,t.plain=!1}function Lr(t,e,n){var r=Dr(t,":"+e)||Dr(t,"v-bind:"+e);if(null!=r)return xr(r);if(!1!==n){var i=Dr(t,e);if(null!=i)return JSON.stringify(i)}}function Dr(t,e,n){var r;if(null!=(r=t.attrsMap[e]))for(var i=t.attrsList,o=0,a=i.length;o<a;o++)if(i[o].name===e){i.splice(o,1);break}return n&&delete t.attrsMap[e],r}function Ir(t,e){for(var n=t.attrsList,r=0,i=n.length;r<i;r++){var o=n[r];if(e.test(o.name))return n.splice(r,1),o}}function Mr(t,e){return e&&(null!=e.start&&(t.start=e.start),null!=e.end&&(t.end=e.end)),t}function Nr(t,e,n){var r=n||{},i=r.number,o="$$v";r.trim&&(o="(typeof $$v === 'string'? $$v.trim(): $$v)"),i&&(o="_n("+o+")");var a=Fr(e,o);t.model={value:"("+e+")",expression:JSON.stringify(e),callback:"function ($$v) {"+a+"}"}}function Fr(t,e){var n=function(t){if(t=t.trim(),vr=t.length,t.indexOf("[")<0||t.lastIndexOf("]")<vr-1)return(yr=t.lastIndexOf("."))>-1?{exp:t.slice(0,yr),key:'"'+t.slice(yr+1)+'"'}:{exp:t,key:null};for(mr=t,yr=br=_r=0;!Rr();)zr(gr=Pr())?Ur(gr):91===gr&&qr(gr);return{exp:t.slice(0,br),key:t.slice(br+1,_r)}}(t);return null===n.key?t+"="+e:"$set("+n.exp+", "+n.key+", "+e+")"}function Pr(){return mr.charCodeAt(++yr)}function Rr(){return yr>=vr}function zr(t){return 34===t||39===t}function qr(t){var e=1;for(br=yr;!Rr();)if(zr(t=Pr()))Ur(t);else if(91===t&&e++,93===t&&e--,0===e){_r=yr;break}}function Ur(t){for(var e=t;!Rr()&&(t=Pr())!==e;);}var Hr;function Kr(t,e,n){var r=Hr;return function i(){null!==e.apply(null,arguments)&&Wr(t,i,n,r)}}var Vr=Qt&&!(tt&&Number(tt[1])<=53);function Qr(t,e,n,r){if(Vr){var i=sn,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=i||t.timeStamp<=0||t.target.ownerDocument!==document)return o.apply(this,arguments)}}Hr.addEventListener(t,e,nt?{capture:n,passive:r}:n)}function Wr(t,e,n,r){(r||Hr).removeEventListener(t,e._wrapper||e,n)}function Jr(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Hr=e.elm,function(t){if(o(t.__r)){var e=G?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}o(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),ae(n,r,Qr,Wr,Kr,e.context),Hr=void 0}}var Gr,Zr={create:Jr,update:Jr};function Xr(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,r,a=e.elm,s=t.data.domProps||{},c=e.data.domProps||{};for(n in o(c.__ob__)&&(c=e.data.domProps=T({},c)),s)n in c||(a[n]="");for(n in c){if(r=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=r;var u=i(r)?"":String(r);Yr(a,u)&&(a.value=u)}else if("innerHTML"===n&&Hn(a.tagName)&&i(a.innerHTML)){(Gr=Gr||document.createElement("div")).innerHTML="<svg>"+r+"</svg>";for(var l=Gr.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(r!==s[n])try{a[n]=r}catch(t){}}}}function Yr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(o(r)){if(r.number)return h(n)!==h(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var ti={create:Xr,update:Xr},ei=w((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function ni(t){var e=ri(t.style);return t.staticStyle?T(t.staticStyle,e):e}function ri(t){return Array.isArray(t)?j(t):"string"==typeof t?ei(t):t}var ii,oi=/^--/,ai=/\s*!important$/,si=function(t,e,n){if(oi.test(e))t.style.setProperty(e,n);else if(ai.test(n))t.style.setProperty($(e),n.replace(ai,""),"important");else{var r=ui(e);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)t.style[r]=n[i];else t.style[r]=n}},ci=["Webkit","Moz","ms"],ui=w((function(t){if(ii=ii||document.createElement("div").style,"filter"!==(t=x(t))&&t in ii)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<ci.length;n++){var r=ci[n]+e;if(r in ii)return r}}));function li(t,e){var n=e.data,r=t.data;if(!(i(n.staticStyle)&&i(n.style)&&i(r.staticStyle)&&i(r.style))){var a,s,c=e.elm,u=r.staticStyle,l=r.normalizedStyle||r.style||{},f=u||l,d=ri(e.data.style)||{};e.data.normalizedStyle=o(d.__ob__)?T({},d):d;var p=function(t,e){for(var n,r={},i=t;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=ni(i.data))&&T(r,n);(n=ni(t.data))&&T(r,n);for(var o=t;o=o.parent;)o.data&&(n=ni(o.data))&&T(r,n);return r}(e);for(s in f)i(p[s])&&si(c,s,"");for(s in p)(a=p[s])!==f[s]&&si(c,s,null==a?"":a)}}var fi={create:li,update:li},di=/\s+/;function pi(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(di).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function hi(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(di).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function vi(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&T(e,mi(t.name||"v")),T(e,t),e}return"string"==typeof t?mi(t):void 0}}var mi=w((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),gi=V&&!Z,yi="transition",bi="animation",_i="transition",wi="transitionend",Ci="animation",xi="animationend";gi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(_i="WebkitTransition",wi="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ci="WebkitAnimation",xi="webkitAnimationEnd"));var Ai=V?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function ki(t){Ai((function(){Ai(t)}))}function $i(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),pi(t,e))}function Si(t,e){t._transitionClasses&&y(t._transitionClasses,e),hi(t,e)}function Oi(t,e,n){var r=ji(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===yi?wi:xi,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout((function(){c<a&&u()}),o+1),t.addEventListener(s,l)}var Ti=/\b(transform|all)(,|$)/;function ji(t,e){var n,r=window.getComputedStyle(t),i=(r[_i+"Delay"]||"").split(", "),o=(r[_i+"Duration"]||"").split(", "),a=Bi(i,o),s=(r[Ci+"Delay"]||"").split(", "),c=(r[Ci+"Duration"]||"").split(", "),u=Bi(s,c),l=0,f=0;return e===yi?a>0&&(n=yi,l=a,f=o.length):e===bi?u>0&&(n=bi,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?yi:bi:null)?n===yi?o.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===yi&&Ti.test(r[_i+"Property"])}}function Bi(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max.apply(null,e.map((function(e,n){return Ei(e)+Ei(t[n])})))}function Ei(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}function Li(t,e){var n=t.elm;o(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var r=vi(t.data.transition);if(!i(r)&&!o(n._enterCb)&&1===n.nodeType){for(var a=r.css,s=r.type,u=r.enterClass,l=r.enterToClass,f=r.enterActiveClass,d=r.appearClass,p=r.appearToClass,v=r.appearActiveClass,m=r.beforeEnter,g=r.enter,y=r.afterEnter,b=r.enterCancelled,_=r.beforeAppear,w=r.appear,C=r.afterAppear,x=r.appearCancelled,A=r.duration,k=Je,$=Je.$vnode;$&&$.parent;)k=$.context,$=$.parent;var S=!k._isMounted||!t.isRootInsert;if(!S||w||""===w){var O=S&&d?d:u,T=S&&v?v:f,j=S&&p?p:l,B=S&&_||m,E=S&&"function"==typeof w?w:g,L=S&&C||y,D=S&&x||b,I=h(c(A)?A.enter:A),N=!1!==a&&!Z,F=Mi(E),P=n._enterCb=M((function(){N&&(Si(n,j),Si(n,T)),P.cancelled?(N&&Si(n,O),D&&D(n)):L&&L(n),n._enterCb=null}));t.data.show||se(t,"insert",(function(){var e=n.parentNode,r=e&&e._pending&&e._pending[t.key];r&&r.tag===t.tag&&r.elm._leaveCb&&r.elm._leaveCb(),E&&E(n,P)})),B&&B(n),N&&($i(n,O),$i(n,T),ki((function(){Si(n,O),P.cancelled||($i(n,j),F||(Ii(I)?setTimeout(P,I):Oi(n,s,P)))}))),t.data.show&&(e&&e(),E&&E(n,P)),N||F||P()}}}function Di(t,e){var n=t.elm;o(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=vi(t.data.transition);if(i(r)||1!==n.nodeType)return e();if(!o(n._leaveCb)){var a=r.css,s=r.type,u=r.leaveClass,l=r.leaveToClass,f=r.leaveActiveClass,d=r.beforeLeave,p=r.leave,v=r.afterLeave,m=r.leaveCancelled,g=r.delayLeave,y=r.duration,b=!1!==a&&!Z,_=Mi(p),w=h(c(y)?y.leave:y),C=n._leaveCb=M((function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[t.key]=null),b&&(Si(n,l),Si(n,f)),C.cancelled?(b&&Si(n,u),m&&m(n)):(e(),v&&v(n)),n._leaveCb=null}));g?g(x):x()}function x(){C.cancelled||(!t.data.show&&n.parentNode&&((n.parentNode._pending||(n.parentNode._pending={}))[t.key]=t),d&&d(n),b&&($i(n,u),$i(n,f),ki((function(){Si(n,u),C.cancelled||($i(n,l),_||(Ii(w)?setTimeout(C,w):Oi(n,s,C)))}))),p&&p(n,C),b||_||C())}}function Ii(t){return"number"==typeof t&&!isNaN(t)}function Mi(t){if(i(t))return!1;var e=t.fns;return o(e)?Mi(Array.isArray(e)?e[0]:e):(t._length||t.length)>1}function Ni(t,e){!0!==e.data.show&&Li(e)}var Fi=function(t){var e,n,r={},c=t.modules,u=t.nodeOps;for(e=0;e<tr.length;++e)for(r[tr[e]]=[],n=0;n<c.length;++n)o(c[n][tr[e]])&&r[tr[e]].push(c[n][tr[e]]);function l(t){var e=u.parentNode(t);o(e)&&u.removeChild(e,t)}function f(t,e,n,i,s,c,l){if(o(t.elm)&&o(c)&&(t=c[l]=bt(t)),t.isRootInsert=!s,!function(t,e,n,i){var s=t.data;if(o(s)){var c=o(t.componentInstance)&&s.keepAlive;if(o(s=s.hook)&&o(s=s.init)&&s(t,!1),o(t.componentInstance))return d(t,e),p(n,t.elm,i),a(c)&&function(t,e,n,i){for(var a,s=t;s.componentInstance;)if(o(a=(s=s.componentInstance._vnode).data)&&o(a=a.transition)){for(a=0;a<r.activate.length;++a)r.activate[a](Yn,s);e.push(s);break}p(n,t.elm,i)}(t,e,n,i),!0}}(t,e,n,i)){var f=t.data,v=t.children,m=t.tag;o(m)?(t.elm=t.ns?u.createElementNS(t.ns,m):u.createElement(m,t),y(t),h(t,v,e),o(f)&&g(t,e),p(n,t.elm,i)):a(t.isComment)?(t.elm=u.createComment(t.text),p(n,t.elm,i)):(t.elm=u.createTextNode(t.text),p(n,t.elm,i))}}function d(t,e){o(t.data.pendingInsert)&&(e.push.apply(e,t.data.pendingInsert),t.data.pendingInsert=null),t.elm=t.componentInstance.$el,m(t)?(g(t,e),y(t)):(Xn(t),e.push(t))}function p(t,e,n){o(t)&&(o(n)?u.parentNode(n)===t&&u.insertBefore(t,e,n):u.appendChild(t,e))}function h(t,e,n){if(Array.isArray(e))for(var r=0;r<e.length;++r)f(e[r],n,t.elm,null,!0,e,r);else s(t.text)&&u.appendChild(t.elm,u.createTextNode(String(t.text)))}function m(t){for(;t.componentInstance;)t=t.componentInstance._vnode;return o(t.tag)}function g(t,n){for(var i=0;i<r.create.length;++i)r.create[i](Yn,t);o(e=t.data.hook)&&(o(e.create)&&e.create(Yn,t),o(e.insert)&&n.push(t))}function y(t){var e;if(o(e=t.fnScopeId))u.setStyleScope(t.elm,e);else for(var n=t;n;)o(e=n.context)&&o(e=e.$options._scopeId)&&u.setStyleScope(t.elm,e),n=n.parent;o(e=Je)&&e!==t.context&&e!==t.fnContext&&o(e=e.$options._scopeId)&&u.setStyleScope(t.elm,e)}function b(t,e,n,r,i,o){for(;r<=i;++r)f(n[r],o,t,e,!1,n,r)}function _(t){var e,n,i=t.data;if(o(i))for(o(e=i.hook)&&o(e=e.destroy)&&e(t),e=0;e<r.destroy.length;++e)r.destroy[e](t);if(o(e=t.children))for(n=0;n<t.children.length;++n)_(t.children[n])}function w(t,e,n){for(;e<=n;++e){var r=t[e];o(r)&&(o(r.tag)?(C(r),_(r)):l(r.elm))}}function C(t,e){if(o(e)||o(t.data)){var n,i=r.remove.length+1;for(o(e)?e.listeners+=i:e=function(t,e){function n(){0==--n.listeners&&l(t)}return n.listeners=e,n}(t.elm,i),o(n=t.componentInstance)&&o(n=n._vnode)&&o(n.data)&&C(n,e),n=0;n<r.remove.length;++n)r.remove[n](t,e);o(n=t.data.hook)&&o(n=n.remove)?n(t,e):e()}else l(t.elm)}function x(t,e,n,r){for(var i=n;i<r;i++){var a=e[i];if(o(a)&&er(t,a))return i}}function A(t,e,n,s,c,l){if(t!==e){o(e.elm)&&o(s)&&(e=s[c]=bt(e));var d=e.elm=t.elm;if(a(t.isAsyncPlaceholder))o(e.asyncFactory.resolved)?S(t.elm,e,n):e.isAsyncPlaceholder=!0;else if(a(e.isStatic)&&a(t.isStatic)&&e.key===t.key&&(a(e.isCloned)||a(e.isOnce)))e.componentInstance=t.componentInstance;else{var p,h=e.data;o(h)&&o(p=h.hook)&&o(p=p.prepatch)&&p(t,e);var v=t.children,g=e.children;if(o(h)&&m(e)){for(p=0;p<r.update.length;++p)r.update[p](t,e);o(p=h.hook)&&o(p=p.update)&&p(t,e)}i(e.text)?o(v)&&o(g)?v!==g&&function(t,e,n,r,a){for(var s,c,l,d=0,p=0,h=e.length-1,v=e[0],m=e[h],g=n.length-1,y=n[0],_=n[g],C=!a;d<=h&&p<=g;)i(v)?v=e[++d]:i(m)?m=e[--h]:er(v,y)?(A(v,y,r,n,p),v=e[++d],y=n[++p]):er(m,_)?(A(m,_,r,n,g),m=e[--h],_=n[--g]):er(v,_)?(A(v,_,r,n,g),C&&u.insertBefore(t,v.elm,u.nextSibling(m.elm)),v=e[++d],_=n[--g]):er(m,y)?(A(m,y,r,n,p),C&&u.insertBefore(t,m.elm,v.elm),m=e[--h],y=n[++p]):(i(s)&&(s=nr(e,d,h)),i(c=o(y.key)?s[y.key]:x(y,e,d,h))?f(y,r,t,v.elm,!1,n,p):er(l=e[c],y)?(A(l,y,r,n,p),e[c]=void 0,C&&u.insertBefore(t,l.elm,v.elm)):f(y,r,t,v.elm,!1,n,p),y=n[++p]);d>h?b(t,i(n[g+1])?null:n[g+1].elm,n,p,g,r):p>g&&w(e,d,h)}(d,v,g,n,l):o(g)?(o(t.text)&&u.setTextContent(d,""),b(d,null,g,0,g.length-1,n)):o(v)?w(v,0,v.length-1):o(t.text)&&u.setTextContent(d,""):t.text!==e.text&&u.setTextContent(d,e.text),o(h)&&o(p=h.hook)&&o(p=p.postpatch)&&p(t,e)}}}function k(t,e,n){if(a(n)&&o(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r<e.length;++r)e[r].data.hook.insert(e[r])}var $=v("attrs,class,staticClass,staticStyle,key");function S(t,e,n,r){var i,s=e.tag,c=e.data,u=e.children;if(r=r||c&&c.pre,e.elm=t,a(e.isComment)&&o(e.asyncFactory))return e.isAsyncPlaceholder=!0,!0;if(o(c)&&(o(i=c.hook)&&o(i=i.init)&&i(e,!0),o(i=e.componentInstance)))return d(e,n),!0;if(o(s)){if(o(u))if(t.hasChildNodes())if(o(i=c)&&o(i=i.domProps)&&o(i=i.innerHTML)){if(i!==t.innerHTML)return!1}else{for(var l=!0,f=t.firstChild,p=0;p<u.length;p++){if(!f||!S(f,u[p],n,r)){l=!1;break}f=f.nextSibling}if(!l||f)return!1}else h(e,u,n);if(o(c)){var v=!1;for(var m in c)if(!$(m)){v=!0,g(e,n);break}!v&&c.class&&re(c.class)}}else t.data!==e.text&&(t.data=e.text);return!0}return function(t,e,n,s){if(!i(e)){var c,l=!1,d=[];if(i(t))l=!0,f(e,d);else{var p=o(t.nodeType);if(!p&&er(t,e))A(t,e,d,null,null,s);else{if(p){if(1===t.nodeType&&t.hasAttribute(N)&&(t.removeAttribute(N),n=!0),a(n)&&S(t,e,d))return k(e,d,!0),t;c=t,t=new vt(u.tagName(c).toLowerCase(),{},[],void 0,c)}var h=t.elm,v=u.parentNode(h);if(f(e,d,h._leaveCb?null:v,u.nextSibling(h)),o(e.parent))for(var g=e.parent,y=m(e);g;){for(var b=0;b<r.destroy.length;++b)r.destroy[b](g);if(g.elm=e.elm,y){for(var C=0;C<r.create.length;++C)r.create[C](Yn,g);var x=g.data.hook.insert;if(x.merged)for(var $=1;$<x.fns.length;$++)x.fns[$]()}else Xn(g);g=g.parent}o(v)?w([t],0,0):o(t.tag)&&_(t)}}return k(e,d,l),e.elm}o(t)&&_(t)}}({nodeOps:Gn,modules:[pr,wr,Zr,ti,fi,V?{create:Ni,activate:Ni,remove:function(t,e){!0!==t.data.show?Di(t,e):e()}}:{}].concat(ur)});Z&&document.addEventListener("selectionchange",(function(){var t=document.activeElement;t&&t.vmodel&&Vi(t,"input")}));var Pi={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?se(n,"postpatch",(function(){Pi.componentUpdated(t,e,n)})):Ri(t,e,n.context),t._vOptions=[].map.call(t.options,Ui)):("textarea"===n.tag||Wn(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",Hi),t.addEventListener("compositionend",Ki),t.addEventListener("change",Ki),Z&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){Ri(t,e,n.context);var r=t._vOptions,i=t._vOptions=[].map.call(t.options,Ui);i.some((function(t,e){return!D(t,r[e])}))&&(t.multiple?e.value.some((function(t){return qi(t,i)})):e.value!==e.oldValue&&qi(e.value,i))&&Vi(t,"change")}}};function Ri(t,e,n){zi(t,e),(G||X)&&setTimeout((function(){zi(t,e)}),0)}function zi(t,e,n){var r=e.value,i=t.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=t.options.length;s<c;s++)if(a=t.options[s],i)o=I(r,Ui(a))>-1,a.selected!==o&&(a.selected=o);else if(D(Ui(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}}function qi(t,e){return e.every((function(e){return!D(e,t)}))}function Ui(t){return"_value"in t?t._value:t.value}function Hi(t){t.target.composing=!0}function Ki(t){t.target.composing&&(t.target.composing=!1,Vi(t.target,"input"))}function Vi(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Qi(t){return!t.componentInstance||t.data&&t.data.transition?t:Qi(t.componentInstance._vnode)}var Wi={model:Pi,show:{bind:function(t,e,n){var r=e.value,i=(n=Qi(n)).data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&i?(n.data.show=!0,Li(n,(function(){t.style.display=o}))):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Qi(n)).data&&n.data.transition?(n.data.show=!0,r?Li(n,(function(){t.style.display=t.__vOriginalDisplay})):Di(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,i){i||(t.style.display=t.__vOriginalDisplay)}}},Ji={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Gi(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Gi(He(e.children)):t}function Zi(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var i=n._parentListeners;for(var o in i)e[x(o)]=i[o];return e}function Xi(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Yi=function(t){return t.tag||Ue(t)},to=function(t){return"show"===t.name},eo={name:"transition",props:Ji,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Yi)).length){var r=this.mode,i=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return i;var o=Gi(i);if(!o)return i;if(this._leaving)return Xi(t,i);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:s(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var c=(o.data||(o.data={})).transition=Zi(this),u=this._vnode,l=Gi(u);if(o.data.directives&&o.data.directives.some(to)&&(o.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(o,l)&&!Ue(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=T({},c);if("out-in"===r)return this._leaving=!0,se(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Xi(t,i);if("in-out"===r){if(Ue(o))return u;var d,p=function(){d()};se(c,"afterEnter",p),se(c,"enterCancelled",p),se(f,"delayLeave",(function(t){d=t}))}}return i}}},no=T({tag:String,moveClass:String},Ji);function ro(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function io(t){t.data.newPos=t.elm.getBoundingClientRect()}function oo(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,i=e.top-n.top;if(r||i){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete no.mode;var ao={Transition:eo,TransitionGroup:{props:no,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var i=Ge(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,i(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Zi(this),s=0;s<i.length;s++){var c=i[s];c.tag&&null!=c.key&&0!==String(c.key).indexOf("__vlist")&&(o.push(c),n[c.key]=c,(c.data||(c.data={})).transition=a)}if(r){for(var u=[],l=[],f=0;f<r.length;f++){var d=r[f];d.data.transition=a,d.data.pos=d.elm.getBoundingClientRect(),n[d.key]?u.push(d):l.push(d)}this.kept=t(e,null,u),this.removed=l}return t(e,null,o)},updated:function(){var t=this.prevChildren,e=this.moveClass||(this.name||"v")+"-move";t.length&&this.hasMove(t[0].elm,e)&&(t.forEach(ro),t.forEach(io),t.forEach(oo),this._reflow=document.body.offsetHeight,t.forEach((function(t){if(t.data.moved){var n=t.elm,r=n.style;$i(n,e),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(wi,n._moveCb=function t(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(wi,t),n._moveCb=null,Si(n,e))})}})))},methods:{hasMove:function(t,e){if(!gi)return!1;if(this._hasMove)return this._hasMove;var n=t.cloneNode();t._transitionClasses&&t._transitionClasses.forEach((function(t){hi(n,t)})),pi(n,e),n.style.display="none",this.$el.appendChild(n);var r=ji(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};Cn.config.mustUseProp=Bn,Cn.config.isReservedTag=Kn,Cn.config.isReservedAttr=Tn,Cn.config.getTagNamespace=Vn,Cn.config.isUnknownElement=function(t){if(!V)return!0;if(Kn(t))return!1;if(t=t.toLowerCase(),null!=Qn[t])return Qn[t];var e=document.createElement(t);return t.indexOf("-")>-1?Qn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Qn[t]=/HTMLUnknownElement/.test(e.toString())},T(Cn.options.directives,Wi),T(Cn.options.components,ao),Cn.prototype.__patch__=V?Fi:B,Cn.prototype.$mount=function(t,e){return function(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.render=gt),Ye(t,"beforeMount"),r=function(){t._update(t._render(),n)},new dn(t,r,B,{before:function(){t._isMounted&&!t._isDestroyed&&Ye(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,Ye(t,"mounted")),t}(this,t=t&&V?Jn(t):void 0,e)},V&&setTimeout((function(){R.devtools&&ot&&ot.emit("init",Cn)}),0);var so,co=/\{\{((?:.|\r?\n)+?)\}\}/g,uo=/[-.*+?^${}()|[\]\/\\]/g,lo=w((function(t){var e=t[0].replace(uo,"\\$&"),n=t[1].replace(uo,"\\$&");return new RegExp(e+"((?:.|\\n)+?)"+n,"g")})),fo={staticKeys:["staticClass"],transformNode:function(t,e){e.warn;var n=Dr(t,"class");n&&(t.staticClass=JSON.stringify(n));var r=Lr(t,"class",!1);r&&(t.classBinding=r)},genData:function(t){var e="";return t.staticClass&&(e+="staticClass:"+t.staticClass+","),t.classBinding&&(e+="class:"+t.classBinding+","),e}},po={staticKeys:["staticStyle"],transformNode:function(t,e){e.warn;var n=Dr(t,"style");n&&(t.staticStyle=JSON.stringify(ei(n)));var r=Lr(t,"style",!1);r&&(t.styleBinding=r)},genData:function(t){var e="";return t.staticStyle&&(e+="staticStyle:"+t.staticStyle+","),t.styleBinding&&(e+="style:("+t.styleBinding+"),"),e}},ho=v("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),vo=v("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),mo=v("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),go=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,yo=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,bo="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+z.source+"]*",_o="((?:"+bo+"\\:)?"+bo+")",wo=new RegExp("^<"+_o),Co=/^\s*(\/?)>/,xo=new RegExp("^<\\/"+_o+"[^>]*>"),Ao=/^<!DOCTYPE [^>]+>/i,ko=/^<!\--/,$o=/^<!\[/,So=v("script,style,textarea",!0),Oo={},To={"<":"<",">":">",""":'"',"&":"&"," ":"\n","	":"\t","'":"'"},jo=/&(?:lt|gt|quot|amp|#39);/g,Bo=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Eo=v("pre,textarea",!0),Lo=function(t,e){return t&&Eo(t)&&"\n"===e[0]};function Do(t,e){var n=e?Bo:jo;return t.replace(n,(function(t){return To[t]}))}var Io,Mo,No,Fo,Po,Ro,zo,qo,Uo=/^@|^v-on:/,Ho=/^v-|^@|^:|^#/,Ko=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Vo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Qo=/^\(|\)$/g,Wo=/^\[.*\]$/,Jo=/:(.*)$/,Go=/^:|^\.|^v-bind:/,Zo=/\.[^.\]]+(?=[^\]]*$)/g,Xo=/^v-slot(:|$)|^#/,Yo=/[\r\n]/,ta=/\s+/g,ea=w((function(t){return(so=so||document.createElement("div")).innerHTML=t,so.textContent})),na="_empty_";function ra(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:ua(e),rawAttrsMap:{},parent:n,children:[]}}function ia(t,e){var n,r;(r=Lr(n=t,"key"))&&(n.key=r),t.plain=!t.key&&!t.scopedSlots&&!t.attrsList.length,function(t){var e=Lr(t,"ref");e&&(t.ref=e,t.refInFor=function(t){for(var e=t;e;){if(void 0!==e.for)return!0;e=e.parent}return!1}(t))}(t),function(t){var e;"template"===t.tag?(e=Dr(t,"scope"),t.slotScope=e||Dr(t,"slot-scope")):(e=Dr(t,"slot-scope"))&&(t.slotScope=e);var n=Lr(t,"slot");if(n&&(t.slotTarget='""'===n?'"default"':n,t.slotTargetDynamic=!(!t.attrsMap[":slot"]&&!t.attrsMap["v-bind:slot"]),"template"===t.tag||t.slotScope||Or(t,"slot",n,function(t,e){return t.rawAttrsMap[":"+e]||t.rawAttrsMap["v-bind:"+e]||t.rawAttrsMap[e]}(t,"slot"))),"template"===t.tag){var r=Ir(t,Xo);if(r){var i=sa(r),o=i.name,a=i.dynamic;t.slotTarget=o,t.slotTargetDynamic=a,t.slotScope=r.value||na}}else{var s=Ir(t,Xo);if(s){var c=t.scopedSlots||(t.scopedSlots={}),u=sa(s),l=u.name,f=u.dynamic,d=c[l]=ra("template",[],t);d.slotTarget=l,d.slotTargetDynamic=f,d.children=t.children.filter((function(t){if(!t.slotScope)return t.parent=d,!0})),d.slotScope=s.value||na,t.children=[],t.plain=!1}}}(t),function(t){"slot"===t.tag&&(t.slotName=Lr(t,"name"))}(t),function(t){var e;(e=Lr(t,"is"))&&(t.component=e),null!=Dr(t,"inline-template")&&(t.inlineTemplate=!0)}(t);for(var i=0;i<No.length;i++)t=No[i](t,e)||t;return function(t){var e,n,r,i,o,a,s,c,u=t.attrsList;for(e=0,n=u.length;e<n;e++)if(r=i=u[e].name,o=u[e].value,Ho.test(r))if(t.hasBindings=!0,(a=ca(r.replace(Ho,"")))&&(r=r.replace(Zo,"")),Go.test(r))r=r.replace(Go,""),o=xr(o),(c=Wo.test(r))&&(r=r.slice(1,-1)),a&&(a.prop&&!c&&"innerHtml"===(r=x(r))&&(r="innerHTML"),a.camel&&!c&&(r=x(r)),a.sync&&(s=Fr(o,"$event"),c?Er(t,'"update:"+('+r+")",s,null,!1,0,u[e],!0):(Er(t,"update:"+x(r),s,null,!1,0,u[e]),$(r)!==x(r)&&Er(t,"update:"+$(r),s,null,!1,0,u[e])))),a&&a.prop||!t.component&&zo(t.tag,t.attrsMap.type,r)?Sr(t,r,o,u[e],c):Or(t,r,o,u[e],c);else if(Uo.test(r))r=r.replace(Uo,""),(c=Wo.test(r))&&(r=r.slice(1,-1)),Er(t,r,o,a,!1,0,u[e],c);else{var l=(r=r.replace(Ho,"")).match(Jo),f=l&&l[1];c=!1,f&&(r=r.slice(0,-(f.length+1)),Wo.test(f)&&(f=f.slice(1,-1),c=!0)),jr(t,r,i,o,f,c,a,u[e])}else Or(t,r,JSON.stringify(o),u[e]),!t.component&&"muted"===r&&zo(t.tag,t.attrsMap.type,r)&&Sr(t,r,"true",u[e])}(t),t}function oa(t){var e;if(e=Dr(t,"v-for")){var n=function(t){var e=t.match(Ko);if(e){var n={};n.for=e[2].trim();var r=e[1].trim().replace(Qo,""),i=r.match(Vo);return i?(n.alias=r.replace(Vo,"").trim(),n.iterator1=i[1].trim(),i[2]&&(n.iterator2=i[2].trim())):n.alias=r,n}}(e);n&&T(t,n)}}function aa(t,e){t.ifConditions||(t.ifConditions=[]),t.ifConditions.push(e)}function sa(t){var e=t.name.replace(Xo,"");return e||"#"!==t.name[0]&&(e="default"),Wo.test(e)?{name:e.slice(1,-1),dynamic:!0}:{name:'"'+e+'"',dynamic:!1}}function ca(t){var e=t.match(Zo);if(e){var n={};return e.forEach((function(t){n[t.slice(1)]=!0})),n}}function ua(t){for(var e={},n=0,r=t.length;n<r;n++)e[t[n].name]=t[n].value;return e}var la=/^xmlns:NS\d+/,fa=/^NS\d+:/;function da(t){return ra(t.tag,t.attrsList.slice(),t.parent)}var pa,ha,va=[fo,po,{preTransformNode:function(t,e){if("input"===t.tag){var n,r=t.attrsMap;if(!r["v-model"])return;if((r[":type"]||r["v-bind:type"])&&(n=Lr(t,"type")),r.type||n||!r["v-bind"]||(n="("+r["v-bind"]+").type"),n){var i=Dr(t,"v-if",!0),o=i?"&&("+i+")":"",a=null!=Dr(t,"v-else",!0),s=Dr(t,"v-else-if",!0),c=da(t);oa(c),Tr(c,"type","checkbox"),ia(c,e),c.processed=!0,c.if="("+n+")==='checkbox'"+o,aa(c,{exp:c.if,block:c});var u=da(t);Dr(u,"v-for",!0),Tr(u,"type","radio"),ia(u,e),aa(c,{exp:"("+n+")==='radio'"+o,block:u});var l=da(t);return Dr(l,"v-for",!0),Tr(l,":type",n),ia(l,e),aa(c,{exp:i,block:l}),a?c.else=!0:s&&(c.elseif=s),c}}}}],ma={expectHTML:!0,modules:va,directives:{model:function(t,e,n){var r=e.value,i=e.modifiers,o=t.tag,a=t.attrsMap.type;if(t.component)return Nr(t,r,i),!1;if("select"===o)!function(t,e,n){var r='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(n&&n.number?"_n(val)":"val")+"});";Er(t,"change",r=r+" "+Fr(e,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),null,!0)}(t,r,i);else if("input"===o&&"checkbox"===a)!function(t,e,n){var r=n&&n.number,i=Lr(t,"value")||"null",o=Lr(t,"true-value")||"true",a=Lr(t,"false-value")||"false";Sr(t,"checked","Array.isArray("+e+")?_i("+e+","+i+")>-1"+("true"===o?":("+e+")":":_q("+e+","+o+")")),Er(t,"change","var $$a="+e+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Fr(e,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Fr(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Fr(e,"$$c")+"}",null,!0)}(t,r,i);else if("input"===o&&"radio"===a)!function(t,e,n){var r=n&&n.number,i=Lr(t,"value")||"null";Sr(t,"checked","_q("+e+","+(i=r?"_n("+i+")":i)+")"),Er(t,"change",Fr(e,i),null,!0)}(t,r,i);else if("input"===o||"textarea"===o)!function(t,e,n){var r=t.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,u=o?"change":"range"===r?"__r":"input",l="$event.target.value";s&&(l="$event.target.value.trim()"),a&&(l="_n("+l+")");var f=Fr(e,l);c&&(f="if($event.target.composing)return;"+f),Sr(t,"value","("+e+")"),Er(t,u,f,null,!0),(s||a)&&Er(t,"blur","$forceUpdate()")}(t,r,i);else if(!R.isReservedTag(o))return Nr(t,r,i),!1;return!0},text:function(t,e){e.value&&Sr(t,"textContent","_s("+e.value+")",e)},html:function(t,e){e.value&&Sr(t,"innerHTML","_s("+e.value+")",e)}},isPreTag:function(t){return"pre"===t},isUnaryTag:ho,mustUseProp:Bn,canBeLeftOpenTag:vo,isReservedTag:Kn,getTagNamespace:Vn,staticKeys:function(t){return t.reduce((function(t,e){return t.concat(e.staticKeys||[])}),[]).join(",")}(va)},ga=w((function(t){return v("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(t?","+t:""))})),ya=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,ba=/\([^)]*?\);*$/,_a=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,wa={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ca={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},xa=function(t){return"if("+t+")return null;"},Aa={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:xa("$event.target !== $event.currentTarget"),ctrl:xa("!$event.ctrlKey"),shift:xa("!$event.shiftKey"),alt:xa("!$event.altKey"),meta:xa("!$event.metaKey"),left:xa("'button' in $event && $event.button !== 0"),middle:xa("'button' in $event && $event.button !== 1"),right:xa("'button' in $event && $event.button !== 2")};function ka(t,e){var n=e?"nativeOn:":"on:",r="",i="";for(var o in t){var a=$a(t[o]);t[o]&&t[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function $a(t){if(!t)return"function(){}";if(Array.isArray(t))return"["+t.map((function(t){return $a(t)})).join(",")+"]";var e=_a.test(t.value),n=ya.test(t.value),r=_a.test(t.value.replace(ba,""));if(t.modifiers){var i="",o="",a=[];for(var s in t.modifiers)if(Aa[s])o+=Aa[s],wa[s]&&a.push(s);else if("exact"===s){var c=t.modifiers;o+=xa(["ctrl","shift","alt","meta"].filter((function(t){return!c[t]})).map((function(t){return"$event."+t+"Key"})).join("||"))}else a.push(s);return a.length&&(i+=function(t){return"if(!$event.type.indexOf('key')&&"+t.map(Sa).join("&&")+")return null;"}(a)),o&&(i+=o),"function($event){"+i+(e?"return "+t.value+"($event)":n?"return ("+t.value+")($event)":r?"return "+t.value:t.value)+"}"}return e||n?t.value:"function($event){"+(r?"return "+t.value:t.value)+"}"}function Sa(t){var e=parseInt(t,10);if(e)return"$event.keyCode!=="+e;var n=wa[t],r=Ca[t];return"_k($event.keyCode,"+JSON.stringify(t)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var Oa={on:function(t,e){t.wrapListeners=function(t){return"_g("+t+","+e.value+")"}},bind:function(t,e){t.wrapData=function(n){return"_b("+n+",'"+t.tag+"',"+e.value+","+(e.modifiers&&e.modifiers.prop?"true":"false")+(e.modifiers&&e.modifiers.sync?",true":"")+")"}},cloak:B},Ta=function(t){this.options=t,this.warn=t.warn||kr,this.transforms=$r(t.modules,"transformCode"),this.dataGenFns=$r(t.modules,"genData"),this.directives=T(T({},Oa),t.directives);var e=t.isReservedTag||E;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function ja(t,e){var n=new Ta(e);return{render:"with(this){return "+(t?Ba(t,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Ba(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return Ea(t,e);if(t.once&&!t.onceProcessed)return La(t,e);if(t.for&&!t.forProcessed)return Ia(t,e);if(t.if&&!t.ifProcessed)return Da(t,e);if("template"!==t.tag||t.slotTarget||e.pre){if("slot"===t.tag)return function(t,e){var n=t.slotName||'"default"',r=Pa(t,e),i="_t("+n+(r?","+r:""),o=t.attrs||t.dynamicAttrs?qa((t.attrs||[]).concat(t.dynamicAttrs||[]).map((function(t){return{name:x(t.name),value:t.value,dynamic:t.dynamic}}))):null,a=t.attrsMap["v-bind"];return!o&&!a||r||(i+=",null"),o&&(i+=","+o),a&&(i+=(o?"":",null")+","+a),i+")"}(t,e);var n;if(t.component)n=function(t,e,n){var r=e.inlineTemplate?null:Pa(e,n,!0);return"_c("+t+","+Ma(e,n)+(r?","+r:"")+")"}(t.component,t,e);else{var r;(!t.plain||t.pre&&e.maybeComponent(t))&&(r=Ma(t,e));var i=t.inlineTemplate?null:Pa(t,e,!0);n="_c('"+t.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o<e.transforms.length;o++)n=e.transforms[o](t,n);return n}return Pa(t,e)||"void 0"}function Ea(t,e){t.staticProcessed=!0;var n=e.pre;return t.pre&&(e.pre=t.pre),e.staticRenderFns.push("with(this){return "+Ba(t,e)+"}"),e.pre=n,"_m("+(e.staticRenderFns.length-1)+(t.staticInFor?",true":"")+")"}function La(t,e){if(t.onceProcessed=!0,t.if&&!t.ifProcessed)return Da(t,e);if(t.staticInFor){for(var n="",r=t.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o("+Ba(t,e)+","+e.onceId+++","+n+")":Ba(t,e)}return Ea(t,e)}function Da(t,e,n,r){return t.ifProcessed=!0,function t(e,n,r,i){if(!e.length)return i||"_e()";var o=e.shift();return o.exp?"("+o.exp+")?"+a(o.block)+":"+t(e,n,r,i):""+a(o.block);function a(t){return r?r(t,n):t.once?La(t,n):Ba(t,n)}}(t.ifConditions.slice(),e,n,r)}function Ia(t,e,n,r){var i=t.for,o=t.alias,a=t.iterator1?","+t.iterator1:"",s=t.iterator2?","+t.iterator2:"";return t.forProcessed=!0,(r||"_l")+"(("+i+"),function("+o+a+s+"){return "+(n||Ba)(t,e)+"})"}function Ma(t,e){var n="{",r=function(t,e){var n=t.directives;if(n){var r,i,o,a,s="directives:[",c=!1;for(r=0,i=n.length;r<i;r++){o=n[r],a=!0;var u=e.directives[o.name];u&&(a=!!u(t,o,e.warn)),a&&(c=!0,s+='{name:"'+o.name+'",rawName:"'+o.rawName+'"'+(o.value?",value:("+o.value+"),expression:"+JSON.stringify(o.value):"")+(o.arg?",arg:"+(o.isDynamicArg?o.arg:'"'+o.arg+'"'):"")+(o.modifiers?",modifiers:"+JSON.stringify(o.modifiers):"")+"},")}return c?s.slice(0,-1)+"]":void 0}}(t,e);r&&(n+=r+","),t.key&&(n+="key:"+t.key+","),t.ref&&(n+="ref:"+t.ref+","),t.refInFor&&(n+="refInFor:true,"),t.pre&&(n+="pre:true,"),t.component&&(n+='tag:"'+t.tag+'",');for(var i=0;i<e.dataGenFns.length;i++)n+=e.dataGenFns[i](t);if(t.attrs&&(n+="attrs:"+qa(t.attrs)+","),t.props&&(n+="domProps:"+qa(t.props)+","),t.events&&(n+=ka(t.events,!1)+","),t.nativeEvents&&(n+=ka(t.nativeEvents,!0)+","),t.slotTarget&&!t.slotScope&&(n+="slot:"+t.slotTarget+","),t.scopedSlots&&(n+=function(t,e,n){var r=t.for||Object.keys(e).some((function(t){var n=e[t];return n.slotTargetDynamic||n.if||n.for||Na(n)})),i=!!t.if;if(!r)for(var o=t.parent;o;){if(o.slotScope&&o.slotScope!==na||o.for){r=!0;break}o.if&&(i=!0),o=o.parent}var a=Object.keys(e).map((function(t){return Fa(e[t],n)})).join(",");return"scopedSlots:_u(["+a+"]"+(r?",null,true":"")+(!r&&i?",null,false,"+function(t){for(var e=5381,n=t.length;n;)e=33*e^t.charCodeAt(--n);return e>>>0}(a):"")+")"}(t,t.scopedSlots,e)+","),t.model&&(n+="model:{value:"+t.model.value+",callback:"+t.model.callback+",expression:"+t.model.expression+"},"),t.inlineTemplate){var o=function(t,e){var n=t.children[0];if(n&&1===n.type){var r=ja(n,e.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map((function(t){return"function(){"+t+"}"})).join(",")+"]}"}}(t,e);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",t.dynamicAttrs&&(n="_b("+n+',"'+t.tag+'",'+qa(t.dynamicAttrs)+")"),t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function Na(t){return 1===t.type&&("slot"===t.tag||t.children.some(Na))}function Fa(t,e){var n=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!n)return Da(t,e,Fa,"null");if(t.for&&!t.forProcessed)return Ia(t,e,Fa);var r=t.slotScope===na?"":String(t.slotScope),i="function("+r+"){return "+("template"===t.tag?t.if&&n?"("+t.if+")?"+(Pa(t,e)||"undefined")+":undefined":Pa(t,e)||"undefined":Ba(t,e))+"}",o=r?"":",proxy:true";return"{key:"+(t.slotTarget||'"default"')+",fn:"+i+o+"}"}function Pa(t,e,n,r,i){var o=t.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?e.maybeComponent(a)?",1":",0":"";return""+(r||Ba)(a,e)+s}var c=n?function(t,e){for(var n=0,r=0;r<t.length;r++){var i=t[r];if(1===i.type){if(Ra(i)||i.ifConditions&&i.ifConditions.some((function(t){return Ra(t.block)}))){n=2;break}(e(i)||i.ifConditions&&i.ifConditions.some((function(t){return e(t.block)})))&&(n=1)}}return n}(o,e.maybeComponent):0,u=i||za;return"["+o.map((function(t){return u(t,e)})).join(",")+"]"+(c?","+c:"")}}function Ra(t){return void 0!==t.for||"template"===t.tag||"slot"===t.tag}function za(t,e){return 1===t.type?Ba(t,e):3===t.type&&t.isComment?(r=t,"_e("+JSON.stringify(r.text)+")"):"_v("+(2===(n=t).type?n.expression:Ua(JSON.stringify(n.text)))+")";var n,r}function qa(t){for(var e="",n="",r=0;r<t.length;r++){var i=t[r],o=Ua(i.value);i.dynamic?n+=i.name+","+o+",":e+='"'+i.name+'":'+o+","}return e="{"+e.slice(0,-1)+"}",n?"_d("+e+",["+n.slice(0,-1)+"])":e}function Ua(t){return t.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function Ha(t,e){try{return new Function(t)}catch(n){return e.push({err:n,code:t}),B}}function Ka(t){var e=Object.create(null);return function(n,r,i){(r=T({},r)).warn,delete r.warn;var o=r.delimiters?String(r.delimiters)+n:n;if(e[o])return e[o];var a=t(n,r),s={},c=[];return s.render=Ha(a.render,c),s.staticRenderFns=a.staticRenderFns.map((function(t){return Ha(t,c)})),e[o]=s}}new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b");var Va,Qa,Wa=(Va=function(t,e){var n=function(t,e){Io=e.warn||kr,Ro=e.isPreTag||E,zo=e.mustUseProp||E,qo=e.getTagNamespace||E,e.isReservedTag,No=$r(e.modules,"transformNode"),Fo=$r(e.modules,"preTransformNode"),Po=$r(e.modules,"postTransformNode"),Mo=e.delimiters;var n,r,i=[],o=!1!==e.preserveWhitespace,a=e.whitespace,s=!1,c=!1;function u(t){if(l(t),s||t.processed||(t=ia(t,e)),i.length||t===n||n.if&&(t.elseif||t.else)&&aa(n,{exp:t.elseif,block:t}),r&&!t.forbidden)if(t.elseif||t.else)a=t,(u=function(t){for(var e=t.length;e--;){if(1===t[e].type)return t[e];t.pop()}}(r.children))&&u.if&&aa(u,{exp:a.elseif,block:a});else{if(t.slotScope){var o=t.slotTarget||'"default"';(r.scopedSlots||(r.scopedSlots={}))[o]=t}r.children.push(t),t.parent=r}var a,u;t.children=t.children.filter((function(t){return!t.slotScope})),l(t),t.pre&&(s=!1),Ro(t.tag)&&(c=!1);for(var f=0;f<Po.length;f++)Po[f](t,e)}function l(t){if(!c)for(var e;(e=t.children[t.children.length-1])&&3===e.type&&" "===e.text;)t.children.pop()}return function(t,e){for(var n,r,i=[],o=e.expectHTML,a=e.isUnaryTag||E,s=e.canBeLeftOpenTag||E,c=0;t;){if(n=t,r&&So(r)){var u=0,l=r.toLowerCase(),f=Oo[l]||(Oo[l]=new RegExp("([\\s\\S]*?)(</"+l+"[^>]*>)","i")),d=t.replace(f,(function(t,n,r){return u=r.length,So(l)||"noscript"===l||(n=n.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),Lo(l,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""}));c+=t.length-d.length,t=d,$(l,c-u,c)}else{var p=t.indexOf("<");if(0===p){if(ko.test(t)){var h=t.indexOf("--\x3e");if(h>=0){e.shouldKeepComment&&e.comment(t.substring(4,h),c,c+h+3),x(h+3);continue}}if($o.test(t)){var v=t.indexOf("]>");if(v>=0){x(v+2);continue}}var m=t.match(Ao);if(m){x(m[0].length);continue}var g=t.match(xo);if(g){var y=c;x(g[0].length),$(g[1],y,c);continue}var b=A();if(b){k(b),Lo(b.tagName,t)&&x(1);continue}}var _=void 0,w=void 0,C=void 0;if(p>=0){for(w=t.slice(p);!(xo.test(w)||wo.test(w)||ko.test(w)||$o.test(w)||(C=w.indexOf("<",1))<0);)p+=C,w=t.slice(p);_=t.substring(0,p)}p<0&&(_=t),_&&x(_.length),e.chars&&_&&e.chars(_,c-_.length,c)}if(t===n){e.chars&&e.chars(t);break}}function x(e){c+=e,t=t.substring(e)}function A(){var e=t.match(wo);if(e){var n,r,i={tagName:e[1],attrs:[],start:c};for(x(e[0].length);!(n=t.match(Co))&&(r=t.match(yo)||t.match(go));)r.start=c,x(r[0].length),r.end=c,i.attrs.push(r);if(n)return i.unarySlash=n[1],x(n[0].length),i.end=c,i}}function k(t){var n=t.tagName,c=t.unarySlash;o&&("p"===r&&mo(n)&&$(r),s(n)&&r===n&&$(n));for(var u=a(n)||!!c,l=t.attrs.length,f=new Array(l),d=0;d<l;d++){var p=t.attrs[d],h=p[3]||p[4]||p[5]||"",v="a"===n&&"href"===p[1]?e.shouldDecodeNewlinesForHref:e.shouldDecodeNewlines;f[d]={name:p[1],value:Do(h,v)}}u||(i.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:f,start:t.start,end:t.end}),r=n),e.start&&e.start(n,f,u,t.start,t.end)}function $(t,n,o){var a,s;if(null==n&&(n=c),null==o&&(o=c),t)for(s=t.toLowerCase(),a=i.length-1;a>=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)e.end&&e.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?e.start&&e.start(t,[],!0,n,o):"p"===s&&(e.start&&e.start(t,[],!1,n,o),e.end&&e.end(t,n,o))}$()}(t,{warn:Io,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldDecodeNewlinesForHref:e.shouldDecodeNewlinesForHref,shouldKeepComment:e.comments,outputSourceRange:e.outputSourceRange,start:function(t,o,a,l,f){var d=r&&r.ns||qo(t);G&&"svg"===d&&(o=function(t){for(var e=[],n=0;n<t.length;n++){var r=t[n];la.test(r.name)||(r.name=r.name.replace(fa,""),e.push(r))}return e}(o));var p,h=ra(t,o,r);d&&(h.ns=d),"style"!==(p=h).tag&&("script"!==p.tag||p.attrsMap.type&&"text/javascript"!==p.attrsMap.type)||it()||(h.forbidden=!0);for(var v=0;v<Fo.length;v++)h=Fo[v](h,e)||h;s||(function(t){null!=Dr(t,"v-pre")&&(t.pre=!0)}(h),h.pre&&(s=!0)),Ro(h.tag)&&(c=!0),s?function(t){var e=t.attrsList,n=e.length;if(n)for(var r=t.attrs=new Array(n),i=0;i<n;i++)r[i]={name:e[i].name,value:JSON.stringify(e[i].value)},null!=e[i].start&&(r[i].start=e[i].start,r[i].end=e[i].end);else t.pre||(t.plain=!0)}(h):h.processed||(oa(h),function(t){var e=Dr(t,"v-if");if(e)t.if=e,aa(t,{exp:e,block:t});else{null!=Dr(t,"v-else")&&(t.else=!0);var n=Dr(t,"v-else-if");n&&(t.elseif=n)}}(h),function(t){null!=Dr(t,"v-once")&&(t.once=!0)}(h)),n||(n=h),a?u(h):(r=h,i.push(h))},end:function(t,e,n){var o=i[i.length-1];i.length-=1,r=i[i.length-1],u(o)},chars:function(t,e,n){if(r&&(!G||"textarea"!==r.tag||r.attrsMap.placeholder!==t)){var i,u,l,f=r.children;(t=c||t.trim()?"script"===(i=r).tag||"style"===i.tag?t:ea(t):f.length?a?"condense"===a&&Yo.test(t)?"":" ":o?" ":"":"")&&(c||"condense"!==a||(t=t.replace(ta," ")),!s&&" "!==t&&(u=function(t,e){var n=e?lo(e):co;if(n.test(t)){for(var r,i,o,a=[],s=[],c=n.lastIndex=0;r=n.exec(t);){(i=r.index)>c&&(s.push(o=t.slice(c,i)),a.push(JSON.stringify(o)));var u=xr(r[1].trim());a.push("_s("+u+")"),s.push({"@binding":u}),c=i+r[0].length}return c<t.length&&(s.push(o=t.slice(c)),a.push(JSON.stringify(o))),{expression:a.join("+"),tokens:s}}}(t,Mo))?l={type:2,expression:u.expression,tokens:u.tokens,text:t}:" "===t&&f.length&&" "===f[f.length-1].text||(l={type:3,text:t}),l&&f.push(l))}},comment:function(t,e,n){if(r){var i={type:3,text:t,isComment:!0};r.children.push(i)}}}),n}(t.trim(),e);!1!==e.optimize&&function(t,e){t&&(pa=ga(e.staticKeys||""),ha=e.isReservedTag||E,function t(e){if(e.static=function(t){return 2!==t.type&&(3===t.type||!(!t.pre&&(t.hasBindings||t.if||t.for||m(t.tag)||!ha(t.tag)||function(t){for(;t.parent;){if("template"!==(t=t.parent).tag)return!1;if(t.for)return!0}return!1}(t)||!Object.keys(t).every(pa))))}(e),1===e.type){if(!ha(e.tag)&&"slot"!==e.tag&&null==e.attrsMap["inline-template"])return;for(var n=0,r=e.children.length;n<r;n++){var i=e.children[n];t(i),i.static||(e.static=!1)}if(e.ifConditions)for(var o=1,a=e.ifConditions.length;o<a;o++){var s=e.ifConditions[o].block;t(s),s.static||(e.static=!1)}}}(t),function t(e,n){if(1===e.type){if((e.static||e.once)&&(e.staticInFor=n),e.static&&e.children.length&&(1!==e.children.length||3!==e.children[0].type))return void(e.staticRoot=!0);if(e.staticRoot=!1,e.children)for(var r=0,i=e.children.length;r<i;r++)t(e.children[r],n||!!e.for);if(e.ifConditions)for(var o=1,a=e.ifConditions.length;o<a;o++)t(e.ifConditions[o].block,n)}}(t,!1))}(n,e);var r=ja(n,e);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}},function(t){function e(e,n){var r=Object.create(t),i=[],o=[];if(n)for(var a in n.modules&&(r.modules=(t.modules||[]).concat(n.modules)),n.directives&&(r.directives=T(Object.create(t.directives||null),n.directives)),n)"modules"!==a&&"directives"!==a&&(r[a]=n[a]);r.warn=function(t,e,n){(n?o:i).push(t)};var s=Va(e.trim(),r);return s.errors=i,s.tips=o,s}return{compile:e,compileToFunctions:Ka(e)}})(ma),Ja=(Wa.compile,Wa.compileToFunctions);function Ga(t){return(Qa=Qa||document.createElement("div")).innerHTML=t?'<a href="\n"/>':'<div a="\n"/>',Qa.innerHTML.indexOf(" ")>0}var Za=!!V&&Ga(!1),Xa=!!V&&Ga(!0),Ya=w((function(t){var e=Jn(t);return e&&e.innerHTML})),ts=Cn.prototype.$mount;Cn.prototype.$mount=function(t,e){if((t=t&&Jn(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=Ya(r));else{if(!r.nodeType)return this;r=r.innerHTML}else t&&(r=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(r){var i=Ja(r,{outputSourceRange:!1,shouldDecodeNewlines:Za,shouldDecodeNewlinesForHref:Xa,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return ts.call(this,t,e)},Cn.compile=Ja,t.exports=Cn},73609:t=>{"use strict";t.exports=window.jQuery}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={id:r,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},(()=>{"use strict";var t=u(n(78256)),e=u(n(12887)),r=u(n(13471)),i=u(n(36183)),o=u(n(14982)),a=u(n(66013)),s=u(n(28747)),c=u(n(43284));function u(t){return t&&t.__esModule?t:{default:t}}var l=window.$;l((function(){(0,t.default)(),(0,e.default)(),(0,r.default)(),(0,i.default)(),(0,s.default)(),(0,o.default)().init(),(0,a.default)().init(),new c.default({container:"#serp-app",defaultTitle:".serp-default-title:input",watchedTitle:".serp-watched-title:input",defaultDescription:".serp-default-description",watchedDescription:".serp-watched-description",watchedMetaUrl:".serp-watched-url:input"},l("#product_form_preview_btn").data("seo-url")),l(".modules-list-select").on("change",(function(t){l(".module-render-container").hide(),l("."+t.target.value).show()})),l(".modules-list-button").on("click",(function(t){var e=l(t.target).data("target");return l(".module-selection").show(),l(".modules-list-select").val(e).trigger("change"),!1}))}))})(),window.product_page={}})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9hcHAvdXRpbHMvc2VycC9pbmRleC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9jb21wb25lbnRzL2V2ZW50LWVtaXR0ZXIuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvcHJvZHVjdC1wYWdlL2F0dHJpYnV0ZXMuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvcHJvZHVjdC1wYWdlL2NhdGVnb3J5LXRyZWUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvcHJvZHVjdC1wYWdlL2NvbWJpbmF0aW9uLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL3Byb2R1Y3QtcGFnZS9uZXN0ZWQtY2F0ZWdvcmllcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9wcm9kdWN0LXBhZ2UvcHJvZHVjdC1idWxrLWNvbWJpbmF0aW9ucy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9wcm9kdWN0LXBhZ2UvcHJvZHVjdC1oZWFkZXIuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvcHJvZHVjdC1wYWdlL3Byb2R1Y3Qtc2VhcmNoLWF1dG9jb21wbGV0ZS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vanMvYXBwL3V0aWxzL3NlcnAvc2VycC52dWUiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9hcnJheS9mcm9tLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvb2JqZWN0L2RlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9hcnJheS9mcm9tLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2EtZnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hbi1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hcnJheS1pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NsYXNzb2YuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb2YuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb3JlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3JlYXRlLXByb3BlcnR5LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3R4LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2Rlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZG9tLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19leHBvcnQuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19mYWlscy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hhcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hpZGUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19odG1sLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pb2JqZWN0LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtYXJyYXktaXRlci5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY2FsbC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWRldGVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtY3JlYXRlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1ncG8uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qta2V5cy1pbnRlcm5hbC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fcHJvcGVydHktZGVzYy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3JlZGVmaW5lLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2V0LXRvLXN0cmluZy10YWcuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zaGFyZWQta2V5LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2hhcmVkLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc3RyaW5nLWF0LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuYXJyYXkuZnJvbS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5zdHJpbmcuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvYXBwL3V0aWxzL3NlcnAvc2VycC52dWU/ZmE4YyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy90eXBlYWhlYWQuanMvZGlzdC90eXBlYWhlYWQuYnVuZGxlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2FwcC91dGlscy9zZXJwL3NlcnAudnVlPzNkODUiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvYXBwL3V0aWxzL3NlcnAvc2VycC52dWU/YmY2MiIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9hcHAvdXRpbHMvc2VycC9zZXJwLnZ1ZSIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2FwcC91dGlscy9zZXJwL3NlcnAudnVlP2IwMjAiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2xpc3RUb1N0eWxlcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvdnVlLXN0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzQ2xpZW50LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy92dWUvZGlzdC92dWUuY29tbW9uLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy92dWUvZGlzdC92dWUuY29tbW9uLnByb2QuanMiLCJ3ZWJwYWNrOi8vW25hbWVdL2V4dGVybmFsIFwialF1ZXJ5XCIiLCJ3ZWJwYWNrOi8vW25hbWVdL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL1tuYW1lXS93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9bbmFtZV0vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL1tuYW1lXS93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL1tuYW1lXS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL1tuYW1lXS93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL1tuYW1lXS8uL2pzL3Byb2R1Y3QtcGFnZS9pbmRleC5qcyJdLCJuYW1lcyI6WyIkIiwid2luZG93IiwiU2VycEFwcCIsInNlbGVjdG9ycyIsInVybCIsImNvbnRhaW5lciIsImxlbmd0aCIsInRoaXMiLCJvcmlnaW5hbFVybCIsInVzZU11bHRpTGFuZyIsInVuZGVmaW5lZCIsIm11bHRpTGFuZ3VhZ2VJbnB1dCIsIm11bHRpTGFuZ3VhZ2VGaWVsZCIsInBvc3NpYmxlU2VsZWN0b3JzIiwicHVzaCIsIm11bHRpTGFuZ1NlbGVjdG9yIiwiam9pbiIsImF0dGFjaE11bHRpTGFuZ0V2ZW50cyIsImRhdGEiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwidm0iLCJWdWUiLCJlbCIsInRlbXBsYXRlIiwiY29tcG9uZW50cyIsInNlcnAiLCJpbml0aWFsaXplU2VsZWN0b3JzIiwiYXR0YWNoSW5wdXRFdmVudHMiLCJpdGVtU2VsZWN0b3IiLCJvbiIsImNoZWNrVGl0bGUiLCJjaGVja0Rlc2MiLCJjaGVja1VybCIsIkV2ZW50RW1pdHRlciIsImRlZmF1bHRUaXRsZSIsIndhdGNoZWRUaXRsZSIsImRlZmF1bHREZXNjcmlwdGlvbiIsIndhdGNoZWREZXNjcmlwdGlvbiIsIndhdGNoZWRNZXRhVXJsIiwicmV3cml0ZSIsInJlcGxhY2UiLCJjbG9zZXN0IiwiZmluZCIsInRpdGxlMSIsInZhbCIsInRpdGxlMiIsInNldFRpdGxlIiwiaXMiLCJkZXNjMSIsImlubmVyVGV4dCIsImRlc2MyIiwidGV4dCIsInNldERlc2NyaXB0aW9uIiwic2V0VXJsIiwiRXZlbnRFbWl0dGVyQ2xhc3MiLCJkb2N1bWVudCIsInJlYWR5IiwiY2hhbmdlIiwiZXZlbnQiLCJ0YXJnZXQiLCJ0b2tlbmZpZWxkIiwidmFsdWUiLCJsYWJlbCIsImNsaWNrIiwiZSIsImF0dHJzIiwicHJvcCIsImVhY2giLCJjb3VudGVyIiwiYXR0ciIsImhhbmRsZUNvdW50ZXIiLCJvYmplY3QiLCJjb3VudGVyT2JqZWN0IiwiY291bnRlclR5cGUiLCJtYXgiLCJwYXJlbnQiLCJhZGRDbGFzcyIsInJlbW92ZUNsYXNzIiwic2Nyb2xsQ2F0ZWdvcnlUcmVlIiwiJGNhdGVnb3J5VHJlZU92ZXJmbG93IiwibGVmdFBvcyIsIndpZHRoIiwiYW5pbWF0ZSIsInNjcm9sbExlZnQiLCJ0cmVlQWN0aW9uIiwidHJlZVN0YXRlIiwic2hvdyIsInRvZ2dsZUNsYXNzIiwiaGlkZSIsIiRqc0NvbWJpbmF0aW9uc0xpc3QiLCJpZHNQcm9kdWN0QXR0cmlidXRlIiwidG9TdHJpbmciLCJzcGxpdCIsInJlZnJlc2hJbWFnZXNVcmwiLCJpZHNDb3VudCIsImN1cnJlbnRDb3VudCIsImdldCIsInRoZW4iLCJyZXNwb25zZSIsImdldENvbWJpbmF0aW9ucyIsInByZXZlbnREZWZhdWx0IiwiZm9ybSIsInNlbmQiLCJnZW5lcmF0ZSIsIkRyb3B6b25lIiwiZm9yRWxlbWVudCIsInByb2R1Y3RBdHRyaWJ1dGVJZHMiLCJtYXAiLCJjb21iaW5hdGlvbiIsInJlZnJlc2hJbWFnZXNDb21iaW5hdGlvbiIsImlucHV0IiwiaXNDaGVja2VkIiwicmVmcmVzaERlZmF1bHRJbWFnZSIsImtleXVwIiwic2VsZiIsInByaWNlIiwicHJpY2VDYWxjdWxhdGlvbiIsIm5vcm1hbGl6ZVByaWNlIiwicmVtb3ZlQ3VycmVudFRheCIsImFkZEN1cnJlbnRUYXgiLCJjb21iaW5hdGlvbnNJbWFnZXMiLCIkanNDb21iaW5hdGlvbnNCdWxrRm9ybSIsImhhc0NsYXNzIiwiJGNvbWJpbmF0aW9uc1VybCIsImdldENvbWJpbmF0aW9uc1VybCIsInJlc3AiLCJiZWZvcmUiLCJzbGljZSIsImFjdGl2YXRlQ29tYmluYXRpb25zQnVsayIsIiRudW1iZXJzIiwiZmFkZU91dCIsInJlbW92ZSIsInBvcG92ZXIiLCJpbmRleCIsIiRjb21iaW5hdGlvbkVsZW0iLCIkaW5kZXgiLCIkaW1hZ2VzRWxlbSIsImh0bWwiLCJrZXkiLCJpbWFnZSIsImlkX2ltYWdlX2F0dHIiLCJpZCIsImJhc2VfaW1hZ2VfdXJsIiwiZm9ybWF0IiwiZmFkZUluIiwicHJvZHVjdENvdmVySW1hZ2VFbGVtIiwicHJvZHVjdERlZmF1bHRJbWFnZVVybCIsImltZ0VsZW0iLCJjc3MiLCJlbGVtIiwiZGVmYXVsdEltYWdlVXJsIiwiZGVmYXVsdEltYWdlRWxlbSIsImltZyIsImFqYXgiLCJ0eXBlIiwic2VyaWFsaXplIiwiYmVmb3JlU2VuZCIsInN1Y2Nlc3MiLCJyZWZyZXNoVG90YWxDb21iaW5hdGlvbnMiLCJmaWx0ZXIiLCJhcHBlbmQiLCJkaXNwbGF5RmllbGRzTWFuYWdlciIsInJlZnJlc2giLCJpZHNfcHJvZHVjdF9hdHRyaWJ1dGUiLCJjb21wbGV0ZSIsInJlbW92ZUF0dHIiLCJzdXBwbGllckNvbWJpbmF0aW9ucyIsIndhcmVob3VzZUNvbWJpbmF0aW9ucyIsIm5lc3RlZENhdGVnb3JpZXNGb3JtIiwiaW5pdCIsImNhdGVnb3J5dHJlZSIsInJlbW92ZURlZmF1bHRJZk5lZWRlZCIsImNhdGVnb3J5SWQiLCJjYXRlZ29yeSIsImRlZmF1bHRjYXQiLCJ0cmlnZ2VyIiwiZGVmYXVsdENhdGVnb3J5IiwiY2hlY2siLCJuZXdDYXRlZ29yeSIsImZpbmRDbG9zZXN0Q2hlY2tlZENhdGVnb3J5IiwicGFyZW50Q2F0ZWdvcnkiLCJmaXJzdCIsInByb2R1Y3RDYXRlZ29yaWVzVGFncyIsImNoZWNrRGVmYXVsdENhdGVnb3J5IiwiYnVsa0Zvcm0iLCJkZWxldGVDb21iaW5hdGlvbnNCdG4iLCJhcHBseUNoYW5nZXNCdG4iLCJzeW5jZWRDb2xsZWN0aW9uIiwiZmluYWxQcmljZSIsImZpbmFsUHJpY2VJVCIsImZpbmFsUHJpY2VCYXNpY3MiLCJmaW5hbFByaWNlQmFzaWNzSVQiLCJlY290YXhUSSIsInRoYXQiLCJkZWxldGVDb21iaW5hdGlvbnMiLCJhcHBseUNoYW5nZXNPbkNvbWJpbmF0aW9ucyIsImhpZGVGb3JtIiwicmVzZXRGb3JtIiwidW5zZWxlY3RDb21iaW5hdGlvbnMiLCJzdWJtaXRVcGRhdGUiLCJzeW5jVG9QcmljaW5nVGFiIiwidW5pcWlkIiwiZ2V0QXR0cmlidXRlIiwibmV3VmFsdWUiLCJjdXJyZW50VGFyZ2V0IiwiY29sbGFwc2UiLCJnZXRTZWxlY3RlZENvbWJpbmF0aW9ucyIsImNvbWJpbmF0aW9ucyIsImZvckVhY2giLCJjb21iaW5hdGlvbklkIiwiY29tYmluYXRpb25JbmRleCIsIkNvbWJpbmF0aW9uIiwidmFsdWVzIiwiZ2V0Rm9ybVZhbHVlcyIsInVwZGF0ZUZvcm0iLCJzeW5jVmFsdWVzIiwiY29tYmluYXRpb25zSWRzIiwiZG9tSWQiLCJtb2RhbENvbmZpcm1hdGlvbiIsImNyZWF0ZSIsInRyYW5zbGF0ZV9qYXZhc2NyaXB0cyIsIm9uQ29udGludWUiLCJkZWxldGlvblVSTCIsInNob3dTdWNjZXNzTWVzc2FnZSIsIm1lc3NhZ2UiLCJyZW1vdmVGcm9tRE9NIiwiZXJyb3IiLCJzaG93RXJyb3JNZXNzYWdlIiwialF1ZXJ5IiwicGFyc2VKU09OIiwicmVzcG9uc2VUZXh0Iiwic3VibWl0IiwidG9BcnJheSIsIml0ZW0iLCJ0YWJsZVJvdyIsImF0dHJpYnV0ZUlkIiwiY29tYmluYXRpb25GaW5hbFByaWNlIiwiZ2V0Q29tYmluYXRpb25GaW5hbFByaWNlVGF4RXhjbHVkZWRCeUlkIiwiY29tYmluYXRpb25FY290YXhUSSIsImdldENvbWJpbmF0aW9uRWNvdGF4VGF4SW5jbHVkZWRCeUlkIiwiZ2V0UHJvZHVjdEVjb3RheFRheEluY2x1ZGVkIiwiTnVtYmVyIiwicHNfcm91bmQiLCJ0b0ZpeGVkIiwiaW5wdXRCdWxrUGF0dGVybiIsImlucHV0UGF0dGVybiIsImFwcElkIiwiZWxlbWVudCIsImNoZWNrZWQiLCJ2YWx1ZU9iamVjdCIsInZhbHVlSWQiLCJzdWJzdHIiLCIkZmllbGQiLCJjb252ZXJ0SW5wdXQiLCJidWxrSW5wdXQiLCJjb252ZXJ0ZWRJbnB1dCIsImluZGV4T2YiLCIkd2lkdGhXaXRoVGFicyIsIiRhcnJvdyIsIiR0YWJzIiwiJG5hdlRhYnMiLCIkcG9zaXRpb25zIiwiJG1vdmVUbyIsIiR0YWJXaWR0aCIsIiRuYXZXaWR0aCIsIiRkZWZhdWx0QXJyb3dXaWR0aCIsInBvc2l0aW9uIiwibGVmdCIsImxvYWRBdXRvY29tcGxldGUiLCJyZXNldCIsImF1dG9jb21wbGV0ZU9iamVjdCIsImF1dG9jb21wbGV0ZUZvcm1JZCIsImZvcm1JZCIsImF1dG9jb21wbGV0ZVNvdXJjZSIsInR5cGVhaGVhZCIsInBhcmVudHMiLCJCbG9vZGhvdW5kIiwiZGF0dW1Ub2tlbml6ZXIiLCJ0b2tlbml6ZXJzIiwid2hpdGVzcGFjZSIsInF1ZXJ5VG9rZW5pemVyIiwiaWRlbnRpZnkiLCJvYmoiLCJyZW1vdGUiLCJjYWNoZSIsIndpbGRjYXJkIiwidHJhbnNmb3JtIiwibGltaXQiLCJtaW5MZW5ndGgiLCJoaWdobGlnaHQiLCJoaW50IiwiZGlzcGxheSIsInNvdXJjZSIsInRlbXBsYXRlcyIsInN1Z2dlc3Rpb24iLCJuYW1lIiwiYmluZCIsImZvcm1JZEl0ZW0iLCJhdXRvY29tcGxldGVGb3JtTGltaXQiLCJwYXJzZUludCIsImlkX3Byb2R1Y3RfYXR0cmlidXRlIiwidHBsY29sbGVjdGlvbkh0bWwiLCJtb2R1bGUiLCJleHBvcnRzIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJpbnN0YW5jZSIsIkNvbnN0cnVjdG9yIiwiVHlwZUVycm9yIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmluZVByb3BlcnRpZXMiLCJwcm9wcyIsImkiLCJkZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwicHJvdG90eXBlIiwiJE9iamVjdCIsIml0IiwiZGVzYyIsImRlZmluZVByb3BlcnR5IiwiaXNPYmplY3QiLCJ0b0lPYmplY3QiLCJ0b0xlbmd0aCIsInRvQWJzb2x1dGVJbmRleCIsIklTX0lOQ0xVREVTIiwiJHRoaXMiLCJmcm9tSW5kZXgiLCJPIiwiY29mIiwiVEFHIiwiQVJHIiwiYXJndW1lbnRzIiwiVCIsIkIiLCJ0cnlHZXQiLCJPYmplY3QiLCJjYWxsZWUiLCJjYWxsIiwiY29yZSIsInZlcnNpb24iLCJfX2UiLCIkZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVEZXNjIiwiZiIsImFGdW5jdGlvbiIsImZuIiwiYSIsImIiLCJjIiwiYXBwbHkiLCJjcmVhdGVFbGVtZW50IiwiZ2xvYmFsIiwiY3R4IiwiaGFzIiwiJGV4cG9ydCIsIm93biIsIm91dCIsIklTX0ZPUkNFRCIsIkYiLCJJU19HTE9CQUwiLCJHIiwiSVNfU1RBVElDIiwiUyIsIklTX1BST1RPIiwiUCIsIklTX0JJTkQiLCJJU19XUkFQIiwiVyIsImV4cFByb3RvIiwiQyIsIkZ1bmN0aW9uIiwidmlydHVhbCIsIlIiLCJVIiwiZXhlYyIsIk1hdGgiLCJfX2ciLCJoYXNPd25Qcm9wZXJ0eSIsImRQIiwiZG9jdW1lbnRFbGVtZW50IiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJJdGVyYXRvcnMiLCJJVEVSQVRPUiIsIkFycmF5UHJvdG8iLCJBcnJheSIsImFuT2JqZWN0IiwiaXRlcmF0b3IiLCJlbnRyaWVzIiwicmV0Iiwic2V0VG9TdHJpbmdUYWciLCJJdGVyYXRvclByb3RvdHlwZSIsIk5BTUUiLCJuZXh0IiwiTElCUkFSWSIsInJlZGVmaW5lIiwiJGl0ZXJDcmVhdGUiLCJnZXRQcm90b3R5cGVPZiIsIkJVR0dZIiwia2V5cyIsIktFWVMiLCJWQUxVRVMiLCJyZXR1cm5UaGlzIiwiQmFzZSIsIkRFRkFVTFQiLCJJU19TRVQiLCJGT1JDRUQiLCJtZXRob2RzIiwiZ2V0TWV0aG9kIiwia2luZCIsInByb3RvIiwiREVGX1ZBTFVFUyIsIlZBTFVFU19CVUciLCIkbmF0aXZlIiwiJGRlZmF1bHQiLCIkZW50cmllcyIsIiRhbnlOYXRpdmUiLCJTQUZFX0NMT1NJTkciLCJyaXRlciIsImZyb20iLCJza2lwQ2xvc2luZyIsInNhZmUiLCJhcnIiLCJpdGVyIiwiZG9uZSIsImRQcyIsImVudW1CdWdLZXlzIiwiSUVfUFJPVE8iLCJFbXB0eSIsImNyZWF0ZURpY3QiLCJpZnJhbWVEb2N1bWVudCIsImlmcmFtZSIsInN0eWxlIiwic3JjIiwiY29udGVudFdpbmRvdyIsIm9wZW4iLCJ3cml0ZSIsImx0IiwiY2xvc2UiLCJQcm9wZXJ0aWVzIiwicmVzdWx0IiwiSUU4X0RPTV9ERUZJTkUiLCJ0b1ByaW1pdGl2ZSIsIkF0dHJpYnV0ZXMiLCJnZXRLZXlzIiwidG9PYmplY3QiLCJPYmplY3RQcm90byIsImNvbnN0cnVjdG9yIiwiYXJyYXlJbmRleE9mIiwibmFtZXMiLCIka2V5cyIsImJpdG1hcCIsImRlZiIsInRhZyIsInN0YXQiLCJzaGFyZWQiLCJ1aWQiLCJTSEFSRUQiLCJzdG9yZSIsIm1vZGUiLCJjb3B5cmlnaHQiLCJ0b0ludGVnZXIiLCJkZWZpbmVkIiwiVE9fU1RSSU5HIiwicG9zIiwicyIsIlN0cmluZyIsImwiLCJjaGFyQ29kZUF0IiwiY2hhckF0IiwibWluIiwiY2VpbCIsImZsb29yIiwiaXNOYU4iLCJJT2JqZWN0IiwidmFsdWVPZiIsInB4IiwicmFuZG9tIiwiY29uY2F0IiwiU3ltYm9sIiwiVVNFX1NZTUJPTCIsImNsYXNzb2YiLCJpc0FycmF5SXRlciIsImNyZWF0ZVByb3BlcnR5IiwiZ2V0SXRlckZuIiwiYXJyYXlMaWtlIiwic3RlcCIsImFMZW4iLCJtYXBmbiIsIm1hcHBpbmciLCJpdGVyRm4iLCIkYXQiLCJpdGVyYXRlZCIsIl90IiwiX2kiLCJwb2ludCIsIl9fX0NTU19MT0FERVJfRVhQT1JUX19fIiwiY3NzV2l0aE1hcHBpbmdUb1N0cmluZyIsImxpc3QiLCJjb250ZW50IiwibW9kdWxlcyIsIm1lZGlhUXVlcnkiLCJkZWR1cGUiLCJhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJsZW4iLCJhcnIyIiwiX2l0ZW0iLCJpc0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2FyciIsIl9uIiwiX2QiLCJfZSIsIl9zIiwiZXJyIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwibyIsIm1pbkxlbiIsIm4iLCJ0ZXN0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsImNzc01hcHBpbmciLCJidG9hIiwiYmFzZTY0IiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJKU09OIiwic3RyaW5naWZ5Iiwic291cmNlTWFwcGluZyIsInNvdXJjZVVSTHMiLCJzb3VyY2VzIiwic291cmNlUm9vdCIsIlJlZmxlY3RPd25LZXlzIiwiUmVmbGVjdCIsIlJlZmxlY3RBcHBseSIsInJlY2VpdmVyIiwiYXJncyIsIm93bktleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiTnVtYmVySXNOYU4iLCJfZXZlbnRzIiwiX2V2ZW50c0NvdW50IiwiX21heExpc3RlbmVycyIsImRlZmF1bHRNYXhMaXN0ZW5lcnMiLCJjaGVja0xpc3RlbmVyIiwibGlzdGVuZXIiLCJfZ2V0TWF4TGlzdGVuZXJzIiwiX2FkZExpc3RlbmVyIiwicHJlcGVuZCIsIm0iLCJldmVudHMiLCJleGlzdGluZyIsIndhcm5pbmciLCJuZXdMaXN0ZW5lciIsImVtaXQiLCJ1bnNoaWZ0Iiwid2FybmVkIiwidyIsIkVycm9yIiwiZW1pdHRlciIsImNvdW50IiwiY29uc29sZSIsIndhcm4iLCJvbmNlV3JhcHBlciIsImZpcmVkIiwicmVtb3ZlTGlzdGVuZXIiLCJ3cmFwRm4iLCJfb25jZVdyYXAiLCJzdGF0ZSIsIndyYXBwZWQiLCJfbGlzdGVuZXJzIiwidW53cmFwIiwiZXZsaXN0ZW5lciIsInVud3JhcExpc3RlbmVycyIsImFycmF5Q2xvbmUiLCJsaXN0ZW5lckNvdW50IiwiY29weSIsInNldCIsImFyZyIsIlJhbmdlRXJyb3IiLCJzZXRNYXhMaXN0ZW5lcnMiLCJnZXRNYXhMaXN0ZW5lcnMiLCJkb0Vycm9yIiwiZXIiLCJjb250ZXh0IiwiaGFuZGxlciIsImxpc3RlbmVycyIsImFkZExpc3RlbmVyIiwicHJlcGVuZExpc3RlbmVyIiwib25jZSIsInByZXBlbmRPbmNlTGlzdGVuZXIiLCJvcmlnaW5hbExpc3RlbmVyIiwic2hpZnQiLCJwb3AiLCJzcGxpY2VPbmUiLCJvZmYiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJyYXdMaXN0ZW5lcnMiLCJldmVudE5hbWVzIiwicm9vdCIsImEwIiwiXyIsImlzTXNpZSIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsIm1hdGNoIiwiaXNCbGFua1N0cmluZyIsInN0ciIsImVzY2FwZVJlZ0V4Q2hhcnMiLCJpc1N0cmluZyIsImlzTnVtYmVyIiwiaXNGdW5jdGlvbiIsImlzUGxhaW5PYmplY3QiLCJpc1VuZGVmaW5lZCIsImlzRWxlbWVudCIsIm5vZGVUeXBlIiwiaXNKUXVlcnkiLCJ0b1N0ciIsInByb3h5IiwiY29sbGVjdGlvbiIsImNiIiwiZ3JlcCIsImV2ZXJ5Iiwic29tZSIsIm1peGluIiwiZXh0ZW5kIiwiaWRlbnRpdHkiLCJ4IiwiY2xvbmUiLCJnZXRJZEdlbmVyYXRvciIsInRlbXBsYXRpZnkiLCJkZWZlciIsInNldFRpbWVvdXQiLCJkZWJvdW5jZSIsImZ1bmMiLCJ3YWl0IiwiaW1tZWRpYXRlIiwidGltZW91dCIsImxhdGVyIiwiY2FsbE5vdyIsImNsZWFyVGltZW91dCIsInRocm90dGxlIiwicHJldmlvdXMiLCJEYXRlIiwibm93IiwicmVtYWluaW5nIiwibm9vcCIsIlZFUlNJT04iLCJub253b3JkIiwiZ2V0T2JqVG9rZW5pemVyIiwidG9rZW5pemVyIiwidG9rZW5zIiwiayIsIkxydUNhY2hlIiwibWF4U2l6ZSIsIkxpc3QiLCJoZWFkIiwidGFpbCIsIk5vZGUiLCJwcmV2Iiwibm9kZSIsInRhaWxJdGVtIiwic2l6ZSIsImhhc2giLCJtb3ZlVG9Gcm9udCIsImFkZCIsIlBlcnNpc3RlbnRTdG9yYWdlIiwiTE9DQUxfU1RPUkFHRSIsImxvY2FsU3RvcmFnZSIsInNldEl0ZW0iLCJyZW1vdmVJdGVtIiwibmFtZXNwYWNlIiwib3ZlcnJpZGUiLCJwcmVmaXgiLCJ0dGxLZXkiLCJrZXlNYXRjaGVyIiwiUmVnRXhwIiwibHMiLCJfbm9vcCIsIl9wcmVmaXgiLCJfdHRsS2V5IiwiY2xlYXIiLCJpc0V4cGlyZWQiLCJfc2FmZVNldCIsImRlY29kZSIsImdldEl0ZW0iLCJ0dGwiLCJlbmNvZGUiLCJnYXRoZXJNYXRjaGluZ0tleXMiLCJnZXRUaW1lIiwiVHJhbnNwb3J0IiwicGVuZGluZ1JlcXVlc3RzQ291bnQiLCJwZW5kaW5nUmVxdWVzdHMiLCJtYXhQZW5kaW5nUmVxdWVzdHMiLCJzaGFyZWRDYWNoZSIsImNhbmNlbGxlZCIsImxhc3RSZXEiLCJfc2VuZCIsInRyYW5zcG9ydCIsIl9nZXQiLCJsaW1pdGVyIiwiX2NhY2hlIiwic2V0TWF4UGVuZGluZ1JlcXVlc3RzIiwibnVtIiwicmVzZXRDYWNoZSIsIl9maW5nZXJwcmludCIsInBhcmFtIiwiZmluZ2VycHJpbnQiLCJqcVhociIsImZhaWwiLCJhbHdheXMiLCJvbkRlY2tSZXF1ZXN0QXJncyIsImNhbmNlbCIsIlNlYXJjaEluZGV4IiwiYm9vdHN0cmFwIiwiZGF0dW1zIiwidHJpZSIsImRhdHVtIiwibm9ybWFsaXplVG9rZW5zIiwidG9rZW4iLCJjaGFycyIsImNoIiwibmV3Tm9kZSIsImlkcyIsInNlYXJjaCIsInF1ZXJ5IiwibWF0Y2hlcyIsImFycmF5QSIsImFycmF5QiIsImFpIiwiYmkiLCJpbnRlcnNlY3Rpb24iLCJzb3J0IiwibGVuQXJyYXlBIiwibGVuQXJyYXlCIiwiZ2V0SW50ZXJzZWN0aW9uIiwiYXJyYXkiLCJzZWVuIiwidW5pcXVlcyIsInVuaXF1ZSIsImFsbCIsInRvTG93ZXJDYXNlIiwiUHJlZmV0Y2giLCJwcmVwYXJlIiwidGh1bWJwcmludCIsInN0b3JhZ2UiLCJjYWNoZUtleSIsInByb3RvY29sIiwiX3NldHRpbmdzIiwiZGF0YVR5cGUiLCJsb2NhdGlvbiIsImZyb21DYWNoZSIsInN0b3JlZCIsImZyb21OZXR3b3JrIiwic2V0dGluZ3MiLCJSZW1vdGUiLCJjYW5jZWxMYXN0UmVxdWVzdCIsIm9QYXJzZXIiLCJkZWZhdWx0cyIsInNvcnRlciIsImluaXRpYWxpemUiLCJzdWZmaWNpZW50IiwibG9jYWwiLCJwcmVmZXRjaCIsImNhbGxiYWNrVG9EZWZlcnJlZCIsInBhcnNlUHJlZmV0Y2giLCJyYXRlTGltaXRCeSIsInJhdGVMaW1pdFdhaXQiLCJwcmVwYXJlQnlSZXBsYWNlIiwicHJlcGFyZUJ5V2lsZGNhcmQiLCJpZGVuaXR5UHJlcGFyZSIsInRvUmVtb3RlUHJlcGFyZSIsIm1ldGhvZCIsInRvTGltaXRlciIsInBhcnNlUmVtb3RlIiwiZGVmZXJyZWQiLCJEZWZlcnJlZCIsInJlc29sdmUiLCJyZWplY3QiLCJvbGQiLCJub0NvbmZsaWN0IiwiX190dEFkYXB0ZXIiLCJzeW5jIiwiYXN5bmMiLCJfbG9hZFByZWZldGNoIiwic2VyaWFsaXplZCIsInByb21pc2UiLCJfaW5pdGlhbGl6ZSIsImluaXRQcm9taXNlIiwiZm9yY2UiLCJub25EdXBsaWNhdGVzIiwiciIsImNsZWFyUHJlZmV0Y2hDYWNoZSIsImNsZWFyUmVtb3RlQ2FjaGUiLCJ0dEFkYXB0ZXIiLCJXV1ciLCJkZWZhdWx0Q2xhc3NOYW1lcyIsIndyYXBwZXIiLCJtZW51IiwiZGF0YXNldCIsInNlbGVjdGFibGUiLCJlbXB0eSIsImN1cnNvciIsInd3dyIsImNsYXNzZXMiLCJ0b3AiLCJib3JkZXJDb2xvciIsImJveFNoYWRvdyIsIm9wYWNpdHkiLCJ2ZXJ0aWNhbEFsaWduIiwiYmFja2dyb3VuZENvbG9yIiwiaW5wdXRXaXRoTm9IaW50IiwiekluZGV4IiwibHRyIiwicmlnaHQiLCJydGwiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJidWlsZFNlbGVjdG9ycyIsInYiLCJFdmVudEJ1cyIsImRlcHJlY2F0aW9uTWFwIiwiJGVsIiwicmVuZGVyIiwiY3Vyc29yY2hhbmdlIiwic2VsZWN0IiwiYXV0b2NvbXBsZXRlIiwiX3RyaWdnZXIiLCIkZSIsIkV2ZW50IiwiaXNEZWZhdWx0UHJldmVudGVkIiwiZGVwcmVjYXRlZFR5cGUiLCJzcGxpdHRlciIsIm5leHRUaWNrIiwic2V0SW1tZWRpYXRlIiwib25TeW5jIiwidHlwZXMiLCJvbkFzeW5jIiwiX2NhbGxiYWNrcyIsImNhbGxiYWNrcyIsInN5bmNGbHVzaCIsImFzeW5jRmx1c2giLCJnZXRGbHVzaCIsImJpbmRDb250ZXh0IiwiZG9jIiwicGF0dGVybiIsInRhZ05hbWUiLCJjbGFzc05hbWUiLCJ3b3Jkc09ubHkiLCJjYXNlU2Vuc2l0aXZlIiwicmVnZXgiLCJwYXR0ZXJucyIsInJlZ2V4U3RyIiwiZXNjYXBlZFBhdHRlcm5zIiwiZ2V0UmVnZXgiLCJ0cmF2ZXJzZSIsImhpZ2h0bGlnaHRUZXh0Tm9kZSIsImNoaWxkTm9kZSIsImNoaWxkTm9kZXMiLCJ0ZXh0Tm9kZSIsInBhdHRlcm5Ob2RlIiwid3JhcHBlck5vZGUiLCJzcGxpdFRleHQiLCJhcHBlbmRDaGlsZCIsImNsb25lTm9kZSIsInBhcmVudE5vZGUiLCJyZXBsYWNlQ2hpbGQiLCJJbnB1dCIsInNwZWNpYWxLZXlDb2RlTWFwIiwiJGlucHV0IiwiJGhpbnQiLCJxdWVyeVdoZW5Gb2N1c2VkIiwiaGFzRm9jdXMiLCIkb3ZlcmZsb3dIZWxwZXIiLCJ2aXNpYmlsaXR5Iiwid2hpdGVTcGFjZSIsImZvbnRGYW1pbHkiLCJmb250U2l6ZSIsImZvbnRTdHlsZSIsImZvbnRWYXJpYW50IiwiZm9udFdlaWdodCIsIndvcmRTcGFjaW5nIiwibGV0dGVyU3BhY2luZyIsInRleHRJbmRlbnQiLCJ0ZXh0UmVuZGVyaW5nIiwidGV4dFRyYW5zZm9ybSIsImluc2VydEFmdGVyIiwiX2NoZWNrTGFuZ3VhZ2VEaXJlY3Rpb24iLCJzZXRIaW50IiwiZ2V0SGludCIsImNsZWFySGludCIsImNsZWFySGludElmSW52YWxpZCIsIjkiLCIyNyIsIjM3IiwiMzkiLCIxMyIsIjM4IiwiNDAiLCJub3JtYWxpemVRdWVyeSIsIl9vbkJsdXIiLCJyZXNldElucHV0VmFsdWUiLCJfb25Gb2N1cyIsIl9vbktleWRvd24iLCJrZXlOYW1lIiwid2hpY2giLCJrZXlDb2RlIiwiX21hbmFnZVByZXZlbnREZWZhdWx0IiwiX3Nob3VsZFRyaWdnZXIiLCJfb25JbnB1dCIsIl9zZXRRdWVyeSIsImdldElucHV0VmFsdWUiLCJ3aXRoTW9kaWZpZXIiLCJkaXIiLCJzaWxlbnQiLCJhcmVFcXVpdmFsZW50IiwiaGFzRGlmZmVyZW50V2hpdGVzcGFjZSIsIm9uQmx1ciIsIm9uRm9jdXMiLCJvbktleWRvd24iLCJvbklucHV0IiwiZm9jdXMiLCJibHVyIiwiZ2V0TGFuZ0RpciIsImdldFF1ZXJ5Iiwic2V0UXVlcnkiLCJzZXRJbnB1dFZhbHVlIiwiaGFzUXVlcnlDaGFuZ2VkU2luY2VMYXN0Rm9jdXMiLCJ2YWxJc1ByZWZpeE9mSGludCIsImhhc092ZXJmbG93IiwiY29uc3RyYWludCIsImlzQ3Vyc29yQXRFbmQiLCJ2YWx1ZUxlbmd0aCIsInNlbGVjdGlvblN0YXJ0IiwicmFuZ2UiLCJzZWxlY3Rpb24iLCJjcmVhdGVSYW5nZSIsIm1vdmVTdGFydCIsImRlc3Ryb3kiLCJhbHRLZXkiLCJjdHJsS2V5IiwibWV0YUtleSIsInNoaWZ0S2V5IiwiRGF0YXNldCIsIm5hbWVHZW5lcmF0b3IiLCJub3RGb3VuZCIsImRpc3BsYXlGbiIsImdldERpc3BsYXlGbiIsImRpc3BsYXlLZXkiLCJwZW5kaW5nIiwiaGVhZGVyIiwiZm9vdGVyIiwic3VnZ2VzdGlvblRlbXBsYXRlIiwiZ2V0VGVtcGxhdGVzIiwiX3Jlc2V0TGFzdFN1Z2dlc3Rpb24iLCJleHRyYWN0RGF0YSIsIl9vdmVyd3JpdGUiLCJzdWdnZXN0aW9ucyIsIl9yZW5kZXJTdWdnZXN0aW9ucyIsIl9yZW5kZXJQZW5kaW5nIiwiX3JlbmRlck5vdEZvdW5kIiwiX2VtcHR5IiwiX2FwcGVuZCIsIiRsYXN0U3VnZ2VzdGlvbiIsIl9hcHBlbmRTdWdnZXN0aW9ucyIsIiRmcmFnbWVudCIsIl9nZXRTdWdnZXN0aW9uc0ZyYWdtZW50IiwiY2hpbGRyZW4iLCJsYXN0IiwiX2dldEhlYWRlciIsIl9nZXRGb290ZXIiLCJhZnRlciIsImZyYWdtZW50IiwiY3JlYXRlRG9jdW1lbnRGcmFnbWVudCIsIl9pbmplY3RRdWVyeSIsIl9xdWVyeSIsInVwZGF0ZSIsImNhbmNlbGVkIiwic3luY0NhbGxlZCIsInJlbmRlcmVkIiwiaXNFbXB0eSIsIk1lbnUiLCIkbm9kZSIsImRhdGFzZXRzIiwib0RhdGFzZXQiLCJhcHBlbmRUbyIsIl9vblNlbGVjdGFibGVDbGljayIsIl9vblJlbmRlcmVkIiwiX2FsbERhdGFzZXRzRW1wdHkiLCJfb25DbGVhcmVkIiwiX3Byb3BhZ2F0ZSIsIl9nZXRTZWxlY3RhYmxlcyIsIl9yZW1vdmVDdXJzb3IiLCIkc2VsZWN0YWJsZSIsImdldEFjdGl2ZVNlbGVjdGFibGUiLCJfZW5zdXJlVmlzaWJsZSIsImVsVG9wIiwiZWxCb3R0b20iLCJub2RlU2Nyb2xsVG9wIiwibm9kZUhlaWdodCIsIm91dGVySGVpZ2h0Iiwic2Nyb2xsVG9wIiwiaGVpZ2h0Iiwib25TZWxlY3RhYmxlQ2xpY2siLCJpc09wZW4iLCJzZXRMYW5ndWFnZURpcmVjdGlvbiIsInNlbGVjdGFibGVSZWxhdGl2ZVRvQ3Vyc29yIiwiZGVsdGEiLCIkc2VsZWN0YWJsZXMiLCIkb2xkQ3Vyc29yIiwibmV3SW5kZXgiLCJlcSIsInNldEN1cnNvciIsImdldFNlbGVjdGFibGVEYXRhIiwiZ2V0VG9wU2VsZWN0YWJsZSIsImlzVmFsaWRVcGRhdGUiLCJEZWZhdWx0TWVudSIsIl9zaG93IiwiX2hpZGUiLCJUeXBlYWhlYWQiLCJvbkZvY3VzZWQiLCJvbkJsdXJyZWQiLCJvbkVudGVyS2V5ZWQiLCJvblRhYktleWVkIiwib25Fc2NLZXllZCIsIm9uVXBLZXllZCIsIm9uRG93bktleWVkIiwib25MZWZ0S2V5ZWQiLCJvblJpZ2h0S2V5ZWQiLCJvblF1ZXJ5Q2hhbmdlZCIsIm9uV2hpdGVzcGFjZUNoYW5nZWQiLCJldmVudEJ1cyIsImVuYWJsZWQiLCJhY3RpdmUiLCJhY3RpdmF0ZSIsIl9oYWNrcyIsIl9vblNlbGVjdGFibGVDbGlja2VkIiwiX29uQXN5bmNSZXF1ZXN0ZWQiLCJfb25Bc3luY0NhbmNlbGVkIiwiX29uQXN5bmNSZWNlaXZlZCIsIl9vbkRhdGFzZXRSZW5kZXJlZCIsIl9vbkRhdGFzZXRDbGVhcmVkIiwiX29uTGFuZ0RpckNoYW5nZWQiLCIkbWVudSIsImlzQWN0aXZlIiwiaGFzQWN0aXZlIiwiYWN0aXZlRWxlbWVudCIsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsIl91cGRhdGVIaW50IiwiX29uRm9jdXNlZCIsIl9taW5MZW5ndGhNZXQiLCJfb25CbHVycmVkIiwiX29uRW50ZXJLZXllZCIsIl9vblRhYktleWVkIiwiX29uRXNjS2V5ZWQiLCJfb25VcEtleWVkIiwibW92ZUN1cnNvciIsIl9vbkRvd25LZXllZCIsIl9vbkxlZnRLZXllZCIsIl9vblJpZ2h0S2V5ZWQiLCJfb25RdWVyeUNoYW5nZWQiLCJfb25XaGl0ZXNwYWNlQ2hhbmdlZCIsIl9vcGVuSWZBY3RpdmUiLCJlc2NhcGVkUXVlcnkiLCJpc0VuYWJsZWQiLCJlbmFibGUiLCJkaXNhYmxlIiwiZGVhY3RpdmF0ZSIsInNldFZhbCIsImdldFZhbCIsIiRjYW5kaWRhdGUiLCJwYXlsb2FkIiwidHRFYWNoIiwiJGVscyIsImJ1aWxkSGludEZyb21JbnB1dCIsInJlbW92ZURhdGEiLCJiYWNrZ3JvdW5kQXR0YWNobWVudCIsImJhY2tncm91bmRDbGlwIiwiYmFja2dyb3VuZE9yaWdpbiIsImJhY2tncm91bmRQb3NpdGlvbiIsImJhY2tncm91bmRSZXBlYXQiLCJiYWNrZ3JvdW5kU2l6ZSIsInNwZWxsY2hlY2siLCJ0YWJpbmRleCIsInByZXBJbnB1dCIsIiRlbE9yTnVsbCIsImNsYXNzTmFtZXMiLCJhdHRhY2giLCIkd3JhcHBlciIsImRlZmF1bHRIaW50IiwiZGVmYXVsdE1lbnUiLCJNZW51Q29uc3RydWN0b3IiLCJkIiwid3JhcCIsInQiLCJuZXdWYWwiLCJkZXRhY2giLCJyZXZlcnQiLCJfdm0iLCJfaCIsIiRjcmVhdGVFbGVtZW50IiwiX2MiLCJfc2VsZiIsInN0YXRpY0NsYXNzIiwiX3YiLCJkaXNwbGF5ZWRUaXRsZSIsImRpc3BsYXllZERlc2NyaXB0aW9uIiwiX3dpdGhTdHJpcHBlZCIsImNvbXBvbmVudCIsIm9wdGlvbnMiLCJfX2ZpbGUiLCJub3JtYWxpemVDb21wb25lbnQiLCJzY3JpcHRFeHBvcnRzIiwic3RhdGljUmVuZGVyRm5zIiwiZnVuY3Rpb25hbFRlbXBsYXRlIiwiaW5qZWN0U3R5bGVzIiwic2NvcGVJZCIsIm1vZHVsZUlkZW50aWZpZXIiLCJzaGFkb3dNb2RlIiwiaG9vayIsIl9jb21waWxlZCIsImZ1bmN0aW9uYWwiLCJfc2NvcGVJZCIsIiR2bm9kZSIsInNzckNvbnRleHQiLCJfX1ZVRV9TU1JfQ09OVEVYVF9fIiwiX3JlZ2lzdGVyZWRDb21wb25lbnRzIiwiX3NzclJlZ2lzdGVyIiwiJHJvb3QiLCIkb3B0aW9ucyIsInNoYWRvd1Jvb3QiLCJfaW5qZWN0U3R5bGVzIiwib3JpZ2luYWxSZW5kZXIiLCJoIiwiYmVmb3JlQ3JlYXRlIiwibG9jYWxzIiwibGlzdFRvU3R5bGVzIiwicGFyZW50SWQiLCJzdHlsZXMiLCJuZXdTdHlsZXMiLCJwYXJ0IiwibWVkaWEiLCJzb3VyY2VNYXAiLCJwYXJ0cyIsImhhc0RvY3VtZW50IiwiREVCVUciLCJzdHlsZXNJbkRvbSIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwic2luZ2xldG9uRWxlbWVudCIsInNpbmdsZXRvbkNvdW50ZXIiLCJpc1Byb2R1Y3Rpb24iLCJzc3JJZEtleSIsImlzT2xkSUUiLCJhZGRTdHlsZXNDbGllbnQiLCJfaXNQcm9kdWN0aW9uIiwiX29wdGlvbnMiLCJhZGRTdHlsZXNUb0RvbSIsIm5ld0xpc3QiLCJtYXlSZW1vdmUiLCJkb21TdHlsZSIsInJlZnMiLCJqIiwiYWRkU3R5bGUiLCJjcmVhdGVTdHlsZUVsZW1lbnQiLCJzdHlsZUVsZW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwicmVtb3ZlQ2hpbGQiLCJzdHlsZUluZGV4IiwiYXBwbHlUb1NpbmdsZXRvblRhZyIsImFwcGx5VG9UYWciLCJuZXdPYmoiLCJ0ZXh0U3RvcmUiLCJyZXBsYWNlVGV4dCIsInJlcGxhY2VtZW50IiwiQm9vbGVhbiIsInN0eWxlU2hlZXQiLCJjc3NUZXh0IiwiY3NzTm9kZSIsImNyZWF0ZVRleHROb2RlIiwiaW5zZXJ0QmVmb3JlIiwic2V0QXR0cmlidXRlIiwic3NySWQiLCJmaXJzdENoaWxkIiwiZnJlZXplIiwicGFyc2VGbG9hdCIsImlzRmluaXRlIiwidSIsImNhdGNoIiwicCIsInNwbGljZSIsInkiLCJnIiwidG9VcHBlckNhc2UiLCJfbGVuZ3RoIiwiQSIsIkUiLCJOIiwiRCIsIkwiLCJNIiwiSSIsIm9wdGlvbk1lcmdlU3RyYXRlZ2llcyIsInByb2R1Y3Rpb25UaXAiLCJkZXZ0b29scyIsInBlcmZvcm1hbmNlIiwiZXJyb3JIYW5kbGVyIiwid2FybkhhbmRsZXIiLCJpZ25vcmVkRWxlbWVudHMiLCJrZXlDb2RlcyIsImlzUmVzZXJ2ZWRUYWciLCJpc1Jlc2VydmVkQXR0ciIsImlzVW5rbm93bkVsZW1lbnQiLCJnZXRUYWdOYW1lc3BhY2UiLCJwYXJzZVBsYXRmb3JtVGFnTmFtZSIsIm11c3RVc2VQcm9wIiwiX2xpZmVjeWNsZUhvb2tzIiwiSCIsInoiLCJWIiwiV1hFbnZpcm9ubWVudCIsInBsYXRmb3JtIiwiSyIsIkoiLCJxIiwiWiIsIlgiLCJZIiwid2F0Y2giLCJRIiwiZWUiLCJhZGRFdmVudExpc3RlbmVyIiwidGUiLCJwcm9jZXNzIiwiZW52IiwiVlVFX0VOViIsIm5lIiwiX19WVUVfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyIsInJlIiwiaWUiLCJvZSIsIlNldCIsImFlIiwic2UiLCJjZSIsInN1YnMiLCJhZGRTdWIiLCJyZW1vdmVTdWIiLCJkZXBlbmQiLCJhZGREZXAiLCJub3RpZnkiLCJ1ZSIsImxlIiwiZmUiLCJwZSIsImVsbSIsIm5zIiwiZm5Db250ZXh0IiwiZm5PcHRpb25zIiwiZm5TY29wZUlkIiwiY29tcG9uZW50T3B0aW9ucyIsImNvbXBvbmVudEluc3RhbmNlIiwicmF3IiwiaXNTdGF0aWMiLCJpc1Jvb3RJbnNlcnQiLCJpc0NvbW1lbnQiLCJpc0Nsb25lZCIsImlzT25jZSIsImFzeW5jRmFjdG9yeSIsImFzeW5jTWV0YSIsImlzQXN5bmNQbGFjZWhvbGRlciIsImRlIiwiY2hpbGQiLCJ2ZSIsImhlIiwibWUiLCJ5ZSIsImdlIiwiX19vYl9fIiwib2JzZXJ2ZUFycmF5IiwiZGVwIiwiYmUiLCJ3ZSIsInZtQ291bnQiLCJfX3Byb3RvX18iLCJ3YWxrIiwiQ2UiLCJpc0V4dGVuc2libGUiLCJfaXNWdWUiLCJ4ZSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtlIiwiQWUiLCJPZSIsIlNlIiwiVGUiLCJFZSIsIk5lIiwiaW5qZWN0IiwiY29tcHV0ZWQiLCJwcm92aWRlIiwiamUiLCJEZSIsImRpcmVjdGl2ZXMiLCJfYmFzZSIsImV4dGVuZHMiLCJtaXhpbnMiLCJMZSIsIk1lIiwiUGUiLCJwcm9wc0RhdGEiLCJfcHJvcHMiLCJJZSIsIkZlIiwiUmUiLCIkcGFyZW50IiwiZXJyb3JDYXB0dXJlZCIsIkJlIiwiSGUiLCJfaGFuZGxlZCIsIlVlIiwiemUiLCJWZSIsIktlIiwiSmUiLCJxZSIsIlByb21pc2UiLCJXZSIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJaZSIsIkdlIiwiWGUiLCJvYnNlcnZlIiwiY2hhcmFjdGVyRGF0YSIsIlllIiwiUWUiLCJldCIsImlzRnJvemVuIiwidHQiLCJjYXB0dXJlIiwicGFzc2l2ZSIsIm50IiwiZm5zIiwicnQiLCJwYXJhbXMiLCJtZXJnZWQiLCJvdCIsImF0Iiwic3QiLCJfaXNWTGlzdCIsImN0IiwiX3Byb3ZpZGVkIiwidXQiLCJzbG90IiwiZnQiLCIkc3RhYmxlIiwiJGtleSIsIl9ub3JtYWxpemVkIiwiJGhhc05vcm1hbCIsInB0IiwiZHQiLCJ2dCIsImh0IiwiJHNjb3BlZFNsb3RzIiwiJHNsb3RzIiwibXQiLCJ5dCIsImd0IiwiZG9tUHJvcHMiLCJidCIsIl9zdGF0aWNUcmVlcyIsInd0IiwiX3JlbmRlclByb3h5IiwiJHQiLCJDdCIsInh0Iiwia3QiLCJBdCIsIk90IiwiU3QiLCJfbyIsIl9sIiwiX3EiLCJfbSIsIl9mIiwiX2siLCJfYiIsIl91IiwiX2ciLCJfcCIsIlR0IiwiX29yaWdpbmFsIiwiaW5qZWN0aW9ucyIsInNsb3RzIiwic2NvcGVkU2xvdHMiLCJQdCIsIkV0IiwiTnQiLCJqdCIsIl9pc0Rlc3Ryb3llZCIsImtlZXBBbGl2ZSIsInByZXBhdGNoIiwiX2lzQ29tcG9uZW50IiwiX3BhcmVudFZub2RlIiwiaW5saW5lVGVtcGxhdGUiLCJDdG9yIiwiV3QiLCIkbW91bnQiLCJfcmVuZGVyQ2hpbGRyZW4iLCJfdm5vZGUiLCIkYXR0cnMiLCIkbGlzdGVuZXJzIiwiX3Byb3BLZXlzIiwiX3BhcmVudExpc3RlbmVycyIsInF0IiwiJGZvcmNlVXBkYXRlIiwiaW5zZXJ0IiwiX2lzTW91bnRlZCIsIll0IiwiX2luYWN0aXZlIiwiZW4iLCJYdCIsIl9kaXJlY3RJbmFjdGl2ZSIsIkd0IiwiJGNoaWxkcmVuIiwiJGRlc3Ryb3kiLCJEdCIsIkx0IiwiY2lkIiwiZXJyb3JDb21wIiwicmVzb2x2ZWQiLCJIdCIsIm93bmVycyIsImxvYWRpbmciLCJsb2FkaW5nQ29tcCIsIiRvbiIsIkJ0IiwiZGVsYXkiLCIkbiIsIm1vZGVsIiwiY2FsbGJhY2siLCJuYXRpdmVPbiIsImFic3RyYWN0IiwiX21lcmdlZCIsIk10IiwicHJlIiwiY2xhc3MiLCJSdCIsInRvU3RyaW5nVGFnIiwiVXQiLCJ6dCIsIlZ0IiwiS3QiLCIkb2ZmIiwiSnQiLCJadCIsIl9oYXNIb29rRXZlbnQiLCIkZW1pdCIsIlF0IiwidG4iLCJubiIsInJuIiwiYW4iLCJzbiIsImNuIiwiY3JlYXRlRXZlbnQiLCJ0aW1lU3RhbXAiLCJ1biIsInJ1biIsIl93YXRjaGVyIiwibG4iLCJfd2F0Y2hlcnMiLCJkZWVwIiwidXNlciIsImxhenkiLCJkaXJ0eSIsImRlcHMiLCJuZXdEZXBzIiwiZGVwSWRzIiwibmV3RGVwSWRzIiwiZXhwcmVzc2lvbiIsImdldHRlciIsImNsZWFudXBEZXBzIiwiZXZhbHVhdGUiLCJ0ZWFyZG93biIsIl9pc0JlaW5nRGVzdHJveWVkIiwicG4iLCJkbiIsImhuIiwibW4iLCJ5biIsImduIiwiX2NvbXB1dGVkV2F0Y2hlcnMiLCIkd2F0Y2giLCJibiIsInN1cGVyIiwic3VwZXJPcHRpb25zIiwic2VhbGVkT3B0aW9ucyIsImV4dGVuZE9wdGlvbnMiLCJ3biIsIl9pbml0IiwieG4iLCJrbiIsIkFuIiwiT24iLCJfdWlkIiwiX2NvbXBvbmVudFRhZyIsIiRyZWZzIiwiX2RhdGEiLCJ2biIsIiRzZXQiLCIkZGVsZXRlIiwiJG9uY2UiLCJfdXBkYXRlIiwiX19wYXRjaF9fIiwiX192dWVfXyIsIiRuZXh0VGljayIsIl9yZW5kZXIiLCJTbiIsIlRuIiwiS2VlcEFsaXZlIiwiaW5jbHVkZSIsImV4Y2x1ZGUiLCJjcmVhdGVkIiwiZGVzdHJveWVkIiwibW91bnRlZCIsInV0aWwiLCJtZXJnZU9wdGlvbnMiLCJkZWZpbmVSZWFjdGl2ZSIsImRlbGV0ZSIsIm9ic2VydmFibGUiLCJ1c2UiLCJfaW5zdGFsbGVkUGx1Z2lucyIsImluc3RhbGwiLCJfQ3RvciIsIkNuIiwiRW4iLCJObiIsImpuIiwiRG4iLCJMbiIsIkluIiwiRm4iLCJQbiIsIlJuIiwiSG4iLCJVbiIsInpuIiwiVm4iLCJLbiIsInN2ZyIsIm1hdGgiLCJKbiIsInFuIiwiV24iLCJabiIsIkduIiwiWG4iLCJZbiIsIlFuIiwibXVsdGlwbGUiLCJjcmVhdGVFbGVtZW50TlMiLCJjcmVhdGVDb21tZW50IiwibmV4dFNpYmxpbmciLCJzZXRUZXh0Q29udGVudCIsInRleHRDb250ZW50Iiwic2V0U3R5bGVTY29wZSIsInRyIiwicmVmIiwicmVmSW5Gb3IiLCJuciIsInJyIiwiaXIiLCJvciIsImFyIiwic3IiLCJ1ciIsIm9sZFZhbHVlIiwib2xkQXJnIiwiZnIiLCJjb21wb25lbnRVcGRhdGVkIiwiaW5zZXJ0ZWQiLCJjciIsIm1vZGlmaWVycyIsImxyIiwicmF3TmFtZSIsInByIiwiZHIiLCJpbmhlcml0QXR0cnMiLCJ2ciIsInJlbW92ZUF0dHJpYnV0ZU5TIiwicmVtb3ZlQXR0cmlidXRlIiwiaHIiLCJNbiIsInNldEF0dHJpYnV0ZU5TIiwiX19pZXBoIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm1yIiwieXIiLCJCbiIsIl90cmFuc2l0aW9uQ2xhc3NlcyIsIl9wcmV2Q2xhc3MiLCJnciIsIl9yIiwiYnIiLCIkciIsIndyIiwiQ3IiLCJ4ciIsImtyIiwiQXIiLCJ0cmltIiwiT3IiLCJTciIsIlRyIiwiRXIiLCJSciIsImR5bmFtaWMiLCJwbGFpbiIsIk5yIiwiZHluYW1pY0F0dHJzIiwianIiLCJhdHRyc01hcCIsImF0dHJzTGlzdCIsIkRyIiwiaXNEeW5hbWljQXJnIiwiTHIiLCJNciIsIm1pZGRsZSIsIm5hdGl2ZSIsIm5hdGl2ZUV2ZW50cyIsIklyIiwiRnIiLCJQciIsInN0YXJ0IiwiZW5kIiwiSHIiLCJudW1iZXIiLCJCciIsImxhc3RJbmRleE9mIiwiZXhwIiwienIiLCJWciIsIlVyIiwiSnIiLCJLciIsInFyIiwiR3IiLCJRciIsIlhyIiwiWXIiLCJfd3JhcHBlciIsIm93bmVyRG9jdW1lbnQiLCJlaSIsInRpIiwibmkiLCJyaSIsIl92YWx1ZSIsImlpIiwiaW5uZXJIVE1MIiwiY29tcG9zaW5nIiwiX3ZNb2RpZmllcnMiLCJvaSIsInNpIiwiY2kiLCJzdGF0aWNTdHlsZSIsInVpIiwibGkiLCJmaSIsInBpIiwic2V0UHJvcGVydHkiLCJ2aSIsImRpIiwiaGkiLCJub3JtYWxpemVkU3R5bGUiLCJtaSIsInlpIiwiZ2kiLCJjbGFzc0xpc3QiLCIkaSIsImVudGVyQ2xhc3MiLCJlbnRlclRvQ2xhc3MiLCJlbnRlckFjdGl2ZUNsYXNzIiwibGVhdmVDbGFzcyIsImxlYXZlVG9DbGFzcyIsImxlYXZlQWN0aXZlQ2xhc3MiLCJ3aSIsIkNpIiwieGkiLCJraSIsIkFpIiwiT2kiLCJTaSIsIm9udHJhbnNpdGlvbmVuZCIsIm9ud2Via2l0dHJhbnNpdGlvbmVuZCIsIm9uYW5pbWF0aW9uZW5kIiwib253ZWJraXRhbmltYXRpb25lbmQiLCJUaSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIkVpIiwiTmkiLCJqaSIsIkRpIiwiTWkiLCJwcm9wQ291bnQiLCJMaSIsImdldENvbXB1dGVkU3R5bGUiLCJJaSIsImhhc1RyYW5zZm9ybSIsIkZpIiwiUGkiLCJfbGVhdmVDYiIsInRyYW5zaXRpb24iLCJfZW50ZXJDYiIsImFwcGVhckNsYXNzIiwiYXBwZWFyVG9DbGFzcyIsImFwcGVhckFjdGl2ZUNsYXNzIiwiYmVmb3JlRW50ZXIiLCJlbnRlciIsImFmdGVyRW50ZXIiLCJlbnRlckNhbmNlbGxlZCIsImJlZm9yZUFwcGVhciIsImFwcGVhciIsImFmdGVyQXBwZWFyIiwiYXBwZWFyQ2FuY2VsbGVkIiwiZHVyYXRpb24iLCJCaSIsIl9wZW5kaW5nIiwiSGkiLCJSaSIsImJlZm9yZUxlYXZlIiwibGVhdmUiLCJhZnRlckxlYXZlIiwibGVhdmVDYW5jZWxsZWQiLCJkZWxheUxlYXZlIiwiVWkiLCJ6aSIsIm5vZGVPcHMiLCJwZW5kaW5nSW5zZXJ0IiwicG9zdHBhdGNoIiwiaGFzQ2hpbGROb2RlcyIsImhhc0F0dHJpYnV0ZSIsInZtb2RlbCIsIlhpIiwiVmkiLCJfdk9wdGlvbnMiLCJLaSIsIldpIiwiWmkiLCJHaSIsInFpIiwiSmkiLCJzZWxlY3RlZCIsInNlbGVjdGVkSW5kZXgiLCJpbml0RXZlbnQiLCJkaXNwYXRjaEV2ZW50IiwiWWkiLCJRaSIsIl9fdk9yaWdpbmFsRGlzcGxheSIsInVuYmluZCIsImVvIiwidG8iLCJubyIsInJvIiwiaW8iLCJvbyIsImFvIiwiX2xlYXZpbmciLCJzbyIsIm1vdmVDbGFzcyIsImNvIiwiX21vdmVDYiIsInVvIiwibmV3UG9zIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibG8iLCJtb3ZlZCIsIldlYmtpdFRyYW5zZm9ybSIsInRyYW5zaXRpb25EdXJhdGlvbiIsImZvIiwiVHJhbnNpdGlvbiIsIlRyYW5zaXRpb25Hcm91cCIsImJlZm9yZU1vdW50Iiwia2VwdCIsInByZXZDaGlsZHJlbiIsInJlbW92ZWQiLCJ1cGRhdGVkIiwiaGFzTW92ZSIsIl9yZWZsb3ciLCJib2R5Iiwib2Zmc2V0SGVpZ2h0IiwicHJvcGVydHlOYW1lIiwiX2hhc01vdmUiLCJjb25maWciLCJIVE1MVW5rbm93bkVsZW1lbnQiLCJIVE1MRWxlbWVudCIsInlvIiwicG8iLCJ2byIsImhvIiwibW8iLCJzdGF0aWNLZXlzIiwidHJhbnNmb3JtTm9kZSIsImNsYXNzQmluZGluZyIsImdlbkRhdGEiLCJnbyIsInN0eWxlQmluZGluZyIsImJvIiwiJG8iLCJ3byIsIkNvIiwieG8iLCJrbyIsIkFvIiwiT28iLCJTbyIsIlRvIiwiRW8iLCJObyIsImpvIiwiRG8iLCJMbyIsIk1vIiwiSW8iLCJGbyIsIlBvIiwiUm8iLCJIbyIsIkJvIiwiVW8iLCJ6byIsIlZvIiwiS28iLCJKbyIsInFvIiwiV28iLCJabyIsIkdvIiwiWG8iLCJZbyIsIlFvIiwiZWEiLCJ0YSIsIm5hIiwicmEiLCJpYSIsIm9hIiwiYWEiLCJzYSIsImNhIiwidWEiLCJtYSIsInJhd0F0dHJzTWFwIiwiZmEiLCJmb3IiLCJzbG90U2NvcGUiLCJzbG90VGFyZ2V0Iiwic2xvdFRhcmdldER5bmFtaWMiLCJ2YSIsInNsb3ROYW1lIiwiaGFzQmluZGluZ3MiLCJoYSIsImNhbWVsIiwicGEiLCJhbGlhcyIsIml0ZXJhdG9yMSIsIml0ZXJhdG9yMiIsImRhIiwiaWZDb25kaXRpb25zIiwieWEiLCJnYSIsIl9hIiwiJGEiLCJ3YSIsImJhIiwicHJlVHJhbnNmb3JtTm9kZSIsInByb2Nlc3NlZCIsImlmIiwiYmxvY2siLCJlbHNlIiwiZWxzZWlmIiwiQ2EiLCJleHBlY3RIVE1MIiwiaXNQcmVUYWciLCJpc1VuYXJ5VGFnIiwiY2FuQmVMZWZ0T3BlblRhZyIsInJlZHVjZSIsInhhIiwiQWEiLCJPYSIsIlNhIiwiVGEiLCJlc2MiLCJ0YWIiLCJzcGFjZSIsInVwIiwiZG93biIsIkVhIiwiTmEiLCJqYSIsInN0b3AiLCJwcmV2ZW50IiwiY3RybCIsImFsdCIsIm1ldGEiLCJEYSIsIkxhIiwiTWEiLCJJYSIsIndyYXBMaXN0ZW5lcnMiLCJ3cmFwRGF0YSIsImNsb2FrIiwiRmEiLCJ0cmFuc2Zvcm1zIiwiZGF0YUdlbkZucyIsIm1heWJlQ29tcG9uZW50Iiwib25jZUlkIiwiUGEiLCJSYSIsInN0YXRpY1Jvb3QiLCJzdGF0aWNQcm9jZXNzZWQiLCJIYSIsIm9uY2VQcm9jZXNzZWQiLCJCYSIsImZvclByb2Nlc3NlZCIsInphIiwiaWZQcm9jZXNzZWQiLCJVYSIsInFhIiwiR2EiLCJWYSIsInN0YXRpY0luRm9yIiwiS2EiLCJKYSIsIldhIiwiWmEiLCJYYSIsIllhIiwiY29kZSIsIlFhIiwiZGVsaW1pdGVycyIsImVzIiwidHMiLCJwcmVzZXJ2ZVdoaXRlc3BhY2UiLCJmb3JiaWRkZW4iLCJzaG91bGRLZWVwQ29tbWVudCIsImNvbW1lbnQiLCJzdWJzdHJpbmciLCJ1bmFyeVNsYXNoIiwic2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmIiwic2hvdWxkRGVjb2RlTmV3bGluZXMiLCJsb3dlckNhc2VkVGFnIiwiY29tbWVudHMiLCJvdXRwdXRTb3VyY2VSYW5nZSIsInBsYWNlaG9sZGVyIiwibGFzdEluZGV4IiwibGEiLCJvcHRpbWl6ZSIsInN0YXRpYyIsImthIiwiYXN0IiwiZXJyb3JzIiwidGlwcyIsImNvbXBpbGUiLCJjb21waWxlVG9GdW5jdGlvbnMiLCJycyIsIm9zIiwiYXMiLCJzcyIsImNzIiwib3V0ZXJIVE1MIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsImRlZmluaXRpb24iLCJnbG9iYWxUaGlzIiwiU2VycCJdLCJtYXBwaW5ncyI6IjsrSEF3QkEsVUFDQSxXLElBQ0EsVSx1REFFT0EsRUFBS0MsT0FBTEQsRUFRREUsRSxXQUNKLFdBQVlDLEVBQVdDLEdBRXJCLElBRjBCLHFCQUVZLElBQWxDSixFQUFFRyxFQUFVRSxXQUFXQyxPQUEzQixDQU9BLEdBSEFDLEtBQUtDLFlBQWNKLEVBQ25CRyxLQUFLRSxrQkFBZ0RDLElBQWpDUCxFQUFVUSx5QkFBcUVELElBQWpDUCxFQUFVUyxtQkFFeEVMLEtBQUtFLGFBQWMsQ0FDckIsSUFBTUksRUFBb0IsR0FFdEJWLEVBQVVRLG9CQUNaRSxFQUFrQkMsS0FBS1gsRUFBVVEsb0JBRS9CUixFQUFVUyxvQkFDWkMsRUFBa0JDLEtBQUtYLEVBQVVTLG9CQUVuQ0wsS0FBS1Esa0JBQW9CRixFQUFrQkcsS0FBSyxLQUNoRFQsS0FBS1Usd0JBR1BWLEtBQUtXLEtBQU8sQ0FDVmQsTUFDQWUsTUFBTyxHQUNQQyxZQUFhLElBR2ZiLEtBQUtjLEdBQUssSUFBSUMsVUFBSSxDQUNoQkMsR0FBSXBCLEVBQVVFLFVBQ2RtQixT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LEdDQXhCdzdELEVBQW9CaDdDLEVBQUksQ0FBQzlPLEVBQUt4TixJQUFVaVIsT0FBT3BCLFVBQVU4RCxlQUFleEMsS0FBSzNELEVBQUt4TixHQ0NsRnMzRCxFQUFvQjNwQyxFQUFLOWUsSUFDSCxvQkFBWG1MLFFBQTBCQSxPQUFPMDhCLGFBQzFDemxDLE9BQU9oQixlQUFlcEIsRUFBU21MLE9BQU8wOEIsWUFBYSxDQUFFLzJDLE1BQU8sV0FFN0RzUixPQUFPaEIsZUFBZXBCLEVBQVMsYUFBYyxDQUFFbFAsT0FBTyxLLG1CQ21CdkQsSSxJQUFBLFUsSUFDQSxVLElBQ0EsVSxJQUNBLFUsSUFDQSxVLElBQ0EsVSxJQUNBLFUsSUFDQSxVLHVEQUVPOUQsRUFBS0MsT0FBTEQsRUFFUEEsR0FBRSxZQUNBLGdCQUNBLGdCQUNBLGdCQUNBLGdCQUNBLGdCQUNBLGVBQWtCMEssUUFDbEIsZUFBaUJBLE9BRWpCLElBQUlxeEQsVUFDRixDQUNFMTdELFVBQVcsWUFDWDhCLGFBQWMsNEJBQ2RDLGFBQWMsNEJBQ2RDLG1CQUFvQiw0QkFDcEJDLG1CQUFvQiw0QkFDcEJDLGVBQWdCLDJCQUVsQnZDLEVBQUUsNkJBQTZCa0IsS0FBSyxZQUl0Q2xCLEVBQUUsd0JBQXdCOEIsR0FBRyxVQUFVLFNBQUNtQyxHQUN0Q2pFLEVBQUUsNEJBQTRCeUYsT0FDOUJ6RixNQUFNaUUsRUFBRUwsT0FBT0UsT0FBU3lCLFVBRzFCdkYsRUFBRSx3QkFBd0I4QixHQUFHLFNBQVMsU0FBQ21DLEdBQ3JDLElBQU1MLEVBQVM1RCxFQUFFaUUsRUFBRUwsUUFBUTFDLEtBQUssVUFHaEMsT0FGQWxCLEVBQUUscUJBQXFCdUYsT0FDdkJ2RixFQUFFLHdCQUF3QjZDLElBQUllLEdBQVFvSCxRQUFRLFdBQ3ZDLFMiLCJmaWxlIjoicHJvZHVjdF9wYWdlLmJ1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cbmltcG9ydCBWdWUgZnJvbSAndnVlJztcbmltcG9ydCB7RXZlbnRFbWl0dGVyfSBmcm9tICdAY29tcG9uZW50cy9ldmVudC1lbWl0dGVyJztcbmltcG9ydCBzZXJwIGZyb20gJy4vc2VycC52dWUnO1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbi8qKlxuICogVnVlIGNvbXBvbmVudCBkaXNwbGF5aW5nIGEgc2VhcmNoIHBhZ2UgcmVzdWx0LCBHb29nbGUgc3R5bGUuXG4gKiBSZXF1aXJlcyBhIHRhZyB3aXRoIHRoZSBpZCBcIiNzZXJwLWFwcFwiIHRvIGJlIHByZXNlbnQgaW4gdGhlIERPTSB0byBydW4gaXQuXG4gKiBUaGUgY29tcG9uZW50IGlzIGF1dG9tYXRpY2FsbHkgdXBkYXRlZCBieSB3YXRjaGluZyBzZXZlcmFsIGlucHV0cy5cbiAqIFNldCB0aGUgcHJvcGVyIGNsYXNzIHRvIGxpbmsgYSBpbnB1dCB0byBhIHBhcnQgb2YgdGhlIHBhbmVsLlxuICovXG5jbGFzcyBTZXJwQXBwIHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3JzLCB1cmwpIHtcbiAgICAvLyBJZiB0aGUgc2VsZWN0b3IgY2Fubm90IGJlIGZvdW5kLCB3ZSBkbyBub3QgbG9hZCB0aGUgVnVlIGFwcFxuICAgIGlmICgkKHNlbGVjdG9ycy5jb250YWluZXIpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub3JpZ2luYWxVcmwgPSB1cmw7XG4gICAgdGhpcy51c2VNdWx0aUxhbmcgPSBzZWxlY3RvcnMubXVsdGlMYW5ndWFnZUlucHV0ICE9PSB1bmRlZmluZWQgfHwgc2VsZWN0b3JzLm11bHRpTGFuZ3VhZ2VGaWVsZCAhPT0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKHRoaXMudXNlTXVsdGlMYW5nKSB7XG4gICAgICBjb25zdCBwb3NzaWJsZVNlbGVjdG9ycyA9IFtdO1xuXG4gICAgICBpZiAoc2VsZWN0b3JzLm11bHRpTGFuZ3VhZ2VJbnB1dCkge1xuICAgICAgICBwb3NzaWJsZVNlbGVjdG9ycy5wdXNoKHNlbGVjdG9ycy5tdWx0aUxhbmd1YWdlSW5wdXQpO1xuICAgICAgfVxuICAgICAgaWYgKHNlbGVjdG9ycy5tdWx0aUxhbmd1YWdlRmllbGQpIHtcbiAgICAgICAgcG9zc2libGVTZWxlY3RvcnMucHVzaChzZWxlY3RvcnMubXVsdGlMYW5ndWFnZUZpZWxkKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubXVsdGlMYW5nU2VsZWN0b3IgPSBwb3NzaWJsZVNlbGVjdG9ycy5qb2luKCcsJyk7XG4gICAgICB0aGlzLmF0dGFjaE11bHRpTGFuZ0V2ZW50cygpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YSA9IHtcbiAgICAgIHVybCxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB9O1xuXG4gICAgdGhpcy52bSA9IG5ldyBWdWUoe1xuICAgICAgZWw6IHNlbGVjdG9ycy5jb250YWluZXIsXG4gICAgICB0ZW1wbGF0ZTogJzxzZXJwIHJlZj1cInNlcnBcIiA6dXJsPVwidXJsXCIgOnRpdGxlPVwidGl0bGVcIiA6ZGVzY3JpcHRpb249XCJkZXNjcmlwdGlvblwiIC8+JyxcbiAgICAgIGNvbXBvbmVudHM6IHtzZXJwfSxcbiAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICB9KTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZVNlbGVjdG9ycyhzZWxlY3RvcnMpO1xuICAgIHRoaXMuYXR0YWNoSW5wdXRFdmVudHMoKTtcbiAgfVxuXG4gIGF0dGFjaE11bHRpTGFuZ0V2ZW50cyhpdGVtU2VsZWN0b3IpIHtcbiAgICAkKCdib2R5Jykub24oXG4gICAgICAnY2xpY2snLFxuICAgICAgaXRlbVNlbGVjdG9yLFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrVGl0bGUoKTtcbiAgICAgICAgdGhpcy5jaGVja0Rlc2MoKTtcbiAgICAgICAgdGhpcy5jaGVja1VybCgpO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgRXZlbnRFbWl0dGVyLm9uKCdsYW5ndWFnZVNlbGVjdGVkJywgKCkgPT4ge1xuICAgICAgdGhpcy5jaGVja1RpdGxlKCk7XG4gICAgICB0aGlzLmNoZWNrRGVzYygpO1xuICAgICAgdGhpcy5jaGVja1VybCgpO1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVNlbGVjdG9ycyhzZWxlY3RvcnMpIHtcbiAgICB0aGlzLmRlZmF1bHRUaXRsZSA9ICQoc2VsZWN0b3JzLmRlZmF1bHRUaXRsZSk7XG4gICAgdGhpcy53YXRjaGVkVGl0bGUgPSAkKHNlbGVjdG9ycy53YXRjaGVkVGl0bGUpO1xuICAgIHRoaXMuZGVmYXVsdERlc2NyaXB0aW9uID0gJChzZWxlY3RvcnMuZGVmYXVsdERlc2NyaXB0aW9uKTtcbiAgICB0aGlzLndhdGNoZWREZXNjcmlwdGlvbiA9ICQoc2VsZWN0b3JzLndhdGNoZWREZXNjcmlwdGlvbik7XG4gICAgdGhpcy53YXRjaGVkTWV0YVVybCA9ICQoc2VsZWN0b3JzLndhdGNoZWRNZXRhVXJsKTtcbiAgfVxuXG4gIGF0dGFjaElucHV0RXZlbnRzKCkge1xuICAgICQodGhpcy5kZWZhdWx0VGl0bGUpLm9uKCdrZXl1cCBjaGFuZ2UnLCAoKSA9PiB0aGlzLmNoZWNrVGl0bGUoKSk7XG4gICAgJCh0aGlzLndhdGNoZWRUaXRsZSkub24oJ2tleXVwIGNoYW5nZScsICgpID0+IHRoaXMuY2hlY2tUaXRsZSgpKTtcbiAgICAkKHRoaXMuZGVmYXVsdERlc2NyaXB0aW9uKS5vbigna2V5dXAgY2hhbmdlJywgKCkgPT4gdGhpcy5jaGVja0Rlc2MoKSk7XG4gICAgJCh0aGlzLndhdGNoZWREZXNjcmlwdGlvbikub24oJ2tleXVwIGNoYW5nZScsICgpID0+IHRoaXMuY2hlY2tEZXNjKCkpO1xuICAgIHRoaXMud2F0Y2hlZE1ldGFVcmwub24oJ2tleXVwIGNoYW5nZScsICgpID0+IHRoaXMuY2hlY2tVcmwoKSk7XG5cbiAgICB0aGlzLmNoZWNrVGl0bGUoKTtcbiAgICB0aGlzLmNoZWNrRGVzYygpO1xuICAgIHRoaXMuY2hlY2tVcmwoKTtcbiAgfVxuXG4gIHNldFRpdGxlKHRpdGxlKSB7XG4gICAgdGhpcy5kYXRhLnRpdGxlID0gdGl0bGU7XG4gIH1cblxuICBzZXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbikge1xuICAgIHRoaXMuZGF0YS5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuICB9XG5cbiAgc2V0VXJsKHJld3JpdGUpIHtcbiAgICAvLyBXZSByZXBsYWNlIHR3byBwbGFjZWhvbGRlcnMgYmVjYXVzZSB0aGVyZSB3YXMgYSB0eXBvIGluIHRoZSBpbml0aWFsIG9uZSAoJ2ZyaWVuZHknIGluc3RlYWQgb2YgJ2ZyaWVuZGx5JylcbiAgICB0aGlzLmRhdGEudXJsID0gdGhpcy5vcmlnaW5hbFVybC5yZXBsYWNlKFxuICAgICAgJ3tmcmllbmR5LXVybH0nLFxuICAgICAgcmV3cml0ZSxcbiAgICApO1xuICAgIHRoaXMuZGF0YS51cmwgPSB0aGlzLmRhdGEudXJsLnJlcGxhY2UoXG4gICAgICAne2ZyaWVuZGx5LXVybH0nLFxuICAgICAgcmV3cml0ZSxcbiAgICApO1xuICB9XG5cbiAgY2hlY2tUaXRsZSgpIHtcbiAgICBsZXQge2RlZmF1bHRUaXRsZX0gPSB0aGlzO1xuICAgIGxldCB7d2F0Y2hlZFRpdGxlfSA9IHRoaXM7XG5cbiAgICBpZiAodGhpcy51c2VNdWx0aUxhbmcpIHtcbiAgICAgIHdhdGNoZWRUaXRsZSA9IHdhdGNoZWRUaXRsZS5jbG9zZXN0KHRoaXMubXVsdGlMYW5nU2VsZWN0b3IpLmZpbmQoJ2lucHV0Jyk7XG4gICAgICBkZWZhdWx0VGl0bGUgPSBkZWZhdWx0VGl0bGUuY2xvc2VzdCh0aGlzLm11bHRpTGFuZ1NlbGVjdG9yKS5maW5kKCdpbnB1dCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHRpdGxlMSA9IHdhdGNoZWRUaXRsZS5sZW5ndGggPyB3YXRjaGVkVGl0bGUudmFsKCkgOiAnJztcbiAgICBjb25zdCB0aXRsZTIgPSBkZWZhdWx0VGl0bGUubGVuZ3RoID8gZGVmYXVsdFRpdGxlLnZhbCgpIDogJyc7XG5cbiAgICB0aGlzLnNldFRpdGxlKHRpdGxlMSA9PT0gJycgPyB0aXRsZTIgOiB0aXRsZTEpO1xuICAgIC8vIEFsd2F5cyBjaGVjayBmb3IgdXJsIGlmIHRpdGxlIGNoYW5nZVxuICAgIHRoaXMuY2hlY2tVcmwoKTtcbiAgfVxuXG4gIGNoZWNrRGVzYygpIHtcbiAgICBsZXQge3dhdGNoZWREZXNjcmlwdGlvbn0gPSB0aGlzO1xuICAgIGxldCB7ZGVmYXVsdERlc2NyaXB0aW9ufSA9IHRoaXM7XG5cbiAgICBpZiAodGhpcy51c2VNdWx0aUxhbmcpIHtcbiAgICAgIHdhdGNoZWREZXNjcmlwdGlvbiA9IHdhdGNoZWREZXNjcmlwdGlvblxuICAgICAgICAuY2xvc2VzdCh0aGlzLm11bHRpTGFuZ1NlbGVjdG9yKVxuICAgICAgICAuZmluZCh0aGlzLndhdGNoZWREZXNjcmlwdGlvbi5pcygnaW5wdXQnKSA/ICdpbnB1dCcgOiAndGV4dGFyZWEnKTtcbiAgICAgIGRlZmF1bHREZXNjcmlwdGlvbiA9IGRlZmF1bHREZXNjcmlwdGlvblxuICAgICAgICAuY2xvc2VzdCh0aGlzLm11bHRpTGFuZ1NlbGVjdG9yKVxuICAgICAgICAuZmluZCh0aGlzLmRlZmF1bHREZXNjcmlwdGlvbi5pcygnaW5wdXQnKSA/ICdpbnB1dCcgOiAndGV4dGFyZWEnKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXNjMSA9IHdhdGNoZWREZXNjcmlwdGlvbi5sZW5ndGggPyB3YXRjaGVkRGVzY3JpcHRpb24udmFsKCkuaW5uZXJUZXh0IHx8IHdhdGNoZWREZXNjcmlwdGlvbi52YWwoKSA6ICcnO1xuICAgIGNvbnN0IGRlc2MyID0gZGVmYXVsdERlc2NyaXB0aW9uLmxlbmd0aCA/ICQoZGVmYXVsdERlc2NyaXB0aW9uLnZhbCgpKS50ZXh0KCkgfHwgZGVmYXVsdERlc2NyaXB0aW9uLnZhbCgpIDogJyc7XG5cbiAgICB0aGlzLnNldERlc2NyaXB0aW9uKGRlc2MxID09PSAnJyA/IGRlc2MyIDogZGVzYzEpO1xuICB9XG5cbiAgY2hlY2tVcmwoKSB7XG4gICAgbGV0IHt3YXRjaGVkTWV0YVVybH0gPSB0aGlzO1xuXG4gICAgaWYgKHRoaXMudXNlTXVsdGlMYW5nKSB7XG4gICAgICB3YXRjaGVkTWV0YVVybCA9IHdhdGNoZWRNZXRhVXJsLmNsb3Nlc3QodGhpcy5tdWx0aUxhbmdTZWxlY3RvcikuZmluZCgnaW5wdXQnKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFVybCh3YXRjaGVkTWV0YVVybC52YWwoKSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2VycEFwcDtcbiIsIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cblxuaW1wb3J0IEV2ZW50RW1pdHRlckNsYXNzIGZyb20gJ2V2ZW50cyc7XG5cbi8qKlxuICogV2UgaW5zdGFuY2lhdGUgb25lIEV2ZW50RW1pdHRlciAocmVzdHJpY3RlZCB2aWEgYSBjb25zdCkgc28gdGhhdCBldmVyeSBjb21wb25lbnRzXG4gKiByZWdpc3Rlci9kaXNwYXRjaCBvbiB0aGUgc2FtZSBvbmUgYW5kIGNhbiBjb21tdW5pY2F0ZSB3aXRoIGVhY2ggb3RoZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyQ2xhc3MoKTtcblxuZXhwb3J0IGRlZmF1bHQgRXZlbnRFbWl0dGVyO1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoKSB7XG4gICQoZG9jdW1lbnQpLnJlYWR5KCgpID0+IHtcbiAgICAkKCcuanMtYXR0cmlidXRlLWNoZWNrYm94JykuY2hhbmdlKChldmVudCkgPT4ge1xuICAgICAgaWYgKCQoZXZlbnQudGFyZ2V0KS5pcygnOmNoZWNrZWQnKSkge1xuICAgICAgICBpZiAoJChgLnRva2VuW2RhdGEtdmFsdWU9XCIkeyQoZXZlbnQudGFyZ2V0KS5kYXRhKCd2YWx1ZScpfVwiXSAuY2xvc2VgKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAkKCcjZm9ybV9zdGVwM19hdHRyaWJ1dGVzJykudG9rZW5maWVsZChcbiAgICAgICAgICAgICdjcmVhdGVUb2tlbicsXG4gICAgICAgICAgICB7dmFsdWU6ICQoZXZlbnQudGFyZ2V0KS5kYXRhKCd2YWx1ZScpLCBsYWJlbDogJChldmVudC50YXJnZXQpLmRhdGEoJ2xhYmVsJyl9LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICQoYC50b2tlbltkYXRhLXZhbHVlPVwiJHskKGV2ZW50LnRhcmdldCkuZGF0YSgndmFsdWUnKX1cIl0gLmNsb3NlYCkuY2xpY2soKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgJCgnI2Zvcm1fc3RlcDNfYXR0cmlidXRlcycpXG4gICAgLm9uKCd0b2tlbmZpZWxkOmNyZWF0ZWR0b2tlbicsIChlKSA9PiB7XG4gICAgICBpZiAoISQoYC5qcy1hdHRyaWJ1dGUtY2hlY2tib3hbZGF0YS12YWx1ZT1cIiR7ZS5hdHRycy52YWx1ZX1cIl1gKS5pcygnOmNoZWNrZWQnKSkge1xuICAgICAgICAkKGAuanMtYXR0cmlidXRlLWNoZWNrYm94W2RhdGEtdmFsdWU9XCIke2UuYXR0cnMudmFsdWV9XCJdYCkucHJvcCgnY2hlY2tlZCcsIHRydWUpO1xuICAgICAgfVxuICAgIH0pXG4gICAgLm9uKCd0b2tlbmZpZWxkOnJlbW92ZWR0b2tlbicsIChlKSA9PiB7XG4gICAgICBpZiAoJChgLmpzLWF0dHJpYnV0ZS1jaGVja2JveFtkYXRhLXZhbHVlPVwiJHtlLmF0dHJzLnZhbHVlfVwiXWApLmlzKCc6Y2hlY2tlZCcpKSB7XG4gICAgICAgICQoYC5qcy1hdHRyaWJ1dGUtY2hlY2tib3hbZGF0YS12YWx1ZT1cIiR7ZS5hdHRycy52YWx1ZX1cIl1gKS5wcm9wKCdjaGVja2VkJywgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICQoJ2lucHV0LmZvcm0tY29udHJvbFtjb3VudGVyXSwgdGV4dGFyZWEuZm9ybS1jb250cm9sOm5vdCguYXV0b2xvYWRfcnRlKVtjb3VudGVyXScpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGNvdW50ZXIgPSAkKHRoaXMpLmF0dHIoJ2NvdW50ZXInKTtcblxuICAgIGlmICh0eXBlb2YgY291bnRlciA9PT0gJ3VuZGVmaW5lZCcgfHwgY291bnRlciA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBoYW5kbGVDb3VudGVyKCQodGhpcykpO1xuICAgICQodGhpcykub24oJ2lucHV0JywgZnVuY3Rpb24gKCkge1xuICAgICAgaGFuZGxlQ291bnRlcigkKHRoaXMpKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGhhbmRsZUNvdW50ZXIob2JqZWN0KSB7XG4gICAgICBjb25zdCBjb3VudGVyT2JqZWN0ID0gJChvYmplY3QpLmF0dHIoJ2NvdW50ZXInKTtcbiAgICAgIGNvbnN0IGNvdW50ZXJUeXBlID0gJChvYmplY3QpLmF0dHIoJ2NvdW50ZXJUeXBlJyk7XG4gICAgICBjb25zdCBtYXggPSAkKG9iamVjdCkudmFsKCkubGVuZ3RoO1xuXG4gICAgICAkKG9iamVjdCkucGFyZW50KCkuZmluZCgnc3Bhbi5jdXJyZW50TGVuZ3RoJykudGV4dChtYXgpO1xuICAgICAgaWYgKGNvdW50ZXJUeXBlICE9PSAncmVjb21tZW5kZWQnICYmIG1heCA+IGNvdW50ZXJPYmplY3QpIHtcbiAgICAgICAgJChvYmplY3QpLnBhcmVudCgpLmZpbmQoJ3NwYW4ubWF4TGVuZ3RoJykuYWRkQ2xhc3MoJ3RleHQtZGFuZ2VyJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAkKG9iamVjdCkucGFyZW50KCkuZmluZCgnc3Bhbi5tYXhMZW5ndGgnKS5yZW1vdmVDbGFzcygndGV4dC1kYW5nZXInKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoKSB7XG4gIC8qKlxuICAgKiBzY3JvbGwgcmlnaHQgdG8gc2hvdyByYWRpbyBidXR0b25zIG9uIHRoZSBjYXRlZ29yeSB0cmVlXG4gICAqL1xuICBjb25zdCBzY3JvbGxDYXRlZ29yeVRyZWUgPSBmdW5jdGlvbiBzY3JvbGxDYXRlZ29yeVRyZWUoKSB7XG4gICAgY29uc3QgJGNhdGVnb3J5VHJlZU92ZXJmbG93ID0gJCgnLmNhdGVnb3J5LXRyZWUtb3ZlcmZsb3cnKTtcbiAgICBjb25zdCBsZWZ0UG9zID0gJGNhdGVnb3J5VHJlZU92ZXJmbG93LndpZHRoKCk7XG4gICAgJGNhdGVnb3J5VHJlZU92ZXJmbG93LmFuaW1hdGUoe3Njcm9sbExlZnQ6IGxlZnRQb3N9LCAyMDApO1xuICB9O1xuXG4gIGNvbnN0IHRyZWVBY3Rpb24gPSAodHJlZVN0YXRlKSA9PiB7XG4gICAgaWYgKHRyZWVTdGF0ZSA9PT0gJ2V4cGFuZCcpIHtcbiAgICAgICQoJy5qcy1jYXRlZ29yaWVzLXRyZWUgdWwnKS5zaG93KCk7XG4gICAgICAkKCcubW9yZScpLnRvZ2dsZUNsYXNzKCdsZXNzJyk7XG4gICAgICAvLyBzY3JvbGwgcmlnaHQgdG8gc2VlIHRoZSByYWRpbyBidXR0b25zXG4gICAgICBzY3JvbGxDYXRlZ29yeVRyZWUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJCgnLmpzLWNhdGVnb3JpZXMtdHJlZSB1bDpub3QoLmNhdGVnb3J5LXRyZWUpJykuaGlkZSgpO1xuICAgICAgJCgnLmxlc3MnKS50b2dnbGVDbGFzcygnbW9yZScpO1xuICAgIH1cbiAgfTtcblxuICAkKCcjY2F0ZWdvcmllcy10cmVlLWV4cGFuZCcpLm9uKCdjbGljaycsICgpID0+IHtcbiAgICB0cmVlQWN0aW9uKCdleHBhbmQnKTtcbiAgICAkKCcjY2F0ZWdvcmllcy10cmVlLWV4cGFuZCcpLmhpZGUoKTtcbiAgICAkKCcjY2F0ZWdvcmllcy10cmVlLXJlZHVjZScpLnNob3coKTtcbiAgfSk7XG4gICQoJyNjYXRlZ29yaWVzLXRyZWUtcmVkdWNlJykub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgIHRyZWVBY3Rpb24oJ2NvbGxhcHNlJyk7XG4gICAgJCgnI2NhdGVnb3JpZXMtdHJlZS1yZWR1Y2UnKS5oaWRlKCk7XG4gICAgJCgnI2NhdGVnb3JpZXMtdHJlZS1leHBhbmQnKS5zaG93KCk7XG4gIH0pO1xuXG4gIC8vIHNjcm9sbCByaWdodCB0byBzZWUgdGhlIHJhZGlvIGJ1dHRvbnNcbiAgJCgnLmNhdGVnb3J5LXRyZWUtb3ZlcmZsb3cgLmNoZWNrYm94Jykub24oJ2NsaWNrJywgKGUpID0+IHtcbiAgICBpZiAoISQoZS50YXJnZXQpLmlzKCdpbnB1dCcpKSB7XG4gICAgICAvLyBkbyBub3Qgc2Nyb2xsIGlmICh1biljaGVja2luZyBzb21lIGlucHV0c1xuICAgICAgc2Nyb2xsQ2F0ZWdvcnlUcmVlKCk7XG4gICAgfVxuICB9KTtcblxuICAkKCcuY2F0ZWdvcnktdHJlZS1vdmVyZmxvdyAuY2hlY2tib3ggbGFiZWwnKS5vbignY2xpY2snLCAoZSkgPT4ge1xuICAgIGlmICghJChlLnRhcmdldCkuaXMoJ2lucHV0JykpIHtcbiAgICAgIC8vIGRvIG5vdCBzY3JvbGwgaWYgKHVuKWNoZWNraW5nIHNvbWUgaW5wdXRzXG4gICAgICBzY3JvbGxDYXRlZ29yeVRyZWUoKTtcbiAgICB9XG4gIH0pO1xufVxuIiwiY29uc3QgeyR9ID0gd2luZG93O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoKSB7XG4gICQoZG9jdW1lbnQpLnJlYWR5KCgpID0+IHtcbiAgICBjb25zdCAkanNDb21iaW5hdGlvbnNMaXN0ID0gJCgnLmpzLWNvbWJpbmF0aW9ucy1saXN0Jyk7XG5cbiAgICAvLyBJZiB3ZSBhcmUgbm90IG9uIHRoZSBwcm9kdWN0IHBhZ2UsIHJldHVyblxuICAgIGlmICgkanNDb21iaW5hdGlvbnNMaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlkc1Byb2R1Y3RBdHRyaWJ1dGUgPSAkanNDb21iaW5hdGlvbnNMaXN0LmRhdGEoJ2lkcy1wcm9kdWN0LWF0dHJpYnV0ZScpLnRvU3RyaW5nKCkuc3BsaXQoJywnKTtcbiAgICBjb25zdCByZWZyZXNoSW1hZ2VzVXJsID0gJGpzQ29tYmluYXRpb25zTGlzdFxuICAgICAgLmF0dHIoJ2RhdGEtYWN0aW9uLXJlZnJlc2gtaW1hZ2VzJylcbiAgICAgIC5yZXBsYWNlKC9mb3JtLWltYWdlc1xcL1xcZCsvLCBgZm9ybS1pbWFnZXMvJHskanNDb21iaW5hdGlvbnNMaXN0LmRhdGEoJ2lkLXByb2R1Y3QnKX1gKTtcbiAgICBjb25zdCBpZHNDb3VudCA9IGlkc1Byb2R1Y3RBdHRyaWJ1dGUubGVuZ3RoO1xuICAgIGNvbnN0IHN0ZXAgPSA1MDtcbiAgICBsZXQgY3VycmVudENvdW50ID0gMDtcblxuICAgICQuZ2V0KHJlZnJlc2hJbWFnZXNVcmwpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoaWRzQ291bnQgIT09IDApIHtcbiAgICAgICAgZ2V0Q29tYmluYXRpb25zKHJlc3BvbnNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgICQoJyNjcmVhdGUtY29tYmluYXRpb25zJykuY2xpY2soKGV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgd2luZG93LmZvcm0uc2VuZChmYWxzZSwgZmFsc2UsIGdlbmVyYXRlKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHByb2R1Y3REcm9wem9uZSA9IHdpbmRvdy5Ecm9wem9uZS5mb3JFbGVtZW50KCcjcHJvZHVjdC1pbWFnZXMtZHJvcHpvbmUnKTtcbiAgICBjb25zdCB1cGRhdGVDb21iaW5hdGlvbkltYWdlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHByb2R1Y3RBdHRyaWJ1dGVJZHMgPSAkLm1hcChcbiAgICAgICAgJCgnLmpzLWNvbWJpbmF0aW9ucy1saXN0IC5jb21iaW5hdGlvbicpLFxuICAgICAgICAoY29tYmluYXRpb24pID0+ICQoY29tYmluYXRpb24pLmRhdGEoJ2luZGV4JyksXG4gICAgICApO1xuXG4gICAgICAkLmdldChyZWZyZXNoSW1hZ2VzVXJsKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICByZWZyZXNoSW1hZ2VzQ29tYmluYXRpb24ocmVzcG9uc2UsIHByb2R1Y3RBdHRyaWJ1dGVJZHMpO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICBwcm9kdWN0RHJvcHpvbmUub24oJ3N1Y2Nlc3MnLCB1cGRhdGVDb21iaW5hdGlvbkltYWdlcyk7XG5cbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnI2Zvcm0gLnByb2R1Y3QtY29tYmluYXRpb24taW1hZ2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpbnB1dCA9ICQodGhpcykuZmluZCgnaW5wdXQnKTtcbiAgICAgIGNvbnN0IGlzQ2hlY2tlZCA9IGlucHV0LnByb3AoJ2NoZWNrZWQnKTtcbiAgICAgIGlucHV0LnByb3AoJ2NoZWNrZWQnLCAhaXNDaGVja2VkKTtcbiAgICAgICQodGhpcykudG9nZ2xlQ2xhc3MoJ2ltZy1oaWdobGlnaHQnLCAhaXNDaGVja2VkKTtcbiAgICAgIHJlZnJlc2hEZWZhdWx0SW1hZ2UoKTtcbiAgICB9KTtcblxuICAgICQoJyNwcm9kdWN0X2NvbWJpbmF0aW9uX2J1bGtfaW1wYWN0X29uX3ByaWNlX3RpLCAjcHJvZHVjdF9jb21iaW5hdGlvbl9idWxrX2ltcGFjdF9vbl9wcmljZV90ZScpLmtleXVwKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHNlbGYgPSAkKHRoaXMpO1xuICAgICAgY29uc3QgcHJpY2UgPSB3aW5kb3cucHJpY2VDYWxjdWxhdGlvbi5ub3JtYWxpemVQcmljZShzZWxmLnZhbCgpKTtcblxuICAgICAgaWYgKHNlbGYuYXR0cignaWQnKSA9PT0gJ3Byb2R1Y3RfY29tYmluYXRpb25fYnVsa19pbXBhY3Rfb25fcHJpY2VfdGknKSB7XG4gICAgICAgICQoJyNwcm9kdWN0X2NvbWJpbmF0aW9uX2J1bGtfaW1wYWN0X29uX3ByaWNlX3RlJykudmFsKHdpbmRvdy5wcmljZUNhbGN1bGF0aW9uLnJlbW92ZUN1cnJlbnRUYXgocHJpY2UpKS5jaGFuZ2UoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICQoJyNwcm9kdWN0X2NvbWJpbmF0aW9uX2J1bGtfaW1wYWN0X29uX3ByaWNlX3RpJykudmFsKHdpbmRvdy5wcmljZUNhbGN1bGF0aW9uLmFkZEN1cnJlbnRUYXgocHJpY2UpKS5jaGFuZ2UoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGdldENvbWJpbmF0aW9ucyA9IChjb21iaW5hdGlvbnNJbWFnZXMpID0+IHtcbiAgICAgIGNvbnN0ICRqc0NvbWJpbmF0aW9uc0J1bGtGb3JtID0gJCgnI2NvbWJpbmF0aW9ucy1idWxrLWZvcm0nKTtcblxuICAgICAgaWYgKCEkanNDb21iaW5hdGlvbnNCdWxrRm9ybS5oYXNDbGFzcygnaW5hY3RpdmUnKSkge1xuICAgICAgICAkanNDb21iaW5hdGlvbnNCdWxrRm9ybS5hZGRDbGFzcygnaW5hY3RpdmUnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgJGNvbWJpbmF0aW9uc1VybCA9IGdldENvbWJpbmF0aW9uc1VybCgpO1xuXG4gICAgICBpZiAoJGNvbWJpbmF0aW9uc1VybCA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAkLmdldCgkY29tYmluYXRpb25zVXJsKS50aGVuKChyZXNwKSA9PiB7XG4gICAgICAgICQoJyNsb2FkaW5nLWF0dHJpYnV0ZScpLmJlZm9yZShyZXNwKTtcbiAgICAgICAgcmVmcmVzaEltYWdlc0NvbWJpbmF0aW9uKGNvbWJpbmF0aW9uc0ltYWdlcywgaWRzUHJvZHVjdEF0dHJpYnV0ZS5zbGljZShjdXJyZW50Q291bnQsIGN1cnJlbnRDb3VudCArIHN0ZXApKTtcbiAgICAgICAgY3VycmVudENvdW50ICs9IHN0ZXA7XG4gICAgICAgIGlmIChjdXJyZW50Q291bnQgPCBpZHNDb3VudCkge1xuICAgICAgICAgIGdldENvbWJpbmF0aW9ucyhjb21iaW5hdGlvbnNJbWFnZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjdGl2YXRlQ29tYmluYXRpb25zQnVsaygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAgKiBSZXRyaWV2ZSBVUkwgdG8gZ2V0IGEgc2V0IG9mIGNvbWJpbmF0aW9uIGZvcm1zIGZyb20gZGF0YSBhdHRyaWJ1dGVcbiAgICAgKiBDb25jYXRlbmF0ZSBpZHNfcHJvZHVjdF9hdHRyaWJ1dGUgdG8gbG9hZCBmcm9tIGEgc2xpY2Ugb2YgaWRzUHJvZHVjdEF0dHJpYnV0ZSBkZXBlbmRpbmcgb2Ygc3RlcCBhbmQgbGFzdCBzZXRcbiAgICAgKi9cbiAgICBjb25zdCBnZXRDb21iaW5hdGlvbnNVcmwgPSAoKSA9PiB7XG4gICAgICBjb25zdCAkbnVtYmVycyA9IGlkc1Byb2R1Y3RBdHRyaWJ1dGUuc2xpY2UoY3VycmVudENvdW50LCBjdXJyZW50Q291bnQgKyBzdGVwKS5qb2luKCctJyk7XG5cbiAgICAgIGlmICgkbnVtYmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJGpzQ29tYmluYXRpb25zTGlzdFxuICAgICAgICAuZGF0YSgnY29tYmluYXRpb25zLXVybCcpXG4gICAgICAgIC5yZXBsYWNlKFxuICAgICAgICAgICc6bnVtYmVycycsXG4gICAgICAgICAgJG51bWJlcnMsXG4gICAgICAgICk7XG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3QgYWN0aXZhdGVDb21iaW5hdGlvbnNCdWxrID0gKCkgPT4ge1xuICAgIGNvbnN0ICRqc0NvbWJpbmF0aW9uc0J1bGtGb3JtID0gJCgnI2NvbWJpbmF0aW9ucy1idWxrLWZvcm0nKTtcblxuICAgIGlmICgkanNDb21iaW5hdGlvbnNCdWxrRm9ybS5oYXNDbGFzcygnaW5hY3RpdmUnKSkge1xuICAgICAgJGpzQ29tYmluYXRpb25zQnVsa0Zvcm0ucmVtb3ZlQ2xhc3MoJ2luYWN0aXZlJyk7XG4gICAgICAkKCcjbG9hZGluZy1hdHRyaWJ1dGUnKS5mYWRlT3V0KDEwMDApLnJlbW92ZSgpO1xuICAgICAgJCgnW2RhdGEtdG9nZ2xlPVwicG9wb3ZlclwiXScpLnBvcG92ZXIoKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVmcmVzaEltYWdlc0NvbWJpbmF0aW9uID0gKGNvbWJpbmF0aW9uc0ltYWdlcywgaWRzUHJvZHVjdEF0dHJpYnV0ZSkgPT4ge1xuICAgICQuZWFjaChpZHNQcm9kdWN0QXR0cmlidXRlLCAoaW5kZXgsIHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCAkY29tYmluYXRpb25FbGVtID0gJChgLmNvbWJpbmF0aW9uW2RhdGE9XCIke3ZhbHVlfVwiXWApO1xuICAgICAgY29uc3QgJGluZGV4ID0gJGNvbWJpbmF0aW9uRWxlbS5hdHRyKCdkYXRhLWluZGV4Jyk7XG4gICAgICBsZXQgJGltYWdlc0VsZW0gPSAkY29tYmluYXRpb25FbGVtLmZpbmQoJy5pbWFnZXMnKTtcbiAgICAgIGxldCBodG1sID0gJyc7XG5cbiAgICAgIGlmICgkaW1hZ2VzRWxlbS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgJGltYWdlc0VsZW0gPSAkKGAjY29tYmluYXRpb25fJHskaW5kZXh9X2lkX2ltYWdlX2F0dHJgKTtcbiAgICAgIH1cblxuICAgICAgJC5lYWNoKGNvbWJpbmF0aW9uc0ltYWdlc1t2YWx1ZV0sIChrZXksIGltYWdlKSA9PiB7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbiAgICAgICAgaHRtbCArPSBgPGRpdiBjbGFzcz1cInByb2R1Y3QtY29tYmluYXRpb24taW1hZ2UgJHsoaW1hZ2UuaWRfaW1hZ2VfYXR0ciA/ICdpbWctaGlnaGxpZ2h0JyA6ICcnKX1cIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImNvbWJpbmF0aW9uXyR7JGluZGV4fVtpZF9pbWFnZV9hdHRyXVtdXCIgdmFsdWU9XCIke2ltYWdlLmlkfVwiICR7KGltYWdlLmlkX2ltYWdlX2F0dHIgPyAnY2hlY2tlZD1cImNoZWNrZWRcIicgOiAnJyl9PlxuICAgICAgICAgIDxpbWcgc3JjPVwiJHtpbWFnZS5iYXNlX2ltYWdlX3VybH0tc21hbGxfZGVmYXVsdC4ke2ltYWdlLmZvcm1hdH1cIiBhbHQ9XCJcIiAvPlxuICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAvKiBlc2xpbnQtZW5hYmxlZCBtYXgtbGVuICovXG4gICAgICB9KTtcbiAgICAgICRpbWFnZXNFbGVtLmh0bWwoaHRtbCk7XG4gICAgICAkY29tYmluYXRpb25FbGVtLmZhZGVJbigxMDAwKTtcbiAgICB9KTtcblxuICAgIHJlZnJlc2hEZWZhdWx0SW1hZ2UoKTtcbiAgfTtcblxuICBjb25zdCByZWZyZXNoRGVmYXVsdEltYWdlID0gKCkgPT4ge1xuICAgIGNvbnN0IHByb2R1Y3RDb3ZlckltYWdlRWxlbSA9ICQoJyNwcm9kdWN0LWltYWdlcy1kcm9wem9uZScpLmZpbmQoJy5pc2NvdmVyJyk7XG4gICAgbGV0IHByb2R1Y3REZWZhdWx0SW1hZ2VVcmwgPSBudWxsO1xuXG4gICAgLyoqIGdldCBwcm9kdWN0IGNvdmVyIGltYWdlICovXG4gICAgaWYgKHByb2R1Y3RDb3ZlckltYWdlRWxlbS5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGltZ0VsZW0gPSBwcm9kdWN0Q292ZXJJbWFnZUVsZW0ucGFyZW50KCkuZmluZCgnLmR6LWltYWdlJyk7XG5cbiAgICAgIC8qKiBEcm9wem9uZS5qcyB3b3JrYXJvdW5kIDogSWYgdGhpcyBpcyBhIGZyZXNoIHVwbG9hZCBpbWFnZSwgbG9vayB1cCBmb3IgYW4gaW1nLCBlbHNlIGZpbmQgYSBiYWNrZ3JvdW5kIHVybCAqL1xuICAgICAgaWYgKGltZ0VsZW0uZmluZCgnaW1nJykubGVuZ3RoKSB7XG4gICAgICAgIHByb2R1Y3REZWZhdWx0SW1hZ2VVcmwgPSBpbWdFbGVtLmZpbmQoJ2ltZycpLmF0dHIoJ3NyYycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvZHVjdERlZmF1bHRJbWFnZVVybCA9IGltZ0VsZW0uY3NzKCdiYWNrZ3JvdW5kLWltYWdlJylcbiAgICAgICAgICAucmVwbGFjZSgvXnVybFxcKFtcIiddPy8sICcnKVxuICAgICAgICAgIC5yZXBsYWNlKC9bXCInXT9cXCkkLywgJycpO1xuICAgICAgfVxuICAgIH1cblxuICAgICQuZWFjaCgkKCcjZm9ybSAuY29tYmluYXRpb24tZm9ybScpLCAoa2V5LCBlbGVtKSA9PiB7XG4gICAgICBsZXQgZGVmYXVsdEltYWdlVXJsID0gcHJvZHVjdERlZmF1bHRJbWFnZVVybDtcblxuICAgICAgLyoqIGdldCBmaXJzdCBzZWxlY3RlZCBpbWFnZSAqL1xuICAgICAgY29uc3QgZGVmYXVsdEltYWdlRWxlbSA9ICQoZWxlbSkuZmluZCgnLnByb2R1Y3QtY29tYmluYXRpb24taW1hZ2UgaW5wdXQ6Y2hlY2tlZDpmaXJzdCcpO1xuXG4gICAgICBpZiAoZGVmYXVsdEltYWdlRWxlbS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgZGVmYXVsdEltYWdlVXJsID0gZGVmYXVsdEltYWdlRWxlbS5wYXJlbnQoKS5maW5kKCdpbWcnKS5hdHRyKCdzcmMnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRlZmF1bHRJbWFnZVVybCkge1xuICAgICAgICBjb25zdCBpbWcgPSBgPGltZyBzcmM9XCIke2RlZmF1bHRJbWFnZVVybH1cIiBjbGFzcz1cImltZy1yZXNwb25zaXZlXCIgLz5gO1xuICAgICAgICAkKGAjYXR0cmlidXRlXyR7JChlbGVtKS5hdHRyKCdkYXRhJyl9YCkuZmluZCgndGQuaW1nJykuaHRtbChpbWcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGdlbmVyYXRlID0gKCkgPT4ge1xuICAgICQuYWpheCh7XG4gICAgICB0eXBlOiAnUE9TVCcsXG4gICAgICB1cmw6ICQoJyNmb3JtX3N0ZXAzX2F0dHJpYnV0ZXMnKS5hdHRyKCdkYXRhLWFjdGlvbicpLFxuICAgICAgZGF0YTogJCgnI2F0dHJpYnV0ZXMtZ2VuZXJhdG9yIGlucHV0LmF0dHJpYnV0ZS1nZW5lcmF0b3IsICNmb3JtX2lkX3Byb2R1Y3QnKS5zZXJpYWxpemUoKSxcbiAgICAgIGJlZm9yZVNlbmQoKSB7XG4gICAgICAgICQoJyNjcmVhdGUtY29tYmluYXRpb25zLCAjc3VibWl0LCAuYnRuLXN1Ym1pdCcpLmF0dHIoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgICB9LFxuICAgICAgc3VjY2VzcyhyZXNwb25zZSkge1xuICAgICAgICB3aW5kb3cucmVmcmVzaFRvdGFsQ29tYmluYXRpb25zKDEsICQocmVzcG9uc2UuZm9ybSkuZmlsdGVyKCcuY29tYmluYXRpb24ubG9hZGVkJykubGVuZ3RoKTtcbiAgICAgICAgJCgnI2FjY29yZGlvbl9jb21iaW5hdGlvbnMnKS5hcHBlbmQocmVzcG9uc2UuZm9ybSk7XG4gICAgICAgIHdpbmRvdy5kaXNwbGF5RmllbGRzTWFuYWdlci5yZWZyZXNoKCk7XG4gICAgICAgIGNvbnN0IHVybCA9ICQoJy5qcy1jb21iaW5hdGlvbnMtbGlzdCcpLmF0dHIoJ2RhdGEtYWN0aW9uLXJlZnJlc2gtaW1hZ2VzJykucmVwbGFjZSgvZm9ybS1pbWFnZXNcXC9cXGQrLywgYGZvcm0taW1hZ2VzLyR7JCgnLmpzLWNvbWJpbmF0aW9ucy1saXN0JykuZGF0YSgnaWQtcHJvZHVjdCcpfWApO1xuICAgICAgICAkLmdldCh1cmwpXG4gICAgICAgICAgLnRoZW4oKGNvbWJpbmF0aW9uc0ltYWdlcykgPT4ge1xuICAgICAgICAgICAgcmVmcmVzaEltYWdlc0NvbWJpbmF0aW9uKGNvbWJpbmF0aW9uc0ltYWdlcywgcmVzcG9uc2UuaWRzX3Byb2R1Y3RfYXR0cmlidXRlKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAvKiogaW5pdGlhbGl6ZSBmb3JtICovXG4gICAgICAgICQoJ2lucHV0LmF0dHJpYnV0ZS1nZW5lcmF0b3InKS5yZW1vdmUoKTtcbiAgICAgICAgJCgnI2F0dHJpYnV0ZXMtZ2VuZXJhdG9yIGRpdi50b2tlbicpLnJlbW92ZSgpO1xuICAgICAgICAkKCcuanMtYXR0cmlidXRlLWNoZWNrYm94OmNoZWNrZWQnKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAkKHRoaXMpLnByb3AoJ2NoZWNrZWQnLCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgICAgICAkKCcjY29tYmluYXRpb25zX3RoZWFkJykuZmFkZUluKCk7XG4gICAgICB9LFxuICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICQoJyNjcmVhdGUtY29tYmluYXRpb25zLCAjc3VibWl0LCAuYnRuLXN1Ym1pdCcpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgIGFjdGl2YXRlQ29tYmluYXRpb25zQnVsaygpO1xuICAgICAgICB3aW5kb3cuc3VwcGxpZXJDb21iaW5hdGlvbnMucmVmcmVzaCgpO1xuICAgICAgICB3aW5kb3cud2FyZWhvdXNlQ29tYmluYXRpb25zLnJlZnJlc2goKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG59XG4iLCIvKipcbiAqIE5lc3RlZCBjYXRlZ29yaWVzIG1hbmFnZW1lbnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKCkge1xuICBjb25zdCBuZXN0ZWRDYXRlZ29yaWVzRm9ybSA9ICQoJyNmb3JtX3N0ZXAxX2NhdGVnb3JpZXMnKTtcblxuICByZXR1cm4ge1xuICAgIGluaXQoKSB7XG4gICAgICBpZiAobmVzdGVkQ2F0ZWdvcmllc0Zvcm0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmVzdGVkQ2F0ZWdvcmllc0Zvcm0uY2F0ZWdvcnl0cmVlKCk7XG4gICAgICB0aGlzLnJlbW92ZURlZmF1bHRJZk5lZWRlZCgpO1xuXG4gICAgICAvLyBub3cgd2UgY2FuIHNlbGVjdCBkZWZhdWx0IGNhdGVnb3J5IGZyb20gbmVzdGVkIENhdGVnb3JpZXMgZXZlbiBpZiBpdCdzIG5vdCByZWxhdGVkIGZyb20gYSBcImNvZGVcIiBwb2ludCBvZiB2aWV3LlxuICAgICAgbmVzdGVkQ2F0ZWdvcmllc0Zvcm0ub24oJ2NoYW5nZScsICdpbnB1dC5kZWZhdWx0LWNhdGVnb3J5JywgZnVuY3Rpb24gdXBkYXRlRGVmYXVsdENhdGVnb3J5KCkge1xuICAgICAgICBjb25zdCBjYXRlZ29yeUlkID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgLyogd2UgY2FuJ3Qgc2VsZWN0IGEgZGVmYXVsdCBjYXRlZ29yeSBpZiBjYXRlZ29yeSBpcyBub3Qgc2VsZWN0ZWRcbiAgICAgICAgICogdGhhdCdzIHdoeSB3ZSBjaGVjayBjYXRlZ29yeSBmaXJzdCBpbnN0ZWFkIG9mIHdhcm4gdXNlci5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gbmVzdGVkQ2F0ZWdvcmllc0Zvcm0uZmluZChgaW5wdXRbdmFsdWU9XCIke2NhdGVnb3J5SWR9XCJdLmNhdGVnb3J5YCk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRjYXQgPSBuZXN0ZWRDYXRlZ29yaWVzRm9ybS5maW5kKGBpbnB1dFt2YWx1ZT1cIiR7Y2F0ZWdvcnlJZH1cIl0uZGVmYXVsdC1jYXRlZ29yeWApO1xuXG4gICAgICAgIGlmIChjYXRlZ29yeS5pcygnOmNoZWNrZWQnKSA9PT0gZmFsc2UgJiYgZGVmYXVsdGNhdC5pcygnOmNoZWNrZWQnKSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGNhdGVnb3J5LnRyaWdnZXIoJ2NsaWNrJyk7XG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmRlZmF1bHRDYXRlZ29yeS5jaGVjayhjYXRlZ29yeUlkKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcmVtb3ZlRGVmYXVsdElmTmVlZGVkKCkge1xuICAgICAgLyoqXG4gICAgICAgKiBXaGF0IGlmIHdlIHVuc2VsZWN0IGNhdGVnb3J5IHdoZW4gaXQncyBhIGRlZmF1bHQgY2F0ZWdvcnkgP1xuICAgICAgICovXG4gICAgICBuZXN0ZWRDYXRlZ29yaWVzRm9ybS5vbignY2hhbmdlJywgJ2lucHV0LmNhdGVnb3J5JywgZnVuY3Rpb24gcmVtb3ZlRGVmYXVsdENhdGVnb3J5SWZOb3RTZWxlY3RlZCgpIHtcbiAgICAgICAgY29uc3QgZmluZENsb3Nlc3RDaGVja2VkQ2F0ZWdvcnkgPSBmdW5jdGlvbiAoY2F0ZWdvcnkpIHtcbiAgICAgICAgICBjb25zdCBwYXJlbnQgPSBjYXRlZ29yeS5jbG9zZXN0KCd1bCcpLnBhcmVudCgpO1xuICAgICAgICAgIGNvbnN0IHBhcmVudENhdGVnb3J5ID0gcGFyZW50LmZpbmQoJz4gZGl2ID4gbGFiZWwgPiBpbnB1dCcpO1xuXG4gICAgICAgICAgaWYgKCFwYXJlbnQuaXMoJ2xpJykpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXN0ZWRDYXRlZ29yaWVzRm9ybS5maW5kKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCcpLmZpcnN0KCk7XG4gICAgICAgICAgfSBpZiAocGFyZW50Q2F0ZWdvcnkucHJvcCgnY2hlY2tlZCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyZW50Q2F0ZWdvcnk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmaW5kQ2xvc2VzdENoZWNrZWRDYXRlZ29yeShwYXJlbnQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNhdGVnb3J5SWQgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICBjb25zdCBjYXRlZ29yeSA9IG5lc3RlZENhdGVnb3JpZXNGb3JtLmZpbmQoYGlucHV0W3ZhbHVlPVwiJHtjYXRlZ29yeUlkfVwiXS5jYXRlZ29yeWApO1xuICAgICAgICBjb25zdCBkZWZhdWx0Y2F0ID0gbmVzdGVkQ2F0ZWdvcmllc0Zvcm0uZmluZChgaW5wdXRbdmFsdWU9XCIke2NhdGVnb3J5SWR9XCJdLmRlZmF1bHQtY2F0ZWdvcnlgKTtcblxuICAgICAgICBpZiAobmVzdGVkQ2F0ZWdvcmllc0Zvcm0uZmluZCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykuZmlsdGVyKCc6Y2hlY2tlZCcpLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICBjYXRlZ29yeS5wcm9wKCdjaGVja2VkJywgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2F0ZWdvcnkuaXMoJzpjaGVja2VkJykgPT09IGZhbHNlICYmIGRlZmF1bHRjYXQuaXMoJzpjaGVja2VkJykgPT09IHRydWUpIHtcbiAgICAgICAgICBjb25zdCBuZXdDYXRlZ29yeSA9IGZpbmRDbG9zZXN0Q2hlY2tlZENhdGVnb3J5KGNhdGVnb3J5KTtcblxuICAgICAgICAgIHdpbmRvdy5kZWZhdWx0Q2F0ZWdvcnkuY2hlY2sobmV3Q2F0ZWdvcnkudmFsKCkpO1xuICAgICAgICAgIHdpbmRvdy5wcm9kdWN0Q2F0ZWdvcmllc1RhZ3MuY2hlY2tEZWZhdWx0Q2F0ZWdvcnkobmV3Q2F0ZWdvcnkudmFsKCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xufVxuIiwiLyoqXG4gKiBDb21iaW5hdGlvbiBidWxrIGFjdGlvbnMgbWFuYWdlbWVudFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGJ1bGtGb3JtID0gJCgnI2J1bGstY29tYmluYXRpb25zLWNvbnRhaW5lcicpO1xuICBjb25zdCBkZWxldGVDb21iaW5hdGlvbnNCdG4gPSAkKCcjZGVsZXRlLWNvbWJpbmF0aW9ucycpO1xuICBjb25zdCBhcHBseUNoYW5nZXNCdG4gPSAkKCcjYXBwbHktb24tY29tYmluYXRpb25zJyk7XG4gIGNvbnN0IHN5bmNlZENvbGxlY3Rpb24gPSAkKCdbZGF0YS11bmlxaWRdJyk7XG4gIGNvbnN0IGZpbmFsUHJpY2UgPSAkKCcjZm9ybV9zdGVwMl9wcmljZScpO1xuICBjb25zdCBmaW5hbFByaWNlSVQgPSAkKCcjZm9ybV9zdGVwMl9wcmljZV90dGMnKTtcbiAgY29uc3QgZmluYWxQcmljZUJhc2ljcyA9ICQoJyNmb3JtX3N0ZXAxX3ByaWNlX3Nob3J0Y3V0Jyk7XG4gIGNvbnN0IGZpbmFsUHJpY2VCYXNpY3NJVCA9ICQoJyNmb3JtX3N0ZXAxX3ByaWNlX3R0Y19zaG9ydGN1dCcpO1xuICBjb25zdCBlY290YXhUSSA9ICQoJyNmb3JtX3N0ZXAyX2Vjb3RheCcpO1xuXG4gIHJldHVybiB7XG4gICAgaW5pdDogZnVuY3Rpb24gaW5pdCgpIHtcbiAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgLy8gc3RvcCBwcm9wYWdhdGlvbiBvbiBidXR0b25zXG4gICAgICBkZWxldGVDb21iaW5hdGlvbnNCdG4ub24oJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoYXQuZGVsZXRlQ29tYmluYXRpb25zKCk7XG4gICAgICB9KTtcblxuICAgICAgYXBwbHlDaGFuZ2VzQnRuLm9uKCdjbGljaycsIChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGF0LmFwcGx5Q2hhbmdlc09uQ29tYmluYXRpb25zKClcbiAgICAgICAgICAuaGlkZUZvcm0oKVxuICAgICAgICAgIC5yZXNldEZvcm0oKVxuICAgICAgICAgIC51bnNlbGVjdENvbWJpbmF0aW9ucygpXG4gICAgICAgICAgLnN1Ym1pdFVwZGF0ZSgpO1xuICAgICAgfSk7XG5cbiAgICAgIC8qIGlmIGZpbmFsIHByaWNlIGNoYW5nZSB3aXRoIHVzZXIgaW50ZXJhY3Rpb24sIGNvbWJpbmF0aW9ucyBzaG91bGQgYmUgaW1wYWN0ZWQgKi9cbiAgICAgIGZpbmFsUHJpY2Uub24oJ2JsdXInLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuc3luY1RvUHJpY2luZ1RhYigpO1xuICAgICAgfSk7XG5cbiAgICAgIGZpbmFsUHJpY2VJVC5vbignYmx1cicsICgpID0+IHtcbiAgICAgICAgdGhpcy5zeW5jVG9QcmljaW5nVGFiKCk7XG4gICAgICB9KTtcblxuICAgICAgLyogaWYgd2UgdXNlIGZpbmFsIHByaWNlIHNob3J0Y3V0cywgYWxzbyBjb21iaW5hdGlvbnMgc2hvdWxkIGJlIGltcGFjdGVkICovXG4gICAgICBmaW5hbFByaWNlQmFzaWNzLm9uKCdibHVyJywgKCkgPT4ge1xuICAgICAgICB0aGlzLnN5bmNUb1ByaWNpbmdUYWIoKTtcbiAgICAgIH0pO1xuXG4gICAgICBmaW5hbFByaWNlQmFzaWNzSVQub24oJ2JsdXInLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuc3luY1RvUHJpY2luZ1RhYigpO1xuICAgICAgfSk7XG5cbiAgICAgIGVjb3RheFRJLm9uKCdibHVyJywgKCkgPT4ge1xuICAgICAgICB0aGlzLnN5bmNUb1ByaWNpbmdUYWIoKTtcbiAgICAgIH0pO1xuXG4gICAgICBzeW5jZWRDb2xsZWN0aW9uLm9uKCdET01TdWJ0cmVlTW9kaWZpZWQnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgdW5pcWlkID0gZXZlbnQudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS11bmlxaWQnKTtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBldmVudC50YXJnZXQuaW5uZXJUZXh0O1xuXG4gICAgICAgIGNvbnN0IHNwYW5zID0gJChgW2RhdGEtdW5pcWlkPVwiJHt1bmlxaWR9XCJdYCk7XG5cbiAgICAgICAgc3BhbnMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCQodGhpcykudGV4dCgpICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgJCh0aGlzKS50ZXh0KG5ld1ZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIGJ1bGsgc2VsZWN0IGFuaW1hdGlvblxuICAgICAgJCgnI3RvZ2dsZS1hbGwtY29tYmluYXRpb25zJykub24oJ2NoYW5nZScsIChldmVudCkgPT4ge1xuICAgICAgICAkKCcjYWNjb3JkaW9uX2NvbWJpbmF0aW9ucyB0ZDpmaXJzdC1jaGlsZCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAkKHRoaXMpLnByb3AoJ2NoZWNrZWQnLCAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpLnByb3AoJ2NoZWNrZWQnKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgICQoZG9jdW1lbnQpLm9uKCdjaGFuZ2UnLCAnLmpzLWNvbWJpbmF0aW9uJywgKCkgPT4ge1xuICAgICAgICBpZiAoJCgnLmJ1bGstYWN0aW9uJykuYXR0cignYXJpYS1leHBhbmRlZCcpID09PSAnZmFsc2UnIHx8ICEkKCcuanMtY29tYmluYXRpb24nKS5pcygnOmNoZWNrZWQnKSkge1xuICAgICAgICAgICQoJy5qcy1jb2xsYXBzZScpLmNvbGxhcHNlKCd0b2dnbGUnKTtcbiAgICAgICAgfVxuICAgICAgICAkKCdzcGFuLmpzLWJ1bGstY29tYmluYXRpb25zJykudGV4dCgkKCdpbnB1dC5qcy1jb21iaW5hdGlvbjpjaGVja2VkJykubGVuZ3RoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZ2V0U2VsZWN0ZWRDb21iaW5hdGlvbnM6IGZ1bmN0aW9uIGdldFNlbGVjdGVkQ29tYmluYXRpb25zKCkge1xuICAgICAgY29uc3QgY29tYmluYXRpb25zID0gW107XG4gICAgICBjb25zdCBzZWxlY3RlZENvbWJpbmF0aW9ucyA9IEFycmF5LmZyb20oXG4gICAgICAgICQoJyNhY2NvcmRpb25fY29tYmluYXRpb25zIHRkOmZpcnN0LWNoaWxkIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkJyksXG4gICAgICApO1xuICAgICAgc2VsZWN0ZWRDb21iaW5hdGlvbnMuZm9yRWFjaCgoY29tYmluYXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgY29tYmluYXRpb25JZCA9IGNvbWJpbmF0aW9uLmdldEF0dHJpYnV0ZSgnZGF0YS1pZCcpO1xuICAgICAgICBjb25zdCBjb21iaW5hdGlvbkluZGV4ID0gY29tYmluYXRpb24uZ2V0QXR0cmlidXRlKCdkYXRhLWluZGV4Jyk7XG4gICAgICAgIGNvbWJpbmF0aW9ucy5wdXNoKG5ldyBDb21iaW5hdGlvbihjb21iaW5hdGlvbklkLCBjb21iaW5hdGlvbkluZGV4KSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGNvbWJpbmF0aW9ucztcbiAgICB9LFxuICAgIGFwcGx5Q2hhbmdlc09uQ29tYmluYXRpb25zOiBmdW5jdGlvbiBhcHBseUNoYW5nZXNPbkNvbWJpbmF0aW9ucygpIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZ2V0Rm9ybVZhbHVlcygpO1xuICAgICAgY29uc3QgY29tYmluYXRpb25zID0gdGhpcy5nZXRTZWxlY3RlZENvbWJpbmF0aW9ucygpO1xuICAgICAgY29tYmluYXRpb25zLmZvckVhY2goKGNvbWJpbmF0aW9uKSA9PiB7XG4gICAgICAgIGNvbWJpbmF0aW9uLnVwZGF0ZUZvcm0odmFsdWVzKTtcbiAgICAgICAgY29tYmluYXRpb24uc3luY1ZhbHVlcyh2YWx1ZXMpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgZGVsZXRlQ29tYmluYXRpb25zOiBmdW5jdGlvbiBkZWxldGVDb21iaW5hdGlvbnMoKSB7XG4gICAgICBjb25zdCBjb21iaW5hdGlvbnMgPSB0aGlzLmdldFNlbGVjdGVkQ29tYmluYXRpb25zKCk7XG4gICAgICBjb25zdCBjb21iaW5hdGlvbnNJZHMgPSBbXTtcbiAgICAgIGNvbWJpbmF0aW9ucy5mb3JFYWNoKChjb21iaW5hdGlvbikgPT4ge1xuICAgICAgICBjb21iaW5hdGlvbnNJZHMucHVzaChjb21iaW5hdGlvbi5kb21JZCk7XG4gICAgICB9KTtcblxuICAgICAgd2luZG93Lm1vZGFsQ29uZmlybWF0aW9uLmNyZWF0ZShcbiAgICAgICAgd2luZG93LnRyYW5zbGF0ZV9qYXZhc2NyaXB0c1snQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgaXRlbShzKT8nXSxcbiAgICAgICAgbnVsbCxcbiAgICAgICAge1xuICAgICAgICAgIG9uQ29udGludWUoKSB7XG4gICAgICAgICAgICBjb25zdCBkZWxldGlvblVSTCA9ICQoZGVsZXRlQ29tYmluYXRpb25zQnRuKS5hdHRyKCdkYXRhJyk7XG4gICAgICAgICAgICAkLmFqYXgoe1xuICAgICAgICAgICAgICB0eXBlOiAnREVMRVRFJyxcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICdhdHRyaWJ1dGUtaWRzJzogY29tYmluYXRpb25zSWRzLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB1cmw6IGRlbGV0aW9uVVJMLFxuICAgICAgICAgICAgICBiZWZvcmVTZW5kKCkge1xuICAgICAgICAgICAgICAgICQoJyNjcmVhdGUtY29tYmluYXRpb25zLCAjYXBwbHktb24tY29tYmluYXRpb25zLCAjc3VibWl0LCAuYnRuLXN1Ym1pdCcpLmF0dHIoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHN1Y2Nlc3MocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2hvd1N1Y2Nlc3NNZXNzYWdlKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5yZWZyZXNoVG90YWxDb21iaW5hdGlvbnMoLTEsIGNvbWJpbmF0aW9uc0lkcy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICQoJ3NwYW4uanMtYnVsay1jb21iaW5hdGlvbnMnKS50ZXh0KCcwJyk7XG4gICAgICAgICAgICAgICAgY29tYmluYXRpb25zSWRzLmZvckVhY2goKGNvbWJpbmF0aW9uSWQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbWJpbmF0aW9uID0gbmV3IENvbWJpbmF0aW9uKGNvbWJpbmF0aW9uSWQpO1xuICAgICAgICAgICAgICAgICAgY29tYmluYXRpb24ucmVtb3ZlRnJvbURPTSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5kaXNwbGF5RmllbGRzTWFuYWdlci5yZWZyZXNoKCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGVycm9yKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LnNob3dFcnJvck1lc3NhZ2UoalF1ZXJ5LnBhcnNlSlNPTihyZXNwb25zZS5yZXNwb25zZVRleHQpLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjb21wbGV0ZSgpIHtcbiAgICAgICAgICAgICAgICAkKCcjY3JlYXRlLWNvbWJpbmF0aW9ucywgI2FwcGx5LW9uLWNvbWJpbmF0aW9ucywgI3N1Ym1pdCwgLmJ0bi1zdWJtaXQnKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSkuc2hvdygpO1xuICAgIH0sXG4gICAgZ2V0Rm9ybVZhbHVlczogZnVuY3Rpb24gZ2V0Rm9ybVZhbHVlcygpIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IFtdO1xuICAgICAgJChidWxrRm9ybSkuZmluZCgnaW5wdXQnKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQodGhpcykudmFsKCkgIT09ICcnICYmICQodGhpcykuYXR0cignaWQnKSAhPT0gJ3Byb2R1Y3RfY29tYmluYXRpb25fYnVsa19fdG9rZW4nKSB7XG4gICAgICAgICAgdmFsdWVzLnB1c2goe1xuICAgICAgICAgICAgaWQ6ICQodGhpcykuYXR0cignaWQnKSxcbiAgICAgICAgICAgIHZhbHVlOiAkKHRoaXMpLnZhbCgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfSxcbiAgICByZXNldEZvcm06IGZ1bmN0aW9uIHJlc2V0Rm9ybSgpIHtcbiAgICAgIGJ1bGtGb3JtLmZpbmQoJ2lucHV0JykudmFsKCcnKTtcblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICB1bnNlbGVjdENvbWJpbmF0aW9uczogZnVuY3Rpb24gdW5zZWxlY3RDb21iaW5hdGlvbnMoKSB7XG4gICAgICAvLyBVc2Ugb2YgdGhlIGJ1bGsgYWN0aW9uIGJ1dHRvbi4gSXQgaGFzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHVuc2VsZWN0IGFsbCB0aGUgY29tYmluYXRpb25zXG4gICAgICAkKCcjdG9nZ2xlLWFsbC1jb21iaW5hdGlvbnMnKS5wcm9wKCdjaGVja2VkJywgZmFsc2UpO1xuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIGhpZGVGb3JtOiBmdW5jdGlvbiB0b2dnbGVGb3JtKCkge1xuICAgICAgYnVsa0Zvcm0uY29sbGFwc2UoJ2hpZGUnKTtcblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBzdWJtaXRVcGRhdGU6IGZ1bmN0aW9uIHN1Ym1pdFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IGdsb2JhbFByb2R1Y3RTdWJtaXRCdXR0b24gPSAkKCcjZm9ybScpOyAvLyBAdG9kbzogY2hvb3NlIGEgYmV0dGVyIGlkZW50aWZpZXJcbiAgICAgIGdsb2JhbFByb2R1Y3RTdWJtaXRCdXR0b24uc3VibWl0KCk7XG4gICAgfSxcbiAgICBzeW5jVG9QcmljaW5nVGFiOiBmdW5jdGlvbiBzeW5jVG9QcmljaW5nVGFiKCkge1xuICAgICAgJCgndHIuY29tYmluYXRpb24nKS50b0FycmF5KCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB0YWJsZVJvdyA9ICQoYCMke2l0ZW0uaWR9YCk7XG4gICAgICAgIC8vIFdlIG5lZWQgdGhpcyBiZWNhdXNlIHRoZXJlIGlzIGEgc3BlY2lmaWMgZGF0YT1cInNtdGhnXCIgYXR0cmlidXRlIHNvIHdlIGNhbid0IHVzZSBkYXRhKCkgZnVuY3Rpb25cbiAgICAgICAgY29uc3QgYXR0cmlidXRlSWQgPSB0YWJsZVJvdy5hdHRyKCdkYXRhJyk7XG5cbiAgICAgICAgLy8gR2V0IGNvbWJpbmF0aW9uIGZpbmFsIHByaWNlIHZhbHVlIGZyb20gY29tYmluYXRpb24gZm9ybVxuICAgICAgICBjb25zdCBjb21iaW5hdGlvbkZpbmFsUHJpY2UgPSB3aW5kb3cucHJpY2VDYWxjdWxhdGlvbi5nZXRDb21iaW5hdGlvbkZpbmFsUHJpY2VUYXhFeGNsdWRlZEJ5SWQoYXR0cmlidXRlSWQpO1xuICAgICAgICBjb25zdCBjb21iaW5hdGlvbkZpbmFsUHJpY2VMYWJlbCA9IHRhYmxlUm93LmZpbmQoJy5hdHRyaWJ1dGUtZmluYWxwcmljZSBzcGFuLmZpbmFsLXByaWNlJyk7XG4gICAgICAgIGNvbWJpbmF0aW9uRmluYWxQcmljZUxhYmVsLmh0bWwoY29tYmluYXRpb25GaW5hbFByaWNlKTtcblxuICAgICAgICAvLyBVcGRhdGUgZWNvdGF4IHByZXZpZXcgKHRheCBpbmNsdWRlZClcbiAgICAgICAgbGV0IGNvbWJpbmF0aW9uRWNvdGF4VEkgPSB3aW5kb3cucHJpY2VDYWxjdWxhdGlvbi5nZXRDb21iaW5hdGlvbkVjb3RheFRheEluY2x1ZGVkQnlJZChhdHRyaWJ1dGVJZCk7XG5cbiAgICAgICAgaWYgKGNvbWJpbmF0aW9uRWNvdGF4VEkgPT09IDApIHtcbiAgICAgICAgICBjb21iaW5hdGlvbkVjb3RheFRJID0gd2luZG93LnByaWNlQ2FsY3VsYXRpb24uZ2V0UHJvZHVjdEVjb3RheFRheEluY2x1ZGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWNvVGF4TGFiZWwgPSB0YWJsZVJvdy5maW5kKCcuYXR0cmlidXRlLWZpbmFscHJpY2Ugc3Bhbi5hdHRyaWJ1dGUtZWNvdGF4Jyk7XG4gICAgICAgIGVjb1RheExhYmVsLmh0bWwoTnVtYmVyKHdpbmRvdy5wc19yb3VuZChjb21iaW5hdGlvbkVjb3RheFRJLCAyKSkudG9GaXhlZCgyKSk7IC8vIDIgZGlnaXRzIGZvciBzaG9ydFxuICAgICAgICBjb25zdCBlY29UYXhQcmV2aWV3ID0gdGFibGVSb3cuZmluZCgnLmF0dHJpYnV0ZS1maW5hbHByaWNlIC5hdHRyaWJ1dGUtZWNvdGF4LXByZXZpZXcnKTtcbiAgICAgICAgZWNvVGF4UHJldmlldy50b2dnbGVDbGFzcygnZC1ub25lJywgTnVtYmVyKGNvbWJpbmF0aW9uRWNvdGF4VEkpID09PSAwKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG5cbmNsYXNzIENvbWJpbmF0aW9uIHtcbiAgY29uc3RydWN0b3IoZG9tSWQsIGluZGV4KSB7XG4gICAgdGhpcy5pbnB1dEJ1bGtQYXR0ZXJuID0gJ3Byb2R1Y3RfY29tYmluYXRpb25fYnVsa18nO1xuICAgIHRoaXMuaW5wdXRQYXR0ZXJuID0gYGNvbWJpbmF0aW9uXyR7aW5kZXh9X2A7XG4gICAgdGhpcy5kb21JZCA9IGRvbUlkO1xuICAgIHRoaXMuYXBwSWQgPSBgYXR0cmlidXRlXyR7dGhpcy5kb21JZH1gO1xuICAgIHRoaXMuZWxlbWVudCA9ICQoYCMke3RoaXMuYXBwSWR9YCk7XG4gICAgdGhpcy5mb3JtID0gJChgI2NvbWJpbmF0aW9uX2Zvcm1fJHt0aGlzLmRvbUlkfWApO1xuICB9XG5cbiAgaXNTZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmNoZWNrZWQ7XG4gIH1cblxuICByZW1vdmVGcm9tRE9NKCkge1xuICAgICQodGhpcy5lbGVtZW50KS5yZW1vdmUoKTtcbiAgfVxuXG4gIHVwZGF0ZUZvcm0odmFsdWVzKSB7XG4gICAgdmFsdWVzLmZvckVhY2goKHZhbHVlT2JqZWN0KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZUlkID0gdmFsdWVPYmplY3QuaWQuc3Vic3RyKHRoaXMuaW5wdXRCdWxrUGF0dGVybi5sZW5ndGgpO1xuICAgICAgY29uc3QgJGZpZWxkID0gJChgIyR7dGhpcy5jb252ZXJ0SW5wdXQodmFsdWVJZCl9YCk7XG5cbiAgICAgIGlmICgkZmllbGQuaXMoJzpjaGVja2JveCcpKSB7XG4gICAgICAgICRmaWVsZC5wcm9wKCdjaGVja2VkJywgISF2YWx1ZU9iamVjdC52YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAkZmllbGQudmFsKHZhbHVlT2JqZWN0LnZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5mb3JtO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJlbGF0ZWQgaW5wdXQgZmllbGQgaW4gbGVnYWN5IGZvcm0gZnJvbVxuICAgKiBidWxrIGZvcm0gZmllbGRcbiAgICpcbiAgICogQHBhcmFtIGJ1bGtJbnB1dFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgY29udmVydElucHV0KGJ1bGtJbnB1dCkge1xuICAgIGxldCBjb252ZXJ0ZWRJbnB1dCA9ICcnO1xuXG4gICAgc3dpdGNoIChidWxrSW5wdXQpIHtcbiAgICAgIGNhc2UgJ3F1YW50aXR5JzpcbiAgICAgIGNhc2UgJ3JlZmVyZW5jZSc6XG4gICAgICBjYXNlICdtaW5pbWFsX3F1YW50aXR5JzpcbiAgICAgIGNhc2UgJ2xvd19zdG9ja190aHJlc2hvbGQnOlxuICAgICAgY2FzZSAnbG93X3N0b2NrX2FsZXJ0JzpcbiAgICAgICAgY29udmVydGVkSW5wdXQgPSBgJHt0aGlzLmlucHV0UGF0dGVybn1hdHRyaWJ1dGVfJHtidWxrSW5wdXR9YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjb3N0X3ByaWNlJzpcbiAgICAgICAgY29udmVydGVkSW5wdXQgPSBgJHt0aGlzLmlucHV0UGF0dGVybn1hdHRyaWJ1dGVfd2hvbGVzYWxlX3ByaWNlYDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkYXRlX2F2YWlsYWJpbGl0eSc6XG4gICAgICAgIGNvbnZlcnRlZElucHV0ID0gYCR7dGhpcy5pbnB1dFBhdHRlcm59YXZhaWxhYmxlX2RhdGVfYXR0cmlidXRlYDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpbXBhY3Rfb25fd2VpZ2h0JzpcbiAgICAgICAgY29udmVydGVkSW5wdXQgPSBgJHt0aGlzLmlucHV0UGF0dGVybn1hdHRyaWJ1dGVfd2VpZ2h0YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpbXBhY3Rfb25fcHJpY2VfdGUnOlxuICAgICAgICBjb252ZXJ0ZWRJbnB1dCA9IGAke3RoaXMuaW5wdXRQYXR0ZXJufWF0dHJpYnV0ZV9wcmljZWA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW1wYWN0X29uX3ByaWNlX3RpJzpcbiAgICAgICAgY29udmVydGVkSW5wdXQgPSBgJHt0aGlzLmlucHV0UGF0dGVybn1hdHRyaWJ1dGVfcHJpY2VUSWA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICB9XG5cbiAgICByZXR1cm4gY29udmVydGVkSW5wdXQ7XG4gIH1cblxuICAvKipcbiAgICogU3luYyB2YWx1ZXMgd2l0aCBmYXN0IGJ1bGsgZWRpdCBmb3JtIG9mIGVhY2ggY29tYmluYXRpb25cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlc1xuICAgKiBAcmV0dXJucyB7Ym9vbH1cbiAgICovXG4gIHN5bmNWYWx1ZXModmFsdWVzKSB7XG4gICAgdmFsdWVzLmZvckVhY2goKHZhbHVlT2JqZWN0KSA9PiB7XG4gICAgICBsZXQgdmFsdWVJZCA9IHZhbHVlT2JqZWN0LmlkLnN1YnN0cih0aGlzLmlucHV0QnVsa1BhdHRlcm4ubGVuZ3RoKTtcbiAgICAgIGNvbnN0IHt2YWx1ZX0gPSB2YWx1ZU9iamVjdDtcblxuICAgICAgY29uc3Qgc3luY2VkUHJvcGVydGllcyA9IFtcbiAgICAgICAgJ3F1YW50aXR5JyxcbiAgICAgICAgJ2ltcGFjdF9vbl9wcmljZV90ZScsXG4gICAgICBdO1xuXG4gICAgICBpZiAoc3luY2VkUHJvcGVydGllcy5pbmRleE9mKHZhbHVlSWQpICE9PSAtMSkge1xuICAgICAgICB2YWx1ZUlkID0gdmFsdWVJZCA9PT0gJ3F1YW50aXR5JyA/ICdxdWFudGl0eScgOiAncHJpY2UnO1xuICAgICAgICBjb25zdCBpbnB1dCA9ICQoYCNhdHRyaWJ1dGVfJHt0aGlzLmRvbUlkfSAuYXR0cmlidXRlLSR7dmFsdWVJZH0gaW5wdXRgKTtcbiAgICAgICAgaW5wdXQudmFsKHZhbHVlKTtcbiAgICAgICAgaW5wdXQuY2hhbmdlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgJGRlZmF1bHRBcnJvd1dpZHRoID0gMzU7XG4gIGNvbnN0ICRhcnJvdyA9ICQoJy5qcy1hcnJvdycpO1xuICBjb25zdCAkdGFicyA9ICQoJy5qcy10YWJzJyk7XG4gIGNvbnN0ICRuYXZUYWJzID0gJCgnLmpzLW5hdi10YWJzJyk7XG5cbiAgbGV0ICRwb3NpdGlvbnM7XG4gIGxldCAkbW92ZVRvID0gMDtcbiAgbGV0ICR0YWJXaWR0aCA9IDA7XG4gIGxldCAkbmF2V2lkdGggPSAkZGVmYXVsdEFycm93V2lkdGg7XG4gIGxldCAkd2lkdGhXaXRoVGFicyA9IDA7XG5cbiAgJG5hdlRhYnMuZmluZCgnbGknKS5lYWNoKChpbmRleCwgaXRlbSkgPT4ge1xuICAgICRuYXZXaWR0aCArPSAkKGl0ZW0pLndpZHRoKCk7XG4gIH0pO1xuXG4gICR3aWR0aFdpdGhUYWJzID0gJG5hdldpZHRoICsgKCRkZWZhdWx0QXJyb3dXaWR0aCAqIDIpO1xuXG4gICRuYXZUYWJzLndpZHRoKCR3aWR0aFdpdGhUYWJzKTtcblxuICAkbmF2VGFicy5maW5kKCdbZGF0YS10b2dnbGU9XCJ0YWJcIl0nKS5vbignY2xpY2snLCAoZSkgPT4ge1xuICAgIGlmICghJChlLnRhcmdldCkuaGFzQ2xhc3MoJ2FjdGl2ZScpKSB7XG4gICAgICAkKCcjZm9ybV9jb250ZW50ID4gLmZvcm0tY29udGVudHRhYicpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICB9XG4gIH0pO1xuXG4gICRhcnJvdy5vbignY2xpY2snLCAoZSkgPT4ge1xuICAgIGlmICgkYXJyb3cuaXMoJzp2aXNpYmxlJykpIHtcbiAgICAgICR0YWJXaWR0aCA9ICR0YWJzLndpZHRoKCk7XG4gICAgICAkcG9zaXRpb25zID0gJG5hdlRhYnMucG9zaXRpb24oKTtcblxuICAgICAgJG1vdmVUbyA9ICctPTAnO1xuICAgICAgaWYgKCQoZS5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygncmlnaHQtYXJyb3cnKSkge1xuICAgICAgICBpZiAoKCR0YWJXaWR0aCAtICRwb3NpdGlvbnMubGVmdCkgPCAkbmF2V2lkdGgpIHtcbiAgICAgICAgICAkbW92ZVRvID0gYC09JHskdGFiV2lkdGh9YDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICgkcG9zaXRpb25zLmxlZnQgPCAkZGVmYXVsdEFycm93V2lkdGgpIHtcbiAgICAgICAgJG1vdmVUbyA9IGArPSR7JHRhYldpZHRofWA7XG4gICAgICB9XG5cbiAgICAgICRuYXZUYWJzLmFuaW1hdGUoXG4gICAgICAgIHtcbiAgICAgICAgICBsZWZ0OiAkbW92ZVRvLFxuICAgICAgICB9LFxuICAgICAgICA0MDAsXG4gICAgICAgICdlYXNlT3V0UXVhZCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAoJChlLmN1cnJlbnRUYXJnZXQpLmhhc0NsYXNzKCdyaWdodC1hcnJvdycpKSB7XG4gICAgICAgICAgICAkKCcubGVmdC1hcnJvdycpLmFkZENsYXNzKCd2aXNpYmxlJyk7XG4gICAgICAgICAgICAkKCcucmlnaHQtYXJyb3cnKS5yZW1vdmVDbGFzcygndmlzaWJsZScpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkKCcucmlnaHQtYXJyb3cnKS5hZGRDbGFzcygndmlzaWJsZScpO1xuICAgICAgICAgICAgJCgnLmxlZnQtYXJyb3cnKS5yZW1vdmVDbGFzcygndmlzaWJsZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9KTtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cbmltcG9ydCBCbG9vZGhvdW5kIGZyb20gJ3R5cGVhaGVhZC5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uICgpIHtcbiAgJChkb2N1bWVudCkucmVhZHkoKCkgPT4ge1xuICAgICQoJy5hdXRvY29tcGxldGUtc2VhcmNoJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBsb2FkQXV0b2NvbXBsZXRlKCQodGhpcyksIGZhbHNlKTtcbiAgICB9KTtcblxuICAgICQoJy5hdXRvY29tcGxldGUtc2VhcmNoJykub24oJ2J1aWxkVHlwZWFoZWFkJywgZnVuY3Rpb24gKCkge1xuICAgICAgbG9hZEF1dG9jb21wbGV0ZSgkKHRoaXMpLCB0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZnVuY3Rpb24gbG9hZEF1dG9jb21wbGV0ZShvYmplY3QsIHJlc2V0KSB7XG4gICAgY29uc3QgYXV0b2NvbXBsZXRlT2JqZWN0ID0gJChvYmplY3QpO1xuICAgIGNvbnN0IGF1dG9jb21wbGV0ZUZvcm1JZCA9IGF1dG9jb21wbGV0ZU9iamVjdC5hdHRyKCdkYXRhLWZvcm1pZCcpO1xuICAgIGNvbnN0IGZvcm1JZCA9IGAjJHthdXRvY29tcGxldGVGb3JtSWR9LWRhdGEgLmRlbGV0ZWA7XG4gICAgY29uc3QgYXV0b2NvbXBsZXRlU291cmNlID0gYCR7YXV0b2NvbXBsZXRlRm9ybUlkfV9zb3VyY2VgO1xuXG4gICAgaWYgKHJlc2V0ID09PSB0cnVlKSB7XG4gICAgICAkKGAjJHthdXRvY29tcGxldGVGb3JtSWR9YCkudHlwZWFoZWFkKCdkZXN0cm95Jyk7XG4gICAgfVxuXG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgZm9ybUlkLCAoZSkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICB3aW5kb3cubW9kYWxDb25maXJtYXRpb24uY3JlYXRlKFxuICAgICAgICB3aW5kb3cudHJhbnNsYXRlX2phdmFzY3JpcHRzWydBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgaXRlbT8nXSxcbiAgICAgICAgbnVsbCxcbiAgICAgICAge1xuICAgICAgICAgIG9uQ29udGludWU6ICgpID0+IHtcbiAgICAgICAgICAgICQoZS50YXJnZXQpLnBhcmVudHMoJy5tZWRpYScpLnJlbW92ZSgpO1xuXG4gICAgICAgICAgICAvLyBTYXZlIGN1cnJlbnQgcHJvZHVjdCBhZnRlciBpdHMgcmVsYXRlZCBwcm9kdWN0IGhhcyBiZWVuIHJlbW92ZWRcbiAgICAgICAgICAgICQoJyNzdWJtaXQnKS5jbGljaygpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLnNob3coKTtcbiAgICB9KTtcblxuICAgIGRvY3VtZW50W2F1dG9jb21wbGV0ZVNvdXJjZV0gPSBuZXcgQmxvb2Rob3VuZCh7XG4gICAgICBkYXR1bVRva2VuaXplcjogQmxvb2Rob3VuZC50b2tlbml6ZXJzLndoaXRlc3BhY2UsXG4gICAgICBxdWVyeVRva2VuaXplcjogQmxvb2Rob3VuZC50b2tlbml6ZXJzLndoaXRlc3BhY2UsXG4gICAgICBpZGVudGlmeShvYmopIHtcbiAgICAgICAgcmV0dXJuIG9ialthdXRvY29tcGxldGVPYmplY3QuYXR0cignZGF0YS1tYXBwaW5ndmFsdWUnKV07XG4gICAgICB9LFxuICAgICAgcmVtb3RlOiB7XG4gICAgICAgIHVybDogYXV0b2NvbXBsZXRlT2JqZWN0LmF0dHIoJ2RhdGEtcmVtb3RldXJsJyksXG4gICAgICAgIGNhY2hlOiBmYWxzZSxcbiAgICAgICAgd2lsZGNhcmQ6ICclUVVFUlknLFxuICAgICAgICB0cmFuc2Zvcm0ocmVzcG9uc2UpIHtcbiAgICAgICAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBkZWZpbmUgdHlwZWFoZWFkXG4gICAgJChgIyR7YXV0b2NvbXBsZXRlRm9ybUlkfWApLnR5cGVhaGVhZCh7XG4gICAgICBsaW1pdDogMjAsXG4gICAgICBtaW5MZW5ndGg6IDIsXG4gICAgICBoaWdobGlnaHQ6IHRydWUsXG4gICAgICBjYWNoZTogZmFsc2UsXG4gICAgICBoaW50OiBmYWxzZSxcbiAgICB9LCB7XG4gICAgICBkaXNwbGF5OiBhdXRvY29tcGxldGVPYmplY3QuYXR0cignZGF0YS1tYXBwaW5nbmFtZScpLFxuICAgICAgc291cmNlOiBkb2N1bWVudFtgJHthdXRvY29tcGxldGVGb3JtSWR9X3NvdXJjZWBdLFxuICAgICAgbGltaXQ6IDMwLFxuICAgICAgdGVtcGxhdGVzOiB7XG4gICAgICAgIHN1Z2dlc3Rpb24oaXRlbSkge1xuICAgICAgICAgIHJldHVybiBgPGRpdj48aW1nIHNyYz1cIiR7aXRlbS5pbWFnZX1cIiBzdHlsZT1cIndpZHRoOjUwcHhcIiAvPiAke2l0ZW0ubmFtZX08L2Rpdj5gO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KS5iaW5kKCd0eXBlYWhlYWQ6c2VsZWN0JywgKGUsIHN1Z2dlc3Rpb24pID0+IHtcbiAgICAgIC8vIGlmIGNvbGxlY3Rpb24gbGVuZ3RoIGlzIHVwIHRvIGxpbWl0LCByZXR1cm5cblxuICAgICAgY29uc3QgZm9ybUlkSXRlbSA9ICQoYCMke2F1dG9jb21wbGV0ZUZvcm1JZH0tZGF0YSBsaWApO1xuICAgICAgY29uc3QgYXV0b2NvbXBsZXRlRm9ybUxpbWl0ID0gcGFyc2VJbnQoYXV0b2NvbXBsZXRlT2JqZWN0LmF0dHIoJ2RhdGEtbGltaXQnKSwgMTApO1xuXG4gICAgICBpZiAoYXV0b2NvbXBsZXRlRm9ybUxpbWl0ICE9PSAwICYmIGZvcm1JZEl0ZW0ubGVuZ3RoID49IGF1dG9jb21wbGV0ZUZvcm1MaW1pdCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGxldCB2YWx1ZSA9IHN1Z2dlc3Rpb25bYXV0b2NvbXBsZXRlT2JqZWN0LmF0dHIoJ2RhdGEtbWFwcGluZ3ZhbHVlJyldO1xuXG4gICAgICBpZiAoc3VnZ2VzdGlvbi5pZF9wcm9kdWN0X2F0dHJpYnV0ZSkge1xuICAgICAgICB2YWx1ZSA9IGAke3ZhbHVlfSwke3N1Z2dlc3Rpb24uaWRfcHJvZHVjdF9hdHRyaWJ1dGV9YDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHBsY29sbGVjdGlvbiA9ICQoYCN0cGxjb2xsZWN0aW9uLSR7YXV0b2NvbXBsZXRlRm9ybUlkfWApO1xuICAgICAgY29uc3QgdHBsY29sbGVjdGlvbkh0bWwgPSB0cGxjb2xsZWN0aW9uXG4gICAgICAgIC5odG1sKClcbiAgICAgICAgLnJlcGxhY2UoJyVzJywgc3VnZ2VzdGlvblthdXRvY29tcGxldGVPYmplY3QuYXR0cignZGF0YS1tYXBwaW5nbmFtZScpXSk7XG5cbiAgICAgIGNvbnN0IGh0bWwgPSBgPGxpIGNsYXNzPVwibWVkaWFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lZGlhLWxlZnRcIj5cbiAgICAgICAgICA8aW1nIGNsYXNzPVwibWVkaWEtb2JqZWN0IGltYWdlXCIgc3JjPVwiJHtzdWdnZXN0aW9uLmltYWdlfVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVkaWEtYm9keSBtZWRpYS1taWRkbGVcIj5cbiAgICAgICAgICAke3RwbGNvbGxlY3Rpb25IdG1sfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiJHthdXRvY29tcGxldGVPYmplY3QuYXR0cignZGF0YS1mdWxsbmFtZScpfVtkYXRhXVtdXCIgdmFsdWU9XCIke3ZhbHVlfVwiIC8+XG4gICAgICA8L2xpPmA7XG5cbiAgICAgICQoYCMke2F1dG9jb21wbGV0ZUZvcm1JZH0tZGF0YWApLmFwcGVuZChodG1sKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSkuYmluZCgndHlwZWFoZWFkOmNsb3NlJywgKGUpID0+IHtcbiAgICAgICQoZS50YXJnZXQpLnZhbCgnJyk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS0qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi0tPlxuPHRlbXBsYXRlPlxuICA8ZGl2IGlkPVwic2VycFwiPlxuICAgIDxkaXYgY2xhc3M9XCJzZXJwLXByZXZpZXdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZXJwLXRpdGxlXCI+XG4gICAgICAgIHt7IGRpc3BsYXllZFRpdGxlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZXJwLXVybFwiPlxuICAgICAgICB7eyB1cmwgfX08c3BhbiBjbGFzcz1cInNlcnAtYXJyb3dcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VycC1kZXNjcmlwdGlvblwiPlxuICAgICAgICB7eyBkaXNwbGF5ZWREZXNjcmlwdGlvbiB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbiAgZXhwb3J0IGRlZmF1bHQge1xuICAgIG5hbWU6ICdTZXJwJyxcbiAgICBwcm9wczoge1xuICAgICAgdXJsOiB7XG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgZGVmYXVsdDogJ2h0dHBzOi8vd3d3LmV4YW1wbGUuY29tLycsXG4gICAgICB9LFxuICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgIH0sXG4gICAgICB0aXRsZToge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbXB1dGVkOiB7XG4gICAgICBkaXNwbGF5ZWRUaXRsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMudGl0bGUubGVuZ3RoID4gNzApIHtcbiAgICAgICAgICByZXR1cm4gYCR7dGhpcy50aXRsZS5zdWJzdHJpbmcoMCwgNzApfS4uLmA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50aXRsZTtcbiAgICAgIH0sXG4gICAgICBkaXNwbGF5ZWREZXNjcmlwdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRpb24ubGVuZ3RoID4gMTUwKSB7XG4gICAgICAgICAgcmV0dXJuIGAke3RoaXMuZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIDE1MCl9Li4uYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRlc2NyaXB0aW9uO1xuICAgICAgfSxcbiAgICB9LFxuICB9O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHR5cGU9XCJ0ZXh0L3Njc3NcIiBzY29wZWQ+XG4gICAgLnNlcnAtcHJldmlldyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICNlN2U3ZTc7XG4gICAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgICAgIG1heC13aWR0aDogNzAwcHg7XG5cbiAgICAgICAgLnNlcnAtYXJyb3cge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDAsIDEwMiwgMzMpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiA0cHg7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiByZ2IoMCwgMTAyLCAzMyk7XG4gICAgICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDVweDtcbiAgICAgICAgICAgIGNvbG9yOiByZ2IoMTI4LCAxMjgsIDEyOCk7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGhlaWdodDogMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VycC10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogIzFBMERBQjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgcmVndWxhcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VycC11cmwge1xuICAgICAgICAgICAgY29sb3I6ICMwMDY2MjE7XG4gICAgICAgICAgICBmb250LWZhbWlseTogYXJpYWwsIHJlZ3VsYXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZXJwLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNTQ1NDU0O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGFyaWFsLCByZWd1bGFyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB9XG4gICAgfVxuPC9zdHlsZT5cbiIsIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9hcnJheS9mcm9tXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07IiwibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHlcIiksIF9fZXNNb2R1bGU6IHRydWUgfTsiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5XCIpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gICAgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgICBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgICByZXR1cm4gQ29uc3RydWN0b3I7XG4gIH07XG59KCk7IiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYuc3RyaW5nLml0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5hcnJheS5mcm9tJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5BcnJheS5mcm9tO1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LmRlZmluZS1wcm9wZXJ0eScpO1xudmFyICRPYmplY3QgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0O1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShpdCwga2V5LCBkZXNjKSB7XG4gIHJldHVybiAkT2JqZWN0LmRlZmluZVByb3BlcnR5KGl0LCBrZXksIGRlc2MpO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICh0eXBlb2YgaXQgIT0gJ2Z1bmN0aW9uJykgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYSBmdW5jdGlvbiEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIGZhbHNlIC0+IEFycmF5I2luZGV4T2Zcbi8vIHRydWUgIC0+IEFycmF5I2luY2x1ZGVzXG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi9fdG8tYWJzb2x1dGUtaW5kZXgnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSU9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB2YWx1ZSA9IE9baW5kZXgrK107XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgICBpZiAodmFsdWUgIT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEFycmF5I2luZGV4T2YgaWdub3JlcyBob2xlcywgQXJyYXkjaW5jbHVkZXMgLSBub3RcbiAgICB9IGVsc2UgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSB7XG4gICAgICBpZiAoT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDtcbiAgICB9IHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gIH07XG59O1xuIiwiLy8gZ2V0dGluZyB0YWcgZnJvbSAxOS4xLjMuNiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKClcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbnZhciBUQUcgPSByZXF1aXJlKCcuL193a3MnKSgndG9TdHJpbmdUYWcnKTtcbi8vIEVTMyB3cm9uZyBoZXJlXG52YXIgQVJHID0gY29mKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA9PSAnQXJndW1lbnRzJztcblxuLy8gZmFsbGJhY2sgZm9yIElFMTEgU2NyaXB0IEFjY2VzcyBEZW5pZWQgZXJyb3JcbnZhciB0cnlHZXQgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICB0cnkge1xuICAgIHJldHVybiBpdFtrZXldO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPLCBULCBCO1xuICByZXR1cm4gaXQgPT09IHVuZGVmaW5lZCA/ICdVbmRlZmluZWQnIDogaXQgPT09IG51bGwgPyAnTnVsbCdcbiAgICAvLyBAQHRvU3RyaW5nVGFnIGNhc2VcbiAgICA6IHR5cGVvZiAoVCA9IHRyeUdldChPID0gT2JqZWN0KGl0KSwgVEFHKSkgPT0gJ3N0cmluZycgPyBUXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBBUkcgPyBjb2YoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAoQiA9IGNvZihPKSkgPT0gJ09iamVjdCcgJiYgdHlwZW9mIE8uY2FsbGVlID09ICdmdW5jdGlvbicgPyAnQXJndW1lbnRzJyA6IEI7XG59O1xuIiwidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7XG59O1xuIiwidmFyIGNvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IHsgdmVyc2lvbjogJzIuNi4xMScgfTtcbmlmICh0eXBlb2YgX19lID09ICdudW1iZXInKSBfX2UgPSBjb3JlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBpbmRleCwgdmFsdWUpIHtcbiAgaWYgKGluZGV4IGluIG9iamVjdCkgJGRlZmluZVByb3BlcnR5LmYob2JqZWN0LCBpbmRleCwgY3JlYXRlRGVzYygwLCB2YWx1ZSkpO1xuICBlbHNlIG9iamVjdFtpbmRleF0gPSB2YWx1ZTtcbn07XG4iLCIvLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuL19hLWZ1bmN0aW9uJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbiwgdGhhdCwgbGVuZ3RoKSB7XG4gIGFGdW5jdGlvbihmbik7XG4gIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHJldHVybiBmbjtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbiAoYSkge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSk7XG4gICAgfTtcbiAgICBjYXNlIDI6IHJldHVybiBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYik7XG4gICAgfTtcbiAgICBjYXNlIDM6IHJldHVybiBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYiwgYyk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCIvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgaXMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcbiIsIi8vIElFIDgtIGRvbid0IGVudW0gYnVnIGtleXNcbm1vZHVsZS5leHBvcnRzID0gKFxuICAnY29uc3RydWN0b3IsaGFzT3duUHJvcGVydHksaXNQcm90b3R5cGVPZixwcm9wZXJ0eUlzRW51bWVyYWJsZSx0b0xvY2FsZVN0cmluZyx0b1N0cmluZyx2YWx1ZU9mJ1xuKS5zcGxpdCgnLCcpO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxudmFyICRleHBvcnQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgc291cmNlKSB7XG4gIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GO1xuICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcbiAgdmFyIElTX1NUQVRJQyA9IHR5cGUgJiAkZXhwb3J0LlM7XG4gIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7XG4gIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcbiAgdmFyIElTX1dSQVAgPSB0eXBlICYgJGV4cG9ydC5XO1xuICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IGNvcmUgOiBjb3JlW25hbWVdIHx8IChjb3JlW25hbWVdID0ge30pO1xuICB2YXIgZXhwUHJvdG8gPSBleHBvcnRzW1BST1RPVFlQRV07XG4gIHZhciB0YXJnZXQgPSBJU19HTE9CQUwgPyBnbG9iYWwgOiBJU19TVEFUSUMgPyBnbG9iYWxbbmFtZV0gOiAoZ2xvYmFsW25hbWVdIHx8IHt9KVtQUk9UT1RZUEVdO1xuICB2YXIga2V5LCBvd24sIG91dDtcbiAgaWYgKElTX0dMT0JBTCkgc291cmNlID0gbmFtZTtcbiAgZm9yIChrZXkgaW4gc291cmNlKSB7XG4gICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG4gICAgb3duID0gIUlTX0ZPUkNFRCAmJiB0YXJnZXQgJiYgdGFyZ2V0W2tleV0gIT09IHVuZGVmaW5lZDtcbiAgICBpZiAob3duICYmIGhhcyhleHBvcnRzLCBrZXkpKSBjb250aW51ZTtcbiAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZFxuICAgIG91dCA9IG93biA/IHRhcmdldFtrZXldIDogc291cmNlW2tleV07XG4gICAgLy8gcHJldmVudCBnbG9iYWwgcG9sbHV0aW9uIGZvciBuYW1lc3BhY2VzXG4gICAgZXhwb3J0c1trZXldID0gSVNfR0xPQkFMICYmIHR5cGVvZiB0YXJnZXRba2V5XSAhPSAnZnVuY3Rpb24nID8gc291cmNlW2tleV1cbiAgICAvLyBiaW5kIHRpbWVycyB0byBnbG9iYWwgZm9yIGNhbGwgZnJvbSBleHBvcnQgY29udGV4dFxuICAgIDogSVNfQklORCAmJiBvd24gPyBjdHgob3V0LCBnbG9iYWwpXG4gICAgLy8gd3JhcCBnbG9iYWwgY29uc3RydWN0b3JzIGZvciBwcmV2ZW50IGNoYW5nZSB0aGVtIGluIGxpYnJhcnlcbiAgICA6IElTX1dSQVAgJiYgdGFyZ2V0W2tleV0gPT0gb3V0ID8gKGZ1bmN0aW9uIChDKSB7XG4gICAgICB2YXIgRiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQykge1xuICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEMoKTtcbiAgICAgICAgICAgIGNhc2UgMTogcmV0dXJuIG5ldyBDKGEpO1xuICAgICAgICAgICAgY2FzZSAyOiByZXR1cm4gbmV3IEMoYSwgYik7XG4gICAgICAgICAgfSByZXR1cm4gbmV3IEMoYSwgYiwgYyk7XG4gICAgICAgIH0gcmV0dXJuIEMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgICBGW1BST1RPVFlQRV0gPSBDW1BST1RPVFlQRV07XG4gICAgICByZXR1cm4gRjtcbiAgICAvLyBtYWtlIHN0YXRpYyB2ZXJzaW9ucyBmb3IgcHJvdG90eXBlIG1ldGhvZHNcbiAgICB9KShvdXQpIDogSVNfUFJPVE8gJiYgdHlwZW9mIG91dCA9PSAnZnVuY3Rpb24nID8gY3R4KEZ1bmN0aW9uLmNhbGwsIG91dCkgOiBvdXQ7XG4gICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLm1ldGhvZHMuJU5BTUUlXG4gICAgaWYgKElTX1BST1RPKSB7XG4gICAgICAoZXhwb3J0cy52aXJ0dWFsIHx8IChleHBvcnRzLnZpcnR1YWwgPSB7fSkpW2tleV0gPSBvdXQ7XG4gICAgICAvLyBleHBvcnQgcHJvdG8gbWV0aG9kcyB0byBjb3JlLiVDT05TVFJVQ1RPUiUucHJvdG90eXBlLiVOQU1FJVxuICAgICAgaWYgKHR5cGUgJiAkZXhwb3J0LlIgJiYgZXhwUHJvdG8gJiYgIWV4cFByb3RvW2tleV0pIGhpZGUoZXhwUHJvdG8sIGtleSwgb3V0KTtcbiAgICB9XG4gIH1cbn07XG4vLyB0eXBlIGJpdG1hcFxuJGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcbiRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG4kZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuJGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuJGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG4kZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcbiRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuJGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgXG5tb2R1bGUuZXhwb3J0cyA9ICRleHBvcnQ7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCIvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxudmFyIGdsb2JhbCA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PSBNYXRoXG4gID8gd2luZG93IDogdHlwZW9mIHNlbGYgIT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5NYXRoID09IE1hdGggPyBzZWxmXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xuICA6IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5pZiAodHlwZW9mIF9fZyA9PSAnbnVtYmVyJykgX19nID0gZ2xvYmFsOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4iLCJ2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG59O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRQLmYob2JqZWN0LCBrZXksIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwidmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG5tb2R1bGUuZXhwb3J0cyA9IGRvY3VtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiIsIm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuIiwiLy8gY2hlY2sgb24gZGVmYXVsdCBBcnJheSBpdGVyYXRvclxudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgQXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICE9PSB1bmRlZmluZWQgJiYgKEl0ZXJhdG9ycy5BcnJheSA9PT0gaXQgfHwgQXJyYXlQcm90b1tJVEVSQVRPUl0gPT09IGl0KTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09PSAnb2JqZWN0JyA/IGl0ICE9PSBudWxsIDogdHlwZW9mIGl0ID09PSAnZnVuY3Rpb24nO1xufTtcbiIsIi8vIGNhbGwgc29tZXRoaW5nIG9uIGl0ZXJhdG9yIHN0ZXAgd2l0aCBzYWZlIGNsb3Npbmcgb24gZXJyb3JcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIGZuLCB2YWx1ZSwgZW50cmllcykge1xuICB0cnkge1xuICAgIHJldHVybiBlbnRyaWVzID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7XG4gIC8vIDcuNC42IEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IsIGNvbXBsZXRpb24pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB2YXIgcmV0ID0gaXRlcmF0b3JbJ3JldHVybiddO1xuICAgIGlmIChyZXQgIT09IHVuZGVmaW5lZCkgYW5PYmplY3QocmV0LmNhbGwoaXRlcmF0b3IpKTtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBkZXNjcmlwdG9yID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuXG4vLyAyNS4xLjIuMS4xICVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faGlkZScpKEl0ZXJhdG9yUHJvdG90eXBlLCByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIENvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBkZXNjcmlwdG9yKDEsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgTkFNRSArICcgSXRlcmF0b3InKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgTElCUkFSWSA9IHJlcXVpcmUoJy4vX2xpYnJhcnknKTtcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuL19yZWRlZmluZScpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgJGl0ZXJDcmVhdGUgPSByZXF1aXJlKCcuL19pdGVyLWNyZWF0ZScpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4vX29iamVjdC1ncG8nKTtcbnZhciBJVEVSQVRPUiA9IHJlcXVpcmUoJy4vX3drcycpKCdpdGVyYXRvcicpO1xudmFyIEJVR0dZID0gIShbXS5rZXlzICYmICduZXh0JyBpbiBbXS5rZXlzKCkpOyAvLyBTYWZhcmkgaGFzIGJ1Z2d5IGl0ZXJhdG9ycyB3L28gYG5leHRgXG52YXIgRkZfSVRFUkFUT1IgPSAnQEBpdGVyYXRvcic7XG52YXIgS0VZUyA9ICdrZXlzJztcbnZhciBWQUxVRVMgPSAndmFsdWVzJztcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChCYXNlLCBOQU1FLCBDb25zdHJ1Y3RvciwgbmV4dCwgREVGQVVMVCwgSVNfU0VULCBGT1JDRUQpIHtcbiAgJGl0ZXJDcmVhdGUoQ29uc3RydWN0b3IsIE5BTUUsIG5leHQpO1xuICB2YXIgZ2V0TWV0aG9kID0gZnVuY3Rpb24gKGtpbmQpIHtcbiAgICBpZiAoIUJVR0dZICYmIGtpbmQgaW4gcHJvdG8pIHJldHVybiBwcm90b1traW5kXTtcbiAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgIGNhc2UgS0VZUzogcmV0dXJuIGZ1bmN0aW9uIGtleXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gICAgICBjYXNlIFZBTFVFUzogcmV0dXJuIGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgICB9IHJldHVybiBmdW5jdGlvbiBlbnRyaWVzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICB9O1xuICB2YXIgVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICB2YXIgREVGX1ZBTFVFUyA9IERFRkFVTFQgPT0gVkFMVUVTO1xuICB2YXIgVkFMVUVTX0JVRyA9IGZhbHNlO1xuICB2YXIgcHJvdG8gPSBCYXNlLnByb3RvdHlwZTtcbiAgdmFyICRuYXRpdmUgPSBwcm90b1tJVEVSQVRPUl0gfHwgcHJvdG9bRkZfSVRFUkFUT1JdIHx8IERFRkFVTFQgJiYgcHJvdG9bREVGQVVMVF07XG4gIHZhciAkZGVmYXVsdCA9ICRuYXRpdmUgfHwgZ2V0TWV0aG9kKERFRkFVTFQpO1xuICB2YXIgJGVudHJpZXMgPSBERUZBVUxUID8gIURFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZCgnZW50cmllcycpIDogdW5kZWZpbmVkO1xuICB2YXIgJGFueU5hdGl2ZSA9IE5BTUUgPT0gJ0FycmF5JyA/IHByb3RvLmVudHJpZXMgfHwgJG5hdGl2ZSA6ICRuYXRpdmU7XG4gIHZhciBtZXRob2RzLCBrZXksIEl0ZXJhdG9yUHJvdG90eXBlO1xuICAvLyBGaXggbmF0aXZlXG4gIGlmICgkYW55TmF0aXZlKSB7XG4gICAgSXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZigkYW55TmF0aXZlLmNhbGwobmV3IEJhc2UoKSkpO1xuICAgIGlmIChJdGVyYXRvclByb3RvdHlwZSAhPT0gT2JqZWN0LnByb3RvdHlwZSAmJiBJdGVyYXRvclByb3RvdHlwZS5uZXh0KSB7XG4gICAgICAvLyBTZXQgQEB0b1N0cmluZ1RhZyB0byBuYXRpdmUgaXRlcmF0b3JzXG4gICAgICBzZXRUb1N0cmluZ1RhZyhJdGVyYXRvclByb3RvdHlwZSwgVEFHLCB0cnVlKTtcbiAgICAgIC8vIGZpeCBmb3Igc29tZSBvbGQgZW5naW5lc1xuICAgICAgaWYgKCFMSUJSQVJZICYmIHR5cGVvZiBJdGVyYXRvclByb3RvdHlwZVtJVEVSQVRPUl0gIT0gJ2Z1bmN0aW9uJykgaGlkZShJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpO1xuICAgIH1cbiAgfVxuICAvLyBmaXggQXJyYXkje3ZhbHVlcywgQEBpdGVyYXRvcn0ubmFtZSBpbiBWOCAvIEZGXG4gIGlmIChERUZfVkFMVUVTICYmICRuYXRpdmUgJiYgJG5hdGl2ZS5uYW1lICE9PSBWQUxVRVMpIHtcbiAgICBWQUxVRVNfQlVHID0gdHJ1ZTtcbiAgICAkZGVmYXVsdCA9IGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuICRuYXRpdmUuY2FsbCh0aGlzKTsgfTtcbiAgfVxuICAvLyBEZWZpbmUgaXRlcmF0b3JcbiAgaWYgKCghTElCUkFSWSB8fCBGT1JDRUQpICYmIChCVUdHWSB8fCBWQUxVRVNfQlVHIHx8ICFwcm90b1tJVEVSQVRPUl0pKSB7XG4gICAgaGlkZShwcm90bywgSVRFUkFUT1IsICRkZWZhdWx0KTtcbiAgfVxuICAvLyBQbHVnIGZvciBsaWJyYXJ5XG4gIEl0ZXJhdG9yc1tOQU1FXSA9ICRkZWZhdWx0O1xuICBJdGVyYXRvcnNbVEFHXSA9IHJldHVyblRoaXM7XG4gIGlmIChERUZBVUxUKSB7XG4gICAgbWV0aG9kcyA9IHtcbiAgICAgIHZhbHVlczogREVGX1ZBTFVFUyA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKFZBTFVFUyksXG4gICAgICBrZXlzOiBJU19TRVQgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChLRVlTKSxcbiAgICAgIGVudHJpZXM6ICRlbnRyaWVzXG4gICAgfTtcbiAgICBpZiAoRk9SQ0VEKSBmb3IgKGtleSBpbiBtZXRob2RzKSB7XG4gICAgICBpZiAoIShrZXkgaW4gcHJvdG8pKSByZWRlZmluZShwcm90bywga2V5LCBtZXRob2RzW2tleV0pO1xuICAgIH0gZWxzZSAkZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIChCVUdHWSB8fCBWQUxVRVNfQlVHKSwgTkFNRSwgbWV0aG9kcyk7XG4gIH1cbiAgcmV0dXJuIG1ldGhvZHM7XG59O1xuIiwidmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciByaXRlciA9IFs3XVtJVEVSQVRPUl0oKTtcbiAgcml0ZXJbJ3JldHVybiddID0gZnVuY3Rpb24gKCkgeyBTQUZFX0NMT1NJTkcgPSB0cnVlOyB9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBBcnJheS5mcm9tKHJpdGVyLCBmdW5jdGlvbiAoKSB7IHRocm93IDI7IH0pO1xufSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMsIHNraXBDbG9zaW5nKSB7XG4gIGlmICghc2tpcENsb3NpbmcgJiYgIVNBRkVfQ0xPU0lORykgcmV0dXJuIGZhbHNlO1xuICB2YXIgc2FmZSA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBhcnIgPSBbN107XG4gICAgdmFyIGl0ZXIgPSBhcnJbSVRFUkFUT1JdKCk7XG4gICAgaXRlci5uZXh0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4geyBkb25lOiBzYWZlID0gdHJ1ZSB9OyB9O1xuICAgIGFycltJVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBpdGVyOyB9O1xuICAgIGV4ZWMoYXJyKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBzYWZlO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge307XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHRydWU7XG4iLCIvLyAxOS4xLjIuMiAvIDE1LjIuMy41IE9iamVjdC5jcmVhdGUoTyBbLCBQcm9wZXJ0aWVzXSlcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGRQcyA9IHJlcXVpcmUoJy4vX29iamVjdC1kcHMnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBFbXB0eSA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIGNyZWF0ZURpY3QgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSByZXF1aXJlKCcuL19kb20tY3JlYXRlJykoJ2lmcmFtZScpO1xuICB2YXIgaSA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgdmFyIGx0ID0gJzwnO1xuICB2YXIgZ3QgPSAnPic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIHJlcXVpcmUoJy4vX2h0bWwnKS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICBpZnJhbWUuc3JjID0gJ2phdmFzY3JpcHQ6JzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zY3JpcHQtdXJsXG4gIC8vIGNyZWF0ZURpY3QgPSBpZnJhbWUuY29udGVudFdpbmRvdy5PYmplY3Q7XG4gIC8vIGh0bWwucmVtb3ZlQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICBpZnJhbWVEb2N1bWVudC53cml0ZShsdCArICdzY3JpcHQnICsgZ3QgKyAnZG9jdW1lbnQuRj1PYmplY3QnICsgbHQgKyAnL3NjcmlwdCcgKyBndCk7XG4gIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gIGNyZWF0ZURpY3QgPSBpZnJhbWVEb2N1bWVudC5GO1xuICB3aGlsZSAoaS0tKSBkZWxldGUgY3JlYXRlRGljdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2ldXTtcbiAgcmV0dXJuIGNyZWF0ZURpY3QoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBhbk9iamVjdChPKTtcbiAgICByZXN1bHQgPSBuZXcgRW1wdHkoKTtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBjcmVhdGVEaWN0KCk7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiBkUHMocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG4iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4vX2llOC1kb20tZGVmaW5lJyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBkUCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuZXhwb3J0cy5mID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gZFAoTywgUCwgQXR0cmlidXRlcyk7XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIScpO1xuICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBnZXRLZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXlzID0gZ2V0S2V5cyhQcm9wZXJ0aWVzKTtcbiAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICB2YXIgaSA9IDA7XG4gIHZhciBQO1xuICB3aGlsZSAobGVuZ3RoID4gaSkgZFAuZihPLCBQID0ga2V5c1tpKytdLCBQcm9wZXJ0aWVzW1BdKTtcbiAgcmV0dXJuIE87XG59O1xuIiwiLy8gMTkuMS4yLjkgLyAxNS4yLjMuMiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTylcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyIElFX1BST1RPID0gcmVxdWlyZSgnLi9fc2hhcmVkLWtleScpKCdJRV9QUk9UTycpO1xudmFyIE9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gKE8pIHtcbiAgTyA9IHRvT2JqZWN0KE8pO1xuICBpZiAoaGFzKE8sIElFX1BST1RPKSkgcmV0dXJuIE9bSUVfUFJPVE9dO1xuICBpZiAodHlwZW9mIE8uY29uc3RydWN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBPIGluc3RhbmNlb2YgTy5jb25zdHJ1Y3Rvcikge1xuICAgIHJldHVybiBPLmNvbnN0cnVjdG9yLnByb3RvdHlwZTtcbiAgfSByZXR1cm4gTyBpbnN0YW5jZW9mIE9iamVjdCA/IE9iamVjdFByb3RvIDogbnVsbDtcbn07XG4iLCJ2YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIGFycmF5SW5kZXhPZiA9IHJlcXVpcmUoJy4vX2FycmF5LWluY2x1ZGVzJykoZmFsc2UpO1xudmFyIElFX1BST1RPID0gcmVxdWlyZSgnLi9fc2hhcmVkLWtleScpKCdJRV9QUk9UTycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmplY3QsIG5hbWVzKSB7XG4gIHZhciBPID0gdG9JT2JqZWN0KG9iamVjdCk7XG4gIHZhciBpID0gMDtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIga2V5O1xuICBmb3IgKGtleSBpbiBPKSBpZiAoa2V5ICE9IElFX1BST1RPKSBoYXMoTywga2V5KSAmJiByZXN1bHQucHVzaChrZXkpO1xuICAvLyBEb24ndCBlbnVtIGJ1ZyAmIGhpZGRlbiBrZXlzXG4gIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSBpZiAoaGFzKE8sIGtleSA9IG5hbWVzW2krK10pKSB7XG4gICAgfmFycmF5SW5kZXhPZihyZXN1bHQsIGtleSkgfHwgcmVzdWx0LnB1c2goa2V5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsIi8vIDE5LjEuMi4xNCAvIDE1LjIuMy4xNCBPYmplY3Qua2V5cyhPKVxudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuICRrZXlzKE8sIGVudW1CdWdLZXlzKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19oaWRlJyk7XG4iLCJ2YXIgZGVmID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBUQUcgPSByZXF1aXJlKCcuL193a3MnKSgndG9TdHJpbmdUYWcnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIHRhZywgc3RhdCkge1xuICBpZiAoaXQgJiYgIWhhcyhpdCA9IHN0YXQgPyBpdCA6IGl0LnByb3RvdHlwZSwgVEFHKSkgZGVmKGl0LCBUQUcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogdGFnIH0pO1xufTtcbiIsInZhciBzaGFyZWQgPSByZXF1aXJlKCcuL19zaGFyZWQnKSgna2V5cycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiBzaGFyZWRba2V5XSB8fCAoc2hhcmVkW2tleV0gPSB1aWQoa2V5KSk7XG59O1xuIiwidmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBnbG9iYWxbU0hBUkVEXSB8fCAoZ2xvYmFsW1NIQVJFRF0gPSB7fSk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xufSkoJ3ZlcnNpb25zJywgW10pLnB1c2goe1xuICB2ZXJzaW9uOiBjb3JlLnZlcnNpb24sXG4gIG1vZGU6IHJlcXVpcmUoJy4vX2xpYnJhcnknKSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuICBjb3B5cmlnaHQ6ICfCqSAyMDE5IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJ1xufSk7XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG4vLyB0cnVlICAtPiBTdHJpbmcjYXRcbi8vIGZhbHNlIC0+IFN0cmluZyNjb2RlUG9pbnRBdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoVE9fU1RSSU5HKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodGhhdCwgcG9zKSB7XG4gICAgdmFyIHMgPSBTdHJpbmcoZGVmaW5lZCh0aGF0KSk7XG4gICAgdmFyIGkgPSB0b0ludGVnZXIocG9zKTtcbiAgICB2YXIgbCA9IHMubGVuZ3RoO1xuICAgIHZhciBhLCBiO1xuICAgIGlmIChpIDwgMCB8fCBpID49IGwpIHJldHVybiBUT19TVFJJTkcgPyAnJyA6IHVuZGVmaW5lZDtcbiAgICBhID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIHJldHVybiBhIDwgMHhkODAwIHx8IGEgPiAweGRiZmYgfHwgaSArIDEgPT09IGwgfHwgKGIgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBiID4gMHhkZmZmXG4gICAgICA/IFRPX1NUUklORyA/IHMuY2hhckF0KGkpIDogYVxuICAgICAgOiBUT19TVFJJTkcgPyBzLnNsaWNlKGksIGkgKyAyKSA6IChhIC0gMHhkODAwIDw8IDEwKSArIChiIC0gMHhkYzAwKSArIDB4MTAwMDA7XG4gIH07XG59O1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgaW5kZXggPSB0b0ludGVnZXIoaW5kZXgpO1xuICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTtcbn07XG4iLCIvLyA3LjEuNCBUb0ludGVnZXJcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xufTtcbiIsIi8vIHRvIGluZGV4ZWQgb2JqZWN0LCB0b09iamVjdCB3aXRoIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgc3RyaW5nc1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG4iLCIvLyA3LjEuMTUgVG9MZW5ndGhcbnZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgbWluID0gTWF0aC5taW47XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgPiAwID8gbWluKHRvSW50ZWdlcihpdCksIDB4MWZmZmZmZmZmZmZmZmYpIDogMDsgLy8gcG93KDIsIDUzKSAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxufTtcbiIsIi8vIDcuMS4xMyBUb09iamVjdChhcmd1bWVudClcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIE9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuIiwiLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbi8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlXG4vLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFMpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHJldHVybiBpdDtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmIChTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKCFTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuIiwidmFyIGlkID0gMDtcbnZhciBweCA9IE1hdGgucmFuZG9tKCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcbn07XG4iLCJ2YXIgc3RvcmUgPSByZXF1aXJlKCcuL19zaGFyZWQnKSgnd2tzJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG52YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuU3ltYm9sO1xudmFyIFVTRV9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09ICdmdW5jdGlvbic7XG5cbnZhciAkZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIHN0b3JlW25hbWVdIHx8IChzdG9yZVtuYW1lXSA9XG4gICAgVVNFX1NZTUJPTCAmJiBTeW1ib2xbbmFtZV0gfHwgKFVTRV9TWU1CT0wgPyBTeW1ib2wgOiB1aWQpKCdTeW1ib2wuJyArIG5hbWUpKTtcbn07XG5cbiRleHBvcnRzLnN0b3JlID0gc3RvcmU7XG4iLCJ2YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4vX2NsYXNzb2YnKTtcbnZhciBJVEVSQVRPUiA9IHJlcXVpcmUoJy4vX3drcycpKCdpdGVyYXRvcicpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19jb3JlJykuZ2V0SXRlcmF0b3JNZXRob2QgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ICE9IHVuZGVmaW5lZCkgcmV0dXJuIGl0W0lURVJBVE9SXVxuICAgIHx8IGl0WydAQGl0ZXJhdG9yJ11cbiAgICB8fCBJdGVyYXRvcnNbY2xhc3NvZihpdCldO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi9faXRlci1jYWxsJyk7XG52YXIgaXNBcnJheUl0ZXIgPSByZXF1aXJlKCcuL19pcy1hcnJheS1pdGVyJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX2NyZWF0ZS1wcm9wZXJ0eScpO1xudmFyIGdldEl0ZXJGbiA9IHJlcXVpcmUoJy4vY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kJyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2l0ZXItZGV0ZWN0JykoZnVuY3Rpb24gKGl0ZXIpIHsgQXJyYXkuZnJvbShpdGVyKTsgfSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4yLjEgQXJyYXkuZnJvbShhcnJheUxpa2UsIG1hcGZuID0gdW5kZWZpbmVkLCB0aGlzQXJnID0gdW5kZWZpbmVkKVxuICBmcm9tOiBmdW5jdGlvbiBmcm9tKGFycmF5TGlrZSAvKiAsIG1hcGZuID0gdW5kZWZpbmVkLCB0aGlzQXJnID0gdW5kZWZpbmVkICovKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdChhcnJheUxpa2UpO1xuICAgIHZhciBDID0gdHlwZW9mIHRoaXMgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMgOiBBcnJheTtcbiAgICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIG1hcGZuID0gYUxlbiA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gICAgdmFyIG1hcHBpbmcgPSBtYXBmbiAhPT0gdW5kZWZpbmVkO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGl0ZXJGbiA9IGdldEl0ZXJGbihPKTtcbiAgICB2YXIgbGVuZ3RoLCByZXN1bHQsIHN0ZXAsIGl0ZXJhdG9yO1xuICAgIGlmIChtYXBwaW5nKSBtYXBmbiA9IGN0eChtYXBmbiwgYUxlbiA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQsIDIpO1xuICAgIC8vIGlmIG9iamVjdCBpc24ndCBpdGVyYWJsZSBvciBpdCdzIGFycmF5IHdpdGggZGVmYXVsdCBpdGVyYXRvciAtIHVzZSBzaW1wbGUgY2FzZVxuICAgIGlmIChpdGVyRm4gIT0gdW5kZWZpbmVkICYmICEoQyA9PSBBcnJheSAmJiBpc0FycmF5SXRlcihpdGVyRm4pKSkge1xuICAgICAgZm9yIChpdGVyYXRvciA9IGl0ZXJGbi5jYWxsKE8pLCByZXN1bHQgPSBuZXcgQygpOyAhKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmU7IGluZGV4KyspIHtcbiAgICAgICAgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBpbmRleCwgbWFwcGluZyA/IGNhbGwoaXRlcmF0b3IsIG1hcGZuLCBbc3RlcC52YWx1ZSwgaW5kZXhdLCB0cnVlKSA6IHN0ZXAudmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgICBmb3IgKHJlc3VsdCA9IG5ldyBDKGxlbmd0aCk7IGxlbmd0aCA+IGluZGV4OyBpbmRleCsrKSB7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmcgPyBtYXBmbihPW2luZGV4XSwgaW5kZXgpIDogT1tpbmRleF0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXN1bHQubGVuZ3RoID0gaW5kZXg7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSk7XG4iLCJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjQgLyAxNS4yLjMuNiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcylcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyksICdPYmplY3QnLCB7IGRlZmluZVByb3BlcnR5OiByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mIH0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRhdCA9IHJlcXVpcmUoJy4vX3N0cmluZy1hdCcpKHRydWUpO1xuXG4vLyAyMS4xLjMuMjcgU3RyaW5nLnByb3RvdHlwZVtAQGl0ZXJhdG9yXSgpXG5yZXF1aXJlKCcuL19pdGVyLWRlZmluZScpKFN0cmluZywgJ1N0cmluZycsIGZ1bmN0aW9uIChpdGVyYXRlZCkge1xuICB0aGlzLl90ID0gU3RyaW5nKGl0ZXJhdGVkKTsgLy8gdGFyZ2V0XG4gIHRoaXMuX2kgPSAwOyAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4XG4vLyAyMS4xLjUuMi4xICVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUubmV4dCgpXG59LCBmdW5jdGlvbiAoKSB7XG4gIHZhciBPID0gdGhpcy5fdDtcbiAgdmFyIGluZGV4ID0gdGhpcy5faTtcbiAgdmFyIHBvaW50O1xuICBpZiAoaW5kZXggPj0gTy5sZW5ndGgpIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTtcbiAgcG9pbnQgPSAkYXQoTywgaW5kZXgpO1xuICB0aGlzLl9pICs9IHBvaW50Lmxlbmd0aDtcbiAgcmV0dXJuIHsgdmFsdWU6IHBvaW50LCBkb25lOiBmYWxzZSB9O1xufSk7XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5zZXJwLXByZXZpZXdbZGF0YS12LTY2YzRjNWFiXXttYXJnaW4tdG9wOjE1cHg7bWFyZ2luLWJvdHRvbToxNXB4O2JvcmRlci1yYWRpdXM6MnB4O2JveC1zaGFkb3c6MCAwIDVweCAwIHJnYmEoMCwwLDAsMC4xMik7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO2JvcmRlcjpzb2xpZCAxcHggI2U3ZTdlNztwYWRkaW5nOjMwcHg7bWF4LXdpZHRoOjcwMHB4fS5zZXJwLXByZXZpZXcgLnNlcnAtYXJyb3dbZGF0YS12LTY2YzRjNWFiXXtib3JkZXItYm90dG9tLWNvbG9yOiMwMDY2MjE7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXdpZHRoOjBweDtib3JkZXItbGVmdC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO2JvcmRlci1sZWZ0LXdpZHRoOjRweDtib3JkZXItcmlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOjRweDtib3JkZXItdG9wLWNvbG9yOiMwMDY2MjE7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOjVweDtjb2xvcjpncmF5O2N1cnNvcjpkZWZhdWx0O2ZvbnQtZmFtaWx5OmFyaWFsLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OmJvbGQ7aGVpZ2h0OjBweDtwb3NpdGlvbjphYnNvbHV0ZTtsaW5lLWhlaWdodDoyN3B4O21hcmdpbi1sZWZ0OjNweDttYXJnaW4tdG9wOjZweDt0ZXh0LWFsaWduOmNlbnRlcjt1c2VyLXNlbGVjdDpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MHB4fS5zZXJwLXByZXZpZXcgLnNlcnAtdGl0bGVbZGF0YS12LTY2YzRjNWFiXXtjb2xvcjojMUEwREFCO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OmFyaWFsLCByZWd1bGFyO2ZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0Om5vcm1hbDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO3doaXRlLXNwYWNlOm5vd3JhcH0uc2VycC1wcmV2aWV3IC5zZXJwLXVybFtkYXRhLXYtNjZjNGM1YWJde2NvbG9yOiMwMDY2MjE7Zm9udC1mYW1pbHk6YXJpYWwsIHJlZ3VsYXI7Zm9udC1zaXplOjE0cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2xpbmUtaGVpZ2h0OjI0cHg7dGV4dC1hbGlnbjpsZWZ0O3Zpc2liaWxpdHk6dmlzaWJsZX0uc2VycC1wcmV2aWV3IC5zZXJwLWRlc2NyaXB0aW9uW2RhdGEtdi02NmM0YzVhYl17Y29sb3I6IzU0NTQ1NDtmb250LWZhbWlseTphcmlhbCwgcmVndWxhcjtmb250LXNpemU6MTNweDtmb250LXdlaWdodDpub3JtYWw7dGV4dC1hbGlnbjpsZWZ0O3Zpc2liaWxpdHk6dmlzaWJsZTt3b3JkLXdyYXA6YnJlYWstd29yZH1cXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9qcy9hcHAvdXRpbHMvc2VycC9zZXJwLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUE2RUEsK0JBQ0ksZUFBZ0IsQ0FDaEIsa0JBQW1CLENBQ25CLGlCQUFrQixDQUNsQixxQ0FBeUMsQ0FDekMsd0JBQXlCLENBQ3pCLHdCQUF5QixDQUN6QixZQUFhLENBQ2IsZUFBZ0IsQ0FScEIsMkNBV1EsMkJBQW9DLENBQ3BDLHlCQUEwQixDQUMxQix1QkFBd0IsQ0FDeEIsK0JBQW1DLENBQ25DLHVCQUF3QixDQUN4QixxQkFBc0IsQ0FDdEIsZ0NBQW9DLENBQ3BDLHdCQUF5QixDQUN6QixzQkFBdUIsQ0FDdkIsd0JBQWlDLENBQ2pDLHNCQUF1QixDQUN2QixvQkFBcUIsQ0FDckIsVUFBeUIsQ0FDekIsY0FBZSxDQUNmLDZCQUE4QixDQUM5QixjQUFlLENBQ2YsZ0JBQWlCLENBQ2pCLFVBQVcsQ0FDWCxpQkFBa0IsQ0FDbEIsZ0JBQWlCLENBQ2pCLGVBQWdCLENBQ2hCLGNBQWUsQ0FDZixpQkFBa0IsQ0FDbEIsZ0JBQWlCLENBQ2pCLGtCQUFtQixDQUNuQixrQkFBbUIsQ0FDbkIsU0FBVSxDQXJDbEIsMkNBeUNRLGFBQWMsQ0FDZCxjQUFlLENBQ2YsMEJBQTJCLENBQzNCLGNBQWUsQ0FDZixrQkFBbUIsQ0FDbkIsZUFBZ0IsQ0FDaEIsb0JBQXFCLENBQ3JCLGtCQUFtQixDQUNuQixrQkFBbUIsQ0FqRDNCLHlDQXFEUSxhQUFjLENBQ2QsMEJBQTJCLENBQzNCLGNBQWUsQ0FDZixpQkFBa0IsQ0FDbEIsa0JBQW1CLENBQ25CLGdCQUFpQixDQUNqQixlQUFnQixDQUNoQixrQkFBbUIsQ0E1RDNCLGlEQWdFUSxhQUFjLENBQ2QsMEJBQTJCLENBQzNCLGNBQWUsQ0FDZixrQkFBbUIsQ0FDbkIsZUFBZ0IsQ0FDaEIsa0JBQW1CLENBQ25CLG9CQUFxQlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG4uc2VycC1wcmV2aWV3IHtcXG4gICAgbWFyZ2luLXRvcDogMTVweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcXG4gICAgYm9yZGVyOiBzb2xpZCAxcHggI2U3ZTdlNztcXG4gICAgcGFkZGluZzogMzBweDtcXG4gICAgbWF4LXdpZHRoOiA3MDBweDtcXG5cXG4gICAgLnNlcnAtYXJyb3cge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDAsIDEwMiwgMzMpO1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XFxuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7XFxuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcXG4gICAgICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcXG4gICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7XFxuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XFxuICAgICAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xcbiAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiA0cHg7XFxuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiByZ2IoMCwgMTAyLCAzMyk7XFxuICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcXG4gICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDVweDtcXG4gICAgICAgIGNvbG9yOiByZ2IoMTI4LCAxMjgsIDEyOCk7XFxuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgICAgICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7XFxuICAgICAgICBmb250LXNpemU6IDExcHg7XFxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgICAgIGhlaWdodDogMHB4O1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XFxuICAgICAgICBtYXJnaW4tbGVmdDogM3B4O1xcbiAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gICAgICAgIHdpZHRoOiAwcHg7XFxuICAgIH1cXG5cXG4gICAgLnNlcnAtdGl0bGUge1xcbiAgICAgICAgY29sb3I6ICMxQTBEQUI7XFxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICBmb250LWZhbWlseTogYXJpYWwsIHJlZ3VsYXI7XFxuICAgICAgICBmb250LXNpemU6IDE4cHg7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICB9XFxuXFxuICAgIC5zZXJwLXVybCB7XFxuICAgICAgICBjb2xvcjogIzAwNjYyMTtcXG4gICAgICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgcmVndWxhcjtcXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgICB9XFxuXFxuICAgIC5zZXJwLWRlc2NyaXB0aW9uIHtcXG4gICAgICAgIGNvbG9yOiAjNTQ1NDU0O1xcbiAgICAgICAgZm9udC1mYW1pbHk6IGFyaWFsLCByZWd1bGFyO1xcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xcbiAgICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbi8vIGNzcyBiYXNlIGNvZGUsIGluamVjdGVkIGJ5IHRoZSBjc3MtbG9hZGVyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY3NzV2l0aE1hcHBpbmdUb1N0cmluZykge1xuICB2YXIgbGlzdCA9IFtdOyAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG5cbiAgbGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgdmFyIGNvbnRlbnQgPSBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0pO1xuXG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICByZXR1cm4gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIikuY29uY2F0KGNvbnRlbnQsIFwifVwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTsgLy8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcblxuXG4gIGxpc3QuaSA9IGZ1bmN0aW9uIChtb2R1bGVzLCBtZWRpYVF1ZXJ5LCBkZWR1cGUpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgXCJcIl1dO1xuICAgIH1cblxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG5cbiAgICBpZiAoZGVkdXBlKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1kZXN0cnVjdHVyaW5nXG4gICAgICAgIHZhciBpZCA9IHRoaXNbaV1bMF07XG5cbiAgICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgICBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2lkXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbW9kdWxlcy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2ldKTtcblxuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250aW51ZVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhUXVlcnk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsyXSA9IFwiXCIuY29uY2F0KG1lZGlhUXVlcnksIFwiIGFuZCBcIikuY29uY2F0KGl0ZW1bMl0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfc2xpY2VkVG9BcnJheShhcnIsIGkpIHsgcmV0dXJuIF9hcnJheVdpdGhIb2xlcyhhcnIpIHx8IF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIsIGkpIHx8IF9ub25JdGVyYWJsZVJlc3QoKTsgfVxuXG5mdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpOyB9XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHsgaWYgKCFvKSByZXR1cm47IGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7IHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTsgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7IGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikgeyBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDsgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7IGFycjJbaV0gPSBhcnJbaV07IH0gcmV0dXJuIGFycjI7IH1cblxuZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgeyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoYXJyKSkpIHJldHVybjsgdmFyIF9hcnIgPSBbXTsgdmFyIF9uID0gdHJ1ZTsgdmFyIF9kID0gZmFsc2U7IHZhciBfZSA9IHVuZGVmaW5lZDsgdHJ5IHsgZm9yICh2YXIgX2kgPSBhcnJbU3ltYm9sLml0ZXJhdG9yXSgpLCBfczsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkgeyBfYXJyLnB1c2goX3MudmFsdWUpOyBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7IH0gfSBjYXRjaCAoZXJyKSB7IF9kID0gdHJ1ZTsgX2UgPSBlcnI7IH0gZmluYWxseSB7IHRyeSB7IGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTsgfSBmaW5hbGx5IHsgaWYgKF9kKSB0aHJvdyBfZTsgfSB9IHJldHVybiBfYXJyOyB9XG5cbmZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHsgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjsgfVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSkge1xuICB2YXIgX2l0ZW0gPSBfc2xpY2VkVG9BcnJheShpdGVtLCA0KSxcbiAgICAgIGNvbnRlbnQgPSBfaXRlbVsxXSxcbiAgICAgIGNzc01hcHBpbmcgPSBfaXRlbVszXTtcblxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgdmFyIHNvdXJjZVVSTHMgPSBjc3NNYXBwaW5nLnNvdXJjZXMubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIHJldHVybiBcIi8qIyBzb3VyY2VVUkw9XCIuY29uY2F0KGNzc01hcHBpbmcuc291cmNlUm9vdCB8fCBcIlwiKS5jb25jYXQoc291cmNlLCBcIiAqL1wiKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG5cbiAgcmV0dXJuIFtjb250ZW50XS5qb2luKFwiXFxuXCIpO1xufTsiLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUiA9IHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyA/IFJlZmxlY3QgOiBudWxsXG52YXIgUmVmbGVjdEFwcGx5ID0gUiAmJiB0eXBlb2YgUi5hcHBseSA9PT0gJ2Z1bmN0aW9uJ1xuICA/IFIuYXBwbHlcbiAgOiBmdW5jdGlvbiBSZWZsZWN0QXBwbHkodGFyZ2V0LCByZWNlaXZlciwgYXJncykge1xuICAgIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbCh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKTtcbiAgfVxuXG52YXIgUmVmbGVjdE93bktleXNcbmlmIChSICYmIHR5cGVvZiBSLm93bktleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgUmVmbGVjdE93bktleXMgPSBSLm93bktleXNcbn0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpXG4gICAgICAuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSk7XG4gIH07XG59IGVsc2Uge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBQcm9jZXNzRW1pdFdhcm5pbmcod2FybmluZykge1xuICBpZiAoY29uc29sZSAmJiBjb25zb2xlLndhcm4pIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbn1cblxudmFyIE51bWJlcklzTmFOID0gTnVtYmVyLmlzTmFOIHx8IGZ1bmN0aW9uIE51bWJlcklzTmFOKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIEV2ZW50RW1pdHRlcigpIHtcbiAgRXZlbnRFbWl0dGVyLmluaXQuY2FsbCh0aGlzKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiIsIi8qIVxuICogdHlwZWFoZWFkLmpzIDAuMTEuMVxuICogaHR0cHM6Ly9naXRodWIuY29tL3R3aXR0ZXIvdHlwZWFoZWFkLmpzXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1IFR3aXR0ZXIsIEluYy4gYW5kIG90aGVyIGNvbnRyaWJ1dG9yczsgTGljZW5zZWQgTUlUXG4gKi9cblxuKGZ1bmN0aW9uKHJvb3QsIGZhY3RvcnkpIHtcbiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcbiAgICAgICAgZGVmaW5lKFwiYmxvb2Rob3VuZFwiLCBbIFwianF1ZXJ5XCIgXSwgZnVuY3Rpb24oYTApIHtcbiAgICAgICAgICAgIHJldHVybiByb290W1wiQmxvb2Rob3VuZFwiXSA9IGZhY3RvcnkoYTApO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwianF1ZXJ5XCIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByb290W1wiQmxvb2Rob3VuZFwiXSA9IGZhY3RvcnkoalF1ZXJ5KTtcbiAgICB9XG59KSh0aGlzLCBmdW5jdGlvbigkKSB7XG4gICAgdmFyIF8gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpc01zaWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAvKG1zaWV8dHJpZGVudCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpID8gbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvKG1zaWUgfHJ2OikoXFxkKyguXFxkKyk/KS9pKVsyXSA6IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzQmxhbmtTdHJpbmc6IGZ1bmN0aW9uKHN0cikge1xuICAgICAgICAgICAgICAgIHJldHVybiAhc3RyIHx8IC9eXFxzKiQvLnRlc3Qoc3RyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlc2NhcGVSZWdFeENoYXJzOiBmdW5jdGlvbihzdHIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1tcXC1cXFtcXF1cXC9cXHtcXH1cXChcXClcXCpcXCtcXD9cXC5cXFxcXFxeXFwkXFx8XS9nLCBcIlxcXFwkJlwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc1N0cmluZzogZnVuY3Rpb24ob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCI7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNOdW1iZXI6IGZ1bmN0aW9uKG9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcIm51bWJlclwiO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzQXJyYXk6ICQuaXNBcnJheSxcbiAgICAgICAgICAgIGlzRnVuY3Rpb246ICQuaXNGdW5jdGlvbixcbiAgICAgICAgICAgIGlzT2JqZWN0OiAkLmlzUGxhaW5PYmplY3QsXG4gICAgICAgICAgICBpc1VuZGVmaW5lZDogZnVuY3Rpb24ob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwidW5kZWZpbmVkXCI7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNFbGVtZW50OiBmdW5jdGlvbihvYmopIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISEob2JqICYmIG9iai5ub2RlVHlwZSA9PT0gMSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNKUXVlcnk6IGZ1bmN0aW9uKG9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiAkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRvU3RyOiBmdW5jdGlvbiB0b1N0cihzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF8uaXNVbmRlZmluZWQocykgfHwgcyA9PT0gbnVsbCA/IFwiXCIgOiBzICsgXCJcIjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBiaW5kOiAkLnByb3h5LFxuICAgICAgICAgICAgZWFjaDogZnVuY3Rpb24oY29sbGVjdGlvbiwgY2IpIHtcbiAgICAgICAgICAgICAgICAkLmVhY2goY29sbGVjdGlvbiwgcmV2ZXJzZUFyZ3MpO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHJldmVyc2VBcmdzKGluZGV4LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2IodmFsdWUsIGluZGV4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbWFwOiAkLm1hcCxcbiAgICAgICAgICAgIGZpbHRlcjogJC5ncmVwLFxuICAgICAgICAgICAgZXZlcnk6IGZ1bmN0aW9uKG9iaiwgdGVzdCkge1xuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICghb2JqKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICQuZWFjaChvYmosIGZ1bmN0aW9uKGtleSwgdmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHJlc3VsdCA9IHRlc3QuY2FsbChudWxsLCB2YWwsIGtleSwgb2JqKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiAhIXJlc3VsdDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzb21lOiBmdW5jdGlvbihvYmosIHRlc3QpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKCFvYmopIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJC5lYWNoKG9iaiwgZnVuY3Rpb24oa2V5LCB2YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9IHRlc3QuY2FsbChudWxsLCB2YWwsIGtleSwgb2JqKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhcmVzdWx0O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1peGluOiAkLmV4dGVuZCxcbiAgICAgICAgICAgIGlkZW50aXR5OiBmdW5jdGlvbih4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xvbmU6IGZ1bmN0aW9uKG9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiAkLmV4dGVuZCh0cnVlLCB7fSwgb2JqKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRJZEdlbmVyYXRvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNvdW50ZXIgPSAwO1xuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXIrKztcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRlbXBsYXRpZnk6IGZ1bmN0aW9uIHRlbXBsYXRpZnkob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICQuaXNGdW5jdGlvbihvYmopID8gb2JqIDogdGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gdGVtcGxhdGUoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcob2JqKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVmZXI6IGZ1bmN0aW9uKGZuKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmbiwgMCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVib3VuY2U6IGZ1bmN0aW9uKGZ1bmMsIHdhaXQsIGltbWVkaWF0ZSkge1xuICAgICAgICAgICAgICAgIHZhciB0aW1lb3V0LCByZXN1bHQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHMsIGxhdGVyLCBjYWxsTm93O1xuICAgICAgICAgICAgICAgICAgICBsYXRlciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWltbWVkaWF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGNhbGxOb3cgPSBpbW1lZGlhdGUgJiYgIXRpbWVvdXQ7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQobGF0ZXIsIHdhaXQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbE5vdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhyb3R0bGU6IGZ1bmN0aW9uKGZ1bmMsIHdhaXQpIHtcbiAgICAgICAgICAgICAgICB2YXIgY29udGV4dCwgYXJncywgdGltZW91dCwgcmVzdWx0LCBwcmV2aW91cywgbGF0ZXI7XG4gICAgICAgICAgICAgICAgcHJldmlvdXMgPSAwO1xuICAgICAgICAgICAgICAgIGxhdGVyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLCByZW1haW5pbmcgPSB3YWl0IC0gKG5vdyAtIHByZXZpb3VzKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZW1haW5pbmcgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91cyA9IG5vdztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRpbWVvdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGxhdGVyLCByZW1haW5pbmcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uKHZhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfLmlzU3RyaW5nKHZhbCkgPyB2YWwgOiBKU09OLnN0cmluZ2lmeSh2YWwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5vb3A6IGZ1bmN0aW9uKCkge31cbiAgICAgICAgfTtcbiAgICB9KCk7XG4gICAgdmFyIFZFUlNJT04gPSBcIjAuMTEuMVwiO1xuICAgIHZhciB0b2tlbml6ZXJzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIFwidXNlIHN0cmljdFwiO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9ud29yZDogbm9ud29yZCxcbiAgICAgICAgICAgIHdoaXRlc3BhY2U6IHdoaXRlc3BhY2UsXG4gICAgICAgICAgICBvYmo6IHtcbiAgICAgICAgICAgICAgICBub253b3JkOiBnZXRPYmpUb2tlbml6ZXIobm9ud29yZCksXG4gICAgICAgICAgICAgICAgd2hpdGVzcGFjZTogZ2V0T2JqVG9rZW5pemVyKHdoaXRlc3BhY2UpXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGZ1bmN0aW9uIHdoaXRlc3BhY2Uoc3RyKSB7XG4gICAgICAgICAgICBzdHIgPSBfLnRvU3RyKHN0cik7XG4gICAgICAgICAgICByZXR1cm4gc3RyID8gc3RyLnNwbGl0KC9cXHMrLykgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBub253b3JkKHN0cikge1xuICAgICAgICAgICAgc3RyID0gXy50b1N0cihzdHIpO1xuICAgICAgICAgICAgcmV0dXJuIHN0ciA/IHN0ci5zcGxpdCgvXFxXKy8pIDogW107XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0T2JqVG9rZW5pemVyKHRva2VuaXplcikge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIHNldEtleShrZXlzKSB7XG4gICAgICAgICAgICAgICAga2V5cyA9IF8uaXNBcnJheShrZXlzKSA/IGtleXMgOiBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIHRva2VuaXplKG8pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRva2VucyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBfLmVhY2goa2V5cywgZnVuY3Rpb24oaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5zID0gdG9rZW5zLmNvbmNhdCh0b2tlbml6ZXIoXy50b1N0cihvW2tdKSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VucztcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0oKTtcbiAgICB2YXIgTHJ1Q2FjaGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgICAgIGZ1bmN0aW9uIExydUNhY2hlKG1heFNpemUpIHtcbiAgICAgICAgICAgIHRoaXMubWF4U2l6ZSA9IF8uaXNOdW1iZXIobWF4U2l6ZSkgPyBtYXhTaXplIDogMTAwO1xuICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMubWF4U2l6ZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXQgPSB0aGlzLmdldCA9ICQubm9vcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBfLm1peGluKExydUNhY2hlLnByb3RvdHlwZSwge1xuICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiBzZXQoa2V5LCB2YWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFpbEl0ZW0gPSB0aGlzLmxpc3QudGFpbCwgbm9kZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaXplID49IHRoaXMubWF4U2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3QucmVtb3ZlKHRhaWxJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuaGFzaFt0YWlsSXRlbS5rZXldO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpemUtLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUgPSB0aGlzLmhhc2hba2V5XSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLnZhbCA9IHZhbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0Lm1vdmVUb0Zyb250KG5vZGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUgPSBuZXcgTm9kZShrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdC5hZGQobm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzaFtrZXldID0gbm9kZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXplKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gZ2V0KGtleSkge1xuICAgICAgICAgICAgICAgIHZhciBub2RlID0gdGhpcy5oYXNoW2tleV07XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0Lm1vdmVUb0Zyb250KG5vZGUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS52YWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0OiBmdW5jdGlvbiByZXNldCgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNpemUgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzaCA9IHt9O1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdCA9IG5ldyBMaXN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBMaXN0KCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkID0gdGhpcy50YWlsID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBfLm1peGluKExpc3QucHJvdG90eXBlLCB7XG4gICAgICAgICAgICBhZGQ6IGZ1bmN0aW9uIGFkZChub2RlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGVhZCkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLm5leHQgPSB0aGlzLmhlYWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGVhZC5wcmV2ID0gbm9kZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkID0gbm9kZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhaWwgPSB0aGlzLnRhaWwgfHwgbm9kZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZShub2RlKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5wcmV2ID8gbm9kZS5wcmV2Lm5leHQgPSBub2RlLm5leHQgOiB0aGlzLmhlYWQgPSBub2RlLm5leHQ7XG4gICAgICAgICAgICAgICAgbm9kZS5uZXh0ID8gbm9kZS5uZXh0LnByZXYgPSBub2RlLnByZXYgOiB0aGlzLnRhaWwgPSBub2RlLnByZXY7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbW92ZVRvRnJvbnQ6IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZShub2RlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZChub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIE5vZGUoa2V5LCB2YWwpIHtcbiAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5O1xuICAgICAgICAgICAgdGhpcy52YWwgPSB2YWw7XG4gICAgICAgICAgICB0aGlzLnByZXYgPSB0aGlzLm5leHQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBMcnVDYWNoZTtcbiAgICB9KCk7XG4gICAgdmFyIFBlcnNpc3RlbnRTdG9yYWdlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIFwidXNlIHN0cmljdFwiO1xuICAgICAgICB2YXIgTE9DQUxfU1RPUkFHRTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIExPQ0FMX1NUT1JBR0UgPSB3aW5kb3cubG9jYWxTdG9yYWdlO1xuICAgICAgICAgICAgTE9DQUxfU1RPUkFHRS5zZXRJdGVtKFwifn5+XCIsIFwiIVwiKTtcbiAgICAgICAgICAgIExPQ0FMX1NUT1JBR0UucmVtb3ZlSXRlbShcIn5+flwiKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBMT0NBTF9TVE9SQUdFID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBQZXJzaXN0ZW50U3RvcmFnZShuYW1lc3BhY2UsIG92ZXJyaWRlKSB7XG4gICAgICAgICAgICB0aGlzLnByZWZpeCA9IFsgXCJfX1wiLCBuYW1lc3BhY2UsIFwiX19cIiBdLmpvaW4oXCJcIik7XG4gICAgICAgICAgICB0aGlzLnR0bEtleSA9IFwiX190dGxfX1wiO1xuICAgICAgICAgICAgdGhpcy5rZXlNYXRjaGVyID0gbmV3IFJlZ0V4cChcIl5cIiArIF8uZXNjYXBlUmVnRXhDaGFycyh0aGlzLnByZWZpeCkpO1xuICAgICAgICAgICAgdGhpcy5scyA9IG92ZXJyaWRlIHx8IExPQ0FMX1NUT1JBR0U7XG4gICAgICAgICAgICAhdGhpcy5scyAmJiB0aGlzLl9ub29wKCk7XG4gICAgICAgIH1cbiAgICAgICAgXy5taXhpbihQZXJzaXN0ZW50U3RvcmFnZS5wcm90b3R5cGUsIHtcbiAgICAgICAgICAgIF9wcmVmaXg6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByZWZpeCArIGtleTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdHRsS2V5OiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJlZml4KGtleSkgKyB0aGlzLnR0bEtleTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfbm9vcDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXQgPSB0aGlzLnNldCA9IHRoaXMucmVtb3ZlID0gdGhpcy5jbGVhciA9IHRoaXMuaXNFeHBpcmVkID0gXy5ub29wO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9zYWZlU2V0OiBmdW5jdGlvbihrZXksIHZhbCkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubHMuc2V0SXRlbShrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIubmFtZSA9PT0gXCJRdW90YUV4Y2VlZGVkRXJyb3JcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm9vcCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldDogZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNFeHBpcmVkKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmUoa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZSh0aGlzLmxzLmdldEl0ZW0odGhpcy5fcHJlZml4KGtleSkpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKGtleSwgdmFsLCB0dGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoXy5pc051bWJlcih0dGwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NhZmVTZXQodGhpcy5fdHRsS2V5KGtleSksIGVuY29kZShub3coKSArIHR0bCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubHMucmVtb3ZlSXRlbSh0aGlzLl90dGxLZXkoa2V5KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zYWZlU2V0KHRoaXMuX3ByZWZpeChrZXkpLCBlbmNvZGUodmFsKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVtb3ZlOiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxzLnJlbW92ZUl0ZW0odGhpcy5fdHRsS2V5KGtleSkpO1xuICAgICAgICAgICAgICAgIHRoaXMubHMucmVtb3ZlSXRlbSh0aGlzLl9wcmVmaXgoa2V5KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xlYXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBpLCBrZXlzID0gZ2F0aGVyTWF0Y2hpbmdLZXlzKHRoaXMua2V5TWF0Y2hlcik7XG4gICAgICAgICAgICAgICAgZm9yIChpID0ga2V5cy5sZW5ndGg7IGktLTsgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlKGtleXNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc0V4cGlyZWQ6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgICAgIHZhciB0dGwgPSBkZWNvZGUodGhpcy5scy5nZXRJdGVtKHRoaXMuX3R0bEtleShrZXkpKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF8uaXNOdW1iZXIodHRsKSAmJiBub3coKSA+IHR0bCA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQZXJzaXN0ZW50U3RvcmFnZTtcbiAgICAgICAgZnVuY3Rpb24gbm93KCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGVuY29kZSh2YWwpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShfLmlzVW5kZWZpbmVkKHZhbCkgPyBudWxsIDogdmFsKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBkZWNvZGUodmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gJC5wYXJzZUpTT04odmFsKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnYXRoZXJNYXRjaGluZ0tleXMoa2V5TWF0Y2hlcikge1xuICAgICAgICAgICAgdmFyIGksIGtleSwga2V5cyA9IFtdLCBsZW4gPSBMT0NBTF9TVE9SQUdFLmxlbmd0aDtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICgoa2V5ID0gTE9DQUxfU1RPUkFHRS5rZXkoaSkpLm1hdGNoKGtleU1hdGNoZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGtleXMucHVzaChrZXkucmVwbGFjZShrZXlNYXRjaGVyLCBcIlwiKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgICAgIH1cbiAgICB9KCk7XG4gICAgdmFyIFRyYW5zcG9ydCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBcInVzZSBzdHJpY3RcIjtcbiAgICAgICAgdmFyIHBlbmRpbmdSZXF1ZXN0c0NvdW50ID0gMCwgcGVuZGluZ1JlcXVlc3RzID0ge30sIG1heFBlbmRpbmdSZXF1ZXN0cyA9IDYsIHNoYXJlZENhY2hlID0gbmV3IExydUNhY2hlKDEwKTtcbiAgICAgICAgZnVuY3Rpb24gVHJhbnNwb3J0KG8pIHtcbiAgICAgICAgICAgIG8gPSBvIHx8IHt9O1xuICAgICAgICAgICAgdGhpcy5jYW5jZWxsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGFzdFJlcSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl9zZW5kID0gby50cmFuc3BvcnQ7XG4gICAgICAgICAgICB0aGlzLl9nZXQgPSBvLmxpbWl0ZXIgPyBvLmxpbWl0ZXIodGhpcy5fZ2V0KSA6IHRoaXMuX2dldDtcbiAgICAgICAgICAgIHRoaXMuX2NhY2hlID0gby5jYWNoZSA9PT0gZmFsc2UgPyBuZXcgTHJ1Q2FjaGUoMCkgOiBzaGFyZWRDYWNoZTtcbiAgICAgICAgfVxuICAgICAgICBUcmFuc3BvcnQuc2V0TWF4UGVuZGluZ1JlcXVlc3RzID0gZnVuY3Rpb24gc2V0TWF4UGVuZGluZ1JlcXVlc3RzKG51bSkge1xuICAgICAgICAgICAgbWF4UGVuZGluZ1JlcXVlc3RzID0gbnVtO1xuICAgICAgICB9O1xuICAgICAgICBUcmFuc3BvcnQucmVzZXRDYWNoZSA9IGZ1bmN0aW9uIHJlc2V0Q2FjaGUoKSB7XG4gICAgICAgICAgICBzaGFyZWRDYWNoZS5yZXNldCgpO1xuICAgICAgICB9O1xuICAgICAgICBfLm1peGluKFRyYW5zcG9ydC5wcm90b3R5cGUsIHtcbiAgICAgICAgICAgIF9maW5nZXJwcmludDogZnVuY3Rpb24gZmluZ2VycHJpbnQobykge1xuICAgICAgICAgICAgICAgIG8gPSBvIHx8IHt9O1xuICAgICAgICAgICAgICAgIHJldHVybiBvLnVybCArIG8udHlwZSArICQucGFyYW0oby5kYXRhIHx8IHt9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfZ2V0OiBmdW5jdGlvbihvLCBjYikge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcywgZmluZ2VycHJpbnQsIGpxWGhyO1xuICAgICAgICAgICAgICAgIGZpbmdlcnByaW50ID0gdGhpcy5fZmluZ2VycHJpbnQobyk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2FuY2VsbGVkIHx8IGZpbmdlcnByaW50ICE9PSB0aGlzLmxhc3RSZXEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoanFYaHIgPSBwZW5kaW5nUmVxdWVzdHNbZmluZ2VycHJpbnRdKSB7XG4gICAgICAgICAgICAgICAgICAgIGpxWGhyLmRvbmUoZG9uZSkuZmFpbChmYWlsKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBlbmRpbmdSZXF1ZXN0c0NvdW50IDwgbWF4UGVuZGluZ1JlcXVlc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgIHBlbmRpbmdSZXF1ZXN0c0NvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgIHBlbmRpbmdSZXF1ZXN0c1tmaW5nZXJwcmludF0gPSB0aGlzLl9zZW5kKG8pLmRvbmUoZG9uZSkuZmFpbChmYWlsKS5hbHdheXMoYWx3YXlzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRGVja1JlcXVlc3RBcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBkb25lKHJlc3ApIHtcbiAgICAgICAgICAgICAgICAgICAgY2IobnVsbCwgcmVzcCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuX2NhY2hlLnNldChmaW5nZXJwcmludCwgcmVzcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGZhaWwoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNiKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBhbHdheXMoKSB7XG4gICAgICAgICAgICAgICAgICAgIHBlbmRpbmdSZXF1ZXN0c0NvdW50LS07XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwZW5kaW5nUmVxdWVzdHNbZmluZ2VycHJpbnRdO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vbkRlY2tSZXF1ZXN0QXJncykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fZ2V0LmFwcGx5KHRoYXQsIHRoYXQub25EZWNrUmVxdWVzdEFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5vbkRlY2tSZXF1ZXN0QXJncyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbihvLCBjYikge1xuICAgICAgICAgICAgICAgIHZhciByZXNwLCBmaW5nZXJwcmludDtcbiAgICAgICAgICAgICAgICBjYiA9IGNiIHx8ICQubm9vcDtcbiAgICAgICAgICAgICAgICBvID0gXy5pc1N0cmluZyhvKSA/IHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBvXG4gICAgICAgICAgICAgICAgfSA6IG8gfHwge307XG4gICAgICAgICAgICAgICAgZmluZ2VycHJpbnQgPSB0aGlzLl9maW5nZXJwcmludChvKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMubGFzdFJlcSA9IGZpbmdlcnByaW50O1xuICAgICAgICAgICAgICAgIGlmIChyZXNwID0gdGhpcy5fY2FjaGUuZ2V0KGZpbmdlcnByaW50KSkge1xuICAgICAgICAgICAgICAgICAgICBjYihudWxsLCByZXNwKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXQobywgY2IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjYW5jZWw6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBUcmFuc3BvcnQ7XG4gICAgfSgpO1xuICAgIHZhciBTZWFyY2hJbmRleCA9IHdpbmRvdy5TZWFyY2hJbmRleCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBcInVzZSBzdHJpY3RcIjtcbiAgICAgICAgdmFyIENISUxEUkVOID0gXCJjXCIsIElEUyA9IFwiaVwiO1xuICAgICAgICBmdW5jdGlvbiBTZWFyY2hJbmRleChvKSB7XG4gICAgICAgICAgICBvID0gbyB8fCB7fTtcbiAgICAgICAgICAgIGlmICghby5kYXR1bVRva2VuaXplciB8fCAhby5xdWVyeVRva2VuaXplcikge1xuICAgICAgICAgICAgICAgICQuZXJyb3IoXCJkYXR1bVRva2VuaXplciBhbmQgcXVlcnlUb2tlbml6ZXIgYXJlIGJvdGggcmVxdWlyZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlkZW50aWZ5ID0gby5pZGVudGlmeSB8fCBfLnN0cmluZ2lmeTtcbiAgICAgICAgICAgIHRoaXMuZGF0dW1Ub2tlbml6ZXIgPSBvLmRhdHVtVG9rZW5pemVyO1xuICAgICAgICAgICAgdGhpcy5xdWVyeVRva2VuaXplciA9IG8ucXVlcnlUb2tlbml6ZXI7XG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIH1cbiAgICAgICAgXy5taXhpbihTZWFyY2hJbmRleC5wcm90b3R5cGUsIHtcbiAgICAgICAgICAgIGJvb3RzdHJhcDogZnVuY3Rpb24gYm9vdHN0cmFwKG8pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdHVtcyA9IG8uZGF0dW1zO1xuICAgICAgICAgICAgICAgIHRoaXMudHJpZSA9IG8udHJpZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZGQ6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgZGF0YSA9IF8uaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbIGRhdGEgXTtcbiAgICAgICAgICAgICAgICBfLmVhY2goZGF0YSwgZnVuY3Rpb24oZGF0dW0pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlkLCB0b2tlbnM7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuZGF0dW1zW2lkID0gdGhhdC5pZGVudGlmeShkYXR1bSldID0gZGF0dW07XG4gICAgICAgICAgICAgICAgICAgIHRva2VucyA9IG5vcm1hbGl6ZVRva2Vucyh0aGF0LmRhdHVtVG9rZW5pemVyKGRhdHVtKSk7XG4gICAgICAgICAgICAgICAgICAgIF8uZWFjaCh0b2tlbnMsIGZ1bmN0aW9uKHRva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbm9kZSwgY2hhcnMsIGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSA9IHRoYXQudHJpZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzID0gdG9rZW4uc3BsaXQoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY2ggPSBjaGFycy5zaGlmdCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGVbQ0hJTERSRU5dW2NoXSB8fCAobm9kZVtDSElMRFJFTl1bY2hdID0gbmV3Tm9kZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlW0lEU10ucHVzaChpZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gZ2V0KGlkcykge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICByZXR1cm4gXy5tYXAoaWRzLCBmdW5jdGlvbihpZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5kYXR1bXNbaWRdO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlYXJjaDogZnVuY3Rpb24gc2VhcmNoKHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLCB0b2tlbnMsIG1hdGNoZXM7XG4gICAgICAgICAgICAgICAgdG9rZW5zID0gbm9ybWFsaXplVG9rZW5zKHRoaXMucXVlcnlUb2tlbml6ZXIocXVlcnkpKTtcbiAgICAgICAgICAgICAgICBfLmVhY2godG9rZW5zLCBmdW5jdGlvbih0b2tlbikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbm9kZSwgY2hhcnMsIGNoLCBpZHM7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzICYmIG1hdGNoZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IHRoYXQudHJpZTtcbiAgICAgICAgICAgICAgICAgICAgY2hhcnMgPSB0b2tlbi5zcGxpdChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG5vZGUgJiYgKGNoID0gY2hhcnMuc2hpZnQoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlW0NISUxEUkVOXVtjaF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUgJiYgY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZHMgPSBub2RlW0lEU10uc2xpY2UoMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVzID0gbWF0Y2hlcyA/IGdldEludGVyc2VjdGlvbihtYXRjaGVzLCBpZHMpIDogaWRzO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXMgPyBfLm1hcCh1bmlxdWUobWF0Y2hlcyksIGZ1bmN0aW9uKGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGF0LmRhdHVtc1tpZF07XG4gICAgICAgICAgICAgICAgfSkgOiBbXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhbGw6IGZ1bmN0aW9uIGFsbCgpIHtcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107XG4gICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMuZGF0dW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKHRoaXMuZGF0dW1zW2tleV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0OiBmdW5jdGlvbiByZXNldCgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdHVtcyA9IHt9O1xuICAgICAgICAgICAgICAgIHRoaXMudHJpZSA9IG5ld05vZGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXJpYWxpemU6IGZ1bmN0aW9uIHNlcmlhbGl6ZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBkYXR1bXM6IHRoaXMuZGF0dW1zLFxuICAgICAgICAgICAgICAgICAgICB0cmllOiB0aGlzLnRyaWVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFNlYXJjaEluZGV4O1xuICAgICAgICBmdW5jdGlvbiBub3JtYWxpemVUb2tlbnModG9rZW5zKSB7XG4gICAgICAgICAgICB0b2tlbnMgPSBfLmZpbHRlcih0b2tlbnMsIGZ1bmN0aW9uKHRva2VuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhdG9rZW47XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRva2VucyA9IF8ubWFwKHRva2VucywgZnVuY3Rpb24odG9rZW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHRva2VucztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBuZXdOb2RlKCkge1xuICAgICAgICAgICAgdmFyIG5vZGUgPSB7fTtcbiAgICAgICAgICAgIG5vZGVbSURTXSA9IFtdO1xuICAgICAgICAgICAgbm9kZVtDSElMRFJFTl0gPSB7fTtcbiAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHVuaXF1ZShhcnJheSkge1xuICAgICAgICAgICAgdmFyIHNlZW4gPSB7fSwgdW5pcXVlcyA9IFtdO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFycmF5Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzZWVuW2FycmF5W2ldXSkge1xuICAgICAgICAgICAgICAgICAgICBzZWVuW2FycmF5W2ldXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHVuaXF1ZXMucHVzaChhcnJheVtpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHVuaXF1ZXM7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0SW50ZXJzZWN0aW9uKGFycmF5QSwgYXJyYXlCKSB7XG4gICAgICAgICAgICB2YXIgYWkgPSAwLCBiaSA9IDAsIGludGVyc2VjdGlvbiA9IFtdO1xuICAgICAgICAgICAgYXJyYXlBID0gYXJyYXlBLnNvcnQoKTtcbiAgICAgICAgICAgIGFycmF5QiA9IGFycmF5Qi5zb3J0KCk7XG4gICAgICAgICAgICB2YXIgbGVuQXJyYXlBID0gYXJyYXlBLmxlbmd0aCwgbGVuQXJyYXlCID0gYXJyYXlCLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChhaSA8IGxlbkFycmF5QSAmJiBiaSA8IGxlbkFycmF5Qikge1xuICAgICAgICAgICAgICAgIGlmIChhcnJheUFbYWldIDwgYXJyYXlCW2JpXSkge1xuICAgICAgICAgICAgICAgICAgICBhaSsrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJyYXlBW2FpXSA+IGFycmF5QltiaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgYmkrKztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbnRlcnNlY3Rpb24ucHVzaChhcnJheUFbYWldKTtcbiAgICAgICAgICAgICAgICAgICAgYWkrKztcbiAgICAgICAgICAgICAgICAgICAgYmkrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaW50ZXJzZWN0aW9uO1xuICAgICAgICB9XG4gICAgfSgpO1xuICAgIHZhciBQcmVmZXRjaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBcInVzZSBzdHJpY3RcIjtcbiAgICAgICAgdmFyIGtleXM7XG4gICAgICAgIGtleXMgPSB7XG4gICAgICAgICAgICBkYXRhOiBcImRhdGFcIixcbiAgICAgICAgICAgIHByb3RvY29sOiBcInByb3RvY29sXCIsXG4gICAgICAgICAgICB0aHVtYnByaW50OiBcInRodW1icHJpbnRcIlxuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBQcmVmZXRjaChvKSB7XG4gICAgICAgICAgICB0aGlzLnVybCA9IG8udXJsO1xuICAgICAgICAgICAgdGhpcy50dGwgPSBvLnR0bDtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUgPSBvLmNhY2hlO1xuICAgICAgICAgICAgdGhpcy5wcmVwYXJlID0gby5wcmVwYXJlO1xuICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm0gPSBvLnRyYW5zZm9ybTtcbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0ID0gby50cmFuc3BvcnQ7XG4gICAgICAgICAgICB0aGlzLnRodW1icHJpbnQgPSBvLnRodW1icHJpbnQ7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2UgPSBuZXcgUGVyc2lzdGVudFN0b3JhZ2Uoby5jYWNoZUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgXy5taXhpbihQcmVmZXRjaC5wcm90b3R5cGUsIHtcbiAgICAgICAgICAgIF9zZXR0aW5nczogZnVuY3Rpb24gc2V0dGluZ3MoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJHRVRcIixcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwianNvblwiXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdG9yZTogZnVuY3Rpb24gc3RvcmUoZGF0YSkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXQoa2V5cy5kYXRhLCBkYXRhLCB0aGlzLnR0bCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNldChrZXlzLnByb3RvY29sLCBsb2NhdGlvbi5wcm90b2NvbCwgdGhpcy50dGwpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXQoa2V5cy50aHVtYnByaW50LCB0aGlzLnRodW1icHJpbnQsIHRoaXMudHRsKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmcm9tQ2FjaGU6IGZ1bmN0aW9uIGZyb21DYWNoZSgpIHtcbiAgICAgICAgICAgICAgICB2YXIgc3RvcmVkID0ge30sIGlzRXhwaXJlZDtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0b3JlZC5kYXRhID0gdGhpcy5zdG9yYWdlLmdldChrZXlzLmRhdGEpO1xuICAgICAgICAgICAgICAgIHN0b3JlZC5wcm90b2NvbCA9IHRoaXMuc3RvcmFnZS5nZXQoa2V5cy5wcm90b2NvbCk7XG4gICAgICAgICAgICAgICAgc3RvcmVkLnRodW1icHJpbnQgPSB0aGlzLnN0b3JhZ2UuZ2V0KGtleXMudGh1bWJwcmludCk7XG4gICAgICAgICAgICAgICAgaXNFeHBpcmVkID0gc3RvcmVkLnRodW1icHJpbnQgIT09IHRoaXMudGh1bWJwcmludCB8fCBzdG9yZWQucHJvdG9jb2wgIT09IGxvY2F0aW9uLnByb3RvY29sO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdG9yZWQuZGF0YSAmJiAhaXNFeHBpcmVkID8gc3RvcmVkLmRhdGEgOiBudWxsO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZyb21OZXR3b3JrOiBmdW5jdGlvbihjYikge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcywgc2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgaWYgKCFjYikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldHRpbmdzID0gdGhpcy5wcmVwYXJlKHRoaXMuX3NldHRpbmdzKCkpO1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0KHNldHRpbmdzKS5mYWlsKG9uRXJyb3IpLmRvbmUob25SZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gb25FcnJvcigpIHtcbiAgICAgICAgICAgICAgICAgICAgY2IodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9uUmVzcG9uc2UocmVzcCkge1xuICAgICAgICAgICAgICAgICAgICBjYihudWxsLCB0aGF0LnRyYW5zZm9ybShyZXNwKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsZWFyOiBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQcmVmZXRjaDtcbiAgICB9KCk7XG4gICAgdmFyIFJlbW90ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBcInVzZSBzdHJpY3RcIjtcbiAgICAgICAgZnVuY3Rpb24gUmVtb3RlKG8pIHtcbiAgICAgICAgICAgIHRoaXMudXJsID0gby51cmw7XG4gICAgICAgICAgICB0aGlzLnByZXBhcmUgPSBvLnByZXBhcmU7XG4gICAgICAgICAgICB0aGlzLnRyYW5zZm9ybSA9IG8udHJhbnNmb3JtO1xuICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQgPSBuZXcgVHJhbnNwb3J0KHtcbiAgICAgICAgICAgICAgICBjYWNoZTogby5jYWNoZSxcbiAgICAgICAgICAgICAgICBsaW1pdGVyOiBvLmxpbWl0ZXIsXG4gICAgICAgICAgICAgICAgdHJhbnNwb3J0OiBvLnRyYW5zcG9ydFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgXy5taXhpbihSZW1vdGUucHJvdG90eXBlLCB7XG4gICAgICAgICAgICBfc2V0dGluZ3M6IGZ1bmN0aW9uIHNldHRpbmdzKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiR0VUXCIsXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25cIlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQocXVlcnksIGNiKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLCBzZXR0aW5ncztcbiAgICAgICAgICAgICAgICBpZiAoIWNiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSB8fCBcIlwiO1xuICAgICAgICAgICAgICAgIHNldHRpbmdzID0gdGhpcy5wcmVwYXJlKHF1ZXJ5LCB0aGlzLl9zZXR0aW5ncygpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc3BvcnQuZ2V0KHNldHRpbmdzLCBvblJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBvblJlc3BvbnNlKGVyciwgcmVzcCkge1xuICAgICAgICAgICAgICAgICAgICBlcnIgPyBjYihbXSkgOiBjYih0aGF0LnRyYW5zZm9ybShyZXNwKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhbmNlbExhc3RSZXF1ZXN0OiBmdW5jdGlvbiBjYW5jZWxMYXN0UmVxdWVzdCgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zcG9ydC5jYW5jZWwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBSZW1vdGU7XG4gICAgfSgpO1xuICAgIHZhciBvUGFyc2VyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIFwidXNlIHN0cmljdFwiO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gcGFyc2Uobykge1xuICAgICAgICAgICAgdmFyIGRlZmF1bHRzLCBzb3J0ZXI7XG4gICAgICAgICAgICBkZWZhdWx0cyA9IHtcbiAgICAgICAgICAgICAgICBpbml0aWFsaXplOiB0cnVlLFxuICAgICAgICAgICAgICAgIGlkZW50aWZ5OiBfLnN0cmluZ2lmeSxcbiAgICAgICAgICAgICAgICBkYXR1bVRva2VuaXplcjogbnVsbCxcbiAgICAgICAgICAgICAgICBxdWVyeVRva2VuaXplcjogbnVsbCxcbiAgICAgICAgICAgICAgICBzdWZmaWNpZW50OiA1LFxuICAgICAgICAgICAgICAgIHNvcnRlcjogbnVsbCxcbiAgICAgICAgICAgICAgICBsb2NhbDogW10sXG4gICAgICAgICAgICAgICAgcHJlZmV0Y2g6IG51bGwsXG4gICAgICAgICAgICAgICAgcmVtb3RlOiBudWxsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbyA9IF8ubWl4aW4oZGVmYXVsdHMsIG8gfHwge30pO1xuICAgICAgICAgICAgIW8uZGF0dW1Ub2tlbml6ZXIgJiYgJC5lcnJvcihcImRhdHVtVG9rZW5pemVyIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICAgICAgIW8ucXVlcnlUb2tlbml6ZXIgJiYgJC5lcnJvcihcInF1ZXJ5VG9rZW5pemVyIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICAgICAgc29ydGVyID0gby5zb3J0ZXI7XG4gICAgICAgICAgICBvLnNvcnRlciA9IHNvcnRlciA/IGZ1bmN0aW9uKHgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geC5zb3J0KHNvcnRlcik7XG4gICAgICAgICAgICB9IDogXy5pZGVudGl0eTtcbiAgICAgICAgICAgIG8ubG9jYWwgPSBfLmlzRnVuY3Rpb24oby5sb2NhbCkgPyBvLmxvY2FsKCkgOiBvLmxvY2FsO1xuICAgICAgICAgICAgby5wcmVmZXRjaCA9IHBhcnNlUHJlZmV0Y2goby5wcmVmZXRjaCk7XG4gICAgICAgICAgICBvLnJlbW90ZSA9IHBhcnNlUmVtb3RlKG8ucmVtb3RlKTtcbiAgICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBwYXJzZVByZWZldGNoKG8pIHtcbiAgICAgICAgICAgIHZhciBkZWZhdWx0cztcbiAgICAgICAgICAgIGlmICghbykge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdHMgPSB7XG4gICAgICAgICAgICAgICAgdXJsOiBudWxsLFxuICAgICAgICAgICAgICAgIHR0bDogMjQgKiA2MCAqIDYwICogMWUzLFxuICAgICAgICAgICAgICAgIGNhY2hlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNhY2hlS2V5OiBudWxsLFxuICAgICAgICAgICAgICAgIHRodW1icHJpbnQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgcHJlcGFyZTogXy5pZGVudGl0eSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IF8uaWRlbnRpdHksXG4gICAgICAgICAgICAgICAgdHJhbnNwb3J0OiBudWxsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbyA9IF8uaXNTdHJpbmcobykgPyB7XG4gICAgICAgICAgICAgICAgdXJsOiBvXG4gICAgICAgICAgICB9IDogbztcbiAgICAgICAgICAgIG8gPSBfLm1peGluKGRlZmF1bHRzLCBvKTtcbiAgICAgICAgICAgICFvLnVybCAmJiAkLmVycm9yKFwicHJlZmV0Y2ggcmVxdWlyZXMgdXJsIHRvIGJlIHNldFwiKTtcbiAgICAgICAgICAgIG8udHJhbnNmb3JtID0gby5maWx0ZXIgfHwgby50cmFuc2Zvcm07XG4gICAgICAgICAgICBvLmNhY2hlS2V5ID0gby5jYWNoZUtleSB8fCBvLnVybDtcbiAgICAgICAgICAgIG8udGh1bWJwcmludCA9IFZFUlNJT04gKyBvLnRodW1icHJpbnQ7XG4gICAgICAgICAgICBvLnRyYW5zcG9ydCA9IG8udHJhbnNwb3J0ID8gY2FsbGJhY2tUb0RlZmVycmVkKG8udHJhbnNwb3J0KSA6ICQuYWpheDtcbiAgICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHBhcnNlUmVtb3RlKG8pIHtcbiAgICAgICAgICAgIHZhciBkZWZhdWx0cztcbiAgICAgICAgICAgIGlmICghbykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHRzID0ge1xuICAgICAgICAgICAgICAgIHVybDogbnVsbCxcbiAgICAgICAgICAgICAgICBjYWNoZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwcmVwYXJlOiBudWxsLFxuICAgICAgICAgICAgICAgIHJlcGxhY2U6IG51bGwsXG4gICAgICAgICAgICAgICAgd2lsZGNhcmQ6IG51bGwsXG4gICAgICAgICAgICAgICAgbGltaXRlcjogbnVsbCxcbiAgICAgICAgICAgICAgICByYXRlTGltaXRCeTogXCJkZWJvdW5jZVwiLFxuICAgICAgICAgICAgICAgIHJhdGVMaW1pdFdhaXQ6IDMwMCxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IF8uaWRlbnRpdHksXG4gICAgICAgICAgICAgICAgdHJhbnNwb3J0OiBudWxsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbyA9IF8uaXNTdHJpbmcobykgPyB7XG4gICAgICAgICAgICAgICAgdXJsOiBvXG4gICAgICAgICAgICB9IDogbztcbiAgICAgICAgICAgIG8gPSBfLm1peGluKGRlZmF1bHRzLCBvKTtcbiAgICAgICAgICAgICFvLnVybCAmJiAkLmVycm9yKFwicmVtb3RlIHJlcXVpcmVzIHVybCB0byBiZSBzZXRcIik7XG4gICAgICAgICAgICBvLnRyYW5zZm9ybSA9IG8uZmlsdGVyIHx8IG8udHJhbnNmb3JtO1xuICAgICAgICAgICAgby5wcmVwYXJlID0gdG9SZW1vdGVQcmVwYXJlKG8pO1xuICAgICAgICAgICAgby5saW1pdGVyID0gdG9MaW1pdGVyKG8pO1xuICAgICAgICAgICAgby50cmFuc3BvcnQgPSBvLnRyYW5zcG9ydCA/IGNhbGxiYWNrVG9EZWZlcnJlZChvLnRyYW5zcG9ydCkgOiAkLmFqYXg7XG4gICAgICAgICAgICBkZWxldGUgby5yZXBsYWNlO1xuICAgICAgICAgICAgZGVsZXRlIG8ud2lsZGNhcmQ7XG4gICAgICAgICAgICBkZWxldGUgby5yYXRlTGltaXRCeTtcbiAgICAgICAgICAgIGRlbGV0ZSBvLnJhdGVMaW1pdFdhaXQ7XG4gICAgICAgICAgICByZXR1cm4gbztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0b1JlbW90ZVByZXBhcmUobykge1xuICAgICAgICAgICAgdmFyIHByZXBhcmUsIHJlcGxhY2UsIHdpbGRjYXJkO1xuICAgICAgICAgICAgcHJlcGFyZSA9IG8ucHJlcGFyZTtcbiAgICAgICAgICAgIHJlcGxhY2UgPSBvLnJlcGxhY2U7XG4gICAgICAgICAgICB3aWxkY2FyZCA9IG8ud2lsZGNhcmQ7XG4gICAgICAgICAgICBpZiAocHJlcGFyZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmVwYXJlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlcGxhY2UpIHtcbiAgICAgICAgICAgICAgICBwcmVwYXJlID0gcHJlcGFyZUJ5UmVwbGFjZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoby53aWxkY2FyZCkge1xuICAgICAgICAgICAgICAgIHByZXBhcmUgPSBwcmVwYXJlQnlXaWxkY2FyZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHJlcGFyZSA9IGlkZW5pdHlQcmVwYXJlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHByZXBhcmU7XG4gICAgICAgICAgICBmdW5jdGlvbiBwcmVwYXJlQnlSZXBsYWNlKHF1ZXJ5LCBzZXR0aW5ncykge1xuICAgICAgICAgICAgICAgIHNldHRpbmdzLnVybCA9IHJlcGxhY2Uoc2V0dGluZ3MudXJsLCBxdWVyeSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNldHRpbmdzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gcHJlcGFyZUJ5V2lsZGNhcmQocXVlcnksIHNldHRpbmdzKSB7XG4gICAgICAgICAgICAgICAgc2V0dGluZ3MudXJsID0gc2V0dGluZ3MudXJsLnJlcGxhY2Uod2lsZGNhcmQsIGVuY29kZVVSSUNvbXBvbmVudChxdWVyeSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzZXR0aW5ncztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIGlkZW5pdHlQcmVwYXJlKHF1ZXJ5LCBzZXR0aW5ncykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZXR0aW5ncztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0b0xpbWl0ZXIobykge1xuICAgICAgICAgICAgdmFyIGxpbWl0ZXIsIG1ldGhvZCwgd2FpdDtcbiAgICAgICAgICAgIGxpbWl0ZXIgPSBvLmxpbWl0ZXI7XG4gICAgICAgICAgICBtZXRob2QgPSBvLnJhdGVMaW1pdEJ5O1xuICAgICAgICAgICAgd2FpdCA9IG8ucmF0ZUxpbWl0V2FpdDtcbiAgICAgICAgICAgIGlmICghbGltaXRlcikge1xuICAgICAgICAgICAgICAgIGxpbWl0ZXIgPSAvXnRocm90dGxlJC9pLnRlc3QobWV0aG9kKSA/IHRocm90dGxlKHdhaXQpIDogZGVib3VuY2Uod2FpdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbGltaXRlcjtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGRlYm91bmNlKHdhaXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gZGVib3VuY2UoZm4pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF8uZGVib3VuY2UoZm4sIHdhaXQpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiB0aHJvdHRsZSh3YWl0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIHRocm90dGxlKGZuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfLnRocm90dGxlKGZuLCB3YWl0KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrVG9EZWZlcnJlZChmbikge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIHdyYXBwZXIobykge1xuICAgICAgICAgICAgICAgIHZhciBkZWZlcnJlZCA9ICQuRGVmZXJyZWQoKTtcbiAgICAgICAgICAgICAgICBmbihvLCBvblN1Y2Nlc3MsIG9uRXJyb3IpO1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZlcnJlZDtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBvblN1Y2Nlc3MocmVzcCkge1xuICAgICAgICAgICAgICAgICAgICBfLmRlZmVyKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmZXJyZWQucmVzb2x2ZShyZXNwKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9uRXJyb3IoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIF8uZGVmZXIoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZC5yZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0oKTtcbiAgICB2YXIgQmxvb2Rob3VuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBcInVzZSBzdHJpY3RcIjtcbiAgICAgICAgdmFyIG9sZDtcbiAgICAgICAgb2xkID0gd2luZG93ICYmIHdpbmRvdy5CbG9vZGhvdW5kO1xuICAgICAgICBmdW5jdGlvbiBCbG9vZGhvdW5kKG8pIHtcbiAgICAgICAgICAgIG8gPSBvUGFyc2VyKG8pO1xuICAgICAgICAgICAgdGhpcy5zb3J0ZXIgPSBvLnNvcnRlcjtcbiAgICAgICAgICAgIHRoaXMuaWRlbnRpZnkgPSBvLmlkZW50aWZ5O1xuICAgICAgICAgICAgdGhpcy5zdWZmaWNpZW50ID0gby5zdWZmaWNpZW50O1xuICAgICAgICAgICAgdGhpcy5sb2NhbCA9IG8ubG9jYWw7XG4gICAgICAgICAgICB0aGlzLnJlbW90ZSA9IG8ucmVtb3RlID8gbmV3IFJlbW90ZShvLnJlbW90ZSkgOiBudWxsO1xuICAgICAgICAgICAgdGhpcy5wcmVmZXRjaCA9IG8ucHJlZmV0Y2ggPyBuZXcgUHJlZmV0Y2goby5wcmVmZXRjaCkgOiBudWxsO1xuICAgICAgICAgICAgdGhpcy5pbmRleCA9IG5ldyBTZWFyY2hJbmRleCh7XG4gICAgICAgICAgICAgICAgaWRlbnRpZnk6IHRoaXMuaWRlbnRpZnksXG4gICAgICAgICAgICAgICAgZGF0dW1Ub2tlbml6ZXI6IG8uZGF0dW1Ub2tlbml6ZXIsXG4gICAgICAgICAgICAgICAgcXVlcnlUb2tlbml6ZXI6IG8ucXVlcnlUb2tlbml6ZXJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgby5pbml0aWFsaXplICE9PSBmYWxzZSAmJiB0aGlzLmluaXRpYWxpemUoKTtcbiAgICAgICAgfVxuICAgICAgICBCbG9vZGhvdW5kLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiBub0NvbmZsaWN0KCkge1xuICAgICAgICAgICAgd2luZG93ICYmICh3aW5kb3cuQmxvb2Rob3VuZCA9IG9sZCk7XG4gICAgICAgICAgICByZXR1cm4gQmxvb2Rob3VuZDtcbiAgICAgICAgfTtcbiAgICAgICAgQmxvb2Rob3VuZC50b2tlbml6ZXJzID0gdG9rZW5pemVycztcbiAgICAgICAgXy5taXhpbihCbG9vZGhvdW5kLnByb3RvdHlwZSwge1xuICAgICAgICAgICAgX190dEFkYXB0ZXI6IGZ1bmN0aW9uIHR0QWRhcHRlcigpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVtb3RlID8gd2l0aEFzeW5jIDogd2l0aG91dEFzeW5jO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHdpdGhBc3luYyhxdWVyeSwgc3luYywgYXN5bmMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuc2VhcmNoKHF1ZXJ5LCBzeW5jLCBhc3luYyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHdpdGhvdXRBc3luYyhxdWVyeSwgc3luYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5zZWFyY2gocXVlcnksIHN5bmMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfbG9hZFByZWZldGNoOiBmdW5jdGlvbiBsb2FkUHJlZmV0Y2goKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLCBkZWZlcnJlZCwgc2VyaWFsaXplZDtcbiAgICAgICAgICAgICAgICBkZWZlcnJlZCA9ICQuRGVmZXJyZWQoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucHJlZmV0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2VyaWFsaXplZCA9IHRoaXMucHJlZmV0Y2guZnJvbUNhY2hlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmRleC5ib290c3RyYXAoc2VyaWFsaXplZCk7XG4gICAgICAgICAgICAgICAgICAgIGRlZmVycmVkLnJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZWZldGNoLmZyb21OZXR3b3JrKGRvbmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmZXJyZWQucHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGRvbmUoZXJyLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWZlcnJlZC5yZWplY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LmFkZChkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5wcmVmZXRjaC5zdG9yZSh0aGF0LmluZGV4LnNlcmlhbGl6ZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgZGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5pdGlhbGl6ZTogZnVuY3Rpb24gaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsIGRlZmVycmVkO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAodGhpcy5pbml0UHJvbWlzZSA9IHRoaXMuX2xvYWRQcmVmZXRjaCgpKS5kb25lKGFkZExvY2FsVG9JbmRleCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5pdFByb21pc2U7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gYWRkTG9jYWxUb0luZGV4KCkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmFkZCh0aGF0LmxvY2FsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gaW5pdGlhbGl6ZShmb3JjZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5pbml0UHJvbWlzZSB8fCBmb3JjZSA/IHRoaXMuX2luaXRpYWxpemUoKSA6IHRoaXMuaW5pdFByb21pc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWRkOiBmdW5jdGlvbiBhZGQoZGF0YSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZXguYWRkKGRhdGEpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gZ2V0KGlkcykge1xuICAgICAgICAgICAgICAgIGlkcyA9IF8uaXNBcnJheShpZHMpID8gaWRzIDogW10uc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmluZGV4LmdldChpZHMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlYXJjaDogZnVuY3Rpb24gc2VhcmNoKHF1ZXJ5LCBzeW5jLCBhc3luYykge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcywgbG9jYWw7XG4gICAgICAgICAgICAgICAgbG9jYWwgPSB0aGlzLnNvcnRlcih0aGlzLmluZGV4LnNlYXJjaChxdWVyeSkpO1xuICAgICAgICAgICAgICAgIHN5bmModGhpcy5yZW1vdGUgPyBsb2NhbC5zbGljZSgpIDogbG9jYWwpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlbW90ZSAmJiBsb2NhbC5sZW5ndGggPCB0aGlzLnN1ZmZpY2llbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUuZ2V0KHF1ZXJ5LCBwcm9jZXNzUmVtb3RlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVtb3RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlLmNhbmNlbExhc3RSZXF1ZXN0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NSZW1vdGUocmVtb3RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBub25EdXBsaWNhdGVzID0gW107XG4gICAgICAgICAgICAgICAgICAgIF8uZWFjaChyZW1vdGUsIGZ1bmN0aW9uKHIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICFfLnNvbWUobG9jYWwsIGZ1bmN0aW9uKGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5pZGVudGlmeShyKSA9PT0gdGhhdC5pZGVudGlmeShsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pICYmIG5vbkR1cGxpY2F0ZXMucHVzaChyKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGFzeW5jICYmIGFzeW5jKG5vbkR1cGxpY2F0ZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhbGw6IGZ1bmN0aW9uIGFsbCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbmRleC5hbGwoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbGVhcjogZnVuY3Rpb24gY2xlYXIoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmRleC5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsZWFyUHJlZmV0Y2hDYWNoZTogZnVuY3Rpb24gY2xlYXJQcmVmZXRjaENhY2hlKCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJlZmV0Y2ggJiYgdGhpcy5wcmVmZXRjaC5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsZWFyUmVtb3RlQ2FjaGU6IGZ1bmN0aW9uIGNsZWFyUmVtb3RlQ2FjaGUoKSB7XG4gICAgICAgICAgICAgICAgVHJhbnNwb3J0LnJlc2V0Q2FjaGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0dEFkYXB0ZXI6IGZ1bmN0aW9uIHR0QWRhcHRlcigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fX3R0QWRhcHRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIEJsb29kaG91bmQ7XG4gICAgfSgpO1xuICAgIHJldHVybiBCbG9vZGhvdW5kO1xufSk7XG5cbihmdW5jdGlvbihyb290LCBmYWN0b3J5KSB7XG4gICAgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG4gICAgICAgIGRlZmluZShcInR5cGVhaGVhZC5qc1wiLCBbIFwianF1ZXJ5XCIgXSwgZnVuY3Rpb24oYTApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWN0b3J5KGEwKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcImpxdWVyeVwiKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmFjdG9yeShqUXVlcnkpO1xuICAgIH1cbn0pKHRoaXMsIGZ1bmN0aW9uKCQpIHtcbiAgICB2YXIgXyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBcInVzZSBzdHJpY3RcIjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlzTXNpZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIC8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgPyBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC8obXNpZSB8cnY6KShcXGQrKC5cXGQrKT8pL2kpWzJdIDogZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNCbGFua1N0cmluZzogZnVuY3Rpb24oc3RyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFzdHIgfHwgL15cXHMqJC8udGVzdChzdHIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVzY2FwZVJlZ0V4Q2hhcnM6IGZ1bmN0aW9uKHN0cikge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvW1xcLVxcW1xcXVxcL1xce1xcfVxcKFxcKVxcKlxcK1xcP1xcLlxcXFxcXF5cXCRcXHxdL2csIFwiXFxcXCQmXCIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzU3RyaW5nOiBmdW5jdGlvbihvYmopIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc051bWJlcjogZnVuY3Rpb24ob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwibnVtYmVyXCI7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNBcnJheTogJC5pc0FycmF5LFxuICAgICAgICAgICAgaXNGdW5jdGlvbjogJC5pc0Z1bmN0aW9uLFxuICAgICAgICAgICAgaXNPYmplY3Q6ICQuaXNQbGFpbk9iamVjdCxcbiAgICAgICAgICAgIGlzVW5kZWZpbmVkOiBmdW5jdGlvbihvYmopIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc0VsZW1lbnQ6IGZ1bmN0aW9uKG9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIShvYmogJiYgb2JqLm5vZGVUeXBlID09PSAxKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc0pRdWVyeTogZnVuY3Rpb24ob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mICQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdG9TdHI6IGZ1bmN0aW9uIHRvU3RyKHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXy5pc1VuZGVmaW5lZChzKSB8fCBzID09PSBudWxsID8gXCJcIiA6IHMgKyBcIlwiO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJpbmQ6ICQucHJveHksXG4gICAgICAgICAgICBlYWNoOiBmdW5jdGlvbihjb2xsZWN0aW9uLCBjYikge1xuICAgICAgICAgICAgICAgICQuZWFjaChjb2xsZWN0aW9uLCByZXZlcnNlQXJncyk7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gcmV2ZXJzZUFyZ3MoaW5kZXgsIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYih2YWx1ZSwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXA6ICQubWFwLFxuICAgICAgICAgICAgZmlsdGVyOiAkLmdyZXAsXG4gICAgICAgICAgICBldmVyeTogZnVuY3Rpb24ob2JqLCB0ZXN0KSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKCFvYmopIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJC5lYWNoKG9iaiwgZnVuY3Rpb24oa2V5LCB2YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEocmVzdWx0ID0gdGVzdC5jYWxsKG51bGwsIHZhbCwga2V5LCBvYmopKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhcmVzdWx0O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNvbWU6IGZ1bmN0aW9uKG9iaiwgdGVzdCkge1xuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoIW9iaikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkLmVhY2gob2JqLCBmdW5jdGlvbihrZXksIHZhbCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID0gdGVzdC5jYWxsKG51bGwsIHZhbCwga2V5LCBvYmopKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFyZXN1bHQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbWl4aW46ICQuZXh0ZW5kLFxuICAgICAgICAgICAgaWRlbnRpdHk6IGZ1bmN0aW9uKHgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbG9uZTogZnVuY3Rpb24ob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICQuZXh0ZW5kKHRydWUsIHt9LCBvYmopO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldElkR2VuZXJhdG9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgY291bnRlciA9IDA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY291bnRlcisrO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGVtcGxhdGlmeTogZnVuY3Rpb24gdGVtcGxhdGlmeShvYmopIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJC5pc0Z1bmN0aW9uKG9iaikgPyBvYmogOiB0ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiB0ZW1wbGF0ZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhvYmopO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZWZlcjogZnVuY3Rpb24oZm4pIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZuLCAwKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZWJvdW5jZTogZnVuY3Rpb24oZnVuYywgd2FpdCwgaW1tZWRpYXRlKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRpbWVvdXQsIHJlc3VsdDtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb250ZXh0ID0gdGhpcywgYXJncyA9IGFyZ3VtZW50cywgbGF0ZXIsIGNhbGxOb3c7XG4gICAgICAgICAgICAgICAgICAgIGxhdGVyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW1tZWRpYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgY2FsbE5vdyA9IGltbWVkaWF0ZSAmJiAhdGltZW91dDtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChsYXRlciwgd2FpdCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWxsTm93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aHJvdHRsZTogZnVuY3Rpb24oZnVuYywgd2FpdCkge1xuICAgICAgICAgICAgICAgIHZhciBjb250ZXh0LCBhcmdzLCB0aW1lb3V0LCByZXN1bHQsIHByZXZpb3VzLCBsYXRlcjtcbiAgICAgICAgICAgICAgICBwcmV2aW91cyA9IDA7XG4gICAgICAgICAgICAgICAgbGF0ZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXMgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5vdyA9IG5ldyBEYXRlKCksIHJlbWFpbmluZyA9IHdhaXQgLSAobm93IC0gcHJldmlvdXMpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbWFpbmluZyA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzID0gbm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdGltZW91dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQobGF0ZXIsIHJlbWFpbmluZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0cmluZ2lmeTogZnVuY3Rpb24odmFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF8uaXNTdHJpbmcodmFsKSA/IHZhbCA6IEpTT04uc3RyaW5naWZ5KHZhbCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbm9vcDogZnVuY3Rpb24oKSB7fVxuICAgICAgICB9O1xuICAgIH0oKTtcbiAgICB2YXIgV1dXID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIFwidXNlIHN0cmljdFwiO1xuICAgICAgICB2YXIgZGVmYXVsdENsYXNzTmFtZXMgPSB7XG4gICAgICAgICAgICB3cmFwcGVyOiBcInR3aXR0ZXItdHlwZWFoZWFkXCIsXG4gICAgICAgICAgICBpbnB1dDogXCJ0dC1pbnB1dFwiLFxuICAgICAgICAgICAgaGludDogXCJ0dC1oaW50XCIsXG4gICAgICAgICAgICBtZW51OiBcInR0LW1lbnVcIixcbiAgICAgICAgICAgIGRhdGFzZXQ6IFwidHQtZGF0YXNldFwiLFxuICAgICAgICAgICAgc3VnZ2VzdGlvbjogXCJ0dC1zdWdnZXN0aW9uXCIsXG4gICAgICAgICAgICBzZWxlY3RhYmxlOiBcInR0LXNlbGVjdGFibGVcIixcbiAgICAgICAgICAgIGVtcHR5OiBcInR0LWVtcHR5XCIsXG4gICAgICAgICAgICBvcGVuOiBcInR0LW9wZW5cIixcbiAgICAgICAgICAgIGN1cnNvcjogXCJ0dC1jdXJzb3JcIixcbiAgICAgICAgICAgIGhpZ2hsaWdodDogXCJ0dC1oaWdobGlnaHRcIlxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gYnVpbGQ7XG4gICAgICAgIGZ1bmN0aW9uIGJ1aWxkKG8pIHtcbiAgICAgICAgICAgIHZhciB3d3csIGNsYXNzZXM7XG4gICAgICAgICAgICBjbGFzc2VzID0gXy5taXhpbih7fSwgZGVmYXVsdENsYXNzTmFtZXMsIG8pO1xuICAgICAgICAgICAgd3d3ID0ge1xuICAgICAgICAgICAgICAgIGNzczogYnVpbGRDc3MoKSxcbiAgICAgICAgICAgICAgICBjbGFzc2VzOiBjbGFzc2VzLFxuICAgICAgICAgICAgICAgIGh0bWw6IGJ1aWxkSHRtbChjbGFzc2VzKSxcbiAgICAgICAgICAgICAgICBzZWxlY3RvcnM6IGJ1aWxkU2VsZWN0b3JzKGNsYXNzZXMpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjc3M6IHd3dy5jc3MsXG4gICAgICAgICAgICAgICAgaHRtbDogd3d3Lmh0bWwsXG4gICAgICAgICAgICAgICAgY2xhc3Nlczogd3d3LmNsYXNzZXMsXG4gICAgICAgICAgICAgICAgc2VsZWN0b3JzOiB3d3cuc2VsZWN0b3JzLFxuICAgICAgICAgICAgICAgIG1peGluOiBmdW5jdGlvbihvKSB7XG4gICAgICAgICAgICAgICAgICAgIF8ubWl4aW4obywgd3d3KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJ1aWxkSHRtbChjKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHdyYXBwZXI6ICc8c3BhbiBjbGFzcz1cIicgKyBjLndyYXBwZXIgKyAnXCI+PC9zcGFuPicsXG4gICAgICAgICAgICAgICAgbWVudTogJzxkaXYgY2xhc3M9XCInICsgYy5tZW51ICsgJ1wiPjwvZGl2PidcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYnVpbGRTZWxlY3RvcnMoY2xhc3Nlcykge1xuICAgICAgICAgICAgdmFyIHNlbGVjdG9ycyA9IHt9O1xuICAgICAgICAgICAgXy5lYWNoKGNsYXNzZXMsIGZ1bmN0aW9uKHYsIGspIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RvcnNba10gPSBcIi5cIiArIHY7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RvcnM7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYnVpbGRDc3MoKSB7XG4gICAgICAgICAgICB2YXIgY3NzID0ge1xuICAgICAgICAgICAgICAgIHdyYXBwZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaGludDoge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgICAgICB0b3A6IFwiMFwiLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBcIjBcIixcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogXCIxXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246IFwidG9wXCIsXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpbnB1dFdpdGhOb0hpbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWxBbGlnbjogXCJ0b3BcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbWVudToge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgICAgICB0b3A6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBcIjBcIixcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiBcIjEwMFwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcIm5vbmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbHRyOiB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IFwiMFwiLFxuICAgICAgICAgICAgICAgICAgICByaWdodDogXCJhdXRvXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJ0bDoge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IFwiIDBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoXy5pc01zaWUoKSkge1xuICAgICAgICAgICAgICAgIF8ubWl4aW4oY3NzLmlucHV0LCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogXCJ1cmwoZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUJSQUE3KVwiXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY3NzO1xuICAgICAgICB9XG4gICAgfSgpO1xuICAgIHZhciBFdmVudEJ1cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBcInVzZSBzdHJpY3RcIjtcbiAgICAgICAgdmFyIG5hbWVzcGFjZSwgZGVwcmVjYXRpb25NYXA7XG4gICAgICAgIG5hbWVzcGFjZSA9IFwidHlwZWFoZWFkOlwiO1xuICAgICAgICBkZXByZWNhdGlvbk1hcCA9IHtcbiAgICAgICAgICAgIHJlbmRlcjogXCJyZW5kZXJlZFwiLFxuICAgICAgICAgICAgY3Vyc29yY2hhbmdlOiBcImN1cnNvcmNoYW5nZWRcIixcbiAgICAgICAgICAgIHNlbGVjdDogXCJzZWxlY3RlZFwiLFxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlOiBcImF1dG9jb21wbGV0ZWRcIlxuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBFdmVudEJ1cyhvKSB7XG4gICAgICAgICAgICBpZiAoIW8gfHwgIW8uZWwpIHtcbiAgICAgICAgICAgICAgICAkLmVycm9yKFwiRXZlbnRCdXMgaW5pdGlhbGl6ZWQgd2l0aG91dCBlbFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuJGVsID0gJChvLmVsKTtcbiAgICAgICAgfVxuICAgICAgICBfLm1peGluKEV2ZW50QnVzLnByb3RvdHlwZSwge1xuICAgICAgICAgICAgX3RyaWdnZXI6IGZ1bmN0aW9uKHR5cGUsIGFyZ3MpIHtcbiAgICAgICAgICAgICAgICB2YXIgJGU7XG4gICAgICAgICAgICAgICAgJGUgPSAkLkV2ZW50KG5hbWVzcGFjZSArIHR5cGUpO1xuICAgICAgICAgICAgICAgIChhcmdzID0gYXJncyB8fCBbXSkudW5zaGlmdCgkZSk7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWwudHJpZ2dlci5hcHBseSh0aGlzLiRlbCwgYXJncyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICRlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJlZm9yZTogZnVuY3Rpb24odHlwZSkge1xuICAgICAgICAgICAgICAgIHZhciBhcmdzLCAkZTtcbiAgICAgICAgICAgICAgICBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAgICAgICAgICRlID0gdGhpcy5fdHJpZ2dlcihcImJlZm9yZVwiICsgdHlwZSwgYXJncyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICRlLmlzRGVmYXVsdFByZXZlbnRlZCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRyaWdnZXI6IGZ1bmN0aW9uKHR5cGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgZGVwcmVjYXRlZFR5cGU7XG4gICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcih0eXBlLCBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSkpO1xuICAgICAgICAgICAgICAgIGlmIChkZXByZWNhdGVkVHlwZSA9IGRlcHJlY2F0aW9uTWFwW3R5cGVdKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoZGVwcmVjYXRlZFR5cGUsIFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIEV2ZW50QnVzO1xuICAgIH0oKTtcbiAgICB2YXIgRXZlbnRFbWl0dGVyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIFwidXNlIHN0cmljdFwiO1xuICAgICAgICB2YXIgc3BsaXR0ZXIgPSAvXFxzKy8sIG5leHRUaWNrID0gZ2V0TmV4dFRpY2soKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG9uU3luYzogb25TeW5jLFxuICAgICAgICAgICAgb25Bc3luYzogb25Bc3luYyxcbiAgICAgICAgICAgIG9mZjogb2ZmLFxuICAgICAgICAgICAgdHJpZ2dlcjogdHJpZ2dlclxuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBvbihtZXRob2QsIHR5cGVzLCBjYiwgY29udGV4dCkge1xuICAgICAgICAgICAgdmFyIHR5cGU7XG4gICAgICAgICAgICBpZiAoIWNiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0eXBlcyA9IHR5cGVzLnNwbGl0KHNwbGl0dGVyKTtcbiAgICAgICAgICAgIGNiID0gY29udGV4dCA/IGJpbmRDb250ZXh0KGNiLCBjb250ZXh0KSA6IGNiO1xuICAgICAgICAgICAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xuICAgICAgICAgICAgd2hpbGUgKHR5cGUgPSB0eXBlcy5zaGlmdCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsbGJhY2tzW3R5cGVdID0gdGhpcy5fY2FsbGJhY2tzW3R5cGVdIHx8IHtcbiAgICAgICAgICAgICAgICAgICAgc3luYzogW10sXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jOiBbXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsbGJhY2tzW3R5cGVdW21ldGhvZF0ucHVzaChjYik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBvbkFzeW5jKHR5cGVzLCBjYiwgY29udGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIG9uLmNhbGwodGhpcywgXCJhc3luY1wiLCB0eXBlcywgY2IsIGNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG9uU3luYyh0eXBlcywgY2IsIGNvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBvbi5jYWxsKHRoaXMsIFwic3luY1wiLCB0eXBlcywgY2IsIGNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG9mZih0eXBlcykge1xuICAgICAgICAgICAgdmFyIHR5cGU7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2NhbGxiYWNrcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHlwZXMgPSB0eXBlcy5zcGxpdChzcGxpdHRlcik7XG4gICAgICAgICAgICB3aGlsZSAodHlwZSA9IHR5cGVzLnNoaWZ0KCkpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW3R5cGVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdHJpZ2dlcih0eXBlcykge1xuICAgICAgICAgICAgdmFyIHR5cGUsIGNhbGxiYWNrcywgYXJncywgc3luY0ZsdXNoLCBhc3luY0ZsdXNoO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9jYWxsYmFja3MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHR5cGVzID0gdHlwZXMuc3BsaXQoc3BsaXR0ZXIpO1xuICAgICAgICAgICAgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgIHdoaWxlICgodHlwZSA9IHR5cGVzLnNoaWZ0KCkpICYmIChjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbdHlwZV0pKSB7XG4gICAgICAgICAgICAgICAgc3luY0ZsdXNoID0gZ2V0Rmx1c2goY2FsbGJhY2tzLnN5bmMsIHRoaXMsIFsgdHlwZSBdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgICAgICAgICAgYXN5bmNGbHVzaCA9IGdldEZsdXNoKGNhbGxiYWNrcy5hc3luYywgdGhpcywgWyB0eXBlIF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgICAgICAgICBzeW5jRmx1c2goKSAmJiBuZXh0VGljayhhc3luY0ZsdXNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldEZsdXNoKGNhbGxiYWNrcywgY29udGV4dCwgYXJncykge1xuICAgICAgICAgICAgcmV0dXJuIGZsdXNoO1xuICAgICAgICAgICAgZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNhbmNlbGxlZDtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gY2FsbGJhY2tzLmxlbmd0aDsgIWNhbmNlbGxlZCAmJiBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsbGVkID0gY2FsbGJhY2tzW2ldLmFwcGx5KGNvbnRleHQsIGFyZ3MpID09PSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICFjYW5jZWxsZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0TmV4dFRpY2soKSB7XG4gICAgICAgICAgICB2YXIgbmV4dFRpY2tGbjtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuc2V0SW1tZWRpYXRlKSB7XG4gICAgICAgICAgICAgICAgbmV4dFRpY2tGbiA9IGZ1bmN0aW9uIG5leHRUaWNrU2V0SW1tZWRpYXRlKGZuKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldEltbWVkaWF0ZShmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHRUaWNrRm4gPSBmdW5jdGlvbiBuZXh0VGlja1NldFRpbWVvdXQoZm4pIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV4dFRpY2tGbjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiaW5kQ29udGV4dChmbiwgY29udGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIGZuLmJpbmQgPyBmbi5iaW5kKGNvbnRleHQpIDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgZm4uYXBwbHkoY29udGV4dCwgW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9KCk7XG4gICAgdmFyIGhpZ2hsaWdodCA9IGZ1bmN0aW9uKGRvYykge1xuICAgICAgICBcInVzZSBzdHJpY3RcIjtcbiAgICAgICAgdmFyIGRlZmF1bHRzID0ge1xuICAgICAgICAgICAgbm9kZTogbnVsbCxcbiAgICAgICAgICAgIHBhdHRlcm46IG51bGwsXG4gICAgICAgICAgICB0YWdOYW1lOiBcInN0cm9uZ1wiLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiBudWxsLFxuICAgICAgICAgICAgd29yZHNPbmx5OiBmYWxzZSxcbiAgICAgICAgICAgIGNhc2VTZW5zaXRpdmU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBoaWdodGxpZ2h0KG8pIHtcbiAgICAgICAgICAgIHZhciByZWdleDtcbiAgICAgICAgICAgIG8gPSBfLm1peGluKHt9LCBkZWZhdWx0cywgbyk7XG4gICAgICAgICAgICBpZiAoIW8ubm9kZSB8fCAhby5wYXR0ZXJuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgby5wYXR0ZXJuID0gXy5pc0FycmF5KG8ucGF0dGVybikgPyBvLnBhdHRlcm4gOiBbIG8ucGF0dGVybiBdO1xuICAgICAgICAgICAgcmVnZXggPSBnZXRSZWdleChvLnBhdHRlcm4sIG8uY2FzZVNlbnNpdGl2ZSwgby53b3Jkc09ubHkpO1xuICAgICAgICAgICAgdHJhdmVyc2Uoby5ub2RlLCBoaWdodGxpZ2h0VGV4dE5vZGUpO1xuICAgICAgICAgICAgZnVuY3Rpb24gaGlnaHRsaWdodFRleHROb2RlKHRleHROb2RlKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1hdGNoLCBwYXR0ZXJuTm9kZSwgd3JhcHBlck5vZGU7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoID0gcmVnZXguZXhlYyh0ZXh0Tm9kZS5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICB3cmFwcGVyTm9kZSA9IGRvYy5jcmVhdGVFbGVtZW50KG8udGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIG8uY2xhc3NOYW1lICYmICh3cmFwcGVyTm9kZS5jbGFzc05hbWUgPSBvLmNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHBhdHRlcm5Ob2RlID0gdGV4dE5vZGUuc3BsaXRUZXh0KG1hdGNoLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgcGF0dGVybk5vZGUuc3BsaXRUZXh0KG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIHdyYXBwZXJOb2RlLmFwcGVuZENoaWxkKHBhdHRlcm5Ob2RlLmNsb25lTm9kZSh0cnVlKSk7XG4gICAgICAgICAgICAgICAgICAgIHRleHROb2RlLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHdyYXBwZXJOb2RlLCBwYXR0ZXJuTm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAhIW1hdGNoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gdHJhdmVyc2UoZWwsIGhpZ2h0bGlnaHRUZXh0Tm9kZSkge1xuICAgICAgICAgICAgICAgIHZhciBjaGlsZE5vZGUsIFRFWFRfTk9ERV9UWVBFID0gMztcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsLmNoaWxkTm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGROb2RlID0gZWwuY2hpbGROb2Rlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkTm9kZS5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFX1RZUEUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gaGlnaHRsaWdodFRleHROb2RlKGNoaWxkTm9kZSkgPyAxIDogMDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlcnNlKGNoaWxkTm9kZSwgaGlnaHRsaWdodFRleHROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgZnVuY3Rpb24gZ2V0UmVnZXgocGF0dGVybnMsIGNhc2VTZW5zaXRpdmUsIHdvcmRzT25seSkge1xuICAgICAgICAgICAgdmFyIGVzY2FwZWRQYXR0ZXJucyA9IFtdLCByZWdleFN0cjtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBwYXR0ZXJucy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgICAgIGVzY2FwZWRQYXR0ZXJucy5wdXNoKF8uZXNjYXBlUmVnRXhDaGFycyhwYXR0ZXJuc1tpXSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVnZXhTdHIgPSB3b3Jkc09ubHkgPyBcIlxcXFxiKFwiICsgZXNjYXBlZFBhdHRlcm5zLmpvaW4oXCJ8XCIpICsgXCIpXFxcXGJcIiA6IFwiKFwiICsgZXNjYXBlZFBhdHRlcm5zLmpvaW4oXCJ8XCIpICsgXCIpXCI7XG4gICAgICAgICAgICByZXR1cm4gY2FzZVNlbnNpdGl2ZSA/IG5ldyBSZWdFeHAocmVnZXhTdHIpIDogbmV3IFJlZ0V4cChyZWdleFN0ciwgXCJpXCIpO1xuICAgICAgICB9XG4gICAgfSh3aW5kb3cuZG9jdW1lbnQpO1xuICAgIHZhciBJbnB1dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBcInVzZSBzdHJpY3RcIjtcbiAgICAgICAgdmFyIHNwZWNpYWxLZXlDb2RlTWFwO1xuICAgICAgICBzcGVjaWFsS2V5Q29kZU1hcCA9IHtcbiAgICAgICAgICAgIDk6IFwidGFiXCIsXG4gICAgICAgICAgICAyNzogXCJlc2NcIixcbiAgICAgICAgICAgIDM3OiBcImxlZnRcIixcbiAgICAgICAgICAgIDM5OiBcInJpZ2h0XCIsXG4gICAgICAgICAgICAxMzogXCJlbnRlclwiLFxuICAgICAgICAgICAgMzg6IFwidXBcIixcbiAgICAgICAgICAgIDQwOiBcImRvd25cIlxuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBJbnB1dChvLCB3d3cpIHtcbiAgICAgICAgICAgIG8gPSBvIHx8IHt9O1xuICAgICAgICAgICAgaWYgKCFvLmlucHV0KSB7XG4gICAgICAgICAgICAgICAgJC5lcnJvcihcImlucHV0IGlzIG1pc3NpbmdcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3d3cubWl4aW4odGhpcyk7XG4gICAgICAgICAgICB0aGlzLiRoaW50ID0gJChvLmhpbnQpO1xuICAgICAgICAgICAgdGhpcy4kaW5wdXQgPSAkKG8uaW5wdXQpO1xuICAgICAgICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuJGlucHV0LnZhbCgpO1xuICAgICAgICAgICAgdGhpcy5xdWVyeVdoZW5Gb2N1c2VkID0gdGhpcy5oYXNGb2N1cygpID8gdGhpcy5xdWVyeSA6IG51bGw7XG4gICAgICAgICAgICB0aGlzLiRvdmVyZmxvd0hlbHBlciA9IGJ1aWxkT3ZlcmZsb3dIZWxwZXIodGhpcy4kaW5wdXQpO1xuICAgICAgICAgICAgdGhpcy5fY2hlY2tMYW5ndWFnZURpcmVjdGlvbigpO1xuICAgICAgICAgICAgaWYgKHRoaXMuJGhpbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRIaW50ID0gdGhpcy5nZXRIaW50ID0gdGhpcy5jbGVhckhpbnQgPSB0aGlzLmNsZWFySGludElmSW52YWxpZCA9IF8ubm9vcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBJbnB1dC5ub3JtYWxpemVRdWVyeSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgICAgICAgcmV0dXJuIF8udG9TdHIoc3RyKS5yZXBsYWNlKC9eXFxzKi9nLCBcIlwiKS5yZXBsYWNlKC9cXHN7Mix9L2csIFwiIFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgXy5taXhpbihJbnB1dC5wcm90b3R5cGUsIEV2ZW50RW1pdHRlciwge1xuICAgICAgICAgICAgX29uQmx1cjogZnVuY3Rpb24gb25CbHVyKCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRJbnB1dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKFwiYmx1cnJlZFwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfb25Gb2N1czogZnVuY3Rpb24gb25Gb2N1cygpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5V2hlbkZvY3VzZWQgPSB0aGlzLnF1ZXJ5O1xuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcihcImZvY3VzZWRcIik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX29uS2V5ZG93bjogZnVuY3Rpb24gb25LZXlkb3duKCRlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGtleU5hbWUgPSBzcGVjaWFsS2V5Q29kZU1hcFskZS53aGljaCB8fCAkZS5rZXlDb2RlXTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tYW5hZ2VQcmV2ZW50RGVmYXVsdChrZXlOYW1lLCAkZSk7XG4gICAgICAgICAgICAgICAgaWYgKGtleU5hbWUgJiYgdGhpcy5fc2hvdWxkVHJpZ2dlcihrZXlOYW1lLCAkZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKGtleU5hbWUgKyBcIktleWVkXCIsICRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX29uSW5wdXQ6IGZ1bmN0aW9uIG9uSW5wdXQoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0UXVlcnkodGhpcy5nZXRJbnB1dFZhbHVlKCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJIaW50SWZJbnZhbGlkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tMYW5ndWFnZURpcmVjdGlvbigpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9tYW5hZ2VQcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24gbWFuYWdlUHJldmVudERlZmF1bHQoa2V5TmFtZSwgJGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgcHJldmVudERlZmF1bHQ7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChrZXlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwidXBcIjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJkb3duXCI6XG4gICAgICAgICAgICAgICAgICAgIHByZXZlbnREZWZhdWx0ID0gIXdpdGhNb2RpZmllcigkZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBwcmV2ZW50RGVmYXVsdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwcmV2ZW50RGVmYXVsdCAmJiAkZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9zaG91bGRUcmlnZ2VyOiBmdW5jdGlvbiBzaG91bGRUcmlnZ2VyKGtleU5hbWUsICRlKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRyaWdnZXI7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChrZXlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwidGFiXCI6XG4gICAgICAgICAgICAgICAgICAgIHRyaWdnZXIgPSAhd2l0aE1vZGlmaWVyKCRlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRyaWdnZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY2hlY2tMYW5ndWFnZURpcmVjdGlvbjogZnVuY3Rpb24gY2hlY2tMYW5ndWFnZURpcmVjdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgZGlyID0gKHRoaXMuJGlucHV0LmNzcyhcImRpcmVjdGlvblwiKSB8fCBcImx0clwiKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpciAhPT0gZGlyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlyID0gZGlyO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRoaW50LmF0dHIoXCJkaXJcIiwgZGlyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKFwibGFuZ0RpckNoYW5nZWRcIiwgZGlyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3NldFF1ZXJ5OiBmdW5jdGlvbiBzZXRRdWVyeSh2YWwsIHNpbGVudCkge1xuICAgICAgICAgICAgICAgIHZhciBhcmVFcXVpdmFsZW50LCBoYXNEaWZmZXJlbnRXaGl0ZXNwYWNlO1xuICAgICAgICAgICAgICAgIGFyZUVxdWl2YWxlbnQgPSBhcmVRdWVyaWVzRXF1aXZhbGVudCh2YWwsIHRoaXMucXVlcnkpO1xuICAgICAgICAgICAgICAgIGhhc0RpZmZlcmVudFdoaXRlc3BhY2UgPSBhcmVFcXVpdmFsZW50ID8gdGhpcy5xdWVyeS5sZW5ndGggIT09IHZhbC5sZW5ndGggOiBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gdmFsO1xuICAgICAgICAgICAgICAgIGlmICghc2lsZW50ICYmICFhcmVFcXVpdmFsZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcihcInF1ZXJ5Q2hhbmdlZFwiLCB0aGlzLnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzaWxlbnQgJiYgaGFzRGlmZmVyZW50V2hpdGVzcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoXCJ3aGl0ZXNwYWNlQ2hhbmdlZFwiLCB0aGlzLnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmluZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLCBvbkJsdXIsIG9uRm9jdXMsIG9uS2V5ZG93biwgb25JbnB1dDtcbiAgICAgICAgICAgICAgICBvbkJsdXIgPSBfLmJpbmQodGhpcy5fb25CbHVyLCB0aGlzKTtcbiAgICAgICAgICAgICAgICBvbkZvY3VzID0gXy5iaW5kKHRoaXMuX29uRm9jdXMsIHRoaXMpO1xuICAgICAgICAgICAgICAgIG9uS2V5ZG93biA9IF8uYmluZCh0aGlzLl9vbktleWRvd24sIHRoaXMpO1xuICAgICAgICAgICAgICAgIG9uSW5wdXQgPSBfLmJpbmQodGhpcy5fb25JbnB1dCwgdGhpcyk7XG4gICAgICAgICAgICAgICAgdGhpcy4kaW5wdXQub24oXCJibHVyLnR0XCIsIG9uQmx1cikub24oXCJmb2N1cy50dFwiLCBvbkZvY3VzKS5vbihcImtleWRvd24udHRcIiwgb25LZXlkb3duKTtcbiAgICAgICAgICAgICAgICBpZiAoIV8uaXNNc2llKCkgfHwgXy5pc01zaWUoKSA+IDkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kaW5wdXQub24oXCJpbnB1dC50dFwiLCBvbklucHV0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRpbnB1dC5vbihcImtleWRvd24udHQga2V5cHJlc3MudHQgY3V0LnR0IHBhc3RlLnR0XCIsIGZ1bmN0aW9uKCRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3BlY2lhbEtleUNvZGVNYXBbJGUud2hpY2ggfHwgJGUua2V5Q29kZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBfLmRlZmVyKF8uYmluZCh0aGF0Ll9vbklucHV0LCB0aGF0LCAkZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZm9jdXM6IGZ1bmN0aW9uIGZvY3VzKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuJGlucHV0LmZvY3VzKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmx1cjogZnVuY3Rpb24gYmx1cigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRpbnB1dC5ibHVyKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TGFuZ0RpcjogZnVuY3Rpb24gZ2V0TGFuZ0RpcigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXI7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0UXVlcnk6IGZ1bmN0aW9uIGdldFF1ZXJ5KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5IHx8IFwiXCI7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0UXVlcnk6IGZ1bmN0aW9uIHNldFF1ZXJ5KHZhbCwgc2lsZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlKHZhbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0UXVlcnkodmFsLCBzaWxlbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhhc1F1ZXJ5Q2hhbmdlZFNpbmNlTGFzdEZvY3VzOiBmdW5jdGlvbiBoYXNRdWVyeUNoYW5nZWRTaW5jZUxhc3RGb2N1cygpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5xdWVyeSAhPT0gdGhpcy5xdWVyeVdoZW5Gb2N1c2VkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldElucHV0VmFsdWU6IGZ1bmN0aW9uIGdldElucHV0VmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuJGlucHV0LnZhbCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldElucHV0VmFsdWU6IGZ1bmN0aW9uIHNldElucHV0VmFsdWUodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRpbnB1dC52YWwodmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJIaW50SWZJbnZhbGlkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tMYW5ndWFnZURpcmVjdGlvbigpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0SW5wdXRWYWx1ZTogZnVuY3Rpb24gcmVzZXRJbnB1dFZhbHVlKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh0aGlzLnF1ZXJ5KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRIaW50OiBmdW5jdGlvbiBnZXRIaW50KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiRoaW50LnZhbCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldEhpbnQ6IGZ1bmN0aW9uIHNldEhpbnQodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRoaW50LnZhbCh2YWx1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xlYXJIaW50OiBmdW5jdGlvbiBjbGVhckhpbnQoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRIaW50KFwiXCIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsZWFySGludElmSW52YWxpZDogZnVuY3Rpb24gY2xlYXJIaW50SWZJbnZhbGlkKCkge1xuICAgICAgICAgICAgICAgIHZhciB2YWwsIGhpbnQsIHZhbElzUHJlZml4T2ZIaW50LCBpc1ZhbGlkO1xuICAgICAgICAgICAgICAgIHZhbCA9IHRoaXMuZ2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIGhpbnQgPSB0aGlzLmdldEhpbnQoKTtcbiAgICAgICAgICAgICAgICB2YWxJc1ByZWZpeE9mSGludCA9IHZhbCAhPT0gaGludCAmJiBoaW50LmluZGV4T2YodmFsKSA9PT0gMDtcbiAgICAgICAgICAgICAgICBpc1ZhbGlkID0gdmFsICE9PSBcIlwiICYmIHZhbElzUHJlZml4T2ZIaW50ICYmICF0aGlzLmhhc092ZXJmbG93KCk7XG4gICAgICAgICAgICAgICAgIWlzVmFsaWQgJiYgdGhpcy5jbGVhckhpbnQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYXNGb2N1czogZnVuY3Rpb24gaGFzRm9jdXMoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuJGlucHV0LmlzKFwiOmZvY3VzXCIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhhc092ZXJmbG93OiBmdW5jdGlvbiBoYXNPdmVyZmxvdygpIHtcbiAgICAgICAgICAgICAgICB2YXIgY29uc3RyYWludCA9IHRoaXMuJGlucHV0LndpZHRoKCkgLSAyO1xuICAgICAgICAgICAgICAgIHRoaXMuJG92ZXJmbG93SGVscGVyLnRleHQodGhpcy5nZXRJbnB1dFZhbHVlKCkpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiRvdmVyZmxvd0hlbHBlci53aWR0aCgpID49IGNvbnN0cmFpbnQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNDdXJzb3JBdEVuZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlTGVuZ3RoLCBzZWxlY3Rpb25TdGFydCwgcmFuZ2U7XG4gICAgICAgICAgICAgICAgdmFsdWVMZW5ndGggPSB0aGlzLiRpbnB1dC52YWwoKS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPSB0aGlzLiRpbnB1dFswXS5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgICAgICBpZiAoXy5pc051bWJlcihzZWxlY3Rpb25TdGFydCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGlvblN0YXJ0ID09PSB2YWx1ZUxlbmd0aDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICByYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO1xuICAgICAgICAgICAgICAgICAgICByYW5nZS5tb3ZlU3RhcnQoXCJjaGFyYWN0ZXJcIiwgLXZhbHVlTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlTGVuZ3RoID09PSByYW5nZS50ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVzdHJveTogZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRoaW50Lm9mZihcIi50dFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLiRpbnB1dC5vZmYoXCIudHRcIik7XG4gICAgICAgICAgICAgICAgdGhpcy4kb3ZlcmZsb3dIZWxwZXIucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy4kaGludCA9IHRoaXMuJGlucHV0ID0gdGhpcy4kb3ZlcmZsb3dIZWxwZXIgPSAkKFwiPGRpdj5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gSW5wdXQ7XG4gICAgICAgIGZ1bmN0aW9uIGJ1aWxkT3ZlcmZsb3dIZWxwZXIoJGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJCgnPHByZSBhcmlhLWhpZGRlbj1cInRydWVcIj48L3ByZT4nKS5jc3Moe1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiBcInByZVwiLFxuICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk6ICRpbnB1dC5jc3MoXCJmb250LWZhbWlseVwiKSxcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogJGlucHV0LmNzcyhcImZvbnQtc2l6ZVwiKSxcbiAgICAgICAgICAgICAgICBmb250U3R5bGU6ICRpbnB1dC5jc3MoXCJmb250LXN0eWxlXCIpLFxuICAgICAgICAgICAgICAgIGZvbnRWYXJpYW50OiAkaW5wdXQuY3NzKFwiZm9udC12YXJpYW50XCIpLFxuICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6ICRpbnB1dC5jc3MoXCJmb250LXdlaWdodFwiKSxcbiAgICAgICAgICAgICAgICB3b3JkU3BhY2luZzogJGlucHV0LmNzcyhcIndvcmQtc3BhY2luZ1wiKSxcbiAgICAgICAgICAgICAgICBsZXR0ZXJTcGFjaW5nOiAkaW5wdXQuY3NzKFwibGV0dGVyLXNwYWNpbmdcIiksXG4gICAgICAgICAgICAgICAgdGV4dEluZGVudDogJGlucHV0LmNzcyhcInRleHQtaW5kZW50XCIpLFxuICAgICAgICAgICAgICAgIHRleHRSZW5kZXJpbmc6ICRpbnB1dC5jc3MoXCJ0ZXh0LXJlbmRlcmluZ1wiKSxcbiAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtOiAkaW5wdXQuY3NzKFwidGV4dC10cmFuc2Zvcm1cIilcbiAgICAgICAgICAgIH0pLmluc2VydEFmdGVyKCRpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYXJlUXVlcmllc0VxdWl2YWxlbnQoYSwgYikge1xuICAgICAgICAgICAgcmV0dXJuIElucHV0Lm5vcm1hbGl6ZVF1ZXJ5KGEpID09PSBJbnB1dC5ub3JtYWxpemVRdWVyeShiKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB3aXRoTW9kaWZpZXIoJGUpIHtcbiAgICAgICAgICAgIHJldHVybiAkZS5hbHRLZXkgfHwgJGUuY3RybEtleSB8fCAkZS5tZXRhS2V5IHx8ICRlLnNoaWZ0S2V5O1xuICAgICAgICB9XG4gICAgfSgpO1xuICAgIHZhciBEYXRhc2V0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIFwidXNlIHN0cmljdFwiO1xuICAgICAgICB2YXIga2V5cywgbmFtZUdlbmVyYXRvcjtcbiAgICAgICAga2V5cyA9IHtcbiAgICAgICAgICAgIHZhbDogXCJ0dC1zZWxlY3RhYmxlLWRpc3BsYXlcIixcbiAgICAgICAgICAgIG9iajogXCJ0dC1zZWxlY3RhYmxlLW9iamVjdFwiXG4gICAgICAgIH07XG4gICAgICAgIG5hbWVHZW5lcmF0b3IgPSBfLmdldElkR2VuZXJhdG9yKCk7XG4gICAgICAgIGZ1bmN0aW9uIERhdGFzZXQobywgd3d3KSB7XG4gICAgICAgICAgICBvID0gbyB8fCB7fTtcbiAgICAgICAgICAgIG8udGVtcGxhdGVzID0gby50ZW1wbGF0ZXMgfHwge307XG4gICAgICAgICAgICBvLnRlbXBsYXRlcy5ub3RGb3VuZCA9IG8udGVtcGxhdGVzLm5vdEZvdW5kIHx8IG8udGVtcGxhdGVzLmVtcHR5O1xuICAgICAgICAgICAgaWYgKCFvLnNvdXJjZSkge1xuICAgICAgICAgICAgICAgICQuZXJyb3IoXCJtaXNzaW5nIHNvdXJjZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghby5ub2RlKSB7XG4gICAgICAgICAgICAgICAgJC5lcnJvcihcIm1pc3Npbmcgbm9kZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvLm5hbWUgJiYgIWlzVmFsaWROYW1lKG8ubmFtZSkpIHtcbiAgICAgICAgICAgICAgICAkLmVycm9yKFwiaW52YWxpZCBkYXRhc2V0IG5hbWU6IFwiICsgby5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHd3dy5taXhpbih0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0ID0gISFvLmhpZ2hsaWdodDtcbiAgICAgICAgICAgIHRoaXMubmFtZSA9IG8ubmFtZSB8fCBuYW1lR2VuZXJhdG9yKCk7XG4gICAgICAgICAgICB0aGlzLmxpbWl0ID0gby5saW1pdCB8fCA1O1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5Rm4gPSBnZXREaXNwbGF5Rm4oby5kaXNwbGF5IHx8IG8uZGlzcGxheUtleSk7XG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlcyA9IGdldFRlbXBsYXRlcyhvLnRlbXBsYXRlcywgdGhpcy5kaXNwbGF5Rm4pO1xuICAgICAgICAgICAgdGhpcy5zb3VyY2UgPSBvLnNvdXJjZS5fX3R0QWRhcHRlciA/IG8uc291cmNlLl9fdHRBZGFwdGVyKCkgOiBvLnNvdXJjZTtcbiAgICAgICAgICAgIHRoaXMuYXN5bmMgPSBfLmlzVW5kZWZpbmVkKG8uYXN5bmMpID8gdGhpcy5zb3VyY2UubGVuZ3RoID4gMiA6ICEhby5hc3luYztcbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0TGFzdFN1Z2dlc3Rpb24oKTtcbiAgICAgICAgICAgIHRoaXMuJGVsID0gJChvLm5vZGUpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5kYXRhc2V0KS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZGF0YXNldCArIFwiLVwiICsgdGhpcy5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBEYXRhc2V0LmV4dHJhY3REYXRhID0gZnVuY3Rpb24gZXh0cmFjdERhdGEoZWwpIHtcbiAgICAgICAgICAgIHZhciAkZWwgPSAkKGVsKTtcbiAgICAgICAgICAgIGlmICgkZWwuZGF0YShrZXlzLm9iaikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB2YWw6ICRlbC5kYXRhKGtleXMudmFsKSB8fCBcIlwiLFxuICAgICAgICAgICAgICAgICAgICBvYmo6ICRlbC5kYXRhKGtleXMub2JqKSB8fCBudWxsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9O1xuICAgICAgICBfLm1peGluKERhdGFzZXQucHJvdG90eXBlLCBFdmVudEVtaXR0ZXIsIHtcbiAgICAgICAgICAgIF9vdmVyd3JpdGU6IGZ1bmN0aW9uIG92ZXJ3cml0ZShxdWVyeSwgc3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBzdWdnZXN0aW9ucyA9IHN1Z2dlc3Rpb25zIHx8IFtdO1xuICAgICAgICAgICAgICAgIGlmIChzdWdnZXN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyU3VnZ2VzdGlvbnMocXVlcnksIHN1Z2dlc3Rpb25zKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXN5bmMgJiYgdGhpcy50ZW1wbGF0ZXMucGVuZGluZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJQZW5kaW5nKHF1ZXJ5KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmFzeW5jICYmIHRoaXMudGVtcGxhdGVzLm5vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlck5vdEZvdW5kKHF1ZXJ5KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbXB0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoXCJyZW5kZXJlZFwiLCB0aGlzLm5hbWUsIHN1Z2dlc3Rpb25zLCBmYWxzZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2FwcGVuZDogZnVuY3Rpb24gYXBwZW5kKHF1ZXJ5LCBzdWdnZXN0aW9ucykge1xuICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb25zID0gc3VnZ2VzdGlvbnMgfHwgW107XG4gICAgICAgICAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLmxlbmd0aCAmJiB0aGlzLiRsYXN0U3VnZ2VzdGlvbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwZW5kU3VnZ2VzdGlvbnMocXVlcnksIHN1Z2dlc3Rpb25zKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN1Z2dlc3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJTdWdnZXN0aW9ucyhxdWVyeSwgc3VnZ2VzdGlvbnMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuJGxhc3RTdWdnZXN0aW9uLmxlbmd0aCAmJiB0aGlzLnRlbXBsYXRlcy5ub3RGb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJOb3RGb3VuZChxdWVyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcihcInJlbmRlcmVkXCIsIHRoaXMubmFtZSwgc3VnZ2VzdGlvbnMsIHRydWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9yZW5kZXJTdWdnZXN0aW9uczogZnVuY3Rpb24gcmVuZGVyU3VnZ2VzdGlvbnMocXVlcnksIHN1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgdmFyICRmcmFnbWVudDtcbiAgICAgICAgICAgICAgICAkZnJhZ21lbnQgPSB0aGlzLl9nZXRTdWdnZXN0aW9uc0ZyYWdtZW50KHF1ZXJ5LCBzdWdnZXN0aW9ucyk7XG4gICAgICAgICAgICAgICAgdGhpcy4kbGFzdFN1Z2dlc3Rpb24gPSAkZnJhZ21lbnQuY2hpbGRyZW4oKS5sYXN0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWwuaHRtbCgkZnJhZ21lbnQpLnByZXBlbmQodGhpcy5fZ2V0SGVhZGVyKHF1ZXJ5LCBzdWdnZXN0aW9ucykpLmFwcGVuZCh0aGlzLl9nZXRGb290ZXIocXVlcnksIHN1Z2dlc3Rpb25zKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2FwcGVuZFN1Z2dlc3Rpb25zOiBmdW5jdGlvbiBhcHBlbmRTdWdnZXN0aW9ucyhxdWVyeSwgc3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgICAgICAgICB2YXIgJGZyYWdtZW50LCAkbGFzdFN1Z2dlc3Rpb247XG4gICAgICAgICAgICAgICAgJGZyYWdtZW50ID0gdGhpcy5fZ2V0U3VnZ2VzdGlvbnNGcmFnbWVudChxdWVyeSwgc3VnZ2VzdGlvbnMpO1xuICAgICAgICAgICAgICAgICRsYXN0U3VnZ2VzdGlvbiA9ICRmcmFnbWVudC5jaGlsZHJlbigpLmxhc3QoKTtcbiAgICAgICAgICAgICAgICB0aGlzLiRsYXN0U3VnZ2VzdGlvbi5hZnRlcigkZnJhZ21lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuJGxhc3RTdWdnZXN0aW9uID0gJGxhc3RTdWdnZXN0aW9uO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9yZW5kZXJQZW5kaW5nOiBmdW5jdGlvbiByZW5kZXJQZW5kaW5nKHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgdmFyIHRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMucGVuZGluZztcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNldExhc3RTdWdnZXN0aW9uKCk7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGUgJiYgdGhpcy4kZWwuaHRtbCh0ZW1wbGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldDogdGhpcy5uYW1lXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9yZW5kZXJOb3RGb3VuZDogZnVuY3Rpb24gcmVuZGVyTm90Rm91bmQocXVlcnkpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlcy5ub3RGb3VuZDtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNldExhc3RTdWdnZXN0aW9uKCk7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGUgJiYgdGhpcy4kZWwuaHRtbCh0ZW1wbGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldDogdGhpcy5uYW1lXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9lbXB0eTogZnVuY3Rpb24gZW1wdHkoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWwuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNldExhc3RTdWdnZXN0aW9uKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2dldFN1Z2dlc3Rpb25zRnJhZ21lbnQ6IGZ1bmN0aW9uIGdldFN1Z2dlc3Rpb25zRnJhZ21lbnQocXVlcnksIHN1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLCBmcmFnbWVudDtcbiAgICAgICAgICAgICAgICBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgICAgICAgICBfLmVhY2goc3VnZ2VzdGlvbnMsIGZ1bmN0aW9uIGdldFN1Z2dlc3Rpb25Ob2RlKHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyICRlbCwgY29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IHRoYXQuX2luamVjdFF1ZXJ5KHF1ZXJ5LCBzdWdnZXN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgJGVsID0gJCh0aGF0LnRlbXBsYXRlcy5zdWdnZXN0aW9uKGNvbnRleHQpKS5kYXRhKGtleXMub2JqLCBzdWdnZXN0aW9uKS5kYXRhKGtleXMudmFsLCB0aGF0LmRpc3BsYXlGbihzdWdnZXN0aW9uKSkuYWRkQ2xhc3ModGhhdC5jbGFzc2VzLnN1Z2dlc3Rpb24gKyBcIiBcIiArIHRoYXQuY2xhc3Nlcy5zZWxlY3RhYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoJGVsWzBdKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZ2hsaWdodCAmJiBoaWdobGlnaHQoe1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRoaXMuY2xhc3Nlcy5oaWdobGlnaHQsXG4gICAgICAgICAgICAgICAgICAgIG5vZGU6IGZyYWdtZW50LFxuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiBxdWVyeVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiAkKGZyYWdtZW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfZ2V0Rm9vdGVyOiBmdW5jdGlvbiBnZXRGb290ZXIocXVlcnksIHN1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzLmZvb3RlciA/IHRoaXMudGVtcGxhdGVzLmZvb3Rlcih7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnM6IHN1Z2dlc3Rpb25zLFxuICAgICAgICAgICAgICAgICAgICBkYXRhc2V0OiB0aGlzLm5hbWVcbiAgICAgICAgICAgICAgICB9KSA6IG51bGw7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2dldEhlYWRlcjogZnVuY3Rpb24gZ2V0SGVhZGVyKHF1ZXJ5LCBzdWdnZXN0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRlbXBsYXRlcy5oZWFkZXIgPyB0aGlzLnRlbXBsYXRlcy5oZWFkZXIoe1xuICAgICAgICAgICAgICAgICAgICBxdWVyeTogcXVlcnksXG4gICAgICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb25zOiBzdWdnZXN0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldDogdGhpcy5uYW1lXG4gICAgICAgICAgICAgICAgfSkgOiBudWxsO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9yZXNldExhc3RTdWdnZXN0aW9uOiBmdW5jdGlvbiByZXNldExhc3RTdWdnZXN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuJGxhc3RTdWdnZXN0aW9uID0gJCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbmplY3RRdWVyeTogZnVuY3Rpb24gaW5qZWN0UXVlcnkocXVlcnksIG9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiBfLmlzT2JqZWN0KG9iaikgPyBfLm1peGluKHtcbiAgICAgICAgICAgICAgICAgICAgX3F1ZXJ5OiBxdWVyeVxuICAgICAgICAgICAgICAgIH0sIG9iaikgOiBvYmo7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUocXVlcnkpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsIGNhbmNlbGVkID0gZmFsc2UsIHN5bmNDYWxsZWQgPSBmYWxzZSwgcmVuZGVyZWQgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5jZWwgPSBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jYW5jZWwgPSAkLm5vb3A7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuYXN5bmMgJiYgdGhhdC50cmlnZ2VyKFwiYXN5bmNDYW5jZWxlZFwiLCBxdWVyeSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZShxdWVyeSwgc3luYywgYXN5bmMpO1xuICAgICAgICAgICAgICAgICFzeW5jQ2FsbGVkICYmIHN5bmMoW10pO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHN5bmMoc3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN5bmNDYWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzeW5jQ2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnMgPSAoc3VnZ2VzdGlvbnMgfHwgW10pLnNsaWNlKDAsIHRoYXQubGltaXQpO1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJlZCA9IHN1Z2dlc3Rpb25zLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5fb3ZlcndyaXRlKHF1ZXJ5LCBzdWdnZXN0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZW5kZXJlZCA8IHRoYXQubGltaXQgJiYgdGhhdC5hc3luYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC50cmlnZ2VyKFwiYXN5bmNSZXF1ZXN0ZWRcIiwgcXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFzeW5jKHN1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb25zID0gc3VnZ2VzdGlvbnMgfHwgW107XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2FuY2VsZWQgJiYgcmVuZGVyZWQgPCB0aGF0LmxpbWl0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmNhbmNlbCA9ICQubm9vcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVkICs9IHN1Z2dlc3Rpb25zLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2FwcGVuZChxdWVyeSwgc3VnZ2VzdGlvbnMuc2xpY2UoMCwgdGhhdC5saW1pdCAtIHJlbmRlcmVkKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmFzeW5jICYmIHRoYXQudHJpZ2dlcihcImFzeW5jUmVjZWl2ZWRcIiwgcXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhbmNlbDogJC5ub29wLFxuICAgICAgICAgICAgY2xlYXI6IGZ1bmN0aW9uIGNsZWFyKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoXCJjbGVhcmVkXCIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzRW1wdHk6IGZ1bmN0aW9uIGlzRW1wdHkoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuJGVsLmlzKFwiOmVtcHR5XCIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWwgPSAkKFwiPGRpdj5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gRGF0YXNldDtcbiAgICAgICAgZnVuY3Rpb24gZ2V0RGlzcGxheUZuKGRpc3BsYXkpIHtcbiAgICAgICAgICAgIGRpc3BsYXkgPSBkaXNwbGF5IHx8IF8uc3RyaW5naWZ5O1xuICAgICAgICAgICAgcmV0dXJuIF8uaXNGdW5jdGlvbihkaXNwbGF5KSA/IGRpc3BsYXkgOiBkaXNwbGF5Rm47XG4gICAgICAgICAgICBmdW5jdGlvbiBkaXNwbGF5Rm4ob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9ialtkaXNwbGF5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRUZW1wbGF0ZXModGVtcGxhdGVzLCBkaXNwbGF5Rm4pIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbm90Rm91bmQ6IHRlbXBsYXRlcy5ub3RGb3VuZCAmJiBfLnRlbXBsYXRpZnkodGVtcGxhdGVzLm5vdEZvdW5kKSxcbiAgICAgICAgICAgICAgICBwZW5kaW5nOiB0ZW1wbGF0ZXMucGVuZGluZyAmJiBfLnRlbXBsYXRpZnkodGVtcGxhdGVzLnBlbmRpbmcpLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGVtcGxhdGVzLmhlYWRlciAmJiBfLnRlbXBsYXRpZnkodGVtcGxhdGVzLmhlYWRlciksXG4gICAgICAgICAgICAgICAgZm9vdGVyOiB0ZW1wbGF0ZXMuZm9vdGVyICYmIF8udGVtcGxhdGlmeSh0ZW1wbGF0ZXMuZm9vdGVyKSxcbiAgICAgICAgICAgICAgICBzdWdnZXN0aW9uOiB0ZW1wbGF0ZXMuc3VnZ2VzdGlvbiB8fCBzdWdnZXN0aW9uVGVtcGxhdGVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmdW5jdGlvbiBzdWdnZXN0aW9uVGVtcGxhdGUoY29udGV4dCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAkKFwiPGRpdj5cIikudGV4dChkaXNwbGF5Rm4oY29udGV4dCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzVmFsaWROYW1lKHN0cikge1xuICAgICAgICAgICAgcmV0dXJuIC9eW19hLXpBLVowLTktXSskLy50ZXN0KHN0cik7XG4gICAgICAgIH1cbiAgICB9KCk7XG4gICAgdmFyIE1lbnUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgICAgIGZ1bmN0aW9uIE1lbnUobywgd3d3KSB7XG4gICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICBvID0gbyB8fCB7fTtcbiAgICAgICAgICAgIGlmICghby5ub2RlKSB7XG4gICAgICAgICAgICAgICAgJC5lcnJvcihcIm5vZGUgaXMgcmVxdWlyZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3d3cubWl4aW4odGhpcyk7XG4gICAgICAgICAgICB0aGlzLiRub2RlID0gJChvLm5vZGUpO1xuICAgICAgICAgICAgdGhpcy5xdWVyeSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmRhdGFzZXRzID0gXy5tYXAoby5kYXRhc2V0cywgaW5pdGlhbGl6ZURhdGFzZXQpO1xuICAgICAgICAgICAgZnVuY3Rpb24gaW5pdGlhbGl6ZURhdGFzZXQob0RhdGFzZXQpIHtcbiAgICAgICAgICAgICAgICB2YXIgbm9kZSA9IHRoYXQuJG5vZGUuZmluZChvRGF0YXNldC5ub2RlKS5maXJzdCgpO1xuICAgICAgICAgICAgICAgIG9EYXRhc2V0Lm5vZGUgPSBub2RlLmxlbmd0aCA/IG5vZGUgOiAkKFwiPGRpdj5cIikuYXBwZW5kVG8odGhhdC4kbm9kZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRhc2V0KG9EYXRhc2V0LCB3d3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIF8ubWl4aW4oTWVudS5wcm90b3R5cGUsIEV2ZW50RW1pdHRlciwge1xuICAgICAgICAgICAgX29uU2VsZWN0YWJsZUNsaWNrOiBmdW5jdGlvbiBvblNlbGVjdGFibGVDbGljaygkZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcihcInNlbGVjdGFibGVDbGlja2VkXCIsICQoJGUuY3VycmVudFRhcmdldCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vblJlbmRlcmVkOiBmdW5jdGlvbiBvblJlbmRlcmVkKHR5cGUsIGRhdGFzZXQsIHN1Z2dlc3Rpb25zLCBhc3luYykge1xuICAgICAgICAgICAgICAgIHRoaXMuJG5vZGUudG9nZ2xlQ2xhc3ModGhpcy5jbGFzc2VzLmVtcHR5LCB0aGlzLl9hbGxEYXRhc2V0c0VtcHR5KCkpO1xuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcihcImRhdGFzZXRSZW5kZXJlZFwiLCBkYXRhc2V0LCBzdWdnZXN0aW9ucywgYXN5bmMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vbkNsZWFyZWQ6IGZ1bmN0aW9uIG9uQ2xlYXJlZCgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRub2RlLnRvZ2dsZUNsYXNzKHRoaXMuY2xhc3Nlcy5lbXB0eSwgdGhpcy5fYWxsRGF0YXNldHNFbXB0eSgpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoXCJkYXRhc2V0Q2xlYXJlZFwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfcHJvcGFnYXRlOiBmdW5jdGlvbiBwcm9wYWdhdGUoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2FsbERhdGFzZXRzRW1wdHk6IGZ1bmN0aW9uIGFsbERhdGFzZXRzRW1wdHkoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF8uZXZlcnkodGhpcy5kYXRhc2V0cywgaXNEYXRhc2V0RW1wdHkpO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGlzRGF0YXNldEVtcHR5KGRhdGFzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGFzZXQuaXNFbXB0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfZ2V0U2VsZWN0YWJsZXM6IGZ1bmN0aW9uIGdldFNlbGVjdGFibGVzKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiRub2RlLmZpbmQodGhpcy5zZWxlY3RvcnMuc2VsZWN0YWJsZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3JlbW92ZUN1cnNvcjogZnVuY3Rpb24gX3JlbW92ZUN1cnNvcigpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHNlbGVjdGFibGUgPSB0aGlzLmdldEFjdGl2ZVNlbGVjdGFibGUoKTtcbiAgICAgICAgICAgICAgICAkc2VsZWN0YWJsZSAmJiAkc2VsZWN0YWJsZS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuY3Vyc29yKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfZW5zdXJlVmlzaWJsZTogZnVuY3Rpb24gZW5zdXJlVmlzaWJsZSgkZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgZWxUb3AsIGVsQm90dG9tLCBub2RlU2Nyb2xsVG9wLCBub2RlSGVpZ2h0O1xuICAgICAgICAgICAgICAgIGVsVG9wID0gJGVsLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAgICAgICAgIGVsQm90dG9tID0gZWxUb3AgKyAkZWwub3V0ZXJIZWlnaHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgbm9kZVNjcm9sbFRvcCA9IHRoaXMuJG5vZGUuc2Nyb2xsVG9wKCk7XG4gICAgICAgICAgICAgICAgbm9kZUhlaWdodCA9IHRoaXMuJG5vZGUuaGVpZ2h0KCkgKyBwYXJzZUludCh0aGlzLiRub2RlLmNzcyhcInBhZGRpbmdUb3BcIiksIDEwKSArIHBhcnNlSW50KHRoaXMuJG5vZGUuY3NzKFwicGFkZGluZ0JvdHRvbVwiKSwgMTApO1xuICAgICAgICAgICAgICAgIGlmIChlbFRvcCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kbm9kZS5zY3JvbGxUb3Aobm9kZVNjcm9sbFRvcCArIGVsVG9wKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGVIZWlnaHQgPCBlbEJvdHRvbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRub2RlLnNjcm9sbFRvcChub2RlU2Nyb2xsVG9wICsgKGVsQm90dG9tIC0gbm9kZUhlaWdodCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBiaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsIG9uU2VsZWN0YWJsZUNsaWNrO1xuICAgICAgICAgICAgICAgIG9uU2VsZWN0YWJsZUNsaWNrID0gXy5iaW5kKHRoaXMuX29uU2VsZWN0YWJsZUNsaWNrLCB0aGlzKTtcbiAgICAgICAgICAgICAgICB0aGlzLiRub2RlLm9uKFwiY2xpY2sudHRcIiwgdGhpcy5zZWxlY3RvcnMuc2VsZWN0YWJsZSwgb25TZWxlY3RhYmxlQ2xpY2spO1xuICAgICAgICAgICAgICAgIF8uZWFjaCh0aGlzLmRhdGFzZXRzLCBmdW5jdGlvbihkYXRhc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFzZXQub25TeW5jKFwiYXN5bmNSZXF1ZXN0ZWRcIiwgdGhhdC5fcHJvcGFnYXRlLCB0aGF0KS5vblN5bmMoXCJhc3luY0NhbmNlbGVkXCIsIHRoYXQuX3Byb3BhZ2F0ZSwgdGhhdCkub25TeW5jKFwiYXN5bmNSZWNlaXZlZFwiLCB0aGF0Ll9wcm9wYWdhdGUsIHRoYXQpLm9uU3luYyhcInJlbmRlcmVkXCIsIHRoYXQuX29uUmVuZGVyZWQsIHRoYXQpLm9uU3luYyhcImNsZWFyZWRcIiwgdGhhdC5fb25DbGVhcmVkLCB0aGF0KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc09wZW46IGZ1bmN0aW9uIGlzT3BlbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy4kbm9kZS5oYXNDbGFzcyh0aGlzLmNsYXNzZXMub3Blbik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3BlbjogZnVuY3Rpb24gb3BlbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRub2RlLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5vcGVuKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbG9zZTogZnVuY3Rpb24gY2xvc2UoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kbm9kZS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMub3Blbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ3Vyc29yKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0TGFuZ3VhZ2VEaXJlY3Rpb246IGZ1bmN0aW9uIHNldExhbmd1YWdlRGlyZWN0aW9uKGRpcikge1xuICAgICAgICAgICAgICAgIHRoaXMuJG5vZGUuYXR0cihcImRpclwiLCBkaXIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlbGVjdGFibGVSZWxhdGl2ZVRvQ3Vyc29yOiBmdW5jdGlvbiBzZWxlY3RhYmxlUmVsYXRpdmVUb0N1cnNvcihkZWx0YSkge1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZWN0YWJsZXMsICRvbGRDdXJzb3IsIG9sZEluZGV4LCBuZXdJbmRleDtcbiAgICAgICAgICAgICAgICAkb2xkQ3Vyc29yID0gdGhpcy5nZXRBY3RpdmVTZWxlY3RhYmxlKCk7XG4gICAgICAgICAgICAgICAgJHNlbGVjdGFibGVzID0gdGhpcy5fZ2V0U2VsZWN0YWJsZXMoKTtcbiAgICAgICAgICAgICAgICBvbGRJbmRleCA9ICRvbGRDdXJzb3IgPyAkc2VsZWN0YWJsZXMuaW5kZXgoJG9sZEN1cnNvcikgOiAtMTtcbiAgICAgICAgICAgICAgICBuZXdJbmRleCA9IG9sZEluZGV4ICsgZGVsdGE7XG4gICAgICAgICAgICAgICAgbmV3SW5kZXggPSAobmV3SW5kZXggKyAxKSAlICgkc2VsZWN0YWJsZXMubGVuZ3RoICsgMSkgLSAxO1xuICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gbmV3SW5kZXggPCAtMSA/ICRzZWxlY3RhYmxlcy5sZW5ndGggLSAxIDogbmV3SW5kZXg7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld0luZGV4ID09PSAtMSA/IG51bGwgOiAkc2VsZWN0YWJsZXMuZXEobmV3SW5kZXgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldEN1cnNvcjogZnVuY3Rpb24gc2V0Q3Vyc29yKCRzZWxlY3RhYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ3Vyc29yKCk7XG4gICAgICAgICAgICAgICAgaWYgKCRzZWxlY3RhYmxlID0gJHNlbGVjdGFibGUgJiYgJHNlbGVjdGFibGUuZmlyc3QoKSkge1xuICAgICAgICAgICAgICAgICAgICAkc2VsZWN0YWJsZS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuY3Vyc29yKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW5zdXJlVmlzaWJsZSgkc2VsZWN0YWJsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFNlbGVjdGFibGVEYXRhOiBmdW5jdGlvbiBnZXRTZWxlY3RhYmxlRGF0YSgkZWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJGVsICYmICRlbC5sZW5ndGggPyBEYXRhc2V0LmV4dHJhY3REYXRhKCRlbCkgOiBudWxsO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldEFjdGl2ZVNlbGVjdGFibGU6IGZ1bmN0aW9uIGdldEFjdGl2ZVNlbGVjdGFibGUoKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxlY3RhYmxlID0gdGhpcy5fZ2V0U2VsZWN0YWJsZXMoKS5maWx0ZXIodGhpcy5zZWxlY3RvcnMuY3Vyc29yKS5maXJzdCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiAkc2VsZWN0YWJsZS5sZW5ndGggPyAkc2VsZWN0YWJsZSA6IG51bGw7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0VG9wU2VsZWN0YWJsZTogZnVuY3Rpb24gZ2V0VG9wU2VsZWN0YWJsZSgpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHNlbGVjdGFibGUgPSB0aGlzLl9nZXRTZWxlY3RhYmxlcygpLmZpcnN0KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICRzZWxlY3RhYmxlLmxlbmd0aCA/ICRzZWxlY3RhYmxlIDogbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShxdWVyeSkge1xuICAgICAgICAgICAgICAgIHZhciBpc1ZhbGlkVXBkYXRlID0gcXVlcnkgIT09IHRoaXMucXVlcnk7XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWRVcGRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgICAgICAgICAgICAgICAgICBfLmVhY2godGhpcy5kYXRhc2V0cywgdXBkYXRlRGF0YXNldCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkVXBkYXRlO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHVwZGF0ZURhdGFzZXQoZGF0YXNldCkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhc2V0LnVwZGF0ZShxdWVyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVtcHR5OiBmdW5jdGlvbiBlbXB0eSgpIHtcbiAgICAgICAgICAgICAgICBfLmVhY2godGhpcy5kYXRhc2V0cywgY2xlYXJEYXRhc2V0KTtcbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLiRub2RlLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5lbXB0eSk7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gY2xlYXJEYXRhc2V0KGRhdGFzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldC5jbGVhcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZXN0cm95OiBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgICAgICAgICAgICAgIHRoaXMuJG5vZGUub2ZmKFwiLnR0XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuJG5vZGUgPSAkKFwiPGRpdj5cIik7XG4gICAgICAgICAgICAgICAgXy5lYWNoKHRoaXMuZGF0YXNldHMsIGRlc3Ryb3lEYXRhc2V0KTtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBkZXN0cm95RGF0YXNldChkYXRhc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFzZXQuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBNZW51O1xuICAgIH0oKTtcbiAgICB2YXIgRGVmYXVsdE1lbnUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgICAgIHZhciBzID0gTWVudS5wcm90b3R5cGU7XG4gICAgICAgIGZ1bmN0aW9uIERlZmF1bHRNZW51KCkge1xuICAgICAgICAgICAgTWVudS5hcHBseSh0aGlzLCBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCkpO1xuICAgICAgICB9XG4gICAgICAgIF8ubWl4aW4oRGVmYXVsdE1lbnUucHJvdG90eXBlLCBNZW51LnByb3RvdHlwZSwge1xuICAgICAgICAgICAgb3BlbjogZnVuY3Rpb24gb3BlbigpIHtcbiAgICAgICAgICAgICAgICAhdGhpcy5fYWxsRGF0YXNldHNFbXB0eSgpICYmIHRoaXMuX3Nob3coKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcy5vcGVuLmFwcGx5KHRoaXMsIFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uIGNsb3NlKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hpZGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcy5jbG9zZS5hcHBseSh0aGlzLCBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vblJlbmRlcmVkOiBmdW5jdGlvbiBvblJlbmRlcmVkKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9hbGxEYXRhc2V0c0VtcHR5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGlkZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuKCkgJiYgdGhpcy5fc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcy5fb25SZW5kZXJlZC5hcHBseSh0aGlzLCBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vbkNsZWFyZWQ6IGZ1bmN0aW9uIG9uQ2xlYXJlZCgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fYWxsRGF0YXNldHNFbXB0eSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2hpZGUoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbigpICYmIHRoaXMuX3Nob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHMuX29uQ2xlYXJlZC5hcHBseSh0aGlzLCBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldExhbmd1YWdlRGlyZWN0aW9uOiBmdW5jdGlvbiBzZXRMYW5ndWFnZURpcmVjdGlvbihkaXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRub2RlLmNzcyhkaXIgPT09IFwibHRyXCIgPyB0aGlzLmNzcy5sdHIgOiB0aGlzLmNzcy5ydGwpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzLnNldExhbmd1YWdlRGlyZWN0aW9uLmFwcGx5KHRoaXMsIFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2hpZGU6IGZ1bmN0aW9uIGhpZGUoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kbm9kZS5oaWRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3Nob3c6IGZ1bmN0aW9uIHNob3coKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kbm9kZS5jc3MoXCJkaXNwbGF5XCIsIFwiYmxvY2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gRGVmYXVsdE1lbnU7XG4gICAgfSgpO1xuICAgIHZhciBUeXBlYWhlYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgICAgIGZ1bmN0aW9uIFR5cGVhaGVhZChvLCB3d3cpIHtcbiAgICAgICAgICAgIHZhciBvbkZvY3VzZWQsIG9uQmx1cnJlZCwgb25FbnRlcktleWVkLCBvblRhYktleWVkLCBvbkVzY0tleWVkLCBvblVwS2V5ZWQsIG9uRG93bktleWVkLCBvbkxlZnRLZXllZCwgb25SaWdodEtleWVkLCBvblF1ZXJ5Q2hhbmdlZCwgb25XaGl0ZXNwYWNlQ2hhbmdlZDtcbiAgICAgICAgICAgIG8gPSBvIHx8IHt9O1xuICAgICAgICAgICAgaWYgKCFvLmlucHV0KSB7XG4gICAgICAgICAgICAgICAgJC5lcnJvcihcIm1pc3NpbmcgaW5wdXRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW8ubWVudSkge1xuICAgICAgICAgICAgICAgICQuZXJyb3IoXCJtaXNzaW5nIG1lbnVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW8uZXZlbnRCdXMpIHtcbiAgICAgICAgICAgICAgICAkLmVycm9yKFwibWlzc2luZyBldmVudCBidXNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3d3cubWl4aW4odGhpcyk7XG4gICAgICAgICAgICB0aGlzLmV2ZW50QnVzID0gby5ldmVudEJ1cztcbiAgICAgICAgICAgIHRoaXMubWluTGVuZ3RoID0gXy5pc051bWJlcihvLm1pbkxlbmd0aCkgPyBvLm1pbkxlbmd0aCA6IDE7XG4gICAgICAgICAgICB0aGlzLmlucHV0ID0gby5pbnB1dDtcbiAgICAgICAgICAgIHRoaXMubWVudSA9IG8ubWVudTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5oYXNGb2N1cygpICYmIHRoaXMuYWN0aXZhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuZGlyID0gdGhpcy5pbnB1dC5nZXRMYW5nRGlyKCk7XG4gICAgICAgICAgICB0aGlzLl9oYWNrcygpO1xuICAgICAgICAgICAgdGhpcy5tZW51LmJpbmQoKS5vblN5bmMoXCJzZWxlY3RhYmxlQ2xpY2tlZFwiLCB0aGlzLl9vblNlbGVjdGFibGVDbGlja2VkLCB0aGlzKS5vblN5bmMoXCJhc3luY1JlcXVlc3RlZFwiLCB0aGlzLl9vbkFzeW5jUmVxdWVzdGVkLCB0aGlzKS5vblN5bmMoXCJhc3luY0NhbmNlbGVkXCIsIHRoaXMuX29uQXN5bmNDYW5jZWxlZCwgdGhpcykub25TeW5jKFwiYXN5bmNSZWNlaXZlZFwiLCB0aGlzLl9vbkFzeW5jUmVjZWl2ZWQsIHRoaXMpLm9uU3luYyhcImRhdGFzZXRSZW5kZXJlZFwiLCB0aGlzLl9vbkRhdGFzZXRSZW5kZXJlZCwgdGhpcykub25TeW5jKFwiZGF0YXNldENsZWFyZWRcIiwgdGhpcy5fb25EYXRhc2V0Q2xlYXJlZCwgdGhpcyk7XG4gICAgICAgICAgICBvbkZvY3VzZWQgPSBjKHRoaXMsIFwiYWN0aXZhdGVcIiwgXCJvcGVuXCIsIFwiX29uRm9jdXNlZFwiKTtcbiAgICAgICAgICAgIG9uQmx1cnJlZCA9IGModGhpcywgXCJkZWFjdGl2YXRlXCIsIFwiX29uQmx1cnJlZFwiKTtcbiAgICAgICAgICAgIG9uRW50ZXJLZXllZCA9IGModGhpcywgXCJpc0FjdGl2ZVwiLCBcImlzT3BlblwiLCBcIl9vbkVudGVyS2V5ZWRcIik7XG4gICAgICAgICAgICBvblRhYktleWVkID0gYyh0aGlzLCBcImlzQWN0aXZlXCIsIFwiaXNPcGVuXCIsIFwiX29uVGFiS2V5ZWRcIik7XG4gICAgICAgICAgICBvbkVzY0tleWVkID0gYyh0aGlzLCBcImlzQWN0aXZlXCIsIFwiX29uRXNjS2V5ZWRcIik7XG4gICAgICAgICAgICBvblVwS2V5ZWQgPSBjKHRoaXMsIFwiaXNBY3RpdmVcIiwgXCJvcGVuXCIsIFwiX29uVXBLZXllZFwiKTtcbiAgICAgICAgICAgIG9uRG93bktleWVkID0gYyh0aGlzLCBcImlzQWN0aXZlXCIsIFwib3BlblwiLCBcIl9vbkRvd25LZXllZFwiKTtcbiAgICAgICAgICAgIG9uTGVmdEtleWVkID0gYyh0aGlzLCBcImlzQWN0aXZlXCIsIFwiaXNPcGVuXCIsIFwiX29uTGVmdEtleWVkXCIpO1xuICAgICAgICAgICAgb25SaWdodEtleWVkID0gYyh0aGlzLCBcImlzQWN0aXZlXCIsIFwiaXNPcGVuXCIsIFwiX29uUmlnaHRLZXllZFwiKTtcbiAgICAgICAgICAgIG9uUXVlcnlDaGFuZ2VkID0gYyh0aGlzLCBcIl9vcGVuSWZBY3RpdmVcIiwgXCJfb25RdWVyeUNoYW5nZWRcIik7XG4gICAgICAgICAgICBvbldoaXRlc3BhY2VDaGFuZ2VkID0gYyh0aGlzLCBcIl9vcGVuSWZBY3RpdmVcIiwgXCJfb25XaGl0ZXNwYWNlQ2hhbmdlZFwiKTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuYmluZCgpLm9uU3luYyhcImZvY3VzZWRcIiwgb25Gb2N1c2VkLCB0aGlzKS5vblN5bmMoXCJibHVycmVkXCIsIG9uQmx1cnJlZCwgdGhpcykub25TeW5jKFwiZW50ZXJLZXllZFwiLCBvbkVudGVyS2V5ZWQsIHRoaXMpLm9uU3luYyhcInRhYktleWVkXCIsIG9uVGFiS2V5ZWQsIHRoaXMpLm9uU3luYyhcImVzY0tleWVkXCIsIG9uRXNjS2V5ZWQsIHRoaXMpLm9uU3luYyhcInVwS2V5ZWRcIiwgb25VcEtleWVkLCB0aGlzKS5vblN5bmMoXCJkb3duS2V5ZWRcIiwgb25Eb3duS2V5ZWQsIHRoaXMpLm9uU3luYyhcImxlZnRLZXllZFwiLCBvbkxlZnRLZXllZCwgdGhpcykub25TeW5jKFwicmlnaHRLZXllZFwiLCBvblJpZ2h0S2V5ZWQsIHRoaXMpLm9uU3luYyhcInF1ZXJ5Q2hhbmdlZFwiLCBvblF1ZXJ5Q2hhbmdlZCwgdGhpcykub25TeW5jKFwid2hpdGVzcGFjZUNoYW5nZWRcIiwgb25XaGl0ZXNwYWNlQ2hhbmdlZCwgdGhpcykub25TeW5jKFwibGFuZ0RpckNoYW5nZWRcIiwgdGhpcy5fb25MYW5nRGlyQ2hhbmdlZCwgdGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgXy5taXhpbihUeXBlYWhlYWQucHJvdG90eXBlLCB7XG4gICAgICAgICAgICBfaGFja3M6IGZ1bmN0aW9uIGhhY2tzKCkge1xuICAgICAgICAgICAgICAgIHZhciAkaW5wdXQsICRtZW51O1xuICAgICAgICAgICAgICAgICRpbnB1dCA9IHRoaXMuaW5wdXQuJGlucHV0IHx8ICQoXCI8ZGl2PlwiKTtcbiAgICAgICAgICAgICAgICAkbWVudSA9IHRoaXMubWVudS4kbm9kZSB8fCAkKFwiPGRpdj5cIik7XG4gICAgICAgICAgICAgICAgJGlucHV0Lm9uKFwiYmx1ci50dFwiLCBmdW5jdGlvbigkZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYWN0aXZlLCBpc0FjdGl2ZSwgaGFzQWN0aXZlO1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZSA9ICRtZW51LmlzKGFjdGl2ZSk7XG4gICAgICAgICAgICAgICAgICAgIGhhc0FjdGl2ZSA9ICRtZW51LmhhcyhhY3RpdmUpLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfLmlzTXNpZSgpICYmIChpc0FjdGl2ZSB8fCBoYXNBY3RpdmUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBfLmRlZmVyKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkbWVudS5vbihcIm1vdXNlZG93bi50dFwiLCBmdW5jdGlvbigkZSkge1xuICAgICAgICAgICAgICAgICAgICAkZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vblNlbGVjdGFibGVDbGlja2VkOiBmdW5jdGlvbiBvblNlbGVjdGFibGVDbGlja2VkKHR5cGUsICRlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCRlbCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX29uRGF0YXNldENsZWFyZWQ6IGZ1bmN0aW9uIG9uRGF0YXNldENsZWFyZWQoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlSGludCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vbkRhdGFzZXRSZW5kZXJlZDogZnVuY3Rpb24gb25EYXRhc2V0UmVuZGVyZWQodHlwZSwgZGF0YXNldCwgc3VnZ2VzdGlvbnMsIGFzeW5jKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlSGludCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRCdXMudHJpZ2dlcihcInJlbmRlclwiLCBzdWdnZXN0aW9ucywgYXN5bmMsIGRhdGFzZXQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vbkFzeW5jUmVxdWVzdGVkOiBmdW5jdGlvbiBvbkFzeW5jUmVxdWVzdGVkKHR5cGUsIGRhdGFzZXQsIHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy50cmlnZ2VyKFwiYXN5bmNyZXF1ZXN0XCIsIHF1ZXJ5LCBkYXRhc2V0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfb25Bc3luY0NhbmNlbGVkOiBmdW5jdGlvbiBvbkFzeW5jQ2FuY2VsZWQodHlwZSwgZGF0YXNldCwgcXVlcnkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50QnVzLnRyaWdnZXIoXCJhc3luY2NhbmNlbFwiLCBxdWVyeSwgZGF0YXNldCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX29uQXN5bmNSZWNlaXZlZDogZnVuY3Rpb24gb25Bc3luY1JlY2VpdmVkKHR5cGUsIGRhdGFzZXQsIHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy50cmlnZ2VyKFwiYXN5bmNyZWNlaXZlXCIsIHF1ZXJ5LCBkYXRhc2V0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfb25Gb2N1c2VkOiBmdW5jdGlvbiBvbkZvY3VzZWQoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWluTGVuZ3RoTWV0KCkgJiYgdGhpcy5tZW51LnVwZGF0ZSh0aGlzLmlucHV0LmdldFF1ZXJ5KCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vbkJsdXJyZWQ6IGZ1bmN0aW9uIG9uQmx1cnJlZCgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dC5oYXNRdWVyeUNoYW5nZWRTaW5jZUxhc3RGb2N1cygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRCdXMudHJpZ2dlcihcImNoYW5nZVwiLCB0aGlzLmlucHV0LmdldFF1ZXJ5KCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfb25FbnRlcktleWVkOiBmdW5jdGlvbiBvbkVudGVyS2V5ZWQodHlwZSwgJGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHNlbGVjdGFibGU7XG4gICAgICAgICAgICAgICAgaWYgKCRzZWxlY3RhYmxlID0gdGhpcy5tZW51LmdldEFjdGl2ZVNlbGVjdGFibGUoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgkc2VsZWN0YWJsZSkgJiYgJGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX29uVGFiS2V5ZWQ6IGZ1bmN0aW9uIG9uVGFiS2V5ZWQodHlwZSwgJGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHNlbGVjdGFibGU7XG4gICAgICAgICAgICAgICAgaWYgKCRzZWxlY3RhYmxlID0gdGhpcy5tZW51LmdldEFjdGl2ZVNlbGVjdGFibGUoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgkc2VsZWN0YWJsZSkgJiYgJGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRzZWxlY3RhYmxlID0gdGhpcy5tZW51LmdldFRvcFNlbGVjdGFibGUoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZSgkc2VsZWN0YWJsZSkgJiYgJGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX29uRXNjS2V5ZWQ6IGZ1bmN0aW9uIG9uRXNjS2V5ZWQoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vblVwS2V5ZWQ6IGZ1bmN0aW9uIG9uVXBLZXllZCgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdmVDdXJzb3IoLTEpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vbkRvd25LZXllZDogZnVuY3Rpb24gb25Eb3duS2V5ZWQoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3ZlQ3Vyc29yKCsxKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfb25MZWZ0S2V5ZWQ6IGZ1bmN0aW9uIG9uTGVmdEtleWVkKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpciA9PT0gXCJydGxcIiAmJiB0aGlzLmlucHV0LmlzQ3Vyc29yQXRFbmQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZSh0aGlzLm1lbnUuZ2V0VG9wU2VsZWN0YWJsZSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX29uUmlnaHRLZXllZDogZnVuY3Rpb24gb25SaWdodEtleWVkKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpciA9PT0gXCJsdHJcIiAmJiB0aGlzLmlucHV0LmlzQ3Vyc29yQXRFbmQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZSh0aGlzLm1lbnUuZ2V0VG9wU2VsZWN0YWJsZSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX29uUXVlcnlDaGFuZ2VkOiBmdW5jdGlvbiBvblF1ZXJ5Q2hhbmdlZChlLCBxdWVyeSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX21pbkxlbmd0aE1ldChxdWVyeSkgPyB0aGlzLm1lbnUudXBkYXRlKHF1ZXJ5KSA6IHRoaXMubWVudS5lbXB0eSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vbldoaXRlc3BhY2VDaGFuZ2VkOiBmdW5jdGlvbiBvbldoaXRlc3BhY2VDaGFuZ2VkKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUhpbnQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfb25MYW5nRGlyQ2hhbmdlZDogZnVuY3Rpb24gb25MYW5nRGlyQ2hhbmdlZChlLCBkaXIpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kaXIgIT09IGRpcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpciA9IGRpcjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW51LnNldExhbmd1YWdlRGlyZWN0aW9uKGRpcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9vcGVuSWZBY3RpdmU6IGZ1bmN0aW9uIG9wZW5JZkFjdGl2ZSgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQWN0aXZlKCkgJiYgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX21pbkxlbmd0aE1ldDogZnVuY3Rpb24gbWluTGVuZ3RoTWV0KHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgcXVlcnkgPSBfLmlzU3RyaW5nKHF1ZXJ5KSA/IHF1ZXJ5IDogdGhpcy5pbnB1dC5nZXRRdWVyeSgpIHx8IFwiXCI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5Lmxlbmd0aCA+PSB0aGlzLm1pbkxlbmd0aDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlSGludDogZnVuY3Rpb24gdXBkYXRlSGludCgpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHNlbGVjdGFibGUsIGRhdGEsIHZhbCwgcXVlcnksIGVzY2FwZWRRdWVyeSwgZnJvbnRNYXRjaFJlZ0V4LCBtYXRjaDtcbiAgICAgICAgICAgICAgICAkc2VsZWN0YWJsZSA9IHRoaXMubWVudS5nZXRUb3BTZWxlY3RhYmxlKCk7XG4gICAgICAgICAgICAgICAgZGF0YSA9IHRoaXMubWVudS5nZXRTZWxlY3RhYmxlRGF0YSgkc2VsZWN0YWJsZSk7XG4gICAgICAgICAgICAgICAgdmFsID0gdGhpcy5pbnB1dC5nZXRJbnB1dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEgJiYgIV8uaXNCbGFua1N0cmluZyh2YWwpICYmICF0aGlzLmlucHV0Lmhhc092ZXJmbG93KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcXVlcnkgPSBJbnB1dC5ub3JtYWxpemVRdWVyeSh2YWwpO1xuICAgICAgICAgICAgICAgICAgICBlc2NhcGVkUXVlcnkgPSBfLmVzY2FwZVJlZ0V4Q2hhcnMocXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICBmcm9udE1hdGNoUmVnRXggPSBuZXcgUmVnRXhwKFwiXig/OlwiICsgZXNjYXBlZFF1ZXJ5ICsgXCIpKC4rJClcIiwgXCJpXCIpO1xuICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IGZyb250TWF0Y2hSZWdFeC5leGVjKGRhdGEudmFsKTtcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggJiYgdGhpcy5pbnB1dC5zZXRIaW50KHZhbCArIG1hdGNoWzFdKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0LmNsZWFySGludCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc0VuYWJsZWQ6IGZ1bmN0aW9uIGlzRW5hYmxlZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lbmFibGVkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVuYWJsZTogZnVuY3Rpb24gZW5hYmxlKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGlzYWJsZTogZnVuY3Rpb24gZGlzYWJsZSgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc0FjdGl2ZTogZnVuY3Rpb24gaXNBY3RpdmUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjdGl2YXRlOiBmdW5jdGlvbiBhY3RpdmF0ZSgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNFbmFibGVkKCkgfHwgdGhpcy5ldmVudEJ1cy5iZWZvcmUoXCJhY3RpdmVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy50cmlnZ2VyKFwiYWN0aXZlXCIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVhY3RpdmF0ZTogZnVuY3Rpb24gZGVhY3RpdmF0ZSgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXZlbnRCdXMuYmVmb3JlKFwiaWRsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50QnVzLnRyaWdnZXIoXCJpZGxlXCIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNPcGVuOiBmdW5jdGlvbiBpc09wZW4oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVudS5pc09wZW4oKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcGVuOiBmdW5jdGlvbiBvcGVuKCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc09wZW4oKSAmJiAhdGhpcy5ldmVudEJ1cy5iZWZvcmUoXCJvcGVuXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVudS5vcGVuKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUhpbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy50cmlnZ2VyKFwib3BlblwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNPcGVuKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uIGNsb3NlKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3BlbigpICYmICF0aGlzLmV2ZW50QnVzLmJlZm9yZShcImNsb3NlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVudS5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0LmNsZWFySGludCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnJlc2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50QnVzLnRyaWdnZXIoXCJjbG9zZVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICF0aGlzLmlzT3BlbigpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldFZhbDogZnVuY3Rpb24gc2V0VmFsKHZhbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQuc2V0UXVlcnkoXy50b1N0cih2YWwpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRWYWw6IGZ1bmN0aW9uIGdldFZhbCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dC5nZXRRdWVyeSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlbGVjdDogZnVuY3Rpb24gc2VsZWN0KCRzZWxlY3RhYmxlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLm1lbnUuZ2V0U2VsZWN0YWJsZURhdGEoJHNlbGVjdGFibGUpO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhICYmICF0aGlzLmV2ZW50QnVzLmJlZm9yZShcInNlbGVjdFwiLCBkYXRhLm9iaikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dC5zZXRRdWVyeShkYXRhLnZhbCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRCdXMudHJpZ2dlcihcInNlbGVjdFwiLCBkYXRhLm9iaik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdXRvY29tcGxldGU6IGZ1bmN0aW9uIGF1dG9jb21wbGV0ZSgkc2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgICAgIHZhciBxdWVyeSwgZGF0YSwgaXNWYWxpZDtcbiAgICAgICAgICAgICAgICBxdWVyeSA9IHRoaXMuaW5wdXQuZ2V0UXVlcnkoKTtcbiAgICAgICAgICAgICAgICBkYXRhID0gdGhpcy5tZW51LmdldFNlbGVjdGFibGVEYXRhKCRzZWxlY3RhYmxlKTtcbiAgICAgICAgICAgICAgICBpc1ZhbGlkID0gZGF0YSAmJiBxdWVyeSAhPT0gZGF0YS52YWw7XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWQgJiYgIXRoaXMuZXZlbnRCdXMuYmVmb3JlKFwiYXV0b2NvbXBsZXRlXCIsIGRhdGEub2JqKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnNldFF1ZXJ5KGRhdGEudmFsKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy50cmlnZ2VyKFwiYXV0b2NvbXBsZXRlXCIsIGRhdGEub2JqKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtb3ZlQ3Vyc29yOiBmdW5jdGlvbiBtb3ZlQ3Vyc29yKGRlbHRhKSB7XG4gICAgICAgICAgICAgICAgdmFyIHF1ZXJ5LCAkY2FuZGlkYXRlLCBkYXRhLCBwYXlsb2FkLCBjYW5jZWxNb3ZlO1xuICAgICAgICAgICAgICAgIHF1ZXJ5ID0gdGhpcy5pbnB1dC5nZXRRdWVyeSgpO1xuICAgICAgICAgICAgICAgICRjYW5kaWRhdGUgPSB0aGlzLm1lbnUuc2VsZWN0YWJsZVJlbGF0aXZlVG9DdXJzb3IoZGVsdGEpO1xuICAgICAgICAgICAgICAgIGRhdGEgPSB0aGlzLm1lbnUuZ2V0U2VsZWN0YWJsZURhdGEoJGNhbmRpZGF0ZSk7XG4gICAgICAgICAgICAgICAgcGF5bG9hZCA9IGRhdGEgPyBkYXRhLm9iaiA6IG51bGw7XG4gICAgICAgICAgICAgICAgY2FuY2VsTW92ZSA9IHRoaXMuX21pbkxlbmd0aE1ldCgpICYmIHRoaXMubWVudS51cGRhdGUocXVlcnkpO1xuICAgICAgICAgICAgICAgIGlmICghY2FuY2VsTW92ZSAmJiAhdGhpcy5ldmVudEJ1cy5iZWZvcmUoXCJjdXJzb3JjaGFuZ2VcIiwgcGF5bG9hZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW51LnNldEN1cnNvcigkY2FuZGlkYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQuc2V0SW5wdXRWYWx1ZShkYXRhLnZhbCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnJlc2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlSGludCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRCdXMudHJpZ2dlcihcImN1cnNvcmNoYW5nZVwiLCBwYXlsb2FkKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZXN0cm95OiBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudS5kZXN0cm95KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gVHlwZWFoZWFkO1xuICAgICAgICBmdW5jdGlvbiBjKGN0eCkge1xuICAgICAgICAgICAgdmFyIG1ldGhvZHMgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgXy5lYWNoKG1ldGhvZHMsIGZ1bmN0aW9uKG1ldGhvZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3R4W21ldGhvZF0uYXBwbHkoY3R4LCBhcmdzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9KCk7XG4gICAgKGZ1bmN0aW9uKCkge1xuICAgICAgICBcInVzZSBzdHJpY3RcIjtcbiAgICAgICAgdmFyIG9sZCwga2V5cywgbWV0aG9kcztcbiAgICAgICAgb2xkID0gJC5mbi50eXBlYWhlYWQ7XG4gICAgICAgIGtleXMgPSB7XG4gICAgICAgICAgICB3d3c6IFwidHQtd3d3XCIsXG4gICAgICAgICAgICBhdHRyczogXCJ0dC1hdHRyc1wiLFxuICAgICAgICAgICAgdHlwZWFoZWFkOiBcInR0LXR5cGVhaGVhZFwiXG4gICAgICAgIH07XG4gICAgICAgIG1ldGhvZHMgPSB7XG4gICAgICAgICAgICBpbml0aWFsaXplOiBmdW5jdGlvbiBpbml0aWFsaXplKG8sIGRhdGFzZXRzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHd3dztcbiAgICAgICAgICAgICAgICBkYXRhc2V0cyA9IF8uaXNBcnJheShkYXRhc2V0cykgPyBkYXRhc2V0cyA6IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgICAgICBvID0gbyB8fCB7fTtcbiAgICAgICAgICAgICAgICB3d3cgPSBXV1coby5jbGFzc05hbWVzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lYWNoKGF0dGFjaCk7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gYXR0YWNoKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJGlucHV0LCAkd3JhcHBlciwgJGhpbnQsICRtZW51LCBkZWZhdWx0SGludCwgZGVmYXVsdE1lbnUsIGV2ZW50QnVzLCBpbnB1dCwgbWVudSwgdHlwZWFoZWFkLCBNZW51Q29uc3RydWN0b3I7XG4gICAgICAgICAgICAgICAgICAgIF8uZWFjaChkYXRhc2V0cywgZnVuY3Rpb24oZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZC5oaWdobGlnaHQgPSAhIW8uaGlnaGxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgJGlucHV0ID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgJHdyYXBwZXIgPSAkKHd3dy5odG1sLndyYXBwZXIpO1xuICAgICAgICAgICAgICAgICAgICAkaGludCA9ICRlbE9yTnVsbChvLmhpbnQpO1xuICAgICAgICAgICAgICAgICAgICAkbWVudSA9ICRlbE9yTnVsbChvLm1lbnUpO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0SGludCA9IG8uaGludCAhPT0gZmFsc2UgJiYgISRoaW50O1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWVudSA9IG8ubWVudSAhPT0gZmFsc2UgJiYgISRtZW51O1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0SGludCAmJiAoJGhpbnQgPSBidWlsZEhpbnRGcm9tSW5wdXQoJGlucHV0LCB3d3cpKTtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lbnUgJiYgKCRtZW51ID0gJCh3d3cuaHRtbC5tZW51KS5jc3Mod3d3LmNzcy5tZW51KSk7XG4gICAgICAgICAgICAgICAgICAgICRoaW50ICYmICRoaW50LnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgJGlucHV0ID0gcHJlcElucHV0KCRpbnB1dCwgd3d3KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlZmF1bHRIaW50IHx8IGRlZmF1bHRNZW51KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkd3JhcHBlci5jc3Mod3d3LmNzcy53cmFwcGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC5jc3MoZGVmYXVsdEhpbnQgPyB3d3cuY3NzLmlucHV0IDogd3d3LmNzcy5pbnB1dFdpdGhOb0hpbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJGlucHV0LndyYXAoJHdyYXBwZXIpLnBhcmVudCgpLnByZXBlbmQoZGVmYXVsdEhpbnQgPyAkaGludCA6IG51bGwpLmFwcGVuZChkZWZhdWx0TWVudSA/ICRtZW51IDogbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgTWVudUNvbnN0cnVjdG9yID0gZGVmYXVsdE1lbnUgPyBEZWZhdWx0TWVudSA6IE1lbnU7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50QnVzID0gbmV3IEV2ZW50QnVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsOiAkaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0ID0gbmV3IElucHV0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpbnQ6ICRoaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6ICRpbnB1dFxuICAgICAgICAgICAgICAgICAgICB9LCB3d3cpO1xuICAgICAgICAgICAgICAgICAgICBtZW51ID0gbmV3IE1lbnVDb25zdHJ1Y3Rvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlOiAkbWVudSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFzZXRzOiBkYXRhc2V0c1xuICAgICAgICAgICAgICAgICAgICB9LCB3d3cpO1xuICAgICAgICAgICAgICAgICAgICB0eXBlYWhlYWQgPSBuZXcgVHlwZWFoZWFkKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0OiBpbnB1dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lbnU6IG1lbnUsXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudEJ1czogZXZlbnRCdXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5MZW5ndGg6IG8ubWluTGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgIH0sIHd3dyk7XG4gICAgICAgICAgICAgICAgICAgICRpbnB1dC5kYXRhKGtleXMud3d3LCB3d3cpO1xuICAgICAgICAgICAgICAgICAgICAkaW5wdXQuZGF0YShrZXlzLnR5cGVhaGVhZCwgdHlwZWFoZWFkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNFbmFibGVkOiBmdW5jdGlvbiBpc0VuYWJsZWQoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGVuYWJsZWQ7XG4gICAgICAgICAgICAgICAgdHRFYWNoKHRoaXMuZmlyc3QoKSwgZnVuY3Rpb24odCkge1xuICAgICAgICAgICAgICAgICAgICBlbmFibGVkID0gdC5pc0VuYWJsZWQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5hYmxlZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbmFibGU6IGZ1bmN0aW9uIGVuYWJsZSgpIHtcbiAgICAgICAgICAgICAgICB0dEVhY2godGhpcywgZnVuY3Rpb24odCkge1xuICAgICAgICAgICAgICAgICAgICB0LmVuYWJsZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2FibGU6IGZ1bmN0aW9uIGRpc2FibGUoKSB7XG4gICAgICAgICAgICAgICAgdHRFYWNoKHRoaXMsIGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdC5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNBY3RpdmU6IGZ1bmN0aW9uIGlzQWN0aXZlKCkge1xuICAgICAgICAgICAgICAgIHZhciBhY3RpdmU7XG4gICAgICAgICAgICAgICAgdHRFYWNoKHRoaXMuZmlyc3QoKSwgZnVuY3Rpb24odCkge1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmUgPSB0LmlzQWN0aXZlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjdGl2ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhY3RpdmF0ZTogZnVuY3Rpb24gYWN0aXZhdGUoKSB7XG4gICAgICAgICAgICAgICAgdHRFYWNoKHRoaXMsIGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdC5hY3RpdmF0ZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlYWN0aXZhdGU6IGZ1bmN0aW9uIGRlYWN0aXZhdGUoKSB7XG4gICAgICAgICAgICAgICAgdHRFYWNoKHRoaXMsIGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdC5kZWFjdGl2YXRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNPcGVuOiBmdW5jdGlvbiBpc09wZW4oKSB7XG4gICAgICAgICAgICAgICAgdmFyIG9wZW47XG4gICAgICAgICAgICAgICAgdHRFYWNoKHRoaXMuZmlyc3QoKSwgZnVuY3Rpb24odCkge1xuICAgICAgICAgICAgICAgICAgICBvcGVuID0gdC5pc09wZW4oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3BlbjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcGVuOiBmdW5jdGlvbiBvcGVuKCkge1xuICAgICAgICAgICAgICAgIHR0RWFjaCh0aGlzLCBmdW5jdGlvbih0KSB7XG4gICAgICAgICAgICAgICAgICAgIHQub3BlbigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsb3NlOiBmdW5jdGlvbiBjbG9zZSgpIHtcbiAgICAgICAgICAgICAgICB0dEVhY2godGhpcywgZnVuY3Rpb24odCkge1xuICAgICAgICAgICAgICAgICAgICB0LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VsZWN0OiBmdW5jdGlvbiBzZWxlY3QoZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgc3VjY2VzcyA9IGZhbHNlLCAkZWwgPSAkKGVsKTtcbiAgICAgICAgICAgICAgICB0dEVhY2godGhpcy5maXJzdCgpLCBmdW5jdGlvbih0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSB0LnNlbGVjdCgkZWwpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZTogZnVuY3Rpb24gYXV0b2NvbXBsZXRlKGVsKSB7XG4gICAgICAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSBmYWxzZSwgJGVsID0gJChlbCk7XG4gICAgICAgICAgICAgICAgdHRFYWNoKHRoaXMuZmlyc3QoKSwgZnVuY3Rpb24odCkge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzID0gdC5hdXRvY29tcGxldGUoJGVsKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtb3ZlQ3Vyc29yOiBmdW5jdGlvbiBtb3ZlQ3Vyc29lKGRlbHRhKSB7XG4gICAgICAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0dEVhY2godGhpcy5maXJzdCgpLCBmdW5jdGlvbih0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSB0Lm1vdmVDdXJzb3IoZGVsdGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbDogZnVuY3Rpb24gdmFsKG5ld1ZhbCkge1xuICAgICAgICAgICAgICAgIHZhciBxdWVyeTtcbiAgICAgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdHRFYWNoKHRoaXMuZmlyc3QoKSwgZnVuY3Rpb24odCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnkgPSB0LmdldFZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHR0RWFjaCh0aGlzLCBmdW5jdGlvbih0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0LnNldFZhbChuZXdWYWwpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgICAgICAgICAgICAgdHRFYWNoKHRoaXMsIGZ1bmN0aW9uKHR5cGVhaGVhZCwgJGlucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmVydCgkaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB0eXBlYWhlYWQuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAkLmZuLnR5cGVhaGVhZCA9IGZ1bmN0aW9uKG1ldGhvZCkge1xuICAgICAgICAgICAgaWYgKG1ldGhvZHNbbWV0aG9kXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtZXRob2RzW21ldGhvZF0uYXBwbHkodGhpcywgW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1ldGhvZHMuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAkLmZuLnR5cGVhaGVhZC5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gbm9Db25mbGljdCgpIHtcbiAgICAgICAgICAgICQuZm4udHlwZWFoZWFkID0gb2xkO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH07XG4gICAgICAgIGZ1bmN0aW9uIHR0RWFjaCgkZWxzLCBmbikge1xuICAgICAgICAgICAgJGVscy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciAkaW5wdXQgPSAkKHRoaXMpLCB0eXBlYWhlYWQ7XG4gICAgICAgICAgICAgICAgKHR5cGVhaGVhZCA9ICRpbnB1dC5kYXRhKGtleXMudHlwZWFoZWFkKSkgJiYgZm4odHlwZWFoZWFkLCAkaW5wdXQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYnVpbGRIaW50RnJvbUlucHV0KCRpbnB1dCwgd3d3KSB7XG4gICAgICAgICAgICByZXR1cm4gJGlucHV0LmNsb25lKCkuYWRkQ2xhc3Mod3d3LmNsYXNzZXMuaGludCkucmVtb3ZlRGF0YSgpLmNzcyh3d3cuY3NzLmhpbnQpLmNzcyhnZXRCYWNrZ3JvdW5kU3R5bGVzKCRpbnB1dCkpLnByb3AoXCJyZWFkb25seVwiLCB0cnVlKS5yZW1vdmVBdHRyKFwiaWQgbmFtZSBwbGFjZWhvbGRlciByZXF1aXJlZFwiKS5hdHRyKHtcbiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU6IFwib2ZmXCIsXG4gICAgICAgICAgICAgICAgc3BlbGxjaGVjazogXCJmYWxzZVwiLFxuICAgICAgICAgICAgICAgIHRhYmluZGV4OiAtMVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcHJlcElucHV0KCRpbnB1dCwgd3d3KSB7XG4gICAgICAgICAgICAkaW5wdXQuZGF0YShrZXlzLmF0dHJzLCB7XG4gICAgICAgICAgICAgICAgZGlyOiAkaW5wdXQuYXR0cihcImRpclwiKSxcbiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU6ICRpbnB1dC5hdHRyKFwiYXV0b2NvbXBsZXRlXCIpLFxuICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s6ICRpbnB1dC5hdHRyKFwic3BlbGxjaGVja1wiKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogJGlucHV0LmF0dHIoXCJzdHlsZVwiKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAkaW5wdXQuYWRkQ2xhc3Mod3d3LmNsYXNzZXMuaW5wdXQpLmF0dHIoe1xuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZTogXCJvZmZcIixcbiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICEkaW5wdXQuYXR0cihcImRpclwiKSAmJiAkaW5wdXQuYXR0cihcImRpclwiLCBcImF1dG9cIik7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICAgICAgcmV0dXJuICRpbnB1dDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRCYWNrZ3JvdW5kU3R5bGVzKCRlbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQXR0YWNobWVudDogJGVsLmNzcyhcImJhY2tncm91bmQtYXR0YWNobWVudFwiKSxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ2xpcDogJGVsLmNzcyhcImJhY2tncm91bmQtY2xpcFwiKSxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICRlbC5jc3MoXCJiYWNrZ3JvdW5kLWNvbG9yXCIpLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogJGVsLmNzcyhcImJhY2tncm91bmQtaW1hZ2VcIiksXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZE9yaWdpbjogJGVsLmNzcyhcImJhY2tncm91bmQtb3JpZ2luXCIpLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogJGVsLmNzcyhcImJhY2tncm91bmQtcG9zaXRpb25cIiksXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogJGVsLmNzcyhcImJhY2tncm91bmQtcmVwZWF0XCIpLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRTaXplOiAkZWwuY3NzKFwiYmFja2dyb3VuZC1zaXplXCIpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHJldmVydCgkaW5wdXQpIHtcbiAgICAgICAgICAgIHZhciB3d3csICR3cmFwcGVyO1xuICAgICAgICAgICAgd3d3ID0gJGlucHV0LmRhdGEoa2V5cy53d3cpO1xuICAgICAgICAgICAgJHdyYXBwZXIgPSAkaW5wdXQucGFyZW50KCkuZmlsdGVyKHd3dy5zZWxlY3RvcnMud3JhcHBlcik7XG4gICAgICAgICAgICBfLmVhY2goJGlucHV0LmRhdGEoa2V5cy5hdHRycyksIGZ1bmN0aW9uKHZhbCwga2V5KSB7XG4gICAgICAgICAgICAgICAgXy5pc1VuZGVmaW5lZCh2YWwpID8gJGlucHV0LnJlbW92ZUF0dHIoa2V5KSA6ICRpbnB1dC5hdHRyKGtleSwgdmFsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJGlucHV0LnJlbW92ZURhdGEoa2V5cy50eXBlYWhlYWQpLnJlbW92ZURhdGEoa2V5cy53d3cpLnJlbW92ZURhdGEoa2V5cy5hdHRyKS5yZW1vdmVDbGFzcyh3d3cuY2xhc3Nlcy5pbnB1dCk7XG4gICAgICAgICAgICBpZiAoJHdyYXBwZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgJGlucHV0LmRldGFjaCgpLmluc2VydEFmdGVyKCR3cmFwcGVyKTtcbiAgICAgICAgICAgICAgICAkd3JhcHBlci5yZW1vdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiAkZWxPck51bGwob2JqKSB7XG4gICAgICAgICAgICB2YXIgaXNWYWxpZCwgJGVsO1xuICAgICAgICAgICAgaXNWYWxpZCA9IF8uaXNKUXVlcnkob2JqKSB8fCBfLmlzRWxlbWVudChvYmopO1xuICAgICAgICAgICAgJGVsID0gaXNWYWxpZCA/ICQob2JqKS5maXJzdCgpIDogW107XG4gICAgICAgICAgICByZXR1cm4gJGVsLmxlbmd0aCA/ICRlbCA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9KSgpO1xufSk7IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcImRpdlwiLCB7IGF0dHJzOiB7IGlkOiBcInNlcnBcIiB9IH0sIFtcbiAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInNlcnAtcHJldmlld1wiIH0sIFtcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwic2VycC10aXRsZVwiIH0sIFtcbiAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgXCIgKyBfdm0uX3MoX3ZtLmRpc3BsYXllZFRpdGxlKSArIFwiXFxuICAgIFwiKVxuICAgICAgXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJzZXJwLXVybFwiIH0sIFtcbiAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgXCIgKyBfdm0uX3MoX3ZtLnVybCkpLFxuICAgICAgICBfYyhcInNwYW5cIiwgeyBzdGF0aWNDbGFzczogXCJzZXJwLWFycm93XCIgfSlcbiAgICAgIF0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwic2VycC1kZXNjcmlwdGlvblwiIH0sIFtcbiAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgXCIgKyBfdm0uX3MoX3ZtLmRpc3BsYXllZERlc2NyaXB0aW9uKSArIFwiXFxuICAgIFwiKVxuICAgICAgXSlcbiAgICBdKVxuICBdKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtMVswXS5ydWxlc1swXS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9zZXJwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC0xWzBdLnJ1bGVzWzBdLnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3NlcnAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9zZXJwLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02NmM0YzVhYiZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9zZXJwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vc2VycC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vc2VycC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02NmM0YzVhYiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjY2YzRjNWFiXCIsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL3RtcC9wcmVzdGFzaG9wL2FkbWluLWRldi90aGVtZXMvbmV3LXRoZW1lL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzY2YzRjNWFiJykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzY2YzRjNWFiJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzY2YzRjNWFiJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9zZXJwLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02NmM0YzVhYiZzY29wZWQ9dHJ1ZSZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc2NmM0YzVhYicsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwianMvYXBwL3V0aWxzL3NlcnAvc2VycC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCIvKiBnbG9iYWxzIF9fVlVFX1NTUl9DT05URVhUX18gKi9cblxuLy8gSU1QT1JUQU5UOiBEbyBOT1QgdXNlIEVTMjAxNSBmZWF0dXJlcyBpbiB0aGlzIGZpbGUgKGV4Y2VwdCBmb3IgbW9kdWxlcykuXG4vLyBUaGlzIG1vZHVsZSBpcyBhIHJ1bnRpbWUgdXRpbGl0eSBmb3IgY2xlYW5lciBjb21wb25lbnQgbW9kdWxlIG91dHB1dCBhbmQgd2lsbFxuLy8gYmUgaW5jbHVkZWQgaW4gdGhlIGZpbmFsIHdlYnBhY2sgdXNlciBidW5kbGUuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vcm1hbGl6ZUNvbXBvbmVudCAoXG4gIHNjcmlwdEV4cG9ydHMsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmdW5jdGlvbmFsVGVtcGxhdGUsXG4gIGluamVjdFN0eWxlcyxcbiAgc2NvcGVJZCxcbiAgbW9kdWxlSWRlbnRpZmllciwgLyogc2VydmVyIG9ubHkgKi9cbiAgc2hhZG93TW9kZSAvKiB2dWUtY2xpIG9ubHkgKi9cbikge1xuICAvLyBWdWUuZXh0ZW5kIGNvbnN0cnVjdG9yIGV4cG9ydCBpbnRlcm9wXG4gIHZhciBvcHRpb25zID0gdHlwZW9mIHNjcmlwdEV4cG9ydHMgPT09ICdmdW5jdGlvbidcbiAgICA/IHNjcmlwdEV4cG9ydHMub3B0aW9uc1xuICAgIDogc2NyaXB0RXhwb3J0c1xuXG4gIC8vIHJlbmRlciBmdW5jdGlvbnNcbiAgaWYgKHJlbmRlcikge1xuICAgIG9wdGlvbnMucmVuZGVyID0gcmVuZGVyXG4gICAgb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnMgPSBzdGF0aWNSZW5kZXJGbnNcbiAgICBvcHRpb25zLl9jb21waWxlZCA9IHRydWVcbiAgfVxuXG4gIC8vIGZ1bmN0aW9uYWwgdGVtcGxhdGVcbiAgaWYgKGZ1bmN0aW9uYWxUZW1wbGF0ZSkge1xuICAgIG9wdGlvbnMuZnVuY3Rpb25hbCA9IHRydWVcbiAgfVxuXG4gIC8vIHNjb3BlZElkXG4gIGlmIChzY29wZUlkKSB7XG4gICAgb3B0aW9ucy5fc2NvcGVJZCA9ICdkYXRhLXYtJyArIHNjb3BlSWRcbiAgfVxuXG4gIHZhciBob29rXG4gIGlmIChtb2R1bGVJZGVudGlmaWVyKSB7IC8vIHNlcnZlciBidWlsZFxuICAgIGhvb2sgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgLy8gMi4zIGluamVjdGlvblxuICAgICAgY29udGV4dCA9XG4gICAgICAgIGNvbnRleHQgfHwgLy8gY2FjaGVkIGNhbGxcbiAgICAgICAgKHRoaXMuJHZub2RlICYmIHRoaXMuJHZub2RlLnNzckNvbnRleHQpIHx8IC8vIHN0YXRlZnVsXG4gICAgICAgICh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC4kdm5vZGUgJiYgdGhpcy5wYXJlbnQuJHZub2RlLnNzckNvbnRleHQpIC8vIGZ1bmN0aW9uYWxcbiAgICAgIC8vIDIuMiB3aXRoIHJ1bkluTmV3Q29udGV4dDogdHJ1ZVxuICAgICAgaWYgKCFjb250ZXh0ICYmIHR5cGVvZiBfX1ZVRV9TU1JfQ09OVEVYVF9fICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb250ZXh0ID0gX19WVUVfU1NSX0NPTlRFWFRfX1xuICAgICAgfVxuICAgICAgLy8gaW5qZWN0IGNvbXBvbmVudCBzdHlsZXNcbiAgICAgIGlmIChpbmplY3RTdHlsZXMpIHtcbiAgICAgICAgaW5qZWN0U3R5bGVzLmNhbGwodGhpcywgY29udGV4dClcbiAgICAgIH1cbiAgICAgIC8vIHJlZ2lzdGVyIGNvbXBvbmVudCBtb2R1bGUgaWRlbnRpZmllciBmb3IgYXN5bmMgY2h1bmsgaW5mZXJyZW5jZVxuICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMpIHtcbiAgICAgICAgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMuYWRkKG1vZHVsZUlkZW50aWZpZXIpXG4gICAgICB9XG4gICAgfVxuICAgIC8vIHVzZWQgYnkgc3NyIGluIGNhc2UgY29tcG9uZW50IGlzIGNhY2hlZCBhbmQgYmVmb3JlQ3JlYXRlXG4gICAgLy8gbmV2ZXIgZ2V0cyBjYWxsZWRcbiAgICBvcHRpb25zLl9zc3JSZWdpc3RlciA9IGhvb2tcbiAgfSBlbHNlIGlmIChpbmplY3RTdHlsZXMpIHtcbiAgICBob29rID0gc2hhZG93TW9kZVxuICAgICAgPyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGluamVjdFN0eWxlcy5jYWxsKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgKG9wdGlvbnMuZnVuY3Rpb25hbCA/IHRoaXMucGFyZW50IDogdGhpcykuJHJvb3QuJG9wdGlvbnMuc2hhZG93Um9vdFxuICAgICAgICApXG4gICAgICB9XG4gICAgICA6IGluamVjdFN0eWxlc1xuICB9XG5cbiAgaWYgKGhvb2spIHtcbiAgICBpZiAob3B0aW9ucy5mdW5jdGlvbmFsKSB7XG4gICAgICAvLyBmb3IgdGVtcGxhdGUtb25seSBob3QtcmVsb2FkIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHRoZSByZW5kZXIgZm4gZG9lc24ndFxuICAgICAgLy8gZ28gdGhyb3VnaCB0aGUgbm9ybWFsaXplclxuICAgICAgb3B0aW9ucy5faW5qZWN0U3R5bGVzID0gaG9va1xuICAgICAgLy8gcmVnaXN0ZXIgZm9yIGZ1bmN0aW9uYWwgY29tcG9uZW50IGluIHZ1ZSBmaWxlXG4gICAgICB2YXIgb3JpZ2luYWxSZW5kZXIgPSBvcHRpb25zLnJlbmRlclxuICAgICAgb3B0aW9ucy5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXJXaXRoU3R5bGVJbmplY3Rpb24gKGgsIGNvbnRleHQpIHtcbiAgICAgICAgaG9vay5jYWxsKGNvbnRleHQpXG4gICAgICAgIHJldHVybiBvcmlnaW5hbFJlbmRlcihoLCBjb250ZXh0KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbmplY3QgY29tcG9uZW50IHJlZ2lzdHJhdGlvbiBhcyBiZWZvcmVDcmVhdGUgaG9va1xuICAgICAgdmFyIGV4aXN0aW5nID0gb3B0aW9ucy5iZWZvcmVDcmVhdGVcbiAgICAgIG9wdGlvbnMuYmVmb3JlQ3JlYXRlID0gZXhpc3RpbmdcbiAgICAgICAgPyBbXS5jb25jYXQoZXhpc3RpbmcsIGhvb2spXG4gICAgICAgIDogW2hvb2tdXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBleHBvcnRzOiBzY3JpcHRFeHBvcnRzLFxuICAgIG9wdGlvbnM6IG9wdGlvbnNcbiAgfVxufVxuIiwiLy8gc3R5bGUtbG9hZGVyOiBBZGRzIHNvbWUgY3NzIHRvIHRoZSBET00gYnkgYWRkaW5nIGEgPHN0eWxlPiB0YWdcblxuLy8gbG9hZCB0aGUgc3R5bGVzXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9zZXJwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTY2YzRjNWFiJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIik7XG5pZihjb250ZW50Ll9fZXNNb2R1bGUpIGNvbnRlbnQgPSBjb250ZW50LmRlZmF1bHQ7XG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuLy8gYWRkIHRoZSBzdHlsZXMgdG8gdGhlIERPTVxudmFyIGFkZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlc0NsaWVudC5qc1wiKS5kZWZhdWx0XG52YXIgdXBkYXRlID0gYWRkKFwiMmM4M2Q0ZGJcIiwgY29udGVudCwgZmFsc2UsIHt9KTtcbi8vIEhvdCBNb2R1bGUgUmVwbGFjZW1lbnRcbmlmKG1vZHVsZS5ob3QpIHtcbiAvLyBXaGVuIHRoZSBzdHlsZXMgY2hhbmdlLCB1cGRhdGUgdGhlIDxzdHlsZT4gdGFnc1xuIGlmKCFjb250ZW50LmxvY2Fscykge1xuICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9zZXJwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTY2YzRjNWFiJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiwgZnVuY3Rpb24oKSB7XG4gICAgIHZhciBuZXdDb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3NlcnAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NjZjNGM1YWImbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiKTtcbiAgICAgaWYobmV3Q29udGVudC5fX2VzTW9kdWxlKSBuZXdDb250ZW50ID0gbmV3Q29udGVudC5kZWZhdWx0O1xuICAgICBpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcbiAgICAgdXBkYXRlKG5ld0NvbnRlbnQpO1xuICAgfSk7XG4gfVxuIC8vIFdoZW4gdGhlIG1vZHVsZSBpcyBkaXNwb3NlZCwgcmVtb3ZlIHRoZSA8c3R5bGU+IHRhZ3NcbiBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCIvKipcbiAqIFRyYW5zbGF0ZXMgdGhlIGxpc3QgZm9ybWF0IHByb2R1Y2VkIGJ5IGNzcy1sb2FkZXIgaW50byBzb21ldGhpbmdcbiAqIGVhc2llciB0byBtYW5pcHVsYXRlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsaXN0VG9TdHlsZXMgKHBhcmVudElkLCBsaXN0KSB7XG4gIHZhciBzdHlsZXMgPSBbXVxuICB2YXIgbmV3U3R5bGVzID0ge31cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldXG4gICAgdmFyIGlkID0gaXRlbVswXVxuICAgIHZhciBjc3MgPSBpdGVtWzFdXG4gICAgdmFyIG1lZGlhID0gaXRlbVsyXVxuICAgIHZhciBzb3VyY2VNYXAgPSBpdGVtWzNdXG4gICAgdmFyIHBhcnQgPSB7XG4gICAgICBpZDogcGFyZW50SWQgKyAnOicgKyBpLFxuICAgICAgY3NzOiBjc3MsXG4gICAgICBtZWRpYTogbWVkaWEsXG4gICAgICBzb3VyY2VNYXA6IHNvdXJjZU1hcFxuICAgIH1cbiAgICBpZiAoIW5ld1N0eWxlc1tpZF0pIHtcbiAgICAgIHN0eWxlcy5wdXNoKG5ld1N0eWxlc1tpZF0gPSB7IGlkOiBpZCwgcGFydHM6IFtwYXJ0XSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdTdHlsZXNbaWRdLnBhcnRzLnB1c2gocGFydClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0eWxlc1xufVxuIiwiLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuICBNb2RpZmllZCBieSBFdmFuIFlvdSBAeXl4OTkwODAzXG4qL1xuXG5pbXBvcnQgbGlzdFRvU3R5bGVzIGZyb20gJy4vbGlzdFRvU3R5bGVzJ1xuXG52YXIgaGFzRG9jdW1lbnQgPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnXG5cbmlmICh0eXBlb2YgREVCVUcgIT09ICd1bmRlZmluZWQnICYmIERFQlVHKSB7XG4gIGlmICghaGFzRG9jdW1lbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ3Z1ZS1zdHlsZS1sb2FkZXIgY2Fubm90IGJlIHVzZWQgaW4gYSBub24tYnJvd3NlciBlbnZpcm9ubWVudC4gJyArXG4gICAgXCJVc2UgeyB0YXJnZXQ6ICdub2RlJyB9IGluIHlvdXIgV2VicGFjayBjb25maWcgdG8gaW5kaWNhdGUgYSBzZXJ2ZXItcmVuZGVyaW5nIGVudmlyb25tZW50LlwiXG4gICkgfVxufVxuXG4vKlxudHlwZSBTdHlsZU9iamVjdCA9IHtcbiAgaWQ6IG51bWJlcjtcbiAgcGFydHM6IEFycmF5PFN0eWxlT2JqZWN0UGFydD5cbn1cblxudHlwZSBTdHlsZU9iamVjdFBhcnQgPSB7XG4gIGNzczogc3RyaW5nO1xuICBtZWRpYTogc3RyaW5nO1xuICBzb3VyY2VNYXA6ID9zdHJpbmdcbn1cbiovXG5cbnZhciBzdHlsZXNJbkRvbSA9IHsvKlxuICBbaWQ6IG51bWJlcl06IHtcbiAgICBpZDogbnVtYmVyLFxuICAgIHJlZnM6IG51bWJlcixcbiAgICBwYXJ0czogQXJyYXk8KG9iaj86IFN0eWxlT2JqZWN0UGFydCkgPT4gdm9pZD5cbiAgfVxuKi99XG5cbnZhciBoZWFkID0gaGFzRG9jdW1lbnQgJiYgKGRvY3VtZW50LmhlYWQgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSlcbnZhciBzaW5nbGV0b25FbGVtZW50ID0gbnVsbFxudmFyIHNpbmdsZXRvbkNvdW50ZXIgPSAwXG52YXIgaXNQcm9kdWN0aW9uID0gZmFsc2VcbnZhciBub29wID0gZnVuY3Rpb24gKCkge31cbnZhciBvcHRpb25zID0gbnVsbFxudmFyIHNzcklkS2V5ID0gJ2RhdGEtdnVlLXNzci1pZCdcblxuLy8gRm9yY2Ugc2luZ2xlLXRhZyBzb2x1dGlvbiBvbiBJRTYtOSwgd2hpY2ggaGFzIGEgaGFyZCBsaW1pdCBvbiB0aGUgIyBvZiA8c3R5bGU+XG4vLyB0YWdzIGl0IHdpbGwgYWxsb3cgb24gYSBwYWdlXG52YXIgaXNPbGRJRSA9IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIC9tc2llIFs2LTldXFxiLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkU3R5bGVzQ2xpZW50IChwYXJlbnRJZCwgbGlzdCwgX2lzUHJvZHVjdGlvbiwgX29wdGlvbnMpIHtcbiAgaXNQcm9kdWN0aW9uID0gX2lzUHJvZHVjdGlvblxuXG4gIG9wdGlvbnMgPSBfb3B0aW9ucyB8fCB7fVxuXG4gIHZhciBzdHlsZXMgPSBsaXN0VG9TdHlsZXMocGFyZW50SWQsIGxpc3QpXG4gIGFkZFN0eWxlc1RvRG9tKHN0eWxlcylcblxuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlIChuZXdMaXN0KSB7XG4gICAgdmFyIG1heVJlbW92ZSA9IFtdXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpdGVtID0gc3R5bGVzW2ldXG4gICAgICB2YXIgZG9tU3R5bGUgPSBzdHlsZXNJbkRvbVtpdGVtLmlkXVxuICAgICAgZG9tU3R5bGUucmVmcy0tXG4gICAgICBtYXlSZW1vdmUucHVzaChkb21TdHlsZSlcbiAgICB9XG4gICAgaWYgKG5ld0xpc3QpIHtcbiAgICAgIHN0eWxlcyA9IGxpc3RUb1N0eWxlcyhwYXJlbnRJZCwgbmV3TGlzdClcbiAgICAgIGFkZFN0eWxlc1RvRG9tKHN0eWxlcylcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVzID0gW11cbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXlSZW1vdmUubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBkb21TdHlsZSA9IG1heVJlbW92ZVtpXVxuICAgICAgaWYgKGRvbVN0eWxlLnJlZnMgPT09IDApIHtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBkb21TdHlsZS5wYXJ0cy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGRvbVN0eWxlLnBhcnRzW2pdKClcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgc3R5bGVzSW5Eb21bZG9tU3R5bGUuaWRdXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFkZFN0eWxlc1RvRG9tIChzdHlsZXMgLyogQXJyYXk8U3R5bGVPYmplY3Q+ICovKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBzdHlsZXNbaV1cbiAgICB2YXIgZG9tU3R5bGUgPSBzdHlsZXNJbkRvbVtpdGVtLmlkXVxuICAgIGlmIChkb21TdHlsZSkge1xuICAgICAgZG9tU3R5bGUucmVmcysrXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGRvbVN0eWxlLnBhcnRzW2pdKGl0ZW0ucGFydHNbal0pXG4gICAgICB9XG4gICAgICBmb3IgKDsgaiA8IGl0ZW0ucGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgZG9tU3R5bGUucGFydHMucHVzaChhZGRTdHlsZShpdGVtLnBhcnRzW2pdKSlcbiAgICAgIH1cbiAgICAgIGlmIChkb21TdHlsZS5wYXJ0cy5sZW5ndGggPiBpdGVtLnBhcnRzLmxlbmd0aCkge1xuICAgICAgICBkb21TdHlsZS5wYXJ0cy5sZW5ndGggPSBpdGVtLnBhcnRzLmxlbmd0aFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcGFydHMgPSBbXVxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBpdGVtLnBhcnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSkpXG4gICAgICB9XG4gICAgICBzdHlsZXNJbkRvbVtpdGVtLmlkXSA9IHsgaWQ6IGl0ZW0uaWQsIHJlZnM6IDEsIHBhcnRzOiBwYXJ0cyB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVN0eWxlRWxlbWVudCAoKSB7XG4gIHZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpXG4gIHN0eWxlRWxlbWVudC50eXBlID0gJ3RleHQvY3NzJ1xuICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudClcbiAgcmV0dXJuIHN0eWxlRWxlbWVudFxufVxuXG5mdW5jdGlvbiBhZGRTdHlsZSAob2JqIC8qIFN0eWxlT2JqZWN0UGFydCAqLykge1xuICB2YXIgdXBkYXRlLCByZW1vdmVcbiAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlWycgKyBzc3JJZEtleSArICd+PVwiJyArIG9iai5pZCArICdcIl0nKVxuXG4gIGlmIChzdHlsZUVsZW1lbnQpIHtcbiAgICBpZiAoaXNQcm9kdWN0aW9uKSB7XG4gICAgICAvLyBoYXMgU1NSIHN0eWxlcyBhbmQgaW4gcHJvZHVjdGlvbiBtb2RlLlxuICAgICAgLy8gc2ltcGx5IGRvIG5vdGhpbmcuXG4gICAgICByZXR1cm4gbm9vcFxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBoYXMgU1NSIHN0eWxlcyBidXQgaW4gZGV2IG1vZGUuXG4gICAgICAvLyBmb3Igc29tZSByZWFzb24gQ2hyb21lIGNhbid0IGhhbmRsZSBzb3VyY2UgbWFwIGluIHNlcnZlci1yZW5kZXJlZFxuICAgICAgLy8gc3R5bGUgdGFncyAtIHNvdXJjZSBtYXBzIGluIDxzdHlsZT4gb25seSB3b3JrcyBpZiB0aGUgc3R5bGUgdGFnIGlzXG4gICAgICAvLyBjcmVhdGVkIGFuZCBpbnNlcnRlZCBkeW5hbWljYWxseS4gU28gd2UgcmVtb3ZlIHRoZSBzZXJ2ZXIgcmVuZGVyZWRcbiAgICAgIC8vIHN0eWxlcyBhbmQgaW5qZWN0IG5ldyBvbmVzLlxuICAgICAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIGlmIChpc09sZElFKSB7XG4gICAgLy8gdXNlIHNpbmdsZXRvbiBtb2RlIGZvciBJRTkuXG4gICAgdmFyIHN0eWxlSW5kZXggPSBzaW5nbGV0b25Db3VudGVyKytcbiAgICBzdHlsZUVsZW1lbnQgPSBzaW5nbGV0b25FbGVtZW50IHx8IChzaW5nbGV0b25FbGVtZW50ID0gY3JlYXRlU3R5bGVFbGVtZW50KCkpXG4gICAgdXBkYXRlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlRWxlbWVudCwgc3R5bGVJbmRleCwgZmFsc2UpXG4gICAgcmVtb3ZlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlRWxlbWVudCwgc3R5bGVJbmRleCwgdHJ1ZSlcbiAgfSBlbHNlIHtcbiAgICAvLyB1c2UgbXVsdGktc3R5bGUtdGFnIG1vZGUgaW4gYWxsIG90aGVyIGNhc2VzXG4gICAgc3R5bGVFbGVtZW50ID0gY3JlYXRlU3R5bGVFbGVtZW50KClcbiAgICB1cGRhdGUgPSBhcHBseVRvVGFnLmJpbmQobnVsbCwgc3R5bGVFbGVtZW50KVxuICAgIHJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHN0eWxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudClcbiAgICB9XG4gIH1cblxuICB1cGRhdGUob2JqKVxuXG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGVTdHlsZSAobmV3T2JqIC8qIFN0eWxlT2JqZWN0UGFydCAqLykge1xuICAgIGlmIChuZXdPYmopIHtcbiAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmXG4gICAgICAgICAgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiZcbiAgICAgICAgICBuZXdPYmouc291cmNlTWFwID09PSBvYmouc291cmNlTWFwKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgdXBkYXRlKG9iaiA9IG5ld09iailcbiAgICB9IGVsc2Uge1xuICAgICAgcmVtb3ZlKClcbiAgICB9XG4gIH1cbn1cblxudmFyIHJlcGxhY2VUZXh0ID0gKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHRleHRTdG9yZSA9IFtdXG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChpbmRleCwgcmVwbGFjZW1lbnQpIHtcbiAgICB0ZXh0U3RvcmVbaW5kZXhdID0gcmVwbGFjZW1lbnRcbiAgICByZXR1cm4gdGV4dFN0b3JlLmZpbHRlcihCb29sZWFuKS5qb2luKCdcXG4nKVxuICB9XG59KSgpXG5cbmZ1bmN0aW9uIGFwcGx5VG9TaW5nbGV0b25UYWcgKHN0eWxlRWxlbWVudCwgaW5kZXgsIHJlbW92ZSwgb2JqKSB7XG4gIHZhciBjc3MgPSByZW1vdmUgPyAnJyA6IG9iai5jc3NcblxuICBpZiAoc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0gcmVwbGFjZVRleHQoaW5kZXgsIGNzcylcbiAgfSBlbHNlIHtcbiAgICB2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcylcbiAgICB2YXIgY2hpbGROb2RlcyA9IHN0eWxlRWxlbWVudC5jaGlsZE5vZGVzXG4gICAgaWYgKGNoaWxkTm9kZXNbaW5kZXhdKSBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoY2hpbGROb2Rlc1tpbmRleF0pXG4gICAgaWYgKGNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICBzdHlsZUVsZW1lbnQuaW5zZXJ0QmVmb3JlKGNzc05vZGUsIGNoaWxkTm9kZXNbaW5kZXhdKVxuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoY3NzTm9kZSlcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXBwbHlUb1RhZyAoc3R5bGVFbGVtZW50LCBvYmopIHtcbiAgdmFyIGNzcyA9IG9iai5jc3NcbiAgdmFyIG1lZGlhID0gb2JqLm1lZGlhXG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwXG5cbiAgaWYgKG1lZGlhKSB7XG4gICAgc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWVkaWEnLCBtZWRpYSlcbiAgfVxuICBpZiAob3B0aW9ucy5zc3JJZCkge1xuICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoc3NySWRLZXksIG9iai5pZClcbiAgfVxuXG4gIGlmIChzb3VyY2VNYXApIHtcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5jaHJvbWUuY29tL2RldnRvb2xzL2RvY3MvamF2YXNjcmlwdC1kZWJ1Z2dpbmdcbiAgICAvLyB0aGlzIG1ha2VzIHNvdXJjZSBtYXBzIGluc2lkZSBzdHlsZSB0YWdzIHdvcmsgcHJvcGVybHkgaW4gQ2hyb21lXG4gICAgY3NzICs9ICdcXG4vKiMgc291cmNlVVJMPScgKyBzb3VyY2VNYXAuc291cmNlc1swXSArICcgKi8nXG4gICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjY2MDM4NzVcbiAgICBjc3MgKz0gJ1xcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsJyArIGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSkgKyAnICovJ1xuICB9XG5cbiAgaWYgKHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0KSB7XG4gICAgc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzc1xuICB9IGVsc2Uge1xuICAgIHdoaWxlIChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgc3R5bGVFbGVtZW50LnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKVxuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSlcbiAgfVxufVxuIiwiaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL3Z1ZS5jb21tb24ucHJvZC5qcycpXG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vdnVlLmNvbW1vbi5kZXYuanMnKVxufVxuIiwiLyohXG4gKiBWdWUuanMgdjIuNi4xMlxuICogKGMpIDIwMTQtMjAyMCBFdmFuIFlvdVxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG5cInVzZSBzdHJpY3RcIjt2YXIgZT1PYmplY3QuZnJlZXplKHt9KTtmdW5jdGlvbiB0KGUpe3JldHVybiBudWxsPT1lfWZ1bmN0aW9uIG4oZSl7cmV0dXJuIG51bGwhPWV9ZnVuY3Rpb24gcihlKXtyZXR1cm4hMD09PWV9ZnVuY3Rpb24gaShlKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZXx8XCJudW1iZXJcIj09dHlwZW9mIGV8fFwic3ltYm9sXCI9PXR5cGVvZiBlfHxcImJvb2xlYW5cIj09dHlwZW9mIGV9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbnVsbCE9PWUmJlwib2JqZWN0XCI9PXR5cGVvZiBlfXZhciBhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gcyhlKXtyZXR1cm5cIltvYmplY3QgT2JqZWN0XVwiPT09YS5jYWxsKGUpfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9cGFyc2VGbG9hdChTdHJpbmcoZSkpO3JldHVybiB0Pj0wJiZNYXRoLmZsb29yKHQpPT09dCYmaXNGaW5pdGUoZSl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gbihlKSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS50aGVuJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmNhdGNofWZ1bmN0aW9uIGwoZSl7cmV0dXJuIG51bGw9PWU/XCJcIjpBcnJheS5pc0FycmF5KGUpfHxzKGUpJiZlLnRvU3RyaW5nPT09YT9KU09OLnN0cmluZ2lmeShlLG51bGwsMik6U3RyaW5nKGUpfWZ1bmN0aW9uIGYoZSl7dmFyIHQ9cGFyc2VGbG9hdChlKTtyZXR1cm4gaXNOYU4odCk/ZTp0fWZ1bmN0aW9uIHAoZSx0KXtmb3IodmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPWUuc3BsaXQoXCIsXCIpLGk9MDtpPHIubGVuZ3RoO2krKyluW3JbaV1dPSEwO3JldHVybiB0P2Z1bmN0aW9uKGUpe3JldHVybiBuW2UudG9Mb3dlckNhc2UoKV19OmZ1bmN0aW9uKGUpe3JldHVybiBuW2VdfX12YXIgZD1wKFwic2xvdCxjb21wb25lbnRcIiwhMCksdj1wKFwia2V5LHJlZixzbG90LHNsb3Qtc2NvcGUsaXNcIik7ZnVuY3Rpb24gaChlLHQpe2lmKGUubGVuZ3RoKXt2YXIgbj1lLmluZGV4T2YodCk7aWYobj4tMSlyZXR1cm4gZS5zcGxpY2UobiwxKX19dmFyIG09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB5KGUsdCl7cmV0dXJuIG0uY2FsbChlLHQpfWZ1bmN0aW9uIGcoZSl7dmFyIHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHRbbl18fCh0W25dPWUobikpfX12YXIgXz0vLShcXHcpL2csYj1nKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoXyxmdW5jdGlvbihlLHQpe3JldHVybiB0P3QudG9VcHBlckNhc2UoKTpcIlwifSl9KSwkPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX0pLHc9L1xcQihbQS1aXSkvZyxDPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSh3LFwiLSQxXCIpLnRvTG93ZXJDYXNlKCl9KTt2YXIgeD1GdW5jdGlvbi5wcm90b3R5cGUuYmluZD9mdW5jdGlvbihlLHQpe3JldHVybiBlLmJpbmQodCl9OmZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO3JldHVybiByP3I+MT9lLmFwcGx5KHQsYXJndW1lbnRzKTplLmNhbGwodCxuKTplLmNhbGwodCl9cmV0dXJuIG4uX2xlbmd0aD1lLmxlbmd0aCxufTtmdW5jdGlvbiBrKGUsdCl7dD10fHwwO2Zvcih2YXIgbj1lLmxlbmd0aC10LHI9bmV3IEFycmF5KG4pO24tLTspcltuXT1lW24rdF07cmV0dXJuIHJ9ZnVuY3Rpb24gQShlLHQpe2Zvcih2YXIgbiBpbiB0KWVbbl09dFtuXTtyZXR1cm4gZX1mdW5jdGlvbiBPKGUpe2Zvcih2YXIgdD17fSxuPTA7bjxlLmxlbmd0aDtuKyspZVtuXSYmQSh0LGVbbl0pO3JldHVybiB0fWZ1bmN0aW9uIFMoZSx0LG4pe312YXIgVD1mdW5jdGlvbihlLHQsbil7cmV0dXJuITF9LEU9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9O2Z1bmN0aW9uIE4oZSx0KXtpZihlPT09dClyZXR1cm4hMDt2YXIgbj1vKGUpLHI9byh0KTtpZighbnx8IXIpcmV0dXJuIW4mJiFyJiZTdHJpbmcoZSk9PT1TdHJpbmcodCk7dHJ5e3ZhciBpPUFycmF5LmlzQXJyYXkoZSksYT1BcnJheS5pc0FycmF5KHQpO2lmKGkmJmEpcmV0dXJuIGUubGVuZ3RoPT09dC5sZW5ndGgmJmUuZXZlcnkoZnVuY3Rpb24oZSxuKXtyZXR1cm4gTihlLHRbbl0pfSk7aWYoZSBpbnN0YW5jZW9mIERhdGUmJnQgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBlLmdldFRpbWUoKT09PXQuZ2V0VGltZSgpO2lmKGl8fGEpcmV0dXJuITE7dmFyIHM9T2JqZWN0LmtleXMoZSksYz1PYmplY3Qua2V5cyh0KTtyZXR1cm4gcy5sZW5ndGg9PT1jLmxlbmd0aCYmcy5ldmVyeShmdW5jdGlvbihuKXtyZXR1cm4gTihlW25dLHRbbl0pfSl9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIGooZSx0KXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylpZihOKGVbbl0sdCkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gRChlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24oKXt0fHwodD0hMCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciBMPVwiZGF0YS1zZXJ2ZXItcmVuZGVyZWRcIixNPVtcImNvbXBvbmVudFwiLFwiZGlyZWN0aXZlXCIsXCJmaWx0ZXJcIl0sST1bXCJiZWZvcmVDcmVhdGVcIixcImNyZWF0ZWRcIixcImJlZm9yZU1vdW50XCIsXCJtb3VudGVkXCIsXCJiZWZvcmVVcGRhdGVcIixcInVwZGF0ZWRcIixcImJlZm9yZURlc3Ryb3lcIixcImRlc3Ryb3llZFwiLFwiYWN0aXZhdGVkXCIsXCJkZWFjdGl2YXRlZFwiLFwiZXJyb3JDYXB0dXJlZFwiLFwic2VydmVyUHJlZmV0Y2hcIl0sRj17b3B0aW9uTWVyZ2VTdHJhdGVnaWVzOk9iamVjdC5jcmVhdGUobnVsbCksc2lsZW50OiExLHByb2R1Y3Rpb25UaXA6ITEsZGV2dG9vbHM6ITEscGVyZm9ybWFuY2U6ITEsZXJyb3JIYW5kbGVyOm51bGwsd2FybkhhbmRsZXI6bnVsbCxpZ25vcmVkRWxlbWVudHM6W10sa2V5Q29kZXM6T2JqZWN0LmNyZWF0ZShudWxsKSxpc1Jlc2VydmVkVGFnOlQsaXNSZXNlcnZlZEF0dHI6VCxpc1Vua25vd25FbGVtZW50OlQsZ2V0VGFnTmFtZXNwYWNlOlMscGFyc2VQbGF0Zm9ybVRhZ05hbWU6RSxtdXN0VXNlUHJvcDpULGFzeW5jOiEwLF9saWZlY3ljbGVIb29rczpJfSxQPS9hLXpBLVpcXHUwMEI3XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjAzRi1cXHUyMDQwXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZELztmdW5jdGlvbiBSKGUsdCxuLHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohIXIsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9dmFyIEg9bmV3IFJlZ0V4cChcIlteXCIrUC5zb3VyY2UrXCIuJF9cXFxcZF1cIik7dmFyIEIsVT1cIl9fcHJvdG9fX1wiaW57fSx6PVwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3csVj1cInVuZGVmaW5lZFwiIT10eXBlb2YgV1hFbnZpcm9ubWVudCYmISFXWEVudmlyb25tZW50LnBsYXRmb3JtLEs9ViYmV1hFbnZpcm9ubWVudC5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpLEo9eiYmd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSxxPUomJi9tc2llfHRyaWRlbnQvLnRlc3QoSiksVz1KJiZKLmluZGV4T2YoXCJtc2llIDkuMFwiKT4wLFo9SiYmSi5pbmRleE9mKFwiZWRnZS9cIik+MCxHPShKJiZKLmluZGV4T2YoXCJhbmRyb2lkXCIpLEomJi9pcGhvbmV8aXBhZHxpcG9kfGlvcy8udGVzdChKKXx8XCJpb3NcIj09PUspLFg9KEomJi9jaHJvbWVcXC9cXGQrLy50ZXN0KEopLEomJi9waGFudG9tanMvLnRlc3QoSiksSiYmSi5tYXRjaCgvZmlyZWZveFxcLyhcXGQrKS8pKSxZPXt9LndhdGNoLFE9ITE7aWYoeil0cnl7dmFyIGVlPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlZSxcInBhc3NpdmVcIix7Z2V0OmZ1bmN0aW9uKCl7UT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRlc3QtcGFzc2l2ZVwiLG51bGwsZWUpfWNhdGNoKGUpe312YXIgdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09QiYmKEI9IXomJiFWJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsJiYoZ2xvYmFsLnByb2Nlc3MmJlwic2VydmVyXCI9PT1nbG9iYWwucHJvY2Vzcy5lbnYuVlVFX0VOVikpLEJ9LG5lPXomJndpbmRvdy5fX1ZVRV9ERVZUT09MU19HTE9CQUxfSE9PS19fO2Z1bmN0aW9uIHJlKGUpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJi9uYXRpdmUgY29kZS8udGVzdChlLnRvU3RyaW5nKCkpfXZhciBpZSxvZT1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZyZShTeW1ib2wpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgUmVmbGVjdCYmcmUoUmVmbGVjdC5vd25LZXlzKTtpZT1cInVuZGVmaW5lZFwiIT10eXBlb2YgU2V0JiZyZShTZXQpP1NldDpmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLnNldD1PYmplY3QuY3JlYXRlKG51bGwpfXJldHVybiBlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oZSl7cmV0dXJuITA9PT10aGlzLnNldFtlXX0sZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe3RoaXMuc2V0W2VdPSEwfSxlLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2V0PU9iamVjdC5jcmVhdGUobnVsbCl9LGV9KCk7dmFyIGFlPVMsc2U9MCxjZT1mdW5jdGlvbigpe3RoaXMuaWQ9c2UrKyx0aGlzLnN1YnM9W119O2NlLnByb3RvdHlwZS5hZGRTdWI9ZnVuY3Rpb24oZSl7dGhpcy5zdWJzLnB1c2goZSl9LGNlLnByb3RvdHlwZS5yZW1vdmVTdWI9ZnVuY3Rpb24oZSl7aCh0aGlzLnN1YnMsZSl9LGNlLnByb3RvdHlwZS5kZXBlbmQ9ZnVuY3Rpb24oKXtjZS50YXJnZXQmJmNlLnRhcmdldC5hZGREZXAodGhpcyl9LGNlLnByb3RvdHlwZS5ub3RpZnk9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5zdWJzLnNsaWNlKCksdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyllW3RdLnVwZGF0ZSgpfSxjZS50YXJnZXQ9bnVsbDt2YXIgdWU9W107ZnVuY3Rpb24gbGUoZSl7dWUucHVzaChlKSxjZS50YXJnZXQ9ZX1mdW5jdGlvbiBmZSgpe3VlLnBvcCgpLGNlLnRhcmdldD11ZVt1ZS5sZW5ndGgtMV19dmFyIHBlPWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEscyl7dGhpcy50YWc9ZSx0aGlzLmRhdGE9dCx0aGlzLmNoaWxkcmVuPW4sdGhpcy50ZXh0PXIsdGhpcy5lbG09aSx0aGlzLm5zPXZvaWQgMCx0aGlzLmNvbnRleHQ9byx0aGlzLmZuQ29udGV4dD12b2lkIDAsdGhpcy5mbk9wdGlvbnM9dm9pZCAwLHRoaXMuZm5TY29wZUlkPXZvaWQgMCx0aGlzLmtleT10JiZ0LmtleSx0aGlzLmNvbXBvbmVudE9wdGlvbnM9YSx0aGlzLmNvbXBvbmVudEluc3RhbmNlPXZvaWQgMCx0aGlzLnBhcmVudD12b2lkIDAsdGhpcy5yYXc9ITEsdGhpcy5pc1N0YXRpYz0hMSx0aGlzLmlzUm9vdEluc2VydD0hMCx0aGlzLmlzQ29tbWVudD0hMSx0aGlzLmlzQ2xvbmVkPSExLHRoaXMuaXNPbmNlPSExLHRoaXMuYXN5bmNGYWN0b3J5PXMsdGhpcy5hc3luY01ldGE9dm9pZCAwLHRoaXMuaXNBc3luY1BsYWNlaG9sZGVyPSExfSxkZT17Y2hpbGQ6e2NvbmZpZ3VyYWJsZTohMH19O2RlLmNoaWxkLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbXBvbmVudEluc3RhbmNlfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhwZS5wcm90b3R5cGUsZGUpO3ZhciB2ZT1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT1cIlwiKTt2YXIgdD1uZXcgcGU7cmV0dXJuIHQudGV4dD1lLHQuaXNDb21tZW50PSEwLHR9O2Z1bmN0aW9uIGhlKGUpe3JldHVybiBuZXcgcGUodm9pZCAwLHZvaWQgMCx2b2lkIDAsU3RyaW5nKGUpKX1mdW5jdGlvbiBtZShlKXt2YXIgdD1uZXcgcGUoZS50YWcsZS5kYXRhLGUuY2hpbGRyZW4mJmUuY2hpbGRyZW4uc2xpY2UoKSxlLnRleHQsZS5lbG0sZS5jb250ZXh0LGUuY29tcG9uZW50T3B0aW9ucyxlLmFzeW5jRmFjdG9yeSk7cmV0dXJuIHQubnM9ZS5ucyx0LmlzU3RhdGljPWUuaXNTdGF0aWMsdC5rZXk9ZS5rZXksdC5pc0NvbW1lbnQ9ZS5pc0NvbW1lbnQsdC5mbkNvbnRleHQ9ZS5mbkNvbnRleHQsdC5mbk9wdGlvbnM9ZS5mbk9wdGlvbnMsdC5mblNjb3BlSWQ9ZS5mblNjb3BlSWQsdC5hc3luY01ldGE9ZS5hc3luY01ldGEsdC5pc0Nsb25lZD0hMCx0fXZhciB5ZT1BcnJheS5wcm90b3R5cGUsZ2U9T2JqZWN0LmNyZWF0ZSh5ZSk7W1wicHVzaFwiLFwicG9wXCIsXCJzaGlmdFwiLFwidW5zaGlmdFwiLFwic3BsaWNlXCIsXCJzb3J0XCIsXCJyZXZlcnNlXCJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9eWVbZV07UihnZSxlLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPVtdLHI9YXJndW1lbnRzLmxlbmd0aDtyLS07KW5bcl09YXJndW1lbnRzW3JdO3ZhciBpLG89dC5hcHBseSh0aGlzLG4pLGE9dGhpcy5fX29iX187c3dpdGNoKGUpe2Nhc2VcInB1c2hcIjpjYXNlXCJ1bnNoaWZ0XCI6aT1uO2JyZWFrO2Nhc2VcInNwbGljZVwiOmk9bi5zbGljZSgyKX1yZXR1cm4gaSYmYS5vYnNlcnZlQXJyYXkoaSksYS5kZXAubm90aWZ5KCksb30pfSk7dmFyIF9lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGdlKSxiZT0hMDtmdW5jdGlvbiAkZShlKXtiZT1lfXZhciB3ZT1mdW5jdGlvbihlKXt2YXIgdDt0aGlzLnZhbHVlPWUsdGhpcy5kZXA9bmV3IGNlLHRoaXMudm1Db3VudD0wLFIoZSxcIl9fb2JfX1wiLHRoaXMpLEFycmF5LmlzQXJyYXkoZSk/KFU/KHQ9Z2UsZS5fX3Byb3RvX189dCk6ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj0wLGk9bi5sZW5ndGg7cjxpO3IrKyl7dmFyIG89bltyXTtSKGUsbyx0W29dKX19KGUsZ2UsX2UpLHRoaXMub2JzZXJ2ZUFycmF5KGUpKTp0aGlzLndhbGsoZSl9O2Z1bmN0aW9uIENlKGUsdCl7dmFyIG47aWYobyhlKSYmIShlIGluc3RhbmNlb2YgcGUpKXJldHVybiB5KGUsXCJfX29iX19cIikmJmUuX19vYl9fIGluc3RhbmNlb2Ygd2U/bj1lLl9fb2JfXzpiZSYmIXRlKCkmJihBcnJheS5pc0FycmF5KGUpfHxzKGUpKSYmT2JqZWN0LmlzRXh0ZW5zaWJsZShlKSYmIWUuX2lzVnVlJiYobj1uZXcgd2UoZSkpLHQmJm4mJm4udm1Db3VudCsrLG59ZnVuY3Rpb24geGUoZSx0LG4scixpKXt2YXIgbz1uZXcgY2UsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7aWYoIWF8fCExIT09YS5jb25maWd1cmFibGUpe3ZhciBzPWEmJmEuZ2V0LGM9YSYmYS5zZXQ7cyYmIWN8fDIhPT1hcmd1bWVudHMubGVuZ3RofHwobj1lW3RdKTt2YXIgdT0haSYmQ2Uobik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9cz9zLmNhbGwoZSk6bjtyZXR1cm4gY2UudGFyZ2V0JiYoby5kZXBlbmQoKSx1JiYodS5kZXAuZGVwZW5kKCksQXJyYXkuaXNBcnJheSh0KSYmZnVuY3Rpb24gZSh0KXtmb3IodmFyIG49dm9pZCAwLHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspKG49dFtyXSkmJm4uX19vYl9fJiZuLl9fb2JfXy5kZXAuZGVwZW5kKCksQXJyYXkuaXNBcnJheShuKSYmZShuKX0odCkpKSx0fSxzZXQ6ZnVuY3Rpb24odCl7dmFyIHI9cz9zLmNhbGwoZSk6bjt0PT09cnx8dCE9dCYmciE9cnx8cyYmIWN8fChjP2MuY2FsbChlLHQpOm49dCx1PSFpJiZDZSh0KSxvLm5vdGlmeSgpKX19KX19ZnVuY3Rpb24ga2UoZSx0LG4pe2lmKEFycmF5LmlzQXJyYXkoZSkmJmModCkpcmV0dXJuIGUubGVuZ3RoPU1hdGgubWF4KGUubGVuZ3RoLHQpLGUuc3BsaWNlKHQsMSxuKSxuO2lmKHQgaW4gZSYmISh0IGluIE9iamVjdC5wcm90b3R5cGUpKXJldHVybiBlW3RdPW4sbjt2YXIgcj1lLl9fb2JfXztyZXR1cm4gZS5faXNWdWV8fHImJnIudm1Db3VudD9uOnI/KHhlKHIudmFsdWUsdCxuKSxyLmRlcC5ub3RpZnkoKSxuKTooZVt0XT1uLG4pfWZ1bmN0aW9uIEFlKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSYmYyh0KSllLnNwbGljZSh0LDEpO2Vsc2V7dmFyIG49ZS5fX29iX187ZS5faXNWdWV8fG4mJm4udm1Db3VudHx8eShlLHQpJiYoZGVsZXRlIGVbdF0sbiYmbi5kZXAubm90aWZ5KCkpfX13ZS5wcm90b3R5cGUud2Fsaz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9T2JqZWN0LmtleXMoZSksbj0wO248dC5sZW5ndGg7bisrKXhlKGUsdFtuXSl9LHdlLnByb3RvdHlwZS5vYnNlcnZlQXJyYXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKUNlKGVbdF0pfTt2YXIgT2U9Ri5vcHRpb25NZXJnZVN0cmF0ZWdpZXM7ZnVuY3Rpb24gU2UoZSx0KXtpZighdClyZXR1cm4gZTtmb3IodmFyIG4scixpLG89b2U/UmVmbGVjdC5vd25LZXlzKHQpOk9iamVjdC5rZXlzKHQpLGE9MDthPG8ubGVuZ3RoO2ErKylcIl9fb2JfX1wiIT09KG49b1thXSkmJihyPWVbbl0saT10W25dLHkoZSxuKT9yIT09aSYmcyhyKSYmcyhpKSYmU2UocixpKTprZShlLG4saSkpO3JldHVybiBlfWZ1bmN0aW9uIFRlKGUsdCxuKXtyZXR1cm4gbj9mdW5jdGlvbigpe3ZhciByPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dC5jYWxsKG4sbik6dCxpPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZS5jYWxsKG4sbik6ZTtyZXR1cm4gcj9TZShyLGkpOml9OnQ/ZT9mdW5jdGlvbigpe3JldHVybiBTZShcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QuY2FsbCh0aGlzLHRoaXMpOnQsXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmNhbGwodGhpcyx0aGlzKTplKX06dDplfWZ1bmN0aW9uIEVlKGUsdCl7dmFyIG49dD9lP2UuY29uY2F0KHQpOkFycmF5LmlzQXJyYXkodCk/dDpbdF06ZTtyZXR1cm4gbj9mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bisrKS0xPT09dC5pbmRleE9mKGVbbl0pJiZ0LnB1c2goZVtuXSk7cmV0dXJuIHR9KG4pOm59ZnVuY3Rpb24gTmUoZSx0LG4scil7dmFyIGk9T2JqZWN0LmNyZWF0ZShlfHxudWxsKTtyZXR1cm4gdD9BKGksdCk6aX1PZS5kYXRhPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbj9UZShlLHQsbik6dCYmXCJmdW5jdGlvblwiIT10eXBlb2YgdD9lOlRlKGUsdCl9LEkuZm9yRWFjaChmdW5jdGlvbihlKXtPZVtlXT1FZX0pLE0uZm9yRWFjaChmdW5jdGlvbihlKXtPZVtlK1wic1wiXT1OZX0pLE9lLndhdGNoPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKGU9PT1ZJiYoZT12b2lkIDApLHQ9PT1ZJiYodD12b2lkIDApLCF0KXJldHVybiBPYmplY3QuY3JlYXRlKGV8fG51bGwpO2lmKCFlKXJldHVybiB0O3ZhciBpPXt9O2Zvcih2YXIgbyBpbiBBKGksZSksdCl7dmFyIGE9aVtvXSxzPXRbb107YSYmIUFycmF5LmlzQXJyYXkoYSkmJihhPVthXSksaVtvXT1hP2EuY29uY2F0KHMpOkFycmF5LmlzQXJyYXkocyk/czpbc119cmV0dXJuIGl9LE9lLnByb3BzPU9lLm1ldGhvZHM9T2UuaW5qZWN0PU9lLmNvbXB1dGVkPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKCFlKXJldHVybiB0O3ZhciBpPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEEoaSxlKSx0JiZBKGksdCksaX0sT2UucHJvdmlkZT1UZTt2YXIgamU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dD9lOnR9O2Z1bmN0aW9uIERlKGUsdCxuKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0JiYodD10Lm9wdGlvbnMpLGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5wcm9wcztpZihuKXt2YXIgcixpLG89e307aWYoQXJyYXkuaXNBcnJheShuKSlmb3Iocj1uLmxlbmd0aDtyLS07KVwic3RyaW5nXCI9PXR5cGVvZihpPW5bcl0pJiYob1tiKGkpXT17dHlwZTpudWxsfSk7ZWxzZSBpZihzKG4pKWZvcih2YXIgYSBpbiBuKWk9blthXSxvW2IoYSldPXMoaSk/aTp7dHlwZTppfTtlLnByb3BzPW99fSh0KSxmdW5jdGlvbihlLHQpe3ZhciBuPWUuaW5qZWN0O2lmKG4pe3ZhciByPWUuaW5qZWN0PXt9O2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspcltuW2ldXT17ZnJvbTpuW2ldfTtlbHNlIGlmKHMobikpZm9yKHZhciBvIGluIG4pe3ZhciBhPW5bb107cltvXT1zKGEpP0Eoe2Zyb206b30sYSk6e2Zyb206YX19fX0odCksZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kaXJlY3RpdmVzO2lmKHQpZm9yKHZhciBuIGluIHQpe3ZhciByPXRbbl07XCJmdW5jdGlvblwiPT10eXBlb2YgciYmKHRbbl09e2JpbmQ6cix1cGRhdGU6cn0pfX0odCksIXQuX2Jhc2UmJih0LmV4dGVuZHMmJihlPURlKGUsdC5leHRlbmRzLG4pKSx0Lm1peGlucykpZm9yKHZhciByPTAsaT10Lm1peGlucy5sZW5ndGg7cjxpO3IrKyllPURlKGUsdC5taXhpbnNbcl0sbik7dmFyIG8sYT17fTtmb3IobyBpbiBlKWMobyk7Zm9yKG8gaW4gdCl5KGUsbyl8fGMobyk7ZnVuY3Rpb24gYyhyKXt2YXIgaT1PZVtyXXx8amU7YVtyXT1pKGVbcl0sdFtyXSxuLHIpfXJldHVybiBhfWZ1bmN0aW9uIExlKGUsdCxuLHIpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBuKXt2YXIgaT1lW3RdO2lmKHkoaSxuKSlyZXR1cm4gaVtuXTt2YXIgbz1iKG4pO2lmKHkoaSxvKSlyZXR1cm4gaVtvXTt2YXIgYT0kKG8pO3JldHVybiB5KGksYSk/aVthXTppW25dfHxpW29dfHxpW2FdfX1mdW5jdGlvbiBNZShlLHQsbixyKXt2YXIgaT10W2VdLG89IXkobixlKSxhPW5bZV0scz1QZShCb29sZWFuLGkudHlwZSk7aWYocz4tMSlpZihvJiYheShpLFwiZGVmYXVsdFwiKSlhPSExO2Vsc2UgaWYoXCJcIj09PWF8fGE9PT1DKGUpKXt2YXIgYz1QZShTdHJpbmcsaS50eXBlKTsoYzwwfHxzPGMpJiYoYT0hMCl9aWYodm9pZCAwPT09YSl7YT1mdW5jdGlvbihlLHQsbil7aWYoIXkodCxcImRlZmF1bHRcIikpcmV0dXJuO3ZhciByPXQuZGVmYXVsdDtpZihlJiZlLiRvcHRpb25zLnByb3BzRGF0YSYmdm9pZCAwPT09ZS4kb3B0aW9ucy5wcm9wc0RhdGFbbl0mJnZvaWQgMCE9PWUuX3Byb3BzW25dKXJldHVybiBlLl9wcm9wc1tuXTtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiByJiZcIkZ1bmN0aW9uXCIhPT1JZSh0LnR5cGUpP3IuY2FsbChlKTpyfShyLGksZSk7dmFyIHU9YmU7JGUoITApLENlKGEpLCRlKHUpfXJldHVybiBhfWZ1bmN0aW9uIEllKGUpe3ZhciB0PWUmJmUudG9TdHJpbmcoKS5tYXRjaCgvXlxccypmdW5jdGlvbiAoXFx3KykvKTtyZXR1cm4gdD90WzFdOlwiXCJ9ZnVuY3Rpb24gRmUoZSx0KXtyZXR1cm4gSWUoZSk9PT1JZSh0KX1mdW5jdGlvbiBQZShlLHQpe2lmKCFBcnJheS5pc0FycmF5KHQpKXJldHVybiBGZSh0LGUpPzA6LTE7Zm9yKHZhciBuPTAscj10Lmxlbmd0aDtuPHI7bisrKWlmKEZlKHRbbl0sZSkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gUmUoZSx0LG4pe2xlKCk7dHJ5e2lmKHQpZm9yKHZhciByPXQ7cj1yLiRwYXJlbnQ7KXt2YXIgaT1yLiRvcHRpb25zLmVycm9yQ2FwdHVyZWQ7aWYoaSlmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKyl0cnl7aWYoITE9PT1pW29dLmNhbGwocixlLHQsbikpcmV0dXJufWNhdGNoKGUpe0JlKGUscixcImVycm9yQ2FwdHVyZWQgaG9va1wiKX19QmUoZSx0LG4pfWZpbmFsbHl7ZmUoKX19ZnVuY3Rpb24gSGUoZSx0LG4scixpKXt2YXIgbzt0cnl7KG89bj9lLmFwcGx5KHQsbik6ZS5jYWxsKHQpKSYmIW8uX2lzVnVlJiZ1KG8pJiYhby5faGFuZGxlZCYmKG8uY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIFJlKGUscixpK1wiIChQcm9taXNlL2FzeW5jKVwiKX0pLG8uX2hhbmRsZWQ9ITApfWNhdGNoKGUpe1JlKGUscixpKX1yZXR1cm4gb31mdW5jdGlvbiBCZShlLHQsbil7aWYoRi5lcnJvckhhbmRsZXIpdHJ5e3JldHVybiBGLmVycm9ySGFuZGxlci5jYWxsKG51bGwsZSx0LG4pfWNhdGNoKHQpe3QhPT1lJiZVZSh0LG51bGwsXCJjb25maWcuZXJyb3JIYW5kbGVyXCIpfVVlKGUsdCxuKX1mdW5jdGlvbiBVZShlLHQsbil7aWYoIXomJiFWfHxcInVuZGVmaW5lZFwiPT10eXBlb2YgY29uc29sZSl0aHJvdyBlO2NvbnNvbGUuZXJyb3IoZSl9dmFyIHplLFZlPSExLEtlPVtdLEplPSExO2Z1bmN0aW9uIHFlKCl7SmU9ITE7dmFyIGU9S2Uuc2xpY2UoMCk7S2UubGVuZ3RoPTA7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSgpfWlmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBQcm9taXNlJiZyZShQcm9taXNlKSl7dmFyIFdlPVByb21pc2UucmVzb2x2ZSgpO3plPWZ1bmN0aW9uKCl7V2UudGhlbihxZSksRyYmc2V0VGltZW91dChTKX0sVmU9ITB9ZWxzZSBpZihxfHxcInVuZGVmaW5lZFwiPT10eXBlb2YgTXV0YXRpb25PYnNlcnZlcnx8IXJlKE11dGF0aW9uT2JzZXJ2ZXIpJiZcIltvYmplY3QgTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yXVwiIT09TXV0YXRpb25PYnNlcnZlci50b1N0cmluZygpKXplPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZXRJbW1lZGlhdGUmJnJlKHNldEltbWVkaWF0ZSk/ZnVuY3Rpb24oKXtzZXRJbW1lZGlhdGUocWUpfTpmdW5jdGlvbigpe3NldFRpbWVvdXQocWUsMCl9O2Vsc2V7dmFyIFplPTEsR2U9bmV3IE11dGF0aW9uT2JzZXJ2ZXIocWUpLFhlPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFN0cmluZyhaZSkpO0dlLm9ic2VydmUoWGUse2NoYXJhY3RlckRhdGE6ITB9KSx6ZT1mdW5jdGlvbigpe1plPShaZSsxKSUyLFhlLmRhdGE9U3RyaW5nKFplKX0sVmU9ITB9ZnVuY3Rpb24gWWUoZSx0KXt2YXIgbjtpZihLZS5wdXNoKGZ1bmN0aW9uKCl7aWYoZSl0cnl7ZS5jYWxsKHQpfWNhdGNoKGUpe1JlKGUsdCxcIm5leHRUaWNrXCIpfWVsc2UgbiYmbih0KX0pLEplfHwoSmU9ITAsemUoKSksIWUmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBQcm9taXNlKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtuPWV9KX12YXIgUWU9bmV3IGllO2Z1bmN0aW9uIGV0KGUpeyFmdW5jdGlvbiBlKHQsbil7dmFyIHIsaTt2YXIgYT1BcnJheS5pc0FycmF5KHQpO2lmKCFhJiYhbyh0KXx8T2JqZWN0LmlzRnJvemVuKHQpfHx0IGluc3RhbmNlb2YgcGUpcmV0dXJuO2lmKHQuX19vYl9fKXt2YXIgcz10Ll9fb2JfXy5kZXAuaWQ7aWYobi5oYXMocykpcmV0dXJuO24uYWRkKHMpfWlmKGEpZm9yKHI9dC5sZW5ndGg7ci0tOyllKHRbcl0sbik7ZWxzZSBmb3IoaT1PYmplY3Qua2V5cyh0KSxyPWkubGVuZ3RoO3ItLTspZSh0W2lbcl1dLG4pfShlLFFlKSxRZS5jbGVhcigpfXZhciB0dD1nKGZ1bmN0aW9uKGUpe3ZhciB0PVwiJlwiPT09ZS5jaGFyQXQoMCksbj1cIn5cIj09PShlPXQ/ZS5zbGljZSgxKTplKS5jaGFyQXQoMCkscj1cIiFcIj09PShlPW4/ZS5zbGljZSgxKTplKS5jaGFyQXQoMCk7cmV0dXJue25hbWU6ZT1yP2Uuc2xpY2UoMSk6ZSxvbmNlOm4sY2FwdHVyZTpyLHBhc3NpdmU6dH19KTtmdW5jdGlvbiBudChlLHQpe2Z1bmN0aW9uIG4oKXt2YXIgZT1hcmd1bWVudHMscj1uLmZucztpZighQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gSGUocixudWxsLGFyZ3VtZW50cyx0LFwidi1vbiBoYW5kbGVyXCIpO2Zvcih2YXIgaT1yLnNsaWNlKCksbz0wO288aS5sZW5ndGg7bysrKUhlKGlbb10sbnVsbCxlLHQsXCJ2LW9uIGhhbmRsZXJcIil9cmV0dXJuIG4uZm5zPWUsbn1mdW5jdGlvbiBydChlLG4saSxvLGEscyl7dmFyIGMsdSxsLGY7Zm9yKGMgaW4gZSl1PWVbY10sbD1uW2NdLGY9dHQoYyksdCh1KXx8KHQobCk/KHQodS5mbnMpJiYodT1lW2NdPW50KHUscykpLHIoZi5vbmNlKSYmKHU9ZVtjXT1hKGYubmFtZSx1LGYuY2FwdHVyZSkpLGkoZi5uYW1lLHUsZi5jYXB0dXJlLGYucGFzc2l2ZSxmLnBhcmFtcykpOnUhPT1sJiYobC5mbnM9dSxlW2NdPWwpKTtmb3IoYyBpbiBuKXQoZVtjXSkmJm8oKGY9dHQoYykpLm5hbWUsbltjXSxmLmNhcHR1cmUpfWZ1bmN0aW9uIGl0KGUsaSxvKXt2YXIgYTtlIGluc3RhbmNlb2YgcGUmJihlPWUuZGF0YS5ob29rfHwoZS5kYXRhLmhvb2s9e30pKTt2YXIgcz1lW2ldO2Z1bmN0aW9uIGMoKXtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxoKGEuZm5zLGMpfXQocyk/YT1udChbY10pOm4ocy5mbnMpJiZyKHMubWVyZ2VkKT8oYT1zKS5mbnMucHVzaChjKTphPW50KFtzLGNdKSxhLm1lcmdlZD0hMCxlW2ldPWF9ZnVuY3Rpb24gb3QoZSx0LHIsaSxvKXtpZihuKHQpKXtpZih5KHQscikpcmV0dXJuIGVbcl09dFtyXSxvfHxkZWxldGUgdFtyXSwhMDtpZih5KHQsaSkpcmV0dXJuIGVbcl09dFtpXSxvfHxkZWxldGUgdFtpXSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBhdChlKXtyZXR1cm4gaShlKT9baGUoZSldOkFycmF5LmlzQXJyYXkoZSk/ZnVuY3Rpb24gZShvLGEpe3ZhciBzPVtdO3ZhciBjLHUsbCxmO2ZvcihjPTA7YzxvLmxlbmd0aDtjKyspdCh1PW9bY10pfHxcImJvb2xlYW5cIj09dHlwZW9mIHV8fChsPXMubGVuZ3RoLTEsZj1zW2xdLEFycmF5LmlzQXJyYXkodSk/dS5sZW5ndGg+MCYmKHN0KCh1PWUodSwoYXx8XCJcIikrXCJfXCIrYykpWzBdKSYmc3QoZikmJihzW2xdPWhlKGYudGV4dCt1WzBdLnRleHQpLHUuc2hpZnQoKSkscy5wdXNoLmFwcGx5KHMsdSkpOmkodSk/c3QoZik/c1tsXT1oZShmLnRleHQrdSk6XCJcIiE9PXUmJnMucHVzaChoZSh1KSk6c3QodSkmJnN0KGYpP3NbbF09aGUoZi50ZXh0K3UudGV4dCk6KHIoby5faXNWTGlzdCkmJm4odS50YWcpJiZ0KHUua2V5KSYmbihhKSYmKHUua2V5PVwiX192bGlzdFwiK2ErXCJfXCIrYytcIl9fXCIpLHMucHVzaCh1KSkpO3JldHVybiBzfShlKTp2b2lkIDB9ZnVuY3Rpb24gc3QoZSl7cmV0dXJuIG4oZSkmJm4oZS50ZXh0KSYmITE9PT1lLmlzQ29tbWVudH1mdW5jdGlvbiBjdChlLHQpe2lmKGUpe2Zvcih2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9b2U/UmVmbGVjdC5vd25LZXlzKGUpOk9iamVjdC5rZXlzKGUpLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIG89cltpXTtpZihcIl9fb2JfX1wiIT09byl7Zm9yKHZhciBhPWVbb10uZnJvbSxzPXQ7czspe2lmKHMuX3Byb3ZpZGVkJiZ5KHMuX3Byb3ZpZGVkLGEpKXtuW29dPXMuX3Byb3ZpZGVkW2FdO2JyZWFrfXM9cy4kcGFyZW50fWlmKCFzJiZcImRlZmF1bHRcImluIGVbb10pe3ZhciBjPWVbb10uZGVmYXVsdDtuW29dPVwiZnVuY3Rpb25cIj09dHlwZW9mIGM/Yy5jYWxsKHQpOmN9fX1yZXR1cm4gbn19ZnVuY3Rpb24gdXQoZSx0KXtpZighZXx8IWUubGVuZ3RoKXJldHVybnt9O2Zvcih2YXIgbj17fSxyPTAsaT1lLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1lW3JdLGE9by5kYXRhO2lmKGEmJmEuYXR0cnMmJmEuYXR0cnMuc2xvdCYmZGVsZXRlIGEuYXR0cnMuc2xvdCxvLmNvbnRleHQhPT10JiZvLmZuQ29udGV4dCE9PXR8fCFhfHxudWxsPT1hLnNsb3QpKG4uZGVmYXVsdHx8KG4uZGVmYXVsdD1bXSkpLnB1c2gobyk7ZWxzZXt2YXIgcz1hLnNsb3QsYz1uW3NdfHwobltzXT1bXSk7XCJ0ZW1wbGF0ZVwiPT09by50YWc/Yy5wdXNoLmFwcGx5KGMsby5jaGlsZHJlbnx8W10pOmMucHVzaChvKX19Zm9yKHZhciB1IGluIG4pblt1XS5ldmVyeShsdCkmJmRlbGV0ZSBuW3VdO3JldHVybiBufWZ1bmN0aW9uIGx0KGUpe3JldHVybiBlLmlzQ29tbWVudCYmIWUuYXN5bmNGYWN0b3J5fHxcIiBcIj09PWUudGV4dH1mdW5jdGlvbiBmdCh0LG4scil7dmFyIGksbz1PYmplY3Qua2V5cyhuKS5sZW5ndGg+MCxhPXQ/ISF0LiRzdGFibGU6IW8scz10JiZ0LiRrZXk7aWYodCl7aWYodC5fbm9ybWFsaXplZClyZXR1cm4gdC5fbm9ybWFsaXplZDtpZihhJiZyJiZyIT09ZSYmcz09PXIuJGtleSYmIW8mJiFyLiRoYXNOb3JtYWwpcmV0dXJuIHI7Zm9yKHZhciBjIGluIGk9e30sdCl0W2NdJiZcIiRcIiE9PWNbMF0mJihpW2NdPXB0KG4sYyx0W2NdKSl9ZWxzZSBpPXt9O2Zvcih2YXIgdSBpbiBuKXUgaW4gaXx8KGlbdV09ZHQobix1KSk7cmV0dXJuIHQmJk9iamVjdC5pc0V4dGVuc2libGUodCkmJih0Ll9ub3JtYWxpemVkPWkpLFIoaSxcIiRzdGFibGVcIixhKSxSKGksXCIka2V5XCIscyksUihpLFwiJGhhc05vcm1hbFwiLG8pLGl9ZnVuY3Rpb24gcHQoZSx0LG4pe3ZhciByPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD9uLmFwcGx5KG51bGwsYXJndW1lbnRzKTpuKHt9KTtyZXR1cm4oZT1lJiZcIm9iamVjdFwiPT10eXBlb2YgZSYmIUFycmF5LmlzQXJyYXkoZSk/W2VdOmF0KGUpKSYmKDA9PT1lLmxlbmd0aHx8MT09PWUubGVuZ3RoJiZlWzBdLmlzQ29tbWVudCk/dm9pZCAwOmV9O3JldHVybiBuLnByb3h5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtnZXQ6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHJ9ZnVuY3Rpb24gZHQoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZVt0XX19ZnVuY3Rpb24gdnQoZSx0KXt2YXIgcixpLGEscyxjO2lmKEFycmF5LmlzQXJyYXkoZSl8fFwic3RyaW5nXCI9PXR5cGVvZiBlKWZvcihyPW5ldyBBcnJheShlLmxlbmd0aCksaT0wLGE9ZS5sZW5ndGg7aTxhO2krKylyW2ldPXQoZVtpXSxpKTtlbHNlIGlmKFwibnVtYmVyXCI9PXR5cGVvZiBlKWZvcihyPW5ldyBBcnJheShlKSxpPTA7aTxlO2krKylyW2ldPXQoaSsxLGkpO2Vsc2UgaWYobyhlKSlpZihvZSYmZVtTeW1ib2wuaXRlcmF0b3JdKXtyPVtdO2Zvcih2YXIgdT1lW1N5bWJvbC5pdGVyYXRvcl0oKSxsPXUubmV4dCgpOyFsLmRvbmU7KXIucHVzaCh0KGwudmFsdWUsci5sZW5ndGgpKSxsPXUubmV4dCgpfWVsc2UgZm9yKHM9T2JqZWN0LmtleXMoZSkscj1uZXcgQXJyYXkocy5sZW5ndGgpLGk9MCxhPXMubGVuZ3RoO2k8YTtpKyspYz1zW2ldLHJbaV09dChlW2NdLGMsaSk7cmV0dXJuIG4ocil8fChyPVtdKSxyLl9pc1ZMaXN0PSEwLHJ9ZnVuY3Rpb24gaHQoZSx0LG4scil7dmFyIGksbz10aGlzLiRzY29wZWRTbG90c1tlXTtvPyhuPW58fHt9LHImJihuPUEoQSh7fSxyKSxuKSksaT1vKG4pfHx0KTppPXRoaXMuJHNsb3RzW2VdfHx0O3ZhciBhPW4mJm4uc2xvdDtyZXR1cm4gYT90aGlzLiRjcmVhdGVFbGVtZW50KFwidGVtcGxhdGVcIix7c2xvdDphfSxpKTppfWZ1bmN0aW9uIG10KGUpe3JldHVybiBMZSh0aGlzLiRvcHRpb25zLFwiZmlsdGVyc1wiLGUpfHxFfWZ1bmN0aW9uIHl0KGUsdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/LTE9PT1lLmluZGV4T2YodCk6ZSE9PXR9ZnVuY3Rpb24gZ3QoZSx0LG4scixpKXt2YXIgbz1GLmtleUNvZGVzW3RdfHxuO3JldHVybiBpJiZyJiYhRi5rZXlDb2Rlc1t0XT95dChpLHIpOm8/eXQobyxlKTpyP0MocikhPT10OnZvaWQgMH1mdW5jdGlvbiBfdChlLHQsbixyLGkpe2lmKG4paWYobyhuKSl7dmFyIGE7QXJyYXkuaXNBcnJheShuKSYmKG49TyhuKSk7dmFyIHM9ZnVuY3Rpb24obyl7aWYoXCJjbGFzc1wiPT09b3x8XCJzdHlsZVwiPT09b3x8dihvKSlhPWU7ZWxzZXt2YXIgcz1lLmF0dHJzJiZlLmF0dHJzLnR5cGU7YT1yfHxGLm11c3RVc2VQcm9wKHQscyxvKT9lLmRvbVByb3BzfHwoZS5kb21Qcm9wcz17fSk6ZS5hdHRyc3x8KGUuYXR0cnM9e30pfXZhciBjPWIobyksdT1DKG8pO2MgaW4gYXx8dSBpbiBhfHwoYVtvXT1uW29dLGkmJigoZS5vbnx8KGUub249e30pKVtcInVwZGF0ZTpcIitvXT1mdW5jdGlvbihlKXtuW29dPWV9KSl9O2Zvcih2YXIgYyBpbiBuKXMoYyl9ZWxzZTtyZXR1cm4gZX1mdW5jdGlvbiBidChlLHQpe3ZhciBuPXRoaXMuX3N0YXRpY1RyZWVzfHwodGhpcy5fc3RhdGljVHJlZXM9W10pLHI9bltlXTtyZXR1cm4gciYmIXQ/cjood3Qocj1uW2VdPXRoaXMuJG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zW2VdLmNhbGwodGhpcy5fcmVuZGVyUHJveHksbnVsbCx0aGlzKSxcIl9fc3RhdGljX19cIitlLCExKSxyKX1mdW5jdGlvbiAkdChlLHQsbil7cmV0dXJuIHd0KGUsXCJfX29uY2VfX1wiK3QrKG4/XCJfXCIrbjpcIlwiKSwhMCksZX1mdW5jdGlvbiB3dChlLHQsbil7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyllW3JdJiZcInN0cmluZ1wiIT10eXBlb2YgZVtyXSYmQ3QoZVtyXSx0K1wiX1wiK3Isbik7ZWxzZSBDdChlLHQsbil9ZnVuY3Rpb24gQ3QoZSx0LG4pe2UuaXNTdGF0aWM9ITAsZS5rZXk9dCxlLmlzT25jZT1ufWZ1bmN0aW9uIHh0KGUsdCl7aWYodClpZihzKHQpKXt2YXIgbj1lLm9uPWUub24/QSh7fSxlLm9uKTp7fTtmb3IodmFyIHIgaW4gdCl7dmFyIGk9bltyXSxvPXRbcl07bltyXT1pP1tdLmNvbmNhdChpLG8pOm99fWVsc2U7cmV0dXJuIGV9ZnVuY3Rpb24ga3QoZSx0LG4scil7dD10fHx7JHN0YWJsZTohbn07Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBvPWVbaV07QXJyYXkuaXNBcnJheShvKT9rdChvLHQsbik6byYmKG8ucHJveHkmJihvLmZuLnByb3h5PSEwKSx0W28ua2V5XT1vLmZuKX1yZXR1cm4gciYmKHQuJGtleT1yKSx0fWZ1bmN0aW9uIEF0KGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKz0yKXt2YXIgcj10W25dO1wic3RyaW5nXCI9PXR5cGVvZiByJiZyJiYoZVt0W25dXT10W24rMV0pfXJldHVybiBlfWZ1bmN0aW9uIE90KGUsdCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGU/dCtlOmV9ZnVuY3Rpb24gU3QoZSl7ZS5fbz0kdCxlLl9uPWYsZS5fcz1sLGUuX2w9dnQsZS5fdD1odCxlLl9xPU4sZS5faT1qLGUuX209YnQsZS5fZj1tdCxlLl9rPWd0LGUuX2I9X3QsZS5fdj1oZSxlLl9lPXZlLGUuX3U9a3QsZS5fZz14dCxlLl9kPUF0LGUuX3A9T3R9ZnVuY3Rpb24gVHQodCxuLGksbyxhKXt2YXIgcyxjPXRoaXMsdT1hLm9wdGlvbnM7eShvLFwiX3VpZFwiKT8ocz1PYmplY3QuY3JlYXRlKG8pKS5fb3JpZ2luYWw9bzoocz1vLG89by5fb3JpZ2luYWwpO3ZhciBsPXIodS5fY29tcGlsZWQpLGY9IWw7dGhpcy5kYXRhPXQsdGhpcy5wcm9wcz1uLHRoaXMuY2hpbGRyZW49aSx0aGlzLnBhcmVudD1vLHRoaXMubGlzdGVuZXJzPXQub258fGUsdGhpcy5pbmplY3Rpb25zPWN0KHUuaW5qZWN0LG8pLHRoaXMuc2xvdHM9ZnVuY3Rpb24oKXtyZXR1cm4gYy4kc2xvdHN8fGZ0KHQuc2NvcGVkU2xvdHMsYy4kc2xvdHM9dXQoaSxvKSksYy4kc2xvdHN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwic2NvcGVkU2xvdHNcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnQodC5zY29wZWRTbG90cyx0aGlzLnNsb3RzKCkpfX0pLGwmJih0aGlzLiRvcHRpb25zPXUsdGhpcy4kc2xvdHM9dGhpcy5zbG90cygpLHRoaXMuJHNjb3BlZFNsb3RzPWZ0KHQuc2NvcGVkU2xvdHMsdGhpcy4kc2xvdHMpKSx1Ll9zY29wZUlkP3RoaXMuX2M9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9UHQocyxlLHQsbixyLGYpO3JldHVybiBpJiYhQXJyYXkuaXNBcnJheShpKSYmKGkuZm5TY29wZUlkPXUuX3Njb3BlSWQsaS5mbkNvbnRleHQ9byksaX06dGhpcy5fYz1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gUHQocyxlLHQsbixyLGYpfX1mdW5jdGlvbiBFdChlLHQsbixyLGkpe3ZhciBvPW1lKGUpO3JldHVybiBvLmZuQ29udGV4dD1uLG8uZm5PcHRpb25zPXIsdC5zbG90JiYoKG8uZGF0YXx8KG8uZGF0YT17fSkpLnNsb3Q9dC5zbG90KSxvfWZ1bmN0aW9uIE50KGUsdCl7Zm9yKHZhciBuIGluIHQpZVtiKG4pXT10W25dfVN0KFR0LnByb3RvdHlwZSk7dmFyIGp0PXtpbml0OmZ1bmN0aW9uKGUsdCl7aWYoZS5jb21wb25lbnRJbnN0YW5jZSYmIWUuY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkJiZlLmRhdGEua2VlcEFsaXZlKXt2YXIgcj1lO2p0LnByZXBhdGNoKHIscil9ZWxzZXsoZS5jb21wb25lbnRJbnN0YW5jZT1mdW5jdGlvbihlLHQpe3ZhciByPXtfaXNDb21wb25lbnQ6ITAsX3BhcmVudFZub2RlOmUscGFyZW50OnR9LGk9ZS5kYXRhLmlubGluZVRlbXBsYXRlO24oaSkmJihyLnJlbmRlcj1pLnJlbmRlcixyLnN0YXRpY1JlbmRlckZucz1pLnN0YXRpY1JlbmRlckZucyk7cmV0dXJuIG5ldyBlLmNvbXBvbmVudE9wdGlvbnMuQ3RvcihyKX0oZSxXdCkpLiRtb3VudCh0P2UuZWxtOnZvaWQgMCx0KX19LHByZXBhdGNoOmZ1bmN0aW9uKHQsbil7dmFyIHI9bi5jb21wb25lbnRPcHRpb25zOyFmdW5jdGlvbih0LG4scixpLG8pe3ZhciBhPWkuZGF0YS5zY29wZWRTbG90cyxzPXQuJHNjb3BlZFNsb3RzLGM9ISEoYSYmIWEuJHN0YWJsZXx8cyE9PWUmJiFzLiRzdGFibGV8fGEmJnQuJHNjb3BlZFNsb3RzLiRrZXkhPT1hLiRrZXkpLHU9ISEob3x8dC4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW58fGMpO3QuJG9wdGlvbnMuX3BhcmVudFZub2RlPWksdC4kdm5vZGU9aSx0Ll92bm9kZSYmKHQuX3Zub2RlLnBhcmVudD1pKTtpZih0LiRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbj1vLHQuJGF0dHJzPWkuZGF0YS5hdHRyc3x8ZSx0LiRsaXN0ZW5lcnM9cnx8ZSxuJiZ0LiRvcHRpb25zLnByb3BzKXskZSghMSk7Zm9yKHZhciBsPXQuX3Byb3BzLGY9dC4kb3B0aW9ucy5fcHJvcEtleXN8fFtdLHA9MDtwPGYubGVuZ3RoO3ArKyl7dmFyIGQ9ZltwXSx2PXQuJG9wdGlvbnMucHJvcHM7bFtkXT1NZShkLHYsbix0KX0kZSghMCksdC4kb3B0aW9ucy5wcm9wc0RhdGE9bn1yPXJ8fGU7dmFyIGg9dC4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO3QuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVycz1yLHF0KHQscixoKSx1JiYodC4kc2xvdHM9dXQobyxpLmNvbnRleHQpLHQuJGZvcmNlVXBkYXRlKCkpfShuLmNvbXBvbmVudEluc3RhbmNlPXQuY29tcG9uZW50SW5zdGFuY2Usci5wcm9wc0RhdGEsci5saXN0ZW5lcnMsbixyLmNoaWxkcmVuKX0saW5zZXJ0OmZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5jb250ZXh0LHI9ZS5jb21wb25lbnRJbnN0YW5jZTtyLl9pc01vdW50ZWR8fChyLl9pc01vdW50ZWQ9ITAsWXQocixcIm1vdW50ZWRcIikpLGUuZGF0YS5rZWVwQWxpdmUmJihuLl9pc01vdW50ZWQ/KCh0PXIpLl9pbmFjdGl2ZT0hMSxlbi5wdXNoKHQpKTpYdChyLCEwKSl9LGRlc3Ryb3k6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb21wb25lbnRJbnN0YW5jZTt0Ll9pc0Rlc3Ryb3llZHx8KGUuZGF0YS5rZWVwQWxpdmU/ZnVuY3Rpb24gZSh0LG4pe2lmKG4mJih0Ll9kaXJlY3RJbmFjdGl2ZT0hMCxHdCh0KSkpcmV0dXJuO2lmKCF0Ll9pbmFjdGl2ZSl7dC5faW5hY3RpdmU9ITA7Zm9yKHZhciByPTA7cjx0LiRjaGlsZHJlbi5sZW5ndGg7cisrKWUodC4kY2hpbGRyZW5bcl0pO1l0KHQsXCJkZWFjdGl2YXRlZFwiKX19KHQsITApOnQuJGRlc3Ryb3koKSl9fSxEdD1PYmplY3Qua2V5cyhqdCk7ZnVuY3Rpb24gTHQoaSxhLHMsYyxsKXtpZighdChpKSl7dmFyIGY9cy4kb3B0aW9ucy5fYmFzZTtpZihvKGkpJiYoaT1mLmV4dGVuZChpKSksXCJmdW5jdGlvblwiPT10eXBlb2YgaSl7dmFyIHA7aWYodChpLmNpZCkmJnZvaWQgMD09PShpPWZ1bmN0aW9uKGUsaSl7aWYocihlLmVycm9yKSYmbihlLmVycm9yQ29tcCkpcmV0dXJuIGUuZXJyb3JDb21wO2lmKG4oZS5yZXNvbHZlZCkpcmV0dXJuIGUucmVzb2x2ZWQ7dmFyIGE9SHQ7YSYmbihlLm93bmVycykmJi0xPT09ZS5vd25lcnMuaW5kZXhPZihhKSYmZS5vd25lcnMucHVzaChhKTtpZihyKGUubG9hZGluZykmJm4oZS5sb2FkaW5nQ29tcCkpcmV0dXJuIGUubG9hZGluZ0NvbXA7aWYoYSYmIW4oZS5vd25lcnMpKXt2YXIgcz1lLm93bmVycz1bYV0sYz0hMCxsPW51bGwsZj1udWxsO2EuJG9uKFwiaG9vazpkZXN0cm95ZWRcIixmdW5jdGlvbigpe3JldHVybiBoKHMsYSl9KTt2YXIgcD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPXMubGVuZ3RoO3Q8bjt0Kyspc1t0XS4kZm9yY2VVcGRhdGUoKTtlJiYocy5sZW5ndGg9MCxudWxsIT09bCYmKGNsZWFyVGltZW91dChsKSxsPW51bGwpLG51bGwhPT1mJiYoY2xlYXJUaW1lb3V0KGYpLGY9bnVsbCkpfSxkPUQoZnVuY3Rpb24odCl7ZS5yZXNvbHZlZD1CdCh0LGkpLGM/cy5sZW5ndGg9MDpwKCEwKX0pLHY9RChmdW5jdGlvbih0KXtuKGUuZXJyb3JDb21wKSYmKGUuZXJyb3I9ITAscCghMCkpfSksbT1lKGQsdik7cmV0dXJuIG8obSkmJih1KG0pP3QoZS5yZXNvbHZlZCkmJm0udGhlbihkLHYpOnUobS5jb21wb25lbnQpJiYobS5jb21wb25lbnQudGhlbihkLHYpLG4obS5lcnJvcikmJihlLmVycm9yQ29tcD1CdChtLmVycm9yLGkpKSxuKG0ubG9hZGluZykmJihlLmxvYWRpbmdDb21wPUJ0KG0ubG9hZGluZyxpKSwwPT09bS5kZWxheT9lLmxvYWRpbmc9ITA6bD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bD1udWxsLHQoZS5yZXNvbHZlZCkmJnQoZS5lcnJvcikmJihlLmxvYWRpbmc9ITAscCghMSkpfSxtLmRlbGF5fHwyMDApKSxuKG0udGltZW91dCkmJihmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtmPW51bGwsdChlLnJlc29sdmVkKSYmdihudWxsKX0sbS50aW1lb3V0KSkpKSxjPSExLGUubG9hZGluZz9lLmxvYWRpbmdDb21wOmUucmVzb2x2ZWR9fShwPWksZikpKXJldHVybiBmdW5jdGlvbihlLHQsbixyLGkpe3ZhciBvPXZlKCk7cmV0dXJuIG8uYXN5bmNGYWN0b3J5PWUsby5hc3luY01ldGE9e2RhdGE6dCxjb250ZXh0Om4sY2hpbGRyZW46cix0YWc6aX0sb30ocCxhLHMsYyxsKTthPWF8fHt9LCRuKGkpLG4oYS5tb2RlbCkmJmZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS5tb2RlbCYmZS5tb2RlbC5wcm9wfHxcInZhbHVlXCIsaT1lLm1vZGVsJiZlLm1vZGVsLmV2ZW50fHxcImlucHV0XCI7KHQuYXR0cnN8fCh0LmF0dHJzPXt9KSlbcl09dC5tb2RlbC52YWx1ZTt2YXIgbz10Lm9ufHwodC5vbj17fSksYT1vW2ldLHM9dC5tb2RlbC5jYWxsYmFjaztuKGEpPyhBcnJheS5pc0FycmF5KGEpPy0xPT09YS5pbmRleE9mKHMpOmEhPT1zKSYmKG9baV09W3NdLmNvbmNhdChhKSk6b1tpXT1zfShpLm9wdGlvbnMsYSk7dmFyIGQ9ZnVuY3Rpb24oZSxyLGkpe3ZhciBvPXIub3B0aW9ucy5wcm9wcztpZighdChvKSl7dmFyIGE9e30scz1lLmF0dHJzLGM9ZS5wcm9wcztpZihuKHMpfHxuKGMpKWZvcih2YXIgdSBpbiBvKXt2YXIgbD1DKHUpO290KGEsYyx1LGwsITApfHxvdChhLHMsdSxsLCExKX1yZXR1cm4gYX19KGEsaSk7aWYocihpLm9wdGlvbnMuZnVuY3Rpb25hbCkpcmV0dXJuIGZ1bmN0aW9uKHQscixpLG8sYSl7dmFyIHM9dC5vcHRpb25zLGM9e30sdT1zLnByb3BzO2lmKG4odSkpZm9yKHZhciBsIGluIHUpY1tsXT1NZShsLHUscnx8ZSk7ZWxzZSBuKGkuYXR0cnMpJiZOdChjLGkuYXR0cnMpLG4oaS5wcm9wcykmJk50KGMsaS5wcm9wcyk7dmFyIGY9bmV3IFR0KGksYyxhLG8sdCkscD1zLnJlbmRlci5jYWxsKG51bGwsZi5fYyxmKTtpZihwIGluc3RhbmNlb2YgcGUpcmV0dXJuIEV0KHAsaSxmLnBhcmVudCxzKTtpZihBcnJheS5pc0FycmF5KHApKXtmb3IodmFyIGQ9YXQocCl8fFtdLHY9bmV3IEFycmF5KGQubGVuZ3RoKSxoPTA7aDxkLmxlbmd0aDtoKyspdltoXT1FdChkW2hdLGksZi5wYXJlbnQscyk7cmV0dXJuIHZ9fShpLGQsYSxzLGMpO3ZhciB2PWEub247aWYoYS5vbj1hLm5hdGl2ZU9uLHIoaS5vcHRpb25zLmFic3RyYWN0KSl7dmFyIG09YS5zbG90O2E9e30sbSYmKGEuc2xvdD1tKX0hZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuaG9va3x8KGUuaG9vaz17fSksbj0wO248RHQubGVuZ3RoO24rKyl7dmFyIHI9RHRbbl0saT10W3JdLG89anRbcl07aT09PW98fGkmJmkuX21lcmdlZHx8KHRbcl09aT9NdChvLGkpOm8pfX0oYSk7dmFyIHk9aS5vcHRpb25zLm5hbWV8fGw7cmV0dXJuIG5ldyBwZShcInZ1ZS1jb21wb25lbnQtXCIraS5jaWQrKHk/XCItXCIreTpcIlwiKSxhLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHMse0N0b3I6aSxwcm9wc0RhdGE6ZCxsaXN0ZW5lcnM6dix0YWc6bCxjaGlsZHJlbjpjfSxwKX19fWZ1bmN0aW9uIE10KGUsdCl7dmFyIG49ZnVuY3Rpb24obixyKXtlKG4sciksdChuLHIpfTtyZXR1cm4gbi5fbWVyZ2VkPSEwLG59dmFyIEl0PTEsRnQ9MjtmdW5jdGlvbiBQdChlLGEscyxjLHUsbCl7cmV0dXJuKEFycmF5LmlzQXJyYXkocyl8fGkocykpJiYodT1jLGM9cyxzPXZvaWQgMCkscihsKSYmKHU9RnQpLGZ1bmN0aW9uKGUsaSxhLHMsYyl7aWYobihhKSYmbihhLl9fb2JfXykpcmV0dXJuIHZlKCk7bihhKSYmbihhLmlzKSYmKGk9YS5pcyk7aWYoIWkpcmV0dXJuIHZlKCk7QXJyYXkuaXNBcnJheShzKSYmXCJmdW5jdGlvblwiPT10eXBlb2Ygc1swXSYmKChhPWF8fHt9KS5zY29wZWRTbG90cz17ZGVmYXVsdDpzWzBdfSxzLmxlbmd0aD0wKTtjPT09RnQ/cz1hdChzKTpjPT09SXQmJihzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKEFycmF5LmlzQXJyYXkoZVt0XSkpcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sZSk7cmV0dXJuIGV9KHMpKTt2YXIgdSxsO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBpKXt2YXIgZjtsPWUuJHZub2RlJiZlLiR2bm9kZS5uc3x8Ri5nZXRUYWdOYW1lc3BhY2UoaSksdT1GLmlzUmVzZXJ2ZWRUYWcoaSk/bmV3IHBlKEYucGFyc2VQbGF0Zm9ybVRhZ05hbWUoaSksYSxzLHZvaWQgMCx2b2lkIDAsZSk6YSYmYS5wcmV8fCFuKGY9TGUoZS4kb3B0aW9ucyxcImNvbXBvbmVudHNcIixpKSk/bmV3IHBlKGksYSxzLHZvaWQgMCx2b2lkIDAsZSk6THQoZixhLGUscyxpKX1lbHNlIHU9THQoaSxhLGUscyk7cmV0dXJuIEFycmF5LmlzQXJyYXkodSk/dTpuKHUpPyhuKGwpJiZmdW5jdGlvbiBlKGksbyxhKXtpLm5zPW87XCJmb3JlaWduT2JqZWN0XCI9PT1pLnRhZyYmKG89dm9pZCAwLGE9ITApO2lmKG4oaS5jaGlsZHJlbikpZm9yKHZhciBzPTAsYz1pLmNoaWxkcmVuLmxlbmd0aDtzPGM7cysrKXt2YXIgdT1pLmNoaWxkcmVuW3NdO24odS50YWcpJiYodCh1Lm5zKXx8cihhKSYmXCJzdmdcIiE9PXUudGFnKSYmZSh1LG8sYSl9fSh1LGwpLG4oYSkmJmZ1bmN0aW9uKGUpe28oZS5zdHlsZSkmJmV0KGUuc3R5bGUpO28oZS5jbGFzcykmJmV0KGUuY2xhc3MpfShhKSx1KTp2ZSgpfShlLGEscyxjLHUpfXZhciBSdCxIdD1udWxsO2Z1bmN0aW9uIEJ0KGUsdCl7cmV0dXJuKGUuX19lc01vZHVsZXx8b2UmJlwiTW9kdWxlXCI9PT1lW1N5bWJvbC50b1N0cmluZ1RhZ10pJiYoZT1lLmRlZmF1bHQpLG8oZSk/dC5leHRlbmQoZSk6ZX1mdW5jdGlvbiBVdChlKXtyZXR1cm4gZS5pc0NvbW1lbnQmJmUuYXN5bmNGYWN0b3J5fWZ1bmN0aW9uIHp0KGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciByPWVbdF07aWYobihyKSYmKG4oci5jb21wb25lbnRPcHRpb25zKXx8VXQocikpKXJldHVybiByfX1mdW5jdGlvbiBWdChlLHQpe1J0LiRvbihlLHQpfWZ1bmN0aW9uIEt0KGUsdCl7UnQuJG9mZihlLHQpfWZ1bmN0aW9uIEp0KGUsdCl7dmFyIG49UnQ7cmV0dXJuIGZ1bmN0aW9uIHIoKXtudWxsIT09dC5hcHBseShudWxsLGFyZ3VtZW50cykmJm4uJG9mZihlLHIpfX1mdW5jdGlvbiBxdChlLHQsbil7UnQ9ZSxydCh0LG58fHt9LFZ0LEt0LEp0LGUpLFJ0PXZvaWQgMH12YXIgV3Q9bnVsbDtmdW5jdGlvbiBadChlKXt2YXIgdD1XdDtyZXR1cm4gV3Q9ZSxmdW5jdGlvbigpe1d0PXR9fWZ1bmN0aW9uIEd0KGUpe2Zvcig7ZSYmKGU9ZS4kcGFyZW50KTspaWYoZS5faW5hY3RpdmUpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gWHQoZSx0KXtpZih0KXtpZihlLl9kaXJlY3RJbmFjdGl2ZT0hMSxHdChlKSlyZXR1cm59ZWxzZSBpZihlLl9kaXJlY3RJbmFjdGl2ZSlyZXR1cm47aWYoZS5faW5hY3RpdmV8fG51bGw9PT1lLl9pbmFjdGl2ZSl7ZS5faW5hY3RpdmU9ITE7Zm9yKHZhciBuPTA7bjxlLiRjaGlsZHJlbi5sZW5ndGg7bisrKVh0KGUuJGNoaWxkcmVuW25dKTtZdChlLFwiYWN0aXZhdGVkXCIpfX1mdW5jdGlvbiBZdChlLHQpe2xlKCk7dmFyIG49ZS4kb3B0aW9uc1t0XSxyPXQrXCIgaG9va1wiO2lmKG4pZm9yKHZhciBpPTAsbz1uLmxlbmd0aDtpPG87aSsrKUhlKG5baV0sZSxudWxsLGUscik7ZS5faGFzSG9va0V2ZW50JiZlLiRlbWl0KFwiaG9vazpcIit0KSxmZSgpfXZhciBRdD1bXSxlbj1bXSx0bj17fSxubj0hMSxybj0hMSxvbj0wO3ZhciBhbj0wLHNuPURhdGUubm93O2lmKHomJiFxKXt2YXIgY249d2luZG93LnBlcmZvcm1hbmNlO2NuJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBjbi5ub3cmJnNuKCk+ZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJFdmVudFwiKS50aW1lU3RhbXAmJihzbj1mdW5jdGlvbigpe3JldHVybiBjbi5ub3coKX0pfWZ1bmN0aW9uIHVuKCl7dmFyIGUsdDtmb3IoYW49c24oKSxybj0hMCxRdC5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaWQtdC5pZH0pLG9uPTA7b248UXQubGVuZ3RoO29uKyspKGU9UXRbb25dKS5iZWZvcmUmJmUuYmVmb3JlKCksdD1lLmlkLHRuW3RdPW51bGwsZS5ydW4oKTt2YXIgbj1lbi5zbGljZSgpLHI9UXQuc2xpY2UoKTtvbj1RdC5sZW5ndGg9ZW4ubGVuZ3RoPTAsdG49e30sbm49cm49ITEsZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5faW5hY3RpdmU9ITAsWHQoZVt0XSwhMCl9KG4pLGZ1bmN0aW9uKGUpe3ZhciB0PWUubGVuZ3RoO2Zvcig7dC0tOyl7dmFyIG49ZVt0XSxyPW4udm07ci5fd2F0Y2hlcj09PW4mJnIuX2lzTW91bnRlZCYmIXIuX2lzRGVzdHJveWVkJiZZdChyLFwidXBkYXRlZFwiKX19KHIpLG5lJiZGLmRldnRvb2xzJiZuZS5lbWl0KFwiZmx1c2hcIil9dmFyIGxuPTAsZm49ZnVuY3Rpb24oZSx0LG4scixpKXt0aGlzLnZtPWUsaSYmKGUuX3dhdGNoZXI9dGhpcyksZS5fd2F0Y2hlcnMucHVzaCh0aGlzKSxyPyh0aGlzLmRlZXA9ISFyLmRlZXAsdGhpcy51c2VyPSEhci51c2VyLHRoaXMubGF6eT0hIXIubGF6eSx0aGlzLnN5bmM9ISFyLnN5bmMsdGhpcy5iZWZvcmU9ci5iZWZvcmUpOnRoaXMuZGVlcD10aGlzLnVzZXI9dGhpcy5sYXp5PXRoaXMuc3luYz0hMSx0aGlzLmNiPW4sdGhpcy5pZD0rK2xuLHRoaXMuYWN0aXZlPSEwLHRoaXMuZGlydHk9dGhpcy5sYXp5LHRoaXMuZGVwcz1bXSx0aGlzLm5ld0RlcHM9W10sdGhpcy5kZXBJZHM9bmV3IGllLHRoaXMubmV3RGVwSWRzPW5ldyBpZSx0aGlzLmV4cHJlc3Npb249XCJcIixcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3RoaXMuZ2V0dGVyPXQ6KHRoaXMuZ2V0dGVyPWZ1bmN0aW9uKGUpe2lmKCFILnRlc3QoZSkpe3ZhciB0PWUuc3BsaXQoXCIuXCIpO3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7aWYoIWUpcmV0dXJuO2U9ZVt0W25dXX1yZXR1cm4gZX19fSh0KSx0aGlzLmdldHRlcnx8KHRoaXMuZ2V0dGVyPVMpKSx0aGlzLnZhbHVlPXRoaXMubGF6eT92b2lkIDA6dGhpcy5nZXQoKX07Zm4ucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3ZhciBlO2xlKHRoaXMpO3ZhciB0PXRoaXMudm07dHJ5e2U9dGhpcy5nZXR0ZXIuY2FsbCh0LHQpfWNhdGNoKGUpe2lmKCF0aGlzLnVzZXIpdGhyb3cgZTtSZShlLHQsJ2dldHRlciBmb3Igd2F0Y2hlciBcIicrdGhpcy5leHByZXNzaW9uKydcIicpfWZpbmFsbHl7dGhpcy5kZWVwJiZldChlKSxmZSgpLHRoaXMuY2xlYW51cERlcHMoKX1yZXR1cm4gZX0sZm4ucHJvdG90eXBlLmFkZERlcD1mdW5jdGlvbihlKXt2YXIgdD1lLmlkO3RoaXMubmV3RGVwSWRzLmhhcyh0KXx8KHRoaXMubmV3RGVwSWRzLmFkZCh0KSx0aGlzLm5ld0RlcHMucHVzaChlKSx0aGlzLmRlcElkcy5oYXModCl8fGUuYWRkU3ViKHRoaXMpKX0sZm4ucHJvdG90eXBlLmNsZWFudXBEZXBzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuZGVwcy5sZW5ndGg7ZS0tOyl7dmFyIHQ9dGhpcy5kZXBzW2VdO3RoaXMubmV3RGVwSWRzLmhhcyh0LmlkKXx8dC5yZW1vdmVTdWIodGhpcyl9dmFyIG49dGhpcy5kZXBJZHM7dGhpcy5kZXBJZHM9dGhpcy5uZXdEZXBJZHMsdGhpcy5uZXdEZXBJZHM9bix0aGlzLm5ld0RlcElkcy5jbGVhcigpLG49dGhpcy5kZXBzLHRoaXMuZGVwcz10aGlzLm5ld0RlcHMsdGhpcy5uZXdEZXBzPW4sdGhpcy5uZXdEZXBzLmxlbmd0aD0wfSxmbi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5sYXp5P3RoaXMuZGlydHk9ITA6dGhpcy5zeW5jP3RoaXMucnVuKCk6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pZDtpZihudWxsPT10blt0XSl7aWYodG5bdF09ITAscm4pe2Zvcih2YXIgbj1RdC5sZW5ndGgtMTtuPm9uJiZRdFtuXS5pZD5lLmlkOyluLS07UXQuc3BsaWNlKG4rMSwwLGUpfWVsc2UgUXQucHVzaChlKTtubnx8KG5uPSEwLFllKHVuKSl9fSh0aGlzKX0sZm4ucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt2YXIgZT10aGlzLmdldCgpO2lmKGUhPT10aGlzLnZhbHVlfHxvKGUpfHx0aGlzLmRlZXApe3ZhciB0PXRoaXMudmFsdWU7aWYodGhpcy52YWx1ZT1lLHRoaXMudXNlcil0cnl7dGhpcy5jYi5jYWxsKHRoaXMudm0sZSx0KX1jYXRjaChlKXtSZShlLHRoaXMudm0sJ2NhbGxiYWNrIGZvciB3YXRjaGVyIFwiJyt0aGlzLmV4cHJlc3Npb24rJ1wiJyl9ZWxzZSB0aGlzLmNiLmNhbGwodGhpcy52bSxlLHQpfX19LGZuLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5nZXQoKSx0aGlzLmRpcnR5PSExfSxmbi5wcm90b3R5cGUuZGVwZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuZGVwcy5sZW5ndGg7ZS0tOyl0aGlzLmRlcHNbZV0uZGVwZW5kKCl9LGZuLnByb3RvdHlwZS50ZWFyZG93bj1mdW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt0aGlzLnZtLl9pc0JlaW5nRGVzdHJveWVkfHxoKHRoaXMudm0uX3dhdGNoZXJzLHRoaXMpO2Zvcih2YXIgZT10aGlzLmRlcHMubGVuZ3RoO2UtLTspdGhpcy5kZXBzW2VdLnJlbW92ZVN1Yih0aGlzKTt0aGlzLmFjdGl2ZT0hMX19O3ZhciBwbj17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OlMsc2V0OlN9O2Z1bmN0aW9uIGRuKGUsdCxuKXtwbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t0XVtuXX0scG4uc2V0PWZ1bmN0aW9uKGUpe3RoaXNbdF1bbl09ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixwbil9ZnVuY3Rpb24gdm4oZSl7ZS5fd2F0Y2hlcnM9W107dmFyIHQ9ZS4kb3B0aW9uczt0LnByb3BzJiZmdW5jdGlvbihlLHQpe3ZhciBuPWUuJG9wdGlvbnMucHJvcHNEYXRhfHx7fSxyPWUuX3Byb3BzPXt9LGk9ZS4kb3B0aW9ucy5fcHJvcEtleXM9W107ZS4kcGFyZW50JiYkZSghMSk7dmFyIG89ZnVuY3Rpb24obyl7aS5wdXNoKG8pO3ZhciBhPU1lKG8sdCxuLGUpO3hlKHIsbyxhKSxvIGluIGV8fGRuKGUsXCJfcHJvcHNcIixvKX07Zm9yKHZhciBhIGluIHQpbyhhKTskZSghMCl9KGUsdC5wcm9wcyksdC5tZXRob2RzJiZmdW5jdGlvbihlLHQpe2UuJG9wdGlvbnMucHJvcHM7Zm9yKHZhciBuIGluIHQpZVtuXT1cImZ1bmN0aW9uXCIhPXR5cGVvZiB0W25dP1M6eCh0W25dLGUpfShlLHQubWV0aG9kcyksdC5kYXRhP2Z1bmN0aW9uKGUpe3ZhciB0PWUuJG9wdGlvbnMuZGF0YTtzKHQ9ZS5fZGF0YT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKGUsdCl7bGUoKTt0cnl7cmV0dXJuIGUuY2FsbCh0LHQpfWNhdGNoKGUpe3JldHVybiBSZShlLHQsXCJkYXRhKClcIikse319ZmluYWxseXtmZSgpfX0odCxlKTp0fHx7fSl8fCh0PXt9KTt2YXIgbj1PYmplY3Qua2V5cyh0KSxyPWUuJG9wdGlvbnMucHJvcHMsaT0oZS4kb3B0aW9ucy5tZXRob2RzLG4ubGVuZ3RoKTtmb3IoO2ktLTspe3ZhciBvPW5baV07ciYmeShyLG8pfHwoYT12b2lkIDAsMzYhPT0oYT0obytcIlwiKS5jaGFyQ29kZUF0KDApKSYmOTUhPT1hJiZkbihlLFwiX2RhdGFcIixvKSl9dmFyIGE7Q2UodCwhMCl9KGUpOkNlKGUuX2RhdGE9e30sITApLHQuY29tcHV0ZWQmJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5fY29tcHV0ZWRXYXRjaGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHI9dGUoKTtmb3IodmFyIGkgaW4gdCl7dmFyIG89dFtpXSxhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG8/bzpvLmdldDtyfHwobltpXT1uZXcgZm4oZSxhfHxTLFMsaG4pKSxpIGluIGV8fG1uKGUsaSxvKX19KGUsdC5jb21wdXRlZCksdC53YXRjaCYmdC53YXRjaCE9PVkmJmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpe3ZhciByPXRbbl07aWYoQXJyYXkuaXNBcnJheShyKSlmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKylfbihlLG4scltpXSk7ZWxzZSBfbihlLG4scil9fShlLHQud2F0Y2gpfXZhciBobj17bGF6eTohMH07ZnVuY3Rpb24gbW4oZSx0LG4pe3ZhciByPSF0ZSgpO1wiZnVuY3Rpb25cIj09dHlwZW9mIG4/KHBuLmdldD1yP3luKHQpOmduKG4pLHBuLnNldD1TKToocG4uZ2V0PW4uZ2V0P3ImJiExIT09bi5jYWNoZT95bih0KTpnbihuLmdldCk6Uyxwbi5zZXQ9bi5zZXR8fFMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQscG4pfWZ1bmN0aW9uIHluKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbXB1dGVkV2F0Y2hlcnMmJnRoaXMuX2NvbXB1dGVkV2F0Y2hlcnNbZV07aWYodClyZXR1cm4gdC5kaXJ0eSYmdC5ldmFsdWF0ZSgpLGNlLnRhcmdldCYmdC5kZXBlbmQoKSx0LnZhbHVlfX1mdW5jdGlvbiBnbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHRoaXMsdGhpcyl9fWZ1bmN0aW9uIF9uKGUsdCxuLHIpe3JldHVybiBzKG4pJiYocj1uLG49bi5oYW5kbGVyKSxcInN0cmluZ1wiPT10eXBlb2YgbiYmKG49ZVtuXSksZS4kd2F0Y2godCxuLHIpfXZhciBibj0wO2Z1bmN0aW9uICRuKGUpe3ZhciB0PWUub3B0aW9ucztpZihlLnN1cGVyKXt2YXIgbj0kbihlLnN1cGVyKTtpZihuIT09ZS5zdXBlck9wdGlvbnMpe2Uuc3VwZXJPcHRpb25zPW47dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLm9wdGlvbnMscj1lLnNlYWxlZE9wdGlvbnM7Zm9yKHZhciBpIGluIG4pbltpXSE9PXJbaV0mJih0fHwodD17fSksdFtpXT1uW2ldKTtyZXR1cm4gdH0oZSk7ciYmQShlLmV4dGVuZE9wdGlvbnMsciksKHQ9ZS5vcHRpb25zPURlKG4sZS5leHRlbmRPcHRpb25zKSkubmFtZSYmKHQuY29tcG9uZW50c1t0Lm5hbWVdPWUpfX1yZXR1cm4gdH1mdW5jdGlvbiB3bihlKXt0aGlzLl9pbml0KGUpfWZ1bmN0aW9uIENuKGUpe2UuY2lkPTA7dmFyIHQ9MTtlLmV4dGVuZD1mdW5jdGlvbihlKXtlPWV8fHt9O3ZhciBuPXRoaXMscj1uLmNpZCxpPWUuX0N0b3J8fChlLl9DdG9yPXt9KTtpZihpW3JdKXJldHVybiBpW3JdO3ZhciBvPWUubmFtZXx8bi5vcHRpb25zLm5hbWUsYT1mdW5jdGlvbihlKXt0aGlzLl9pbml0KGUpfTtyZXR1cm4oYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPWEsYS5jaWQ9dCsrLGEub3B0aW9ucz1EZShuLm9wdGlvbnMsZSksYS5zdXBlcj1uLGEub3B0aW9ucy5wcm9wcyYmZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcHRpb25zLnByb3BzO2Zvcih2YXIgbiBpbiB0KWRuKGUucHJvdG90eXBlLFwiX3Byb3BzXCIsbil9KGEpLGEub3B0aW9ucy5jb21wdXRlZCYmZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcHRpb25zLmNvbXB1dGVkO2Zvcih2YXIgbiBpbiB0KW1uKGUucHJvdG90eXBlLG4sdFtuXSl9KGEpLGEuZXh0ZW5kPW4uZXh0ZW5kLGEubWl4aW49bi5taXhpbixhLnVzZT1uLnVzZSxNLmZvckVhY2goZnVuY3Rpb24oZSl7YVtlXT1uW2VdfSksbyYmKGEub3B0aW9ucy5jb21wb25lbnRzW29dPWEpLGEuc3VwZXJPcHRpb25zPW4ub3B0aW9ucyxhLmV4dGVuZE9wdGlvbnM9ZSxhLnNlYWxlZE9wdGlvbnM9QSh7fSxhLm9wdGlvbnMpLGlbcl09YSxhfX1mdW5jdGlvbiB4bihlKXtyZXR1cm4gZSYmKGUuQ3Rvci5vcHRpb25zLm5hbWV8fGUudGFnKX1mdW5jdGlvbiBrbihlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2UuaW5kZXhPZih0KT4tMTpcInN0cmluZ1wiPT10eXBlb2YgZT9lLnNwbGl0KFwiLFwiKS5pbmRleE9mKHQpPi0xOihuPWUsXCJbb2JqZWN0IFJlZ0V4cF1cIj09PWEuY2FsbChuKSYmZS50ZXN0KHQpKTt2YXIgbn1mdW5jdGlvbiBBbihlLHQpe3ZhciBuPWUuY2FjaGUscj1lLmtleXMsaT1lLl92bm9kZTtmb3IodmFyIG8gaW4gbil7dmFyIGE9bltvXTtpZihhKXt2YXIgcz14bihhLmNvbXBvbmVudE9wdGlvbnMpO3MmJiF0KHMpJiZPbihuLG8scixpKX19fWZ1bmN0aW9uIE9uKGUsdCxuLHIpe3ZhciBpPWVbdF07IWl8fHImJmkudGFnPT09ci50YWd8fGkuY29tcG9uZW50SW5zdGFuY2UuJGRlc3Ryb3koKSxlW3RdPW51bGwsaChuLHQpfSFmdW5jdGlvbih0KXt0LnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0KXt2YXIgbj10aGlzO24uX3VpZD1ibisrLG4uX2lzVnVlPSEwLHQmJnQuX2lzQ29tcG9uZW50P2Z1bmN0aW9uKGUsdCl7dmFyIG49ZS4kb3B0aW9ucz1PYmplY3QuY3JlYXRlKGUuY29uc3RydWN0b3Iub3B0aW9ucykscj10Ll9wYXJlbnRWbm9kZTtuLnBhcmVudD10LnBhcmVudCxuLl9wYXJlbnRWbm9kZT1yO3ZhciBpPXIuY29tcG9uZW50T3B0aW9ucztuLnByb3BzRGF0YT1pLnByb3BzRGF0YSxuLl9wYXJlbnRMaXN0ZW5lcnM9aS5saXN0ZW5lcnMsbi5fcmVuZGVyQ2hpbGRyZW49aS5jaGlsZHJlbixuLl9jb21wb25lbnRUYWc9aS50YWcsdC5yZW5kZXImJihuLnJlbmRlcj10LnJlbmRlcixuLnN0YXRpY1JlbmRlckZucz10LnN0YXRpY1JlbmRlckZucyl9KG4sdCk6bi4kb3B0aW9ucz1EZSgkbihuLmNvbnN0cnVjdG9yKSx0fHx7fSxuKSxuLl9yZW5kZXJQcm94eT1uLG4uX3NlbGY9bixmdW5jdGlvbihlKXt2YXIgdD1lLiRvcHRpb25zLG49dC5wYXJlbnQ7aWYobiYmIXQuYWJzdHJhY3Qpe2Zvcig7bi4kb3B0aW9ucy5hYnN0cmFjdCYmbi4kcGFyZW50OyluPW4uJHBhcmVudDtuLiRjaGlsZHJlbi5wdXNoKGUpfWUuJHBhcmVudD1uLGUuJHJvb3Q9bj9uLiRyb290OmUsZS4kY2hpbGRyZW49W10sZS4kcmVmcz17fSxlLl93YXRjaGVyPW51bGwsZS5faW5hY3RpdmU9bnVsbCxlLl9kaXJlY3RJbmFjdGl2ZT0hMSxlLl9pc01vdW50ZWQ9ITEsZS5faXNEZXN0cm95ZWQ9ITEsZS5faXNCZWluZ0Rlc3Ryb3llZD0hMX0obiksZnVuY3Rpb24oZSl7ZS5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksZS5faGFzSG9va0V2ZW50PSExO3ZhciB0PWUuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVyczt0JiZxdChlLHQpfShuKSxmdW5jdGlvbih0KXt0Ll92bm9kZT1udWxsLHQuX3N0YXRpY1RyZWVzPW51bGw7dmFyIG49dC4kb3B0aW9ucyxyPXQuJHZub2RlPW4uX3BhcmVudFZub2RlLGk9ciYmci5jb250ZXh0O3QuJHNsb3RzPXV0KG4uX3JlbmRlckNoaWxkcmVuLGkpLHQuJHNjb3BlZFNsb3RzPWUsdC5fYz1mdW5jdGlvbihlLG4scixpKXtyZXR1cm4gUHQodCxlLG4scixpLCExKX0sdC4kY3JlYXRlRWxlbWVudD1mdW5jdGlvbihlLG4scixpKXtyZXR1cm4gUHQodCxlLG4scixpLCEwKX07dmFyIG89ciYmci5kYXRhO3hlKHQsXCIkYXR0cnNcIixvJiZvLmF0dHJzfHxlLG51bGwsITApLHhlKHQsXCIkbGlzdGVuZXJzXCIsbi5fcGFyZW50TGlzdGVuZXJzfHxlLG51bGwsITApfShuKSxZdChuLFwiYmVmb3JlQ3JlYXRlXCIpLGZ1bmN0aW9uKGUpe3ZhciB0PWN0KGUuJG9wdGlvbnMuaW5qZWN0LGUpO3QmJigkZSghMSksT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXt4ZShlLG4sdFtuXSl9KSwkZSghMCkpfShuKSx2bihuKSxmdW5jdGlvbihlKXt2YXIgdD1lLiRvcHRpb25zLnByb3ZpZGU7dCYmKGUuX3Byb3ZpZGVkPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dC5jYWxsKGUpOnQpfShuKSxZdChuLFwiY3JlYXRlZFwiKSxuLiRvcHRpb25zLmVsJiZuLiRtb3VudChuLiRvcHRpb25zLmVsKX19KHduKSxmdW5jdGlvbihlKXt2YXIgdD17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RhdGF9fSxuPXtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvcHN9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCIkZGF0YVwiLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIiRwcm9wc1wiLG4pLGUucHJvdG90eXBlLiRzZXQ9a2UsZS5wcm90b3R5cGUuJGRlbGV0ZT1BZSxlLnByb3RvdHlwZS4kd2F0Y2g9ZnVuY3Rpb24oZSx0LG4pe2lmKHModCkpcmV0dXJuIF9uKHRoaXMsZSx0LG4pOyhuPW58fHt9KS51c2VyPSEwO3ZhciByPW5ldyBmbih0aGlzLGUsdCxuKTtpZihuLmltbWVkaWF0ZSl0cnl7dC5jYWxsKHRoaXMsci52YWx1ZSl9Y2F0Y2goZSl7UmUoZSx0aGlzLCdjYWxsYmFjayBmb3IgaW1tZWRpYXRlIHdhdGNoZXIgXCInK3IuZXhwcmVzc2lvbisnXCInKX1yZXR1cm4gZnVuY3Rpb24oKXtyLnRlYXJkb3duKCl9fX0od24pLGZ1bmN0aW9uKGUpe3ZhciB0PS9eaG9vazovO2UucHJvdG90eXBlLiRvbj1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIGk9MCxvPWUubGVuZ3RoO2k8bztpKyspci4kb24oZVtpXSxuKTtlbHNlKHIuX2V2ZW50c1tlXXx8KHIuX2V2ZW50c1tlXT1bXSkpLnB1c2gobiksdC50ZXN0KGUpJiYoci5faGFzSG9va0V2ZW50PSEwKTtyZXR1cm4gcn0sZS5wcm90b3R5cGUuJG9uY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2Z1bmN0aW9uIHIoKXtuLiRvZmYoZSxyKSx0LmFwcGx5KG4sYXJndW1lbnRzKX1yZXR1cm4gci5mbj10LG4uJG9uKGUsciksbn0sZS5wcm90b3R5cGUuJG9mZj1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIG4uX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLG47aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciByPTAsaT1lLmxlbmd0aDtyPGk7cisrKW4uJG9mZihlW3JdLHQpO3JldHVybiBufXZhciBvLGE9bi5fZXZlbnRzW2VdO2lmKCFhKXJldHVybiBuO2lmKCF0KXJldHVybiBuLl9ldmVudHNbZV09bnVsbCxuO2Zvcih2YXIgcz1hLmxlbmd0aDtzLS07KWlmKChvPWFbc10pPT09dHx8by5mbj09PXQpe2Euc3BsaWNlKHMsMSk7YnJlYWt9cmV0dXJuIG59LGUucHJvdG90eXBlLiRlbWl0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2V2ZW50c1tlXTtpZih0KXt0PXQubGVuZ3RoPjE/ayh0KTp0O2Zvcih2YXIgbj1rKGFyZ3VtZW50cywxKSxyPSdldmVudCBoYW5kbGVyIGZvciBcIicrZSsnXCInLGk9MCxvPXQubGVuZ3RoO2k8bztpKyspSGUodFtpXSx0aGlzLG4sdGhpcyxyKX1yZXR1cm4gdGhpc319KHduKSxmdW5jdGlvbihlKXtlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPW4uJGVsLGk9bi5fdm5vZGUsbz1adChuKTtuLl92bm9kZT1lLG4uJGVsPWk/bi5fX3BhdGNoX18oaSxlKTpuLl9fcGF0Y2hfXyhuLiRlbCxlLHQsITEpLG8oKSxyJiYoci5fX3Z1ZV9fPW51bGwpLG4uJGVsJiYobi4kZWwuX192dWVfXz1uKSxuLiR2bm9kZSYmbi4kcGFyZW50JiZuLiR2bm9kZT09PW4uJHBhcmVudC5fdm5vZGUmJihuLiRwYXJlbnQuJGVsPW4uJGVsKX0sZS5wcm90b3R5cGUuJGZvcmNlVXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5fd2F0Y2hlciYmdGhpcy5fd2F0Y2hlci51cGRhdGUoKX0sZS5wcm90b3R5cGUuJGRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCFlLl9pc0JlaW5nRGVzdHJveWVkKXtZdChlLFwiYmVmb3JlRGVzdHJveVwiKSxlLl9pc0JlaW5nRGVzdHJveWVkPSEwO3ZhciB0PWUuJHBhcmVudDshdHx8dC5faXNCZWluZ0Rlc3Ryb3llZHx8ZS4kb3B0aW9ucy5hYnN0cmFjdHx8aCh0LiRjaGlsZHJlbixlKSxlLl93YXRjaGVyJiZlLl93YXRjaGVyLnRlYXJkb3duKCk7Zm9yKHZhciBuPWUuX3dhdGNoZXJzLmxlbmd0aDtuLS07KWUuX3dhdGNoZXJzW25dLnRlYXJkb3duKCk7ZS5fZGF0YS5fX29iX18mJmUuX2RhdGEuX19vYl9fLnZtQ291bnQtLSxlLl9pc0Rlc3Ryb3llZD0hMCxlLl9fcGF0Y2hfXyhlLl92bm9kZSxudWxsKSxZdChlLFwiZGVzdHJveWVkXCIpLGUuJG9mZigpLGUuJGVsJiYoZS4kZWwuX192dWVfXz1udWxsKSxlLiR2bm9kZSYmKGUuJHZub2RlLnBhcmVudD1udWxsKX19fSh3biksZnVuY3Rpb24oZSl7U3QoZS5wcm90b3R5cGUpLGUucHJvdG90eXBlLiRuZXh0VGljaz1mdW5jdGlvbihlKXtyZXR1cm4gWWUoZSx0aGlzKX0sZS5wcm90b3R5cGUuX3JlbmRlcj1mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcyxuPXQuJG9wdGlvbnMscj1uLnJlbmRlcixpPW4uX3BhcmVudFZub2RlO2kmJih0LiRzY29wZWRTbG90cz1mdChpLmRhdGEuc2NvcGVkU2xvdHMsdC4kc2xvdHMsdC4kc2NvcGVkU2xvdHMpKSx0LiR2bm9kZT1pO3RyeXtIdD10LGU9ci5jYWxsKHQuX3JlbmRlclByb3h5LHQuJGNyZWF0ZUVsZW1lbnQpfWNhdGNoKG4pe1JlKG4sdCxcInJlbmRlclwiKSxlPXQuX3Zub2RlfWZpbmFsbHl7SHQ9bnVsbH1yZXR1cm4gQXJyYXkuaXNBcnJheShlKSYmMT09PWUubGVuZ3RoJiYoZT1lWzBdKSxlIGluc3RhbmNlb2YgcGV8fChlPXZlKCkpLGUucGFyZW50PWksZX19KHduKTt2YXIgU249W1N0cmluZyxSZWdFeHAsQXJyYXldLFRuPXtLZWVwQWxpdmU6e25hbWU6XCJrZWVwLWFsaXZlXCIsYWJzdHJhY3Q6ITAscHJvcHM6e2luY2x1ZGU6U24sZXhjbHVkZTpTbixtYXg6W1N0cmluZyxOdW1iZXJdfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMua2V5cz1bXX0sZGVzdHJveWVkOmZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMuY2FjaGUpT24odGhpcy5jYWNoZSxlLHRoaXMua2V5cyl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuJHdhdGNoKFwiaW5jbHVkZVwiLGZ1bmN0aW9uKHQpe0FuKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGtuKHQsZSl9KX0pLHRoaXMuJHdhdGNoKFwiZXhjbHVkZVwiLGZ1bmN0aW9uKHQpe0FuKGUsZnVuY3Rpb24oZSl7cmV0dXJuIWtuKHQsZSl9KX0pfSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLiRzbG90cy5kZWZhdWx0LHQ9enQoZSksbj10JiZ0LmNvbXBvbmVudE9wdGlvbnM7aWYobil7dmFyIHI9eG4obiksaT10aGlzLmluY2x1ZGUsbz10aGlzLmV4Y2x1ZGU7aWYoaSYmKCFyfHwha24oaSxyKSl8fG8mJnImJmtuKG8scikpcmV0dXJuIHQ7dmFyIGE9dGhpcy5jYWNoZSxzPXRoaXMua2V5cyxjPW51bGw9PXQua2V5P24uQ3Rvci5jaWQrKG4udGFnP1wiOjpcIituLnRhZzpcIlwiKTp0LmtleTthW2NdPyh0LmNvbXBvbmVudEluc3RhbmNlPWFbY10uY29tcG9uZW50SW5zdGFuY2UsaChzLGMpLHMucHVzaChjKSk6KGFbY109dCxzLnB1c2goYyksdGhpcy5tYXgmJnMubGVuZ3RoPnBhcnNlSW50KHRoaXMubWF4KSYmT24oYSxzWzBdLHMsdGhpcy5fdm5vZGUpKSx0LmRhdGEua2VlcEFsaXZlPSEwfXJldHVybiB0fHxlJiZlWzBdfX19OyFmdW5jdGlvbihlKXt2YXIgdD17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZ9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNvbmZpZ1wiLHQpLGUudXRpbD17d2FybjphZSxleHRlbmQ6QSxtZXJnZU9wdGlvbnM6RGUsZGVmaW5lUmVhY3RpdmU6eGV9LGUuc2V0PWtlLGUuZGVsZXRlPUFlLGUubmV4dFRpY2s9WWUsZS5vYnNlcnZhYmxlPWZ1bmN0aW9uKGUpe3JldHVybiBDZShlKSxlfSxlLm9wdGlvbnM9T2JqZWN0LmNyZWF0ZShudWxsKSxNLmZvckVhY2goZnVuY3Rpb24odCl7ZS5vcHRpb25zW3QrXCJzXCJdPU9iamVjdC5jcmVhdGUobnVsbCl9KSxlLm9wdGlvbnMuX2Jhc2U9ZSxBKGUub3B0aW9ucy5jb21wb25lbnRzLFRuKSxmdW5jdGlvbihlKXtlLnVzZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9pbnN0YWxsZWRQbHVnaW5zfHwodGhpcy5faW5zdGFsbGVkUGx1Z2lucz1bXSk7aWYodC5pbmRleE9mKGUpPi0xKXJldHVybiB0aGlzO3ZhciBuPWsoYXJndW1lbnRzLDEpO3JldHVybiBuLnVuc2hpZnQodGhpcyksXCJmdW5jdGlvblwiPT10eXBlb2YgZS5pbnN0YWxsP2UuaW5zdGFsbC5hcHBseShlLG4pOlwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJmUuYXBwbHkobnVsbCxuKSx0LnB1c2goZSksdGhpc319KGUpLGZ1bmN0aW9uKGUpe2UubWl4aW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub3B0aW9ucz1EZSh0aGlzLm9wdGlvbnMsZSksdGhpc319KGUpLENuKGUpLGZ1bmN0aW9uKGUpe00uZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPWZ1bmN0aW9uKGUsbil7cmV0dXJuIG4/KFwiY29tcG9uZW50XCI9PT10JiZzKG4pJiYobi5uYW1lPW4ubmFtZXx8ZSxuPXRoaXMub3B0aW9ucy5fYmFzZS5leHRlbmQobikpLFwiZGlyZWN0aXZlXCI9PT10JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBuJiYobj17YmluZDpuLHVwZGF0ZTpufSksdGhpcy5vcHRpb25zW3QrXCJzXCJdW2VdPW4sbik6dGhpcy5vcHRpb25zW3QrXCJzXCJdW2VdfX0pfShlKX0od24pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3bi5wcm90b3R5cGUsXCIkaXNTZXJ2ZXJcIix7Z2V0OnRlfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHduLnByb3RvdHlwZSxcIiRzc3JDb250ZXh0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLiR2bm9kZSYmdGhpcy4kdm5vZGUuc3NyQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkod24sXCJGdW5jdGlvbmFsUmVuZGVyQ29udGV4dFwiLHt2YWx1ZTpUdH0pLHduLnZlcnNpb249XCIyLjYuMTJcIjt2YXIgRW49cChcInN0eWxlLGNsYXNzXCIpLE5uPXAoXCJpbnB1dCx0ZXh0YXJlYSxvcHRpb24sc2VsZWN0LHByb2dyZXNzXCIpLGpuPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm5cInZhbHVlXCI9PT1uJiZObihlKSYmXCJidXR0b25cIiE9PXR8fFwic2VsZWN0ZWRcIj09PW4mJlwib3B0aW9uXCI9PT1lfHxcImNoZWNrZWRcIj09PW4mJlwiaW5wdXRcIj09PWV8fFwibXV0ZWRcIj09PW4mJlwidmlkZW9cIj09PWV9LERuPXAoXCJjb250ZW50ZWRpdGFibGUsZHJhZ2dhYmxlLHNwZWxsY2hlY2tcIiksTG49cChcImV2ZW50cyxjYXJldCx0eXBpbmcscGxhaW50ZXh0LW9ubHlcIiksTW49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gSG4odCl8fFwiZmFsc2VcIj09PXQ/XCJmYWxzZVwiOlwiY29udGVudGVkaXRhYmxlXCI9PT1lJiZMbih0KT90OlwidHJ1ZVwifSxJbj1wKFwiYWxsb3dmdWxsc2NyZWVuLGFzeW5jLGF1dG9mb2N1cyxhdXRvcGxheSxjaGVja2VkLGNvbXBhY3QsY29udHJvbHMsZGVjbGFyZSxkZWZhdWx0LGRlZmF1bHRjaGVja2VkLGRlZmF1bHRtdXRlZCxkZWZhdWx0c2VsZWN0ZWQsZGVmZXIsZGlzYWJsZWQsZW5hYmxlZCxmb3Jtbm92YWxpZGF0ZSxoaWRkZW4saW5kZXRlcm1pbmF0ZSxpbmVydCxpc21hcCxpdGVtc2NvcGUsbG9vcCxtdWx0aXBsZSxtdXRlZCxub2hyZWYsbm9yZXNpemUsbm9zaGFkZSxub3ZhbGlkYXRlLG5vd3JhcCxvcGVuLHBhdXNlb25leGl0LHJlYWRvbmx5LHJlcXVpcmVkLHJldmVyc2VkLHNjb3BlZCxzZWFtbGVzcyxzZWxlY3RlZCxzb3J0YWJsZSx0cmFuc2xhdGUsdHJ1ZXNwZWVkLHR5cGVtdXN0bWF0Y2gsdmlzaWJsZVwiKSxGbj1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixQbj1mdW5jdGlvbihlKXtyZXR1cm5cIjpcIj09PWUuY2hhckF0KDUpJiZcInhsaW5rXCI9PT1lLnNsaWNlKDAsNSl9LFJuPWZ1bmN0aW9uKGUpe3JldHVybiBQbihlKT9lLnNsaWNlKDYsZS5sZW5ndGgpOlwiXCJ9LEhuPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lfHwhMT09PWV9O2Z1bmN0aW9uIEJuKGUpe2Zvcih2YXIgdD1lLmRhdGEscj1lLGk9ZTtuKGkuY29tcG9uZW50SW5zdGFuY2UpOykoaT1pLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSkmJmkuZGF0YSYmKHQ9VW4oaS5kYXRhLHQpKTtmb3IoO24ocj1yLnBhcmVudCk7KXImJnIuZGF0YSYmKHQ9VW4odCxyLmRhdGEpKTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZihuKGUpfHxuKHQpKXJldHVybiB6bihlLFZuKHQpKTtyZXR1cm5cIlwifSh0LnN0YXRpY0NsYXNzLHQuY2xhc3MpfWZ1bmN0aW9uIFVuKGUsdCl7cmV0dXJue3N0YXRpY0NsYXNzOnpuKGUuc3RhdGljQ2xhc3MsdC5zdGF0aWNDbGFzcyksY2xhc3M6bihlLmNsYXNzKT9bZS5jbGFzcyx0LmNsYXNzXTp0LmNsYXNzfX1mdW5jdGlvbiB6bihlLHQpe3JldHVybiBlP3Q/ZStcIiBcIit0OmU6dHx8XCJcIn1mdW5jdGlvbiBWbihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9mdW5jdGlvbihlKXtmb3IodmFyIHQscj1cIlwiLGk9MCxvPWUubGVuZ3RoO2k8bztpKyspbih0PVZuKGVbaV0pKSYmXCJcIiE9PXQmJihyJiYocis9XCIgXCIpLHIrPXQpO3JldHVybiByfShlKTpvKGUpP2Z1bmN0aW9uKGUpe3ZhciB0PVwiXCI7Zm9yKHZhciBuIGluIGUpZVtuXSYmKHQmJih0Kz1cIiBcIiksdCs9bik7cmV0dXJuIHR9KGUpOlwic3RyaW5nXCI9PXR5cGVvZiBlP2U6XCJcIn12YXIgS249e3N2ZzpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsbWF0aDpcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIn0sSm49cChcImh0bWwsYm9keSxiYXNlLGhlYWQsbGluayxtZXRhLHN0eWxlLHRpdGxlLGFkZHJlc3MsYXJ0aWNsZSxhc2lkZSxmb290ZXIsaGVhZGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhncm91cCxuYXYsc2VjdGlvbixkaXYsZGQsZGwsZHQsZmlnY2FwdGlvbixmaWd1cmUscGljdHVyZSxocixpbWcsbGksbWFpbixvbCxwLHByZSx1bCxhLGIsYWJicixiZGksYmRvLGJyLGNpdGUsY29kZSxkYXRhLGRmbixlbSxpLGtiZCxtYXJrLHEscnAscnQscnRjLHJ1YnkscyxzYW1wLHNtYWxsLHNwYW4sc3Ryb25nLHN1YixzdXAsdGltZSx1LHZhcix3YnIsYXJlYSxhdWRpbyxtYXAsdHJhY2ssdmlkZW8sZW1iZWQsb2JqZWN0LHBhcmFtLHNvdXJjZSxjYW52YXMsc2NyaXB0LG5vc2NyaXB0LGRlbCxpbnMsY2FwdGlvbixjb2wsY29sZ3JvdXAsdGFibGUsdGhlYWQsdGJvZHksdGQsdGgsdHIsYnV0dG9uLGRhdGFsaXN0LGZpZWxkc2V0LGZvcm0saW5wdXQsbGFiZWwsbGVnZW5kLG1ldGVyLG9wdGdyb3VwLG9wdGlvbixvdXRwdXQscHJvZ3Jlc3Msc2VsZWN0LHRleHRhcmVhLGRldGFpbHMsZGlhbG9nLG1lbnUsbWVudWl0ZW0sc3VtbWFyeSxjb250ZW50LGVsZW1lbnQsc2hhZG93LHRlbXBsYXRlLGJsb2NrcXVvdGUsaWZyYW1lLHRmb290XCIpLHFuPXAoXCJzdmcsYW5pbWF0ZSxjaXJjbGUsY2xpcHBhdGgsY3Vyc29yLGRlZnMsZGVzYyxlbGxpcHNlLGZpbHRlcixmb250LWZhY2UsZm9yZWlnbk9iamVjdCxnLGdseXBoLGltYWdlLGxpbmUsbWFya2VyLG1hc2ssbWlzc2luZy1nbHlwaCxwYXRoLHBhdHRlcm4scG9seWdvbixwb2x5bGluZSxyZWN0LHN3aXRjaCxzeW1ib2wsdGV4dCx0ZXh0cGF0aCx0c3Bhbix1c2Usdmlld1wiLCEwKSxXbj1mdW5jdGlvbihlKXtyZXR1cm4gSm4oZSl8fHFuKGUpfTtmdW5jdGlvbiBabihlKXtyZXR1cm4gcW4oZSk/XCJzdmdcIjpcIm1hdGhcIj09PWU/XCJtYXRoXCI6dm9pZCAwfXZhciBHbj1PYmplY3QuY3JlYXRlKG51bGwpO3ZhciBYbj1wKFwidGV4dCxudW1iZXIscGFzc3dvcmQsc2VhcmNoLGVtYWlsLHRlbCx1cmxcIik7ZnVuY3Rpb24gWW4oZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk7cmV0dXJuIHR8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIil9cmV0dXJuIGV9dmFyIFFuPU9iamVjdC5mcmVlemUoe2NyZWF0ZUVsZW1lbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVyblwic2VsZWN0XCIhPT1lP246KHQuZGF0YSYmdC5kYXRhLmF0dHJzJiZ2b2lkIDAhPT10LmRhdGEuYXR0cnMubXVsdGlwbGUmJm4uc2V0QXR0cmlidXRlKFwibXVsdGlwbGVcIixcIm11bHRpcGxlXCIpLG4pfSxjcmVhdGVFbGVtZW50TlM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKEtuW2VdLHQpfSxjcmVhdGVUZXh0Tm9kZTpmdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSl9LGNyZWF0ZUNvbW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoZSl9LGluc2VydEJlZm9yZTpmdW5jdGlvbihlLHQsbil7ZS5pbnNlcnRCZWZvcmUodCxuKX0scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24oZSx0KXtlLnJlbW92ZUNoaWxkKHQpfSxhcHBlbmRDaGlsZDpmdW5jdGlvbihlLHQpe2UuYXBwZW5kQ2hpbGQodCl9LHBhcmVudE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZX0sbmV4dFNpYmxpbmc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubmV4dFNpYmxpbmd9LHRhZ05hbWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFnTmFtZX0sc2V0VGV4dENvbnRlbnQ6ZnVuY3Rpb24oZSx0KXtlLnRleHRDb250ZW50PXR9LHNldFN0eWxlU2NvcGU6ZnVuY3Rpb24oZSx0KXtlLnNldEF0dHJpYnV0ZSh0LFwiXCIpfX0pLGVyPXtjcmVhdGU6ZnVuY3Rpb24oZSx0KXt0cih0KX0sdXBkYXRlOmZ1bmN0aW9uKGUsdCl7ZS5kYXRhLnJlZiE9PXQuZGF0YS5yZWYmJih0cihlLCEwKSx0cih0KSl9LGRlc3Ryb3k6ZnVuY3Rpb24oZSl7dHIoZSwhMCl9fTtmdW5jdGlvbiB0cihlLHQpe3ZhciByPWUuZGF0YS5yZWY7aWYobihyKSl7dmFyIGk9ZS5jb250ZXh0LG89ZS5jb21wb25lbnRJbnN0YW5jZXx8ZS5lbG0sYT1pLiRyZWZzO3Q/QXJyYXkuaXNBcnJheShhW3JdKT9oKGFbcl0sbyk6YVtyXT09PW8mJihhW3JdPXZvaWQgMCk6ZS5kYXRhLnJlZkluRm9yP0FycmF5LmlzQXJyYXkoYVtyXSk/YVtyXS5pbmRleE9mKG8pPDAmJmFbcl0ucHVzaChvKTphW3JdPVtvXTphW3JdPW99fXZhciBucj1uZXcgcGUoXCJcIix7fSxbXSkscnI9W1wiY3JlYXRlXCIsXCJhY3RpdmF0ZVwiLFwidXBkYXRlXCIsXCJyZW1vdmVcIixcImRlc3Ryb3lcIl07ZnVuY3Rpb24gaXIoZSxpKXtyZXR1cm4gZS5rZXk9PT1pLmtleSYmKGUudGFnPT09aS50YWcmJmUuaXNDb21tZW50PT09aS5pc0NvbW1lbnQmJm4oZS5kYXRhKT09PW4oaS5kYXRhKSYmZnVuY3Rpb24oZSx0KXtpZihcImlucHV0XCIhPT1lLnRhZylyZXR1cm4hMDt2YXIgcixpPW4ocj1lLmRhdGEpJiZuKHI9ci5hdHRycykmJnIudHlwZSxvPW4ocj10LmRhdGEpJiZuKHI9ci5hdHRycykmJnIudHlwZTtyZXR1cm4gaT09PW98fFhuKGkpJiZYbihvKX0oZSxpKXx8cihlLmlzQXN5bmNQbGFjZWhvbGRlcikmJmUuYXN5bmNGYWN0b3J5PT09aS5hc3luY0ZhY3RvcnkmJnQoaS5hc3luY0ZhY3RvcnkuZXJyb3IpKX1mdW5jdGlvbiBvcihlLHQscil7dmFyIGksbyxhPXt9O2ZvcihpPXQ7aTw9cjsrK2kpbihvPWVbaV0ua2V5KSYmKGFbb109aSk7cmV0dXJuIGF9dmFyIGFyPXtjcmVhdGU6c3IsdXBkYXRlOnNyLGRlc3Ryb3k6ZnVuY3Rpb24oZSl7c3IoZSxucil9fTtmdW5jdGlvbiBzcihlLHQpeyhlLmRhdGEuZGlyZWN0aXZlc3x8dC5kYXRhLmRpcmVjdGl2ZXMpJiZmdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxvPWU9PT1ucixhPXQ9PT1ucixzPXVyKGUuZGF0YS5kaXJlY3RpdmVzLGUuY29udGV4dCksYz11cih0LmRhdGEuZGlyZWN0aXZlcyx0LmNvbnRleHQpLHU9W10sbD1bXTtmb3IobiBpbiBjKXI9c1tuXSxpPWNbbl0scj8oaS5vbGRWYWx1ZT1yLnZhbHVlLGkub2xkQXJnPXIuYXJnLGZyKGksXCJ1cGRhdGVcIix0LGUpLGkuZGVmJiZpLmRlZi5jb21wb25lbnRVcGRhdGVkJiZsLnB1c2goaSkpOihmcihpLFwiYmluZFwiLHQsZSksaS5kZWYmJmkuZGVmLmluc2VydGVkJiZ1LnB1c2goaSkpO2lmKHUubGVuZ3RoKXt2YXIgZj1mdW5jdGlvbigpe2Zvcih2YXIgbj0wO248dS5sZW5ndGg7bisrKWZyKHVbbl0sXCJpbnNlcnRlZFwiLHQsZSl9O28/aXQodCxcImluc2VydFwiLGYpOmYoKX1sLmxlbmd0aCYmaXQodCxcInBvc3RwYXRjaFwiLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPTA7bjxsLmxlbmd0aDtuKyspZnIobFtuXSxcImNvbXBvbmVudFVwZGF0ZWRcIix0LGUpfSk7aWYoIW8pZm9yKG4gaW4gcyljW25dfHxmcihzW25dLFwidW5iaW5kXCIsZSxlLGEpfShlLHQpfXZhciBjcj1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIHVyKGUsdCl7dmFyIG4scixpPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoIWUpcmV0dXJuIGk7Zm9yKG49MDtuPGUubGVuZ3RoO24rKykocj1lW25dKS5tb2RpZmllcnN8fChyLm1vZGlmaWVycz1jciksaVtscihyKV09cixyLmRlZj1MZSh0LiRvcHRpb25zLFwiZGlyZWN0aXZlc1wiLHIubmFtZSk7cmV0dXJuIGl9ZnVuY3Rpb24gbHIoZSl7cmV0dXJuIGUucmF3TmFtZXx8ZS5uYW1lK1wiLlwiK09iamVjdC5rZXlzKGUubW9kaWZpZXJzfHx7fSkuam9pbihcIi5cIil9ZnVuY3Rpb24gZnIoZSx0LG4scixpKXt2YXIgbz1lLmRlZiYmZS5kZWZbdF07aWYobyl0cnl7byhuLmVsbSxlLG4scixpKX1jYXRjaChyKXtSZShyLG4uY29udGV4dCxcImRpcmVjdGl2ZSBcIitlLm5hbWUrXCIgXCIrdCtcIiBob29rXCIpfX12YXIgcHI9W2VyLGFyXTtmdW5jdGlvbiBkcihlLHIpe3ZhciBpPXIuY29tcG9uZW50T3B0aW9ucztpZighKG4oaSkmJiExPT09aS5DdG9yLm9wdGlvbnMuaW5oZXJpdEF0dHJzfHx0KGUuZGF0YS5hdHRycykmJnQoci5kYXRhLmF0dHJzKSkpe3ZhciBvLGEscz1yLmVsbSxjPWUuZGF0YS5hdHRyc3x8e30sdT1yLmRhdGEuYXR0cnN8fHt9O2ZvcihvIGluIG4odS5fX29iX18pJiYodT1yLmRhdGEuYXR0cnM9QSh7fSx1KSksdSlhPXVbb10sY1tvXSE9PWEmJnZyKHMsbyxhKTtmb3IobyBpbihxfHxaKSYmdS52YWx1ZSE9PWMudmFsdWUmJnZyKHMsXCJ2YWx1ZVwiLHUudmFsdWUpLGMpdCh1W29dKSYmKFBuKG8pP3MucmVtb3ZlQXR0cmlidXRlTlMoRm4sUm4obykpOkRuKG8pfHxzLnJlbW92ZUF0dHJpYnV0ZShvKSl9fWZ1bmN0aW9uIHZyKGUsdCxuKXtlLnRhZ05hbWUuaW5kZXhPZihcIi1cIik+LTE/aHIoZSx0LG4pOkluKHQpP0huKG4pP2UucmVtb3ZlQXR0cmlidXRlKHQpOihuPVwiYWxsb3dmdWxsc2NyZWVuXCI9PT10JiZcIkVNQkVEXCI9PT1lLnRhZ05hbWU/XCJ0cnVlXCI6dCxlLnNldEF0dHJpYnV0ZSh0LG4pKTpEbih0KT9lLnNldEF0dHJpYnV0ZSh0LE1uKHQsbikpOlBuKHQpP0huKG4pP2UucmVtb3ZlQXR0cmlidXRlTlMoRm4sUm4odCkpOmUuc2V0QXR0cmlidXRlTlMoRm4sdCxuKTpocihlLHQsbil9ZnVuY3Rpb24gaHIoZSx0LG4pe2lmKEhuKG4pKWUucmVtb3ZlQXR0cmlidXRlKHQpO2Vsc2V7aWYocSYmIVcmJlwiVEVYVEFSRUFcIj09PWUudGFnTmFtZSYmXCJwbGFjZWhvbGRlclwiPT09dCYmXCJcIiE9PW4mJiFlLl9faWVwaCl7dmFyIHI9ZnVuY3Rpb24odCl7dC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLHIpfTtlLmFkZEV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLHIpLGUuX19pZXBoPSEwfWUuc2V0QXR0cmlidXRlKHQsbil9fXZhciBtcj17Y3JlYXRlOmRyLHVwZGF0ZTpkcn07ZnVuY3Rpb24geXIoZSxyKXt2YXIgaT1yLmVsbSxvPXIuZGF0YSxhPWUuZGF0YTtpZighKHQoby5zdGF0aWNDbGFzcykmJnQoby5jbGFzcykmJih0KGEpfHx0KGEuc3RhdGljQ2xhc3MpJiZ0KGEuY2xhc3MpKSkpe3ZhciBzPUJuKHIpLGM9aS5fdHJhbnNpdGlvbkNsYXNzZXM7bihjKSYmKHM9em4ocyxWbihjKSkpLHMhPT1pLl9wcmV2Q2xhc3MmJihpLnNldEF0dHJpYnV0ZShcImNsYXNzXCIscyksaS5fcHJldkNsYXNzPXMpfX12YXIgZ3IsX3IsYnIsJHIsd3IsQ3IseHI9e2NyZWF0ZTp5cix1cGRhdGU6eXJ9LGtyPS9bXFx3KS4rXFwtXyRcXF1dLztmdW5jdGlvbiBBcihlKXt2YXIgdCxuLHIsaSxvLGE9ITEscz0hMSxjPSExLHU9ITEsbD0wLGY9MCxwPTAsZD0wO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspaWYobj10LHQ9ZS5jaGFyQ29kZUF0KHIpLGEpMzk9PT10JiY5MiE9PW4mJihhPSExKTtlbHNlIGlmKHMpMzQ9PT10JiY5MiE9PW4mJihzPSExKTtlbHNlIGlmKGMpOTY9PT10JiY5MiE9PW4mJihjPSExKTtlbHNlIGlmKHUpNDc9PT10JiY5MiE9PW4mJih1PSExKTtlbHNlIGlmKDEyNCE9PXR8fDEyND09PWUuY2hhckNvZGVBdChyKzEpfHwxMjQ9PT1lLmNoYXJDb2RlQXQoci0xKXx8bHx8Znx8cCl7c3dpdGNoKHQpe2Nhc2UgMzQ6cz0hMDticmVhaztjYXNlIDM5OmE9ITA7YnJlYWs7Y2FzZSA5NjpjPSEwO2JyZWFrO2Nhc2UgNDA6cCsrO2JyZWFrO2Nhc2UgNDE6cC0tO2JyZWFrO2Nhc2UgOTE6ZisrO2JyZWFrO2Nhc2UgOTM6Zi0tO2JyZWFrO2Nhc2UgMTIzOmwrKzticmVhaztjYXNlIDEyNTpsLS19aWYoNDc9PT10KXtmb3IodmFyIHY9ci0xLGg9dm9pZCAwO3Y+PTAmJlwiIFwiPT09KGg9ZS5jaGFyQXQodikpO3YtLSk7aCYma3IudGVzdChoKXx8KHU9ITApfX1lbHNlIHZvaWQgMD09PWk/KGQ9cisxLGk9ZS5zbGljZSgwLHIpLnRyaW0oKSk6bSgpO2Z1bmN0aW9uIG0oKXsob3x8KG89W10pKS5wdXNoKGUuc2xpY2UoZCxyKS50cmltKCkpLGQ9cisxfWlmKHZvaWQgMD09PWk/aT1lLnNsaWNlKDAscikudHJpbSgpOjAhPT1kJiZtKCksbylmb3Iocj0wO3I8by5sZW5ndGg7cisrKWk9T3IoaSxvW3JdKTtyZXR1cm4gaX1mdW5jdGlvbiBPcihlLHQpe3ZhciBuPXQuaW5kZXhPZihcIihcIik7aWYobjwwKXJldHVybidfZihcIicrdCsnXCIpKCcrZStcIilcIjt2YXIgcj10LnNsaWNlKDAsbiksaT10LnNsaWNlKG4rMSk7cmV0dXJuJ19mKFwiJytyKydcIikoJytlKyhcIilcIiE9PWk/XCIsXCIraTppKX1mdW5jdGlvbiBTcihlLHQpe2NvbnNvbGUuZXJyb3IoXCJbVnVlIGNvbXBpbGVyXTogXCIrZSl9ZnVuY3Rpb24gVHIoZSx0KXtyZXR1cm4gZT9lLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZVt0XX0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pOltdfWZ1bmN0aW9uIEVyKGUsdCxuLHIsaSl7KGUucHJvcHN8fChlLnByb3BzPVtdKSkucHVzaChScih7bmFtZTp0LHZhbHVlOm4sZHluYW1pYzppfSxyKSksZS5wbGFpbj0hMX1mdW5jdGlvbiBOcihlLHQsbixyLGkpeyhpP2UuZHluYW1pY0F0dHJzfHwoZS5keW5hbWljQXR0cnM9W10pOmUuYXR0cnN8fChlLmF0dHJzPVtdKSkucHVzaChScih7bmFtZTp0LHZhbHVlOm4sZHluYW1pYzppfSxyKSksZS5wbGFpbj0hMX1mdW5jdGlvbiBqcihlLHQsbixyKXtlLmF0dHJzTWFwW3RdPW4sZS5hdHRyc0xpc3QucHVzaChScih7bmFtZTp0LHZhbHVlOm59LHIpKX1mdW5jdGlvbiBEcihlLHQsbixyLGksbyxhLHMpeyhlLmRpcmVjdGl2ZXN8fChlLmRpcmVjdGl2ZXM9W10pKS5wdXNoKFJyKHtuYW1lOnQscmF3TmFtZTpuLHZhbHVlOnIsYXJnOmksaXNEeW5hbWljQXJnOm8sbW9kaWZpZXJzOmF9LHMpKSxlLnBsYWluPSExfWZ1bmN0aW9uIExyKGUsdCxuKXtyZXR1cm4gbj9cIl9wKFwiK3QrJyxcIicrZSsnXCIpJzplK3R9ZnVuY3Rpb24gTXIodCxuLHIsaSxvLGEscyxjKXt2YXIgdTsoaT1pfHxlKS5yaWdodD9jP249XCIoXCIrbitcIik9PT0nY2xpY2snPydjb250ZXh0bWVudSc6KFwiK24rXCIpXCI6XCJjbGlja1wiPT09biYmKG49XCJjb250ZXh0bWVudVwiLGRlbGV0ZSBpLnJpZ2h0KTppLm1pZGRsZSYmKGM/bj1cIihcIituK1wiKT09PSdjbGljayc/J21vdXNldXAnOihcIituK1wiKVwiOlwiY2xpY2tcIj09PW4mJihuPVwibW91c2V1cFwiKSksaS5jYXB0dXJlJiYoZGVsZXRlIGkuY2FwdHVyZSxuPUxyKFwiIVwiLG4sYykpLGkub25jZSYmKGRlbGV0ZSBpLm9uY2Usbj1McihcIn5cIixuLGMpKSxpLnBhc3NpdmUmJihkZWxldGUgaS5wYXNzaXZlLG49THIoXCImXCIsbixjKSksaS5uYXRpdmU/KGRlbGV0ZSBpLm5hdGl2ZSx1PXQubmF0aXZlRXZlbnRzfHwodC5uYXRpdmVFdmVudHM9e30pKTp1PXQuZXZlbnRzfHwodC5ldmVudHM9e30pO3ZhciBsPVJyKHt2YWx1ZTpyLnRyaW0oKSxkeW5hbWljOmN9LHMpO2khPT1lJiYobC5tb2RpZmllcnM9aSk7dmFyIGY9dVtuXTtBcnJheS5pc0FycmF5KGYpP28/Zi51bnNoaWZ0KGwpOmYucHVzaChsKTp1W25dPWY/bz9bbCxmXTpbZixsXTpsLHQucGxhaW49ITF9ZnVuY3Rpb24gSXIoZSx0LG4pe3ZhciByPUZyKGUsXCI6XCIrdCl8fEZyKGUsXCJ2LWJpbmQ6XCIrdCk7aWYobnVsbCE9cilyZXR1cm4gQXIocik7aWYoITEhPT1uKXt2YXIgaT1GcihlLHQpO2lmKG51bGwhPWkpcmV0dXJuIEpTT04uc3RyaW5naWZ5KGkpfX1mdW5jdGlvbiBGcihlLHQsbil7dmFyIHI7aWYobnVsbCE9KHI9ZS5hdHRyc01hcFt0XSkpZm9yKHZhciBpPWUuYXR0cnNMaXN0LG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYoaVtvXS5uYW1lPT09dCl7aS5zcGxpY2UobywxKTticmVha31yZXR1cm4gbiYmZGVsZXRlIGUuYXR0cnNNYXBbdF0scn1mdW5jdGlvbiBQcihlLHQpe2Zvcih2YXIgbj1lLmF0dHJzTGlzdCxyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1uW3JdO2lmKHQudGVzdChvLm5hbWUpKXJldHVybiBuLnNwbGljZShyLDEpLG99fWZ1bmN0aW9uIFJyKGUsdCl7cmV0dXJuIHQmJihudWxsIT10LnN0YXJ0JiYoZS5zdGFydD10LnN0YXJ0KSxudWxsIT10LmVuZCYmKGUuZW5kPXQuZW5kKSksZX1mdW5jdGlvbiBIcihlLHQsbil7dmFyIHI9bnx8e30saT1yLm51bWJlcixvPVwiJCR2XCI7ci50cmltJiYobz1cIih0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KVwiKSxpJiYobz1cIl9uKFwiK28rXCIpXCIpO3ZhciBhPUJyKHQsbyk7ZS5tb2RlbD17dmFsdWU6XCIoXCIrdCtcIilcIixleHByZXNzaW9uOkpTT04uc3RyaW5naWZ5KHQpLGNhbGxiYWNrOlwiZnVuY3Rpb24gKCQkdikge1wiK2ErXCJ9XCJ9fWZ1bmN0aW9uIEJyKGUsdCl7dmFyIG49ZnVuY3Rpb24oZSl7aWYoZT1lLnRyaW0oKSxncj1lLmxlbmd0aCxlLmluZGV4T2YoXCJbXCIpPDB8fGUubGFzdEluZGV4T2YoXCJdXCIpPGdyLTEpcmV0dXJuKCRyPWUubGFzdEluZGV4T2YoXCIuXCIpKT4tMT97ZXhwOmUuc2xpY2UoMCwkciksa2V5OidcIicrZS5zbGljZSgkcisxKSsnXCInfTp7ZXhwOmUsa2V5Om51bGx9O19yPWUsJHI9d3I9Q3I9MDtmb3IoOyF6cigpOylWcihicj1VcigpKT9Kcihicik6OTE9PT1iciYmS3IoYnIpO3JldHVybntleHA6ZS5zbGljZSgwLHdyKSxrZXk6ZS5zbGljZSh3cisxLENyKX19KGUpO3JldHVybiBudWxsPT09bi5rZXk/ZStcIj1cIit0OlwiJHNldChcIituLmV4cCtcIiwgXCIrbi5rZXkrXCIsIFwiK3QrXCIpXCJ9ZnVuY3Rpb24gVXIoKXtyZXR1cm4gX3IuY2hhckNvZGVBdCgrKyRyKX1mdW5jdGlvbiB6cigpe3JldHVybiAkcj49Z3J9ZnVuY3Rpb24gVnIoZSl7cmV0dXJuIDM0PT09ZXx8Mzk9PT1lfWZ1bmN0aW9uIEtyKGUpe3ZhciB0PTE7Zm9yKHdyPSRyOyF6cigpOylpZihWcihlPVVyKCkpKUpyKGUpO2Vsc2UgaWYoOTE9PT1lJiZ0KyssOTM9PT1lJiZ0LS0sMD09PXQpe0NyPSRyO2JyZWFrfX1mdW5jdGlvbiBKcihlKXtmb3IodmFyIHQ9ZTshenIoKSYmKGU9VXIoKSkhPT10Oyk7fXZhciBxcixXcj1cIl9fclwiLFpyPVwiX19jXCI7ZnVuY3Rpb24gR3IoZSx0LG4pe3ZhciByPXFyO3JldHVybiBmdW5jdGlvbiBpKCl7bnVsbCE9PXQuYXBwbHkobnVsbCxhcmd1bWVudHMpJiZRcihlLGksbixyKX19dmFyIFhyPVZlJiYhKFgmJk51bWJlcihYWzFdKTw9NTMpO2Z1bmN0aW9uIFlyKGUsdCxuLHIpe2lmKFhyKXt2YXIgaT1hbixvPXQ7dD1vLl93cmFwcGVyPWZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0PT09ZS5jdXJyZW50VGFyZ2V0fHxlLnRpbWVTdGFtcD49aXx8ZS50aW1lU3RhbXA8PTB8fGUudGFyZ2V0Lm93bmVyRG9jdW1lbnQhPT1kb2N1bWVudClyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fXFyLmFkZEV2ZW50TGlzdGVuZXIoZSx0LFE/e2NhcHR1cmU6bixwYXNzaXZlOnJ9Om4pfWZ1bmN0aW9uIFFyKGUsdCxuLHIpeyhyfHxxcikucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHQuX3dyYXBwZXJ8fHQsbil9ZnVuY3Rpb24gZWkoZSxyKXtpZighdChlLmRhdGEub24pfHwhdChyLmRhdGEub24pKXt2YXIgaT1yLmRhdGEub258fHt9LG89ZS5kYXRhLm9ufHx7fTtxcj1yLmVsbSxmdW5jdGlvbihlKXtpZihuKGVbV3JdKSl7dmFyIHQ9cT9cImNoYW5nZVwiOlwiaW5wdXRcIjtlW3RdPVtdLmNvbmNhdChlW1dyXSxlW3RdfHxbXSksZGVsZXRlIGVbV3JdfW4oZVtacl0pJiYoZS5jaGFuZ2U9W10uY29uY2F0KGVbWnJdLGUuY2hhbmdlfHxbXSksZGVsZXRlIGVbWnJdKX0oaSkscnQoaSxvLFlyLFFyLEdyLHIuY29udGV4dCkscXI9dm9pZCAwfX12YXIgdGksbmk9e2NyZWF0ZTplaSx1cGRhdGU6ZWl9O2Z1bmN0aW9uIHJpKGUscil7aWYoIXQoZS5kYXRhLmRvbVByb3BzKXx8IXQoci5kYXRhLmRvbVByb3BzKSl7dmFyIGksbyxhPXIuZWxtLHM9ZS5kYXRhLmRvbVByb3BzfHx7fSxjPXIuZGF0YS5kb21Qcm9wc3x8e307Zm9yKGkgaW4gbihjLl9fb2JfXykmJihjPXIuZGF0YS5kb21Qcm9wcz1BKHt9LGMpKSxzKWkgaW4gY3x8KGFbaV09XCJcIik7Zm9yKGkgaW4gYyl7aWYobz1jW2ldLFwidGV4dENvbnRlbnRcIj09PWl8fFwiaW5uZXJIVE1MXCI9PT1pKXtpZihyLmNoaWxkcmVuJiYoci5jaGlsZHJlbi5sZW5ndGg9MCksbz09PXNbaV0pY29udGludWU7MT09PWEuY2hpbGROb2Rlcy5sZW5ndGgmJmEucmVtb3ZlQ2hpbGQoYS5jaGlsZE5vZGVzWzBdKX1pZihcInZhbHVlXCI9PT1pJiZcIlBST0dSRVNTXCIhPT1hLnRhZ05hbWUpe2EuX3ZhbHVlPW87dmFyIHU9dChvKT9cIlwiOlN0cmluZyhvKTtpaShhLHUpJiYoYS52YWx1ZT11KX1lbHNlIGlmKFwiaW5uZXJIVE1MXCI9PT1pJiZxbihhLnRhZ05hbWUpJiZ0KGEuaW5uZXJIVE1MKSl7KHRpPXRpfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKS5pbm5lckhUTUw9XCI8c3ZnPlwiK28rXCI8L3N2Zz5cIjtmb3IodmFyIGw9dGkuZmlyc3RDaGlsZDthLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKTtmb3IoO2wuZmlyc3RDaGlsZDspYS5hcHBlbmRDaGlsZChsLmZpcnN0Q2hpbGQpfWVsc2UgaWYobyE9PXNbaV0pdHJ5e2FbaV09b31jYXRjaChlKXt9fX19ZnVuY3Rpb24gaWkoZSx0KXtyZXR1cm4hZS5jb21wb3NpbmcmJihcIk9QVElPTlwiPT09ZS50YWdOYW1lfHxmdW5jdGlvbihlLHQpe3ZhciBuPSEwO3RyeXtuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1lfWNhdGNoKGUpe31yZXR1cm4gbiYmZS52YWx1ZSE9PXR9KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS52YWx1ZSxpPWUuX3ZNb2RpZmllcnM7aWYobihpKSl7aWYoaS5udW1iZXIpcmV0dXJuIGYocikhPT1mKHQpO2lmKGkudHJpbSlyZXR1cm4gci50cmltKCkhPT10LnRyaW0oKX1yZXR1cm4gciE9PXR9KGUsdCkpfXZhciBvaT17Y3JlYXRlOnJpLHVwZGF0ZTpyaX0sYWk9ZyhmdW5jdGlvbihlKXt2YXIgdD17fSxuPS86KC4rKS87cmV0dXJuIGUuc3BsaXQoLzsoPyFbXihdKlxcKSkvZykuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlKXt2YXIgcj1lLnNwbGl0KG4pO3IubGVuZ3RoPjEmJih0W3JbMF0udHJpbSgpXT1yWzFdLnRyaW0oKSl9fSksdH0pO2Z1bmN0aW9uIHNpKGUpe3ZhciB0PWNpKGUuc3R5bGUpO3JldHVybiBlLnN0YXRpY1N0eWxlP0EoZS5zdGF0aWNTdHlsZSx0KTp0fWZ1bmN0aW9uIGNpKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP08oZSk6XCJzdHJpbmdcIj09dHlwZW9mIGU/YWkoZSk6ZX12YXIgdWksbGk9L14tLS8sZmk9L1xccyohaW1wb3J0YW50JC8scGk9ZnVuY3Rpb24oZSx0LG4pe2lmKGxpLnRlc3QodCkpZS5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4pO2Vsc2UgaWYoZmkudGVzdChuKSllLnN0eWxlLnNldFByb3BlcnR5KEModCksbi5yZXBsYWNlKGZpLFwiXCIpLFwiaW1wb3J0YW50XCIpO2Vsc2V7dmFyIHI9dmkodCk7aWYoQXJyYXkuaXNBcnJheShuKSlmb3IodmFyIGk9MCxvPW4ubGVuZ3RoO2k8bztpKyspZS5zdHlsZVtyXT1uW2ldO2Vsc2UgZS5zdHlsZVtyXT1ufX0sZGk9W1wiV2Via2l0XCIsXCJNb3pcIixcIm1zXCJdLHZpPWcoZnVuY3Rpb24oZSl7aWYodWk9dWl8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikuc3R5bGUsXCJmaWx0ZXJcIiE9PShlPWIoZSkpJiZlIGluIHVpKXJldHVybiBlO2Zvcih2YXIgdD1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj0wO248ZGkubGVuZ3RoO24rKyl7dmFyIHI9ZGlbbl0rdDtpZihyIGluIHVpKXJldHVybiByfX0pO2Z1bmN0aW9uIGhpKGUscil7dmFyIGk9ci5kYXRhLG89ZS5kYXRhO2lmKCEodChpLnN0YXRpY1N0eWxlKSYmdChpLnN0eWxlKSYmdChvLnN0YXRpY1N0eWxlKSYmdChvLnN0eWxlKSkpe3ZhciBhLHMsYz1yLmVsbSx1PW8uc3RhdGljU3R5bGUsbD1vLm5vcm1hbGl6ZWRTdHlsZXx8by5zdHlsZXx8e30sZj11fHxsLHA9Y2koci5kYXRhLnN0eWxlKXx8e307ci5kYXRhLm5vcm1hbGl6ZWRTdHlsZT1uKHAuX19vYl9fKT9BKHt9LHApOnA7dmFyIGQ9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPXt9O2lmKHQpZm9yKHZhciBpPWU7aS5jb21wb25lbnRJbnN0YW5jZTspKGk9aS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpJiZpLmRhdGEmJihuPXNpKGkuZGF0YSkpJiZBKHIsbik7KG49c2koZS5kYXRhKSkmJkEocixuKTtmb3IodmFyIG89ZTtvPW8ucGFyZW50OylvLmRhdGEmJihuPXNpKG8uZGF0YSkpJiZBKHIsbik7cmV0dXJuIHJ9KHIsITApO2ZvcihzIGluIGYpdChkW3NdKSYmcGkoYyxzLFwiXCIpO2ZvcihzIGluIGQpKGE9ZFtzXSkhPT1mW3NdJiZwaShjLHMsbnVsbD09YT9cIlwiOmEpfX12YXIgbWk9e2NyZWF0ZTpoaSx1cGRhdGU6aGl9LHlpPS9cXHMrLztmdW5jdGlvbiBnaShlLHQpe2lmKHQmJih0PXQudHJpbSgpKSlpZihlLmNsYXNzTGlzdCl0LmluZGV4T2YoXCIgXCIpPi0xP3Quc3BsaXQoeWkpLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUuY2xhc3NMaXN0LmFkZCh0KX0pOmUuY2xhc3NMaXN0LmFkZCh0KTtlbHNle3ZhciBuPVwiIFwiKyhlLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpfHxcIlwiKStcIiBcIjtuLmluZGV4T2YoXCIgXCIrdCtcIiBcIik8MCYmZS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLChuK3QpLnRyaW0oKSl9fWZ1bmN0aW9uIF9pKGUsdCl7aWYodCYmKHQ9dC50cmltKCkpKWlmKGUuY2xhc3NMaXN0KXQuaW5kZXhPZihcIiBcIik+LTE/dC5zcGxpdCh5aSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5jbGFzc0xpc3QucmVtb3ZlKHQpfSk6ZS5jbGFzc0xpc3QucmVtb3ZlKHQpLGUuY2xhc3NMaXN0Lmxlbmd0aHx8ZS5yZW1vdmVBdHRyaWJ1dGUoXCJjbGFzc1wiKTtlbHNle2Zvcih2YXIgbj1cIiBcIisoZS5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKXx8XCJcIikrXCIgXCIscj1cIiBcIit0K1wiIFwiO24uaW5kZXhPZihyKT49MDspbj1uLnJlcGxhY2UocixcIiBcIik7KG49bi50cmltKCkpP2Uuc2V0QXR0cmlidXRlKFwiY2xhc3NcIixuKTplLnJlbW92ZUF0dHJpYnV0ZShcImNsYXNzXCIpfX1mdW5jdGlvbiBiaShlKXtpZihlKXtpZihcIm9iamVjdFwiPT10eXBlb2YgZSl7dmFyIHQ9e307cmV0dXJuITEhPT1lLmNzcyYmQSh0LCRpKGUubmFtZXx8XCJ2XCIpKSxBKHQsZSksdH1yZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT8kaShlKTp2b2lkIDB9fXZhciAkaT1nKGZ1bmN0aW9uKGUpe3JldHVybntlbnRlckNsYXNzOmUrXCItZW50ZXJcIixlbnRlclRvQ2xhc3M6ZStcIi1lbnRlci10b1wiLGVudGVyQWN0aXZlQ2xhc3M6ZStcIi1lbnRlci1hY3RpdmVcIixsZWF2ZUNsYXNzOmUrXCItbGVhdmVcIixsZWF2ZVRvQ2xhc3M6ZStcIi1sZWF2ZS10b1wiLGxlYXZlQWN0aXZlQ2xhc3M6ZStcIi1sZWF2ZS1hY3RpdmVcIn19KSx3aT16JiYhVyxDaT1cInRyYW5zaXRpb25cIix4aT1cImFuaW1hdGlvblwiLGtpPVwidHJhbnNpdGlvblwiLEFpPVwidHJhbnNpdGlvbmVuZFwiLE9pPVwiYW5pbWF0aW9uXCIsU2k9XCJhbmltYXRpb25lbmRcIjt3aSYmKHZvaWQgMD09PXdpbmRvdy5vbnRyYW5zaXRpb25lbmQmJnZvaWQgMCE9PXdpbmRvdy5vbndlYmtpdHRyYW5zaXRpb25lbmQmJihraT1cIldlYmtpdFRyYW5zaXRpb25cIixBaT1cIndlYmtpdFRyYW5zaXRpb25FbmRcIiksdm9pZCAwPT09d2luZG93Lm9uYW5pbWF0aW9uZW5kJiZ2b2lkIDAhPT13aW5kb3cub253ZWJraXRhbmltYXRpb25lbmQmJihPaT1cIldlYmtpdEFuaW1hdGlvblwiLFNpPVwid2Via2l0QW5pbWF0aW9uRW5kXCIpKTt2YXIgVGk9ej93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOnNldFRpbWVvdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX07ZnVuY3Rpb24gRWkoZSl7VGkoZnVuY3Rpb24oKXtUaShlKX0pfWZ1bmN0aW9uIE5pKGUsdCl7dmFyIG49ZS5fdHJhbnNpdGlvbkNsYXNzZXN8fChlLl90cmFuc2l0aW9uQ2xhc3Nlcz1bXSk7bi5pbmRleE9mKHQpPDAmJihuLnB1c2godCksZ2koZSx0KSl9ZnVuY3Rpb24gamkoZSx0KXtlLl90cmFuc2l0aW9uQ2xhc3NlcyYmaChlLl90cmFuc2l0aW9uQ2xhc3Nlcyx0KSxfaShlLHQpfWZ1bmN0aW9uIERpKGUsdCxuKXt2YXIgcj1NaShlLHQpLGk9ci50eXBlLG89ci50aW1lb3V0LGE9ci5wcm9wQ291bnQ7aWYoIWkpcmV0dXJuIG4oKTt2YXIgcz1pPT09Q2k/QWk6U2ksYz0wLHU9ZnVuY3Rpb24oKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIocyxsKSxuKCl9LGw9ZnVuY3Rpb24odCl7dC50YXJnZXQ9PT1lJiYrK2M+PWEmJnUoKX07c2V0VGltZW91dChmdW5jdGlvbigpe2M8YSYmdSgpfSxvKzEpLGUuYWRkRXZlbnRMaXN0ZW5lcihzLGwpfXZhciBMaT0vXFxiKHRyYW5zZm9ybXxhbGwpKCx8JCkvO2Z1bmN0aW9uIE1pKGUsdCl7dmFyIG4scj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKSxpPShyW2tpK1wiRGVsYXlcIl18fFwiXCIpLnNwbGl0KFwiLCBcIiksbz0ocltraStcIkR1cmF0aW9uXCJdfHxcIlwiKS5zcGxpdChcIiwgXCIpLGE9SWkoaSxvKSxzPShyW09pK1wiRGVsYXlcIl18fFwiXCIpLnNwbGl0KFwiLCBcIiksYz0ocltPaStcIkR1cmF0aW9uXCJdfHxcIlwiKS5zcGxpdChcIiwgXCIpLHU9SWkocyxjKSxsPTAsZj0wO3JldHVybiB0PT09Q2k/YT4wJiYobj1DaSxsPWEsZj1vLmxlbmd0aCk6dD09PXhpP3U+MCYmKG49eGksbD11LGY9Yy5sZW5ndGgpOmY9KG49KGw9TWF0aC5tYXgoYSx1KSk+MD9hPnU/Q2k6eGk6bnVsbCk/bj09PUNpP28ubGVuZ3RoOmMubGVuZ3RoOjAse3R5cGU6bix0aW1lb3V0OmwscHJvcENvdW50OmYsaGFzVHJhbnNmb3JtOm49PT1DaSYmTGkudGVzdChyW2tpK1wiUHJvcGVydHlcIl0pfX1mdW5jdGlvbiBJaShlLHQpe2Zvcig7ZS5sZW5ndGg8dC5sZW5ndGg7KWU9ZS5jb25jYXQoZSk7cmV0dXJuIE1hdGgubWF4LmFwcGx5KG51bGwsdC5tYXAoZnVuY3Rpb24odCxuKXtyZXR1cm4gRmkodCkrRmkoZVtuXSl9KSl9ZnVuY3Rpb24gRmkoZSl7cmV0dXJuIDFlMypOdW1iZXIoZS5zbGljZSgwLC0xKS5yZXBsYWNlKFwiLFwiLFwiLlwiKSl9ZnVuY3Rpb24gUGkoZSxyKXt2YXIgaT1lLmVsbTtuKGkuX2xlYXZlQ2IpJiYoaS5fbGVhdmVDYi5jYW5jZWxsZWQ9ITAsaS5fbGVhdmVDYigpKTt2YXIgYT1iaShlLmRhdGEudHJhbnNpdGlvbik7aWYoIXQoYSkmJiFuKGkuX2VudGVyQ2IpJiYxPT09aS5ub2RlVHlwZSl7Zm9yKHZhciBzPWEuY3NzLGM9YS50eXBlLHU9YS5lbnRlckNsYXNzLGw9YS5lbnRlclRvQ2xhc3MscD1hLmVudGVyQWN0aXZlQ2xhc3MsZD1hLmFwcGVhckNsYXNzLHY9YS5hcHBlYXJUb0NsYXNzLGg9YS5hcHBlYXJBY3RpdmVDbGFzcyxtPWEuYmVmb3JlRW50ZXIseT1hLmVudGVyLGc9YS5hZnRlckVudGVyLF89YS5lbnRlckNhbmNlbGxlZCxiPWEuYmVmb3JlQXBwZWFyLCQ9YS5hcHBlYXIsdz1hLmFmdGVyQXBwZWFyLEM9YS5hcHBlYXJDYW5jZWxsZWQseD1hLmR1cmF0aW9uLGs9V3QsQT1XdC4kdm5vZGU7QSYmQS5wYXJlbnQ7KWs9QS5jb250ZXh0LEE9QS5wYXJlbnQ7dmFyIE89IWsuX2lzTW91bnRlZHx8IWUuaXNSb290SW5zZXJ0O2lmKCFPfHwkfHxcIlwiPT09JCl7dmFyIFM9TyYmZD9kOnUsVD1PJiZoP2g6cCxFPU8mJnY/djpsLE49TyYmYnx8bSxqPU8mJlwiZnVuY3Rpb25cIj09dHlwZW9mICQ/JDp5LEw9TyYmd3x8ZyxNPU8mJkN8fF8sST1mKG8oeCk/eC5lbnRlcjp4KSxGPSExIT09cyYmIVcsUD1CaShqKSxSPWkuX2VudGVyQ2I9RChmdW5jdGlvbigpe0YmJihqaShpLEUpLGppKGksVCkpLFIuY2FuY2VsbGVkPyhGJiZqaShpLFMpLE0mJk0oaSkpOkwmJkwoaSksaS5fZW50ZXJDYj1udWxsfSk7ZS5kYXRhLnNob3d8fGl0KGUsXCJpbnNlcnRcIixmdW5jdGlvbigpe3ZhciB0PWkucGFyZW50Tm9kZSxuPXQmJnQuX3BlbmRpbmcmJnQuX3BlbmRpbmdbZS5rZXldO24mJm4udGFnPT09ZS50YWcmJm4uZWxtLl9sZWF2ZUNiJiZuLmVsbS5fbGVhdmVDYigpLGomJmooaSxSKX0pLE4mJk4oaSksRiYmKE5pKGksUyksTmkoaSxUKSxFaShmdW5jdGlvbigpe2ppKGksUyksUi5jYW5jZWxsZWR8fChOaShpLEUpLFB8fChIaShJKT9zZXRUaW1lb3V0KFIsSSk6RGkoaSxjLFIpKSl9KSksZS5kYXRhLnNob3cmJihyJiZyKCksaiYmaihpLFIpKSxGfHxQfHxSKCl9fX1mdW5jdGlvbiBSaShlLHIpe3ZhciBpPWUuZWxtO24oaS5fZW50ZXJDYikmJihpLl9lbnRlckNiLmNhbmNlbGxlZD0hMCxpLl9lbnRlckNiKCkpO3ZhciBhPWJpKGUuZGF0YS50cmFuc2l0aW9uKTtpZih0KGEpfHwxIT09aS5ub2RlVHlwZSlyZXR1cm4gcigpO2lmKCFuKGkuX2xlYXZlQ2IpKXt2YXIgcz1hLmNzcyxjPWEudHlwZSx1PWEubGVhdmVDbGFzcyxsPWEubGVhdmVUb0NsYXNzLHA9YS5sZWF2ZUFjdGl2ZUNsYXNzLGQ9YS5iZWZvcmVMZWF2ZSx2PWEubGVhdmUsaD1hLmFmdGVyTGVhdmUsbT1hLmxlYXZlQ2FuY2VsbGVkLHk9YS5kZWxheUxlYXZlLGc9YS5kdXJhdGlvbixfPSExIT09cyYmIVcsYj1CaSh2KSwkPWYobyhnKT9nLmxlYXZlOmcpLHc9aS5fbGVhdmVDYj1EKGZ1bmN0aW9uKCl7aS5wYXJlbnROb2RlJiZpLnBhcmVudE5vZGUuX3BlbmRpbmcmJihpLnBhcmVudE5vZGUuX3BlbmRpbmdbZS5rZXldPW51bGwpLF8mJihqaShpLGwpLGppKGkscCkpLHcuY2FuY2VsbGVkPyhfJiZqaShpLHUpLG0mJm0oaSkpOihyKCksaCYmaChpKSksaS5fbGVhdmVDYj1udWxsfSk7eT95KEMpOkMoKX1mdW5jdGlvbiBDKCl7dy5jYW5jZWxsZWR8fCghZS5kYXRhLnNob3cmJmkucGFyZW50Tm9kZSYmKChpLnBhcmVudE5vZGUuX3BlbmRpbmd8fChpLnBhcmVudE5vZGUuX3BlbmRpbmc9e30pKVtlLmtleV09ZSksZCYmZChpKSxfJiYoTmkoaSx1KSxOaShpLHApLEVpKGZ1bmN0aW9uKCl7amkoaSx1KSx3LmNhbmNlbGxlZHx8KE5pKGksbCksYnx8KEhpKCQpP3NldFRpbWVvdXQodywkKTpEaShpLGMsdykpKX0pKSx2JiZ2KGksdyksX3x8Ynx8dygpKX19ZnVuY3Rpb24gSGkoZSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIGUmJiFpc05hTihlKX1mdW5jdGlvbiBCaShlKXtpZih0KGUpKXJldHVybiExO3ZhciByPWUuZm5zO3JldHVybiBuKHIpP0JpKEFycmF5LmlzQXJyYXkocik/clswXTpyKTooZS5fbGVuZ3RofHxlLmxlbmd0aCk+MX1mdW5jdGlvbiBVaShlLHQpeyEwIT09dC5kYXRhLnNob3cmJlBpKHQpfXZhciB6aT1mdW5jdGlvbihlKXt2YXIgbyxhLHM9e30sYz1lLm1vZHVsZXMsdT1lLm5vZGVPcHM7Zm9yKG89MDtvPHJyLmxlbmd0aDsrK28pZm9yKHNbcnJbb11dPVtdLGE9MDthPGMubGVuZ3RoOysrYSluKGNbYV1bcnJbb11dKSYmc1tycltvXV0ucHVzaChjW2FdW3JyW29dXSk7ZnVuY3Rpb24gbChlKXt2YXIgdD11LnBhcmVudE5vZGUoZSk7bih0KSYmdS5yZW1vdmVDaGlsZCh0LGUpfWZ1bmN0aW9uIGYoZSx0LGksbyxhLGMsbCl7aWYobihlLmVsbSkmJm4oYykmJihlPWNbbF09bWUoZSkpLGUuaXNSb290SW5zZXJ0PSFhLCFmdW5jdGlvbihlLHQsaSxvKXt2YXIgYT1lLmRhdGE7aWYobihhKSl7dmFyIGM9bihlLmNvbXBvbmVudEluc3RhbmNlKSYmYS5rZWVwQWxpdmU7aWYobihhPWEuaG9vaykmJm4oYT1hLmluaXQpJiZhKGUsITEpLG4oZS5jb21wb25lbnRJbnN0YW5jZSkpcmV0dXJuIGQoZSx0KSx2KGksZS5lbG0sbykscihjKSYmZnVuY3Rpb24oZSx0LHIsaSl7Zm9yKHZhciBvLGE9ZTthLmNvbXBvbmVudEluc3RhbmNlOylpZihhPWEuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLG4obz1hLmRhdGEpJiZuKG89by50cmFuc2l0aW9uKSl7Zm9yKG89MDtvPHMuYWN0aXZhdGUubGVuZ3RoOysrbylzLmFjdGl2YXRlW29dKG5yLGEpO3QucHVzaChhKTticmVha312KHIsZS5lbG0saSl9KGUsdCxpLG8pLCEwfX0oZSx0LGksbykpe3ZhciBmPWUuZGF0YSxwPWUuY2hpbGRyZW4sbT1lLnRhZztuKG0pPyhlLmVsbT1lLm5zP3UuY3JlYXRlRWxlbWVudE5TKGUubnMsbSk6dS5jcmVhdGVFbGVtZW50KG0sZSksZyhlKSxoKGUscCx0KSxuKGYpJiZ5KGUsdCksdihpLGUuZWxtLG8pKTpyKGUuaXNDb21tZW50KT8oZS5lbG09dS5jcmVhdGVDb21tZW50KGUudGV4dCksdihpLGUuZWxtLG8pKTooZS5lbG09dS5jcmVhdGVUZXh0Tm9kZShlLnRleHQpLHYoaSxlLmVsbSxvKSl9fWZ1bmN0aW9uIGQoZSx0KXtuKGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSYmKHQucHVzaC5hcHBseSh0LGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSxlLmRhdGEucGVuZGluZ0luc2VydD1udWxsKSxlLmVsbT1lLmNvbXBvbmVudEluc3RhbmNlLiRlbCxtKGUpPyh5KGUsdCksZyhlKSk6KHRyKGUpLHQucHVzaChlKSl9ZnVuY3Rpb24gdihlLHQscil7bihlKSYmKG4ocik/dS5wYXJlbnROb2RlKHIpPT09ZSYmdS5pbnNlcnRCZWZvcmUoZSx0LHIpOnUuYXBwZW5kQ2hpbGQoZSx0KSl9ZnVuY3Rpb24gaChlLHQsbil7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcilmKHRbcl0sbixlLmVsbSxudWxsLCEwLHQscik7ZWxzZSBpKGUudGV4dCkmJnUuYXBwZW5kQ2hpbGQoZS5lbG0sdS5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoZS50ZXh0KSkpfWZ1bmN0aW9uIG0oZSl7Zm9yKDtlLmNvbXBvbmVudEluc3RhbmNlOyllPWUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO3JldHVybiBuKGUudGFnKX1mdW5jdGlvbiB5KGUsdCl7Zm9yKHZhciByPTA7cjxzLmNyZWF0ZS5sZW5ndGg7KytyKXMuY3JlYXRlW3JdKG5yLGUpO24obz1lLmRhdGEuaG9vaykmJihuKG8uY3JlYXRlKSYmby5jcmVhdGUobnIsZSksbihvLmluc2VydCkmJnQucHVzaChlKSl9ZnVuY3Rpb24gZyhlKXt2YXIgdDtpZihuKHQ9ZS5mblNjb3BlSWQpKXUuc2V0U3R5bGVTY29wZShlLmVsbSx0KTtlbHNlIGZvcih2YXIgcj1lO3I7KW4odD1yLmNvbnRleHQpJiZuKHQ9dC4kb3B0aW9ucy5fc2NvcGVJZCkmJnUuc2V0U3R5bGVTY29wZShlLmVsbSx0KSxyPXIucGFyZW50O24odD1XdCkmJnQhPT1lLmNvbnRleHQmJnQhPT1lLmZuQ29udGV4dCYmbih0PXQuJG9wdGlvbnMuX3Njb3BlSWQpJiZ1LnNldFN0eWxlU2NvcGUoZS5lbG0sdCl9ZnVuY3Rpb24gXyhlLHQsbixyLGksbyl7Zm9yKDtyPD1pOysrcilmKG5bcl0sbyxlLHQsITEsbixyKX1mdW5jdGlvbiBiKGUpe3ZhciB0LHIsaT1lLmRhdGE7aWYobihpKSlmb3Iobih0PWkuaG9vaykmJm4odD10LmRlc3Ryb3kpJiZ0KGUpLHQ9MDt0PHMuZGVzdHJveS5sZW5ndGg7Kyt0KXMuZGVzdHJveVt0XShlKTtpZihuKHQ9ZS5jaGlsZHJlbikpZm9yKHI9MDtyPGUuY2hpbGRyZW4ubGVuZ3RoOysrciliKGUuY2hpbGRyZW5bcl0pfWZ1bmN0aW9uICQoZSx0LHIpe2Zvcig7dDw9cjsrK3Qpe3ZhciBpPWVbdF07bihpKSYmKG4oaS50YWcpPyh3KGkpLGIoaSkpOmwoaS5lbG0pKX19ZnVuY3Rpb24gdyhlLHQpe2lmKG4odCl8fG4oZS5kYXRhKSl7dmFyIHIsaT1zLnJlbW92ZS5sZW5ndGgrMTtmb3Iobih0KT90Lmxpc3RlbmVycys9aTp0PWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpezA9PS0tbi5saXN0ZW5lcnMmJmwoZSl9cmV0dXJuIG4ubGlzdGVuZXJzPXQsbn0oZS5lbG0saSksbihyPWUuY29tcG9uZW50SW5zdGFuY2UpJiZuKHI9ci5fdm5vZGUpJiZuKHIuZGF0YSkmJncocix0KSxyPTA7cjxzLnJlbW92ZS5sZW5ndGg7KytyKXMucmVtb3ZlW3JdKGUsdCk7bihyPWUuZGF0YS5ob29rKSYmbihyPXIucmVtb3ZlKT9yKGUsdCk6dCgpfWVsc2UgbChlLmVsbSl9ZnVuY3Rpb24gQyhlLHQscixpKXtmb3IodmFyIG89cjtvPGk7bysrKXt2YXIgYT10W29dO2lmKG4oYSkmJmlyKGUsYSkpcmV0dXJuIG99fWZ1bmN0aW9uIHgoZSxpLG8sYSxjLGwpe2lmKGUhPT1pKXtuKGkuZWxtKSYmbihhKSYmKGk9YVtjXT1tZShpKSk7dmFyIHA9aS5lbG09ZS5lbG07aWYocihlLmlzQXN5bmNQbGFjZWhvbGRlcikpbihpLmFzeW5jRmFjdG9yeS5yZXNvbHZlZCk/TyhlLmVsbSxpLG8pOmkuaXNBc3luY1BsYWNlaG9sZGVyPSEwO2Vsc2UgaWYocihpLmlzU3RhdGljKSYmcihlLmlzU3RhdGljKSYmaS5rZXk9PT1lLmtleSYmKHIoaS5pc0Nsb25lZCl8fHIoaS5pc09uY2UpKSlpLmNvbXBvbmVudEluc3RhbmNlPWUuY29tcG9uZW50SW5zdGFuY2U7ZWxzZXt2YXIgZCx2PWkuZGF0YTtuKHYpJiZuKGQ9di5ob29rKSYmbihkPWQucHJlcGF0Y2gpJiZkKGUsaSk7dmFyIGg9ZS5jaGlsZHJlbix5PWkuY2hpbGRyZW47aWYobih2KSYmbShpKSl7Zm9yKGQ9MDtkPHMudXBkYXRlLmxlbmd0aDsrK2Qpcy51cGRhdGVbZF0oZSxpKTtuKGQ9di5ob29rKSYmbihkPWQudXBkYXRlKSYmZChlLGkpfXQoaS50ZXh0KT9uKGgpJiZuKHkpP2ghPT15JiZmdW5jdGlvbihlLHIsaSxvLGEpe2Zvcih2YXIgcyxjLGwscD0wLGQ9MCx2PXIubGVuZ3RoLTEsaD1yWzBdLG09clt2XSx5PWkubGVuZ3RoLTEsZz1pWzBdLGI9aVt5XSx3PSFhO3A8PXYmJmQ8PXk7KXQoaCk/aD1yWysrcF06dChtKT9tPXJbLS12XTppcihoLGcpPyh4KGgsZyxvLGksZCksaD1yWysrcF0sZz1pWysrZF0pOmlyKG0sYik/KHgobSxiLG8saSx5KSxtPXJbLS12XSxiPWlbLS15XSk6aXIoaCxiKT8oeChoLGIsbyxpLHkpLHcmJnUuaW5zZXJ0QmVmb3JlKGUsaC5lbG0sdS5uZXh0U2libGluZyhtLmVsbSkpLGg9clsrK3BdLGI9aVstLXldKTppcihtLGcpPyh4KG0sZyxvLGksZCksdyYmdS5pbnNlcnRCZWZvcmUoZSxtLmVsbSxoLmVsbSksbT1yWy0tdl0sZz1pWysrZF0pOih0KHMpJiYocz1vcihyLHAsdikpLHQoYz1uKGcua2V5KT9zW2cua2V5XTpDKGcscixwLHYpKT9mKGcsbyxlLGguZWxtLCExLGksZCk6aXIobD1yW2NdLGcpPyh4KGwsZyxvLGksZCkscltjXT12b2lkIDAsdyYmdS5pbnNlcnRCZWZvcmUoZSxsLmVsbSxoLmVsbSkpOmYoZyxvLGUsaC5lbG0sITEsaSxkKSxnPWlbKytkXSk7cD52P18oZSx0KGlbeSsxXSk/bnVsbDppW3krMV0uZWxtLGksZCx5LG8pOmQ+eSYmJChyLHAsdil9KHAsaCx5LG8sbCk6bih5KT8obihlLnRleHQpJiZ1LnNldFRleHRDb250ZW50KHAsXCJcIiksXyhwLG51bGwseSwwLHkubGVuZ3RoLTEsbykpOm4oaCk/JChoLDAsaC5sZW5ndGgtMSk6bihlLnRleHQpJiZ1LnNldFRleHRDb250ZW50KHAsXCJcIik6ZS50ZXh0IT09aS50ZXh0JiZ1LnNldFRleHRDb250ZW50KHAsaS50ZXh0KSxuKHYpJiZuKGQ9di5ob29rKSYmbihkPWQucG9zdHBhdGNoKSYmZChlLGkpfX19ZnVuY3Rpb24gayhlLHQsaSl7aWYocihpKSYmbihlLnBhcmVudCkpZS5wYXJlbnQuZGF0YS5wZW5kaW5nSW5zZXJ0PXQ7ZWxzZSBmb3IodmFyIG89MDtvPHQubGVuZ3RoOysrbyl0W29dLmRhdGEuaG9vay5pbnNlcnQodFtvXSl9dmFyIEE9cChcImF0dHJzLGNsYXNzLHN0YXRpY0NsYXNzLHN0YXRpY1N0eWxlLGtleVwiKTtmdW5jdGlvbiBPKGUsdCxpLG8pe3ZhciBhLHM9dC50YWcsYz10LmRhdGEsdT10LmNoaWxkcmVuO2lmKG89b3x8YyYmYy5wcmUsdC5lbG09ZSxyKHQuaXNDb21tZW50KSYmbih0LmFzeW5jRmFjdG9yeSkpcmV0dXJuIHQuaXNBc3luY1BsYWNlaG9sZGVyPSEwLCEwO2lmKG4oYykmJihuKGE9Yy5ob29rKSYmbihhPWEuaW5pdCkmJmEodCwhMCksbihhPXQuY29tcG9uZW50SW5zdGFuY2UpKSlyZXR1cm4gZCh0LGkpLCEwO2lmKG4ocykpe2lmKG4odSkpaWYoZS5oYXNDaGlsZE5vZGVzKCkpaWYobihhPWMpJiZuKGE9YS5kb21Qcm9wcykmJm4oYT1hLmlubmVySFRNTCkpe2lmKGEhPT1lLmlubmVySFRNTClyZXR1cm4hMX1lbHNle2Zvcih2YXIgbD0hMCxmPWUuZmlyc3RDaGlsZCxwPTA7cDx1Lmxlbmd0aDtwKyspe2lmKCFmfHwhTyhmLHVbcF0saSxvKSl7bD0hMTticmVha31mPWYubmV4dFNpYmxpbmd9aWYoIWx8fGYpcmV0dXJuITF9ZWxzZSBoKHQsdSxpKTtpZihuKGMpKXt2YXIgdj0hMTtmb3IodmFyIG0gaW4gYylpZighQShtKSl7dj0hMCx5KHQsaSk7YnJlYWt9IXYmJmMuY2xhc3MmJmV0KGMuY2xhc3MpfX1lbHNlIGUuZGF0YSE9PXQudGV4dCYmKGUuZGF0YT10LnRleHQpO3JldHVybiEwfXJldHVybiBmdW5jdGlvbihlLGksbyxhKXtpZighdChpKSl7dmFyIGMsbD0hMSxwPVtdO2lmKHQoZSkpbD0hMCxmKGkscCk7ZWxzZXt2YXIgZD1uKGUubm9kZVR5cGUpO2lmKCFkJiZpcihlLGkpKXgoZSxpLHAsbnVsbCxudWxsLGEpO2Vsc2V7aWYoZCl7aWYoMT09PWUubm9kZVR5cGUmJmUuaGFzQXR0cmlidXRlKEwpJiYoZS5yZW1vdmVBdHRyaWJ1dGUoTCksbz0hMCkscihvKSYmTyhlLGkscCkpcmV0dXJuIGsoaSxwLCEwKSxlO2M9ZSxlPW5ldyBwZSh1LnRhZ05hbWUoYykudG9Mb3dlckNhc2UoKSx7fSxbXSx2b2lkIDAsYyl9dmFyIHY9ZS5lbG0saD11LnBhcmVudE5vZGUodik7aWYoZihpLHAsdi5fbGVhdmVDYj9udWxsOmgsdS5uZXh0U2libGluZyh2KSksbihpLnBhcmVudCkpZm9yKHZhciB5PWkucGFyZW50LGc9bShpKTt5Oyl7Zm9yKHZhciBfPTA7XzxzLmRlc3Ryb3kubGVuZ3RoOysrXylzLmRlc3Ryb3lbX10oeSk7aWYoeS5lbG09aS5lbG0sZyl7Zm9yKHZhciB3PTA7dzxzLmNyZWF0ZS5sZW5ndGg7Kyt3KXMuY3JlYXRlW3ddKG5yLHkpO3ZhciBDPXkuZGF0YS5ob29rLmluc2VydDtpZihDLm1lcmdlZClmb3IodmFyIEE9MTtBPEMuZm5zLmxlbmd0aDtBKyspQy5mbnNbQV0oKX1lbHNlIHRyKHkpO3k9eS5wYXJlbnR9bihoKT8kKFtlXSwwLDApOm4oZS50YWcpJiZiKGUpfX1yZXR1cm4gayhpLHAsbCksaS5lbG19bihlKSYmYihlKX19KHtub2RlT3BzOlFuLG1vZHVsZXM6W21yLHhyLG5pLG9pLG1pLHo/e2NyZWF0ZTpVaSxhY3RpdmF0ZTpVaSxyZW1vdmU6ZnVuY3Rpb24oZSx0KXshMCE9PWUuZGF0YS5zaG93P1JpKGUsdCk6dCgpfX06e31dLmNvbmNhdChwcil9KTtXJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwic2VsZWN0aW9uY2hhbmdlXCIsZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2UmJmUudm1vZGVsJiZYaShlLFwiaW5wdXRcIil9KTt2YXIgVmk9e2luc2VydGVkOmZ1bmN0aW9uKGUsdCxuLHIpe1wic2VsZWN0XCI9PT1uLnRhZz8oci5lbG0mJiFyLmVsbS5fdk9wdGlvbnM/aXQobixcInBvc3RwYXRjaFwiLGZ1bmN0aW9uKCl7VmkuY29tcG9uZW50VXBkYXRlZChlLHQsbil9KTpLaShlLHQsbi5jb250ZXh0KSxlLl92T3B0aW9ucz1bXS5tYXAuY2FsbChlLm9wdGlvbnMsV2kpKTooXCJ0ZXh0YXJlYVwiPT09bi50YWd8fFhuKGUudHlwZSkpJiYoZS5fdk1vZGlmaWVycz10Lm1vZGlmaWVycyx0Lm1vZGlmaWVycy5sYXp5fHwoZS5hZGRFdmVudExpc3RlbmVyKFwiY29tcG9zaXRpb25zdGFydFwiLFppKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLEdpKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIixHaSksVyYmKGUudm1vZGVsPSEwKSkpfSxjb21wb25lbnRVcGRhdGVkOmZ1bmN0aW9uKGUsdCxuKXtpZihcInNlbGVjdFwiPT09bi50YWcpe0tpKGUsdCxuLmNvbnRleHQpO3ZhciByPWUuX3ZPcHRpb25zLGk9ZS5fdk9wdGlvbnM9W10ubWFwLmNhbGwoZS5vcHRpb25zLFdpKTtpZihpLnNvbWUoZnVuY3Rpb24oZSx0KXtyZXR1cm4hTihlLHJbdF0pfSkpKGUubXVsdGlwbGU/dC52YWx1ZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBxaShlLGkpfSk6dC52YWx1ZSE9PXQub2xkVmFsdWUmJnFpKHQudmFsdWUsaSkpJiZYaShlLFwiY2hhbmdlXCIpfX19O2Z1bmN0aW9uIEtpKGUsdCxuKXtKaShlLHQsbiksKHF8fFopJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7SmkoZSx0LG4pfSwwKX1mdW5jdGlvbiBKaShlLHQsbil7dmFyIHI9dC52YWx1ZSxpPWUubXVsdGlwbGU7aWYoIWl8fEFycmF5LmlzQXJyYXkocikpe2Zvcih2YXIgbyxhLHM9MCxjPWUub3B0aW9ucy5sZW5ndGg7czxjO3MrKylpZihhPWUub3B0aW9uc1tzXSxpKW89aihyLFdpKGEpKT4tMSxhLnNlbGVjdGVkIT09byYmKGEuc2VsZWN0ZWQ9byk7ZWxzZSBpZihOKFdpKGEpLHIpKXJldHVybiB2b2lkKGUuc2VsZWN0ZWRJbmRleCE9PXMmJihlLnNlbGVjdGVkSW5kZXg9cykpO2l8fChlLnNlbGVjdGVkSW5kZXg9LTEpfX1mdW5jdGlvbiBxaShlLHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiFOKHQsZSl9KX1mdW5jdGlvbiBXaShlKXtyZXR1cm5cIl92YWx1ZVwiaW4gZT9lLl92YWx1ZTplLnZhbHVlfWZ1bmN0aW9uIFppKGUpe2UudGFyZ2V0LmNvbXBvc2luZz0hMH1mdW5jdGlvbiBHaShlKXtlLnRhcmdldC5jb21wb3NpbmcmJihlLnRhcmdldC5jb21wb3Npbmc9ITEsWGkoZS50YXJnZXQsXCJpbnB1dFwiKSl9ZnVuY3Rpb24gWGkoZSx0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFdmVudChcIkhUTUxFdmVudHNcIik7bi5pbml0RXZlbnQodCwhMCwhMCksZS5kaXNwYXRjaEV2ZW50KG4pfWZ1bmN0aW9uIFlpKGUpe3JldHVybiFlLmNvbXBvbmVudEluc3RhbmNlfHxlLmRhdGEmJmUuZGF0YS50cmFuc2l0aW9uP2U6WWkoZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpfXZhciBRaT17bW9kZWw6Vmksc2hvdzp7YmluZDpmdW5jdGlvbihlLHQsbil7dmFyIHI9dC52YWx1ZSxpPShuPVlpKG4pKS5kYXRhJiZuLmRhdGEudHJhbnNpdGlvbixvPWUuX192T3JpZ2luYWxEaXNwbGF5PVwibm9uZVwiPT09ZS5zdHlsZS5kaXNwbGF5P1wiXCI6ZS5zdHlsZS5kaXNwbGF5O3ImJmk/KG4uZGF0YS5zaG93PSEwLFBpKG4sZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9b30pKTplLnN0eWxlLmRpc3BsYXk9cj9vOlwibm9uZVwifSx1cGRhdGU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQudmFsdWU7IXIhPSF0Lm9sZFZhbHVlJiYoKG49WWkobikpLmRhdGEmJm4uZGF0YS50cmFuc2l0aW9uPyhuLmRhdGEuc2hvdz0hMCxyP1BpKG4sZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9ZS5fX3ZPcmlnaW5hbERpc3BsYXl9KTpSaShuLGZ1bmN0aW9uKCl7ZS5zdHlsZS5kaXNwbGF5PVwibm9uZVwifSkpOmUuc3R5bGUuZGlzcGxheT1yP2UuX192T3JpZ2luYWxEaXNwbGF5Olwibm9uZVwiKX0sdW5iaW5kOmZ1bmN0aW9uKGUsdCxuLHIsaSl7aXx8KGUuc3R5bGUuZGlzcGxheT1lLl9fdk9yaWdpbmFsRGlzcGxheSl9fX0sZW89e25hbWU6U3RyaW5nLGFwcGVhcjpCb29sZWFuLGNzczpCb29sZWFuLG1vZGU6U3RyaW5nLHR5cGU6U3RyaW5nLGVudGVyQ2xhc3M6U3RyaW5nLGxlYXZlQ2xhc3M6U3RyaW5nLGVudGVyVG9DbGFzczpTdHJpbmcsbGVhdmVUb0NsYXNzOlN0cmluZyxlbnRlckFjdGl2ZUNsYXNzOlN0cmluZyxsZWF2ZUFjdGl2ZUNsYXNzOlN0cmluZyxhcHBlYXJDbGFzczpTdHJpbmcsYXBwZWFyQWN0aXZlQ2xhc3M6U3RyaW5nLGFwcGVhclRvQ2xhc3M6U3RyaW5nLGR1cmF0aW9uOltOdW1iZXIsU3RyaW5nLE9iamVjdF19O2Z1bmN0aW9uIHRvKGUpe3ZhciB0PWUmJmUuY29tcG9uZW50T3B0aW9ucztyZXR1cm4gdCYmdC5DdG9yLm9wdGlvbnMuYWJzdHJhY3Q/dG8oenQodC5jaGlsZHJlbikpOmV9ZnVuY3Rpb24gbm8oZSl7dmFyIHQ9e30sbj1lLiRvcHRpb25zO2Zvcih2YXIgciBpbiBuLnByb3BzRGF0YSl0W3JdPWVbcl07dmFyIGk9bi5fcGFyZW50TGlzdGVuZXJzO2Zvcih2YXIgbyBpbiBpKXRbYihvKV09aVtvXTtyZXR1cm4gdH1mdW5jdGlvbiBybyhlLHQpe2lmKC9cXGQta2VlcC1hbGl2ZSQvLnRlc3QodC50YWcpKXJldHVybiBlKFwia2VlcC1hbGl2ZVwiLHtwcm9wczp0LmNvbXBvbmVudE9wdGlvbnMucHJvcHNEYXRhfSl9dmFyIGlvPWZ1bmN0aW9uKGUpe3JldHVybiBlLnRhZ3x8VXQoZSl9LG9vPWZ1bmN0aW9uKGUpe3JldHVyblwic2hvd1wiPT09ZS5uYW1lfSxhbz17bmFtZTpcInRyYW5zaXRpb25cIixwcm9wczplbyxhYnN0cmFjdDohMCxyZW5kZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXRoaXMuJHNsb3RzLmRlZmF1bHQ7aWYobiYmKG49bi5maWx0ZXIoaW8pKS5sZW5ndGgpe3ZhciByPXRoaXMubW9kZSxvPW5bMF07aWYoZnVuY3Rpb24oZSl7Zm9yKDtlPWUucGFyZW50OylpZihlLmRhdGEudHJhbnNpdGlvbilyZXR1cm4hMH0odGhpcy4kdm5vZGUpKXJldHVybiBvO3ZhciBhPXRvKG8pO2lmKCFhKXJldHVybiBvO2lmKHRoaXMuX2xlYXZpbmcpcmV0dXJuIHJvKGUsbyk7dmFyIHM9XCJfX3RyYW5zaXRpb24tXCIrdGhpcy5fdWlkK1wiLVwiO2Eua2V5PW51bGw9PWEua2V5P2EuaXNDb21tZW50P3MrXCJjb21tZW50XCI6cythLnRhZzppKGEua2V5KT8wPT09U3RyaW5nKGEua2V5KS5pbmRleE9mKHMpP2Eua2V5OnMrYS5rZXk6YS5rZXk7dmFyIGM9KGEuZGF0YXx8KGEuZGF0YT17fSkpLnRyYW5zaXRpb249bm8odGhpcyksdT10aGlzLl92bm9kZSxsPXRvKHUpO2lmKGEuZGF0YS5kaXJlY3RpdmVzJiZhLmRhdGEuZGlyZWN0aXZlcy5zb21lKG9vKSYmKGEuZGF0YS5zaG93PSEwKSxsJiZsLmRhdGEmJiFmdW5jdGlvbihlLHQpe3JldHVybiB0LmtleT09PWUua2V5JiZ0LnRhZz09PWUudGFnfShhLGwpJiYhVXQobCkmJighbC5jb21wb25lbnRJbnN0YW5jZXx8IWwuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLmlzQ29tbWVudCkpe3ZhciBmPWwuZGF0YS50cmFuc2l0aW9uPUEoe30sYyk7aWYoXCJvdXQtaW5cIj09PXIpcmV0dXJuIHRoaXMuX2xlYXZpbmc9ITAsaXQoZixcImFmdGVyTGVhdmVcIixmdW5jdGlvbigpe3QuX2xlYXZpbmc9ITEsdC4kZm9yY2VVcGRhdGUoKX0pLHJvKGUsbyk7aWYoXCJpbi1vdXRcIj09PXIpe2lmKFV0KGEpKXJldHVybiB1O3ZhciBwLGQ9ZnVuY3Rpb24oKXtwKCl9O2l0KGMsXCJhZnRlckVudGVyXCIsZCksaXQoYyxcImVudGVyQ2FuY2VsbGVkXCIsZCksaXQoZixcImRlbGF5TGVhdmVcIixmdW5jdGlvbihlKXtwPWV9KX19cmV0dXJuIG99fX0sc289QSh7dGFnOlN0cmluZyxtb3ZlQ2xhc3M6U3RyaW5nfSxlbyk7ZnVuY3Rpb24gY28oZSl7ZS5lbG0uX21vdmVDYiYmZS5lbG0uX21vdmVDYigpLGUuZWxtLl9lbnRlckNiJiZlLmVsbS5fZW50ZXJDYigpfWZ1bmN0aW9uIHVvKGUpe2UuZGF0YS5uZXdQb3M9ZS5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9ZnVuY3Rpb24gbG8oZSl7dmFyIHQ9ZS5kYXRhLnBvcyxuPWUuZGF0YS5uZXdQb3Mscj10LmxlZnQtbi5sZWZ0LGk9dC50b3Atbi50b3A7aWYocnx8aSl7ZS5kYXRhLm1vdmVkPSEwO3ZhciBvPWUuZWxtLnN0eWxlO28udHJhbnNmb3JtPW8uV2Via2l0VHJhbnNmb3JtPVwidHJhbnNsYXRlKFwiK3IrXCJweCxcIitpK1wicHgpXCIsby50cmFuc2l0aW9uRHVyYXRpb249XCIwc1wifX1kZWxldGUgc28ubW9kZTt2YXIgZm89e1RyYW5zaXRpb246YW8sVHJhbnNpdGlvbkdyb3VwOntwcm9wczpzbyxiZWZvcmVNb3VudDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl91cGRhdGU7dGhpcy5fdXBkYXRlPWZ1bmN0aW9uKG4scil7dmFyIGk9WnQoZSk7ZS5fX3BhdGNoX18oZS5fdm5vZGUsZS5rZXB0LCExLCEwKSxlLl92bm9kZT1lLmtlcHQsaSgpLHQuY2FsbChlLG4scil9fSxyZW5kZXI6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMudGFnfHx0aGlzLiR2bm9kZS5kYXRhLnRhZ3x8XCJzcGFuXCIsbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9dGhpcy5wcmV2Q2hpbGRyZW49dGhpcy5jaGlsZHJlbixpPXRoaXMuJHNsb3RzLmRlZmF1bHR8fFtdLG89dGhpcy5jaGlsZHJlbj1bXSxhPW5vKHRoaXMpLHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGM9aVtzXTtjLnRhZyYmbnVsbCE9Yy5rZXkmJjAhPT1TdHJpbmcoYy5rZXkpLmluZGV4T2YoXCJfX3ZsaXN0XCIpJiYoby5wdXNoKGMpLG5bYy5rZXldPWMsKGMuZGF0YXx8KGMuZGF0YT17fSkpLnRyYW5zaXRpb249YSl9aWYocil7Zm9yKHZhciB1PVtdLGw9W10sZj0wO2Y8ci5sZW5ndGg7ZisrKXt2YXIgcD1yW2ZdO3AuZGF0YS50cmFuc2l0aW9uPWEscC5kYXRhLnBvcz1wLmVsbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuW3Aua2V5XT91LnB1c2gocCk6bC5wdXNoKHApfXRoaXMua2VwdD1lKHQsbnVsbCx1KSx0aGlzLnJlbW92ZWQ9bH1yZXR1cm4gZSh0LG51bGwsbyl9LHVwZGF0ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByZXZDaGlsZHJlbix0PXRoaXMubW92ZUNsYXNzfHwodGhpcy5uYW1lfHxcInZcIikrXCItbW92ZVwiO2UubGVuZ3RoJiZ0aGlzLmhhc01vdmUoZVswXS5lbG0sdCkmJihlLmZvckVhY2goY28pLGUuZm9yRWFjaCh1byksZS5mb3JFYWNoKGxvKSx0aGlzLl9yZWZsb3c9ZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGUuZGF0YS5tb3ZlZCl7dmFyIG49ZS5lbG0scj1uLnN0eWxlO05pKG4sdCksci50cmFuc2Zvcm09ci5XZWJraXRUcmFuc2Zvcm09ci50cmFuc2l0aW9uRHVyYXRpb249XCJcIixuLmFkZEV2ZW50TGlzdGVuZXIoQWksbi5fbW92ZUNiPWZ1bmN0aW9uIGUocil7ciYmci50YXJnZXQhPT1ufHxyJiYhL3RyYW5zZm9ybSQvLnRlc3Qoci5wcm9wZXJ0eU5hbWUpfHwobi5yZW1vdmVFdmVudExpc3RlbmVyKEFpLGUpLG4uX21vdmVDYj1udWxsLGppKG4sdCkpfSl9fSkpfSxtZXRob2RzOntoYXNNb3ZlOmZ1bmN0aW9uKGUsdCl7aWYoIXdpKXJldHVybiExO2lmKHRoaXMuX2hhc01vdmUpcmV0dXJuIHRoaXMuX2hhc01vdmU7dmFyIG49ZS5jbG9uZU5vZGUoKTtlLl90cmFuc2l0aW9uQ2xhc3NlcyYmZS5fdHJhbnNpdGlvbkNsYXNzZXMuZm9yRWFjaChmdW5jdGlvbihlKXtfaShuLGUpfSksZ2kobix0KSxuLnN0eWxlLmRpc3BsYXk9XCJub25lXCIsdGhpcy4kZWwuYXBwZW5kQ2hpbGQobik7dmFyIHI9TWkobik7cmV0dXJuIHRoaXMuJGVsLnJlbW92ZUNoaWxkKG4pLHRoaXMuX2hhc01vdmU9ci5oYXNUcmFuc2Zvcm19fX19O3duLmNvbmZpZy5tdXN0VXNlUHJvcD1qbix3bi5jb25maWcuaXNSZXNlcnZlZFRhZz1Xbix3bi5jb25maWcuaXNSZXNlcnZlZEF0dHI9RW4sd24uY29uZmlnLmdldFRhZ05hbWVzcGFjZT1abix3bi5jb25maWcuaXNVbmtub3duRWxlbWVudD1mdW5jdGlvbihlKXtpZigheilyZXR1cm4hMDtpZihXbihlKSlyZXR1cm4hMTtpZihlPWUudG9Mb3dlckNhc2UoKSxudWxsIT1HbltlXSlyZXR1cm4gR25bZV07dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4gZS5pbmRleE9mKFwiLVwiKT4tMT9HbltlXT10LmNvbnN0cnVjdG9yPT09d2luZG93LkhUTUxVbmtub3duRWxlbWVudHx8dC5jb25zdHJ1Y3Rvcj09PXdpbmRvdy5IVE1MRWxlbWVudDpHbltlXT0vSFRNTFVua25vd25FbGVtZW50Ly50ZXN0KHQudG9TdHJpbmcoKSl9LEEod24ub3B0aW9ucy5kaXJlY3RpdmVzLFFpKSxBKHduLm9wdGlvbnMuY29tcG9uZW50cyxmbyksd24ucHJvdG90eXBlLl9fcGF0Y2hfXz16P3ppOlMsd24ucHJvdG90eXBlLiRtb3VudD1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihlLHQsbil7dmFyIHI7cmV0dXJuIGUuJGVsPXQsZS4kb3B0aW9ucy5yZW5kZXJ8fChlLiRvcHRpb25zLnJlbmRlcj12ZSksWXQoZSxcImJlZm9yZU1vdW50XCIpLHI9ZnVuY3Rpb24oKXtlLl91cGRhdGUoZS5fcmVuZGVyKCksbil9LG5ldyBmbihlLHIsUyx7YmVmb3JlOmZ1bmN0aW9uKCl7ZS5faXNNb3VudGVkJiYhZS5faXNEZXN0cm95ZWQmJll0KGUsXCJiZWZvcmVVcGRhdGVcIil9fSwhMCksbj0hMSxudWxsPT1lLiR2bm9kZSYmKGUuX2lzTW91bnRlZD0hMCxZdChlLFwibW91bnRlZFwiKSksZX0odGhpcyxlPWUmJno/WW4oZSk6dm9pZCAwLHQpfSx6JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Ri5kZXZ0b29scyYmbmUmJm5lLmVtaXQoXCJpbml0XCIsd24pfSwwKTt2YXIgcG89L1xce1xceygoPzoufFxccj9cXG4pKz8pXFx9XFx9L2csdm89L1stLiorP14ke30oKXxbXFxdXFwvXFxcXF0vZyxobz1nKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0ucmVwbGFjZSh2byxcIlxcXFwkJlwiKSxuPWVbMV0ucmVwbGFjZSh2byxcIlxcXFwkJlwiKTtyZXR1cm4gbmV3IFJlZ0V4cCh0K1wiKCg/Oi58XFxcXG4pKz8pXCIrbixcImdcIil9KTt2YXIgbW89e3N0YXRpY0tleXM6W1wic3RhdGljQ2xhc3NcIl0sdHJhbnNmb3JtTm9kZTpmdW5jdGlvbihlLHQpe3Qud2Fybjt2YXIgbj1GcihlLFwiY2xhc3NcIik7biYmKGUuc3RhdGljQ2xhc3M9SlNPTi5zdHJpbmdpZnkobikpO3ZhciByPUlyKGUsXCJjbGFzc1wiLCExKTtyJiYoZS5jbGFzc0JpbmRpbmc9cil9LGdlbkRhdGE6ZnVuY3Rpb24oZSl7dmFyIHQ9XCJcIjtyZXR1cm4gZS5zdGF0aWNDbGFzcyYmKHQrPVwic3RhdGljQ2xhc3M6XCIrZS5zdGF0aWNDbGFzcytcIixcIiksZS5jbGFzc0JpbmRpbmcmJih0Kz1cImNsYXNzOlwiK2UuY2xhc3NCaW5kaW5nK1wiLFwiKSx0fX07dmFyIHlvLGdvPXtzdGF0aWNLZXlzOltcInN0YXRpY1N0eWxlXCJdLHRyYW5zZm9ybU5vZGU6ZnVuY3Rpb24oZSx0KXt0Lndhcm47dmFyIG49RnIoZSxcInN0eWxlXCIpO24mJihlLnN0YXRpY1N0eWxlPUpTT04uc3RyaW5naWZ5KGFpKG4pKSk7dmFyIHI9SXIoZSxcInN0eWxlXCIsITEpO3ImJihlLnN0eWxlQmluZGluZz1yKX0sZ2VuRGF0YTpmdW5jdGlvbihlKXt2YXIgdD1cIlwiO3JldHVybiBlLnN0YXRpY1N0eWxlJiYodCs9XCJzdGF0aWNTdHlsZTpcIitlLnN0YXRpY1N0eWxlK1wiLFwiKSxlLnN0eWxlQmluZGluZyYmKHQrPVwic3R5bGU6KFwiK2Uuc3R5bGVCaW5kaW5nK1wiKSxcIiksdH19LF9vPWZ1bmN0aW9uKGUpe3JldHVybih5bz15b3x8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSkuaW5uZXJIVE1MPWUseW8udGV4dENvbnRlbnR9LGJvPXAoXCJhcmVhLGJhc2UsYnIsY29sLGVtYmVkLGZyYW1lLGhyLGltZyxpbnB1dCxpc2luZGV4LGtleWdlbixsaW5rLG1ldGEscGFyYW0sc291cmNlLHRyYWNrLHdiclwiKSwkbz1wKFwiY29sZ3JvdXAsZGQsZHQsbGksb3B0aW9ucyxwLHRkLHRmb290LHRoLHRoZWFkLHRyLHNvdXJjZVwiKSx3bz1wKFwiYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGJhc2UsYmxvY2txdW90ZSxib2R5LGNhcHRpb24sY29sLGNvbGdyb3VwLGRkLGRldGFpbHMsZGlhbG9nLGRpdixkbCxkdCxmaWVsZHNldCxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsZm9ybSxoMSxoMixoMyxoNCxoNSxoNixoZWFkLGhlYWRlcixoZ3JvdXAsaHIsaHRtbCxsZWdlbmQsbGksbWVudWl0ZW0sbWV0YSxvcHRncm91cCxvcHRpb24scGFyYW0scnAscnQsc291cmNlLHN0eWxlLHN1bW1hcnksdGJvZHksdGQsdGZvb3QsdGgsdGhlYWQsdGl0bGUsdHIsdHJhY2tcIiksQ289L15cXHMqKFteXFxzXCInPD5cXC89XSspKD86XFxzKig9KVxccyooPzpcIihbXlwiXSopXCIrfCcoW14nXSopJyt8KFteXFxzXCInPTw+YF0rKSkpPy8seG89L15cXHMqKCg/OnYtW1xcdy1dKzp8QHw6fCMpXFxbW149XStcXF1bXlxcc1wiJzw+XFwvPV0qKSg/OlxccyooPSlcXHMqKD86XCIoW15cIl0qKVwiK3wnKFteJ10qKScrfChbXlxcc1wiJz08PmBdKykpKT8vLGtvPVwiW2EtekEtWl9dW1xcXFwtXFxcXC4wLTlfYS16QS1aXCIrUC5zb3VyY2UrXCJdKlwiLEFvPVwiKCg/OlwiK2tvK1wiXFxcXDopP1wiK2tvK1wiKVwiLE9vPW5ldyBSZWdFeHAoXCJePFwiK0FvKSxTbz0vXlxccyooXFwvPyk+LyxUbz1uZXcgUmVnRXhwKFwiXjxcXFxcL1wiK0FvK1wiW14+XSo+XCIpLEVvPS9ePCFET0NUWVBFIFtePl0rPi9pLE5vPS9ePCFcXC0tLyxqbz0vXjwhXFxbLyxEbz1wKFwic2NyaXB0LHN0eWxlLHRleHRhcmVhXCIsITApLExvPXt9LE1vPXtcIiZsdDtcIjpcIjxcIixcIiZndDtcIjpcIj5cIixcIiZxdW90O1wiOidcIicsXCImYW1wO1wiOlwiJlwiLFwiJiMxMDtcIjpcIlxcblwiLFwiJiM5O1wiOlwiXFx0XCIsXCImIzM5O1wiOlwiJ1wifSxJbz0vJig/Omx0fGd0fHF1b3R8YW1wfCMzOSk7L2csRm89LyYoPzpsdHxndHxxdW90fGFtcHwjMzl8IzEwfCM5KTsvZyxQbz1wKFwicHJlLHRleHRhcmVhXCIsITApLFJvPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJlBvKGUpJiZcIlxcblwiPT09dFswXX07ZnVuY3Rpb24gSG8oZSx0KXt2YXIgbj10P0ZvOklvO3JldHVybiBlLnJlcGxhY2UobixmdW5jdGlvbihlKXtyZXR1cm4gTW9bZV19KX12YXIgQm8sVW8sem8sVm8sS28sSm8scW8sV28sWm89L15AfF52LW9uOi8sR289L152LXxeQHxeOnxeIy8sWG89LyhbXFxzXFxTXSo/KVxccysoPzppbnxvZilcXHMrKFtcXHNcXFNdKikvLFlvPS8sKFteLFxcfVxcXV0qKSg/OiwoW14sXFx9XFxdXSopKT8kLyxRbz0vXlxcKHxcXCkkL2csZWE9L15cXFsuKlxcXSQvLHRhPS86KC4qKSQvLG5hPS9eOnxeXFwufF52LWJpbmQ6LyxyYT0vXFwuW14uXFxdXSsoPz1bXlxcXV0qJCkvZyxpYT0vXnYtc2xvdCg6fCQpfF4jLyxvYT0vW1xcclxcbl0vLGFhPS9cXHMrL2csc2E9ZyhfbyksY2E9XCJfZW1wdHlfXCI7ZnVuY3Rpb24gdWEoZSx0LG4pe3JldHVybnt0eXBlOjEsdGFnOmUsYXR0cnNMaXN0OnQsYXR0cnNNYXA6bWEodCkscmF3QXR0cnNNYXA6e30scGFyZW50Om4sY2hpbGRyZW46W119fWZ1bmN0aW9uIGxhKGUsdCl7Qm89dC53YXJufHxTcixKbz10LmlzUHJlVGFnfHxULHFvPXQubXVzdFVzZVByb3B8fFQsV289dC5nZXRUYWdOYW1lc3BhY2V8fFQ7dC5pc1Jlc2VydmVkVGFnO3pvPVRyKHQubW9kdWxlcyxcInRyYW5zZm9ybU5vZGVcIiksVm89VHIodC5tb2R1bGVzLFwicHJlVHJhbnNmb3JtTm9kZVwiKSxLbz1Ucih0Lm1vZHVsZXMsXCJwb3N0VHJhbnNmb3JtTm9kZVwiKSxVbz10LmRlbGltaXRlcnM7dmFyIG4scixpPVtdLG89ITEhPT10LnByZXNlcnZlV2hpdGVzcGFjZSxhPXQud2hpdGVzcGFjZSxzPSExLGM9ITE7ZnVuY3Rpb24gdShlKXtpZihsKGUpLHN8fGUucHJvY2Vzc2VkfHwoZT1mYShlLHQpKSxpLmxlbmd0aHx8ZT09PW58fG4uaWYmJihlLmVsc2VpZnx8ZS5lbHNlKSYmZGEobix7ZXhwOmUuZWxzZWlmLGJsb2NrOmV9KSxyJiYhZS5mb3JiaWRkZW4paWYoZS5lbHNlaWZ8fGUuZWxzZSlhPWUsKHU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGg7Zm9yKDt0LS07KXtpZigxPT09ZVt0XS50eXBlKXJldHVybiBlW3RdO2UucG9wKCl9fShyLmNoaWxkcmVuKSkmJnUuaWYmJmRhKHUse2V4cDphLmVsc2VpZixibG9jazphfSk7ZWxzZXtpZihlLnNsb3RTY29wZSl7dmFyIG89ZS5zbG90VGFyZ2V0fHwnXCJkZWZhdWx0XCInOyhyLnNjb3BlZFNsb3RzfHwoci5zY29wZWRTbG90cz17fSkpW29dPWV9ci5jaGlsZHJlbi5wdXNoKGUpLGUucGFyZW50PXJ9dmFyIGEsdTtlLmNoaWxkcmVuPWUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFlLnNsb3RTY29wZX0pLGwoZSksZS5wcmUmJihzPSExKSxKbyhlLnRhZykmJihjPSExKTtmb3IodmFyIGY9MDtmPEtvLmxlbmd0aDtmKyspS29bZl0oZSx0KX1mdW5jdGlvbiBsKGUpe2lmKCFjKWZvcih2YXIgdDsodD1lLmNoaWxkcmVuW2UuY2hpbGRyZW4ubGVuZ3RoLTFdKSYmMz09PXQudHlwZSYmXCIgXCI9PT10LnRleHQ7KWUuY2hpbGRyZW4ucG9wKCl9cmV0dXJuIGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuLHIsaT1bXSxvPXQuZXhwZWN0SFRNTCxhPXQuaXNVbmFyeVRhZ3x8VCxzPXQuY2FuQmVMZWZ0T3BlblRhZ3x8VCxjPTA7ZTspe2lmKG49ZSxyJiZEbyhyKSl7dmFyIHU9MCxsPXIudG9Mb3dlckNhc2UoKSxmPUxvW2xdfHwoTG9bbF09bmV3IFJlZ0V4cChcIihbXFxcXHNcXFxcU10qPykoPC9cIitsK1wiW14+XSo+KVwiLFwiaVwiKSkscD1lLnJlcGxhY2UoZixmdW5jdGlvbihlLG4scil7cmV0dXJuIHU9ci5sZW5ndGgsRG8obCl8fFwibm9zY3JpcHRcIj09PWx8fChuPW4ucmVwbGFjZSgvPCFcXC0tKFtcXHNcXFNdKj8pLS0+L2csXCIkMVwiKS5yZXBsYWNlKC88IVxcW0NEQVRBXFxbKFtcXHNcXFNdKj8pXV0+L2csXCIkMVwiKSksUm8obCxuKSYmKG49bi5zbGljZSgxKSksdC5jaGFycyYmdC5jaGFycyhuKSxcIlwifSk7Yys9ZS5sZW5ndGgtcC5sZW5ndGgsZT1wLEEobCxjLXUsYyl9ZWxzZXt2YXIgZD1lLmluZGV4T2YoXCI8XCIpO2lmKDA9PT1kKXtpZihOby50ZXN0KGUpKXt2YXIgdj1lLmluZGV4T2YoXCItLVxceDNlXCIpO2lmKHY+PTApe3Quc2hvdWxkS2VlcENvbW1lbnQmJnQuY29tbWVudChlLnN1YnN0cmluZyg0LHYpLGMsYyt2KzMpLEModiszKTtjb250aW51ZX19aWYoam8udGVzdChlKSl7dmFyIGg9ZS5pbmRleE9mKFwiXT5cIik7aWYoaD49MCl7QyhoKzIpO2NvbnRpbnVlfX12YXIgbT1lLm1hdGNoKEVvKTtpZihtKXtDKG1bMF0ubGVuZ3RoKTtjb250aW51ZX12YXIgeT1lLm1hdGNoKFRvKTtpZih5KXt2YXIgZz1jO0MoeVswXS5sZW5ndGgpLEEoeVsxXSxnLGMpO2NvbnRpbnVlfXZhciBfPXgoKTtpZihfKXtrKF8pLFJvKF8udGFnTmFtZSxlKSYmQygxKTtjb250aW51ZX19dmFyIGI9dm9pZCAwLCQ9dm9pZCAwLHc9dm9pZCAwO2lmKGQ+PTApe2ZvcigkPWUuc2xpY2UoZCk7IShUby50ZXN0KCQpfHxPby50ZXN0KCQpfHxOby50ZXN0KCQpfHxqby50ZXN0KCQpfHwodz0kLmluZGV4T2YoXCI8XCIsMSkpPDApOylkKz13LCQ9ZS5zbGljZShkKTtiPWUuc3Vic3RyaW5nKDAsZCl9ZDwwJiYoYj1lKSxiJiZDKGIubGVuZ3RoKSx0LmNoYXJzJiZiJiZ0LmNoYXJzKGIsYy1iLmxlbmd0aCxjKX1pZihlPT09bil7dC5jaGFycyYmdC5jaGFycyhlKTticmVha319ZnVuY3Rpb24gQyh0KXtjKz10LGU9ZS5zdWJzdHJpbmcodCl9ZnVuY3Rpb24geCgpe3ZhciB0PWUubWF0Y2goT28pO2lmKHQpe3ZhciBuLHIsaT17dGFnTmFtZTp0WzFdLGF0dHJzOltdLHN0YXJ0OmN9O2ZvcihDKHRbMF0ubGVuZ3RoKTshKG49ZS5tYXRjaChTbykpJiYocj1lLm1hdGNoKHhvKXx8ZS5tYXRjaChDbykpOylyLnN0YXJ0PWMsQyhyWzBdLmxlbmd0aCksci5lbmQ9YyxpLmF0dHJzLnB1c2gocik7aWYobilyZXR1cm4gaS51bmFyeVNsYXNoPW5bMV0sQyhuWzBdLmxlbmd0aCksaS5lbmQ9YyxpfX1mdW5jdGlvbiBrKGUpe3ZhciBuPWUudGFnTmFtZSxjPWUudW5hcnlTbGFzaDtvJiYoXCJwXCI9PT1yJiZ3byhuKSYmQShyKSxzKG4pJiZyPT09biYmQShuKSk7Zm9yKHZhciB1PWEobil8fCEhYyxsPWUuYXR0cnMubGVuZ3RoLGY9bmV3IEFycmF5KGwpLHA9MDtwPGw7cCsrKXt2YXIgZD1lLmF0dHJzW3BdLHY9ZFszXXx8ZFs0XXx8ZFs1XXx8XCJcIixoPVwiYVwiPT09biYmXCJocmVmXCI9PT1kWzFdP3Quc2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmOnQuc2hvdWxkRGVjb2RlTmV3bGluZXM7ZltwXT17bmFtZTpkWzFdLHZhbHVlOkhvKHYsaCl9fXV8fChpLnB1c2goe3RhZzpuLGxvd2VyQ2FzZWRUYWc6bi50b0xvd2VyQ2FzZSgpLGF0dHJzOmYsc3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSxyPW4pLHQuc3RhcnQmJnQuc3RhcnQobixmLHUsZS5zdGFydCxlLmVuZCl9ZnVuY3Rpb24gQShlLG4sbyl7dmFyIGEscztpZihudWxsPT1uJiYobj1jKSxudWxsPT1vJiYobz1jKSxlKWZvcihzPWUudG9Mb3dlckNhc2UoKSxhPWkubGVuZ3RoLTE7YT49MCYmaVthXS5sb3dlckNhc2VkVGFnIT09czthLS0pO2Vsc2UgYT0wO2lmKGE+PTApe2Zvcih2YXIgdT1pLmxlbmd0aC0xO3U+PWE7dS0tKXQuZW5kJiZ0LmVuZChpW3VdLnRhZyxuLG8pO2kubGVuZ3RoPWEscj1hJiZpW2EtMV0udGFnfWVsc2VcImJyXCI9PT1zP3Quc3RhcnQmJnQuc3RhcnQoZSxbXSwhMCxuLG8pOlwicFwiPT09cyYmKHQuc3RhcnQmJnQuc3RhcnQoZSxbXSwhMSxuLG8pLHQuZW5kJiZ0LmVuZChlLG4sbykpfUEoKX0oZSx7d2FybjpCbyxleHBlY3RIVE1MOnQuZXhwZWN0SFRNTCxpc1VuYXJ5VGFnOnQuaXNVbmFyeVRhZyxjYW5CZUxlZnRPcGVuVGFnOnQuY2FuQmVMZWZ0T3BlblRhZyxzaG91bGREZWNvZGVOZXdsaW5lczp0LnNob3VsZERlY29kZU5ld2xpbmVzLHNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZjp0LnNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZixzaG91bGRLZWVwQ29tbWVudDp0LmNvbW1lbnRzLG91dHB1dFNvdXJjZVJhbmdlOnQub3V0cHV0U291cmNlUmFuZ2Usc3RhcnQ6ZnVuY3Rpb24oZSxvLGEsbCxmKXt2YXIgcD1yJiZyLm5zfHxXbyhlKTtxJiZcInN2Z1wiPT09cCYmKG89ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTt5YS50ZXN0KHIubmFtZSl8fChyLm5hbWU9ci5uYW1lLnJlcGxhY2UoZ2EsXCJcIiksdC5wdXNoKHIpKX1yZXR1cm4gdH0obykpO3ZhciBkLHY9dWEoZSxvLHIpO3AmJih2Lm5zPXApLFwic3R5bGVcIiE9PShkPXYpLnRhZyYmKFwic2NyaXB0XCIhPT1kLnRhZ3x8ZC5hdHRyc01hcC50eXBlJiZcInRleHQvamF2YXNjcmlwdFwiIT09ZC5hdHRyc01hcC50eXBlKXx8dGUoKXx8KHYuZm9yYmlkZGVuPSEwKTtmb3IodmFyIGg9MDtoPFZvLmxlbmd0aDtoKyspdj1Wb1toXSh2LHQpfHx2O3N8fCghZnVuY3Rpb24oZSl7bnVsbCE9RnIoZSxcInYtcHJlXCIpJiYoZS5wcmU9ITApfSh2KSx2LnByZSYmKHM9ITApKSxKbyh2LnRhZykmJihjPSEwKSxzP2Z1bmN0aW9uKGUpe3ZhciB0PWUuYXR0cnNMaXN0LG49dC5sZW5ndGg7aWYobilmb3IodmFyIHI9ZS5hdHRycz1uZXcgQXJyYXkobiksaT0wO2k8bjtpKyspcltpXT17bmFtZTp0W2ldLm5hbWUsdmFsdWU6SlNPTi5zdHJpbmdpZnkodFtpXS52YWx1ZSl9LG51bGwhPXRbaV0uc3RhcnQmJihyW2ldLnN0YXJ0PXRbaV0uc3RhcnQscltpXS5lbmQ9dFtpXS5lbmQpO2Vsc2UgZS5wcmV8fChlLnBsYWluPSEwKX0odik6di5wcm9jZXNzZWR8fChwYSh2KSxmdW5jdGlvbihlKXt2YXIgdD1GcihlLFwidi1pZlwiKTtpZih0KWUuaWY9dCxkYShlLHtleHA6dCxibG9jazplfSk7ZWxzZXtudWxsIT1GcihlLFwidi1lbHNlXCIpJiYoZS5lbHNlPSEwKTt2YXIgbj1GcihlLFwidi1lbHNlLWlmXCIpO24mJihlLmVsc2VpZj1uKX19KHYpLGZ1bmN0aW9uKGUpe251bGwhPUZyKGUsXCJ2LW9uY2VcIikmJihlLm9uY2U9ITApfSh2KSksbnx8KG49diksYT91KHYpOihyPXYsaS5wdXNoKHYpKX0sZW5kOmZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1pW2kubGVuZ3RoLTFdO2kubGVuZ3RoLT0xLHI9aVtpLmxlbmd0aC0xXSx1KG8pfSxjaGFyczpmdW5jdGlvbihlLHQsbil7aWYociYmKCFxfHxcInRleHRhcmVhXCIhPT1yLnRhZ3x8ci5hdHRyc01hcC5wbGFjZWhvbGRlciE9PWUpKXt2YXIgaSx1LGwsZj1yLmNoaWxkcmVuO2lmKGU9Y3x8ZS50cmltKCk/XCJzY3JpcHRcIj09PShpPXIpLnRhZ3x8XCJzdHlsZVwiPT09aS50YWc/ZTpzYShlKTpmLmxlbmd0aD9hP1wiY29uZGVuc2VcIj09PWEmJm9hLnRlc3QoZSk/XCJcIjpcIiBcIjpvP1wiIFwiOlwiXCI6XCJcIiljfHxcImNvbmRlbnNlXCIhPT1hfHwoZT1lLnJlcGxhY2UoYWEsXCIgXCIpKSwhcyYmXCIgXCIhPT1lJiYodT1mdW5jdGlvbihlLHQpe3ZhciBuPXQ/aG8odCk6cG87aWYobi50ZXN0KGUpKXtmb3IodmFyIHIsaSxvLGE9W10scz1bXSxjPW4ubGFzdEluZGV4PTA7cj1uLmV4ZWMoZSk7KXsoaT1yLmluZGV4KT5jJiYocy5wdXNoKG89ZS5zbGljZShjLGkpKSxhLnB1c2goSlNPTi5zdHJpbmdpZnkobykpKTt2YXIgdT1BcihyWzFdLnRyaW0oKSk7YS5wdXNoKFwiX3MoXCIrdStcIilcIikscy5wdXNoKHtcIkBiaW5kaW5nXCI6dX0pLGM9aStyWzBdLmxlbmd0aH1yZXR1cm4gYzxlLmxlbmd0aCYmKHMucHVzaChvPWUuc2xpY2UoYykpLGEucHVzaChKU09OLnN0cmluZ2lmeShvKSkpLHtleHByZXNzaW9uOmEuam9pbihcIitcIiksdG9rZW5zOnN9fX0oZSxVbykpP2w9e3R5cGU6MixleHByZXNzaW9uOnUuZXhwcmVzc2lvbix0b2tlbnM6dS50b2tlbnMsdGV4dDplfTpcIiBcIj09PWUmJmYubGVuZ3RoJiZcIiBcIj09PWZbZi5sZW5ndGgtMV0udGV4dHx8KGw9e3R5cGU6Myx0ZXh0OmV9KSxsJiZmLnB1c2gobCl9fSxjb21tZW50OmZ1bmN0aW9uKGUsdCxuKXtpZihyKXt2YXIgaT17dHlwZTozLHRleHQ6ZSxpc0NvbW1lbnQ6ITB9O3IuY2hpbGRyZW4ucHVzaChpKX19fSksbn1mdW5jdGlvbiBmYShlLHQpe3ZhciBuLHI7KHI9SXIobj1lLFwia2V5XCIpKSYmKG4ua2V5PXIpLGUucGxhaW49IWUua2V5JiYhZS5zY29wZWRTbG90cyYmIWUuYXR0cnNMaXN0Lmxlbmd0aCxmdW5jdGlvbihlKXt2YXIgdD1JcihlLFwicmVmXCIpO3QmJihlLnJlZj10LGUucmVmSW5Gb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9ZTtmb3IoO3Q7KXtpZih2b2lkIDAhPT10LmZvcilyZXR1cm4hMDt0PXQucGFyZW50fXJldHVybiExfShlKSl9KGUpLGZ1bmN0aW9uKGUpe3ZhciB0O1widGVtcGxhdGVcIj09PWUudGFnPyh0PUZyKGUsXCJzY29wZVwiKSxlLnNsb3RTY29wZT10fHxGcihlLFwic2xvdC1zY29wZVwiKSk6KHQ9RnIoZSxcInNsb3Qtc2NvcGVcIikpJiYoZS5zbG90U2NvcGU9dCk7dmFyIG49SXIoZSxcInNsb3RcIik7biYmKGUuc2xvdFRhcmdldD0nXCJcIic9PT1uPydcImRlZmF1bHRcIic6bixlLnNsb3RUYXJnZXREeW5hbWljPSEoIWUuYXR0cnNNYXBbXCI6c2xvdFwiXSYmIWUuYXR0cnNNYXBbXCJ2LWJpbmQ6c2xvdFwiXSksXCJ0ZW1wbGF0ZVwiPT09ZS50YWd8fGUuc2xvdFNjb3BlfHxOcihlLFwic2xvdFwiLG4sZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5yYXdBdHRyc01hcFtcIjpcIit0XXx8ZS5yYXdBdHRyc01hcFtcInYtYmluZDpcIit0XXx8ZS5yYXdBdHRyc01hcFt0XX0oZSxcInNsb3RcIikpKTtpZihcInRlbXBsYXRlXCI9PT1lLnRhZyl7dmFyIHI9UHIoZSxpYSk7aWYocil7dmFyIGk9dmEociksbz1pLm5hbWUsYT1pLmR5bmFtaWM7ZS5zbG90VGFyZ2V0PW8sZS5zbG90VGFyZ2V0RHluYW1pYz1hLGUuc2xvdFNjb3BlPXIudmFsdWV8fGNhfX1lbHNle3ZhciBzPVByKGUsaWEpO2lmKHMpe3ZhciBjPWUuc2NvcGVkU2xvdHN8fChlLnNjb3BlZFNsb3RzPXt9KSx1PXZhKHMpLGw9dS5uYW1lLGY9dS5keW5hbWljLHA9Y1tsXT11YShcInRlbXBsYXRlXCIsW10sZSk7cC5zbG90VGFyZ2V0PWwscC5zbG90VGFyZ2V0RHluYW1pYz1mLHAuY2hpbGRyZW49ZS5jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oZSl7aWYoIWUuc2xvdFNjb3BlKXJldHVybiBlLnBhcmVudD1wLCEwfSkscC5zbG90U2NvcGU9cy52YWx1ZXx8Y2EsZS5jaGlsZHJlbj1bXSxlLnBsYWluPSExfX19KGUpLGZ1bmN0aW9uKGUpe1wic2xvdFwiPT09ZS50YWcmJihlLnNsb3ROYW1lPUlyKGUsXCJuYW1lXCIpKX0oZSksZnVuY3Rpb24oZSl7dmFyIHQ7KHQ9SXIoZSxcImlzXCIpKSYmKGUuY29tcG9uZW50PXQpO251bGwhPUZyKGUsXCJpbmxpbmUtdGVtcGxhdGVcIikmJihlLmlubGluZVRlbXBsYXRlPSEwKX0oZSk7Zm9yKHZhciBpPTA7aTx6by5sZW5ndGg7aSsrKWU9em9baV0oZSx0KXx8ZTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhLHMsYyx1PWUuYXR0cnNMaXN0O2Zvcih0PTAsbj11Lmxlbmd0aDt0PG47dCsrKWlmKHI9aT11W3RdLm5hbWUsbz11W3RdLnZhbHVlLEdvLnRlc3QocikpaWYoZS5oYXNCaW5kaW5ncz0hMCwoYT1oYShyLnJlcGxhY2UoR28sXCJcIikpKSYmKHI9ci5yZXBsYWNlKHJhLFwiXCIpKSxuYS50ZXN0KHIpKXI9ci5yZXBsYWNlKG5hLFwiXCIpLG89QXIobyksKGM9ZWEudGVzdChyKSkmJihyPXIuc2xpY2UoMSwtMSkpLGEmJihhLnByb3AmJiFjJiZcImlubmVySHRtbFwiPT09KHI9YihyKSkmJihyPVwiaW5uZXJIVE1MXCIpLGEuY2FtZWwmJiFjJiYocj1iKHIpKSxhLnN5bmMmJihzPUJyKG8sXCIkZXZlbnRcIiksYz9NcihlLCdcInVwZGF0ZTpcIisoJytyK1wiKVwiLHMsbnVsbCwhMSwwLHVbdF0sITApOihNcihlLFwidXBkYXRlOlwiK2IocikscyxudWxsLCExLDAsdVt0XSksQyhyKSE9PWIocikmJk1yKGUsXCJ1cGRhdGU6XCIrQyhyKSxzLG51bGwsITEsMCx1W3RdKSkpKSxhJiZhLnByb3B8fCFlLmNvbXBvbmVudCYmcW8oZS50YWcsZS5hdHRyc01hcC50eXBlLHIpP0VyKGUscixvLHVbdF0sYyk6TnIoZSxyLG8sdVt0XSxjKTtlbHNlIGlmKFpvLnRlc3Qocikpcj1yLnJlcGxhY2UoWm8sXCJcIiksKGM9ZWEudGVzdChyKSkmJihyPXIuc2xpY2UoMSwtMSkpLE1yKGUscixvLGEsITEsMCx1W3RdLGMpO2Vsc2V7dmFyIGw9KHI9ci5yZXBsYWNlKEdvLFwiXCIpKS5tYXRjaCh0YSksZj1sJiZsWzFdO2M9ITEsZiYmKHI9ci5zbGljZSgwLC0oZi5sZW5ndGgrMSkpLGVhLnRlc3QoZikmJihmPWYuc2xpY2UoMSwtMSksYz0hMCkpLERyKGUscixpLG8sZixjLGEsdVt0XSl9ZWxzZSBOcihlLHIsSlNPTi5zdHJpbmdpZnkobyksdVt0XSksIWUuY29tcG9uZW50JiZcIm11dGVkXCI9PT1yJiZxbyhlLnRhZyxlLmF0dHJzTWFwLnR5cGUscikmJkVyKGUscixcInRydWVcIix1W3RdKX0oZSksZX1mdW5jdGlvbiBwYShlKXt2YXIgdDtpZih0PUZyKGUsXCJ2LWZvclwiKSl7dmFyIG49ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaChYbyk7aWYoIXQpcmV0dXJuO3ZhciBuPXt9O24uZm9yPXRbMl0udHJpbSgpO3ZhciByPXRbMV0udHJpbSgpLnJlcGxhY2UoUW8sXCJcIiksaT1yLm1hdGNoKFlvKTtpPyhuLmFsaWFzPXIucmVwbGFjZShZbyxcIlwiKS50cmltKCksbi5pdGVyYXRvcjE9aVsxXS50cmltKCksaVsyXSYmKG4uaXRlcmF0b3IyPWlbMl0udHJpbSgpKSk6bi5hbGlhcz1yO3JldHVybiBufSh0KTtuJiZBKGUsbil9fWZ1bmN0aW9uIGRhKGUsdCl7ZS5pZkNvbmRpdGlvbnN8fChlLmlmQ29uZGl0aW9ucz1bXSksZS5pZkNvbmRpdGlvbnMucHVzaCh0KX1mdW5jdGlvbiB2YShlKXt2YXIgdD1lLm5hbWUucmVwbGFjZShpYSxcIlwiKTtyZXR1cm4gdHx8XCIjXCIhPT1lLm5hbWVbMF0mJih0PVwiZGVmYXVsdFwiKSxlYS50ZXN0KHQpP3tuYW1lOnQuc2xpY2UoMSwtMSksZHluYW1pYzohMH06e25hbWU6J1wiJyt0KydcIicsZHluYW1pYzohMX19ZnVuY3Rpb24gaGEoZSl7dmFyIHQ9ZS5tYXRjaChyYSk7aWYodCl7dmFyIG49e307cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihlKXtuW2Uuc2xpY2UoMSldPSEwfSksbn19ZnVuY3Rpb24gbWEoZSl7Zm9yKHZhciB0PXt9LG49MCxyPWUubGVuZ3RoO248cjtuKyspdFtlW25dLm5hbWVdPWVbbl0udmFsdWU7cmV0dXJuIHR9dmFyIHlhPS9eeG1sbnM6TlNcXGQrLyxnYT0vXk5TXFxkKzovO2Z1bmN0aW9uIF9hKGUpe3JldHVybiB1YShlLnRhZyxlLmF0dHJzTGlzdC5zbGljZSgpLGUucGFyZW50KX12YXIgYmE9W21vLGdvLHtwcmVUcmFuc2Zvcm1Ob2RlOmZ1bmN0aW9uKGUsdCl7aWYoXCJpbnB1dFwiPT09ZS50YWcpe3ZhciBuLHI9ZS5hdHRyc01hcDtpZighcltcInYtbW9kZWxcIl0pcmV0dXJuO2lmKChyW1wiOnR5cGVcIl18fHJbXCJ2LWJpbmQ6dHlwZVwiXSkmJihuPUlyKGUsXCJ0eXBlXCIpKSxyLnR5cGV8fG58fCFyW1widi1iaW5kXCJdfHwobj1cIihcIityW1widi1iaW5kXCJdK1wiKS50eXBlXCIpLG4pe3ZhciBpPUZyKGUsXCJ2LWlmXCIsITApLG89aT9cIiYmKFwiK2krXCIpXCI6XCJcIixhPW51bGwhPUZyKGUsXCJ2LWVsc2VcIiwhMCkscz1GcihlLFwidi1lbHNlLWlmXCIsITApLGM9X2EoZSk7cGEoYyksanIoYyxcInR5cGVcIixcImNoZWNrYm94XCIpLGZhKGMsdCksYy5wcm9jZXNzZWQ9ITAsYy5pZj1cIihcIituK1wiKT09PSdjaGVja2JveCdcIitvLGRhKGMse2V4cDpjLmlmLGJsb2NrOmN9KTt2YXIgdT1fYShlKTtGcih1LFwidi1mb3JcIiwhMCksanIodSxcInR5cGVcIixcInJhZGlvXCIpLGZhKHUsdCksZGEoYyx7ZXhwOlwiKFwiK24rXCIpPT09J3JhZGlvJ1wiK28sYmxvY2s6dX0pO3ZhciBsPV9hKGUpO3JldHVybiBGcihsLFwidi1mb3JcIiwhMCksanIobCxcIjp0eXBlXCIsbiksZmEobCx0KSxkYShjLHtleHA6aSxibG9jazpsfSksYT9jLmVsc2U9ITA6cyYmKGMuZWxzZWlmPXMpLGN9fX19XTt2YXIgJGEsd2EsQ2E9e2V4cGVjdEhUTUw6ITAsbW9kdWxlczpiYSxkaXJlY3RpdmVzOnttb2RlbDpmdW5jdGlvbihlLHQsbil7dmFyIHI9dC52YWx1ZSxpPXQubW9kaWZpZXJzLG89ZS50YWcsYT1lLmF0dHJzTWFwLnR5cGU7aWYoZS5jb21wb25lbnQpcmV0dXJuIEhyKGUscixpKSwhMTtpZihcInNlbGVjdFwiPT09bykhZnVuY3Rpb24oZSx0LG4pe3ZhciByPSd2YXIgJCRzZWxlY3RlZFZhbCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCgkZXZlbnQudGFyZ2V0Lm9wdGlvbnMsZnVuY3Rpb24obyl7cmV0dXJuIG8uc2VsZWN0ZWR9KS5tYXAoZnVuY3Rpb24obyl7dmFyIHZhbCA9IFwiX3ZhbHVlXCIgaW4gbyA/IG8uX3ZhbHVlIDogby52YWx1ZTtyZXR1cm4gJysobiYmbi5udW1iZXI/XCJfbih2YWwpXCI6XCJ2YWxcIikrXCJ9KTtcIjtyPXIrXCIgXCIrQnIodCxcIiRldmVudC50YXJnZXQubXVsdGlwbGUgPyAkJHNlbGVjdGVkVmFsIDogJCRzZWxlY3RlZFZhbFswXVwiKSxNcihlLFwiY2hhbmdlXCIscixudWxsLCEwKX0oZSxyLGkpO2Vsc2UgaWYoXCJpbnB1dFwiPT09byYmXCJjaGVja2JveFwiPT09YSkhZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4mJm4ubnVtYmVyLGk9SXIoZSxcInZhbHVlXCIpfHxcIm51bGxcIixvPUlyKGUsXCJ0cnVlLXZhbHVlXCIpfHxcInRydWVcIixhPUlyKGUsXCJmYWxzZS12YWx1ZVwiKXx8XCJmYWxzZVwiO0VyKGUsXCJjaGVja2VkXCIsXCJBcnJheS5pc0FycmF5KFwiK3QrXCIpP19pKFwiK3QrXCIsXCIraStcIik+LTFcIisoXCJ0cnVlXCI9PT1vP1wiOihcIit0K1wiKVwiOlwiOl9xKFwiK3QrXCIsXCIrbytcIilcIikpLE1yKGUsXCJjaGFuZ2VcIixcInZhciAkJGE9XCIrdCtcIiwkJGVsPSRldmVudC50YXJnZXQsJCRjPSQkZWwuY2hlY2tlZD8oXCIrbytcIik6KFwiK2ErXCIpO2lmKEFycmF5LmlzQXJyYXkoJCRhKSl7dmFyICQkdj1cIisocj9cIl9uKFwiK2krXCIpXCI6aSkrXCIsJCRpPV9pKCQkYSwkJHYpO2lmKCQkZWwuY2hlY2tlZCl7JCRpPDAmJihcIitCcih0LFwiJCRhLmNvbmNhdChbJCR2XSlcIikrXCIpfWVsc2V7JCRpPi0xJiYoXCIrQnIodCxcIiQkYS5zbGljZSgwLCQkaSkuY29uY2F0KCQkYS5zbGljZSgkJGkrMSkpXCIpK1wiKX19ZWxzZXtcIitCcih0LFwiJCRjXCIpK1wifVwiLG51bGwsITApfShlLHIsaSk7ZWxzZSBpZihcImlucHV0XCI9PT1vJiZcInJhZGlvXCI9PT1hKSFmdW5jdGlvbihlLHQsbil7dmFyIHI9biYmbi5udW1iZXIsaT1JcihlLFwidmFsdWVcIil8fFwibnVsbFwiO0VyKGUsXCJjaGVja2VkXCIsXCJfcShcIit0K1wiLFwiKyhpPXI/XCJfbihcIitpK1wiKVwiOmkpK1wiKVwiKSxNcihlLFwiY2hhbmdlXCIsQnIodCxpKSxudWxsLCEwKX0oZSxyLGkpO2Vsc2UgaWYoXCJpbnB1dFwiPT09b3x8XCJ0ZXh0YXJlYVwiPT09bykhZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuYXR0cnNNYXAudHlwZSxpPW58fHt9LG89aS5sYXp5LGE9aS5udW1iZXIscz1pLnRyaW0sYz0hbyYmXCJyYW5nZVwiIT09cix1PW8/XCJjaGFuZ2VcIjpcInJhbmdlXCI9PT1yP1dyOlwiaW5wdXRcIixsPVwiJGV2ZW50LnRhcmdldC52YWx1ZVwiO3MmJihsPVwiJGV2ZW50LnRhcmdldC52YWx1ZS50cmltKClcIiksYSYmKGw9XCJfbihcIitsK1wiKVwiKTt2YXIgZj1Ccih0LGwpO2MmJihmPVwiaWYoJGV2ZW50LnRhcmdldC5jb21wb3NpbmcpcmV0dXJuO1wiK2YpLEVyKGUsXCJ2YWx1ZVwiLFwiKFwiK3QrXCIpXCIpLE1yKGUsdSxmLG51bGwsITApLChzfHxhKSYmTXIoZSxcImJsdXJcIixcIiRmb3JjZVVwZGF0ZSgpXCIpfShlLHIsaSk7ZWxzZSBpZighRi5pc1Jlc2VydmVkVGFnKG8pKXJldHVybiBIcihlLHIsaSksITE7cmV0dXJuITB9LHRleHQ6ZnVuY3Rpb24oZSx0KXt0LnZhbHVlJiZFcihlLFwidGV4dENvbnRlbnRcIixcIl9zKFwiK3QudmFsdWUrXCIpXCIsdCl9LGh0bWw6ZnVuY3Rpb24oZSx0KXt0LnZhbHVlJiZFcihlLFwiaW5uZXJIVE1MXCIsXCJfcyhcIit0LnZhbHVlK1wiKVwiLHQpfX0saXNQcmVUYWc6ZnVuY3Rpb24oZSl7cmV0dXJuXCJwcmVcIj09PWV9LGlzVW5hcnlUYWc6Ym8sbXVzdFVzZVByb3A6am4sY2FuQmVMZWZ0T3BlblRhZzokbyxpc1Jlc2VydmVkVGFnOlduLGdldFRhZ05hbWVzcGFjZTpabixzdGF0aWNLZXlzOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlLmNvbmNhdCh0LnN0YXRpY0tleXN8fFtdKX0sW10pLmpvaW4oXCIsXCIpfShiYSl9LHhhPWcoZnVuY3Rpb24oZSl7cmV0dXJuIHAoXCJ0eXBlLHRhZyxhdHRyc0xpc3QsYXR0cnNNYXAscGxhaW4scGFyZW50LGNoaWxkcmVuLGF0dHJzLHN0YXJ0LGVuZCxyYXdBdHRyc01hcFwiKyhlP1wiLFwiK2U6XCJcIikpfSk7ZnVuY3Rpb24ga2EoZSx0KXtlJiYoJGE9eGEodC5zdGF0aWNLZXlzfHxcIlwiKSx3YT10LmlzUmVzZXJ2ZWRUYWd8fFQsZnVuY3Rpb24gZSh0KXt0LnN0YXRpYz1mdW5jdGlvbihlKXtpZigyPT09ZS50eXBlKXJldHVybiExO2lmKDM9PT1lLnR5cGUpcmV0dXJuITA7cmV0dXJuISghZS5wcmUmJihlLmhhc0JpbmRpbmdzfHxlLmlmfHxlLmZvcnx8ZChlLnRhZyl8fCF3YShlLnRhZyl8fGZ1bmN0aW9uKGUpe2Zvcig7ZS5wYXJlbnQ7KXtpZihcInRlbXBsYXRlXCIhPT0oZT1lLnBhcmVudCkudGFnKXJldHVybiExO2lmKGUuZm9yKXJldHVybiEwfXJldHVybiExfShlKXx8IU9iamVjdC5rZXlzKGUpLmV2ZXJ5KCRhKSkpfSh0KTtpZigxPT09dC50eXBlKXtpZighd2EodC50YWcpJiZcInNsb3RcIiE9PXQudGFnJiZudWxsPT10LmF0dHJzTWFwW1wiaW5saW5lLXRlbXBsYXRlXCJdKXJldHVybjtmb3IodmFyIG49MCxyPXQuY2hpbGRyZW4ubGVuZ3RoO248cjtuKyspe3ZhciBpPXQuY2hpbGRyZW5bbl07ZShpKSxpLnN0YXRpY3x8KHQuc3RhdGljPSExKX1pZih0LmlmQ29uZGl0aW9ucylmb3IodmFyIG89MSxhPXQuaWZDb25kaXRpb25zLmxlbmd0aDtvPGE7bysrKXt2YXIgcz10LmlmQ29uZGl0aW9uc1tvXS5ibG9jaztlKHMpLHMuc3RhdGljfHwodC5zdGF0aWM9ITEpfX19KGUpLGZ1bmN0aW9uIGUodCxuKXtpZigxPT09dC50eXBlKXtpZigodC5zdGF0aWN8fHQub25jZSkmJih0LnN0YXRpY0luRm9yPW4pLHQuc3RhdGljJiZ0LmNoaWxkcmVuLmxlbmd0aCYmKDEhPT10LmNoaWxkcmVuLmxlbmd0aHx8MyE9PXQuY2hpbGRyZW5bMF0udHlwZSkpcmV0dXJuIHZvaWQodC5zdGF0aWNSb290PSEwKTtpZih0LnN0YXRpY1Jvb3Q9ITEsdC5jaGlsZHJlbilmb3IodmFyIHI9MCxpPXQuY2hpbGRyZW4ubGVuZ3RoO3I8aTtyKyspZSh0LmNoaWxkcmVuW3JdLG58fCEhdC5mb3IpO2lmKHQuaWZDb25kaXRpb25zKWZvcih2YXIgbz0xLGE9dC5pZkNvbmRpdGlvbnMubGVuZ3RoO288YTtvKyspZSh0LmlmQ29uZGl0aW9uc1tvXS5ibG9jayxuKX19KGUsITEpKX12YXIgQWE9L14oW1xcdyRfXSt8XFwoW14pXSo/XFwpKVxccyo9PnxeZnVuY3Rpb24oPzpcXHMrW1xcdyRdKyk/XFxzKlxcKC8sT2E9L1xcKFteKV0qP1xcKTsqJC8sU2E9L15bQS1aYS16XyRdW1xcdyRdKig/OlxcLltBLVphLXpfJF1bXFx3JF0qfFxcWydbXiddKj8nXXxcXFtcIlteXCJdKj9cIl18XFxbXFxkK118XFxbW0EtWmEtel8kXVtcXHckXSpdKSokLyxUYT17ZXNjOjI3LHRhYjo5LGVudGVyOjEzLHNwYWNlOjMyLHVwOjM4LGxlZnQ6MzcscmlnaHQ6MzksZG93bjo0MCxkZWxldGU6WzgsNDZdfSxFYT17ZXNjOltcIkVzY1wiLFwiRXNjYXBlXCJdLHRhYjpcIlRhYlwiLGVudGVyOlwiRW50ZXJcIixzcGFjZTpbXCIgXCIsXCJTcGFjZWJhclwiXSx1cDpbXCJVcFwiLFwiQXJyb3dVcFwiXSxsZWZ0OltcIkxlZnRcIixcIkFycm93TGVmdFwiXSxyaWdodDpbXCJSaWdodFwiLFwiQXJyb3dSaWdodFwiXSxkb3duOltcIkRvd25cIixcIkFycm93RG93blwiXSxkZWxldGU6W1wiQmFja3NwYWNlXCIsXCJEZWxldGVcIixcIkRlbFwiXX0sTmE9ZnVuY3Rpb24oZSl7cmV0dXJuXCJpZihcIitlK1wiKXJldHVybiBudWxsO1wifSxqYT17c3RvcDpcIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIixwcmV2ZW50OlwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XCIsc2VsZjpOYShcIiRldmVudC50YXJnZXQgIT09ICRldmVudC5jdXJyZW50VGFyZ2V0XCIpLGN0cmw6TmEoXCIhJGV2ZW50LmN0cmxLZXlcIiksc2hpZnQ6TmEoXCIhJGV2ZW50LnNoaWZ0S2V5XCIpLGFsdDpOYShcIiEkZXZlbnQuYWx0S2V5XCIpLG1ldGE6TmEoXCIhJGV2ZW50Lm1ldGFLZXlcIiksbGVmdDpOYShcIididXR0b24nIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAwXCIpLG1pZGRsZTpOYShcIididXR0b24nIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAxXCIpLHJpZ2h0Ok5hKFwiJ2J1dHRvbicgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDJcIil9O2Z1bmN0aW9uIERhKGUsdCl7dmFyIG49dD9cIm5hdGl2ZU9uOlwiOlwib246XCIscj1cIlwiLGk9XCJcIjtmb3IodmFyIG8gaW4gZSl7dmFyIGE9TGEoZVtvXSk7ZVtvXSYmZVtvXS5keW5hbWljP2krPW8rXCIsXCIrYStcIixcIjpyKz0nXCInK28rJ1wiOicrYStcIixcIn1yZXR1cm4gcj1cIntcIityLnNsaWNlKDAsLTEpK1wifVwiLGk/bitcIl9kKFwiK3IrXCIsW1wiK2kuc2xpY2UoMCwtMSkrXCJdKVwiOm4rcn1mdW5jdGlvbiBMYShlKXtpZighZSlyZXR1cm5cImZ1bmN0aW9uKCl7fVwiO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuXCJbXCIrZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIExhKGUpfSkuam9pbihcIixcIikrXCJdXCI7dmFyIHQ9U2EudGVzdChlLnZhbHVlKSxuPUFhLnRlc3QoZS52YWx1ZSkscj1TYS50ZXN0KGUudmFsdWUucmVwbGFjZShPYSxcIlwiKSk7aWYoZS5tb2RpZmllcnMpe3ZhciBpPVwiXCIsbz1cIlwiLGE9W107Zm9yKHZhciBzIGluIGUubW9kaWZpZXJzKWlmKGphW3NdKW8rPWphW3NdLFRhW3NdJiZhLnB1c2gocyk7ZWxzZSBpZihcImV4YWN0XCI9PT1zKXt2YXIgYz1lLm1vZGlmaWVycztvKz1OYShbXCJjdHJsXCIsXCJzaGlmdFwiLFwiYWx0XCIsXCJtZXRhXCJdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hY1tlXX0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm5cIiRldmVudC5cIitlK1wiS2V5XCJ9KS5qb2luKFwifHxcIikpfWVsc2UgYS5wdXNoKHMpO3JldHVybiBhLmxlbmd0aCYmKGkrPWZ1bmN0aW9uKGUpe3JldHVyblwiaWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZcIitlLm1hcChNYSkuam9pbihcIiYmXCIpK1wiKXJldHVybiBudWxsO1wifShhKSksbyYmKGkrPW8pLFwiZnVuY3Rpb24oJGV2ZW50KXtcIitpKyh0P1wicmV0dXJuIFwiK2UudmFsdWUrXCIoJGV2ZW50KVwiOm4/XCJyZXR1cm4gKFwiK2UudmFsdWUrXCIpKCRldmVudClcIjpyP1wicmV0dXJuIFwiK2UudmFsdWU6ZS52YWx1ZSkrXCJ9XCJ9cmV0dXJuIHR8fG4/ZS52YWx1ZTpcImZ1bmN0aW9uKCRldmVudCl7XCIrKHI/XCJyZXR1cm4gXCIrZS52YWx1ZTplLnZhbHVlKStcIn1cIn1mdW5jdGlvbiBNYShlKXt2YXIgdD1wYXJzZUludChlLDEwKTtpZih0KXJldHVyblwiJGV2ZW50LmtleUNvZGUhPT1cIit0O3ZhciBuPVRhW2VdLHI9RWFbZV07cmV0dXJuXCJfaygkZXZlbnQua2V5Q29kZSxcIitKU09OLnN0cmluZ2lmeShlKStcIixcIitKU09OLnN0cmluZ2lmeShuKStcIiwkZXZlbnQua2V5LFwiK0pTT04uc3RyaW5naWZ5KHIpK1wiKVwifXZhciBJYT17b246ZnVuY3Rpb24oZSx0KXtlLndyYXBMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuXCJfZyhcIitlK1wiLFwiK3QudmFsdWUrXCIpXCJ9fSxiaW5kOmZ1bmN0aW9uKGUsdCl7ZS53cmFwRGF0YT1mdW5jdGlvbihuKXtyZXR1cm5cIl9iKFwiK24rXCIsJ1wiK2UudGFnK1wiJyxcIit0LnZhbHVlK1wiLFwiKyh0Lm1vZGlmaWVycyYmdC5tb2RpZmllcnMucHJvcD9cInRydWVcIjpcImZhbHNlXCIpKyh0Lm1vZGlmaWVycyYmdC5tb2RpZmllcnMuc3luYz9cIix0cnVlXCI6XCJcIikrXCIpXCJ9fSxjbG9hazpTfSxGYT1mdW5jdGlvbihlKXt0aGlzLm9wdGlvbnM9ZSx0aGlzLndhcm49ZS53YXJufHxTcix0aGlzLnRyYW5zZm9ybXM9VHIoZS5tb2R1bGVzLFwidHJhbnNmb3JtQ29kZVwiKSx0aGlzLmRhdGFHZW5GbnM9VHIoZS5tb2R1bGVzLFwiZ2VuRGF0YVwiKSx0aGlzLmRpcmVjdGl2ZXM9QShBKHt9LElhKSxlLmRpcmVjdGl2ZXMpO3ZhciB0PWUuaXNSZXNlcnZlZFRhZ3x8VDt0aGlzLm1heWJlQ29tcG9uZW50PWZ1bmN0aW9uKGUpe3JldHVybiEhZS5jb21wb25lbnR8fCF0KGUudGFnKX0sdGhpcy5vbmNlSWQ9MCx0aGlzLnN0YXRpY1JlbmRlckZucz1bXSx0aGlzLnByZT0hMX07ZnVuY3Rpb24gUGEoZSx0KXt2YXIgbj1uZXcgRmEodCk7cmV0dXJue3JlbmRlcjpcIndpdGgodGhpcyl7cmV0dXJuIFwiKyhlP1JhKGUsbik6J19jKFwiZGl2XCIpJykrXCJ9XCIsc3RhdGljUmVuZGVyRm5zOm4uc3RhdGljUmVuZGVyRm5zfX1mdW5jdGlvbiBSYShlLHQpe2lmKGUucGFyZW50JiYoZS5wcmU9ZS5wcmV8fGUucGFyZW50LnByZSksZS5zdGF0aWNSb290JiYhZS5zdGF0aWNQcm9jZXNzZWQpcmV0dXJuIEhhKGUsdCk7aWYoZS5vbmNlJiYhZS5vbmNlUHJvY2Vzc2VkKXJldHVybiBCYShlLHQpO2lmKGUuZm9yJiYhZS5mb3JQcm9jZXNzZWQpcmV0dXJuIHphKGUsdCk7aWYoZS5pZiYmIWUuaWZQcm9jZXNzZWQpcmV0dXJuIFVhKGUsdCk7aWYoXCJ0ZW1wbGF0ZVwiIT09ZS50YWd8fGUuc2xvdFRhcmdldHx8dC5wcmUpe2lmKFwic2xvdFwiPT09ZS50YWcpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5zbG90TmFtZXx8J1wiZGVmYXVsdFwiJyxyPXFhKGUsdCksaT1cIl90KFwiK24rKHI/XCIsXCIrcjpcIlwiKSxvPWUuYXR0cnN8fGUuZHluYW1pY0F0dHJzP0dhKChlLmF0dHJzfHxbXSkuY29uY2F0KGUuZHluYW1pY0F0dHJzfHxbXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntuYW1lOmIoZS5uYW1lKSx2YWx1ZTplLnZhbHVlLGR5bmFtaWM6ZS5keW5hbWljfX0pKTpudWxsLGE9ZS5hdHRyc01hcFtcInYtYmluZFwiXTshbyYmIWF8fHJ8fChpKz1cIixudWxsXCIpO28mJihpKz1cIixcIitvKTthJiYoaSs9KG8/XCJcIjpcIixudWxsXCIpK1wiLFwiK2EpO3JldHVybiBpK1wiKVwifShlLHQpO3ZhciBuO2lmKGUuY29tcG9uZW50KW49ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQuaW5saW5lVGVtcGxhdGU/bnVsbDpxYSh0LG4sITApO3JldHVyblwiX2MoXCIrZStcIixcIitWYSh0LG4pKyhyP1wiLFwiK3I6XCJcIikrXCIpXCJ9KGUuY29tcG9uZW50LGUsdCk7ZWxzZXt2YXIgcjsoIWUucGxhaW58fGUucHJlJiZ0Lm1heWJlQ29tcG9uZW50KGUpKSYmKHI9VmEoZSx0KSk7dmFyIGk9ZS5pbmxpbmVUZW1wbGF0ZT9udWxsOnFhKGUsdCwhMCk7bj1cIl9jKCdcIitlLnRhZytcIidcIisocj9cIixcIityOlwiXCIpKyhpP1wiLFwiK2k6XCJcIikrXCIpXCJ9Zm9yKHZhciBvPTA7bzx0LnRyYW5zZm9ybXMubGVuZ3RoO28rKyluPXQudHJhbnNmb3Jtc1tvXShlLG4pO3JldHVybiBufXJldHVybiBxYShlLHQpfHxcInZvaWQgMFwifWZ1bmN0aW9uIEhhKGUsdCl7ZS5zdGF0aWNQcm9jZXNzZWQ9ITA7dmFyIG49dC5wcmU7cmV0dXJuIGUucHJlJiYodC5wcmU9ZS5wcmUpLHQuc3RhdGljUmVuZGVyRm5zLnB1c2goXCJ3aXRoKHRoaXMpe3JldHVybiBcIitSYShlLHQpK1wifVwiKSx0LnByZT1uLFwiX20oXCIrKHQuc3RhdGljUmVuZGVyRm5zLmxlbmd0aC0xKSsoZS5zdGF0aWNJbkZvcj9cIix0cnVlXCI6XCJcIikrXCIpXCJ9ZnVuY3Rpb24gQmEoZSx0KXtpZihlLm9uY2VQcm9jZXNzZWQ9ITAsZS5pZiYmIWUuaWZQcm9jZXNzZWQpcmV0dXJuIFVhKGUsdCk7aWYoZS5zdGF0aWNJbkZvcil7Zm9yKHZhciBuPVwiXCIscj1lLnBhcmVudDtyOyl7aWYoci5mb3Ipe249ci5rZXk7YnJlYWt9cj1yLnBhcmVudH1yZXR1cm4gbj9cIl9vKFwiK1JhKGUsdCkrXCIsXCIrdC5vbmNlSWQrKytcIixcIituK1wiKVwiOlJhKGUsdCl9cmV0dXJuIEhhKGUsdCl9ZnVuY3Rpb24gVWEoZSx0LG4scil7cmV0dXJuIGUuaWZQcm9jZXNzZWQ9ITAsZnVuY3Rpb24gZSh0LG4scixpKXtpZighdC5sZW5ndGgpcmV0dXJuIGl8fFwiX2UoKVwiO3ZhciBvPXQuc2hpZnQoKTtyZXR1cm4gby5leHA/XCIoXCIrby5leHArXCIpP1wiK2Eoby5ibG9jaykrXCI6XCIrZSh0LG4scixpKTpcIlwiK2Eoby5ibG9jayk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gcj9yKGUsbik6ZS5vbmNlP0JhKGUsbik6UmEoZSxuKX19KGUuaWZDb25kaXRpb25zLnNsaWNlKCksdCxuLHIpfWZ1bmN0aW9uIHphKGUsdCxuLHIpe3ZhciBpPWUuZm9yLG89ZS5hbGlhcyxhPWUuaXRlcmF0b3IxP1wiLFwiK2UuaXRlcmF0b3IxOlwiXCIscz1lLml0ZXJhdG9yMj9cIixcIitlLml0ZXJhdG9yMjpcIlwiO3JldHVybiBlLmZvclByb2Nlc3NlZD0hMCwocnx8XCJfbFwiKStcIigoXCIraStcIiksZnVuY3Rpb24oXCIrbythK3MrXCIpe3JldHVybiBcIisobnx8UmEpKGUsdCkrXCJ9KVwifWZ1bmN0aW9uIFZhKGUsdCl7dmFyIG49XCJ7XCIscj1mdW5jdGlvbihlLHQpe3ZhciBuPWUuZGlyZWN0aXZlcztpZighbilyZXR1cm47dmFyIHIsaSxvLGEscz1cImRpcmVjdGl2ZXM6W1wiLGM9ITE7Zm9yKHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspe289bltyXSxhPSEwO3ZhciB1PXQuZGlyZWN0aXZlc1tvLm5hbWVdO3UmJihhPSEhdShlLG8sdC53YXJuKSksYSYmKGM9ITAscys9J3tuYW1lOlwiJytvLm5hbWUrJ1wiLHJhd05hbWU6XCInK28ucmF3TmFtZSsnXCInKyhvLnZhbHVlP1wiLHZhbHVlOihcIitvLnZhbHVlK1wiKSxleHByZXNzaW9uOlwiK0pTT04uc3RyaW5naWZ5KG8udmFsdWUpOlwiXCIpKyhvLmFyZz9cIixhcmc6XCIrKG8uaXNEeW5hbWljQXJnP28uYXJnOidcIicrby5hcmcrJ1wiJyk6XCJcIikrKG8ubW9kaWZpZXJzP1wiLG1vZGlmaWVyczpcIitKU09OLnN0cmluZ2lmeShvLm1vZGlmaWVycyk6XCJcIikrXCJ9LFwiKX1pZihjKXJldHVybiBzLnNsaWNlKDAsLTEpK1wiXVwifShlLHQpO3ImJihuKz1yK1wiLFwiKSxlLmtleSYmKG4rPVwia2V5OlwiK2Uua2V5K1wiLFwiKSxlLnJlZiYmKG4rPVwicmVmOlwiK2UucmVmK1wiLFwiKSxlLnJlZkluRm9yJiYobis9XCJyZWZJbkZvcjp0cnVlLFwiKSxlLnByZSYmKG4rPVwicHJlOnRydWUsXCIpLGUuY29tcG9uZW50JiYobis9J3RhZzpcIicrZS50YWcrJ1wiLCcpO2Zvcih2YXIgaT0wO2k8dC5kYXRhR2VuRm5zLmxlbmd0aDtpKyspbis9dC5kYXRhR2VuRm5zW2ldKGUpO2lmKGUuYXR0cnMmJihuKz1cImF0dHJzOlwiK0dhKGUuYXR0cnMpK1wiLFwiKSxlLnByb3BzJiYobis9XCJkb21Qcm9wczpcIitHYShlLnByb3BzKStcIixcIiksZS5ldmVudHMmJihuKz1EYShlLmV2ZW50cywhMSkrXCIsXCIpLGUubmF0aXZlRXZlbnRzJiYobis9RGEoZS5uYXRpdmVFdmVudHMsITApK1wiLFwiKSxlLnNsb3RUYXJnZXQmJiFlLnNsb3RTY29wZSYmKG4rPVwic2xvdDpcIitlLnNsb3RUYXJnZXQrXCIsXCIpLGUuc2NvcGVkU2xvdHMmJihuKz1mdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5mb3J8fE9iamVjdC5rZXlzKHQpLnNvbWUoZnVuY3Rpb24oZSl7dmFyIG49dFtlXTtyZXR1cm4gbi5zbG90VGFyZ2V0RHluYW1pY3x8bi5pZnx8bi5mb3J8fEthKG4pfSksaT0hIWUuaWY7aWYoIXIpZm9yKHZhciBvPWUucGFyZW50O287KXtpZihvLnNsb3RTY29wZSYmby5zbG90U2NvcGUhPT1jYXx8by5mb3Ipe3I9ITA7YnJlYWt9by5pZiYmKGk9ITApLG89by5wYXJlbnR9dmFyIGE9T2JqZWN0LmtleXModCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBKYSh0W2VdLG4pfSkuam9pbihcIixcIik7cmV0dXJuXCJzY29wZWRTbG90czpfdShbXCIrYStcIl1cIisocj9cIixudWxsLHRydWVcIjpcIlwiKSsoIXImJmk/XCIsbnVsbCxmYWxzZSxcIitmdW5jdGlvbihlKXt2YXIgdD01MzgxLG49ZS5sZW5ndGg7Zm9yKDtuOyl0PTMzKnReZS5jaGFyQ29kZUF0KC0tbik7cmV0dXJuIHQ+Pj4wfShhKTpcIlwiKStcIilcIn0oZSxlLnNjb3BlZFNsb3RzLHQpK1wiLFwiKSxlLm1vZGVsJiYobis9XCJtb2RlbDp7dmFsdWU6XCIrZS5tb2RlbC52YWx1ZStcIixjYWxsYmFjazpcIitlLm1vZGVsLmNhbGxiYWNrK1wiLGV4cHJlc3Npb246XCIrZS5tb2RlbC5leHByZXNzaW9uK1wifSxcIiksZS5pbmxpbmVUZW1wbGF0ZSl7dmFyIG89ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmNoaWxkcmVuWzBdO2lmKG4mJjE9PT1uLnR5cGUpe3ZhciByPVBhKG4sdC5vcHRpb25zKTtyZXR1cm5cImlubGluZVRlbXBsYXRlOntyZW5kZXI6ZnVuY3Rpb24oKXtcIityLnJlbmRlcitcIn0sc3RhdGljUmVuZGVyRm5zOltcIityLnN0YXRpY1JlbmRlckZucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuXCJmdW5jdGlvbigpe1wiK2UrXCJ9XCJ9KS5qb2luKFwiLFwiKStcIl19XCJ9fShlLHQpO28mJihuKz1vK1wiLFwiKX1yZXR1cm4gbj1uLnJlcGxhY2UoLywkLyxcIlwiKStcIn1cIixlLmR5bmFtaWNBdHRycyYmKG49XCJfYihcIituKycsXCInK2UudGFnKydcIiwnK0dhKGUuZHluYW1pY0F0dHJzKStcIilcIiksZS53cmFwRGF0YSYmKG49ZS53cmFwRGF0YShuKSksZS53cmFwTGlzdGVuZXJzJiYobj1lLndyYXBMaXN0ZW5lcnMobikpLG59ZnVuY3Rpb24gS2EoZSl7cmV0dXJuIDE9PT1lLnR5cGUmJihcInNsb3RcIj09PWUudGFnfHxlLmNoaWxkcmVuLnNvbWUoS2EpKX1mdW5jdGlvbiBKYShlLHQpe3ZhciBuPWUuYXR0cnNNYXBbXCJzbG90LXNjb3BlXCJdO2lmKGUuaWYmJiFlLmlmUHJvY2Vzc2VkJiYhbilyZXR1cm4gVWEoZSx0LEphLFwibnVsbFwiKTtpZihlLmZvciYmIWUuZm9yUHJvY2Vzc2VkKXJldHVybiB6YShlLHQsSmEpO3ZhciByPWUuc2xvdFNjb3BlPT09Y2E/XCJcIjpTdHJpbmcoZS5zbG90U2NvcGUpLGk9XCJmdW5jdGlvbihcIityK1wiKXtyZXR1cm4gXCIrKFwidGVtcGxhdGVcIj09PWUudGFnP2UuaWYmJm4/XCIoXCIrZS5pZitcIik/XCIrKHFhKGUsdCl8fFwidW5kZWZpbmVkXCIpK1wiOnVuZGVmaW5lZFwiOnFhKGUsdCl8fFwidW5kZWZpbmVkXCI6UmEoZSx0KSkrXCJ9XCIsbz1yP1wiXCI6XCIscHJveHk6dHJ1ZVwiO3JldHVyblwie2tleTpcIisoZS5zbG90VGFyZ2V0fHwnXCJkZWZhdWx0XCInKStcIixmbjpcIitpK28rXCJ9XCJ9ZnVuY3Rpb24gcWEoZSx0LG4scixpKXt2YXIgbz1lLmNoaWxkcmVuO2lmKG8ubGVuZ3RoKXt2YXIgYT1vWzBdO2lmKDE9PT1vLmxlbmd0aCYmYS5mb3ImJlwidGVtcGxhdGVcIiE9PWEudGFnJiZcInNsb3RcIiE9PWEudGFnKXt2YXIgcz1uP3QubWF5YmVDb21wb25lbnQoYSk/XCIsMVwiOlwiLDBcIjpcIlwiO3JldHVyblwiXCIrKHJ8fFJhKShhLHQpK3N9dmFyIGM9bj9mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9ZVtyXTtpZigxPT09aS50eXBlKXtpZihXYShpKXx8aS5pZkNvbmRpdGlvbnMmJmkuaWZDb25kaXRpb25zLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIFdhKGUuYmxvY2spfSkpe249MjticmVha30odChpKXx8aS5pZkNvbmRpdGlvbnMmJmkuaWZDb25kaXRpb25zLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZS5ibG9jayl9KSkmJihuPTEpfX1yZXR1cm4gbn0obyx0Lm1heWJlQ29tcG9uZW50KTowLHU9aXx8WmE7cmV0dXJuXCJbXCIrby5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHUoZSx0KX0pLmpvaW4oXCIsXCIpK1wiXVwiKyhjP1wiLFwiK2M6XCJcIil9fWZ1bmN0aW9uIFdhKGUpe3JldHVybiB2b2lkIDAhPT1lLmZvcnx8XCJ0ZW1wbGF0ZVwiPT09ZS50YWd8fFwic2xvdFwiPT09ZS50YWd9ZnVuY3Rpb24gWmEoZSx0KXtyZXR1cm4gMT09PWUudHlwZT9SYShlLHQpOjM9PT1lLnR5cGUmJmUuaXNDb21tZW50PyhyPWUsXCJfZShcIitKU09OLnN0cmluZ2lmeShyLnRleHQpK1wiKVwiKTpcIl92KFwiKygyPT09KG49ZSkudHlwZT9uLmV4cHJlc3Npb246WGEoSlNPTi5zdHJpbmdpZnkobi50ZXh0KSkpK1wiKVwiO3ZhciBuLHJ9ZnVuY3Rpb24gR2EoZSl7Zm9yKHZhciB0PVwiXCIsbj1cIlwiLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9ZVtyXSxvPVhhKGkudmFsdWUpO2kuZHluYW1pYz9uKz1pLm5hbWUrXCIsXCIrbytcIixcIjp0Kz0nXCInK2kubmFtZSsnXCI6JytvK1wiLFwifXJldHVybiB0PVwie1wiK3Quc2xpY2UoMCwtMSkrXCJ9XCIsbj9cIl9kKFwiK3QrXCIsW1wiK24uc2xpY2UoMCwtMSkrXCJdKVwiOnR9ZnVuY3Rpb24gWGEoZSl7cmV0dXJuIGUucmVwbGFjZSgvXFx1MjAyOC9nLFwiXFxcXHUyMDI4XCIpLnJlcGxhY2UoL1xcdTIwMjkvZyxcIlxcXFx1MjAyOVwiKX1uZXcgUmVnRXhwKFwiXFxcXGJcIitcImRvLGlmLGZvcixsZXQsbmV3LHRyeSx2YXIsY2FzZSxlbHNlLHdpdGgsYXdhaXQsYnJlYWssY2F0Y2gsY2xhc3MsY29uc3Qsc3VwZXIsdGhyb3csd2hpbGUseWllbGQsZGVsZXRlLGV4cG9ydCxpbXBvcnQscmV0dXJuLHN3aXRjaCxkZWZhdWx0LGV4dGVuZHMsZmluYWxseSxjb250aW51ZSxkZWJ1Z2dlcixmdW5jdGlvbixhcmd1bWVudHNcIi5zcGxpdChcIixcIikuam9pbihcIlxcXFxifFxcXFxiXCIpK1wiXFxcXGJcIik7ZnVuY3Rpb24gWWEoZSx0KXt0cnl7cmV0dXJuIG5ldyBGdW5jdGlvbihlKX1jYXRjaChuKXtyZXR1cm4gdC5wdXNoKHtlcnI6bixjb2RlOmV9KSxTfX1mdW5jdGlvbiBRYShlKXt2YXIgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBmdW5jdGlvbihuLHIsaSl7KHI9QSh7fSxyKSkud2FybjtkZWxldGUgci53YXJuO3ZhciBvPXIuZGVsaW1pdGVycz9TdHJpbmcoci5kZWxpbWl0ZXJzKStuOm47aWYodFtvXSlyZXR1cm4gdFtvXTt2YXIgYT1lKG4scikscz17fSxjPVtdO3JldHVybiBzLnJlbmRlcj1ZYShhLnJlbmRlcixjKSxzLnN0YXRpY1JlbmRlckZucz1hLnN0YXRpY1JlbmRlckZucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIFlhKGUsYyl9KSx0W29dPXN9fXZhciBlcyx0cyxucz0oZXM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1sYShlLnRyaW0oKSx0KTshMSE9PXQub3B0aW1pemUmJmthKG4sdCk7dmFyIHI9UGEobix0KTtyZXR1cm57YXN0Om4scmVuZGVyOnIucmVuZGVyLHN0YXRpY1JlbmRlckZuczpyLnN0YXRpY1JlbmRlckZuc319LGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxuKXt2YXIgcj1PYmplY3QuY3JlYXRlKGUpLGk9W10sbz1bXTtpZihuKWZvcih2YXIgYSBpbiBuLm1vZHVsZXMmJihyLm1vZHVsZXM9KGUubW9kdWxlc3x8W10pLmNvbmNhdChuLm1vZHVsZXMpKSxuLmRpcmVjdGl2ZXMmJihyLmRpcmVjdGl2ZXM9QShPYmplY3QuY3JlYXRlKGUuZGlyZWN0aXZlc3x8bnVsbCksbi5kaXJlY3RpdmVzKSksbilcIm1vZHVsZXNcIiE9PWEmJlwiZGlyZWN0aXZlc1wiIT09YSYmKHJbYV09blthXSk7ci53YXJuPWZ1bmN0aW9uKGUsdCxuKXsobj9vOmkpLnB1c2goZSl9O3ZhciBzPWVzKHQudHJpbSgpLHIpO3JldHVybiBzLmVycm9ycz1pLHMudGlwcz1vLHN9cmV0dXJue2NvbXBpbGU6dCxjb21waWxlVG9GdW5jdGlvbnM6UWEodCl9fSkoQ2EpLHJzPShucy5jb21waWxlLG5zLmNvbXBpbGVUb0Z1bmN0aW9ucyk7ZnVuY3Rpb24gaXMoZSl7cmV0dXJuKHRzPXRzfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKS5pbm5lckhUTUw9ZT8nPGEgaHJlZj1cIlxcblwiLz4nOic8ZGl2IGE9XCJcXG5cIi8+Jyx0cy5pbm5lckhUTUwuaW5kZXhPZihcIiYjMTA7XCIpPjB9dmFyIG9zPSEheiYmaXMoITEpLGFzPSEheiYmaXMoITApLHNzPWcoZnVuY3Rpb24oZSl7dmFyIHQ9WW4oZSk7cmV0dXJuIHQmJnQuaW5uZXJIVE1MfSksY3M9d24ucHJvdG90eXBlLiRtb3VudDt3bi5wcm90b3R5cGUuJG1vdW50PWZ1bmN0aW9uKGUsdCl7aWYoKGU9ZSYmWW4oZSkpPT09ZG9jdW1lbnQuYm9keXx8ZT09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudClyZXR1cm4gdGhpczt2YXIgbj10aGlzLiRvcHRpb25zO2lmKCFuLnJlbmRlcil7dmFyIHI9bi50ZW1wbGF0ZTtpZihyKWlmKFwic3RyaW5nXCI9PXR5cGVvZiByKVwiI1wiPT09ci5jaGFyQXQoMCkmJihyPXNzKHIpKTtlbHNle2lmKCFyLm5vZGVUeXBlKXJldHVybiB0aGlzO3I9ci5pbm5lckhUTUx9ZWxzZSBlJiYocj1mdW5jdGlvbihlKXtpZihlLm91dGVySFRNTClyZXR1cm4gZS5vdXRlckhUTUw7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtyZXR1cm4gdC5hcHBlbmRDaGlsZChlLmNsb25lTm9kZSghMCkpLHQuaW5uZXJIVE1MfShlKSk7aWYocil7dmFyIGk9cnMocix7b3V0cHV0U291cmNlUmFuZ2U6ITEsc2hvdWxkRGVjb2RlTmV3bGluZXM6b3Msc2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmOmFzLGRlbGltaXRlcnM6bi5kZWxpbWl0ZXJzLGNvbW1lbnRzOm4uY29tbWVudHN9LHRoaXMpLG89aS5yZW5kZXIsYT1pLnN0YXRpY1JlbmRlckZucztuLnJlbmRlcj1vLG4uc3RhdGljUmVuZGVyRm5zPWF9fXJldHVybiBjcy5jYWxsKHRoaXMsZSx0KX0sd24uY29tcGlsZT1ycyxtb2R1bGUuZXhwb3J0cz13bjsiLCJtb2R1bGUuZXhwb3J0cyA9IHdpbmRvd1tcImpRdWVyeVwiXTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdGlkOiBtb2R1bGVJZCxcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5pbXBvcnQgcHJvZHVjdEhlYWRlciBmcm9tICcuL3Byb2R1Y3QtaGVhZGVyJztcbmltcG9ydCBwcm9kdWN0U2VhcmNoQXV0b2NvbXBsZXRlIGZyb20gJy4vcHJvZHVjdC1zZWFyY2gtYXV0b2NvbXBsZXRlJztcbmltcG9ydCBjYXRlZ29yeVRyZWUgZnJvbSAnLi9jYXRlZ29yeS10cmVlJztcbmltcG9ydCBhdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcyc7XG5pbXBvcnQgYnVsa0NvbWJpbmF0aW9uIGZyb20gJy4vcHJvZHVjdC1idWxrLWNvbWJpbmF0aW9ucyc7XG5pbXBvcnQgbmVzdGVkQ2F0ZWdvcnkgZnJvbSAnLi9uZXN0ZWQtY2F0ZWdvcmllcyc7XG5pbXBvcnQgY29tYmluYXRpb24gZnJvbSAnLi9jb21iaW5hdGlvbic7XG5pbXBvcnQgU2VycCBmcm9tICcuLi9hcHAvdXRpbHMvc2VycC9pbmRleCc7XG5cbmNvbnN0IHskfSA9IHdpbmRvdztcblxuJCgoKSA9PiB7XG4gIHByb2R1Y3RIZWFkZXIoKTtcbiAgcHJvZHVjdFNlYXJjaEF1dG9jb21wbGV0ZSgpO1xuICBjYXRlZ29yeVRyZWUoKTtcbiAgYXR0cmlidXRlcygpO1xuICBjb21iaW5hdGlvbigpO1xuICBidWxrQ29tYmluYXRpb24oKS5pbml0KCk7XG4gIG5lc3RlZENhdGVnb3J5KCkuaW5pdCgpO1xuXG4gIG5ldyBTZXJwKFxuICAgIHtcbiAgICAgIGNvbnRhaW5lcjogJyNzZXJwLWFwcCcsXG4gICAgICBkZWZhdWx0VGl0bGU6ICcuc2VycC1kZWZhdWx0LXRpdGxlOmlucHV0JyxcbiAgICAgIHdhdGNoZWRUaXRsZTogJy5zZXJwLXdhdGNoZWQtdGl0bGU6aW5wdXQnLFxuICAgICAgZGVmYXVsdERlc2NyaXB0aW9uOiAnLnNlcnAtZGVmYXVsdC1kZXNjcmlwdGlvbicsXG4gICAgICB3YXRjaGVkRGVzY3JpcHRpb246ICcuc2VycC13YXRjaGVkLWRlc2NyaXB0aW9uJyxcbiAgICAgIHdhdGNoZWRNZXRhVXJsOiAnLnNlcnAtd2F0Y2hlZC11cmw6aW5wdXQnLFxuICAgIH0sXG4gICAgJCgnI3Byb2R1Y3RfZm9ybV9wcmV2aWV3X2J0bicpLmRhdGEoJ3Nlby11cmwnKSxcbiAgKTtcblxuICAvLyBUaGlzIGlzIHRoZSBvbmx5IHNjcmlwdCBmb3IgdGhlIG1vZHVsZSBwYWdlIHNvIHRoZXJlIGlzIG5vIHNwZWNpZmljIGZpbGUgZm9yIGl0LlxuICAkKCcubW9kdWxlcy1saXN0LXNlbGVjdCcpLm9uKCdjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICQoJy5tb2R1bGUtcmVuZGVyLWNvbnRhaW5lcicpLmhpZGUoKTtcbiAgICAkKGAuJHtlLnRhcmdldC52YWx1ZX1gKS5zaG93KCk7XG4gIH0pO1xuXG4gICQoJy5tb2R1bGVzLWxpc3QtYnV0dG9uJykub24oJ2NsaWNrJywgKGUpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSAkKGUudGFyZ2V0KS5kYXRhKCd0YXJnZXQnKTtcbiAgICAkKCcubW9kdWxlLXNlbGVjdGlvbicpLnNob3coKTtcbiAgICAkKCcubW9kdWxlcy1saXN0LXNlbGVjdCcpLnZhbCh0YXJnZXQpLnRyaWdnZXIoJ2NoYW5nZScpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=