forked from experianplc/Experian-Address-Validation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
experian-address-validation.js
2 lines (2 loc) · 311 KB
/
experian-address-validation.js
1
2
!function(){"use strict";var e,s=function(){function e(){this.collection={}}return e.prototype.on=function(e,s){this.collection[e]=this.collection[e]||[],this.collection[e].push(s)},e.prototype.trigger=function(e,s){if(this.collection[e])for(var o=0;o<this.collection[e].length;o++){for(var t=[s],a=2;a<arguments.length;a++)t.push(arguments[a]);try{this.collection[e][o].apply(this.collection,t)}catch(e){}}},e}(),o=s,t=function(){function e(e){this.instance=e}return e.prototype.send=function(e,s,o,t,a){var d=this;void 0===a&&(a=[]),this.currentRequest=new XMLHttpRequest,this.currentRequest.open(s,e,!0),this.currentRequest.timeout=5e3,this.currentRequest.setRequestHeader("auth-token",this.instance.options.token),this.currentRequest.setRequestHeader("Content-Type","application/json"),this.currentRequest.setRequestHeader("Accept","application/json"),a.forEach((function(e){return d.currentRequest.setRequestHeader(e.key,e.value)})),this.currentRequest.onload=function(e){if(d.currentRequest.status>=200&&d.currentRequest.status<400){var s=JSON.parse(d.currentRequest.responseText);o(s)}else d.instance.searchSpinner.hide(),d.instance.events.trigger("request-error",e),d.instance.events.trigger("request-error-".concat(d.currentRequest.status),e)},this.currentRequest.onerror=function(e){d.instance.searchSpinner.hide(),d.instance.events.trigger("request-error",e)},this.currentRequest.ontimeout=function(e){d.instance.searchSpinner.hide(),d.instance.events.trigger("request-timeout",e)},this.currentRequest.send(t)},e}();!function(e){e.AUTOCOMPLETE="autocomplete",e.SINGLELINE="singleline",e.VALIDATE="validate"}(e||(e={}));var a={searchType:e.AUTOCOMPLETE,input:{placeholderText:"Start typing an address...",applyFocus:!1},formattedAddressContainer:{showHeading:!1,headingType:"h3",validatedHeadingText:"Validated address",manualHeadingText:"Manual address entered"},searchAgain:{visible:!0,text:"Search again"},useAddressEnteredText:"<em> - Use address entered or try again...</em>",useSpinner:!1,language:"en",addressLineLabels:["address_line_1","address_line_2","address_line_3","locality","region","postal_code","country"]},d=[{country:"Afghanistan",iso3Code:"AFG",iso2Code:"AF",datasetCode:"af-address-ed",searchType:"singleline, validate"},{country:"Afghanistan",iso3Code:"AFG",iso2Code:"AF",datasetCode:"af-address-eh",searchType:"autocomplete"},{country:"Albania",iso3Code:"ALB",iso2Code:"AL",datasetCode:"al-address-ed",searchType:"singleline, validate"},{country:"Albania",iso3Code:"ALB",iso2Code:"AL",datasetCode:"al-address-eh",searchType:"autocomplete"},{country:"Algeria",iso3Code:"DZA",iso2Code:"DZ",datasetCode:"dz-address-ed",searchType:"singleline, validate"},{country:"Algeria",iso3Code:"DZA",iso2Code:"DZ",datasetCode:"dz-address-eh",searchType:"autocomplete"},{country:"American Samoa",iso3Code:"ASM",iso2Code:"AS",datasetCode:"as-address-eh",searchType:"autocomplete"},{country:"Andorra",iso3Code:"AND",iso2Code:"AD",datasetCode:"ad-address-ed",searchType:"singleline, validate"},{country:"Andorra",iso3Code:"AND",iso2Code:"AD",datasetCode:"ad-address-eh",searchType:"autocomplete"},{country:"Angola",iso3Code:"AGO",iso2Code:"AO",datasetCode:"ao-address-ed",searchType:"singleline, validate"},{country:"Angola",iso3Code:"AGO",iso2Code:"AO",datasetCode:"ao-address-eh",searchType:"autocomplete"},{country:"Anguilla",iso3Code:"AIA",iso2Code:"AI",datasetCode:"ai-address-eh",searchType:"autocomplete"},{country:"Antarctica",iso3Code:"ATA",iso2Code:"AQ",datasetCode:"aq-address-ed",searchType:"singleline, validate"},{country:"Antigua and Barbuda",iso3Code:"ATG",iso2Code:"AG",datasetCode:"ag-address-ed",searchType:"singleline, validate"},{country:"Antigua and Barbuda",iso3Code:"ATG",iso2Code:"AG",datasetCode:"ag-address-eh",searchType:"autocomplete"},{country:"Argentina",iso3Code:"ARG",iso2Code:"AR",datasetCode:"ar-address-ed",searchType:"singleline, validate"},{country:"Argentina",iso3Code:"ARG",iso2Code:"AR",datasetCode:"ar-address-eh",searchType:"autocomplete"},{country:"Armenia",iso3Code:"ARM",iso2Code:"AM",datasetCode:"am-address-ed",searchType:"singleline, validate"},{country:"Armenia",iso3Code:"ARM",iso2Code:"AM",datasetCode:"am-address-eh",searchType:"autocomplete"},{country:"Aruba",iso3Code:"ABW",iso2Code:"AW",datasetCode:"aw-address-ed",searchType:"singleline, validate"},{country:"Aruba",iso3Code:"ABW",iso2Code:"AW",datasetCode:"aw-address-eh",searchType:"autocomplete"},{country:"Australia DataFusion",iso3Code:"AUS",iso2Code:"AU",datasetCode:"au-address-datafusion",searchType:"autocomplete, singleline, typedown"},{country:"Australia Geocoded National Address",iso3Code:"AUS",iso2Code:"AU",datasetCode:"au-address-gnaf",searchType:"autocomplete, singleline, typedown, validate"},{country:"Australia Postal Address",iso3Code:"AUS",iso2Code:"AU",datasetCode:"au-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Austria",iso3Code:"AUT",iso2Code:"AT",datasetCode:"at-address-eh",searchType:"autocomplete"},{country:"Austria",iso3Code:"AUT",iso2Code:"AT",datasetCode:"az-address-ed",searchType:"singleline, validate"},{country:"Azerbaijan",iso3Code:"AZE",iso2Code:"AZ",datasetCode:"az-address-ed",searchType:"singleline, validate"},{country:"Azerbaijan",iso3Code:"AZE",iso2Code:"AZ",datasetCode:"az-address-eh",searchType:"autocomplete"},{country:"Bahamas",iso3Code:"BHS",iso2Code:"BS",datasetCode:"bs-address-ed",searchType:"singleline, validate"},{country:"Bahamas",iso3Code:"BHS",iso2Code:"BS",datasetCode:"bs-address-eh",searchType:"autocomplete"},{country:"Bahrain",iso3Code:"BHR",iso2Code:"BH",datasetCode:"bh-address-ed",searchType:"singleline, validate"},{country:"Bahrain",iso3Code:"BHR",iso2Code:"BH",datasetCode:"bh-address-eh",searchType:"autocomplete"},{country:"Bangladesh",iso3Code:"BGD",iso2Code:"BD",datasetCode:"bd-address-ed",searchType:"singleline, validate"},{country:"Bangladesh",iso3Code:"BGD",iso2Code:"BD",datasetCode:"bd-address-eh",searchType:"autocomplete"},{country:"Barbados",iso3Code:"BRB",iso2Code:"BB",datasetCode:"bb-address-ed",searchType:"singleline, validate"},{country:"Barbados",iso3Code:"BRB",iso2Code:"BB",datasetCode:"bb-address-eh",searchType:"autocomplete"},{country:"Belarus",iso3Code:"BLR",iso2Code:"BY",datasetCode:"by-address-ed",searchType:"singleline, validate"},{country:"Belarus",iso3Code:"BLR",iso2Code:"BY",datasetCode:"by-address-eh",searchType:"autocomplete"},{country:"Belgium",iso3Code:"BEL",iso2Code:"BE",datasetCode:"be-address",searchType:"singleline, typedown"},{country:"Belgium",iso3Code:"BEL",iso2Code:"BE",datasetCode:"be-address-ed",searchType:" validate"},{country:"Belgium",iso3Code:"BEL",iso2Code:"BE",datasetCode:"be-address-eh",searchType:"autocomplete"},{country:"Belize",iso3Code:"BLZ",iso2Code:"BZ",datasetCode:"bz-address-ed",searchType:"singleline, validate"},{country:"Belize",iso3Code:"BLZ",iso2Code:"BZ",datasetCode:"bz-address-eh",searchType:"autocomplete"},{country:"Benin",iso3Code:"BEN",iso2Code:"BJ",datasetCode:"bj-address-ed",searchType:"singleline, validate"},{country:"Benin",iso3Code:"BEN",iso2Code:"BJ",datasetCode:"bj-address-eh",searchType:"autocomplete"},{country:"Bermuda",iso3Code:"BMU",iso2Code:"BM",datasetCode:"bm-address-ed",searchType:"singleline, validate"},{country:"Bermuda",iso3Code:"BMU",iso2Code:"BM",datasetCode:"bm-address-eh",searchType:"autocomplete"},{country:"Bhutan",iso3Code:"BTN",iso2Code:"BT",datasetCode:"bt-address-ed",searchType:"singleline, validate"},{country:"Bhutan",iso3Code:"BTN",iso2Code:"BT",datasetCode:"bt-address-eh",searchType:"autocomplete"},{country:"Bolivia",iso3Code:"BOL",iso2Code:"BO",datasetCode:"bo-address-ed",searchType:"singleline, validate"},{country:"Bolivia",iso3Code:"BOL",iso2Code:"BO",datasetCode:"bo-address-eh",searchType:"autocomplete"},{country:"Bonaire, Sint Eustatius and Saba",iso3Code:"BES",iso2Code:"BQ",datasetCode:"bq-address-ed",searchType:"singleline, validate"},{country:"Bonaire, Sint Eustatius and Saba",iso3Code:"BES",iso2Code:"BQ",datasetCode:"bq-address-eh",searchType:"autocomplete"},{country:"Bosnia and Herzegovina",iso3Code:"BIH",iso2Code:"BA",datasetCode:"ba-address-ed",searchType:"singleline, validate"},{country:"Bosnia and Herzegovina",iso3Code:"BIH",iso2Code:"BA",datasetCode:"ba-address-eh",searchType:"autocomplete"},{country:"Botswana",iso3Code:"BWA",iso2Code:"BW",datasetCode:"bw-address-ed",searchType:"singleline, validate"},{country:"Botswana",iso3Code:"BWA",iso2Code:"BW",datasetCode:"bw-address-eh",searchType:"autocomplete"},{country:"Brazil",iso3Code:"BRA",iso2Code:"BR",datasetCode:"br-address-ed",searchType:"singleline, validate"},{country:"Brazil",iso3Code:"BRA",iso2Code:"BR",datasetCode:"br-address-eh",searchType:"autocomplete"},{country:"Brunei Darussalam",iso3Code:"BRN",iso2Code:"BN",datasetCode:"bn-address-ed",searchType:"singleline, validate"},{country:"Brunei Darussalam",iso3Code:"BRN",iso2Code:"BN",datasetCode:"bn-address-eh",searchType:"autocomplete"},{country:"Bulgaria",iso3Code:"BGR",iso2Code:"BG",datasetCode:"bg-address-ed",searchType:"singleline, validate"},{country:"Bulgaria",iso3Code:"BGR",iso2Code:"BG",datasetCode:"bg-address-eh",searchType:"autocomplete"},{country:"Burkina Faso",iso3Code:"BFA",iso2Code:"BF",datasetCode:"bf-address-ed",searchType:"singleline, validate"},{country:"Burkina Faso",iso3Code:"BFA",iso2Code:"BF",datasetCode:"bf-address-eh",searchType:"autocomplete"},{country:"Burundi",iso3Code:"BDI",iso2Code:"BI",datasetCode:"bi-address-eh",searchType:"autocomplete"},{country:"Cambodia",iso3Code:"KHM",iso2Code:"KH",datasetCode:"kh-address-ed",searchType:"singleline, validate"},{country:"Cambodia",iso3Code:"KHM",iso2Code:"KH",datasetCode:"kh-address-eh",searchType:"autocomplete"},{country:"Cameroon",iso3Code:"CMR",iso2Code:"CM",datasetCode:"cm-address-ed",searchType:"singleline, validate"},{country:"Cameroon",iso3Code:"CMR",iso2Code:"CM",datasetCode:"cm-address-eh",searchType:"autocomplete"},{country:"Canada",iso3Code:"CAN",iso2Code:"CA",datasetCode:"ca-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Cape Verde",iso3Code:"CPV",iso2Code:"CV",datasetCode:"cv-address-ed",searchType:"singleline, validate"},{country:"Cape Verde",iso3Code:"CPV",iso2Code:"CV",datasetCode:"cv-address-eh",searchType:"autocomplete"},{country:"Cayman Islands",iso3Code:"CYM",iso2Code:"KY",datasetCode:"ky-address-ed",searchType:"singleline, validate"},{country:"Cayman Islands",iso3Code:"CYM",iso2Code:"KY",datasetCode:"ky-address-eh",searchType:"autocomplete"},{country:"Central African Republic",iso3Code:"CAF",iso2Code:"CF",datasetCode:"cf-address-ed",searchType:"singleline, validate"},{country:"Central African Republic",iso3Code:"CAF",iso2Code:"CF",datasetCode:"cf-address-eh",searchType:"autocomplete"},{country:"Chad",iso3Code:"TCD",iso2Code:"TD",datasetCode:"td-address-ed",searchType:"singleline, validate"},{country:"Chad",iso3Code:"TCD",iso2Code:"TD",datasetCode:"td-address-eh",searchType:"autocomplete"},{country:"Chile",iso3Code:"CHL",iso2Code:"CL",datasetCode:"cl-address-ed",searchType:"singleline, validate"},{country:"Chile",iso3Code:"CHL",iso2Code:"CL",datasetCode:"cl-address-eh",searchType:"autocomplete"},{country:"China",iso3Code:"CHN",iso2Code:"CN",datasetCode:"cn-address-ed",searchType:"singleline, validate"},{country:"China",iso3Code:"CHN",iso2Code:"CN",datasetCode:"cn-address-eh",searchType:"autocomplete"},{country:"Christmas Island",iso3Code:"CXR",iso2Code:"CX",datasetCode:"cx-address-eh",searchType:"autocomplete"},{country:"Cocos Island",iso3Code:"CCK",iso2Code:"CC",datasetCode:"cc-address-eh",searchType:"autocomplete"},{country:"Colombia",iso3Code:"COL",iso2Code:"CO",datasetCode:"co-address-ed",searchType:"singleline, validate"},{country:"Colombia",iso3Code:"COL",iso2Code:"CO",datasetCode:"co-address-eh",searchType:"autocomplete"},{country:"Comoros",iso3Code:"COM",iso2Code:"KM",datasetCode:"km-address-ed",searchType:"singleline, validate"},{country:"Comoros",iso3Code:"COM",iso2Code:"KM",datasetCode:"km-address-eh",searchType:"autocomplete"},{country:"Congo",iso3Code:"COG",iso2Code:"CG",datasetCode:"cg-address-ed",searchType:"singleline, validate"},{country:"Congo",iso3Code:"COG",iso2Code:"CG",datasetCode:"cg-address-eh",searchType:"autocomplete"},{country:"Congo, The Democratic Republic of the",iso3Code:"COD",iso2Code:"CD",datasetCode:"cd-address-ed",searchType:"singleline, validate"},{country:"Congo, The Democratic Republic of the",iso3Code:"COD",iso2Code:"CD",datasetCode:"cd-address-eh",searchType:"autocomplete"},{country:"Cook Islands",iso3Code:"COK",iso2Code:"CK",datasetCode:"ck-address-ed",searchType:"singleline, validate"},{country:"Cook Islands",iso3Code:"COK",iso2Code:"CK",datasetCode:"ck-address-eh",searchType:"autocomplete"},{country:"Costa Rica",iso3Code:"CRI",iso2Code:"CR",datasetCode:"cr-address-ed",searchType:"singleline, validate"},{country:"Costa Rica",iso3Code:"CRI",iso2Code:"CR",datasetCode:"cr-address-eh",searchType:"autocomplete"},{country:"Croatia",iso3Code:"HRV",iso2Code:"HR",datasetCode:"hr-address-ed",searchType:"singleline, validate"},{country:"Croatia",iso3Code:"HRV",iso2Code:"HR",datasetCode:"hr-address-eh",searchType:"autocomplete"},{country:"Cuba",iso3Code:"CUB",iso2Code:"CU",datasetCode:"cu-address-ed",searchType:"singleline, validate"},{country:"Cuba",iso3Code:"CUB",iso2Code:"CU",datasetCode:"cu-address-eh",searchType:"autocomplete"},{country:"Curaçao",iso3Code:"CUW",iso2Code:"CW",datasetCode:"cw-address-ed",searchType:"singleline, validate"},{country:"Curaçao",iso3Code:"CUW",iso2Code:"CW",datasetCode:"cw-address-eh",searchType:"autocomplete"},{country:"Cyprus",iso3Code:"CYP",iso2Code:"CY",datasetCode:"cy-address-ed",searchType:"singleline, validate"},{country:"Cyprus",iso3Code:"CYP",iso2Code:"CY",datasetCode:"cy-address-eh",searchType:"autocomplete"},{country:"Czech Republic",iso3Code:"CZE",iso2Code:"CZ",datasetCode:"cz-address-ed",searchType:"singleline, validate"},{country:"Czech Republic",iso3Code:"CZE",iso2Code:"CZ",datasetCode:"cz-address-eh",searchType:"autocomplete"},{country:"Côte d'Ivoire",iso3Code:"CIV",iso2Code:"CI",datasetCode:"ci-address-ed",searchType:"singleline, validate"},{country:"Côte d'Ivoire",iso3Code:"CIV",iso2Code:"CI",datasetCode:"ci-address-eh",searchType:"autocomplete"},{country:"Denmark",iso3Code:"DNK",iso2Code:"DK",datasetCode:"dk-address-ed",searchType:"singleline, validate"},{country:"Denmark",iso3Code:"DNK",iso2Code:"DK",datasetCode:"dk-address-eh",searchType:"autocomplete"},{country:"Djibouti",iso3Code:"DJI",iso2Code:"DJ",datasetCode:"dj-address-ed",searchType:"singleline, validate"},{country:"Djibouti",iso3Code:"DJI",iso2Code:"DJ",datasetCode:"dj-address-eh",searchType:"autocomplete"},{country:"Dominica",iso3Code:"DMA",iso2Code:"DM",datasetCode:"dm-address-ed",searchType:"singleline, validate"},{country:"Dominica",iso3Code:"DMA",iso2Code:"DM",datasetCode:"dm-address-eh",searchType:"autocomplete"},{country:"Dominican Republic",iso3Code:"DOM",iso2Code:"DO",datasetCode:"do-address-ed",searchType:"singleline, validate"},{country:"Dominican Republic",iso3Code:"DOM",iso2Code:"DO",datasetCode:"do-address-eh",searchType:"autocomplete"},{country:"Ecuador",iso3Code:"ECU",iso2Code:"EC",datasetCode:"ec-address-ed",searchType:"singleline, validate"},{country:"Ecuador",iso3Code:"ECU",iso2Code:"EC",datasetCode:"ec-address-eh",searchType:"autocomplete"},{country:"Egypt",iso3Code:"EGY",iso2Code:"EG",datasetCode:"eg-address-ed",searchType:"singleline, validate"},{country:"Egypt",iso3Code:"EGY",iso2Code:"EG",datasetCode:"eg-address-eh",searchType:"autocomplete"},{country:"El Salvador",iso3Code:"SLV",iso2Code:"SV",datasetCode:"sv-address-ed",searchType:"singleline, validate"},{country:"El Salvador",iso3Code:"SLV",iso2Code:"SV",datasetCode:"sv-address-eh",searchType:"autocomplete"},{country:"Equatorial Guinea",iso3Code:"GNQ",iso2Code:"GQ",datasetCode:"gq-address-ed",searchType:"singleline, validate"},{country:"Equatorial Guinea",iso3Code:"GNQ",iso2Code:"GQ",datasetCode:"gq-address-eh",searchType:"autocomplete"},{country:"Eritrea",iso3Code:"ERI",iso2Code:"ER",datasetCode:"er-address-ed",searchType:"singleline, validate"},{country:"Eritrea",iso3Code:"ERI",iso2Code:"ER",datasetCode:"er-address-eh",searchType:"autocomplete"},{country:"Estonia",iso3Code:"EST",iso2Code:"EE",datasetCode:"ee-address-ed",searchType:"singleline, validate"},{country:"Estonia",iso3Code:"EST",iso2Code:"EE",datasetCode:"ee-address-eh",searchType:"autocomplete"},{country:"Ethiopia",iso3Code:"ETH",iso2Code:"ET",datasetCode:"et-address-ed",searchType:"singleline, validate"},{country:"Ethiopia",iso3Code:"ETH",iso2Code:"ET",datasetCode:"et-address-eh",searchType:"autocomplete"},{country:"Falkland Islands (Malvinas)",iso3Code:"FLK",iso2Code:"FK",datasetCode:"fk-address-eh",searchType:"autocomplete"},{country:"Faroe Islands",iso3Code:"FRO",iso2Code:"FO",datasetCode:"fo-address-ed",searchType:"singleline, validate"},{country:"Faroe Islands",iso3Code:"FRO",iso2Code:"FO",datasetCode:"fo-address-eh",searchType:"autocomplete"},{country:"Fiji",iso3Code:"FJI",iso2Code:"FJ",datasetCode:"fj-address-ed",searchType:"singleline, validate"},{country:"Fiji",iso3Code:"FJI",iso2Code:"FJ",datasetCode:"fj-address-eh",searchType:"autocomplete"},{country:"Finland",iso3Code:"FIN",iso2Code:"FI",datasetCode:"fi-address",searchType:"singleline, typedown"},{country:"Finland",iso3Code:"FIN",iso2Code:"FI",datasetCode:"fi-address-ed",searchType:"validate"},{country:"Finland",iso3Code:"FIN",iso2Code:"FI",datasetCode:"fi-address-eh",searchType:"autocomplete"},{country:"France Street Level",iso3Code:"FRA",iso2Code:"FR",datasetCode:"fr-address-streetlevel",searchType:"singleline, typedown, validate"},{country:"France Sub-Premises Level",iso3Code:"FRA",iso2Code:"FR",datasetCode:"fr-additional-hexaline3",searchType:"autocomplete, singleline, typedown"},{country:"France Premises Level",iso3Code:"FRA",iso2Code:"FR",datasetCode:"fr-address",searchType:"singleline, typedown, validate"},{country:"French Guiana",iso3Code:"GUF",iso2Code:"GF",datasetCode:"gf-address-eh",searchType:"autocomplete"},{country:"French Polynesia",iso3Code:"PYF",iso2Code:"PF",datasetCode:"pf-address-eh",searchType:"autocomplete"},{country:"Gabon",iso3Code:"GAB",iso2Code:"GA",datasetCode:"ga-address-ed",searchType:"singleline, validate"},{country:"Gabon",iso3Code:"GAB",iso2Code:"GA",datasetCode:"ga-address-eh",searchType:"autocomplete"},{country:"Gambia",iso3Code:"GMB",iso2Code:"GM",datasetCode:"gm-address-ed",searchType:"singleline, validate"},{country:"Gambia",iso3Code:"GMB",iso2Code:"GM",datasetCode:"gm-address-eh",searchType:"autocomplete"},{country:"Georgia",iso3Code:"GEO",iso2Code:"GE",datasetCode:"ge-address-ed",searchType:"singleline, validate"},{country:"Georgia",iso3Code:"GEO",iso2Code:"GE",datasetCode:"ge-address-eh",searchType:"autocomplete"},{country:"Germany",iso3Code:"DEU",iso2Code:"DE",datasetCode:"de-address",searchType:"singleline, typedown, validate"},{country:"Germany",iso3Code:"DEU",iso2Code:"DE",datasetCode:"de-address-ed",searchType:"validate"},{country:"Germany",iso3Code:"DEU",iso2Code:"DE",datasetCode:"de-address-eh",searchType:"autocomplete"},{country:"Ghana",iso3Code:"GHA",iso2Code:"GH",datasetCode:"gh-address-ed",searchType:"singleline, validate"},{country:"Ghana",iso3Code:"GHA",iso2Code:"GH",datasetCode:"gh-address-eh",searchType:"autocomplete"},{country:"Gibraltar",iso3Code:"GIB",iso2Code:"GI",datasetCode:"gi-address-eh",searchType:"autocomplete"},{country:"Greece",iso3Code:"GRC",iso2Code:"GR",datasetCode:"gr-address-ed",searchType:"singleline, validate"},{country:"Greece",iso3Code:"GRC",iso2Code:"GR",datasetCode:"gr-address-eh",searchType:"autocomplete"},{country:"Greenland",iso3Code:"GRL",iso2Code:"GL",datasetCode:"gl-address-ed",searchType:"singleline, validate"},{country:"Greenland",iso3Code:"GRL",iso2Code:"GL",datasetCode:"gl-address-eh",searchType:"autocomplete"},{country:"Grenada",iso3Code:"GRD",iso2Code:"GD",datasetCode:"gd-address-ed",searchType:"singleline, validate"},{country:"Grenada",iso3Code:"GRD",iso2Code:"GD",datasetCode:"gd-address-eh",searchType:"autocomplete"},{country:"Guadeloupe",iso3Code:"GLP",iso2Code:"GP",datasetCode:"gp-address-eh",searchType:"autocomplete"},{country:"Guam",iso3Code:"GUM",iso2Code:"GU",datasetCode:"gu-address-eh",searchType:"autocomplete"},{country:"Guatemala",iso3Code:"GTM",iso2Code:"GT",datasetCode:"gt-address-ed",searchType:"singleline, validate"},{country:"Guatemala",iso3Code:"GTM",iso2Code:"GT",datasetCode:"gt-address-eh",searchType:"autocomplete"},{country:"Guinea",iso3Code:"GIN",iso2Code:"GN",datasetCode:"gn-address-ed",searchType:"singleline, validate"},{country:"Guinea",iso3Code:"GIN",iso2Code:"GN",datasetCode:"gn-address-eh",searchType:"autocomplete"},{country:"Guinea-Bissau",iso3Code:"GNB",iso2Code:"GW",datasetCode:"gw-address-ed",searchType:"singleline, validate"},{country:"Guinea-Bissau",iso3Code:"GNB",iso2Code:"GW",datasetCode:"gw-address-eh",searchType:"autocomplete"},{country:"Guyana",iso3Code:"GUY",iso2Code:"GY",datasetCode:"gy-address-ed",searchType:"singleline, validate"},{country:"Guyana",iso3Code:"GUY",iso2Code:"GY",datasetCode:"gy-address-eh",searchType:"autocomplete"},{country:"Haiti",iso3Code:"HTI",iso2Code:"HT",datasetCode:"ht-address-ed",searchType:"singleline, validate"},{country:"Haiti",iso3Code:"HTI",iso2Code:"HT",datasetCode:"ht-address-eh",searchType:"autocomplete"},{country:"Honduras",iso3Code:"HND",iso2Code:"HN",datasetCode:"hn-address-ed",searchType:"singleline, validate"},{country:"Honduras",iso3Code:"HND",iso2Code:"HN",datasetCode:"hn-address-eh",searchType:"autocomplete"},{country:"Hong Kong",iso3Code:"HKG",iso2Code:"HK",datasetCode:"hk-address-ed",searchType:"singleline, validate"},{country:"Hong Kong",iso3Code:"HKG",iso2Code:"HK",datasetCode:"hk-address-eh",searchType:"autocomplete"},{country:"Hungary",iso3Code:"HUN",iso2Code:"HU",datasetCode:"hu-address-ed",searchType:"singleline, validate"},{country:"Hungary",iso3Code:"HUN",iso2Code:"HU",datasetCode:"hu-address-eh",searchType:"autocomplete"},{country:"Iceland",iso3Code:"ISL",iso2Code:"IS",datasetCode:"is-address-ed",searchType:"singleline, validate"},{country:"Iceland",iso3Code:"ISL",iso2Code:"IS",datasetCode:"is-address-eh",searchType:"autocomplete"},{country:"India",iso3Code:"IND",iso2Code:"IN",datasetCode:"in-address-ed",searchType:"singleline, validate"},{country:"India",iso3Code:"IND",iso2Code:"IN",datasetCode:"in-address-eh",searchType:"autocomplete"},{country:"Indonesia",iso3Code:"IDN",iso2Code:"ID",datasetCode:"id-address-ed",searchType:"singleline, validate"},{country:"Indonesia",iso3Code:"IDN",iso2Code:"ID",datasetCode:"id-address-eh",searchType:"autocomplete"},{country:"Iran, Islamic Republic of",iso3Code:"IRN",iso2Code:"IR",datasetCode:"ir-address-ed",searchType:"singleline, validate"},{country:"Iran, Islamic Republic of",iso3Code:"IRN",iso2Code:"IR",datasetCode:"ir-address-eh",searchType:"autocomplete"},{country:"Iraq",iso3Code:"IRQ",iso2Code:"IQ",datasetCode:"iq-address-ed",searchType:"singleline, validate"},{country:"Iraq",iso3Code:"IRQ",iso2Code:"IQ",datasetCode:"iq-address-eh",searchType:"autocomplete"},{country:"Ireland",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address",searchType:"singleline, typedown"},{country:"Ireland",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address-ed",searchType:"singleline, validate"},{country:"Ireland",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address-eh",searchType:"autocomplete"},{country:"Ireland Eircode",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-additional-eircode",searchType:"autocomplete"},{country:"Ireland ECAD",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address-ecad",searchType:"autocomplete"},{country:"Israel",iso3Code:"ISR",iso2Code:"IL",datasetCode:"il-address-ed",searchType:"singleline, validate"},{country:"Israel",iso3Code:"ISR",iso2Code:"IL",datasetCode:"il-address-eh",searchType:"autocomplete"},{country:"Italy",iso3Code:"ITA",iso2Code:"IT",datasetCode:"it-address-ed",searchType:"singleline, validate"},{country:"Italy",iso3Code:"ITA",iso2Code:"IT",datasetCode:"it-address-eh",searchType:"autocomplete"},{country:"Jamaica",iso3Code:"JAM",iso2Code:"JM",datasetCode:"jm-address-ed",searchType:"singleline, validate"},{country:"Jamaica",iso3Code:"JAM",iso2Code:"JM",datasetCode:"jm-address-eh",searchType:"autocomplete"},{country:"Japan",iso3Code:"JPN",iso2Code:"JP",datasetCode:"jp-address-ed",searchType:"singleline, validate"},{country:"Japan",iso3Code:"JPN",iso2Code:"JP",datasetCode:"jp-address",searchType:"singleline, validate"},{country:"Jordan",iso3Code:"JOR",iso2Code:"JO",datasetCode:"jo-address-ed",searchType:"singleline, validate"},{country:"Jordan",iso3Code:"JOR",iso2Code:"JO",datasetCode:"jo-address-eh",searchType:"autocomplete"},{country:"Kazakhstan",iso3Code:"KAZ",iso2Code:"KZ",datasetCode:"kz-address-ed",searchType:"singleline, validate"},{country:"Kazakhstan",iso3Code:"KAZ",iso2Code:"KZ",datasetCode:"kz-address-eh",searchType:"autocomplete"},{country:"Kenya",iso3Code:"KEN",iso2Code:"KE",datasetCode:"ke-address-ed",searchType:"singleline, validate"},{country:"Kenya",iso3Code:"KEN",iso2Code:"KE",datasetCode:"ke-address-eh",searchType:"autocomplete"},{country:"Kiribati",iso3Code:"KIR",iso2Code:"KI",datasetCode:"ki-address-ed",searchType:"singleline, validate"},{country:"Kiribati",iso3Code:"KIR",iso2Code:"KI",datasetCode:"ki-address-eh",searchType:"autocomplete"},{country:"Korea, Democratic People's Republic of",iso3Code:"PRK",iso2Code:"KP",datasetCode:"kp-address-ed",searchType:"singleline, validate"},{country:"Korea, Democratic People's Republic of",iso3Code:"PRK",iso2Code:"KP",datasetCode:"kp-address-eh",searchType:"autocomplete"},{country:"Korea, Republic of",iso3Code:"KOR",iso2Code:"KR",datasetCode:"kr-address-ed",searchType:"singleline, validate"},{country:"Korea, Republic of",iso3Code:"KOR",iso2Code:"KR",datasetCode:"kr-address-eh",searchType:"autocomplete"},{country:"Kosovo",iso3Code:"KOS",iso2Code:"XK",datasetCode:"kv-address-eh",searchType:"autocomplete"},{country:"Kuwait",iso3Code:"KWT",iso2Code:"KW",datasetCode:"kw-address-ed",searchType:"singleline, validate"},{country:"Kuwait",iso3Code:"KWT",iso2Code:"KW",datasetCode:"kw-address-eh",searchType:"autocomplete"},{country:"Kyrgyzstan",iso3Code:"KGZ",iso2Code:"KG",datasetCode:"kg-address-ed",searchType:"singleline, validate"},{country:"Kyrgyzstan",iso3Code:"KGZ",iso2Code:"KG",datasetCode:"kg-address-eh",searchType:"autocomplete"},{country:"Laos",iso3Code:"LAO",iso2Code:"LA",datasetCode:"la-address-ed",searchType:"singleline, validate"},{country:"Laos",iso3Code:"LAO",iso2Code:"LA",datasetCode:"la-address-eh",searchType:"autocomplete"},{country:"Latvia",iso3Code:"LVA",iso2Code:"LV",datasetCode:"lv-address-ed",searchType:"singleline, validate"},{country:"Latvia",iso3Code:"LVA",iso2Code:"LV",datasetCode:"lv-address-eh",searchType:"autocomplete"},{country:"Lebanon",iso3Code:"LBN",iso2Code:"LB",datasetCode:"lb-address-ed",searchType:"singleline, validate"},{country:"Lebanon",iso3Code:"LBN",iso2Code:"LB",datasetCode:"lb-address-eh",searchType:"autocomplete"},{country:"Lesotho",iso3Code:"LSO",iso2Code:"LS",datasetCode:"ls-address-ed",searchType:"singleline, validate"},{country:"Lesotho",iso3Code:"LSO",iso2Code:"LS",datasetCode:"ls-address-eh",searchType:"autocomplete"},{country:"Liberia",iso3Code:"LBR",iso2Code:"LR",datasetCode:"lr-address-ed",searchType:"singleline, validate"},{country:"Liberia",iso3Code:"LBR",iso2Code:"LR",datasetCode:"lr-address-eh",searchType:"autocomplete"},{country:"Libya",iso3Code:"LBY",iso2Code:"LY",datasetCode:"ly-address-ed",searchType:"singleline, validate"},{country:"Libya",iso3Code:"LBY",iso2Code:"LY",datasetCode:"ly-address-eh",searchType:"autocomplete"},{country:"Liechtenstein",iso3Code:"LIE",iso2Code:"LI",datasetCode:"li-address-ed",searchType:"singleline, validate"},{country:"Liechtenstein",iso3Code:"LIE",iso2Code:"LI",datasetCode:"li-address-eh",searchType:"autocomplete"},{country:"Lithuania",iso3Code:"LTU",iso2Code:"LT",datasetCode:"lt-address-ed",searchType:"singleline, validate"},{country:"Lithuania",iso3Code:"LTU",iso2Code:"LT",datasetCode:"lt-address-eh",searchType:"autocomplete"},{country:"Luxembourg",iso3Code:"LUX",iso2Code:"LU",datasetCode:"lu-address-ed",searchType:"singleline, validate"},{country:"Luxembourg",iso3Code:"LUX",iso2Code:"LU",datasetCode:"lu-address-eh",searchType:"autocomplete"},{country:"Macau",iso3Code:"MAC",iso2Code:"MO",datasetCode:"lv-address-ed",searchType:"singleline, validate"},{country:"Macau",iso3Code:"MAC",iso2Code:"MO",datasetCode:"lv-address-eh",searchType:"autocomplete"},{country:"Madagascar",iso3Code:"MDG",iso2Code:"MG",datasetCode:"mo-address-ed",searchType:"singleline, validate"},{country:"Madagascar",iso3Code:"MDG",iso2Code:"MG",datasetCode:"mo-address-eh",searchType:"autocomplete"},{country:"Malawi",iso3Code:"MWI",iso2Code:"MW",datasetCode:"mw-address-ed",searchType:"singleline, validate"},{country:"Malawi",iso3Code:"MWI",iso2Code:"MW",datasetCode:"mw-address-eh",searchType:"autocomplete"},{country:"Malaysia",iso3Code:"MYS",iso2Code:"MY",datasetCode:"my-address-ed",searchType:"singleline, validate"},{country:"Malaysia",iso3Code:"MYS",iso2Code:"MY",datasetCode:"my-address-eh",searchType:"autocomplete"},{country:"Maldives",iso3Code:"MDV",iso2Code:"MV",datasetCode:"mv-address-ed",searchType:"singleline, validate"},{country:"Maldives",iso3Code:"MDV",iso2Code:"MV",datasetCode:"mv-address-eh",searchType:"autocomplete"},{country:"Mali",iso3Code:"MLI",iso2Code:"ML",datasetCode:"ml-address-ed",searchType:"singleline, validate"},{country:"Mali",iso3Code:"MLI",iso2Code:"ML",datasetCode:"ml-address-eh",searchType:"autocomplete"},{country:"Malta",iso3Code:"MLT",iso2Code:"MT",datasetCode:"mt-address-ed",searchType:"singleline, validate"},{country:"Malta",iso3Code:"MLT",iso2Code:"MT",datasetCode:"mt-address-eh",searchType:"autocomplete"},{country:"Marshall Islands",iso3Code:"MHL",iso2Code:"MH",datasetCode:"mh-address-eh",searchType:"autocomplete"},{country:"Martinique",iso3Code:"MTQ",iso2Code:"MQ",datasetCode:"mq-address-eh",searchType:"autocomplete"},{country:"Mauritania",iso3Code:"MRT",iso2Code:"MR",datasetCode:"mr-address-ed",searchType:"singleline, validate"},{country:"Mauritania",iso3Code:"MRT",iso2Code:"MR",datasetCode:"mr-address-eh",searchType:"autocomplete"},{country:"Mauritius",iso3Code:"MUS",iso2Code:"MU",datasetCode:"mu-address-ed",searchType:"singleline, validate"},{country:"Mauritius",iso3Code:"MUS",iso2Code:"MU",datasetCode:"mu-address-eh",searchType:"autocomplete"},{country:"Mayotte",iso3Code:"MYT",iso2Code:"YT",datasetCode:"yt-address-eh",searchType:"autocomplete"},{country:"Mexico",iso3Code:"MEX",iso2Code:"MX",datasetCode:"mx-address-ed",searchType:"singleline, validate"},{country:"Mexico",iso3Code:"MEX",iso2Code:"MX",datasetCode:"mx-address-eh",searchType:"autocomplete"},{country:"Micronesia, Federated States of",iso3Code:"FSM",iso2Code:"FM",datasetCode:"fm-address-eh",searchType:"autocomplete"},{country:"Moldova",iso3Code:"MDA",iso2Code:"MD",datasetCode:"md-address-ed",searchType:"singleline, validate"},{country:"Moldova",iso3Code:"MDA",iso2Code:"MD",datasetCode:"md-address-eh",searchType:"autocomplete"},{country:"Monaco",iso3Code:"MCO",iso2Code:"MC",datasetCode:"mc-address-ed",searchType:"singleline, validate"},{country:"Monaco",iso3Code:"MCO",iso2Code:"MC",datasetCode:"mc-address-eh",searchType:"autocomplete"},{country:"Mongolia",iso3Code:"MNG",iso2Code:"MN",datasetCode:"mn-address-ed",searchType:"singleline, validate"},{country:"Mongolia",iso3Code:"MNG",iso2Code:"MN",datasetCode:"mn-address-eh",searchType:"autocomplete"},{country:"Montenegro",iso3Code:"MNE",iso2Code:"ME",datasetCode:"me-address-ed",searchType:"singleline, validate"},{country:"Montenegro",iso3Code:"MNE",iso2Code:"ME",datasetCode:"me-address-eh",searchType:"autocomplete"},{country:"Montserrat",iso3Code:"MSR",iso2Code:"MS",datasetCode:"ms-address-eh",searchType:"autocomplete"},{country:"Morocco",iso3Code:"MAR",iso2Code:"MA",datasetCode:"ma-address-ed",searchType:"singleline, validate"},{country:"Morocco",iso3Code:"MAR",iso2Code:"MA",datasetCode:"ma-address-eh",searchType:"autocomplete"},{country:"Mozambique",iso3Code:"MOZ",iso2Code:"MZ",datasetCode:"mz-address-ed",searchType:"singleline, validate"},{country:"Mozambique",iso3Code:"MOZ",iso2Code:"MZ",datasetCode:"mz-address-eh",searchType:"autocomplete"},{country:"Myanmar",iso3Code:"MMR",iso2Code:"MM",datasetCode:"mm-address-ed",searchType:"singleline, validate"},{country:"Myanmar",iso3Code:"MMR",iso2Code:"MM",datasetCode:"mm-address-eh",searchType:"autocomplete"},{country:"Namibia",iso3Code:"NAM",iso2Code:"NA",datasetCode:"na-address-ed",searchType:"singleline, validate"},{country:"Namibia",iso3Code:"NAM",iso2Code:"NA",datasetCode:"na-address-eh",searchType:"autocomplete"},{country:"Nauru",iso3Code:"NRU",iso2Code:"NR",datasetCode:"nr-address-ed",searchType:"singleline, validate"},{country:"Nauru",iso3Code:"NRU",iso2Code:"NR",datasetCode:"nr-address-eh",searchType:"autocomplete"},{country:"Nepal",iso3Code:"NPL",iso2Code:"NP",datasetCode:"np-address-ed",searchType:"singleline, validate"},{country:"Nepal",iso3Code:"NPL",iso2Code:"NP",datasetCode:"np-address-eh",searchType:"autocomplete"},{country:"Netherlands",iso3Code:"NLD",iso2Code:"NL",datasetCode:"nl-address-ed",searchType:"singleline, validate"},{country:"Netherlands",iso3Code:"NLD",iso2Code:"NL",datasetCode:"nl-address-eh",searchType:"autocomplete"},{country:"New Caledonia",iso3Code:"NCL",iso2Code:"NC",datasetCode:"nc-address-eh",searchType:"autocomplete"},{country:"New Zealand DataFusion",iso3Code:"NZL",iso2Code:"NZ",datasetCode:"nz-additional-datafusion",searchType:"autocomplete, singleline, typedown, validate"},{country:"New Zealand Postal Address",iso3Code:"NZL",iso2Code:"NZ",datasetCode:"nz-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Nicaragua",iso3Code:"NIC",iso2Code:"NI",datasetCode:"ni-address-ed",searchType:"singleline, validate"},{country:"Nicaragua",iso3Code:"NIC",iso2Code:"NI",datasetCode:"ni-address-eh",searchType:"autocomplete"},{country:"Niger",iso3Code:"NER",iso2Code:"NE",datasetCode:"ne-address-ed",searchType:"singleline, validate"},{country:"Niger",iso3Code:"NER",iso2Code:"NE",datasetCode:"ne-address-eh",searchType:"autocomplete"},{country:"Nigeria",iso3Code:"NGA",iso2Code:"NG",datasetCode:"ng-address-ed",searchType:"singleline, validate"},{country:"Nigeria",iso3Code:"NGA",iso2Code:"NG",datasetCode:"ng-address-eh",searchType:"autocomplete"},{country:"Niue",iso3Code:"NIU",iso2Code:"NU",datasetCode:"nu-address-ed",searchType:"singleline, validate"},{country:"Norfolk Island",iso3Code:"NFK",iso2Code:"NF",datasetCode:"nf-address-ed",searchType:"singleline, validate"},{country:"Norfolk Island",iso3Code:"NFK",iso2Code:"NF",datasetCode:"nf-address-eh",searchType:"autocomplete"},{country:"North Macedonia",iso3Code:"MKD",iso2Code:"MK",datasetCode:"mk-address-ed",searchType:"singleline, validate"},{country:"North Macedonia",iso3Code:"MKD",iso2Code:"MK",datasetCode:"mk-address-eh",searchType:"autocomplete"},{country:"Northern Mariana Islands",iso3Code:"MNP",iso2Code:"MP",datasetCode:"mp-address-eh",searchType:"autocomplete"},{country:"Norway",iso3Code:"NOR",iso2Code:"NO",datasetCode:"no-address-ed",searchType:"validate"},{country:"Norway",iso3Code:"NOR",iso2Code:"NO",datasetCode:"no-address-eh",searchType:"autocomplete"},{country:"Oman",iso3Code:"OMN",iso2Code:"OM",datasetCode:"om-address-ed",searchType:"singleline, validate"},{country:"Oman",iso3Code:"OMN",iso2Code:"OM",datasetCode:"om-address-eh",searchType:"autocomplete"},{country:"Pakistan",iso3Code:"PAK",iso2Code:"PK",datasetCode:"pk-address-ed",searchType:"singleline, validate"},{country:"Pakistan",iso3Code:"PAK",iso2Code:"PK",datasetCode:"pk-address-eh",searchType:"autocomplete"},{country:"Palau",iso3Code:"PLW",iso2Code:"PW",datasetCode:"pw-address-eh",searchType:"autocomplete"},{country:"Palestine",iso3Code:"PSE",iso2Code:"PS",datasetCode:"ps-address-eh",searchType:"autocomplete"},{country:"Panama",iso3Code:"PAN",iso2Code:"PA",datasetCode:"pa-address-ed",searchType:"singleline, validate"},{country:"Panama",iso3Code:"PAN",iso2Code:"PA",datasetCode:"pa-address-eh",searchType:"autocomplete"},{country:"Papua New Guinea",iso3Code:"PNG",iso2Code:"PG",datasetCode:"pg-address-ed",searchType:"singleline, validate"},{country:"Papua New Guinea",iso3Code:"PNG",iso2Code:"PG",datasetCode:"pg-address-eh",searchType:"autocomplete"},{country:"Paraguay",iso3Code:"PRY",iso2Code:"PY",datasetCode:"py-address-ed",searchType:"singleline, validate"},{country:"Paraguay",iso3Code:"PRY",iso2Code:"PY",datasetCode:"py-address-eh",searchType:"autocomplete"},{country:"Peru",iso3Code:"PER",iso2Code:"PE",datasetCode:"pe-address-ed",searchType:"singleline, validate"},{country:"Peru",iso3Code:"PER",iso2Code:"PE",datasetCode:"pe-address-eh",searchType:"autocomplete"},{country:"Philippines",iso3Code:"PHL",iso2Code:"PH",datasetCode:"ph-address-ed",searchType:"singleline, validate"},{country:"Philippines",iso3Code:"PHL",iso2Code:"PH",datasetCode:"ph-address-eh",searchType:"autocomplete"},{country:"Pitcairn Islands",iso3Code:"PCN",iso2Code:"PN",datasetCode:"pn-address-eh",searchType:"autocomplete"},{country:"Poland",iso3Code:"POL",iso2Code:"PL",datasetCode:"pl-address-ed",searchType:"singleline, validate"},{country:"Poland",iso3Code:"POL",iso2Code:"PL",datasetCode:"pl-address-eh",searchType:"autocomplete"},{country:"Portugal",iso3Code:"PRT",iso2Code:"PT",datasetCode:"pt-address-ed",searchType:"singleline, validate"},{country:"Portugal",iso3Code:"PRT",iso2Code:"PT",datasetCode:"pt-address-eh",searchType:"autocomplete"},{country:"Qatar",iso3Code:"QAT",iso2Code:"QA",datasetCode:"qa-address-ed",searchType:"singleline, validate"},{country:"Qatar",iso3Code:"QAT",iso2Code:"QA",datasetCode:"qa-address-eh",searchType:"autocomplete"},{country:"Romania",iso3Code:"ROU",iso2Code:"RO",datasetCode:"ro-address-ed",searchType:"singleline, validate"},{country:"Romania",iso3Code:"ROU",iso2Code:"RO",datasetCode:"ro-address-eh",searchType:"autocomplete"},{country:"Russian Federation",iso3Code:"RUS",iso2Code:"RU",datasetCode:"ru-address-ed",searchType:"singleline, validate"},{country:"Russian Federation",iso3Code:"RUS",iso2Code:"RU",datasetCode:"ru-address-eh",searchType:"autocomplete"},{country:"Rwanda",iso3Code:"RWA",iso2Code:"RW",datasetCode:"rw-address-ed",searchType:"singleline, validate"},{country:"Rwanda",iso3Code:"RWA",iso2Code:"RW",datasetCode:"rw-address-eh",searchType:"autocomplete"},{country:"Réunion",iso3Code:"REU",iso2Code:"RE",datasetCode:"re-address-eh",searchType:"autocomplete"},{country:"Saint Barthélemy",iso3Code:"BLM",iso2Code:"BL",datasetCode:"bl-address-eh",searchType:"autocomplete"},{country:"Saint Helena",iso3Code:"SHN",iso2Code:"SH",datasetCode:"sh-address-eh",searchType:"autocomplete"},{country:"Saint Kitts and Nevis",iso3Code:"KNA",iso2Code:"KN",datasetCode:"kn-address-ed",searchType:"singleline, validate"},{country:"Saint Kitts and Nevis",iso3Code:"KNA",iso2Code:"KN",datasetCode:"kn-address-eh",searchType:"autocomplete"},{country:"Saint Lucia",iso3Code:"LCA",iso2Code:"LC",datasetCode:"lc-address-eh",searchType:"autocomplete"},{country:"Saint Pierre and Miquelon",iso3Code:"SPM",iso2Code:"PM",datasetCode:"pm-address-eh",searchType:"autocomplete"},{country:"Saint Vincent and the Grenadines",iso3Code:"VCT",iso2Code:"VC",datasetCode:"vc-address-ed",searchType:"singleline, validate"},{country:"Saint Vincent and the Grenadines",iso3Code:"VCT",iso2Code:"VC",datasetCode:"vc-address-eh",searchType:"autocomplete"},{country:"Samoa",iso3Code:"WSM",iso2Code:"WS",datasetCode:"ws-address-ed",searchType:"singleline, validate"},{country:"Samoa",iso3Code:"WSM",iso2Code:"WS",datasetCode:"ws-address-eh",searchType:"autocomplete"},{country:"San Marino",iso3Code:"SMR",iso2Code:"SM",datasetCode:"sm-address-ed",searchType:"singleline, validate"},{country:"San Marino",iso3Code:"SMR",iso2Code:"SM",datasetCode:"sm-address-eh",searchType:"autocomplete"},{country:"Sao Tome and Principe",iso3Code:"STP",iso2Code:"ST",datasetCode:"st-address-ed",searchType:"singleline, validate"},{country:"Sao Tome and Principe",iso3Code:"STP",iso2Code:"ST",datasetCode:"st-address-eh",searchType:"autocomplete"},{country:"Saudi Arabia",iso3Code:"SAU",iso2Code:"SA",datasetCode:"sa-address-ed",searchType:"singleline, validate"},{country:"Saudi Arabia",iso3Code:"SAU",iso2Code:"SA",datasetCode:"sa-address-eh",searchType:"autocomplete"},{country:"Senegal",iso3Code:"SEN",iso2Code:"SN",datasetCode:"sn-address-ed",searchType:"singleline, validate"},{country:"Senegal",iso3Code:"SEN",iso2Code:"SN",datasetCode:"sn-address-eh",searchType:"autocomplete"},{country:"Serbia",iso3Code:"SRB",iso2Code:"RS",datasetCode:"rs-address-ed",searchType:"singleline, validate"},{country:"Serbia",iso3Code:"SRB",iso2Code:"RS",datasetCode:"rs-address-eh",searchType:"autocomplete"},{country:"Seychelles",iso3Code:"SYC",iso2Code:"SC",datasetCode:"sc-address-ed",searchType:"singleline, validate"},{country:"Seychelles",iso3Code:"SYC",iso2Code:"SC",datasetCode:"sc-address-eh",searchType:"autocomplete"},{country:"Sierra Leone",iso3Code:"SLE",iso2Code:"SL",datasetCode:"sl-address-ed",searchType:"singleline, validate"},{country:"Sierra Leone",iso3Code:"SLE",iso2Code:"SL",datasetCode:"sl-address-eh",searchType:"autocomplete"},{country:"Singapore",iso3Code:"SGP",iso2Code:"SG",datasetCode:"sg-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Sint Maarten",iso3Code:"SXM",iso2Code:"SX",datasetCode:"sx-address-ed",searchType:"singleline, validate"},{country:"Sint Maarten",iso3Code:"SXM",iso2Code:"SX",datasetCode:"sx-address-eh",searchType:"autocomplete"},{country:"Slovakia",iso3Code:"SVK",iso2Code:"SK",datasetCode:"sk-address-ed",searchType:"singleline, validate"},{country:"Slovakia",iso3Code:"SVK",iso2Code:"SK",datasetCode:"sk-address-eh",searchType:"autocomplete"},{country:"Slovenia",iso3Code:"SVN",iso2Code:"SI",datasetCode:"si-address-ed",searchType:"singleline, validate"},{country:"Slovenia",iso3Code:"SVN",iso2Code:"SI",datasetCode:"si-address-eh",searchType:"autocomplete"},{country:"Solomon Islands",iso3Code:"SLB",iso2Code:"SB",datasetCode:"sb-address-ed",searchType:"singleline, validate"},{country:"Solomon Islands",iso3Code:"SLB",iso2Code:"SB",datasetCode:"sb-address-eh",searchType:"autocomplete"},{country:"Somalia",iso3Code:"SOM",iso2Code:"SO",datasetCode:"so-address-ed",searchType:"singleline, validate"},{country:"Somalia",iso3Code:"SOM",iso2Code:"SO",datasetCode:"so-address-eh",searchType:"autocomplete"},{country:"South Africa",iso3Code:"ZAF",iso2Code:"ZA",datasetCode:"za-address-ed",searchType:"singleline, validate"},{country:"South Africa",iso3Code:"ZAF",iso2Code:"ZA",datasetCode:"za-address-eh",searchType:"autocomplete"},{country:"South Georgia and the South Sandwich Islands",iso3Code:"SGS",iso2Code:"GS",datasetCode:"gs-address-eh",searchType:"autocomplete"},{country:"South Sudan",iso3Code:"SSD",iso2Code:"SS",datasetCode:"ss-address-ed",searchType:"singleline, validate"},{country:"South Sudan",iso3Code:"SSD",iso2Code:"SS",datasetCode:"ss-address-eh",searchType:"autocomplete"},{country:"Spain",iso3Code:"ESP",iso2Code:"ES",datasetCode:"es-address",searchType:"singleline, typedown"},{country:"Spain",iso3Code:"ESP",iso2Code:"ES",datasetCode:"es-address-ed",searchType:"validate"},{country:"Spain",iso3Code:"ESP",iso2Code:"ES",datasetCode:"es-address-eh",searchType:"autocomplete"},{country:"Sri Lanka",iso3Code:"LKA",iso2Code:"LK",datasetCode:"lk-address-ed",searchType:"singleline, validate"},{country:"Sudan",iso3Code:"SDN",iso2Code:"SD",datasetCode:"sd-address-ed",searchType:"singleline, validate"},{country:"Sudan",iso3Code:"SDN",iso2Code:"SD",datasetCode:"sd-address-eh",searchType:"autocomplete"},{country:"Suriname",iso3Code:"SUR",iso2Code:"SR",datasetCode:"sr-address-ed",searchType:"singleline, validate"},{country:"Suriname",iso3Code:"SUR",iso2Code:"SR",datasetCode:"sr-address-eh",searchType:"autocomplete"},{country:"Svalbard and Jan Mayen Islands",iso3Code:"SJM",iso2Code:"SJ",datasetCode:"sj-address-eh",searchType:"autocomplete"},{country:"Swaziland (Eswatini)",iso3Code:"SWZ",iso2Code:"SZ",datasetCode:"sz-address-ed",searchType:"singleline, validate"},{country:"Swaziland (Eswatini)",iso3Code:"SWZ",iso2Code:"SZ",datasetCode:"sz-address-eh",searchType:"autocomplete"},{country:"Sweden",iso3Code:"SWE",iso2Code:"SE",datasetCode:"se-address",searchType:"singleline, typedown"},{country:"Sweden",iso3Code:"SWE",iso2Code:"SE",datasetCode:"se-address-ed",searchType:"validate"},{country:"Sweden",iso3Code:"SWE",iso2Code:"SE",datasetCode:"se-address-eh",searchType:"autocomplete"},{country:"Switzerland",iso3Code:"CHE",iso2Code:"CH",datasetCode:"ch-address",searchType:"singleline, typedown"},{country:"Switzerland",iso3Code:"CHE",iso2Code:"CH",datasetCode:"ch-address-ed",searchType:"validate"},{country:"Switzerland",iso3Code:"CHE",iso2Code:"CH",datasetCode:"ch-address-eh",searchType:"autocomplete"},{country:"Syria",iso3Code:"SYR",iso2Code:"SY",datasetCode:"sy-address-ed",searchType:"singleline, validate"},{country:"Syria",iso3Code:"SYR",iso2Code:"SY",datasetCode:"sy-address-eh",searchType:"autocomplete"},{country:"Taiwan",iso3Code:"TWN",iso2Code:"TW",datasetCode:"tw-address-ed",searchType:"singleline, validate"},{country:"Taiwan",iso3Code:"TWN",iso2Code:"TW",datasetCode:"tw-address-eh",searchType:"autocomplete"},{country:"Tajikistan",iso3Code:"TJK",iso2Code:"TJ",datasetCode:"tj-address-ed",searchType:"singleline, validate"},{country:"Tajikistan",iso3Code:"TJK",iso2Code:"TJ",datasetCode:"tj-address-eh",searchType:"autocomplete"},{country:"Tanzania",iso3Code:"TZA",iso2Code:"TZ",datasetCode:"tz-address-ed",searchType:"singleline, validate"},{country:"Tanzania",iso3Code:"TZA",iso2Code:"TZ",datasetCode:"tz-address-eh",searchType:"autocomplete"},{country:"Thailand",iso3Code:"THA",iso2Code:"TH",datasetCode:"th-address-ed",searchType:"singleline, validate"},{country:"Thailand",iso3Code:"THA",iso2Code:"TH",datasetCode:"th-address-eh",searchType:"autocomplete"},{country:"Timor-Leste",iso3Code:"TLS",iso2Code:"TL",datasetCode:"tl-address-ed",searchType:"singleline, validate"},{country:"Timor-Leste",iso3Code:"TLS",iso2Code:"TL",datasetCode:"tl-address-eh",searchType:"autocomplete"},{country:"Togo",iso3Code:"TGO",iso2Code:"TG",datasetCode:"tg-address-ed",searchType:"singleline, validate"},{country:"Togo",iso3Code:"TGO",iso2Code:"TG",datasetCode:"tg-address-eh",searchType:"autocomplete"},{country:"Tokelau",iso3Code:"TKL",iso2Code:"TK",datasetCode:"tk-address-ed",searchType:"singleline, validate"},{country:"Tokelau",iso3Code:"TKL",iso2Code:"TK",datasetCode:"tk-address-eh",searchType:"autocomplete"},{country:"Tonga",iso3Code:"TON",iso2Code:"TO",datasetCode:"to-address-ed",searchType:"singleline, validate"},{country:"Tonga",iso3Code:"TON",iso2Code:"TO",datasetCode:"to-address-eh",searchType:"autocomplete"},{country:"Trinidad and Tobago",iso3Code:"TTO",iso2Code:"TT",datasetCode:"tt-address-ed",searchType:"singleline, validate"},{country:"Trinidad and Tobago",iso3Code:"TTO",iso2Code:"TT",datasetCode:"tt-address-eh",searchType:"autocomplete"},{country:"Tunisia",iso3Code:"TUN",iso2Code:"TN",datasetCode:"tn-address-ed",searchType:"singleline, validate"},{country:"Tunisia",iso3Code:"TUN",iso2Code:"TN",datasetCode:"tn-address-eh",searchType:"autocomplete"},{country:"Turkey",iso3Code:"TUR",iso2Code:"TR",datasetCode:"tr-address-ed",searchType:"singleline, validate"},{country:"Turkey",iso3Code:"TUR",iso2Code:"TR",datasetCode:"tr-address-eh",searchType:"autocomplete"},{country:"Turkish Republic of Northern Cyprus",iso3Code:"NCY",iso2Code:"CY",datasetCode:"ny-address-eh",searchType:"autocomplete"},{country:"Turkmenistan",iso3Code:"TKM",iso2Code:"TM",datasetCode:"tm-address-ed",searchType:"singleline, validate"},{country:"Turkmenistan",iso3Code:"TKM",iso2Code:"TM",datasetCode:"tm-address-eh",searchType:"autocomplete"},{country:"Turks and Caicos Islands",iso3Code:"TCA",iso2Code:"TC",datasetCode:"tc-address-eh",searchType:"autocomplete"},{country:"Tuvalu",iso3Code:"TUV",iso2Code:"TV",datasetCode:"tv-address-ed",searchType:"singleline, validate"},{country:"Tuvalu",iso3Code:"TUV",iso2Code:"TV",datasetCode:"tv-address-eh",searchType:"autocomplete"},{country:"Uganda",iso3Code:"UGA",iso2Code:"UG",datasetCode:"ug-address-ed",searchType:"singleline, validate"},{country:"Uganda",iso3Code:"UGA",iso2Code:"UG",datasetCode:"ug-address-eh",searchType:"autocomplete"},{country:"Ukraine",iso3Code:"UKR",iso2Code:"UA",datasetCode:"ua-address-ed",searchType:"singleline, validate"},{country:"Ukraine",iso3Code:"UKR",iso2Code:"UA",datasetCode:"ua-address-eh",searchType:"autocomplete"},{country:"United Arab Emirates",iso3Code:"ARE",iso2Code:"AE",datasetCode:"ae-address-ed",searchType:"singleline, validate"},{country:"United Arab Emirates",iso3Code:"ARE",iso2Code:"AE",datasetCode:"ae-address-eh",searchType:"autocomplete"},{country:"United Kingdom",iso3Code:"GBR",iso2Code:"GB",datasetCode:["gb-address"],searchType:"autocomplete"},{country:"United Kingdom",iso3Code:"GBR",iso2Code:"GB",datasetCode:["gb-additional-business","gb-additional-multipleresidence","gb-additional-notyetbuilt"],searchType:"singleline"},{country:"United Kingdom AddressBase Premium",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-address-addressbase",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom AddressBase Premium with Islands",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-addressbaseislands",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Business Names",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-business",searchType:"singleline, typedown"},{country:"United Kingdom Electricity",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-electricity",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Gas",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-gas",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Street Level",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-address-streetlevel",searchType:"singleline, typedown"},{country:"United Kingdom Extended Business",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-businessextended",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Cymraeg (Welsh Language) Postal Address",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-address-wales",searchType:"singleline, typedown, validate"},{country:"United States of America",iso3Code:"USA",iso2Code:"US",datasetCode:"us-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Uruguay",iso3Code:"URY",iso2Code:"UY",datasetCode:"uy-address-ed",searchType:"singleline, validate"},{country:"Uruguay",iso3Code:"URY",iso2Code:"UY",datasetCode:"uy-address-eh",searchType:"autocomplete"},{country:"Uzbekistan",iso3Code:"UZB",iso2Code:"UZ",datasetCode:"uz-address-ed",searchType:"singleline, validate"},{country:"Uzbekistan",iso3Code:"UZB",iso2Code:"UZ",datasetCode:"uz-address-eh",searchType:"autocomplete"},{country:"Vanuatu",iso3Code:"VUT",iso2Code:"VU",datasetCode:"vu-address-ed",searchType:"singleline, validate"},{country:"Vanuatu",iso3Code:"VUT",iso2Code:"VU",datasetCode:"vu-address-eh",searchType:"autocomplete"},{country:"Vatican City (Holy See)",iso3Code:"VAT",iso2Code:"VA",datasetCode:"va-address-ed",searchType:"singleline, validate"},{country:"Vatican City (Holy See)",iso3Code:"VAT",iso2Code:"VA",datasetCode:"va-address-eh",searchType:"autocomplete"},{country:"Venezuela",iso3Code:"VEN",iso2Code:"VE",datasetCode:"ve-address-ed",searchType:"singleline, validate"},{country:"Venezuela",iso3Code:"VEN",iso2Code:"VE",datasetCode:"ve-address-eh",searchType:"autocomplete"},{country:"Viet Nam",iso3Code:"VNM",iso2Code:"VN",datasetCode:"vn-address-ed",searchType:"singleline, validate"},{country:"Viet Nam",iso3Code:"VNM",iso2Code:"VN",datasetCode:"vn-address-eh",searchType:"autocomplete"},{country:"Virgin Islands, British",iso3Code:"VGB",iso2Code:"VG",datasetCode:"vg-address-eh",searchType:"autocomplete"},{country:"Virgin Islands, U.S.",iso3Code:"VIR",iso2Code:"VI",datasetCode:"vi-address-eh",searchType:"autocomplete"},{country:"Wallis and Futuna Islands",iso3Code:"WLF",iso2Code:"WF",datasetCode:"wf-address-eh",searchType:"autocomplete"},{country:"Western Sahara",iso3Code:"ESH",iso2Code:"EH",datasetCode:"eh-address-ed",searchType:"singleline, validate"},{country:"Western Sahara",iso3Code:"ESH",iso2Code:"EH",datasetCode:"eh-address-eh",searchType:"autocomplete"},{country:"Yemen",iso3Code:"YEM",iso2Code:"YE",datasetCode:"ye-address-ed",searchType:"singleline, validate"},{country:"Yemen",iso3Code:"YEM",iso2Code:"YE",datasetCode:"ye-address-eh",searchType:"autocomplete"},{country:"Zambia",iso3Code:"ZMB",iso2Code:"ZM",datasetCode:"zm-address-ed",searchType:"singleline, validate"},{country:"Zambia",iso3Code:"ZMB",iso2Code:"ZM",datasetCode:"zm-address-eh",searchType:"autocomplete"},{country:"Zimbabwe",iso3Code:"ZWE",iso2Code:"ZW",datasetCode:"zw-address-ed",searchType:"singleline, validate"},{country:"Zimbabwe",iso3Code:"ZWE",iso2Code:"ZW",datasetCode:"zw-address-eh",searchType:"autocomplete"}],i={en:{gbr:{locality:"Town/City",region:"County",postal_code:"Post code"},usa:{locality:"City",region:"State",postal_code:"ZIP code"}}},r=function(){this.size=0,this.maxSuggestions=25},n=function(){function s(s){var t=this;this.baseUrl="https://api.experianaperture.io/",this.searchEndpoint="address/search/v1",this.validateEndpoint="address/validate/v1",this.promptsetEndpoint="address/promptsets/v1",this.stepInEndpoint="address/suggestions/stepin/v1",this.refineEndpoint="address/suggestions/refine/v1",this.enrichmentEndpoint="enrichment/v2",this.poweredByLogo={element:null,create:function(e){var s={text:"".concat(this.svg," <em>Powered by Experian</em>"),format:""},o=e.createListItem(s);return o.classList.add("powered-by-experian"),e.list.parentNode.appendChild(o),o},destroy:function(e){this.element&&(e.list.parentNode.removeChild(this.element),this.element=void 0)},svg:'<svg class="experian-logo" version="1.1" width="18" height="18" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 120 120" style="" xml:space="preserve" role="img" aria-label="Powered by Experian">\n <title>Experian logo</title>\n <g>\n <path style="fill: #0E6EB6" d="M56.1,27h-13c-3.9,0-7-3.1-7-7V7c0-3.9,3.1-7,7-7h13c3.9,0,7,3.1,7,7v13C63.1,23.8,60,27,56.1,27"></path>\n <path style="fill: #72217B" d="M22.5,56.1H7.9c-4.3,0-7.9-3.5-7.9-7.9V33.6c0-4.3,3.5-7.9,7.9-7.9h14.6c4.3,0,7.9,3.5,7.9,7.9v14.6C30.4,52.6,26.8,56.1,22.5,56.1"></path>\n <path style="fill: #B12384" d="M21.1,86.4h-8.9c-2.7,0-4.8-2.1-4.8-4.8v-8.9c0-2.7,2.2-4.8,4.8-4.8h8.9c2.7,0,4.8,2.2,4.8,4.8v8.9C25.9,84.3,23.7,86.4,21.1,86.4"></path>\n <path style="fill: #E72887" d="M45.1,114.7H34.5c-3.1,0-5.7-2.5-5.7-5.7V98.4c0-3.1,2.5-5.7,5.7-5.7h10.6c3.1,0,5.7,2.5,5.7,5.7V109C50.7,112.1,48.2,114.7,45.1,114.7"></path>\n <path style="fill: #E72887" d="M83.8,32.3h-7.3c-2.2,0-3.9-1.8-3.9-3.9v-7.3c0-2.2,1.8-3.9,3.9-3.9h7.3c2.2,0,3.9,1.8,3.9,3.9v7.3C87.7,30.5,85.9,32.3,83.8,32.3"></path>\n <path style="fill: #004691" d="M81.7,61.8C81.5,51.1,72,42,60.7,42C49,42,39.6,51.3,39.6,62.9C39.6,74.6,49,84,60.7,84c5.6,0,10.8-2.2,14.6-5.9c0.7-0.7,1.2-1.6,1.2-2.6c0-1.9-1.6-3.5-3.5-3.5c-1.1,0-2,0.7-2.8,1.4c-2.4,2.5-5.9,3.7-9.5,3.7c-7,0-12.7-4.8-13.9-11.5h31.5c0,0,0,0,0.1,0h0.1c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.4-0.1C80.4,65,81.7,63.6,81.7,61.8z M60.7,48.9c6.3,0,11.6,4.1,13.4,9.7H47.3C49.1,53,54.3,48.9,60.7,48.9z"></path>\n </g>\n </svg>'},this.result={formattedAddressContainer:null,lastAddressField:null,generateAddressLineRequired:!1,show:function(s){if(t.searchSpinner.hide(),t.picklist.hide(),t.lastSearchTerm="",t.searchType===e.AUTOCOMPLETE||s.result.address&&"No matches"!==s.result.confidence){t.inputs.forEach((function(e){return e.value=""})),t.result.calculateIfAddressLineGenerationRequired(),t.result.formattedAddressContainer=t.options.elements.formattedAddressContainer,!t.result.formattedAddressContainer&&t.result.generateAddressLineRequired&&t.result.createFormattedAddressContainer();for(var o=0;o<Object.keys(s.result.address).length;o++){var a=Object.keys(s.result.address)[o],d=s.result.address[a];t.result.updateAddressLine(a,d,"address-line-input")}if(t.toggleSearchInputs("hide"),t.hasSearchInputBeenReset=!0,t.searchType===e.AUTOCOMPLETE)for(var i in t.options.elements)if(Object.prototype.hasOwnProperty.call(t.options.elements,i)&&"input"!==i&&t.options.elements[i]===t.inputs[0]){t.hasSearchInputBeenReset=!1;break}t.result.createSearchAgainLink()}t.events.trigger("post-formatting-search",s)},hide:function(){for(var e in t.result.formattedAddressContainer&&(t.result.formattedAddressContainer.parentNode.removeChild(t.result.formattedAddressContainer),t.result.formattedAddressContainer=void 0),t.options.searchAgain.link&&(t.options.searchAgain.link.parentNode.removeChild(t.options.searchAgain.link),t.options.searchAgain.link=void 0),t.options.elements)if(Object.prototype.hasOwnProperty.call(t.options.elements,e))for(var s=0;s<a.addressLineLabels.length;s++)if(a.addressLineLabels[s]===e&&t.options.elements[e]!==t.inputs[0]){t.options.elements[e].value="";break}},createAddressLine:{input:function(e,s,o){var t=document.createElement("div");t.classList.add(o);var a=document.createElement("label");a.innerHTML=e.replace(/([A-Z])/g," $1").replace(/([0-9])/g," $1").replace(/^./,(function(e){return e.toUpperCase()})),t.appendChild(a);var d=document.createElement("input");return d.setAttribute("type","text"),d.setAttribute("name",e),d.setAttribute("value",s),t.appendChild(d),t},label:function(e){var s=e,o=t.options.language.toLowerCase(),a=t.currentCountryCode.toLowerCase();if(i)try{var d=i[o][a][e];d&&(s=d)}catch(e){}return s}},createFormattedAddressContainer:function(){var s=document.createElement("div");s.classList.add("formatted-address");var o=t.searchType===e.SINGLELINE?t.inputs.length-1:0;t.inputs[o].parentNode.insertBefore(s,t.inputs[o].nextSibling),t.result.formattedAddressContainer=s},createHeading:function(){if(t.options.formattedAddressContainer.showHeading){var e=document.createElement(t.options.formattedAddressContainer.headingType);e.innerHTML=t.options.formattedAddressContainer.validatedHeadingText,t.result.formattedAddressContainer.appendChild(e)}},updateHeading:function(e){t.options.formattedAddressContainer.showHeading&&(t.result.formattedAddressContainer.querySelector(t.options.formattedAddressContainer.headingType).innerHTML=e)},calculateIfAddressLineGenerationRequired:function(){t.result.generateAddressLineRequired=!0;for(var e=0;e<a.addressLineLabels.length;e++){var s=a.addressLineLabels[e];if(t.options.elements[s]){t.result.generateAddressLineRequired=!1;break}}},updateAddressLine:function(e,s,o){if(t.options.elements[e]){var a=t.options.elements[e];t.result.updateLabel(e);var d=s;a.value&&d&&(d=", "+d),"INPUT"===a.nodeName||"TEXTAREA"===a.nodeName||"SELECT"===a.nodeName?a.value+=d:a.innerText+=d,t.result.lastAddressField=a}else if(t.result.generateAddressLineRequired){var i=t.result.createAddressLine.label(e),r=t.result.createAddressLine.input(i,s,o);t.result.formattedAddressContainer.appendChild(r)}},updateLabel:function(e){var s=e,o=t.options.language.toLowerCase(),a=t.currentCountryCode.toLowerCase();if(i)try{var d=i[o][a][e];if(d){s=d;for(var r=document.getElementsByTagName("label"),n=0;n<r.length;n++)r[n].htmlFor===e&&(r[n].innerHTML=d)}}catch(e){}return s},createSearchAgainLink:function(){if(t.options.searchAgain.visible){var e=document.createElement("button");e.setAttribute("type","button"),e.classList.add("search-again-button"),e.innerText=t.options.searchAgain.text,e.addEventListener("click",t.globalReset.bind(t)),t.options.searchAgain.link=e,t.result.formattedAddressContainer?t.result.formattedAddressContainer.appendChild(e):t.result.lastAddressField&&t.result.lastAddressField.parentNode.insertBefore(e,t.result.lastAddressField.nextSibling)}},renderInputList:function(e){if(e.length>0)for(var s=0;s<e.length;s++)t.result.formattedAddressContainer.appendChild(e[s])},handleValidateResponse:function(e){"Verified match"===e.result.confidence?e.result.address?t.result.show(e):e.result.suggestions&&t.format(e.result.suggestions[0].format):e.result.suggestions?t.picklist.show(e):"No matches"===e.result.confidence&&t.picklist.handleEmptyPicklist(e)}},this.searchSpinner={show:function(){var e;if(t.options.useSpinner){var s=document.createElement("div");s.classList.add("loader"),s.classList.add("loader-inline");var o=document.createElement("div");o.classList.add("spinner"),s.appendChild(o),null===(e=t.inputs[0].parentNode)||void 0===e||e.insertBefore(s,t.inputs[0].nextSibling)}},hide:function(){var e,s;if(t.options.useSpinner){var o=null===(e=t.inputs[0].parentNode)||void 0===e?void 0:e.querySelector(".loader-inline");o&&(null===(s=t.inputs[0].parentNode)||void 0===s||s.removeChild(o))}}},this.options=this.mergeDefaultOptions(s),this.events=new o,this.setup()}return s.prototype.setToken=function(e){this.options.token=e,this.setup()},s.prototype.setSearchType=function(e){this.searchType=e,this.globalReset(),this.setInputs(),this.events.trigger("post-search-type-change",e)},s.prototype.getEnrichmentData=function(e){if(e){var s={country_iso:this.currentCountryCode,keys:{global_address_key:e},attributes:{geocodes:["latitude","longitude","match_level"]}};this.events.trigger("pre-enrichment"),this.request.send(this.baseUrl+this.enrichmentEndpoint,"POST",this.handleEnrichmentResult.bind(this),JSON.stringify(s))}},s.prototype.setup=function(){var e=this;this.token?(this.hasSearchInputBeenReset=!0,this.request=new t(this),this.setCountryList(),this.setInputs(),this.createPicklist()):setTimeout((function(){return e.events.trigger("request-error-401")}))},s.prototype.handleEnrichmentResult=function(e){this.events.trigger("post-enrichment",e)},s.prototype.getParameter=function(e){e=e.replace(/[[]/,"\\[").replace(/[\]]/,"\\]");var s=new RegExp("[\\?&]"+e+"=([^&#]*)").exec(location.search);return null===s?"":decodeURIComponent(s[1].replace(/\+/g," "))},Object.defineProperty(s.prototype,"token",{get:function(){return this.options.token||(this.options.token=this.getParameter("token")),this.options.token},enumerable:!1,configurable:!0}),s.prototype.mergeDefaultOptions=function(e){var s=e||{};return s.enabled=!0,this.searchType=s.searchType||a.searchType,s.searchType=s.searchType||a.searchType,s.language=s.language||a.language,s.useSpinner=s.useSpinner||a.useSpinner,s.applyFocus=void 0!==s.applyFocus?s.applyFocus:a.input.applyFocus,s.placeholderText=s.placeholderText||a.input.placeholderText,s.searchAgain=s.searchAgain||{},s.searchAgain.visible=void 0!==s.searchAgain.visible?s.searchAgain.visible:a.searchAgain.visible,s.searchAgain.text=s.searchAgain.text||a.searchAgain.text,s.formattedAddressContainer=s.formattedAddressContainer||a.formattedAddressContainer,s.formattedAddressContainer.showHeading=void 0!==s.formattedAddressContainer.showHeading?s.formattedAddressContainer.showHeading:a.formattedAddressContainer.showHeading,s.formattedAddressContainer.headingType=s.formattedAddressContainer.headingType||a.formattedAddressContainer.headingType,s.formattedAddressContainer.validatedHeadingText=s.formattedAddressContainer.validatedHeadingText||a.formattedAddressContainer.validatedHeadingText,s.formattedAddressContainer.manualHeadingText=s.formattedAddressContainer.manualHeadingText||a.formattedAddressContainer.manualHeadingText,s.useAddressEnteredText=s.useAddressEnteredText||a.useAddressEnteredText,s.elements=s.elements||{},s},s.prototype.getPromptset=function(){var s=this;if(this.currentCountryCode&&(this.currentDataSet=this.lookupDatasetCode(),this.currentDataSet)){if(this.searchType===e.AUTOCOMPLETE)return void setTimeout((function(){return s.handlePromptsetResult({result:{lines:[{example:s.options.placeholderText,prompt:"Address",suggested_input_length:160}]}})}));if(this.searchType===e.VALIDATE){var o=[{prompt:"Address line 1",suggested_input_length:160},{prompt:"Address line 2",suggested_input_length:160},{prompt:"Address line 3",suggested_input_length:160},{prompt:this.result.createAddressLine.label("locality"),suggested_input_length:160},{prompt:this.result.createAddressLine.label("region"),suggested_input_length:160},{prompt:this.result.createAddressLine.label("postal_code"),suggested_input_length:160}];return void setTimeout((function(){return s.handlePromptsetResult({result:{lines:o}})}))}var t={country_iso:this.currentCountryCode,datasets:Array.isArray(this.currentDataSet)?this.currentDataSet:[this.currentDataSet],search_type:this.searchType,prompt_set:"optimal"};this.events.trigger("pre-promptset-check"),this.request.send(this.baseUrl+this.promptsetEndpoint,"POST",this.handlePromptsetResult.bind(this),JSON.stringify(t))}},s.prototype.lookupDatasetCode=function(){var e=this,s=d.find((function(s){return s.iso3Code===e.currentCountryCode&&s.searchType.includes(e.searchType)}));if(s)return s.datasetCode},s.prototype.handlePromptsetResult=function(e){this.picklist.hide(),this.events.trigger("post-promptset-check",e)},s.prototype.setInputs=function(s){void 0===s&&(s=this.options.elements.inputs),s?this.registerInputs(s):this.getPromptset(),this.searchType!==e.SINGLELINE&&this.searchType!==e.VALIDATE||this.options.elements.lookupButton&&(this.lookupFn=this.search.bind(this),this.options.elements.lookupButton.addEventListener("click",this.lookupFn))},s.prototype.registerInputs=function(s){var o=this;this.inputs=Array.from(s),this.inputs.forEach((function(s){s.setAttribute("autocomplete","new-password"),o.searchType===e.AUTOCOMPLETE&&(o.keyUpFn=o.search.bind(o),s.addEventListener("keyup",o.keyUpFn),o.checkTabFn=o.checkTab.bind(o),s.addEventListener("keydown",o.checkTabFn),s.setAttribute("placeholder",o.options.placeholderText)),s.addEventListener("keyup",o.handleKeyboardEvent.bind(o))})),this.countryCodeMapping=this.options.countryCodeMapping||{},this.options.applyFocus&&this.inputs[0].focus()},s.prototype.setCountryList=function(){if(this.options.elements.countryList)this.currentCountryCode=this.options.elements.countryList.value,this.options.elements.countryList.addEventListener("change",this.handleCountryListChange.bind(this));else{if(!this.options.countryCode)throw new Error("Please provide a country code or a country list element");this.currentCountryCode=this.options.countryCode}},s.prototype.handleCountryListChange=function(){this.currentCountryCode=this.options.elements.countryList.value,this.getPromptset()},s.prototype.generateSearchDataForApiCall=function(){this.currentDataSet||(this.currentDataSet=this.lookupDatasetCode());var s={country_iso:this.currentCountryCode,components:{unspecified:[this.currentSearchTerm]},datasets:Array.isArray(this.currentDataSet)?this.currentDataSet:[this.currentDataSet],max_suggestions:this.options.maxSuggestions||this.picklist.maxSuggestions};return this.searchType!==e.SINGLELINE&&this.searchType!==e.VALIDATE||(s.options=[{name:"flatten",Value:"true"},{name:"intensity",Value:"close"},{name:"prompt_set",Value:"default"}],this.searchType===e.SINGLELINE&&s.options.push({name:"search_type",Value:"singleline"}),this.searchType===e.VALIDATE&&(s.layouts=["default"],s.layout_format="default")),this.options.location&&(s.location=this.options.location),JSON.stringify(s)},s.prototype.handleKeyboardEvent=function(e){e.preventDefault();var s=this.getKey(e);if(this.picklist.size){if("ArrowUp"===s||"ArrowDown"===s||"Enter"===s)return void this.picklist.keyup(e)}else if("Enter"===s)return void this.search(e)},s.prototype.search=function(s){s.preventDefault(),this.currentSearchTerm=this.inputs.map((function(e){return e.value})).join(",");var o=(this.countryCodeMapping[this.currentCountryCode]||this.currentCountryCode).split(";");if(this.currentCountryCode=o[0],o[1]&&(this.currentDataSet=o[1]),""===this.currentSearchTerm&&(this.hasSearchInputBeenReset=!0),this.canSearch()){this.request.currentRequest&&this.request.currentRequest.abort(),this.events.trigger("pre-search",this.currentSearchTerm);var t=this.generateSearchDataForApiCall();this.lastSearchTerm=this.currentSearchTerm,this.searchSpinner.hide(),this.searchSpinner.show();var a=this.baseUrl+(this.searchType===e.VALIDATE?this.validateEndpoint:this.searchEndpoint),d=this.searchType===e.VALIDATE?[{key:"Add-Metadata",value:!0}]:[],i=this.searchType===e.VALIDATE?this.result.handleValidateResponse:this.picklist.show;this.request.send(a,"POST",i,t,d)}else this.lastSearchTerm!==this.currentSearchTerm&&this.picklist.hide()},s.prototype.getKey=function(e){var s=e.key;switch(s){case"Down":case"ArrowDown":return"ArrowDown";case"Up":case"ArrowUp":return"ArrowUp";case"Spacebar":case" ":return" ";case"Escape":case"Esc":return"Escape";default:return s}},s.prototype.canSearch=function(){return this.options.enabled&&""!==this.currentSearchTerm&&this.currentSearchTerm.length>3&&this.lastSearchTerm!==this.currentSearchTerm&&this.currentCountryCode&&!0===this.hasSearchInputBeenReset},s.prototype.createPicklist=function(){var s=this;this.picklist=new r,this.picklist.maxSuggestions=25,this.picklist.tabCount=-1,this.picklist.show=function(o){var t,a;s.picklist.items=null==o?void 0:o.result.suggestions,s.picklist.currentItem=null,s.picklist.size=null===(t=s.picklist.items)||void 0===t?void 0:t.length,s.picklist.resetTabCount(),s.searchSpinner.hide(),s.picklist.list=s.picklist.list||s.picklist.createList(),s.picklist.list.innerHTML="",s.picklist.useAddressEntered.destroy(),s.events.trigger("pre-picklist-create",s.picklist.items),(null===(a=s.picklist.items)||void 0===a?void 0:a.length)>0?(s.picklist.refine.isNeeded(o)&&s.picklist.refine.createInput(o.result.suggestions_prompt,o.result.suggestions_key),s.searchType===e.VALIDATE&&s.picklist.displaySuggestionsHeader(),s.picklist.items.forEach((function(e){var o=s.picklist.createListItem(e);s.picklist.list.appendChild(o),s.picklist.listen(o)})),s.searchType===e.VALIDATE&&s.picklist.displayUseAddressEnteredFooter(),s.picklist.scrollIntoViewIfNeeded()):s.picklist.handleEmptyPicklist(o),s.poweredByLogo.element=s.poweredByLogo.element||s.poweredByLogo.create(s.picklist),s.events.trigger("post-picklist-create",s.picklist.items)},this.picklist.hide=function(){if(s.picklist.currentItem=null,s.picklist.useAddressEntered.destroy(),s.poweredByLogo.destroy(s.picklist),s.inputs){var o=s.searchType===e.SINGLELINE?s.inputs.length-1:0;s.inputs[o].classList.remove("showing-suggestions")}s.picklist.list&&(s.picklist.container.remove(),s.picklist.list=void 0)},this.picklist.handleEmptyPicklist=function(e){var o;s.picklist.useAddressEntered.element=s.picklist.useAddressEntered.element||s.picklist.useAddressEntered.create(null===(o=e.result)||void 0===o?void 0:o.confidence),s.picklist.scrollIntoViewIfNeeded(),"function"==typeof s.picklist.handleEmptyPicklistCallback&&s.picklist.handleEmptyPicklistCallback()},this.picklist.displaySuggestionsHeader=function(){var e=document.querySelector(".picklist-suggestions-header")||document.createElement("div");e.classList.add("picklist-suggestions-header"),e.innerText="Suggestions:",s.picklist.list.parentNode.insertBefore(e,s.picklist.list)},this.picklist.displayUseAddressEnteredFooter=function(){var e=document.querySelector(".picklist-use-entered-container")||document.createElement("div");e.classList.add("picklist-use-entered-container"),s.picklist.list.parentNode.insertBefore(e,s.picklist.list.nextElementSibling);var o=document.querySelector(".picklist-use-entered-header")||document.createElement("div");o.classList.add("picklist-use-entered-header"),o.innerText="Or use address entered:",e.appendChild(o);var t=document.querySelector(".picklist-use-entered-option")||document.createElement("div");t.classList.add("picklist-use-entered-option"),t.innerText=s.currentSearchTerm.replace(/,+/g,", "),t.addEventListener("click",s.picklist.useAddressEntered.click),e.appendChild(t)},this.picklist.scrollIntoViewIfNeeded=function(){var e=s.picklist.container.getBoundingClientRect().top<0,o=s.picklist.container.getBoundingClientRect().bottom>window.innerHeight;(e||o)&&s.picklist.container.scrollIntoView()},this.picklist.useAddressEntered={element:null,create:function(e){var o={text:"".concat(e," ").concat(s.options.useAddressEnteredText)},t=s.picklist.createListItem(o);return t.classList.add("use-address-entered"),t.setAttribute("title","Enter address manually"),s.picklist.list=s.picklist.list||s.picklist.createList(),s.picklist.list.parentNode.insertBefore(t,s.picklist.container.firstChild),t.addEventListener("click",s.picklist.useAddressEntered.click),t},destroy:function(){s.picklist.useAddressEntered.element&&(s.picklist.list.parentNode.removeChild(s.picklist.useAddressEntered.element),s.picklist.useAddressEntered.element=void 0)},click:function(){var e={result:{confidence:"No matches",address:{address_line_1:"",address_line_2:"",address_line_3:"",locality:"",region:"",postal_code:"",country:""}}};if(s.currentSearchTerm){var o=s.currentSearchTerm.split(",");o[0]&&(e.result.address.address_line_1=o[0]),o[1]&&(e.result.address.address_line_2=o[1]),o[2]&&(e.result.address.address_line_3=o[2]);for(var t=3;t<o.length;t++)e.result.address.address_line_3+=o[t]}s.result.show(e),s.result.updateHeading(s.options.formattedAddressContainer.manualHeadingText)},formatManualAddressLine:function(e,s){var o={};return o[a.addressLineLabels[s]]=e[s]||"",o}},this.picklist.createList=function(){var o=s.searchType===e.SINGLELINE?s.inputs.length-1:0,t=document.createElement("div");t.classList.add("address-picklist-container"),s.picklist.container=t,s.inputs[o].parentNode.insertBefore(s.picklist.container,s.inputs[o].nextElementSibling);var a=document.createElement("div");return a.classList.add("address-picklist"),s.picklist.container.appendChild(a),s.inputs[o].classList.add("showing-suggestions"),a.addEventListener("keydown",s.picklist.checkEnter),a},this.picklist.createListItem=function(e){var o=document.createElement("div");return o.innerHTML=s.picklist.addMatchingEmphasis(e),e.format?o.setAttribute("format",e.format):e.global_address_key&&o.setAttribute("refine",e.global_address_key),o},this.picklist.refine={element:null,isNeeded:function(o){return s.searchType!==e.AUTOCOMPLETE&&("Premises partial"===o.result.confidence||"Street partial"===o.result.confidence||"Multiple matches"===o.result.confidence)},createInput:function(e,o){var t=document.querySelector(".picklist-refinement-box")||document.createElement("div");t.classList.add("picklist-refinement-box");var a=document.querySelector(".picklist-refinement-box input")||document.createElement("input");a.setAttribute("type","text"),a.setAttribute("placeholder",e),a.setAttribute("key",o),a.setAttribute("autocomplete","new-password"),a.addEventListener("keydown",s.picklist.refine.enter.bind(s)),s.picklist.refine.element=a;var d=document.querySelector(".picklist-refinement-box button")||document.createElement("button");d.innerText="Refine",d.addEventListener("click",s.picklist.refine.enter),t.appendChild(a),t.appendChild(d),s.picklist.list.parentNode.insertBefore(t,s.picklist.list),a.focus()},enter:function(e){if(e instanceof KeyboardEvent&&"Enter"===e.key||e instanceof MouseEvent){if(e.preventDefault(),s.picklist.currentItem)return void s.picklist.checkEnter(e);if(e.stopPropagation(),s.picklist.refine.element.value){var o=JSON.stringify({refinement:s.picklist.refine.element.value}),t=s.picklist.refine.element.getAttribute("key");s.request.send("".concat(s.baseUrl).concat(s.refineEndpoint,"/").concat(t),"POST",s.result.handleValidateResponse,o)}}else s.picklist.size&&e instanceof KeyboardEvent&&("ArrowUp"===e.key||"ArrowDown"===e.key||"Enter"===e.key)&&s.picklist.keyup(e)}},this.picklist.resetTabCount=function(){s.picklist.tabCount=-1},this.picklist.keyup=function(e){if(s.picklist.list){s.picklist.checkEnter(e);var o,t,a=s.picklist.list.querySelectorAll("div");if(0!==a.length){"ArrowUp"===e.key?s.picklist.tabCount--:"ArrowDown"===e.key&&s.picklist.tabCount++,s.picklist.tabCount<0&&(s.picklist.tabCount=a.length-1,t=!0),s.picklist.tabCount>a.length-1&&(s.picklist.tabCount=0,o=!0);var d=a[s.picklist.tabCount],i=s.picklist.list.querySelector(".selected");i&&i.classList.remove("selected"),d.classList.add("selected"),s.picklist.currentItem=d;var r=s.picklist.list.offsetTop,n=s.picklist.list.offsetTop+s.picklist.list.offsetHeight,c=s.picklist.list.scrollTop,l=d.offsetTop,C=d.offsetTop+d.offsetHeight,u=d.offsetHeight;o?s.picklist.list.scrollTop=0:t?s.picklist.list.scrollTop=999:C+u>n?s.picklist.list.scrollTop=c+u:l-u-r<c&&(s.picklist.list.scrollTop=c-u)}}},this.picklist.addMatchingEmphasis=function(e){for(var s=e.matched||[],o=e.text,t=0;t<s.length;t++){var a="<b>"+o.substring(s[t][0],s[t][1])+"</b>";o=o.substring(0,s[t][0])+a+o.substring(s[t][1])}return o},this.picklist.listen=function(e){e.addEventListener("click",s.picklist.pick.bind(null,e))},this.picklist.checkEnter=function(e){if("Enter"===e.key||"Tab"===e.key){var o=void 0;1===s.picklist.size?o=s.picklist.list.querySelectorAll("div")[0]:s.picklist.currentItem&&(o=s.picklist.currentItem),o&&s.picklist.pick(o)}},this.picklist.pick=function(e){s.events.trigger("post-picklist-selection",e),e.getAttribute("format")?s.format(e.getAttribute("format")):s.refine(e.getAttribute("refine"))}},s.prototype.format=function(e){this.events.trigger("pre-formatting-search",e),this.searchSpinner.hide(),this.request.send(e,"GET",this.result.show,void 0,[{key:"Add-Metadata",value:!0}])},s.prototype.refine=function(e){this.events.trigger("pre-refinement",e),this.searchSpinner.hide(),this.request.send("".concat(this.baseUrl).concat(this.stepInEndpoint,"/").concat(e),"GET",this.picklist.show)},s.prototype.checkTab=function(e){var s=this.getKey(e);"Tab"!==s?"Enter"===s&&e.preventDefault():this.picklist.keyup(e)},s.prototype.toggleSearchInputs=function(e){var s,o,t,a="show"===e?"remove":"add";null===(s=this.options.elements.inputs)||void 0===s||s.forEach((function(e){return e.parentNode.querySelectorAll(".toggle").forEach((function(e){return e.classList[a]("hidden")}))})),null===(o=this.options.elements.countryList)||void 0===o||o.parentNode.querySelectorAll(".toggle").forEach((function(e){return e.classList[a]("hidden")})),null===(t=this.options.elements.lookupButton)||void 0===t||t.parentNode.querySelectorAll(".toggle").forEach((function(e){return e.classList[a]("hidden")}))},s.prototype.globalReset=function(e){e&&e.preventDefault(),this.options.enabled=!0,this.result.hide(),this.hasSearchInputBeenReset=!0,this.inputs.forEach((function(e){return e.value=""})),this.picklist.hide(),this.toggleSearchInputs("show"),this.inputs[0].focus(),this.events.trigger("post-reset")},s}();window.AddressValidation=n}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVMsYUFBY0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDbkcsQ0FBQ2tCLFFBQVMsYUFBY0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDbkcsQ0FBQ2tCLFFBQVMsT0FBUUMsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDN0YsQ0FBQ2tCLFFBQVMsT0FBUUMsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDN0YsQ0FBQ2tCLFFBQVMsU0FBVUMsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDL0YsQ0FBQ2tCLFFBQVMsU0FBVUMsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDL0YsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDaEcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDaEcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDaEcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDaEcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDaEcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDaEcsQ0FBQ2tCLFFBQVMsUUFBU0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDOUYsQ0FBQ2tCLFFBQVMsUUFBU0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlC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LFNBQUF1RCxHQUFXLE9BQUFBLEVBQVFRLFVBQVVtTixHQUFVLGFBQ3ZGLFFBQWxDLEVBQUExUyxLQUFLc0IsUUFBUWtGLFNBQVNxRyxvQkFBWSxTQUFFbkgsV0FBV2tNLGlCQUFpQixXQUFXcFEsU0FBUSxTQUFBdUQsR0FBVyxPQUFBQSxFQUFRUSxVQUFVbU4sR0FBVSxjQUdwSCxZQUFBcEosWUFBUixTQUFvQnhKLEdBQ2RBLEdBQ0ZBLEVBQU1rTyxpQkFHUmhPLEtBQUtzQixRQUFRb0ssU0FBVSxFQUV2QjFMLEtBQUsrRixPQUFPNUQsT0FFWm5DLEtBQUsrRyx5QkFBMEIsRUFHL0IvRyxLQUFLc0csT0FBTzlFLFNBQVEsU0FBQWtCLEdBQVMsT0FBQUEsRUFBTWYsTUFBUSxNQUUzQzNCLEtBQUtpRixTQUFTOUMsT0FFZG5DLEtBQUs4RyxtQkFBbUIsUUFFeEI5RyxLQUFLc0csT0FBTyxHQUFHK0csUUFHZnJOLEtBQUtvQyxPQUFPbEMsUUFBUSxlQUV4QixFQWh0Q0EsR0NDQW1RLE9BQU9zQyxrQkFBb0IsRSIsInNvdXJjZXMiOlsid2VicGFjazovL0V4cGVyaWFuLUFkZHJlc3MtVmFsaWRhdGlvbi8uL3NyYy90cy9ldmVudC1mYWN0b3J5LnRzIiwid2VicGFjazovL0V4cGVyaWFuLUFkZHJlc3MtVmFsaWRhdGlvbi8uL3NyYy90cy9zZWFyY2gtb3B0aW9ucy50cyIsIndlYnBhY2s6Ly9FeHBlcmlhbi1BZGRyZXNzLVZhbGlkYXRpb24vLi9zcmMvdHMvcmVxdWVzdC50cyIsIndlYnBhY2s6Ly9FeHBlcmlhbi1BZGRyZXNzLVZhbGlkYXRpb24vLi9zcmMvdHMvZGF0YXNldHMtY29kZXMudHMiLCJ3ZWJwYWNrOi8vRXhwZXJpYW4tQWRkcmVzcy1WYWxpZGF0aW9uLy4vc3JjL3RzL3RyYW5zbGF0aW9ucy50cyIsIndlYnBhY2s6Ly9FeHBlcmlhbi1BZGRyZXNzLVZhbGlkYXRpb24vLi9zcmMvdHMvY2xhc3MtdHlwZXMudHMiLCJ3ZWJwYWNrOi8vRXhwZXJpYW4tQWRkcmVzcy1WYWxpZGF0aW9uLy4vc3JjL3RzL2FkZHJlc3Mtc2VhcmNoLnRzIiwid2VicGFjazovL0V4cGVyaWFuLUFkZHJlc3MtVmFsaWRhdGlvbi8uL3NyYy90cy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogTWV0aG9kIGV2ZW50IGxpc3RlbmVyIChwdWIvc3ViIHR5cGUgdGhpbmcpXHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFdmVudEZhY3Rvcnkge1xyXG4gIC8vIENyZWF0ZSBhbiBvYmplY3QgdG8gaG9sZCB0aGUgY29sbGVjdGlvbiBvZiBldmVudHNcclxuICBjb2xsZWN0aW9uID0ge307XHJcblxyXG4gIC8vIFN1YnNjcmliZSBhIG5ldyBldmVudFxyXG4gIG9uKGV2ZW50LCBhY3Rpb24pIHtcclxuICAgIC8vIENyZWF0ZSB0aGUgcHJvcGVydHkgYXJyYXkgb24gdGhlIGNvbGxlY3Rpb24gb2JqZWN0XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25bZXZlbnRdID0gdGhpcy5jb2xsZWN0aW9uW2V2ZW50XSB8fCBbXTtcclxuICAgIC8vIFB1c2ggYSBuZXcgYWN0aW9uIGZvciB0aGlzIGV2ZW50IG9udG8gdGhlIGFycmF5XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25bZXZlbnRdLnB1c2goYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIC8vIFB1Ymxpc2ggKHRyaWdnZXIpIGFuIGV2ZW50XHJcbiAgdHJpZ2dlcihldmVudCwgZGF0YSkge1xyXG4gICAgLy8gSWYgdGhpcyBldmVudCBpcyBpbiBvdXIgY29sbGVjdGlvbiAoaS5lLiBhbnlvbmUncyBzdWJzY3JpYmVkKVxyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbltldmVudF0pIHtcclxuICAgICAgLy8gTG9vcCBvdmVyIGFsbCB0aGUgYWN0aW9ucyBmb3IgdGhpcyBldmVudFxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29sbGVjdGlvbltldmVudF0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAvLyBDcmVhdGUgYXJyYXkgd2l0aCBkZWZhdWx0IGRhdGEgYXMgMXN0IGl0ZW1cclxuICAgICAgICBjb25zdCBhcmdzID0gW2RhdGFdO1xyXG5cclxuICAgICAgICAvLyBMb29wIG92ZXIgYWRkaXRpb25hbCBhcmdzIGFuZCBhZGQgdG8gYXJyYXlcclxuICAgICAgICBmb3IgKGxldCBhID0gMjsgYSA8IGFyZ3VtZW50cy5sZW5ndGg7IGErKykge1xyXG4gICAgICAgICAgYXJncy5wdXNoKGFyZ3VtZW50c1thXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDYWxsIGVhY2ggYWN0aW9uIGZvciB0aGlzIGV2ZW50IHR5cGUsIHBhc3NpbmcgdGhlIGFyZ3NcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgdGhpcy5jb2xsZWN0aW9uW2V2ZW50XVtpXS5hcHBseSh0aGlzLmNvbGxlY3Rpb24sIGFyZ3MpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vIFdoYXQgdG8gZG8/IFVuY29tbWVudCB0aGUgYmVsb3cgdG8gc2hvdyBlcnJvcnMgaW4geW91ciBldmVudCBhY3Rpb25zXHJcbiAgICAgICAgICAvL2NvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsImV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc1NlYXJjaE9wdGlvbnMge1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgdG9rZW46IHN0cmluZztcclxuICBzZWFyY2hUeXBlOiBBZGRyZXNzVmFsaWRhdGlvbk1vZGU7XHJcbiAgbWF4U3VnZ2VzdGlvbnM6IG51bWJlcjtcclxuICBsYW5ndWFnZTogc3RyaW5nO1xyXG4gIGxvY2F0aW9uOiBzdHJpbmc7XHJcbiAgdXNlU3Bpbm5lcjogYm9vbGVhbjtcclxuICBjb3VudHJ5Q29kZT86IHN0cmluZztcclxuICBjb3VudHJ5Q29kZU1hcHBpbmc/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcclxuICBhcHBseUZvY3VzOiBib29sZWFuO1xyXG4gIHBsYWNlaG9sZGVyVGV4dDogc3RyaW5nO1xyXG4gIHVzZUFkZHJlc3NFbnRlcmVkVGV4dDogc3RyaW5nO1xyXG4gIHNlYXJjaEFnYWluOiB7dmlzaWJsZT86IGJvb2xlYW4sIHRleHQ/OiBzdHJpbmcsIGxpbms/OiBIVE1MQnV0dG9uRWxlbWVudH07XHJcbiAgZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcjoge3Nob3dIZWFkaW5nOiBib29sZWFuLCBoZWFkaW5nVHlwZTogc3RyaW5nLCB2YWxpZGF0ZWRIZWFkaW5nVGV4dDogc3RyaW5nLCBtYW51YWxIZWFkaW5nVGV4dDogc3RyaW5nfTtcclxuICBlbGVtZW50czoge2lucHV0PzogSFRNTElucHV0RWxlbWVudCwgaW5wdXRzPzogSFRNTElucHV0RWxlbWVudFtdLCBjb3VudHJ5TGlzdD86IEhUTUxTZWxlY3RFbGVtZW50LCBhZGRyZXNzX2xpbmVfMT86IEhUTUxJbnB1dEVsZW1lbnQsIGFkZHJlc3NfbGluZV8yPzogSFRNTElucHV0RWxlbWVudCwgYWRkcmVzc19saW5lXzM/OiBIVE1MSW5wdXRFbGVtZW50LCBsb2NhbGl0eT86IEhUTUxJbnB1dEVsZW1lbnQsIHJlZ2lvbj86IEhUTUxJbnB1dEVsZW1lbnQsIHBvc3RhbF9jb2RlPzogSFRNTElucHV0RWxlbWVudCwgY291bnRyeT86IEhUTUxJbnB1dEVsZW1lbnQsIGZvcm1hdHRlZEFkZHJlc3NDb250YWluZXI/OiBIVE1MRWxlbWVudCwgbG9va3VwQnV0dG9uPzogSFRNTEJ1dHRvbkVsZW1lbnR9O1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUge1xyXG4gIEFVVE9DT01QTEVURSA9ICdhdXRvY29tcGxldGUnLFxyXG4gIFNJTkdMRUxJTkUgPSAnc2luZ2xlbGluZScsXHJcbiAgVkFMSURBVEUgPSAndmFsaWRhdGUnXHJcbn1cclxuXHJcbi8vIERlZmF1bHQgc2V0dGluZ3NcclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRzID0ge1xyXG4gIHNlYXJjaFR5cGU6IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5BVVRPQ09NUExFVEUsXHJcbiAgaW5wdXQ6IHtwbGFjZWhvbGRlclRleHQ6ICdTdGFydCB0eXBpbmcgYW4gYWRkcmVzcy4uLicsIGFwcGx5Rm9jdXM6IGZhbHNlfSxcclxuICBmb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyOiB7c2hvd0hlYWRpbmc6IGZhbHNlLCBoZWFkaW5nVHlwZTogJ2gzJywgdmFsaWRhdGVkSGVhZGluZ1RleHQ6ICdWYWxpZGF0ZWQgYWRkcmVzcycsIG1hbnVhbEhlYWRpbmdUZXh0OiAnTWFudWFsIGFkZHJlc3MgZW50ZXJlZCd9LFxyXG4gIHNlYXJjaEFnYWluOiB7dmlzaWJsZTogdHJ1ZSwgdGV4dDogJ1NlYXJjaCBhZ2Fpbid9LFxyXG4gIHVzZUFkZHJlc3NFbnRlcmVkVGV4dDogJzxlbT4gLSBVc2UgYWRkcmVzcyBlbnRlcmVkIG9yIHRyeSBhZ2Fpbi4uLjwvZW0+JyxcclxuICB1c2VTcGlubmVyOiBmYWxzZSxcclxuICBsYW5ndWFnZTogJ2VuJyxcclxuICBhZGRyZXNzTGluZUxhYmVsczogW1xyXG4gICAgJ2FkZHJlc3NfbGluZV8xJyxcclxuICAgICdhZGRyZXNzX2xpbmVfMicsXHJcbiAgICAnYWRkcmVzc19saW5lXzMnLFxyXG4gICAgJ2xvY2FsaXR5JyxcclxuICAgICdyZWdpb24nLFxyXG4gICAgJ3Bvc3RhbF9jb2RlJyxcclxuICAgICdjb3VudHJ5J1xyXG4gIF1cclxufTsiLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBSZXF1ZXN0IHtcclxuICBpbnN0YW5jZTtcclxuICBjb25zdHJ1Y3RvcihpbnN0YW5jZSkge1xyXG4gICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGN1cnJlbnRSZXF1ZXN0O1xyXG5cclxuXHJcbiAgcHVibGljIHNlbmQodXJsOiBzdHJpbmcsIG1ldGhvZDogJ0dFVCcgfCAnUE9TVCcsIGNhbGxiYWNrOiAoZGF0YTogb2JqZWN0KSA9PiB2b2lkLCBkYXRhPzogc3RyaW5nLCBoZWFkZXJzOiB7a2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBib29sZWFufVtdID0gW10pOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgIHRoaXMuY3VycmVudFJlcXVlc3Qub3BlbihtZXRob2QsIHVybCwgdHJ1ZSk7XHJcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0LnRpbWVvdXQgPSA1MDAwOyAvLyA1IHNlY29uZHNcclxuICAgIHRoaXMuY3VycmVudFJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcignYXV0aC10b2tlbicsIHRoaXMuaW5zdGFuY2Uub3B0aW9ucy50b2tlbik7XHJcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoJ0FjY2VwdCcsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcblxyXG4gICAgLy8gQWRkIGFkZGl0aW9uYWwgaGVhZGVycyBpZiBzdXBwbGllZFxyXG4gICAgaGVhZGVycy5mb3JFYWNoKGhlYWRlciA9PiB0aGlzLmN1cnJlbnRSZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoaGVhZGVyLmtleSwgaGVhZGVyLnZhbHVlKSk7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50UmVxdWVzdC5vbmxvYWQgPSAoeGhyKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRSZXF1ZXN0LnN0YXR1cyA+PSAyMDAgJiYgdGhpcy5jdXJyZW50UmVxdWVzdC5zdGF0dXMgPCA0MDApIHtcclxuICAgICAgICAvLyBTdWNjZXNzIVxyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHRoaXMuY3VycmVudFJlcXVlc3QucmVzcG9uc2VUZXh0KTtcclxuICAgICAgICBjYWxsYmFjayhkYXRhKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBXZSByZWFjaGVkIG91ciB0YXJnZXQgc2VydmVyLCBidXQgaXQgcmV0dXJuZWQgYW4gZXJyb3JcclxuICAgICAgICB0aGlzLmluc3RhbmNlLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xyXG5cclxuICAgICAgICAvLyBGaXJlIGFuIGV2ZW50IHRvIG5vdGlmeSB1c2VycyBvZiBhIGdlbmVyYWwgZXJyb3JcclxuICAgICAgICB0aGlzLmluc3RhbmNlLmV2ZW50cy50cmlnZ2VyKCdyZXF1ZXN0LWVycm9yJywgeGhyKTtcclxuICAgICAgICAvLyBGaXJlIGFuIGV2ZW50IGZvciB0aGUgc3BlY2lmaWMgc3RhdHVzIGNvZGVcclxuICAgICAgICB0aGlzLmluc3RhbmNlLmV2ZW50cy50cmlnZ2VyKGByZXF1ZXN0LWVycm9yLSR7dGhpcy5jdXJyZW50UmVxdWVzdC5zdGF0dXN9YCwgeGhyKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0Lm9uZXJyb3IgPSAoeGhyKSA9PiB7XHJcbiAgICAgIC8vIFRoZXJlIHdhcyBhIGNvbm5lY3Rpb24gZXJyb3Igb2Ygc29tZSBzb3J0XHJcbiAgICAgIC8vIEhpZGUgdGhlIGlubGluZSBzZWFyY2ggc3Bpbm5lclxyXG4gICAgICB0aGlzLmluc3RhbmNlLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xyXG5cclxuICAgICAgLy8gRmlyZSBhbiBldmVudCB0byBub3RpZnkgdXNlcnMgb2YgYW4gZXJyb3JcclxuICAgICAgdGhpcy5pbnN0YW5jZS5ldmVudHMudHJpZ2dlcigncmVxdWVzdC1lcnJvcicsIHhocik7XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuY3VycmVudFJlcXVlc3Qub250aW1lb3V0ID0gKHhocikgPT4ge1xyXG4gICAgICAvLyBUaGVyZSB3YXMgYSBjb25uZWN0aW9uIHRpbWVvdXRcclxuICAgICAgLy8gSGlkZSB0aGUgaW5saW5lIHNlYXJjaCBzcGlubmVyXHJcbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2VhcmNoU3Bpbm5lci5oaWRlKCk7XHJcblxyXG4gICAgICAvLyBGaXJlIGFuIGV2ZW50IHRvIG5vdGlmeSB1c2VycyBvZiB0aGUgdGltZW91dFxyXG4gICAgICB0aGlzLmluc3RhbmNlLmV2ZW50cy50cmlnZ2VyKCdyZXF1ZXN0LXRpbWVvdXQnLCB4aHIpO1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0LnNlbmQoZGF0YSk7XHJcbiAgfVxyXG59IiwiZXhwb3J0IGNvbnN0IGRhdGFzZXRDb2RlcyA9IFtcclxuICB7Y291bnRyeTogJ0FmZ2hhbmlzdGFuJywgaXNvM0NvZGU6ICdBRkcnLCBpc28yQ29kZTogJ0FGJywgZGF0YXNldENvZGU6ICdhZi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdBZmdoYW5pc3RhbicsIGlzbzNDb2RlOiAnQUZHJywgaXNvMkNvZGU6ICdBRicsIGRhdGFzZXRDb2RlOiAnYWYtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0FsYmFuaWEnLCBpc28zQ29kZTogJ0FMQicsIGlzbzJDb2RlOiAnQUwnLCBkYXRhc2V0Q29kZTogJ2FsLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0FsYmFuaWEnLCBpc28zQ29kZTogJ0FMQicsIGlzbzJDb2RlOiAnQUwnLCBkYXRhc2V0Q29kZTogJ2FsLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbGdlcmlhJywgaXNvM0NvZGU6ICdEWkEnLCBpc28yQ29kZTogJ0RaJywgZGF0YXNldENvZGU6ICdkei1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbGdlcmlhJywgaXNvM0NvZGU6ICdEWkEnLCBpc28yQ29kZTogJ0RaJywgZGF0YXNldENvZGU6ICdkei1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQW1lcmljYW4gU2Ftb2EnLCBpc28zQ29kZTogJ0FTTScsIGlzbzJDb2RlOiAnQVMnLCBkYXRhc2V0Q29kZTogJ2FzLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbmRvcnJhJywgaXNvM0NvZGU6ICdBTkQnLCBpc28yQ29kZTogJ0FEJywgZGF0YXNldENvZGU6ICdhZC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbmRvcnJhJywgaXNvM0NvZGU6ICdBTkQnLCBpc28yQ29kZTogJ0FEJywgZGF0YXNldENvZGU6ICdhZC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQW5nb2xhJywgaXNvM0NvZGU6ICdBR08nLCBpc28yQ29kZTogJ0FPJywgZGF0YXNldENvZGU6ICdhby1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbmdvbGEnLCBpc28zQ29kZTogJ0FHTycsIGlzbzJDb2RlOiAnQU8nLCBkYXRhc2V0Q29kZTogJ2FvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbmd1aWxsYScsIGlzbzNDb2RlOiAnQUlBJywgaXNvMkNvZGU6ICdBSScsIGRhdGFzZXRDb2RlOiAnYWktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0FudGFyY3RpY2EnLCBpc28zQ29kZTogJ0FUQScsIGlzbzJDb2RlOiAnQVEnLCBkYXRhc2V0Q29kZTogJ2FxLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0FudGlndWEgYW5kIEJhcmJ1ZGEnLCBpc28zQ29kZTogJ0FURycsIGlzbzJDb2RlOiAnQUcnLCBkYXRhc2V0Q29kZTogJ2FnLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0FudGlndWEgYW5kIEJhcmJ1ZGEnLCBpc28zQ29kZTogJ0FURycsIGlzbzJDb2RlOiAnQUcnLCBkYXRhc2V0Q29kZTogJ2FnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBcmdlbnRpbmEnLCBpc28zQ29kZTogJ0FSRycsIGlzbzJDb2RlOiAnQVInLCBkYXRhc2V0Q29kZTogJ2FyLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0FyZ2VudGluYScsIGlzbzNDb2RlOiAnQVJHJywgaXNvMkNvZGU6ICdBUicsIGRhdGFzZXRDb2RlOiAnYXItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0FybWVuaWEnLCBpc28zQ29kZTogJ0FSTScsIGlzbzJDb2RlOiAnQU0nLCBkYXRhc2V0Q29kZTogJ2FtLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0FybWVuaWEnLCBpc28zQ29kZTogJ0FSTScsIGlzbzJDb2RlOiAnQU0nLCBkYXRhc2V0Q29kZTogJ2FtLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBcnViYScsIGlzbzNDb2RlOiAnQUJXJywgaXNvMkNvZGU6ICdBVycsIGRhdGFzZXRDb2RlOiAnYXctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQXJ1YmEnLCBpc28zQ29kZTogJ0FCVycsIGlzbzJDb2RlOiAnQVcnLCBkYXRhc2V0Q29kZTogJ2F3LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBdXN0cmFsaWEgRGF0YUZ1c2lvbicsIGlzbzNDb2RlOiAnQVVTJywgaXNvMkNvZGU6ICdBVScsIGRhdGFzZXRDb2RlOiAnYXUtYWRkcmVzcy1kYXRhZnVzaW9uJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSwgc2luZ2xlbGluZSwgdHlwZWRvd24nfSxcclxuICB7Y291bnRyeTogJ0F1c3RyYWxpYSBHZW9jb2RlZCBOYXRpb25hbCBBZGRyZXNzJywgaXNvM0NvZGU6ICdBVVMnLCBpc28yQ29kZTogJ0FVJywgZGF0YXNldENvZGU6ICdhdS1hZGRyZXNzLWduYWYnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlLCBzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0F1c3RyYWxpYSBQb3N0YWwgQWRkcmVzcycsIGlzbzNDb2RlOiAnQVVTJywgaXNvMkNvZGU6ICdBVScsIGRhdGFzZXRDb2RlOiAnYXUtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQXVzdHJpYScsIGlzbzNDb2RlOiAnQVVUJywgaXNvMkNvZGU6ICdBVCcsIGRhdGFzZXRDb2RlOiAnYXQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0F1c3RyaWEnLCBpc28zQ29kZTogJ0FVVCcsIGlzbzJDb2RlOiAnQVQnLCBkYXRhc2V0Q29kZTogJ2F6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0F6ZXJiYWlqYW4nLCBpc28zQ29kZTogJ0FaRScsIGlzbzJDb2RlOiAnQVonLCBkYXRhc2V0Q29kZTogJ2F6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0F6ZXJiYWlqYW4nLCBpc28zQ29kZTogJ0FaRScsIGlzbzJDb2RlOiAnQVonLCBkYXRhc2V0Q29kZTogJ2F6LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCYWhhbWFzJywgaXNvM0NvZGU6ICdCSFMnLCBpc28yQ29kZTogJ0JTJywgZGF0YXNldENvZGU6ICdicy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdCYWhhbWFzJywgaXNvM0NvZGU6ICdCSFMnLCBpc28yQ29kZTogJ0JTJywgZGF0YXNldENvZGU6ICdicy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQmFocmFpbicsIGlzbzNDb2RlOiAnQkhSJywgaXNvMkNvZGU6ICdCSCcsIGRhdGFzZXRDb2RlOiAnYmgtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQmFocmFpbicsIGlzbzNDb2RlOiAnQkhSJywgaXNvMkNvZGU6ICdCSCcsIGRhdGFzZXRDb2RlOiAnYmgtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0JhbmdsYWRlc2gnLCBpc28zQ29kZTogJ0JHRCcsIGlzbzJDb2RlOiAnQkQnLCBkYXRhc2V0Q29kZTogJ2JkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JhbmdsYWRlc2gnLCBpc28zQ29kZTogJ0JHRCcsIGlzbzJDb2RlOiAnQkQnLCBkYXRhc2V0Q29kZTogJ2JkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCYXJiYWRvcycsIGlzbzNDb2RlOiAnQlJCJywgaXNvMkNvZGU6ICdCQicsIGRhdGFzZXRDb2RlOiAnYmItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQmFyYmFkb3MnLCBpc28zQ29kZTogJ0JSQicsIGlzbzJDb2RlOiAnQkInLCBkYXRhc2V0Q29kZTogJ2JiLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCZWxhcnVzJywgaXNvM0NvZGU6ICdCTFInLCBpc28yQ29kZTogJ0JZJywgZGF0YXNldENvZGU6ICdieS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdCZWxhcnVzJywgaXNvM0NvZGU6ICdCTFInLCBpc28yQ29kZTogJ0JZJywgZGF0YXNldENvZGU6ICdieS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQmVsZ2l1bScsIGlzbzNDb2RlOiAnQkVMJywgaXNvMkNvZGU6ICdCRScsIGRhdGFzZXRDb2RlOiAnYmUtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxyXG4gIHtjb3VudHJ5OiAnQmVsZ2l1bScsIGlzbzNDb2RlOiAnQkVMJywgaXNvMkNvZGU6ICdCRScsIGRhdGFzZXRDb2RlOiAnYmUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICcgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JlbGdpdW0nLCBpc28zQ29kZTogJ0JFTCcsIGlzbzJDb2RlOiAnQkUnLCBkYXRhc2V0Q29kZTogJ2JlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCZWxpemUnLCBpc28zQ29kZTogJ0JMWicsIGlzbzJDb2RlOiAnQlonLCBkYXRhc2V0Q29kZTogJ2J6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JlbGl6ZScsIGlzbzNDb2RlOiAnQkxaJywgaXNvMkNvZGU6ICdCWicsIGRhdGFzZXRDb2RlOiAnYnotYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0JlbmluJywgaXNvM0NvZGU6ICdCRU4nLCBpc28yQ29kZTogJ0JKJywgZGF0YXNldENvZGU6ICdiai1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdCZW5pbicsIGlzbzNDb2RlOiAnQkVOJywgaXNvMkNvZGU6ICdCSicsIGRhdGFzZXRDb2RlOiAnYmotYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0Jlcm11ZGEnLCBpc28zQ29kZTogJ0JNVScsIGlzbzJDb2RlOiAnQk0nLCBkYXRhc2V0Q29kZTogJ2JtLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0Jlcm11ZGEnLCBpc28zQ29kZTogJ0JNVScsIGlzbzJDb2RlOiAnQk0nLCBkYXRhc2V0Q29kZTogJ2JtLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCaHV0YW4nLCBpc28zQ29kZTogJ0JUTicsIGlzbzJDb2RlOiAnQlQnLCBkYXRhc2V0Q29kZTogJ2J0LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JodXRhbicsIGlzbzNDb2RlOiAnQlROJywgaXNvMkNvZGU6ICdCVCcsIGRhdGFzZXRDb2RlOiAnYnQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0JvbGl2aWEnLCBpc28zQ29kZTogJ0JPTCcsIGlzbzJDb2RlOiAnQk8nLCBkYXRhc2V0Q29kZTogJ2JvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JvbGl2aWEnLCBpc28zQ29kZTogJ0JPTCcsIGlzbzJDb2RlOiAnQk8nLCBkYXRhc2V0Q29kZTogJ2JvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCb25haXJlLCBTaW50IEV1c3RhdGl1cyBhbmQgU2FiYScsIGlzbzNDb2RlOiAnQkVTJywgaXNvMkNvZGU6ICdCUScsIGRhdGFzZXRDb2RlOiAnYnEtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQm9uYWlyZSwgU2ludCBFdXN0YXRpdXMgYW5kIFNhYmEnLCBpc28zQ29kZTogJ0JFUycsIGlzbzJDb2RlOiAnQlEnLCBkYXRhc2V0Q29kZTogJ2JxLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCb3NuaWEgYW5kIEhlcnplZ292aW5hJywgaXNvM0NvZGU6ICdCSUgnLCBpc28yQ29kZTogJ0JBJywgZGF0YXNldENvZGU6ICdiYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdCb3NuaWEgYW5kIEhlcnplZ292aW5hJywgaXNvM0NvZGU6ICdCSUgnLCBpc28yQ29kZTogJ0JBJywgZGF0YXNldENvZGU6ICdiYS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQm90c3dhbmEnLCBpc28zQ29kZTogJ0JXQScsIGlzbzJDb2RlOiAnQlcnLCBkYXRhc2V0Q29kZTogJ2J3LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JvdHN3YW5hJywgaXNvM0NvZGU6ICdCV0EnLCBpc28yQ29kZTogJ0JXJywgZGF0YXNldENvZGU6ICdidy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQnJhemlsJywgaXNvM0NvZGU6ICdCUkEnLCBpc28yQ29kZTogJ0JSJywgZGF0YXNldENvZGU6ICdici1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdCcmF6aWwnLCBpc28zQ29kZTogJ0JSQScsIGlzbzJDb2RlOiAnQlInLCBkYXRhc2V0Q29kZTogJ2JyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCcnVuZWkgRGFydXNzYWxhbScsIGlzbzNDb2RlOiAnQlJOJywgaXNvMkNvZGU6ICdCTicsIGRhdGFzZXRDb2RlOiAnYm4tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQnJ1bmVpIERhcnVzc2FsYW0nLCBpc28zQ29kZTogJ0JSTicsIGlzbzJDb2RlOiAnQk4nLCBkYXRhc2V0Q29kZTogJ2JuLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCdWxnYXJpYScsIGlzbzNDb2RlOiAnQkdSJywgaXNvMkNvZGU6ICdCRycsIGRhdGFzZXRDb2RlOiAnYmctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQnVsZ2FyaWEnLCBpc28zQ29kZTogJ0JHUicsIGlzbzJDb2RlOiAnQkcnLCBkYXRhc2V0Q29kZTogJ2JnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCdXJraW5hIEZhc28nLCBpc28zQ29kZTogJ0JGQScsIGlzbzJDb2RlOiAnQkYnLCBkYXRhc2V0Q29kZTogJ2JmLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0J1cmtpbmEgRmFzbycsIGlzbzNDb2RlOiAnQkZBJywgaXNvMkNvZGU6ICdCRicsIGRhdGFzZXRDb2RlOiAnYmYtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0J1cnVuZGknLCBpc28zQ29kZTogJ0JESScsIGlzbzJDb2RlOiAnQkknLCBkYXRhc2V0Q29kZTogJ2JpLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDYW1ib2RpYScsIGlzbzNDb2RlOiAnS0hNJywgaXNvMkNvZGU6ICdLSCcsIGRhdGFzZXRDb2RlOiAna2gtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ2FtYm9kaWEnLCBpc28zQ29kZTogJ0tITScsIGlzbzJDb2RlOiAnS0gnLCBkYXRhc2V0Q29kZTogJ2toLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDYW1lcm9vbicsIGlzbzNDb2RlOiAnQ01SJywgaXNvMkNvZGU6ICdDTScsIGRhdGFzZXRDb2RlOiAnY20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ2FtZXJvb24nLCBpc28zQ29kZTogJ0NNUicsIGlzbzJDb2RlOiAnQ00nLCBkYXRhc2V0Q29kZTogJ2NtLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDYW5hZGEnLCBpc28zQ29kZTogJ0NBTicsIGlzbzJDb2RlOiAnQ0EnLCBkYXRhc2V0Q29kZTogJ2NhLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlLCBzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NhcGUgVmVyZGUnLCBpc28zQ29kZTogJ0NQVicsIGlzbzJDb2RlOiAnQ1YnLCBkYXRhc2V0Q29kZTogJ2N2LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NhcGUgVmVyZGUnLCBpc28zQ29kZTogJ0NQVicsIGlzbzJDb2RlOiAnQ1YnLCBkYXRhc2V0Q29kZTogJ2N2LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDYXltYW4gSXNsYW5kcycsIGlzbzNDb2RlOiAnQ1lNJywgaXNvMkNvZGU6ICdLWScsIGRhdGFzZXRDb2RlOiAna3ktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ2F5bWFuIElzbGFuZHMnLCBpc28zQ29kZTogJ0NZTScsIGlzbzJDb2RlOiAnS1knLCBkYXRhc2V0Q29kZTogJ2t5LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMnLCBpc28zQ29kZTogJ0NBRicsIGlzbzJDb2RlOiAnQ0YnLCBkYXRhc2V0Q29kZTogJ2NmLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYycsIGlzbzNDb2RlOiAnQ0FGJywgaXNvMkNvZGU6ICdDRicsIGRhdGFzZXRDb2RlOiAnY2YtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0NoYWQnLCBpc28zQ29kZTogJ1RDRCcsIGlzbzJDb2RlOiAnVEQnLCBkYXRhc2V0Q29kZTogJ3RkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NoYWQnLCBpc28zQ29kZTogJ1RDRCcsIGlzbzJDb2RlOiAnVEQnLCBkYXRhc2V0Q29kZTogJ3RkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDaGlsZScsIGlzbzNDb2RlOiAnQ0hMJywgaXNvMkNvZGU6ICdDTCcsIGRhdGFzZXRDb2RlOiAnY2wtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ2hpbGUnLCBpc28zQ29kZTogJ0NITCcsIGlzbzJDb2RlOiAnQ0wnLCBkYXRhc2V0Q29kZTogJ2NsLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDaGluYScsIGlzbzNDb2RlOiAnQ0hOJywgaXNvMkNvZGU6ICdDTicsIGRhdGFzZXRDb2RlOiAnY24tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ2hpbmEnLCBpc28zQ29kZTogJ0NITicsIGlzbzJDb2RlOiAnQ04nLCBkYXRhc2V0Q29kZTogJ2NuLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDaHJpc3RtYXMgSXNsYW5kJywgaXNvM0NvZGU6ICdDWFInLCBpc28yQ29kZTogJ0NYJywgZGF0YXNldENvZGU6ICdjeC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ29jb3MgSXNsYW5kJywgaXNvM0NvZGU6ICdDQ0snLCBpc28yQ29kZTogJ0NDJywgZGF0YXNldENvZGU6ICdjYy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ29sb21iaWEnLCBpc28zQ29kZTogJ0NPTCcsIGlzbzJDb2RlOiAnQ08nLCBkYXRhc2V0Q29kZTogJ2NvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NvbG9tYmlhJywgaXNvM0NvZGU6ICdDT0wnLCBpc28yQ29kZTogJ0NPJywgZGF0YXNldENvZGU6ICdjby1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ29tb3JvcycsIGlzbzNDb2RlOiAnQ09NJywgaXNvMkNvZGU6ICdLTScsIGRhdGFzZXRDb2RlOiAna20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ29tb3JvcycsIGlzbzNDb2RlOiAnQ09NJywgaXNvMkNvZGU6ICdLTScsIGRhdGFzZXRDb2RlOiAna20tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0NvbmdvJywgaXNvM0NvZGU6ICdDT0cnLCBpc28yQ29kZTogJ0NHJywgZGF0YXNldENvZGU6ICdjZy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdDb25nbycsIGlzbzNDb2RlOiAnQ09HJywgaXNvMkNvZGU6ICdDRycsIGRhdGFzZXRDb2RlOiAnY2ctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0NvbmdvLCBUaGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUnLCBpc28zQ29kZTogJ0NPRCcsIGlzbzJDb2RlOiAnQ0QnLCBkYXRhc2V0Q29kZTogJ2NkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NvbmdvLCBUaGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUnLCBpc28zQ29kZTogJ0NPRCcsIGlzbzJDb2RlOiAnQ0QnLCBkYXRhc2V0Q29kZTogJ2NkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDb29rIElzbGFuZHMnLCBpc28zQ29kZTogJ0NPSycsIGlzbzJDb2RlOiAnQ0snLCBkYXRhc2V0Q29kZTogJ2NrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0Nvb2sgSXNsYW5kcycsIGlzbzNDb2RlOiAnQ09LJywgaXNvMkNvZGU6ICdDSycsIGRhdGFzZXRDb2RlOiAnY2stYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0Nvc3RhIFJpY2EnLCBpc28zQ29kZTogJ0NSSScsIGlzbzJDb2RlOiAnQ1InLCBkYXRhc2V0Q29kZTogJ2NyLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0Nvc3RhIFJpY2EnLCBpc28zQ29kZTogJ0NSSScsIGlzbzJDb2RlOiAnQ1InLCBkYXRhc2V0Q29kZTogJ2NyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDcm9hdGlhJywgaXNvM0NvZGU6ICdIUlYnLCBpc28yQ29kZTogJ0hSJywgZGF0YXNldENvZGU6ICdoci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdDcm9hdGlhJywgaXNvM0NvZGU6ICdIUlYnLCBpc28yQ29kZTogJ0hSJywgZGF0YXNldENvZGU6ICdoci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ3ViYScsIGlzbzNDb2RlOiAnQ1VCJywgaXNvMkNvZGU6ICdDVScsIGRhdGFzZXRDb2RlOiAnY3UtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ3ViYScsIGlzbzNDb2RlOiAnQ1VCJywgaXNvMkNvZGU6ICdDVScsIGRhdGFzZXRDb2RlOiAnY3UtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0N1cmHDp2FvJywgaXNvM0NvZGU6ICdDVVcnLCBpc28yQ29kZTogJ0NXJywgZGF0YXNldENvZGU6ICdjdy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdDdXJhw6dhbycsIGlzbzNDb2RlOiAnQ1VXJywgaXNvMkNvZGU6ICdDVycsIGRhdGFzZXRDb2RlOiAnY3ctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0N5cHJ1cycsIGlzbzNDb2RlOiAnQ1lQJywgaXNvMkNvZGU6ICdDWScsIGRhdGFzZXRDb2RlOiAnY3ktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ3lwcnVzJywgaXNvM0NvZGU6ICdDWVAnLCBpc28yQ29kZTogJ0NZJywgZGF0YXNldENvZGU6ICdjeS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ3plY2ggUmVwdWJsaWMnLCBpc28zQ29kZTogJ0NaRScsIGlzbzJDb2RlOiAnQ1onLCBkYXRhc2V0Q29kZTogJ2N6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0N6ZWNoIFJlcHVibGljJywgaXNvM0NvZGU6ICdDWkUnLCBpc28yQ29kZTogJ0NaJywgZGF0YXNldENvZGU6ICdjei1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ8O0dGUgZFxcJ0l2b2lyZScsIGlzbzNDb2RlOiAnQ0lWJywgaXNvMkNvZGU6ICdDSScsIGRhdGFzZXRDb2RlOiAnY2ktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ8O0dGUgZFxcJ0l2b2lyZScsIGlzbzNDb2RlOiAnQ0lWJywgaXNvMkNvZGU6ICdDSScsIGRhdGFzZXRDb2RlOiAnY2ktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0Rlbm1hcmsnLCBpc28zQ29kZTogJ0ROSycsIGlzbzJDb2RlOiAnREsnLCBkYXRhc2V0Q29kZTogJ2RrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0Rlbm1hcmsnLCBpc28zQ29kZTogJ0ROSycsIGlzbzJDb2RlOiAnREsnLCBkYXRhc2V0Q29kZTogJ2RrLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdEamlib3V0aScsIGlzbzNDb2RlOiAnREpJJywgaXNvMkNvZGU6ICdESicsIGRhdGFzZXRDb2RlOiAnZGotYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRGppYm91dGknLCBpc28zQ29kZTogJ0RKSScsIGlzbzJDb2RlOiAnREonLCBkYXRhc2V0Q29kZTogJ2RqLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdEb21pbmljYScsIGlzbzNDb2RlOiAnRE1BJywgaXNvMkNvZGU6ICdETScsIGRhdGFzZXRDb2RlOiAnZG0tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRG9taW5pY2EnLCBpc28zQ29kZTogJ0RNQScsIGlzbzJDb2RlOiAnRE0nLCBkYXRhc2V0Q29kZTogJ2RtLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdEb21pbmljYW4gUmVwdWJsaWMnLCBpc28zQ29kZTogJ0RPTScsIGlzbzJDb2RlOiAnRE8nLCBkYXRhc2V0Q29kZTogJ2RvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0RvbWluaWNhbiBSZXB1YmxpYycsIGlzbzNDb2RlOiAnRE9NJywgaXNvMkNvZGU6ICdETycsIGRhdGFzZXRDb2RlOiAnZG8tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0VjdWFkb3InLCBpc28zQ29kZTogJ0VDVScsIGlzbzJDb2RlOiAnRUMnLCBkYXRhc2V0Q29kZTogJ2VjLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0VjdWFkb3InLCBpc28zQ29kZTogJ0VDVScsIGlzbzJDb2RlOiAnRUMnLCBkYXRhc2V0Q29kZTogJ2VjLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdFZ3lwdCcsIGlzbzNDb2RlOiAnRUdZJywgaXNvMkNvZGU6ICdFRycsIGRhdGFzZXRDb2RlOiAnZWctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRWd5cHQnLCBpc28zQ29kZTogJ0VHWScsIGlzbzJDb2RlOiAnRUcnLCBkYXRhc2V0Q29kZTogJ2VnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdFbCBTYWx2YWRvcicsIGlzbzNDb2RlOiAnU0xWJywgaXNvMkNvZGU6ICdTVicsIGRhdGFzZXRDb2RlOiAnc3YtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRWwgU2FsdmFkb3InLCBpc28zQ29kZTogJ1NMVicsIGlzbzJDb2RlOiAnU1YnLCBkYXRhc2V0Q29kZTogJ3N2LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdFcXVhdG9yaWFsIEd1aW5lYScsIGlzbzNDb2RlOiAnR05RJywgaXNvMkNvZGU6ICdHUScsIGRhdGFzZXRDb2RlOiAnZ3EtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRXF1YXRvcmlhbCBHdWluZWEnLCBpc28zQ29kZTogJ0dOUScsIGlzbzJDb2RlOiAnR1EnLCBkYXRhc2V0Q29kZTogJ2dxLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdFcml0cmVhJywgaXNvM0NvZGU6ICdFUkknLCBpc28yQ29kZTogJ0VSJywgZGF0YXNldENvZGU6ICdlci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdFcml0cmVhJywgaXNvM0NvZGU6ICdFUkknLCBpc28yQ29kZTogJ0VSJywgZGF0YXNldENvZGU6ICdlci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRXN0b25pYScsIGlzbzNDb2RlOiAnRVNUJywgaXNvMkNvZGU6ICdFRScsIGRhdGFzZXRDb2RlOiAnZWUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRXN0b25pYScsIGlzbzNDb2RlOiAnRVNUJywgaXNvMkNvZGU6ICdFRScsIGRhdGFzZXRDb2RlOiAnZWUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0V0aGlvcGlhJywgaXNvM0NvZGU6ICdFVEgnLCBpc28yQ29kZTogJ0VUJywgZGF0YXNldENvZGU6ICdldC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdFdGhpb3BpYScsIGlzbzNDb2RlOiAnRVRIJywgaXNvMkNvZGU6ICdFVCcsIGRhdGFzZXRDb2RlOiAnZXQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0ZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKScsIGlzbzNDb2RlOiAnRkxLJywgaXNvMkNvZGU6ICdGSycsIGRhdGFzZXRDb2RlOiAnZmstYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0Zhcm9lIElzbGFuZHMnLCBpc28zQ29kZTogJ0ZSTycsIGlzbzJDb2RlOiAnRk8nLCBkYXRhc2V0Q29kZTogJ2ZvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0Zhcm9lIElzbGFuZHMnLCBpc28zQ29kZTogJ0ZSTycsIGlzbzJDb2RlOiAnRk8nLCBkYXRhc2V0Q29kZTogJ2ZvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdGaWppJywgaXNvM0NvZGU6ICdGSkknLCBpc28yQ29kZTogJ0ZKJywgZGF0YXNldENvZGU6ICdmai1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdGaWppJywgaXNvM0NvZGU6ICdGSkknLCBpc28yQ29kZTogJ0ZKJywgZGF0YXNldENvZGU6ICdmai1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRmlubGFuZCcsIGlzbzNDb2RlOiAnRklOJywgaXNvMkNvZGU6ICdGSScsIGRhdGFzZXRDb2RlOiAnZmktYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxyXG4gIHtjb3VudHJ5OiAnRmlubGFuZCcsIGlzbzNDb2RlOiAnRklOJywgaXNvMkNvZGU6ICdGSScsIGRhdGFzZXRDb2RlOiAnZmktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICd2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRmlubGFuZCcsIGlzbzNDb2RlOiAnRklOJywgaXNvMkNvZGU6ICdGSScsIGRhdGFzZXRDb2RlOiAnZmktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0ZyYW5jZSBTdHJlZXQgTGV2ZWwnLCBpc28zQ29kZTogJ0ZSQScsIGlzbzJDb2RlOiAnRlInLCBkYXRhc2V0Q29kZTogJ2ZyLWFkZHJlc3Mtc3RyZWV0bGV2ZWwnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdGcmFuY2UgU3ViLVByZW1pc2VzIExldmVsJywgaXNvM0NvZGU6ICdGUkEnLCBpc28yQ29kZTogJ0ZSJywgZGF0YXNldENvZGU6ICdmci1hZGRpdGlvbmFsLWhleGFsaW5lMycsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duJ30sXHJcbiAge2NvdW50cnk6ICdGcmFuY2UgUHJlbWlzZXMgTGV2ZWwnLCBpc28zQ29kZTogJ0ZSQScsIGlzbzJDb2RlOiAnRlInLCBkYXRhc2V0Q29kZTogJ2ZyLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdGcmVuY2ggR3VpYW5hJywgaXNvM0NvZGU6ICdHVUYnLCBpc28yQ29kZTogJ0dGJywgZGF0YXNldENvZGU6ICdnZi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRnJlbmNoIFBvbHluZXNpYScsIGlzbzNDb2RlOiAnUFlGJywgaXNvMkNvZGU6ICdQRicsIGRhdGFzZXRDb2RlOiAncGYtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0dhYm9uJywgaXNvM0NvZGU6ICdHQUInLCBpc28yQ29kZTogJ0dBJywgZGF0YXNldENvZGU6ICdnYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHYWJvbicsIGlzbzNDb2RlOiAnR0FCJywgaXNvMkNvZGU6ICdHQScsIGRhdGFzZXRDb2RlOiAnZ2EtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0dhbWJpYScsIGlzbzNDb2RlOiAnR01CJywgaXNvMkNvZGU6ICdHTScsIGRhdGFzZXRDb2RlOiAnZ20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR2FtYmlhJywgaXNvM0NvZGU6ICdHTUInLCBpc28yQ29kZTogJ0dNJywgZGF0YXNldENvZGU6ICdnbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR2VvcmdpYScsIGlzbzNDb2RlOiAnR0VPJywgaXNvMkNvZGU6ICdHRScsIGRhdGFzZXRDb2RlOiAnZ2UtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR2VvcmdpYScsIGlzbzNDb2RlOiAnR0VPJywgaXNvMkNvZGU6ICdHRScsIGRhdGFzZXRDb2RlOiAnZ2UtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0dlcm1hbnknLCBpc28zQ29kZTogJ0RFVScsIGlzbzJDb2RlOiAnREUnLCBkYXRhc2V0Q29kZTogJ2RlLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHZXJtYW55JywgaXNvM0NvZGU6ICdERVUnLCBpc28yQ29kZTogJ0RFJywgZGF0YXNldENvZGU6ICdkZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3ZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHZXJtYW55JywgaXNvM0NvZGU6ICdERVUnLCBpc28yQ29kZTogJ0RFJywgZGF0YXNldENvZGU6ICdkZS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR2hhbmEnLCBpc28zQ29kZTogJ0dIQScsIGlzbzJDb2RlOiAnR0gnLCBkYXRhc2V0Q29kZTogJ2doLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0doYW5hJywgaXNvM0NvZGU6ICdHSEEnLCBpc28yQ29kZTogJ0dIJywgZGF0YXNldENvZGU6ICdnaC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR2licmFsdGFyJywgaXNvM0NvZGU6ICdHSUInLCBpc28yQ29kZTogJ0dJJywgZGF0YXNldENvZGU6ICdnaS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR3JlZWNlJywgaXNvM0NvZGU6ICdHUkMnLCBpc28yQ29kZTogJ0dSJywgZGF0YXNldENvZGU6ICdnci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHcmVlY2UnLCBpc28zQ29kZTogJ0dSQycsIGlzbzJDb2RlOiAnR1InLCBkYXRhc2V0Q29kZTogJ2dyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdHcmVlbmxhbmQnLCBpc28zQ29kZTogJ0dSTCcsIGlzbzJDb2RlOiAnR0wnLCBkYXRhc2V0Q29kZTogJ2dsLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0dyZWVubGFuZCcsIGlzbzNDb2RlOiAnR1JMJywgaXNvMkNvZGU6ICdHTCcsIGRhdGFzZXRDb2RlOiAnZ2wtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0dyZW5hZGEnLCBpc28zQ29kZTogJ0dSRCcsIGlzbzJDb2RlOiAnR0QnLCBkYXRhc2V0Q29kZTogJ2dkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0dyZW5hZGEnLCBpc28zQ29kZTogJ0dSRCcsIGlzbzJDb2RlOiAnR0QnLCBkYXRhc2V0Q29kZTogJ2dkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdHdWFkZWxvdXBlJywgaXNvM0NvZGU6ICdHTFAnLCBpc28yQ29kZTogJ0dQJywgZGF0YXNldENvZGU6ICdncC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR3VhbScsIGlzbzNDb2RlOiAnR1VNJywgaXNvMkNvZGU6ICdHVScsIGRhdGFzZXRDb2RlOiAnZ3UtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0d1YXRlbWFsYScsIGlzbzNDb2RlOiAnR1RNJywgaXNvMkNvZGU6ICdHVCcsIGRhdGFzZXRDb2RlOiAnZ3QtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR3VhdGVtYWxhJywgaXNvM0NvZGU6ICdHVE0nLCBpc28yQ29kZTogJ0dUJywgZGF0YXNldENvZGU6ICdndC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR3VpbmVhJywgaXNvM0NvZGU6ICdHSU4nLCBpc28yQ29kZTogJ0dOJywgZGF0YXNldENvZGU6ICdnbi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHdWluZWEnLCBpc28zQ29kZTogJ0dJTicsIGlzbzJDb2RlOiAnR04nLCBkYXRhc2V0Q29kZTogJ2duLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdHdWluZWEtQmlzc2F1JywgaXNvM0NvZGU6ICdHTkInLCBpc28yQ29kZTogJ0dXJywgZGF0YXNldENvZGU6ICdndy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHdWluZWEtQmlzc2F1JywgaXNvM0NvZGU6ICdHTkInLCBpc28yQ29kZTogJ0dXJywgZGF0YXNldENvZGU6ICdndy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR3V5YW5hJywgaXNvM0NvZGU6ICdHVVknLCBpc28yQ29kZTogJ0dZJywgZGF0YXNldENvZGU6ICdneS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHdXlhbmEnLCBpc28zQ29kZTogJ0dVWScsIGlzbzJDb2RlOiAnR1knLCBkYXRhc2V0Q29kZTogJ2d5LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdIYWl0aScsIGlzbzNDb2RlOiAnSFRJJywgaXNvMkNvZGU6ICdIVCcsIGRhdGFzZXRDb2RlOiAnaHQtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSGFpdGknLCBpc28zQ29kZTogJ0hUSScsIGlzbzJDb2RlOiAnSFQnLCBkYXRhc2V0Q29kZTogJ2h0LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdIb25kdXJhcycsIGlzbzNDb2RlOiAnSE5EJywgaXNvMkNvZGU6ICdITicsIGRhdGFzZXRDb2RlOiAnaG4tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSG9uZHVyYXMnLCBpc28zQ29kZTogJ0hORCcsIGlzbzJDb2RlOiAnSE4nLCBkYXRhc2V0Q29kZTogJ2huLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdIb25nIEtvbmcnLCBpc28zQ29kZTogJ0hLRycsIGlzbzJDb2RlOiAnSEsnLCBkYXRhc2V0Q29kZTogJ2hrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0hvbmcgS29uZycsIGlzbzNDb2RlOiAnSEtHJywgaXNvMkNvZGU6ICdISycsIGRhdGFzZXRDb2RlOiAnaGstYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0h1bmdhcnknLCBpc28zQ29kZTogJ0hVTicsIGlzbzJDb2RlOiAnSFUnLCBkYXRhc2V0Q29kZTogJ2h1LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0h1bmdhcnknLCBpc28zQ29kZTogJ0hVTicsIGlzbzJDb2RlOiAnSFUnLCBkYXRhc2V0Q29kZTogJ2h1LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdJY2VsYW5kJywgaXNvM0NvZGU6ICdJU0wnLCBpc28yQ29kZTogJ0lTJywgZGF0YXNldENvZGU6ICdpcy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdJY2VsYW5kJywgaXNvM0NvZGU6ICdJU0wnLCBpc28yQ29kZTogJ0lTJywgZGF0YXNldENvZGU6ICdpcy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSW5kaWEnLCBpc28zQ29kZTogJ0lORCcsIGlzbzJDb2RlOiAnSU4nLCBkYXRhc2V0Q29kZTogJ2luLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0luZGlhJywgaXNvM0NvZGU6ICdJTkQnLCBpc28yQ29kZTogJ0lOJywgZGF0YXNldENvZGU6ICdpbi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSW5kb25lc2lhJywgaXNvM0NvZGU6ICdJRE4nLCBpc28yQ29kZTogJ0lEJywgZGF0YXNldENvZGU6ICdpZC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdJbmRvbmVzaWEnLCBpc28zQ29kZTogJ0lETicsIGlzbzJDb2RlOiAnSUQnLCBkYXRhc2V0Q29kZTogJ2lkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mJywgaXNvM0NvZGU6ICdJUk4nLCBpc28yQ29kZTogJ0lSJywgZGF0YXNldENvZGU6ICdpci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mJywgaXNvM0NvZGU6ICdJUk4nLCBpc28yQ29kZTogJ0lSJywgZGF0YXNldENvZGU6ICdpci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSXJhcScsIGlzbzNDb2RlOiAnSVJRJywgaXNvMkNvZGU6ICdJUScsIGRhdGFzZXRDb2RlOiAnaXEtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSXJhcScsIGlzbzNDb2RlOiAnSVJRJywgaXNvMkNvZGU6ICdJUScsIGRhdGFzZXRDb2RlOiAnaXEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0lyZWxhbmQnLCBpc28zQ29kZTogJ0lSTCcsIGlzbzJDb2RlOiAnSUUnLCBkYXRhc2V0Q29kZTogJ2llLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24nfSxcclxuICB7Y291bnRyeTogJ0lyZWxhbmQnLCBpc28zQ29kZTogJ0lSTCcsIGlzbzJDb2RlOiAnSUUnLCBkYXRhc2V0Q29kZTogJ2llLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0lyZWxhbmQnLCBpc28zQ29kZTogJ0lSTCcsIGlzbzJDb2RlOiAnSUUnLCBkYXRhc2V0Q29kZTogJ2llLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdJcmVsYW5kIEVpcmNvZGUnLCBpc28zQ29kZTogJ0lSTCcsIGlzbzJDb2RlOiAnSUUnLCBkYXRhc2V0Q29kZTogJ2llLWFkZGl0aW9uYWwtZWlyY29kZScsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0lyZWxhbmQgRUNBRCcsIGlzbzNDb2RlOiAnSVJMJywgaXNvMkNvZGU6ICdJRScsIGRhdGFzZXRDb2RlOiAnaWUtYWRkcmVzcy1lY2FkJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSXNyYWVsJywgaXNvM0NvZGU6ICdJU1InLCBpc28yQ29kZTogJ0lMJywgZGF0YXNldENvZGU6ICdpbC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdJc3JhZWwnLCBpc28zQ29kZTogJ0lTUicsIGlzbzJDb2RlOiAnSUwnLCBkYXRhc2V0Q29kZTogJ2lsLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdJdGFseScsIGlzbzNDb2RlOiAnSVRBJywgaXNvMkNvZGU6ICdJVCcsIGRhdGFzZXRDb2RlOiAnaXQtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSXRhbHknLCBpc28zQ29kZTogJ0lUQScsIGlzbzJDb2RlOiAnSVQnLCBkYXRhc2V0Q29kZTogJ2l0LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdKYW1haWNhJywgaXNvM0NvZGU6ICdKQU0nLCBpc28yQ29kZTogJ0pNJywgZGF0YXNldENvZGU6ICdqbS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdKYW1haWNhJywgaXNvM0NvZGU6ICdKQU0nLCBpc28yQ29kZTogJ0pNJywgZGF0YXNldENvZGU6ICdqbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSmFwYW4nLCBpc28zQ29kZTogJ0pQTicsIGlzbzJDb2RlOiAnSlAnLCBkYXRhc2V0Q29kZTogJ2pwLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0phcGFuJywgaXNvM0NvZGU6ICdKUE4nLCBpc28yQ29kZTogJ0pQJywgZGF0YXNldENvZGU6ICdqcC1hZGRyZXNzJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdKb3JkYW4nLCBpc28zQ29kZTogJ0pPUicsIGlzbzJDb2RlOiAnSk8nLCBkYXRhc2V0Q29kZTogJ2pvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0pvcmRhbicsIGlzbzNDb2RlOiAnSk9SJywgaXNvMkNvZGU6ICdKTycsIGRhdGFzZXRDb2RlOiAnam8tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0themFraHN0YW4nLCBpc28zQ29kZTogJ0tBWicsIGlzbzJDb2RlOiAnS1onLCBkYXRhc2V0Q29kZTogJ2t6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0themFraHN0YW4nLCBpc28zQ29kZTogJ0tBWicsIGlzbzJDb2RlOiAnS1onLCBkYXRhc2V0Q29kZTogJ2t6LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdLZW55YScsIGlzbzNDb2RlOiAnS0VOJywgaXNvMkNvZGU6ICdLRScsIGRhdGFzZXRDb2RlOiAna2UtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnS2VueWEnLCBpc28zQ29kZTogJ0tFTicsIGlzbzJDb2RlOiAnS0UnLCBkYXRhc2V0Q29kZTogJ2tlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdLaXJpYmF0aScsIGlzbzNDb2RlOiAnS0lSJywgaXNvMkNvZGU6ICdLSScsIGRhdGFzZXRDb2RlOiAna2ktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnS2lyaWJhdGknLCBpc28zQ29kZTogJ0tJUicsIGlzbzJDb2RlOiAnS0knLCBkYXRhc2V0Q29kZTogJ2tpLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdLb3JlYSwgRGVtb2NyYXRpYyBQZW9wbGVcXCdzIFJlcHVibGljIG9mJywgaXNvM0NvZGU6ICdQUksnLCBpc28yQ29kZTogJ0tQJywgZGF0YXNldENvZGU6ICdrcC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdLb3JlYSwgRGVtb2NyYXRpYyBQZW9wbGVcXCdzIFJlcHVibGljIG9mJywgaXNvM0NvZGU6ICdQUksnLCBpc28yQ29kZTogJ0tQJywgZGF0YXNldENvZGU6ICdrcC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnS29yZWEsIFJlcHVibGljIG9mJywgaXNvM0NvZGU6ICdLT1InLCBpc28yQ29kZTogJ0tSJywgZGF0YXNldENvZGU6ICdrci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdLb3JlYSwgUmVwdWJsaWMgb2YnLCBpc28zQ29kZTogJ0tPUicsIGlzbzJDb2RlOiAnS1InLCBkYXRhc2V0Q29kZTogJ2tyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdLb3Nvdm8nLCBpc28zQ29kZTogJ0tPUycsIGlzbzJDb2RlOiAnWEsnLCBkYXRhc2V0Q29kZTogJ2t2LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdLdXdhaXQnLCBpc28zQ29kZTogJ0tXVCcsIGlzbzJDb2RlOiAnS1cnLCBkYXRhc2V0Q29kZTogJ2t3LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0t1d2FpdCcsIGlzbzNDb2RlOiAnS1dUJywgaXNvMkNvZGU6ICdLVycsIGRhdGFzZXRDb2RlOiAna3ctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0t5cmd5enN0YW4nLCBpc28zQ29kZTogJ0tHWicsIGlzbzJDb2RlOiAnS0cnLCBkYXRhc2V0Q29kZTogJ2tnLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0t5cmd5enN0YW4nLCBpc28zQ29kZTogJ0tHWicsIGlzbzJDb2RlOiAnS0cnLCBkYXRhc2V0Q29kZTogJ2tnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdMYW9zJywgaXNvM0NvZGU6ICdMQU8nLCBpc28yQ29kZTogJ0xBJywgZGF0YXNldENvZGU6ICdsYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMYW9zJywgaXNvM0NvZGU6ICdMQU8nLCBpc28yQ29kZTogJ0xBJywgZGF0YXNldENvZGU6ICdsYS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTGF0dmlhJywgaXNvM0NvZGU6ICdMVkEnLCBpc28yQ29kZTogJ0xWJywgZGF0YXNldENvZGU6ICdsdi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMYXR2aWEnLCBpc28zQ29kZTogJ0xWQScsIGlzbzJDb2RlOiAnTFYnLCBkYXRhc2V0Q29kZTogJ2x2LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdMZWJhbm9uJywgaXNvM0NvZGU6ICdMQk4nLCBpc28yQ29kZTogJ0xCJywgZGF0YXNldENvZGU6ICdsYi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMZWJhbm9uJywgaXNvM0NvZGU6ICdMQk4nLCBpc28yQ29kZTogJ0xCJywgZGF0YXNldENvZGU6ICdsYi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTGVzb3RobycsIGlzbzNDb2RlOiAnTFNPJywgaXNvMkNvZGU6ICdMUycsIGRhdGFzZXRDb2RlOiAnbHMtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTGVzb3RobycsIGlzbzNDb2RlOiAnTFNPJywgaXNvMkNvZGU6ICdMUycsIGRhdGFzZXRDb2RlOiAnbHMtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0xpYmVyaWEnLCBpc28zQ29kZTogJ0xCUicsIGlzbzJDb2RlOiAnTFInLCBkYXRhc2V0Q29kZTogJ2xyLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0xpYmVyaWEnLCBpc28zQ29kZTogJ0xCUicsIGlzbzJDb2RlOiAnTFInLCBkYXRhc2V0Q29kZTogJ2xyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdMaWJ5YScsIGlzbzNDb2RlOiAnTEJZJywgaXNvMkNvZGU6ICdMWScsIGRhdGFzZXRDb2RlOiAnbHktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTGlieWEnLCBpc28zQ29kZTogJ0xCWScsIGlzbzJDb2RlOiAnTFknLCBkYXRhc2V0Q29kZTogJ2x5LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdMaWVjaHRlbnN0ZWluJywgaXNvM0NvZGU6ICdMSUUnLCBpc28yQ29kZTogJ0xJJywgZGF0YXNldENvZGU6ICdsaS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMaWVjaHRlbnN0ZWluJywgaXNvM0NvZGU6ICdMSUUnLCBpc28yQ29kZTogJ0xJJywgZGF0YXNldENvZGU6ICdsaS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTGl0aHVhbmlhJywgaXNvM0NvZGU6ICdMVFUnLCBpc28yQ29kZTogJ0xUJywgZGF0YXNldENvZGU6ICdsdC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMaXRodWFuaWEnLCBpc28zQ29kZTogJ0xUVScsIGlzbzJDb2RlOiAnTFQnLCBkYXRhc2V0Q29kZTogJ2x0LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdMdXhlbWJvdXJnJywgaXNvM0NvZGU6ICdMVVgnLCBpc28yQ29kZTogJ0xVJywgZGF0YXNldENvZGU6ICdsdS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMdXhlbWJvdXJnJywgaXNvM0NvZGU6ICdMVVgnLCBpc28yQ29kZTogJ0xVJywgZGF0YXNldENvZGU6ICdsdS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFjYXUnLCBpc28zQ29kZTogJ01BQycsIGlzbzJDb2RlOiAnTU8nLCBkYXRhc2V0Q29kZTogJ2x2LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01hY2F1JywgaXNvM0NvZGU6ICdNQUMnLCBpc28yQ29kZTogJ01PJywgZGF0YXNldENvZGU6ICdsdi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFkYWdhc2NhcicsIGlzbzNDb2RlOiAnTURHJywgaXNvMkNvZGU6ICdNRycsIGRhdGFzZXRDb2RlOiAnbW8tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFkYWdhc2NhcicsIGlzbzNDb2RlOiAnTURHJywgaXNvMkNvZGU6ICdNRycsIGRhdGFzZXRDb2RlOiAnbW8tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01hbGF3aScsIGlzbzNDb2RlOiAnTVdJJywgaXNvMkNvZGU6ICdNVycsIGRhdGFzZXRDb2RlOiAnbXctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFsYXdpJywgaXNvM0NvZGU6ICdNV0knLCBpc28yQ29kZTogJ01XJywgZGF0YXNldENvZGU6ICdtdy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFsYXlzaWEnLCBpc28zQ29kZTogJ01ZUycsIGlzbzJDb2RlOiAnTVknLCBkYXRhc2V0Q29kZTogJ215LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01hbGF5c2lhJywgaXNvM0NvZGU6ICdNWVMnLCBpc28yQ29kZTogJ01ZJywgZGF0YXNldENvZGU6ICdteS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFsZGl2ZXMnLCBpc28zQ29kZTogJ01EVicsIGlzbzJDb2RlOiAnTVYnLCBkYXRhc2V0Q29kZTogJ212LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01hbGRpdmVzJywgaXNvM0NvZGU6ICdNRFYnLCBpc28yQ29kZTogJ01WJywgZGF0YXNldENvZGU6ICdtdi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFsaScsIGlzbzNDb2RlOiAnTUxJJywgaXNvMkNvZGU6ICdNTCcsIGRhdGFzZXRDb2RlOiAnbWwtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFsaScsIGlzbzNDb2RlOiAnTUxJJywgaXNvMkNvZGU6ICdNTCcsIGRhdGFzZXRDb2RlOiAnbWwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01hbHRhJywgaXNvM0NvZGU6ICdNTFQnLCBpc28yQ29kZTogJ01UJywgZGF0YXNldENvZGU6ICdtdC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdNYWx0YScsIGlzbzNDb2RlOiAnTUxUJywgaXNvMkNvZGU6ICdNVCcsIGRhdGFzZXRDb2RlOiAnbXQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01hcnNoYWxsIElzbGFuZHMnLCBpc28zQ29kZTogJ01ITCcsIGlzbzJDb2RlOiAnTUgnLCBkYXRhc2V0Q29kZTogJ21oLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdNYXJ0aW5pcXVlJywgaXNvM0NvZGU6ICdNVFEnLCBpc28yQ29kZTogJ01RJywgZGF0YXNldENvZGU6ICdtcS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWF1cml0YW5pYScsIGlzbzNDb2RlOiAnTVJUJywgaXNvMkNvZGU6ICdNUicsIGRhdGFzZXRDb2RlOiAnbXItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWF1cml0YW5pYScsIGlzbzNDb2RlOiAnTVJUJywgaXNvMkNvZGU6ICdNUicsIGRhdGFzZXRDb2RlOiAnbXItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01hdXJpdGl1cycsIGlzbzNDb2RlOiAnTVVTJywgaXNvMkNvZGU6ICdNVScsIGRhdGFzZXRDb2RlOiAnbXUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWF1cml0aXVzJywgaXNvM0NvZGU6ICdNVVMnLCBpc28yQ29kZTogJ01VJywgZGF0YXNldENvZGU6ICdtdS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWF5b3R0ZScsIGlzbzNDb2RlOiAnTVlUJywgaXNvMkNvZGU6ICdZVCcsIGRhdGFzZXRDb2RlOiAneXQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01leGljbycsIGlzbzNDb2RlOiAnTUVYJywgaXNvMkNvZGU6ICdNWCcsIGRhdGFzZXRDb2RlOiAnbXgtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWV4aWNvJywgaXNvM0NvZGU6ICdNRVgnLCBpc28yQ29kZTogJ01YJywgZGF0YXNldENvZGU6ICdteC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcyBvZicsIGlzbzNDb2RlOiAnRlNNJywgaXNvMkNvZGU6ICdGTScsIGRhdGFzZXRDb2RlOiAnZm0tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01vbGRvdmEnLCBpc28zQ29kZTogJ01EQScsIGlzbzJDb2RlOiAnTUQnLCBkYXRhc2V0Q29kZTogJ21kLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01vbGRvdmEnLCBpc28zQ29kZTogJ01EQScsIGlzbzJDb2RlOiAnTUQnLCBkYXRhc2V0Q29kZTogJ21kLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdNb25hY28nLCBpc28zQ29kZTogJ01DTycsIGlzbzJDb2RlOiAnTUMnLCBkYXRhc2V0Q29kZTogJ21jLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01vbmFjbycsIGlzbzNDb2RlOiAnTUNPJywgaXNvMkNvZGU6ICdNQycsIGRhdGFzZXRDb2RlOiAnbWMtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01vbmdvbGlhJywgaXNvM0NvZGU6ICdNTkcnLCBpc28yQ29kZTogJ01OJywgZGF0YXNldENvZGU6ICdtbi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdNb25nb2xpYScsIGlzbzNDb2RlOiAnTU5HJywgaXNvMkNvZGU6ICdNTicsIGRhdGFzZXRDb2RlOiAnbW4tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01vbnRlbmVncm8nLCBpc28zQ29kZTogJ01ORScsIGlzbzJDb2RlOiAnTUUnLCBkYXRhc2V0Q29kZTogJ21lLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01vbnRlbmVncm8nLCBpc28zQ29kZTogJ01ORScsIGlzbzJDb2RlOiAnTUUnLCBkYXRhc2V0Q29kZTogJ21lLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdNb250c2VycmF0JywgaXNvM0NvZGU6ICdNU1InLCBpc28yQ29kZTogJ01TJywgZGF0YXNldENvZGU6ICdtcy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTW9yb2NjbycsIGlzbzNDb2RlOiAnTUFSJywgaXNvMkNvZGU6ICdNQScsIGRhdGFzZXRDb2RlOiAnbWEtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTW9yb2NjbycsIGlzbzNDb2RlOiAnTUFSJywgaXNvMkNvZGU6ICdNQScsIGRhdGFzZXRDb2RlOiAnbWEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01vemFtYmlxdWUnLCBpc28zQ29kZTogJ01PWicsIGlzbzJDb2RlOiAnTVonLCBkYXRhc2V0Q29kZTogJ216LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01vemFtYmlxdWUnLCBpc28zQ29kZTogJ01PWicsIGlzbzJDb2RlOiAnTVonLCBkYXRhc2V0Q29kZTogJ216LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdNeWFubWFyJywgaXNvM0NvZGU6ICdNTVInLCBpc28yQ29kZTogJ01NJywgZGF0YXNldENvZGU6ICdtbS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdNeWFubWFyJywgaXNvM0NvZGU6ICdNTVInLCBpc28yQ29kZTogJ01NJywgZGF0YXNldENvZGU6ICdtbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTmFtaWJpYScsIGlzbzNDb2RlOiAnTkFNJywgaXNvMkNvZGU6ICdOQScsIGRhdGFzZXRDb2RlOiAnbmEtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTmFtaWJpYScsIGlzbzNDb2RlOiAnTkFNJywgaXNvMkNvZGU6ICdOQScsIGRhdGFzZXRDb2RlOiAnbmEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05hdXJ1JywgaXNvM0NvZGU6ICdOUlUnLCBpc28yQ29kZTogJ05SJywgZGF0YXNldENvZGU6ICduci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOYXVydScsIGlzbzNDb2RlOiAnTlJVJywgaXNvMkNvZGU6ICdOUicsIGRhdGFzZXRDb2RlOiAnbnItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05lcGFsJywgaXNvM0NvZGU6ICdOUEwnLCBpc28yQ29kZTogJ05QJywgZGF0YXNldENvZGU6ICducC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOZXBhbCcsIGlzbzNDb2RlOiAnTlBMJywgaXNvMkNvZGU6ICdOUCcsIGRhdGFzZXRDb2RlOiAnbnAtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05ldGhlcmxhbmRzJywgaXNvM0NvZGU6ICdOTEQnLCBpc28yQ29kZTogJ05MJywgZGF0YXNldENvZGU6ICdubC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOZXRoZXJsYW5kcycsIGlzbzNDb2RlOiAnTkxEJywgaXNvMkNvZGU6ICdOTCcsIGRhdGFzZXRDb2RlOiAnbmwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05ldyBDYWxlZG9uaWEnLCBpc28zQ29kZTogJ05DTCcsIGlzbzJDb2RlOiAnTkMnLCBkYXRhc2V0Q29kZTogJ25jLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdOZXcgWmVhbGFuZCBEYXRhRnVzaW9uJywgaXNvM0NvZGU6ICdOWkwnLCBpc28yQ29kZTogJ05aJywgZGF0YXNldENvZGU6ICduei1hZGRpdGlvbmFsLWRhdGFmdXNpb24nLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlLCBzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ05ldyBaZWFsYW5kIFBvc3RhbCBBZGRyZXNzJywgaXNvM0NvZGU6ICdOWkwnLCBpc28yQ29kZTogJ05aJywgZGF0YXNldENvZGU6ICduei1hZGRyZXNzJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSwgc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOaWNhcmFndWEnLCBpc28zQ29kZTogJ05JQycsIGlzbzJDb2RlOiAnTkknLCBkYXRhc2V0Q29kZTogJ25pLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ05pY2FyYWd1YScsIGlzbzNDb2RlOiAnTklDJywgaXNvMkNvZGU6ICdOSScsIGRhdGFzZXRDb2RlOiAnbmktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05pZ2VyJywgaXNvM0NvZGU6ICdORVInLCBpc28yQ29kZTogJ05FJywgZGF0YXNldENvZGU6ICduZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOaWdlcicsIGlzbzNDb2RlOiAnTkVSJywgaXNvMkNvZGU6ICdORScsIGRhdGFzZXRDb2RlOiAnbmUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05pZ2VyaWEnLCBpc28zQ29kZTogJ05HQScsIGlzbzJDb2RlOiAnTkcnLCBkYXRhc2V0Q29kZTogJ25nLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ05pZ2VyaWEnLCBpc28zQ29kZTogJ05HQScsIGlzbzJDb2RlOiAnTkcnLCBkYXRhc2V0Q29kZTogJ25nLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdOaXVlJywgaXNvM0NvZGU6ICdOSVUnLCBpc28yQ29kZTogJ05VJywgZGF0YXNldENvZGU6ICdudS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOb3Jmb2xrIElzbGFuZCcsIGlzbzNDb2RlOiAnTkZLJywgaXNvMkNvZGU6ICdORicsIGRhdGFzZXRDb2RlOiAnbmYtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTm9yZm9sayBJc2xhbmQnLCBpc28zQ29kZTogJ05GSycsIGlzbzJDb2RlOiAnTkYnLCBkYXRhc2V0Q29kZTogJ25mLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdOb3J0aCBNYWNlZG9uaWEnLCBpc28zQ29kZTogJ01LRCcsIGlzbzJDb2RlOiAnTUsnLCBkYXRhc2V0Q29kZTogJ21rLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ05vcnRoIE1hY2Vkb25pYScsIGlzbzNDb2RlOiAnTUtEJywgaXNvMkNvZGU6ICdNSycsIGRhdGFzZXRDb2RlOiAnbWstYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcycsIGlzbzNDb2RlOiAnTU5QJywgaXNvMkNvZGU6ICdNUCcsIGRhdGFzZXRDb2RlOiAnbXAtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05vcndheScsIGlzbzNDb2RlOiAnTk9SJywgaXNvMkNvZGU6ICdOTycsIGRhdGFzZXRDb2RlOiAnbm8tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICd2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTm9yd2F5JywgaXNvM0NvZGU6ICdOT1InLCBpc28yQ29kZTogJ05PJywgZGF0YXNldENvZGU6ICduby1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnT21hbicsIGlzbzNDb2RlOiAnT01OJywgaXNvMkNvZGU6ICdPTScsIGRhdGFzZXRDb2RlOiAnb20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnT21hbicsIGlzbzNDb2RlOiAnT01OJywgaXNvMkNvZGU6ICdPTScsIGRhdGFzZXRDb2RlOiAnb20tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1Bha2lzdGFuJywgaXNvM0NvZGU6ICdQQUsnLCBpc28yQ29kZTogJ1BLJywgZGF0YXNldENvZGU6ICdway1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdQYWtpc3RhbicsIGlzbzNDb2RlOiAnUEFLJywgaXNvMkNvZGU6ICdQSycsIGRhdGFzZXRDb2RlOiAncGstYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1BhbGF1JywgaXNvM0NvZGU6ICdQTFcnLCBpc28yQ29kZTogJ1BXJywgZGF0YXNldENvZGU6ICdwdy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUGFsZXN0aW5lJywgaXNvM0NvZGU6ICdQU0UnLCBpc28yQ29kZTogJ1BTJywgZGF0YXNldENvZGU6ICdwcy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUGFuYW1hJywgaXNvM0NvZGU6ICdQQU4nLCBpc28yQ29kZTogJ1BBJywgZGF0YXNldENvZGU6ICdwYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdQYW5hbWEnLCBpc28zQ29kZTogJ1BBTicsIGlzbzJDb2RlOiAnUEEnLCBkYXRhc2V0Q29kZTogJ3BhLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdQYXB1YSBOZXcgR3VpbmVhJywgaXNvM0NvZGU6ICdQTkcnLCBpc28yQ29kZTogJ1BHJywgZGF0YXNldENvZGU6ICdwZy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdQYXB1YSBOZXcgR3VpbmVhJywgaXNvM0NvZGU6ICdQTkcnLCBpc28yQ29kZTogJ1BHJywgZGF0YXNldENvZGU6ICdwZy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUGFyYWd1YXknLCBpc28zQ29kZTogJ1BSWScsIGlzbzJDb2RlOiAnUFknLCBkYXRhc2V0Q29kZTogJ3B5LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1BhcmFndWF5JywgaXNvM0NvZGU6ICdQUlknLCBpc28yQ29kZTogJ1BZJywgZGF0YXNldENvZGU6ICdweS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUGVydScsIGlzbzNDb2RlOiAnUEVSJywgaXNvMkNvZGU6ICdQRScsIGRhdGFzZXRDb2RlOiAncGUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUGVydScsIGlzbzNDb2RlOiAnUEVSJywgaXNvMkNvZGU6ICdQRScsIGRhdGFzZXRDb2RlOiAncGUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1BoaWxpcHBpbmVzJywgaXNvM0NvZGU6ICdQSEwnLCBpc28yQ29kZTogJ1BIJywgZGF0YXNldENvZGU6ICdwaC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdQaGlsaXBwaW5lcycsIGlzbzNDb2RlOiAnUEhMJywgaXNvMkNvZGU6ICdQSCcsIGRhdGFzZXRDb2RlOiAncGgtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1BpdGNhaXJuIElzbGFuZHMnLCBpc28zQ29kZTogJ1BDTicsIGlzbzJDb2RlOiAnUE4nLCBkYXRhc2V0Q29kZTogJ3BuLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdQb2xhbmQnLCBpc28zQ29kZTogJ1BPTCcsIGlzbzJDb2RlOiAnUEwnLCBkYXRhc2V0Q29kZTogJ3BsLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1BvbGFuZCcsIGlzbzNDb2RlOiAnUE9MJywgaXNvMkNvZGU6ICdQTCcsIGRhdGFzZXRDb2RlOiAncGwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1BvcnR1Z2FsJywgaXNvM0NvZGU6ICdQUlQnLCBpc28yQ29kZTogJ1BUJywgZGF0YXNldENvZGU6ICdwdC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdQb3J0dWdhbCcsIGlzbzNDb2RlOiAnUFJUJywgaXNvMkNvZGU6ICdQVCcsIGRhdGFzZXRDb2RlOiAncHQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1FhdGFyJywgaXNvM0NvZGU6ICdRQVQnLCBpc28yQ29kZTogJ1FBJywgZGF0YXNldENvZGU6ICdxYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdRYXRhcicsIGlzbzNDb2RlOiAnUUFUJywgaXNvMkNvZGU6ICdRQScsIGRhdGFzZXRDb2RlOiAncWEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1JvbWFuaWEnLCBpc28zQ29kZTogJ1JPVScsIGlzbzJDb2RlOiAnUk8nLCBkYXRhc2V0Q29kZTogJ3JvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1JvbWFuaWEnLCBpc28zQ29kZTogJ1JPVScsIGlzbzJDb2RlOiAnUk8nLCBkYXRhc2V0Q29kZTogJ3JvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdSdXNzaWFuIEZlZGVyYXRpb24nLCBpc28zQ29kZTogJ1JVUycsIGlzbzJDb2RlOiAnUlUnLCBkYXRhc2V0Q29kZTogJ3J1LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1J1c3NpYW4gRmVkZXJhdGlvbicsIGlzbzNDb2RlOiAnUlVTJywgaXNvMkNvZGU6ICdSVScsIGRhdGFzZXRDb2RlOiAncnUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1J3YW5kYScsIGlzbzNDb2RlOiAnUldBJywgaXNvMkNvZGU6ICdSVycsIGRhdGFzZXRDb2RlOiAncnctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUndhbmRhJywgaXNvM0NvZGU6ICdSV0EnLCBpc28yQ29kZTogJ1JXJywgZGF0YXNldENvZGU6ICdydy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUsOpdW5pb24nLCBpc28zQ29kZTogJ1JFVScsIGlzbzJDb2RlOiAnUkUnLCBkYXRhc2V0Q29kZTogJ3JlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTYWludCBCYXJ0aMOpbGVteScsIGlzbzNDb2RlOiAnQkxNJywgaXNvMkNvZGU6ICdCTCcsIGRhdGFzZXRDb2RlOiAnYmwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1NhaW50IEhlbGVuYScsIGlzbzNDb2RlOiAnU0hOJywgaXNvMkNvZGU6ICdTSCcsIGRhdGFzZXRDb2RlOiAnc2gtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1NhaW50IEtpdHRzIGFuZCBOZXZpcycsIGlzbzNDb2RlOiAnS05BJywgaXNvMkNvZGU6ICdLTicsIGRhdGFzZXRDb2RlOiAna24tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FpbnQgS2l0dHMgYW5kIE5ldmlzJywgaXNvM0NvZGU6ICdLTkEnLCBpc28yQ29kZTogJ0tOJywgZGF0YXNldENvZGU6ICdrbi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FpbnQgTHVjaWEnLCBpc28zQ29kZTogJ0xDQScsIGlzbzJDb2RlOiAnTEMnLCBkYXRhc2V0Q29kZTogJ2xjLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uJywgaXNvM0NvZGU6ICdTUE0nLCBpc28yQ29kZTogJ1BNJywgZGF0YXNldENvZGU6ICdwbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXMnLCBpc28zQ29kZTogJ1ZDVCcsIGlzbzJDb2RlOiAnVkMnLCBkYXRhc2V0Q29kZTogJ3ZjLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1NhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzJywgaXNvM0NvZGU6ICdWQ1QnLCBpc28yQ29kZTogJ1ZDJywgZGF0YXNldENvZGU6ICd2Yy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2Ftb2EnLCBpc28zQ29kZTogJ1dTTScsIGlzbzJDb2RlOiAnV1MnLCBkYXRhc2V0Q29kZTogJ3dzLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1NhbW9hJywgaXNvM0NvZGU6ICdXU00nLCBpc28yQ29kZTogJ1dTJywgZGF0YXNldENvZGU6ICd3cy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FuIE1hcmlubycsIGlzbzNDb2RlOiAnU01SJywgaXNvMkNvZGU6ICdTTScsIGRhdGFzZXRDb2RlOiAnc20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FuIE1hcmlubycsIGlzbzNDb2RlOiAnU01SJywgaXNvMkNvZGU6ICdTTScsIGRhdGFzZXRDb2RlOiAnc20tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1NhbyBUb21lIGFuZCBQcmluY2lwZScsIGlzbzNDb2RlOiAnU1RQJywgaXNvMkNvZGU6ICdTVCcsIGRhdGFzZXRDb2RlOiAnc3QtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FvIFRvbWUgYW5kIFByaW5jaXBlJywgaXNvM0NvZGU6ICdTVFAnLCBpc28yQ29kZTogJ1NUJywgZGF0YXNldENvZGU6ICdzdC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2F1ZGkgQXJhYmlhJywgaXNvM0NvZGU6ICdTQVUnLCBpc28yQ29kZTogJ1NBJywgZGF0YXNldENvZGU6ICdzYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTYXVkaSBBcmFiaWEnLCBpc28zQ29kZTogJ1NBVScsIGlzbzJDb2RlOiAnU0EnLCBkYXRhc2V0Q29kZTogJ3NhLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTZW5lZ2FsJywgaXNvM0NvZGU6ICdTRU4nLCBpc28yQ29kZTogJ1NOJywgZGF0YXNldENvZGU6ICdzbi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTZW5lZ2FsJywgaXNvM0NvZGU6ICdTRU4nLCBpc28yQ29kZTogJ1NOJywgZGF0YXNldENvZGU6ICdzbi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2VyYmlhJywgaXNvM0NvZGU6ICdTUkInLCBpc28yQ29kZTogJ1JTJywgZGF0YXNldENvZGU6ICdycy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTZXJiaWEnLCBpc28zQ29kZTogJ1NSQicsIGlzbzJDb2RlOiAnUlMnLCBkYXRhc2V0Q29kZTogJ3JzLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTZXljaGVsbGVzJywgaXNvM0NvZGU6ICdTWUMnLCBpc28yQ29kZTogJ1NDJywgZGF0YXNldENvZGU6ICdzYy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTZXljaGVsbGVzJywgaXNvM0NvZGU6ICdTWUMnLCBpc28yQ29kZTogJ1NDJywgZGF0YXNldENvZGU6ICdzYy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2llcnJhIExlb25lJywgaXNvM0NvZGU6ICdTTEUnLCBpc28yQ29kZTogJ1NMJywgZGF0YXNldENvZGU6ICdzbC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTaWVycmEgTGVvbmUnLCBpc28zQ29kZTogJ1NMRScsIGlzbzJDb2RlOiAnU0wnLCBkYXRhc2V0Q29kZTogJ3NsLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTaW5nYXBvcmUnLCBpc28zQ29kZTogJ1NHUCcsIGlzbzJDb2RlOiAnU0cnLCBkYXRhc2V0Q29kZTogJ3NnLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlLCBzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1NpbnQgTWFhcnRlbicsIGlzbzNDb2RlOiAnU1hNJywgaXNvMkNvZGU6ICdTWCcsIGRhdGFzZXRDb2RlOiAnc3gtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2ludCBNYWFydGVuJywgaXNvM0NvZGU6ICdTWE0nLCBpc28yQ29kZTogJ1NYJywgZGF0YXNldENvZGU6ICdzeC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2xvdmFraWEnLCBpc28zQ29kZTogJ1NWSycsIGlzbzJDb2RlOiAnU0snLCBkYXRhc2V0Q29kZTogJ3NrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1Nsb3Zha2lhJywgaXNvM0NvZGU6ICdTVksnLCBpc28yQ29kZTogJ1NLJywgZGF0YXNldENvZGU6ICdzay1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2xvdmVuaWEnLCBpc28zQ29kZTogJ1NWTicsIGlzbzJDb2RlOiAnU0knLCBkYXRhc2V0Q29kZTogJ3NpLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1Nsb3ZlbmlhJywgaXNvM0NvZGU6ICdTVk4nLCBpc28yQ29kZTogJ1NJJywgZGF0YXNldENvZGU6ICdzaS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU29sb21vbiBJc2xhbmRzJywgaXNvM0NvZGU6ICdTTEInLCBpc28yQ29kZTogJ1NCJywgZGF0YXNldENvZGU6ICdzYi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb2xvbW9uIElzbGFuZHMnLCBpc28zQ29kZTogJ1NMQicsIGlzbzJDb2RlOiAnU0InLCBkYXRhc2V0Q29kZTogJ3NiLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb21hbGlhJywgaXNvM0NvZGU6ICdTT00nLCBpc28yQ29kZTogJ1NPJywgZGF0YXNldENvZGU6ICdzby1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb21hbGlhJywgaXNvM0NvZGU6ICdTT00nLCBpc28yQ29kZTogJ1NPJywgZGF0YXNldENvZGU6ICdzby1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU291dGggQWZyaWNhJywgaXNvM0NvZGU6ICdaQUYnLCBpc28yQ29kZTogJ1pBJywgZGF0YXNldENvZGU6ICd6YS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb3V0aCBBZnJpY2EnLCBpc28zQ29kZTogJ1pBRicsIGlzbzJDb2RlOiAnWkEnLCBkYXRhc2V0Q29kZTogJ3phLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcycsIGlzbzNDb2RlOiAnU0dTJywgaXNvMkNvZGU6ICdHUycsIGRhdGFzZXRDb2RlOiAnZ3MtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1NvdXRoIFN1ZGFuJywgaXNvM0NvZGU6ICdTU0QnLCBpc28yQ29kZTogJ1NTJywgZGF0YXNldENvZGU6ICdzcy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb3V0aCBTdWRhbicsIGlzbzNDb2RlOiAnU1NEJywgaXNvMkNvZGU6ICdTUycsIGRhdGFzZXRDb2RlOiAnc3MtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1NwYWluJywgaXNvM0NvZGU6ICdFU1AnLCBpc28yQ29kZTogJ0VTJywgZGF0YXNldENvZGU6ICdlcy1hZGRyZXNzJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duJ30sXHJcbiAge2NvdW50cnk6ICdTcGFpbicsIGlzbzNDb2RlOiAnRVNQJywgaXNvMkNvZGU6ICdFUycsIGRhdGFzZXRDb2RlOiAnZXMtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICd2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU3BhaW4nLCBpc28zQ29kZTogJ0VTUCcsIGlzbzJDb2RlOiAnRVMnLCBkYXRhc2V0Q29kZTogJ2VzLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTcmkgTGFua2EnLCBpc28zQ29kZTogJ0xLQScsIGlzbzJDb2RlOiAnTEsnLCBkYXRhc2V0Q29kZTogJ2xrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1N1ZGFuJywgaXNvM0NvZGU6ICdTRE4nLCBpc28yQ29kZTogJ1NEJywgZGF0YXNldENvZGU6ICdzZC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTdWRhbicsIGlzbzNDb2RlOiAnU0ROJywgaXNvMkNvZGU6ICdTRCcsIGRhdGFzZXRDb2RlOiAnc2QtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1N1cmluYW1lJywgaXNvM0NvZGU6ICdTVVInLCBpc28yQ29kZTogJ1NSJywgZGF0YXNldENvZGU6ICdzci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTdXJpbmFtZScsIGlzbzNDb2RlOiAnU1VSJywgaXNvMkNvZGU6ICdTUicsIGRhdGFzZXRDb2RlOiAnc3ItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1N2YWxiYXJkIGFuZCBKYW4gTWF5ZW4gSXNsYW5kcycsIGlzbzNDb2RlOiAnU0pNJywgaXNvMkNvZGU6ICdTSicsIGRhdGFzZXRDb2RlOiAnc2otYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1N3YXppbGFuZCAoRXN3YXRpbmkpJywgaXNvM0NvZGU6ICdTV1onLCBpc28yQ29kZTogJ1NaJywgZGF0YXNldENvZGU6ICdzei1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTd2F6aWxhbmQgKEVzd2F0aW5pKScsIGlzbzNDb2RlOiAnU1daJywgaXNvMkNvZGU6ICdTWicsIGRhdGFzZXRDb2RlOiAnc3otYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1N3ZWRlbicsIGlzbzNDb2RlOiAnU1dFJywgaXNvMkNvZGU6ICdTRScsIGRhdGFzZXRDb2RlOiAnc2UtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxyXG4gIHtjb3VudHJ5OiAnU3dlZGVuJywgaXNvM0NvZGU6ICdTV0UnLCBpc28yQ29kZTogJ1NFJywgZGF0YXNldENvZGU6ICdzZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3ZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTd2VkZW4nLCBpc28zQ29kZTogJ1NXRScsIGlzbzJDb2RlOiAnU0UnLCBkYXRhc2V0Q29kZTogJ3NlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTd2l0emVybGFuZCcsIGlzbzNDb2RlOiAnQ0hFJywgaXNvMkNvZGU6ICdDSCcsIGRhdGFzZXRDb2RlOiAnY2gtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxyXG4gIHtjb3VudHJ5OiAnU3dpdHplcmxhbmQnLCBpc28zQ29kZTogJ0NIRScsIGlzbzJDb2RlOiAnQ0gnLCBkYXRhc2V0Q29kZTogJ2NoLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAndmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1N3aXR6ZXJsYW5kJywgaXNvM0NvZGU6ICdDSEUnLCBpc28yQ29kZTogJ0NIJywgZGF0YXNldENvZGU6ICdjaC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU3lyaWEnLCBpc28zQ29kZTogJ1NZUicsIGlzbzJDb2RlOiAnU1knLCBkYXRhc2V0Q29kZTogJ3N5LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1N5cmlhJywgaXNvM0NvZGU6ICdTWVInLCBpc28yQ29kZTogJ1NZJywgZGF0YXNldENvZGU6ICdzeS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVGFpd2FuJywgaXNvM0NvZGU6ICdUV04nLCBpc28yQ29kZTogJ1RXJywgZGF0YXNldENvZGU6ICd0dy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdUYWl3YW4nLCBpc28zQ29kZTogJ1RXTicsIGlzbzJDb2RlOiAnVFcnLCBkYXRhc2V0Q29kZTogJ3R3LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdUYWppa2lzdGFuJywgaXNvM0NvZGU6ICdUSksnLCBpc28yQ29kZTogJ1RKJywgZGF0YXNldENvZGU6ICd0ai1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdUYWppa2lzdGFuJywgaXNvM0NvZGU6ICdUSksnLCBpc28yQ29kZTogJ1RKJywgZGF0YXNldENvZGU6ICd0ai1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVGFuemFuaWEnLCBpc28zQ29kZTogJ1RaQScsIGlzbzJDb2RlOiAnVFonLCBkYXRhc2V0Q29kZTogJ3R6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1RhbnphbmlhJywgaXNvM0NvZGU6ICdUWkEnLCBpc28yQ29kZTogJ1RaJywgZGF0YXNldENvZGU6ICd0ei1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVGhhaWxhbmQnLCBpc28zQ29kZTogJ1RIQScsIGlzbzJDb2RlOiAnVEgnLCBkYXRhc2V0Q29kZTogJ3RoLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1RoYWlsYW5kJywgaXNvM0NvZGU6ICdUSEEnLCBpc28yQ29kZTogJ1RIJywgZGF0YXNldENvZGU6ICd0aC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVGltb3ItTGVzdGUnLCBpc28zQ29kZTogJ1RMUycsIGlzbzJDb2RlOiAnVEwnLCBkYXRhc2V0Q29kZTogJ3RsLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1RpbW9yLUxlc3RlJywgaXNvM0NvZGU6ICdUTFMnLCBpc28yQ29kZTogJ1RMJywgZGF0YXNldENvZGU6ICd0bC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVG9nbycsIGlzbzNDb2RlOiAnVEdPJywgaXNvMkNvZGU6ICdURycsIGRhdGFzZXRDb2RlOiAndGctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVG9nbycsIGlzbzNDb2RlOiAnVEdPJywgaXNvMkNvZGU6ICdURycsIGRhdGFzZXRDb2RlOiAndGctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1Rva2VsYXUnLCBpc28zQ29kZTogJ1RLTCcsIGlzbzJDb2RlOiAnVEsnLCBkYXRhc2V0Q29kZTogJ3RrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1Rva2VsYXUnLCBpc28zQ29kZTogJ1RLTCcsIGlzbzJDb2RlOiAnVEsnLCBkYXRhc2V0Q29kZTogJ3RrLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdUb25nYScsIGlzbzNDb2RlOiAnVE9OJywgaXNvMkNvZGU6ICdUTycsIGRhdGFzZXRDb2RlOiAndG8tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVG9uZ2EnLCBpc28zQ29kZTogJ1RPTicsIGlzbzJDb2RlOiAnVE8nLCBkYXRhc2V0Q29kZTogJ3RvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdUcmluaWRhZCBhbmQgVG9iYWdvJywgaXNvM0NvZGU6ICdUVE8nLCBpc28yQ29kZTogJ1RUJywgZGF0YXNldENvZGU6ICd0dC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdUcmluaWRhZCBhbmQgVG9iYWdvJywgaXNvM0NvZGU6ICdUVE8nLCBpc28yQ29kZTogJ1RUJywgZGF0YXNldENvZGU6ICd0dC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVHVuaXNpYScsIGlzbzNDb2RlOiAnVFVOJywgaXNvMkNvZGU6ICdUTicsIGRhdGFzZXRDb2RlOiAndG4tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVHVuaXNpYScsIGlzbzNDb2RlOiAnVFVOJywgaXNvMkNvZGU6ICdUTicsIGRhdGFzZXRDb2RlOiAndG4tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1R1cmtleScsIGlzbzNDb2RlOiAnVFVSJywgaXNvMkNvZGU6ICdUUicsIGRhdGFzZXRDb2RlOiAndHItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVHVya2V5JywgaXNvM0NvZGU6ICdUVVInLCBpc28yQ29kZTogJ1RSJywgZGF0YXNldENvZGU6ICd0ci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVHVya2lzaCBSZXB1YmxpYyBvZiBOb3J0aGVybiBDeXBydXMnLCBpc28zQ29kZTogJ05DWScsIGlzbzJDb2RlOiAnQ1knLCBkYXRhc2V0Q29kZTogJ255LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdUdXJrbWVuaXN0YW4nLCBpc28zQ29kZTogJ1RLTScsIGlzbzJDb2RlOiAnVE0nLCBkYXRhc2V0Q29kZTogJ3RtLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1R1cmttZW5pc3RhbicsIGlzbzNDb2RlOiAnVEtNJywgaXNvMkNvZGU6ICdUTScsIGRhdGFzZXRDb2RlOiAndG0tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1R1cmtzIGFuZCBDYWljb3MgSXNsYW5kcycsIGlzbzNDb2RlOiAnVENBJywgaXNvMkNvZGU6ICdUQycsIGRhdGFzZXRDb2RlOiAndGMtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1R1dmFsdScsIGlzbzNDb2RlOiAnVFVWJywgaXNvMkNvZGU6ICdUVicsIGRhdGFzZXRDb2RlOiAndHYtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVHV2YWx1JywgaXNvM0NvZGU6ICdUVVYnLCBpc28yQ29kZTogJ1RWJywgZGF0YXNldENvZGU6ICd0di1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVWdhbmRhJywgaXNvM0NvZGU6ICdVR0EnLCBpc28yQ29kZTogJ1VHJywgZGF0YXNldENvZGU6ICd1Zy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdVZ2FuZGEnLCBpc28zQ29kZTogJ1VHQScsIGlzbzJDb2RlOiAnVUcnLCBkYXRhc2V0Q29kZTogJ3VnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdVa3JhaW5lJywgaXNvM0NvZGU6ICdVS1InLCBpc28yQ29kZTogJ1VBJywgZGF0YXNldENvZGU6ICd1YS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdVa3JhaW5lJywgaXNvM0NvZGU6ICdVS1InLCBpc28yQ29kZTogJ1VBJywgZGF0YXNldENvZGU6ICd1YS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMnLCBpc28zQ29kZTogJ0FSRScsIGlzbzJDb2RlOiAnQUUnLCBkYXRhc2V0Q29kZTogJ2FlLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBBcmFiIEVtaXJhdGVzJywgaXNvM0NvZGU6ICdBUkUnLCBpc28yQ29kZTogJ0FFJywgZGF0YXNldENvZGU6ICdhZS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEtpbmdkb20nLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogWydnYi1hZGRyZXNzJ10sIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tJywgaXNvM0NvZGU6ICdHQlInLCBpc28yQ29kZTogJ0dCJywgZGF0YXNldENvZGU6IFsnZ2ItYWRkaXRpb25hbC1idXNpbmVzcycsICdnYi1hZGRpdGlvbmFsLW11bHRpcGxlcmVzaWRlbmNlJywgJ2diLWFkZGl0aW9uYWwtbm90eWV0YnVpbHQnXSwgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEFkZHJlc3NCYXNlIFByZW1pdW0nLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogJ2diLWFkZHJlc3MtYWRkcmVzc2Jhc2UnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlLCBsb29rdXAnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEFkZHJlc3NCYXNlIFByZW1pdW0gd2l0aCBJc2xhbmRzJywgaXNvM0NvZGU6ICdHQlInLCBpc28yQ29kZTogJ0dCJywgZGF0YXNldENvZGU6ICdnYi1hZGRpdGlvbmFsLWFkZHJlc3NiYXNlaXNsYW5kcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUsIGxvb2t1cCd9LFxyXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEtpbmdkb20gQnVzaW5lc3MgTmFtZXMnLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogJ2diLWFkZGl0aW9uYWwtYnVzaW5lc3MnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24nfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEVsZWN0cmljaXR5JywgaXNvM0NvZGU6ICdHQlInLCBpc28yQ29kZTogJ0dCJywgZGF0YXNldENvZGU6ICdnYi1hZGRpdGlvbmFsLWVsZWN0cmljaXR5Jywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSwgbG9va3VwJ30sXHJcbiAge2NvdW50cnk6ICdVbml0ZWQgS2luZ2RvbSBHYXMnLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogJ2diLWFkZGl0aW9uYWwtZ2FzJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSwgbG9va3VwJ30sXHJcbiAge2NvdW50cnk6ICdVbml0ZWQgS2luZ2RvbSBTdHJlZXQgTGV2ZWwnLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogJ2diLWFkZHJlc3Mtc3RyZWV0bGV2ZWwnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24nfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEV4dGVuZGVkIEJ1c2luZXNzJywgaXNvM0NvZGU6ICdHQlInLCBpc28yQ29kZTogJ0dCJywgZGF0YXNldENvZGU6ICdnYi1hZGRpdGlvbmFsLWJ1c2luZXNzZXh0ZW5kZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlLCBsb29rdXAnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEN5bXJhZWcgKFdlbHNoIExhbmd1YWdlKSBQb3N0YWwgQWRkcmVzcycsIGlzbzNDb2RlOiAnR0JSJywgaXNvMkNvZGU6ICdHQicsIGRhdGFzZXRDb2RlOiAnZ2ItYWRkcmVzcy13YWxlcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYScsIGlzbzNDb2RlOiAnVVNBJywgaXNvMkNvZGU6ICdVUycsIGRhdGFzZXRDb2RlOiAndXMtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVXJ1Z3VheScsIGlzbzNDb2RlOiAnVVJZJywgaXNvMkNvZGU6ICdVWScsIGRhdGFzZXRDb2RlOiAndXktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVXJ1Z3VheScsIGlzbzNDb2RlOiAnVVJZJywgaXNvMkNvZGU6ICdVWScsIGRhdGFzZXRDb2RlOiAndXktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1V6YmVraXN0YW4nLCBpc28zQ29kZTogJ1VaQicsIGlzbzJDb2RlOiAnVVonLCBkYXRhc2V0Q29kZTogJ3V6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1V6YmVraXN0YW4nLCBpc28zQ29kZTogJ1VaQicsIGlzbzJDb2RlOiAnVVonLCBkYXRhc2V0Q29kZTogJ3V6LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdWYW51YXR1JywgaXNvM0NvZGU6ICdWVVQnLCBpc28yQ29kZTogJ1ZVJywgZGF0YXNldENvZGU6ICd2dS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdWYW51YXR1JywgaXNvM0NvZGU6ICdWVVQnLCBpc28yQ29kZTogJ1ZVJywgZGF0YXNldENvZGU6ICd2dS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVmF0aWNhbiBDaXR5IChIb2x5IFNlZSknLCBpc28zQ29kZTogJ1ZBVCcsIGlzbzJDb2RlOiAnVkEnLCBkYXRhc2V0Q29kZTogJ3ZhLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1ZhdGljYW4gQ2l0eSAoSG9seSBTZWUpJywgaXNvM0NvZGU6ICdWQVQnLCBpc28yQ29kZTogJ1ZBJywgZGF0YXNldENvZGU6ICd2YS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVmVuZXp1ZWxhJywgaXNvM0NvZGU6ICdWRU4nLCBpc28yQ29kZTogJ1ZFJywgZGF0YXNldENvZGU6ICd2ZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdWZW5lenVlbGEnLCBpc28zQ29kZTogJ1ZFTicsIGlzbzJDb2RlOiAnVkUnLCBkYXRhc2V0Q29kZTogJ3ZlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdWaWV0IE5hbScsIGlzbzNDb2RlOiAnVk5NJywgaXNvMkNvZGU6ICdWTicsIGRhdGFzZXRDb2RlOiAndm4tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVmlldCBOYW0nLCBpc28zQ29kZTogJ1ZOTScsIGlzbzJDb2RlOiAnVk4nLCBkYXRhc2V0Q29kZTogJ3ZuLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdWaXJnaW4gSXNsYW5kcywgQnJpdGlzaCcsIGlzbzNDb2RlOiAnVkdCJywgaXNvMkNvZGU6ICdWRycsIGRhdGFzZXRDb2RlOiAndmctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1ZpcmdpbiBJc2xhbmRzLCBVLlMuJywgaXNvM0NvZGU6ICdWSVInLCBpc28yQ29kZTogJ1ZJJywgZGF0YXNldENvZGU6ICd2aS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcycsIGlzbzNDb2RlOiAnV0xGJywgaXNvMkNvZGU6ICdXRicsIGRhdGFzZXRDb2RlOiAnd2YtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1dlc3Rlcm4gU2FoYXJhJywgaXNvM0NvZGU6ICdFU0gnLCBpc28yQ29kZTogJ0VIJywgZGF0YXNldENvZGU6ICdlaC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdXZXN0ZXJuIFNhaGFyYScsIGlzbzNDb2RlOiAnRVNIJywgaXNvMkNvZGU6ICdFSCcsIGRhdGFzZXRDb2RlOiAnZWgtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1llbWVuJywgaXNvM0NvZGU6ICdZRU0nLCBpc28yQ29kZTogJ1lFJywgZGF0YXNldENvZGU6ICd5ZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdZZW1lbicsIGlzbzNDb2RlOiAnWUVNJywgaXNvMkNvZGU6ICdZRScsIGRhdGFzZXRDb2RlOiAneWUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1phbWJpYScsIGlzbzNDb2RlOiAnWk1CJywgaXNvMkNvZGU6ICdaTScsIGRhdGFzZXRDb2RlOiAnem0tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnWmFtYmlhJywgaXNvM0NvZGU6ICdaTUInLCBpc28yQ29kZTogJ1pNJywgZGF0YXNldENvZGU6ICd6bS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnWmltYmFid2UnLCBpc28zQ29kZTogJ1pXRScsIGlzbzJDb2RlOiAnWlcnLCBkYXRhc2V0Q29kZTogJ3p3LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1ppbWJhYndlJywgaXNvM0NvZGU6ICdaV0UnLCBpc28yQ29kZTogJ1pXJywgZGF0YXNldENvZGU6ICd6dy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9XHJcbl07IiwiLy8gVHJhbnNsYXRpb25zXHJcbmV4cG9ydCBjb25zdCB0cmFuc2xhdGlvbnMgPSB7XHJcbiAgLy8gbGFuZ3VhZ2UgLyBjb3VudHJ5IC8gcHJvcGVydHlcclxuICBlbjoge1xyXG4gICAgZ2JyOiB7XHJcbiAgICAgIGxvY2FsaXR5OiAnVG93bi9DaXR5JyxcclxuICAgICAgcmVnaW9uOiAnQ291bnR5JyxcclxuICAgICAgcG9zdGFsX2NvZGU6ICdQb3N0IGNvZGUnXHJcbiAgICB9LFxyXG4gICAgdXNhOiB7XHJcbiAgICAgIGxvY2FsaXR5OiAnQ2l0eScsXHJcbiAgICAgIHJlZ2lvbjogJ1N0YXRlJyxcclxuICAgICAgcG9zdGFsX2NvZGU6ICdaSVAgY29kZSdcclxuICAgIH1cclxuICB9XHJcbiAgLy8gQWRkIG90aGVyIGxhbmd1YWdlcyBiZWxvd1xyXG59OyIsImV4cG9ydCBjbGFzcyBQaWNrbGlzdCB7XHJcbiAgaXRlbXM6IFBpY2tsaXN0SXRlbVtdO1xyXG4gIGN1cnJlbnRJdGVtO1xyXG4gIGxpc3Q6IEhUTUxEaXZFbGVtZW50O1xyXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XHJcbiAgc2l6ZSA9IDA7XHJcbiAgbWF4U3VnZ2VzdGlvbnMgPSAyNTtcclxuICBzaG93OiAoaXRlbXM6IFNlYXJjaFJlc3BvbnNlKSA9PiB2b2lkO1xyXG4gIGhpZGU6ICgpID0+IHZvaWQ7XHJcbiAgaGFuZGxlRW1wdHlQaWNrbGlzdDogKGl0ZW1zOiBTZWFyY2hSZXNwb25zZSkgPT4gdm9pZDtcclxuICBoYW5kbGVFbXB0eVBpY2tsaXN0Q2FsbGJhY2s6ICgpID0+IHZvaWQ7XHJcbiAgcmVmaW5lOiBSZWZpbmVtZW50O1xyXG4gIHVzZUFkZHJlc3NFbnRlcmVkOiBVc2VBZGRyZXNzRW50ZXJlZDtcclxuICBjcmVhdGVMaXN0OiAoKSA9PiBIVE1MRGl2RWxlbWVudDtcclxuICBjcmVhdGVMaXN0SXRlbTogKGl0ZW06IFBpY2tsaXN0SXRlbSkgPT4gSFRNTERpdkVsZW1lbnQ7XHJcbiAgdGFiQ291bnQ6IG51bWJlcjtcclxuICByZXNldFRhYkNvdW50OiAoKSA9PiB2b2lkO1xyXG4gIGtleXVwOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQ7XHJcbiAgYWRkTWF0Y2hpbmdFbXBoYXNpczogKGl0ZW0pID0+IHN0cmluZztcclxuICBsaXN0ZW46IChyb3cpID0+IHZvaWQ7XHJcbiAgY2hlY2tFbnRlcjogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xyXG4gIHBpY2s6IChpdGVtKSA9PiB2b2lkO1xyXG4gIHNjcm9sbEludG9WaWV3SWZOZWVkZWQ6ICgpID0+IHZvaWQ7XHJcbiAgZGlzcGxheVN1Z2dlc3Rpb25zSGVhZGVyOiAoKSA9PiB2b2lkO1xyXG4gIGRpc3BsYXlVc2VBZGRyZXNzRW50ZXJlZEZvb3RlcjogKCkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkZHJlc3NWYWxpZGF0aW9uUmVzdWx0IHtcclxuICBmb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyO1xyXG4gIGxhc3RBZGRyZXNzRmllbGQ7XHJcbiAgZ2VuZXJhdGVBZGRyZXNzTGluZVJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHNob3c6IChkYXRhKSA9PiB2b2lkO1xyXG4gIGhpZGU6ICgpID0+IHZvaWQ7XHJcbiAgY3JlYXRlQWRkcmVzc0xpbmU6IENyZWF0ZUFkZHJlc3NMaW5lO1xyXG4gIGNyZWF0ZUZvcm1hdHRlZEFkZHJlc3NDb250YWluZXI6ICgpID0+IHZvaWQ7XHJcbiAgY3JlYXRlSGVhZGluZzogKCkgPT4gdm9pZDtcclxuICB1cGRhdGVIZWFkaW5nOiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIGNhbGN1bGF0ZUlmQWRkcmVzc0xpbmVHZW5lcmF0aW9uUmVxdWlyZWQ6ICgpID0+IHZvaWQ7XHJcbiAgdXBkYXRlQWRkcmVzc0xpbmU6IChrZXk6IHN0cmluZywgYWRkcmVzc0xpbmVPYmplY3QsIGNsYXNzTmFtZTogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIHVwZGF0ZUxhYmVsOiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZztcclxuICBjcmVhdGVTZWFyY2hBZ2Fpbkxpbms6ICgpID0+IHZvaWQ7XHJcbiAgcmVuZGVySW5wdXRMaXN0OiAoaW5wdXRBcnJheSkgPT4gdm9pZDtcclxuICBoYW5kbGVWYWxpZGF0ZVJlc3BvbnNlOiAocmVzcG9uc2U6IFNlYXJjaFJlc3BvbnNlKSA9PiB2b2lkO1xyXG59XHJcblxyXG5jbGFzcyBDcmVhdGVBZGRyZXNzTGluZSB7XHJcbiAgaW5wdXQ6IChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZywgY2xhc3NOYW1lOiBzdHJpbmcpID0+IEhUTUxEaXZFbGVtZW50O1xyXG4gIGxhYmVsOiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSZXNwb25zZSB7XHJcbiAgcmVzdWx0Pzoge1xyXG4gICAgc3VnZ2VzdGlvbnM6IFBpY2tsaXN0SXRlbVtdO1xyXG4gICAgc3VnZ2VzdGlvbnNfcHJvbXB0Pzogc3RyaW5nO1xyXG4gICAgc3VnZ2VzdGlvbnNfa2V5Pzogc3RyaW5nO1xyXG4gICAgY29uZmlkZW5jZTogc3RyaW5nO1xyXG4gICAgYWRkcmVzcz86IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQaWNrbGlzdEl0ZW0ge1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgbWF0Y2hlZD86IG51bWJlcltdW107XHJcbiAgZ2xvYmFsX2FkZHJlc3Nfa2V5Pzogc3RyaW5nO1xyXG4gIGFkZGl0aW9uYWxfYXR0cmlidXRlcz86IHtuYW1lOiBzdHJpbmcsIFZhbHVlOiBzdHJpbmd9W107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVc2VBZGRyZXNzRW50ZXJlZCB7XHJcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgY3JlYXRlOiAoY29uZmlkZW5jZTogc3RyaW5nKSA9PiBIVE1MRGl2RWxlbWVudDtcclxuICBkZXN0cm95OiAoKSA9PiB2b2lkO1xyXG4gIGNsaWNrOiAoKSA9PiB2b2lkO1xyXG4gIGZvcm1hdE1hbnVhbEFkZHJlc3NMaW5lOiAobGluZXMsIGkpID0+IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVmaW5lbWVudCB7XHJcbiAgZWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcclxuICBpc05lZWRlZDogKHJlc3BvbnNlOiBTZWFyY2hSZXNwb25zZSkgPT4gYm9vbGVhbjtcclxuICBjcmVhdGVJbnB1dDogKHByb21wdDogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4gdm9pZDtcclxuICBlbnRlcjogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlYXJjaFNwaW5uZXIge1xyXG4gIHNob3c6ICgpID0+IHZvaWQ7XHJcbiAgaGlkZTogKCkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBvd2VyZWRCeUxvZ28ge1xyXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gIGNyZWF0ZTogKHBpY2tsaXN0KSA9PiBIVE1MRGl2RWxlbWVudDtcclxuICBkZXN0cm95OiAocGlja2xpc3QpID0+IHZvaWQ7XHJcbiAgc3ZnOiBzdHJpbmc7XHJcbn0iLCJpbXBvcnQgRXZlbnRGYWN0b3J5IGZyb20gJy4vZXZlbnQtZmFjdG9yeSc7XHJcbmltcG9ydCBSZXF1ZXN0IGZyb20gJy4vcmVxdWVzdCc7XHJcbmltcG9ydCB7QWRkcmVzc1NlYXJjaE9wdGlvbnMsIEFkZHJlc3NWYWxpZGF0aW9uTW9kZSwgZGVmYXVsdHN9IGZyb20gJy4vc2VhcmNoLW9wdGlvbnMnO1xyXG5pbXBvcnQge2RhdGFzZXRDb2Rlc30gZnJvbSAnLi9kYXRhc2V0cy1jb2Rlcyc7XHJcbmltcG9ydCB7dHJhbnNsYXRpb25zfSBmcm9tICcuL3RyYW5zbGF0aW9ucyc7XHJcbmltcG9ydCB7QWRkcmVzc1ZhbGlkYXRpb25SZXN1bHQsIFBpY2tsaXN0LCBQaWNrbGlzdEl0ZW0sIFBvd2VyZWRCeUxvZ28sIFNlYXJjaFJlc3BvbnNlfSBmcm9tICcuL2NsYXNzLXR5cGVzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFkZHJlc3NWYWxpZGF0aW9uIHtcclxuICBwdWJsaWMgb3B0aW9uczogQWRkcmVzc1NlYXJjaE9wdGlvbnM7XHJcbiAgcHVibGljIHNlYXJjaFR5cGU6IEFkZHJlc3NWYWxpZGF0aW9uTW9kZTtcclxuICBwdWJsaWMgZXZlbnRzO1xyXG4gIHB1YmxpYyByZXF1ZXN0OiBSZXF1ZXN0O1xyXG5cclxuICBwcml2YXRlIGJhc2VVcmwgPSAnaHR0cHM6Ly9hcGkuZXhwZXJpYW5hcGVydHVyZS5pby8nO1xyXG4gIHByaXZhdGUgc2VhcmNoRW5kcG9pbnQgPSAnYWRkcmVzcy9zZWFyY2gvdjEnO1xyXG4gIHByaXZhdGUgdmFsaWRhdGVFbmRwb2ludCA9ICdhZGRyZXNzL3ZhbGlkYXRlL3YxJztcclxuICBwcml2YXRlIHByb21wdHNldEVuZHBvaW50ID0gJ2FkZHJlc3MvcHJvbXB0c2V0cy92MSc7XHJcbiAgcHJpdmF0ZSBzdGVwSW5FbmRwb2ludCA9ICdhZGRyZXNzL3N1Z2dlc3Rpb25zL3N0ZXBpbi92MSc7XHJcbiAgcHJpdmF0ZSByZWZpbmVFbmRwb2ludCA9ICdhZGRyZXNzL3N1Z2dlc3Rpb25zL3JlZmluZS92MSc7XHJcbiAgcHJpdmF0ZSBlbnJpY2htZW50RW5kcG9pbnQgPSAnZW5yaWNobWVudC92Mic7XHJcblxyXG4gIHByaXZhdGUgcGlja2xpc3Q6IFBpY2tsaXN0O1xyXG4gIHByaXZhdGUgaW5wdXRzOiBIVE1MSW5wdXRFbGVtZW50W107XHJcbiAgcHJpdmF0ZSBsYXN0U2VhcmNoVGVybTogc3RyaW5nO1xyXG4gIHByaXZhdGUgY3VycmVudFNlYXJjaFRlcm06IHN0cmluZztcclxuICBwcml2YXRlIGN1cnJlbnRDb3VudHJ5Q29kZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgY3VycmVudERhdGFTZXQ6IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgaGFzU2VhcmNoSW5wdXRCZWVuUmVzZXQ6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBjb3VudHJ5Q29kZU1hcHBpbmc7XHJcbiAgcHJpdmF0ZSBsb29rdXBGbjtcclxuICBwcml2YXRlIGtleVVwRm47XHJcbiAgcHJpdmF0ZSBjaGVja1RhYkZuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBBZGRyZXNzU2VhcmNoT3B0aW9ucykge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRPcHRpb25zKG9wdGlvbnMpO1xyXG5cclxuICAgIHRoaXMuZXZlbnRzID0gbmV3IEV2ZW50RmFjdG9yeSgpO1xyXG5cclxuICAgIHRoaXMuc2V0dXAoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUb2tlbih0b2tlbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9wdGlvbnMudG9rZW4gPSB0b2tlbjtcclxuICAgIHRoaXMuc2V0dXAoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTZWFyY2hUeXBlKHNlYXJjaFR5cGU6IEFkZHJlc3NWYWxpZGF0aW9uTW9kZSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hUeXBlID0gc2VhcmNoVHlwZTtcclxuICAgIHRoaXMuZ2xvYmFsUmVzZXQoKTtcclxuICAgIHRoaXMuc2V0SW5wdXRzKCk7XHJcbiAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LXNlYXJjaC10eXBlLWNoYW5nZScsIHNlYXJjaFR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEVucmljaG1lbnREYXRhKGdsb2JhbEFkZHJlc3NLZXk6IHN0cmluZykge1xyXG4gICAgaWYgKGdsb2JhbEFkZHJlc3NLZXkpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICBjb3VudHJ5X2lzbzogdGhpcy5jdXJyZW50Q291bnRyeUNvZGUsXHJcbiAgICAgICAga2V5czoge1xyXG4gICAgICAgICAgZ2xvYmFsX2FkZHJlc3Nfa2V5OiBnbG9iYWxBZGRyZXNzS2V5XHJcbiAgICAgICAgfSxcclxuICAgICAgICBhdHRyaWJ1dGVzOiB7XHJcbiAgICAgICAgICBnZW9jb2RlczogWydsYXRpdHVkZScsICdsb25naXR1ZGUnLCAnbWF0Y2hfbGV2ZWwnXVxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgdGhpcy5ldmVudHMudHJpZ2dlcigncHJlLWVucmljaG1lbnQnKTtcclxuICAgICAgdGhpcy5yZXF1ZXN0LnNlbmQodGhpcy5iYXNlVXJsICsgdGhpcy5lbnJpY2htZW50RW5kcG9pbnQsICdQT1NUJywgdGhpcy5oYW5kbGVFbnJpY2htZW50UmVzdWx0LmJpbmQodGhpcyksIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXAoKTogdm9pZCB7XHJcbiAgICAvLyBHZXQgdG9rZW4gYW5kIHByb2NlZWQgaWYgaXQncyBwcmVzZW50XHJcbiAgICBpZiAodGhpcy50b2tlbikge1xyXG4gICAgICB0aGlzLmhhc1NlYXJjaElucHV0QmVlblJlc2V0ID0gdHJ1ZTtcclxuXHJcbiAgICAgIC8vIEluc3RhbnRpYXRlIGEgbmV3IFJlcXVlc3QgY2xhc3MgZm9yIHVzZSB3aGVuIG1ha2luZyBBUEkgY2FsbHNcclxuICAgICAgdGhpcy5yZXF1ZXN0ID0gbmV3IFJlcXVlc3QodGhpcyk7XHJcblxyXG4gICAgICAvLyBTZXQgdGhlIGNvdW50cnkgbGlzdFxyXG4gICAgICB0aGlzLnNldENvdW50cnlMaXN0KCk7XHJcblxyXG4gICAgICAvLyBTZXQgdGhlIGlucHV0IGZpZWxkcyBmb3IgdGhpcyBzZWFyY2ggdHlwZVxyXG4gICAgICB0aGlzLnNldElucHV0cygpO1xyXG5cclxuICAgICAgLy8gU2V0dXAgYSBwaWNrbGlzdCBvYmplY3RcclxuICAgICAgdGhpcy5jcmVhdGVQaWNrbGlzdCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gVHJpZ2dlciBhIDQwMSBVbmF1dGhvcml6ZWQgZXZlbnQgaWYgYSB0b2tlbiBkb2VzIG5vdCBleGlzdFxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3JlcXVlc3QtZXJyb3ItNDAxJykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVFbnJpY2htZW50UmVzdWx0KHJlc3BvbnNlKSB7XHJcbiAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LWVucmljaG1lbnQnLCByZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhcmFtZXRlcihuYW1lKTogc3RyaW5nIHtcclxuICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoL1tbXS8sICdcXFxcWycpLnJlcGxhY2UoL1tcXF1dLywgJ1xcXFxdJyk7XHJcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoJ1tcXFxcPyZdJyArIG5hbWUgKyAnPShbXiYjXSopJyksXHJcbiAgICAgIHJlc3VsdHMgPSByZWdleC5leGVjKGxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICByZXR1cm4gcmVzdWx0cyA9PT0gbnVsbCA/ICcnIDogZGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdHNbMV0ucmVwbGFjZSgvXFwrL2csICcgJykpO1xyXG4gIH1cclxuXHJcbiAgLy8gVHJ5IGFuZCBnZXQgdG9rZW4gZnJvbSB0aGUgcXVlcnkgc3RyaW5nIGlmIGl0J3Mgbm90IGFscmVhZHkgcHJvdmlkZWRcclxuICBwcml2YXRlIGdldCB0b2tlbigpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMudG9rZW4pIHtcclxuICAgICAgdGhpcy5vcHRpb25zLnRva2VuID0gdGhpcy5nZXRQYXJhbWV0ZXIoJ3Rva2VuJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRva2VuO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtZXJnZURlZmF1bHRPcHRpb25zKGN1c3RvbU9wdGlvbnMpOiBBZGRyZXNzU2VhcmNoT3B0aW9ucyB7XHJcbiAgICBjb25zdCBpbnN0YW5jZTogQWRkcmVzc1NlYXJjaE9wdGlvbnMgPSBjdXN0b21PcHRpb25zIHx8IHt9O1xyXG5cclxuICAgIGluc3RhbmNlLmVuYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWFyY2hUeXBlID0gaW5zdGFuY2Uuc2VhcmNoVHlwZSB8fCBkZWZhdWx0cy5zZWFyY2hUeXBlO1xyXG4gICAgaW5zdGFuY2Uuc2VhcmNoVHlwZSA9IGluc3RhbmNlLnNlYXJjaFR5cGUgfHwgZGVmYXVsdHMuc2VhcmNoVHlwZTtcclxuICAgIGluc3RhbmNlLmxhbmd1YWdlID0gaW5zdGFuY2UubGFuZ3VhZ2UgfHwgZGVmYXVsdHMubGFuZ3VhZ2U7XHJcbiAgICBpbnN0YW5jZS51c2VTcGlubmVyID0gaW5zdGFuY2UudXNlU3Bpbm5lciB8fCBkZWZhdWx0cy51c2VTcGlubmVyO1xyXG4gICAgaW5zdGFuY2UuYXBwbHlGb2N1cyA9ICh0eXBlb2YgaW5zdGFuY2UuYXBwbHlGb2N1cyAhPT0gJ3VuZGVmaW5lZCcpID8gaW5zdGFuY2UuYXBwbHlGb2N1cyA6IGRlZmF1bHRzLmlucHV0LmFwcGx5Rm9jdXM7XHJcbiAgICBpbnN0YW5jZS5wbGFjZWhvbGRlclRleHQgPSBpbnN0YW5jZS5wbGFjZWhvbGRlclRleHQgfHwgZGVmYXVsdHMuaW5wdXQucGxhY2Vob2xkZXJUZXh0O1xyXG4gICAgaW5zdGFuY2Uuc2VhcmNoQWdhaW4gPSBpbnN0YW5jZS5zZWFyY2hBZ2FpbiB8fCB7fTtcclxuICAgIGluc3RhbmNlLnNlYXJjaEFnYWluLnZpc2libGUgPSAodHlwZW9mIGluc3RhbmNlLnNlYXJjaEFnYWluLnZpc2libGUgIT09ICd1bmRlZmluZWQnKSA/IGluc3RhbmNlLnNlYXJjaEFnYWluLnZpc2libGUgOiBkZWZhdWx0cy5zZWFyY2hBZ2Fpbi52aXNpYmxlO1xyXG4gICAgaW5zdGFuY2Uuc2VhcmNoQWdhaW4udGV4dCA9IGluc3RhbmNlLnNlYXJjaEFnYWluLnRleHQgfHwgZGVmYXVsdHMuc2VhcmNoQWdhaW4udGV4dDtcclxuICAgIGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIgPSBpbnN0YW5jZS5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyIHx8IGRlZmF1bHRzLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXI7XHJcbiAgICBpbnN0YW5jZS5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnNob3dIZWFkaW5nID0gKHR5cGVvZiBpbnN0YW5jZS5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnNob3dIZWFkaW5nICE9PSAndW5kZWZpbmVkJykgPyBpbnN0YW5jZS5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnNob3dIZWFkaW5nIDogZGVmYXVsdHMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5zaG93SGVhZGluZztcclxuICAgIGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuaGVhZGluZ1R5cGUgPSBpbnN0YW5jZS5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLmhlYWRpbmdUeXBlIHx8IGRlZmF1bHRzLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuaGVhZGluZ1R5cGU7XHJcbiAgICBpbnN0YW5jZS5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnZhbGlkYXRlZEhlYWRpbmdUZXh0ID0gaW5zdGFuY2UuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci52YWxpZGF0ZWRIZWFkaW5nVGV4dCB8fCBkZWZhdWx0cy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnZhbGlkYXRlZEhlYWRpbmdUZXh0O1xyXG4gICAgaW5zdGFuY2UuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5tYW51YWxIZWFkaW5nVGV4dCA9IGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIubWFudWFsSGVhZGluZ1RleHQgfHwgZGVmYXVsdHMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5tYW51YWxIZWFkaW5nVGV4dDtcclxuICAgIGluc3RhbmNlLnVzZUFkZHJlc3NFbnRlcmVkVGV4dCA9IGluc3RhbmNlLnVzZUFkZHJlc3NFbnRlcmVkVGV4dCB8fCBkZWZhdWx0cy51c2VBZGRyZXNzRW50ZXJlZFRleHQ7XHJcbiAgICBpbnN0YW5jZS5lbGVtZW50cyA9IGluc3RhbmNlLmVsZW1lbnRzIHx8IHt9O1xyXG5cclxuICAgIHJldHVybiBpbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UHJvbXB0c2V0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudENvdW50cnlDb2RlKSB7XHJcbiAgICAgIC8vIFVzaW5nIHRoZSBjb3VudHJ5IGNvZGUgYW5kIHRoZSBzZWFyY2ggdHlwZSwgbG9va3VwIHdoYXQgdGhlIHJlbGV2YW50IGRhdGFzZXQgY29kZSBzaG91bGQgYmVcclxuICAgICAgdGhpcy5jdXJyZW50RGF0YVNldCA9IHRoaXMubG9va3VwRGF0YXNldENvZGUoKTtcclxuICAgICAgaWYgKHRoaXMuY3VycmVudERhdGFTZXQpIHtcclxuXHJcbiAgICAgICAgLy8vIFRlbXBvcmFyeSBtZWFzdXJlIHVudGlsIHRoZSBwcm9tcHRzZXQgZW5kcG9pbnQgc3VwcG9ydHMgQXV0b2NvbXBsZXRlIGFuZCBWYWxpZGF0ZVxyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5BVVRPQ09NUExFVEUpIHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5oYW5kbGVQcm9tcHRzZXRSZXN1bHQoe3Jlc3VsdDoge2xpbmVzOiBbe2V4YW1wbGU6IHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlclRleHQsIHByb21wdDogJ0FkZHJlc3MnLCBzdWdnZXN0ZWRfaW5wdXRfbGVuZ3RoOiAxNjB9XX19KSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5WQUxJREFURSkge1xyXG4gICAgICAgICAgY29uc3QgbGluZXMgPSBbXHJcbiAgICAgICAgICAgIHtwcm9tcHQ6ICdBZGRyZXNzIGxpbmUgMScsIHN1Z2dlc3RlZF9pbnB1dF9sZW5ndGg6IDE2MH0sXHJcbiAgICAgICAgICAgIHtwcm9tcHQ6ICdBZGRyZXNzIGxpbmUgMicsIHN1Z2dlc3RlZF9pbnB1dF9sZW5ndGg6IDE2MH0sXHJcbiAgICAgICAgICAgIHtwcm9tcHQ6ICdBZGRyZXNzIGxpbmUgMycsIHN1Z2dlc3RlZF9pbnB1dF9sZW5ndGg6IDE2MH0sXHJcbiAgICAgICAgICAgIHtwcm9tcHQ6IHRoaXMucmVzdWx0LmNyZWF0ZUFkZHJlc3NMaW5lLmxhYmVsKCdsb2NhbGl0eScpLCBzdWdnZXN0ZWRfaW5wdXRfbGVuZ3RoOiAxNjB9LFxyXG4gICAgICAgICAgICB7cHJvbXB0OiB0aGlzLnJlc3VsdC5jcmVhdGVBZGRyZXNzTGluZS5sYWJlbCgncmVnaW9uJyksIHN1Z2dlc3RlZF9pbnB1dF9sZW5ndGg6IDE2MH0sXHJcbiAgICAgICAgICAgIHtwcm9tcHQ6IHRoaXMucmVzdWx0LmNyZWF0ZUFkZHJlc3NMaW5lLmxhYmVsKCdwb3N0YWxfY29kZScpLCBzdWdnZXN0ZWRfaW5wdXRfbGVuZ3RoOiAxNjB9XHJcbiAgICAgICAgICBdO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmhhbmRsZVByb21wdHNldFJlc3VsdCh7cmVzdWx0OiB7bGluZXN9fSkpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICAgIGNvdW50cnlfaXNvOiB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSxcclxuICAgICAgICAgIGRhdGFzZXRzOiBBcnJheS5pc0FycmF5KHRoaXMuY3VycmVudERhdGFTZXQpID8gdGhpcy5jdXJyZW50RGF0YVNldCA6IFt0aGlzLmN1cnJlbnREYXRhU2V0XSxcclxuICAgICAgICAgIHNlYXJjaF90eXBlOiB0aGlzLnNlYXJjaFR5cGUsXHJcbiAgICAgICAgICBwcm9tcHRfc2V0OiAnb3B0aW1hbCdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3ByZS1wcm9tcHRzZXQtY2hlY2snKTtcclxuICAgICAgICB0aGlzLnJlcXVlc3Quc2VuZCh0aGlzLmJhc2VVcmwgKyB0aGlzLnByb21wdHNldEVuZHBvaW50LCAnUE9TVCcsIHRoaXMuaGFuZGxlUHJvbXB0c2V0UmVzdWx0LmJpbmQodGhpcyksIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb29rdXBEYXRhc2V0Q29kZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBpdGVtID0gZGF0YXNldENvZGVzLmZpbmQoZGF0YXNldCA9PiBkYXRhc2V0LmlzbzNDb2RlID09PSB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSAmJiBkYXRhc2V0LnNlYXJjaFR5cGUuaW5jbHVkZXModGhpcy5zZWFyY2hUeXBlKSk7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICByZXR1cm4gaXRlbS5kYXRhc2V0Q29kZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlUHJvbXB0c2V0UmVzdWx0KHJlc3BvbnNlKTogdm9pZCB7XHJcbiAgICAvLyBSZW1vdmUgYW55IGN1cnJlbnRseSBkaXNwbGF5ZWQgcGlja2xpc3Qgd2hlbiB0aGUgcHJvbXB0c2V0IGNoYW5nZXNcclxuICAgIHRoaXMucGlja2xpc3QuaGlkZSgpO1xyXG5cclxuICAgIC8vIFRyaWdnZXIgYSBuZXcgZXZlbnQgdG8gbm90aWZ5IHN1YnNjcmliZXJzXHJcbiAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LXByb21wdHNldC1jaGVjaycsIHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRJbnB1dHMoaW5wdXRzID0gdGhpcy5vcHRpb25zLmVsZW1lbnRzLmlucHV0cyk6IHZvaWQge1xyXG4gICAgLy8gSWYgYWRkcmVzcyBpbnB1dHMgZXhpc3QgdGhlbiByZWdpc3RlciB0aGVzZSB3aXRoIGV2ZW50IGxpc3RlbmVycywgb3RoZXJ3aXNlIGNhbGwgdGhlIHByb21wdHNldCBlbmRwb2ludCB0byByZXRyaWV2ZSB0aGVtXHJcbiAgICBpZiAoaW5wdXRzKSB7XHJcbiAgICAgIHRoaXMucmVnaXN0ZXJJbnB1dHMoaW5wdXRzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIE1ha2UgYW4gQVBJIGNhbGwgdG8gZ2V0IHRoZSBwcm9tcHRzZXQgZm9yIHRoaXMgY291bnRyeS9kYXRhc2V0L2VuZ2luZVxyXG4gICAgICB0aGlzLmdldFByb21wdHNldCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5TSU5HTEVMSU5FIHx8IHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFKSB7XHJcbiAgICAgIC8vIEJpbmQgYW4gZXZlbnQgbGlzdGVuZXIgb24gdGhlIGxvb2t1cCBidXR0b25cclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5lbGVtZW50cy5sb29rdXBCdXR0b24pIHtcclxuICAgICAgICB0aGlzLmxvb2t1cEZuID0gdGhpcy5zZWFyY2guYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9wdGlvbnMuZWxlbWVudHMubG9va3VwQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5sb29rdXBGbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVnaXN0ZXJJbnB1dHMoaW5wdXRzOiBIVE1MSW5wdXRFbGVtZW50W10pIHtcclxuICAgIC8vIElmIG5ldyBpbnB1dHMgaGF2ZSBiZWVuIHByb3ZpZGVkLCBlbnN1cmUgd2UgdXBkYXRlIHRoZSBlbGVtZW50cyBhcnJheSB0byBjYXB0dXJlIHRoZW1cclxuICAgIHRoaXMuaW5wdXRzID0gQXJyYXkuZnJvbShpbnB1dHMpO1xyXG5cclxuICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wdXQgPT4ge1xyXG4gICAgICAvLyBEaXNhYmxlIGF1dG9jb21wbGV0ZSBvbiB0aGUgZm9ybSBmaWVsZFxyXG4gICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2F1dG9jb21wbGV0ZScsICduZXctcGFzc3dvcmQnKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5BVVRPQ09NUExFVEUpIHtcclxuICAgICAgICAvLyBCaW5kIGFuIGV2ZW50IGxpc3RlbmVyIG9uIHRoZSBpbnB1dFxyXG4gICAgICAgIHRoaXMua2V5VXBGbiA9IHRoaXMuc2VhcmNoLmJpbmQodGhpcyk7XHJcbiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLmtleVVwRm4pO1xyXG4gICAgICAgIHRoaXMuY2hlY2tUYWJGbiA9IHRoaXMuY2hlY2tUYWIuYmluZCh0aGlzKTtcclxuICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5jaGVja1RhYkZuKTtcclxuICAgICAgICAvLyBTZXQgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGlucHV0XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlclRleHQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBCaW5kIGFuIGV2ZW50IGxpc3RlbmVyIG9uIHRoZSBpbnB1dCB0byBhbGxvdyB1c2VycyB0byB0cmF2ZXJzZSB1cCBhbmQgZG93biB0aGUgcGlja2xpc3QgdXNpbmcgdGhlIGtleWJvYXJkXHJcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5oYW5kbGVLZXlib2FyZEV2ZW50LmJpbmQodGhpcykpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jb3VudHJ5Q29kZU1hcHBpbmcgPSB0aGlzLm9wdGlvbnMuY291bnRyeUNvZGVNYXBwaW5nIHx8IHt9O1xyXG5cclxuICAgIC8vIEFwcGx5IGZvY3VzIHRvIHRoZSBmaXJzdCBpbnB1dFxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hcHBseUZvY3VzKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRzWzBdLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvdW50cnlMaXN0KCk6IHZvaWQge1xyXG4gICAgLy8gU2V0IHRoZSBpbml0aWFsIGNvdW50cnkgY29kZSBmcm9tIGVpdGhlciB0aGUgdmFsdWUgb2YgYSBjb3VudHJ5IGxpc3QgSFRNTCBlbGVtZW50IG9yIGEgc3RhdGljIGNvdW50cnkgY29kZVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5lbGVtZW50cy5jb3VudHJ5TGlzdCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSA9IHRoaXMub3B0aW9ucy5lbGVtZW50cy5jb3VudHJ5TGlzdC52YWx1ZTtcclxuXHJcbiAgICAgIC8vIExpc3RlbiBmb3Igd2hlbiBhIGNvdW50cnkgaXMgY2hhbmdlZCBhbmQgY2FsbCB0aGUgcHJvbXB0c2V0IGVuZHBvaW50XHJcbiAgICAgIHRoaXMub3B0aW9ucy5lbGVtZW50cy5jb3VudHJ5TGlzdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmhhbmRsZUNvdW50cnlMaXN0Q2hhbmdlLmJpbmQodGhpcykpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMuY291bnRyeUNvZGUpIHtcclxuICAgICAgdGhpcy5jdXJyZW50Q291bnRyeUNvZGUgPSB0aGlzLm9wdGlvbnMuY291bnRyeUNvZGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBwcm92aWRlIGEgY291bnRyeSBjb2RlIG9yIGEgY291bnRyeSBsaXN0IGVsZW1lbnQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFdoZW4gYSBjb3VudHJ5IGZyb20gdGhlIGxpc3QgaXMgY2hhbmdlZCwgdXBkYXRlIHRoZSBjdXJyZW50IGNvdW50cnkgY29kZSBhbmQgY2FsbCB0aGUgcHJvbXB0c2V0IGVuZHBvaW50IGFnYWluXHJcbiAgcHJpdmF0ZSBoYW5kbGVDb3VudHJ5TGlzdENoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudENvdW50cnlDb2RlID0gdGhpcy5vcHRpb25zLmVsZW1lbnRzLmNvdW50cnlMaXN0LnZhbHVlO1xyXG4gICAgdGhpcy5nZXRQcm9tcHRzZXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2VuZXJhdGVTZWFyY2hEYXRhRm9yQXBpQ2FsbCgpOiBzdHJpbmcge1xyXG4gICAgLy8gSWYgYSBkYXRhc2V0IGNvZGUgaGFzbid0IGJlZW4gc2V0IHlldCwgdHJ5IGFuZCBsb29rIGl0IHVwXHJcbiAgICBpZiAoIXRoaXMuY3VycmVudERhdGFTZXQpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RGF0YVNldCA9IHRoaXMubG9va3VwRGF0YXNldENvZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBjb3VudHJ5X2lzbzogdGhpcy5jdXJyZW50Q291bnRyeUNvZGUsXHJcbiAgICAgIGNvbXBvbmVudHM6IHt1bnNwZWNpZmllZDogW3RoaXMuY3VycmVudFNlYXJjaFRlcm1dfSxcclxuICAgICAgZGF0YXNldHM6IEFycmF5LmlzQXJyYXkodGhpcy5jdXJyZW50RGF0YVNldCkgPyB0aGlzLmN1cnJlbnREYXRhU2V0IDogW3RoaXMuY3VycmVudERhdGFTZXRdLFxyXG4gICAgICBtYXhfc3VnZ2VzdGlvbnM6ICh0aGlzLm9wdGlvbnMubWF4U3VnZ2VzdGlvbnMgfHwgdGhpcy5waWNrbGlzdC5tYXhTdWdnZXN0aW9ucylcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlNJTkdMRUxJTkUgfHwgdGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuVkFMSURBVEUpIHtcclxuICAgICAgZGF0YVsnb3B0aW9ucyddID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdmbGF0dGVuJyxcclxuICAgICAgICAgIFZhbHVlOiAndHJ1ZSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdpbnRlbnNpdHknLFxyXG4gICAgICAgICAgVmFsdWU6ICdjbG9zZSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdwcm9tcHRfc2V0JyxcclxuICAgICAgICAgIFZhbHVlOiAnZGVmYXVsdCdcclxuICAgICAgICB9XHJcbiAgICAgIF07XHJcblxyXG4gICAgICBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuU0lOR0xFTElORSkge1xyXG4gICAgICAgIGRhdGFbJ29wdGlvbnMnXS5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6ICdzZWFyY2hfdHlwZScsXHJcbiAgICAgICAgICBWYWx1ZTogJ3NpbmdsZWxpbmUnXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5WQUxJREFURSkge1xyXG4gICAgICAgIGRhdGFbJ2xheW91dHMnXSA9IFsnZGVmYXVsdCddO1xyXG4gICAgICAgIGRhdGFbJ2xheW91dF9mb3JtYXQnXSA9ICdkZWZhdWx0JztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb24pIHtcclxuICAgICAgZGF0YVsnbG9jYXRpb24nXSA9IHRoaXMub3B0aW9ucy5sb2NhdGlvbjtcclxuICAgIH1cclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcclxuICB9XHJcblxyXG4gIC8vIEFsbG93IHRoZSBrZXlib2FyZCB0byBiZSB1c2VkIHRvIGVpdGhlciB0cmF2ZXJzZSB1cCBhbmQgZG93biB0aGUgcGlja2xpc3QgYW5kIHNlbGVjdCBhbiBpdGVtLCBvciB0cmlnZ2VyIGEgbmV3IHNlYXJjaFxyXG4gIHByaXZhdGUgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAvLyBIYW5kbGUga2V5Ym9hcmQgbmF2aWdhdGlvblxyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRLZXkoZXZlbnQpO1xyXG5cclxuICAgIC8vIElmIGEgcGlja2xpc3QgaXMgcG9wdWxhdGVkIHRoZW4gdHJpZ2dlciBpdHMga2V5dXAgZXZlbnQgdG8gc2VsZWN0IGFuIGl0ZW1cclxuICAgIGlmICh0aGlzLnBpY2tsaXN0LnNpemUpIHtcclxuICAgICAgaWYgKGtleSA9PT0gJ0Fycm93VXAnIHx8IGtleSA9PT0gJ0Fycm93RG93bicgfHwga2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5rZXl1cChldmVudCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBPdGhlcndpc2UsIGVuYWJsZSBwcmVzc2luZyAnZW50ZXInIHRvIHRyaWdnZXIgYSBuZXcgc2VhcmNoXHJcbiAgICAgIGlmIChrZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaChldmVudCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBNYWluIGZ1bmN0aW9uIHRvIHNlYXJjaCBmb3IgYW4gYWRkcmVzcyBmcm9tIGFuIGlucHV0IHN0cmluZ1xyXG4gIHByaXZhdGUgc2VhcmNoKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMuY3VycmVudFNlYXJjaFRlcm0gPSB0aGlzLmlucHV0cy5tYXAoaW5wdXQgPT4gaW5wdXQudmFsdWUpLmpvaW4oJywnKTtcclxuXHJcbiAgICAvLyBHcmFiIHRoZSBjb3VudHJ5IElTTyBjb2RlIGFuZCAoaWYgaXQgaXMgcHJlc2VudCkgdGhlIGRhdGFzZXQgbmFtZSBmcm9tIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBjb3VudHJ5TGlzdCAoZm9ybWF0OiB7Y291bnRyeUlzb0NvZGV9O3tkYXRhc2V0fSlcclxuICAgIGNvbnN0IGN1cnJlbnRDb3VudHJ5SW5mbyA9IHRoaXMuY291bnRyeUNvZGVNYXBwaW5nW3RoaXMuY3VycmVudENvdW50cnlDb2RlXSB8fCB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZTtcclxuICAgIGNvbnN0IGNvdW50cnlDb2RlQW5kRGF0YXNldCA9IGN1cnJlbnRDb3VudHJ5SW5mby5zcGxpdCgnOycpO1xyXG5cclxuICAgIHRoaXMuY3VycmVudENvdW50cnlDb2RlID0gY291bnRyeUNvZGVBbmREYXRhc2V0WzBdO1xyXG4gICAgaWYgKGNvdW50cnlDb2RlQW5kRGF0YXNldFsxXSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnREYXRhU2V0ID0gY291bnRyeUNvZGVBbmREYXRhc2V0WzFdO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIChSZS0pc2V0IHRoZSBwcm9wZXJ0eSBzdGF0aW5nIHdoZXRoZXIgdGhlIHNlYXJjaCBpbnB1dCBoYXMgYmVlbiByZXNldC5cclxuICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciBpbnN0YW5jZXMgd2hlbiB0aGUgc2VhcmNoIGlucHV0IGlzIGFsc28gYW4gYWRkcmVzc1xyXG4gICAgLy8gb3V0cHV0IGZpZWxkLiBBZnRlciBhbiBhZGRyZXNzIGhhcyBiZWVuIHJldHVybmVkLCB5b3UgZG9uJ3Qgd2FudCBhIG5ldyBcclxuICAgIC8vIHNlYXJjaCBiZWluZyB0cmlnZ2VyZWQgdW50aWwgdGhlIGZpZWxkIGhhcyBiZWVuIGNsZWFyZWQuXHJcbiAgICBpZiAodGhpcy5jdXJyZW50U2VhcmNoVGVybSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5oYXNTZWFyY2hJbnB1dEJlZW5SZXNldCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgc2VhcmNoaW5nIGlzIHBlcm1pdHRlZFxyXG4gICAgaWYgKHRoaXMuY2FuU2VhcmNoKCkpIHtcclxuICAgICAgLy8gQWJvcnQgYW55IG91dHN0YW5kaW5nIHJlcXVlc3RzXHJcbiAgICAgIGlmICh0aGlzLnJlcXVlc3QuY3VycmVudFJlcXVlc3QpIHtcclxuICAgICAgICB0aGlzLnJlcXVlc3QuY3VycmVudFJlcXVlc3QuYWJvcnQoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gRmlyZSBhbiBldmVudCBiZWZvcmUgYSBzZWFyY2ggdGFrZXMgcGxhY2VcclxuICAgICAgdGhpcy5ldmVudHMudHJpZ2dlcigncHJlLXNlYXJjaCcsIHRoaXMuY3VycmVudFNlYXJjaFRlcm0pO1xyXG5cclxuICAgICAgLy8gQ29uc3RydWN0IHRoZSBuZXcgU2VhcmNoIFVSTCBhbmQgZGF0YVxyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5nZW5lcmF0ZVNlYXJjaERhdGFGb3JBcGlDYWxsKCk7XHJcblxyXG4gICAgICAvLyBTdG9yZSB0aGUgbGFzdCBzZWFyY2ggdGVybVxyXG4gICAgICB0aGlzLmxhc3RTZWFyY2hUZXJtID0gdGhpcy5jdXJyZW50U2VhcmNoVGVybTtcclxuXHJcbiAgICAgIC8vIEhpZGUgdGhlIGlubGluZSBzZWFyY2ggc3Bpbm5lclxyXG4gICAgICB0aGlzLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xyXG5cclxuICAgICAgLy8gU2hvdyBhbiBpbmxpbmUgc3Bpbm5lciB3aGlsc3Qgc2VhcmNoaW5nXHJcbiAgICAgIHRoaXMuc2VhcmNoU3Bpbm5lci5zaG93KCk7XHJcblxyXG4gICAgICAvLyBTZXQgdGhlIEFQSSBVUkwsIGhlYWRlcnMgYW5kIGNhbGxiYWNrIGZ1bmN0aW9uIGRlcGVuZGluZyBvbiB0aGUgc2VhcmNoIHR5cGVcclxuICAgICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFID8gdGhpcy52YWxpZGF0ZUVuZHBvaW50IDogdGhpcy5zZWFyY2hFbmRwb2ludCk7XHJcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5WQUxJREFURSA/IFt7a2V5OiAnQWRkLU1ldGFkYXRhJywgdmFsdWU6IHRydWV9XSA6IFtdO1xyXG4gICAgICBjb25zdCBjYWxsYmFjayA9IHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFID8gdGhpcy5yZXN1bHQuaGFuZGxlVmFsaWRhdGVSZXNwb25zZSA6IHRoaXMucGlja2xpc3Quc2hvdztcclxuXHJcbiAgICAgIC8vIEluaXRpYXRlIG5ldyBTZWFyY2ggcmVxdWVzdFxyXG4gICAgICB0aGlzLnJlcXVlc3Quc2VuZCh1cmwsICdQT1NUJywgY2FsbGJhY2ssIGRhdGEsIGhlYWRlcnMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxhc3RTZWFyY2hUZXJtICE9PSB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtKSB7XHJcbiAgICAgIC8vIENsZWFyIHRoZSBwaWNrbGlzdCBpZiB0aGUgc2VhcmNoIHRlcm0gaXMgY2xlYXJlZC9lbXB0eVxyXG4gICAgICB0aGlzLnBpY2tsaXN0LmhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEhlbHBlciBtZXRob2QgdG8gcmV0dXJuIGEgY29uc2lzdGVudCBrZXkgbmFtZVxyXG4gIHByaXZhdGUgZ2V0S2V5KHtrZXl9KTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoa2V5KSB7XHJcbiAgICAgIGNhc2UgJ0Rvd24nOlxyXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxyXG4gICAgICAgIHJldHVybiAnQXJyb3dEb3duJztcclxuICAgICAgY2FzZSAnVXAnOlxyXG4gICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICByZXR1cm4gJ0Fycm93VXAnO1xyXG4gICAgICBjYXNlICdTcGFjZWJhcic6XHJcbiAgICAgIGNhc2UgJyAnOlxyXG4gICAgICAgIHJldHVybiAnICc7XHJcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XHJcbiAgICAgIGNhc2UgJ0VzYyc6XHJcbiAgICAgICAgcmV0dXJuICdFc2NhcGUnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBrZXk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhblNlYXJjaCgpOiBib29sZWFuIHtcclxuICAgIC8vIElmIHNlYXJjaGluZyBvbiB0aGlzIGluc3RhbmNlIGlzIGVuYWJsZWQsIGFuZFxyXG4gICAgcmV0dXJuICh0aGlzLm9wdGlvbnMuZW5hYmxlZCAmJlxyXG4gICAgICAvLyBJZiBzZWFyY2ggdGVybSBpcyBub3QgZW1wdHksIGFuZFxyXG4gICAgICB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtICE9PSAnJyAmJlxyXG4gICAgICAvLyBJZiB0aGUgc2VhcmNoIHRlcm0gaXMgYXQgbGVhc3QgNCBjaGFyYWN0ZXJzXHJcbiAgICAgIHRoaXMuY3VycmVudFNlYXJjaFRlcm0ubGVuZ3RoID4gMyAmJlxyXG4gICAgICAvLyBJZiBzZWFyY2ggdGVybSBpcyBub3QgdGhlIHNhbWUgYXMgcHJldmlvdXMgc2VhcmNoIHRlcm0sIGFuZFxyXG4gICAgICB0aGlzLmxhc3RTZWFyY2hUZXJtICE9PSB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtICYmXHJcbiAgICAgIC8vIElmIHRoZSBjb3VudHJ5IGlzIG5vdCBlbXB0eSwgYW5kXHJcbiAgICAgIHRoaXMuY3VycmVudENvdW50cnlDb2RlICYmXHJcbiAgICAgIC8vIElmIHNlYXJjaCBpbnB1dCBoYXMgYmVlbiByZXNldCAoaWYgYXBwbGljYWJsZSlcclxuICAgICAgdGhpcy5oYXNTZWFyY2hJbnB1dEJlZW5SZXNldCA9PT0gdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBvd2VyZWRCeUxvZ286IFBvd2VyZWRCeUxvZ28gPSB7XHJcbiAgICBlbGVtZW50OiBudWxsLFxyXG4gICAgLy8gQ3JlYXRlIGEgXCJQb3dlcmVkIGJ5IEV4cGVyaWFuXCIgZm9vdGVyXHJcbiAgICBjcmVhdGUocGlja2xpc3QpIHtcclxuICAgICAgY29uc3QgaXRlbSA9IHtcclxuICAgICAgICB0ZXh0OiBgJHt0aGlzLnN2Z30gPGVtPlBvd2VyZWQgYnkgRXhwZXJpYW48L2VtPmAsXHJcbiAgICAgICAgZm9ybWF0OiAnJ1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBsaXN0SXRlbSA9IHBpY2tsaXN0LmNyZWF0ZUxpc3RJdGVtKGl0ZW0pO1xyXG4gICAgICBsaXN0SXRlbS5jbGFzc0xpc3QuYWRkKCdwb3dlcmVkLWJ5LWV4cGVyaWFuJyk7XHJcbiAgICAgIHBpY2tsaXN0Lmxpc3QucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChsaXN0SXRlbSk7XHJcbiAgICAgIHJldHVybiBsaXN0SXRlbTtcclxuICAgIH0sXHJcbiAgICAvLyBEZXN0cm95IHRoZSBcIlBvd2VyZWQgYnkgRXhwZXJpYW5cIiBmb290ZXJcclxuICAgIGRlc3Ryb3kocGlja2xpc3QpIHtcclxuICAgICAgaWYgKHRoaXMuZWxlbWVudCkge1xyXG4gICAgICAgIHBpY2tsaXN0Lmxpc3QucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQpO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHN2ZzogYDxzdmcgY2xhc3M9XCJleHBlcmlhbi1sb2dvXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB4PVwiMHB4XCIgeT1cIjBweFwiIHZpZXdCb3g9XCIwIDAgMTIwIDEyMFwiIHN0eWxlPVwiXCIgeG1sOnNwYWNlPVwicHJlc2VydmVcIiByb2xlPVwiaW1nXCIgYXJpYS1sYWJlbD1cIlBvd2VyZWQgYnkgRXhwZXJpYW5cIj5cclxuICAgICAgICAgICAgPHRpdGxlPkV4cGVyaWFuIGxvZ288L3RpdGxlPlxyXG4gICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIHN0eWxlPVwiZmlsbDogIzBFNkVCNlwiIGQ9XCJNNTYuMSwyN2gtMTNjLTMuOSwwLTctMy4xLTctN1Y3YzAtMy45LDMuMS03LDctN2gxM2MzLjksMCw3LDMuMSw3LDd2MTNDNjMuMSwyMy44LDYwLDI3LDU2LjEsMjdcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGw6ICM3MjIxN0JcIiBkPVwiTTIyLjUsNTYuMUg3LjljLTQuMywwLTcuOS0zLjUtNy45LTcuOVYzMy42YzAtNC4zLDMuNS03LjksNy45LTcuOWgxNC42YzQuMywwLDcuOSwzLjUsNy45LDcuOXYxNC42QzMwLjQsNTIuNiwyNi44LDU2LjEsMjIuNSw1Ni4xXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggc3R5bGU9XCJmaWxsOiAjQjEyMzg0XCIgZD1cIk0yMS4xLDg2LjRoLTguOWMtMi43LDAtNC44LTIuMS00LjgtNC44di04LjljMC0yLjcsMi4yLTQuOCw0LjgtNC44aDguOWMyLjcsMCw0LjgsMi4yLDQuOCw0Ljh2OC45QzI1LjksODQuMywyMy43LDg2LjQsMjEuMSw4Ni40XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggc3R5bGU9XCJmaWxsOiAjRTcyODg3XCIgZD1cIk00NS4xLDExNC43SDM0LjVjLTMuMSwwLTUuNy0yLjUtNS43LTUuN1Y5OC40YzAtMy4xLDIuNS01LjcsNS43LTUuN2gxMC42YzMuMSwwLDUuNywyLjUsNS43LDUuN1YxMDlDNTAuNywxMTIuMSw0OC4yLDExNC43LDQ1LjEsMTE0LjdcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGw6ICNFNzI4ODdcIiBkPVwiTTgzLjgsMzIuM2gtNy4zYy0yLjIsMC0zLjktMS44LTMuOS0zLjl2LTcuM2MwLTIuMiwxLjgtMy45LDMuOS0zLjloNy4zYzIuMiwwLDMuOSwxLjgsMy45LDMuOXY3LjNDODcuNywzMC41LDg1LjksMzIuMyw4My44LDMyLjNcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGw6ICMwMDQ2OTFcIiBkPVwiTTgxLjcsNjEuOEM4MS41LDUxLjEsNzIsNDIsNjAuNyw0MkM0OSw0MiwzOS42LDUxLjMsMzkuNiw2Mi45QzM5LjYsNzQuNiw0OSw4NCw2MC43LDg0YzUuNiwwLDEwLjgtMi4yLDE0LjYtNS45YzAuNy0wLjcsMS4yLTEuNiwxLjItMi42YzAtMS45LTEuNi0zLjUtMy41LTMuNWMtMS4xLDAtMiwwLjctMi44LDEuNGMtMi40LDIuNS01LjksMy43LTkuNSwzLjdjLTcsMC0xMi43LTQuOC0xMy45LTExLjVoMzEuNWMwLDAsMCwwLDAuMSwwaDAuMWMwLjEsMCwwLjEsMCwwLjIsMGMwLjEsMCwwLjIsMCwwLjQtMC4xQzgwLjQsNjUsODEuNyw2My42LDgxLjcsNjEuOHogTTYwLjcsNDguOWM2LjMsMCwxMS42LDQuMSwxMy40LDkuN0g0Ny4zQzQ5LjEsNTMsNTQuMyw0OC45LDYwLjcsNDguOXpcIj48L3BhdGg+XHJcbiAgICAgICAgICAgIDwvZz5cclxuICAgICAgICA8L3N2Zz5gXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVQaWNrbGlzdCgpIHtcclxuICAgIC8vIEluc3RhbnRpYXRlIGEgbmV3IFBpY2tsaXN0IGNsYXNzIGFuZCBzZXQgdGhlIHByb3BlcnRpZXMgYmVsb3dcclxuICAgIHRoaXMucGlja2xpc3QgPSBuZXcgUGlja2xpc3QoKTtcclxuXHJcbiAgICAvLyBTZXQgaW5pdGlhbCBtYXggc2l6ZVxyXG4gICAgdGhpcy5waWNrbGlzdC5tYXhTdWdnZXN0aW9ucyA9IDI1O1xyXG4gICAgLy8gVGFiIGNvdW50IHVzZWQgZm9yIGtleWJvYXJkIG5hdmlnYXRpb25cclxuICAgIHRoaXMucGlja2xpc3QudGFiQ291bnQgPSAtMTtcclxuICAgIC8vIFJlbmRlciBhIHBpY2tsaXN0IG9mIHNlYXJjaCByZXN1bHRzXHJcblxyXG4gICAgdGhpcy5waWNrbGlzdC5zaG93ID0gKGl0ZW1zOiBTZWFyY2hSZXNwb25zZSkgPT4ge1xyXG4gICAgICAvLyBTdG9yZSB0aGUgcGlja2xpc3QgaXRlbXNcclxuICAgICAgdGhpcy5waWNrbGlzdC5pdGVtcyA9IGl0ZW1zPy5yZXN1bHQuc3VnZ2VzdGlvbnM7XHJcblxyXG4gICAgICAvLyBSZXNldCBhbnkgcHJldmlvdXNseSBzZWxlY3RlZCBjdXJyZW50IGl0ZW1cclxuICAgICAgdGhpcy5waWNrbGlzdC5jdXJyZW50SXRlbSA9IG51bGw7XHJcblxyXG4gICAgICAvLyBVcGRhdGUgcGlja2xpc3Qgc2l6ZVxyXG4gICAgICB0aGlzLnBpY2tsaXN0LnNpemUgPSB0aGlzLnBpY2tsaXN0Lml0ZW1zPy5sZW5ndGg7XHJcblxyXG4gICAgICAvLyBSZXNldCB0aGUgcGlja2xpc3QgdGFiIGNvdW50ICh1c2VkIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uKVxyXG4gICAgICB0aGlzLnBpY2tsaXN0LnJlc2V0VGFiQ291bnQoKTtcclxuXHJcbiAgICAgIC8vIEhpZGUgdGhlIGlubGluZSBzZWFyY2ggc3Bpbm5lclxyXG4gICAgICB0aGlzLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xyXG5cclxuICAgICAgLy8gR2V0L0NyZWF0ZSBwaWNrbGlzdCBjb250YWluZXIgZWxlbWVudFxyXG4gICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QgPSB0aGlzLnBpY2tsaXN0Lmxpc3QgfHwgdGhpcy5waWNrbGlzdC5jcmVhdGVMaXN0KCk7XHJcblxyXG4gICAgICAvLyBFbnN1cmUgcHJldmlvdXMgcmVzdWx0cyBhcmUgY2xlYXJlZFxyXG4gICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgIHRoaXMucGlja2xpc3QudXNlQWRkcmVzc0VudGVyZWQuZGVzdHJveSgpO1xyXG5cclxuICAgICAgLy8gRmlyZSBhbiBldmVudCBiZWZvcmUgcGlja2xpc3QgaXMgY3JlYXRlZFxyXG4gICAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwcmUtcGlja2xpc3QtY3JlYXRlJywgdGhpcy5waWNrbGlzdC5pdGVtcyk7XHJcblxyXG4gICAgICBpZiAodGhpcy5waWNrbGlzdC5pdGVtcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIElmIGEgcGlja2xpc3QgbmVlZHMgXCJyZWZpbmluZ1wiIHRoZW4gcHJlcGVuZCBhIHRleHRib3ggdG8gYWxsb3cgdGhlIHVzZXIgdG8gZW50ZXIgdGhlaXIgc2VsZWN0aW9uXHJcbiAgICAgICAgaWYgKHRoaXMucGlja2xpc3QucmVmaW5lLmlzTmVlZGVkKGl0ZW1zKSkge1xyXG4gICAgICAgICAgdGhpcy5waWNrbGlzdC5yZWZpbmUuY3JlYXRlSW5wdXQoaXRlbXMucmVzdWx0LnN1Z2dlc3Rpb25zX3Byb21wdCwgaXRlbXMucmVzdWx0LnN1Z2dlc3Rpb25zX2tleSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuVkFMSURBVEUpIHtcclxuICAgICAgICAgIHRoaXMucGlja2xpc3QuZGlzcGxheVN1Z2dlc3Rpb25zSGVhZGVyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJdGVyYXRlIG92ZXIgYW5kIHNob3cgcmVzdWx0c1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgIC8vIENyZWF0ZSBhIG5ldyBpdGVtL3JvdyBpbiB0aGUgcGlja2xpc3RcclxuICAgICAgICAgIGNvbnN0IGxpc3RJdGVtID0gdGhpcy5waWNrbGlzdC5jcmVhdGVMaXN0SXRlbShpdGVtKTtcclxuICAgICAgICAgIHRoaXMucGlja2xpc3QubGlzdC5hcHBlbmRDaGlsZChsaXN0SXRlbSk7XHJcblxyXG4gICAgICAgICAgLy8gTGlzdGVuIGZvciBzZWxlY3Rpb24gb24gdGhpcyBpdGVtXHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3RlbihsaXN0SXRlbSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5WQUxJREFURSkge1xyXG4gICAgICAgICAgdGhpcy5waWNrbGlzdC5kaXNwbGF5VXNlQWRkcmVzc0VudGVyZWRGb290ZXIoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucGlja2xpc3Quc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QuaGFuZGxlRW1wdHlQaWNrbGlzdChpdGVtcyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEFkZCBhIFwiUG93ZXJlZCBieSBFeHBlcmlhblwiIGxvZ28gdG8gdGhlIHBpY2tsaXN0IGZvb3RlclxyXG4gICAgICB0aGlzLnBvd2VyZWRCeUxvZ28uZWxlbWVudCA9IHRoaXMucG93ZXJlZEJ5TG9nby5lbGVtZW50IHx8IHRoaXMucG93ZXJlZEJ5TG9nby5jcmVhdGUodGhpcy5waWNrbGlzdCk7XHJcblxyXG4gICAgICAvLyBGaXJlIGFuIGV2ZW50IGFmdGVyIHBpY2tsaXN0IGlzIGNyZWF0ZWRcclxuICAgICAgdGhpcy5ldmVudHMudHJpZ2dlcigncG9zdC1waWNrbGlzdC1jcmVhdGUnLCB0aGlzLnBpY2tsaXN0Lml0ZW1zKTtcclxuICAgIH07XHJcblxyXG4gICAgLy8gUmVtb3ZlIHRoZSBwaWNrbGlzdFxyXG4gICAgdGhpcy5waWNrbGlzdC5oaWRlID0gKCkgPT4ge1xyXG4gICAgICAvLyBDbGVhciB0aGUgY3VycmVudCBwaWNrbGlzdCBpdGVtXHJcbiAgICAgIHRoaXMucGlja2xpc3QuY3VycmVudEl0ZW0gPSBudWxsO1xyXG4gICAgICAvLyBSZW1vdmUgdGhlIFwidXNlIGFkZHJlc3MgZW50ZXJlZFwiIG9wdGlvbiB0b29cclxuICAgICAgdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5kZXN0cm95KCk7XHJcbiAgICAgIC8vIFJlbW92ZSB0aGUgXCJQb3dlcmVkIGJ5IEV4cGVyaWFuXCIgbG9nb1xyXG4gICAgICB0aGlzLnBvd2VyZWRCeUxvZ28uZGVzdHJveSh0aGlzLnBpY2tsaXN0KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmlucHV0cykge1xyXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgY2xhc3MgZGVub3RpbmcgYSBwaWNrbGlzdCAtIGlmIFNpbmdsZWxpbmUgbW9kZSBpcyB1c2VkLCB0aGVuIGl0IGlzIHRoZSBsYXN0IGlucHV0IGZpZWxkLCBvdGhlcndpc2UgdXNlIHRoZSBmaXJzdCBvbmVcclxuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlNJTkdMRUxJTkUgPyB0aGlzLmlucHV0cy5sZW5ndGggLSAxIDogMDtcclxuICAgICAgICB0aGlzLmlucHV0c1twb3NpdGlvbl0uY2xhc3NMaXN0LnJlbW92ZSgnc2hvd2luZy1zdWdnZXN0aW9ucycpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBSZW1vdmUgdGhlIG1haW4gcGlja2xpc3QgY29udGFpbmVyXHJcbiAgICAgIGlmICh0aGlzLnBpY2tsaXN0Lmxpc3QpIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LmNvbnRhaW5lci5yZW1vdmUoKTtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5waWNrbGlzdC5oYW5kbGVFbXB0eVBpY2tsaXN0ID0gKGl0ZW1zOiBTZWFyY2hSZXNwb25zZSkgPT4ge1xyXG4gICAgICAvLyBDcmVhdGUgYSBuZXcgaXRlbS9yb3cgaW4gdGhlIHBpY2tsaXN0IHNob3dpbmcgXCJObyBtYXRjaGVzXCIgdGhhdCBhbGxvd3MgdGhlIFwidXNlIGFkZHJlc3MgZW50ZXJlZFwiIG9wdGlvblxyXG4gICAgICB0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkLmVsZW1lbnQgPSB0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkLmVsZW1lbnQgfHwgdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5jcmVhdGUoaXRlbXMucmVzdWx0Py5jb25maWRlbmNlKTtcclxuXHJcbiAgICAgIHRoaXMucGlja2xpc3Quc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpO1xyXG5cclxuICAgICAgLy8gUHJvdmlkZSBpbXBsZW1lbnRpbmcgc2VhcmNoIHR5cGVzIHdpdGggYSBtZWFucyBvZiBpbnZva2luZyBhIGN1c3RvbSBjYWxsYmFja1xyXG4gICAgICBpZiAodHlwZW9mIHRoaXMucGlja2xpc3QuaGFuZGxlRW1wdHlQaWNrbGlzdENhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5oYW5kbGVFbXB0eVBpY2tsaXN0Q2FsbGJhY2soKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBQcmVwZW5kIGEgdGl0bGUgYmVmb3JlIHRoZSBzdWdnZXN0aW9uc1xyXG4gICAgdGhpcy5waWNrbGlzdC5kaXNwbGF5U3VnZ2VzdGlvbnNIZWFkZXIgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHRpdGxlRGl2ID0gKDxIVE1MRWxlbWVudD5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGlja2xpc3Qtc3VnZ2VzdGlvbnMtaGVhZGVyJykgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xyXG4gICAgICB0aXRsZURpdi5jbGFzc0xpc3QuYWRkKCdwaWNrbGlzdC1zdWdnZXN0aW9ucy1oZWFkZXInKTtcclxuICAgICAgdGl0bGVEaXYuaW5uZXJUZXh0ID0gJ1N1Z2dlc3Rpb25zOic7XHJcbiAgICAgIHRoaXMucGlja2xpc3QubGlzdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aXRsZURpdiwgdGhpcy5waWNrbGlzdC5saXN0KTtcclxuICAgIH07XHJcblxyXG4gICAgLy8gQXBwZW5kIGEgZm9vdGVyIGF0IHRoZSBib3R0b20gb2YgdGhlIHBpY2tsaXN0IHByb3ZpZGluZyBhbiBvcHRpb24gdG8gXCJ1c2UgYWRkcmVzcyBlbnRlcmVkXCJcclxuICAgIHRoaXMucGlja2xpc3QuZGlzcGxheVVzZUFkZHJlc3NFbnRlcmVkRm9vdGVyID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250YWluZXJEaXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGlja2xpc3QtdXNlLWVudGVyZWQtY29udGFpbmVyJykgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIGNvbnRhaW5lckRpdi5jbGFzc0xpc3QuYWRkKCdwaWNrbGlzdC11c2UtZW50ZXJlZC1jb250YWluZXInKTtcclxuICAgICAgdGhpcy5waWNrbGlzdC5saXN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNvbnRhaW5lckRpdiwgdGhpcy5waWNrbGlzdC5saXN0Lm5leHRFbGVtZW50U2libGluZyk7XHJcblxyXG4gICAgICBjb25zdCB0aXRsZURpdiA9ICg8SFRNTEVsZW1lbnQ+ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBpY2tsaXN0LXVzZS1lbnRlcmVkLWhlYWRlcicpIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTtcclxuICAgICAgdGl0bGVEaXYuY2xhc3NMaXN0LmFkZCgncGlja2xpc3QtdXNlLWVudGVyZWQtaGVhZGVyJyk7XHJcbiAgICAgIHRpdGxlRGl2LmlubmVyVGV4dCA9ICdPciB1c2UgYWRkcmVzcyBlbnRlcmVkOic7XHJcbiAgICAgIGNvbnRhaW5lckRpdi5hcHBlbmRDaGlsZCh0aXRsZURpdik7XHJcblxyXG4gICAgICBjb25zdCBpdGVtRGl2ID0gKDxIVE1MRWxlbWVudD5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGlja2xpc3QtdXNlLWVudGVyZWQtb3B0aW9uJykgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xyXG4gICAgICBpdGVtRGl2LmNsYXNzTGlzdC5hZGQoJ3BpY2tsaXN0LXVzZS1lbnRlcmVkLW9wdGlvbicpO1xyXG4gICAgICBpdGVtRGl2LmlubmVyVGV4dCA9IHRoaXMuY3VycmVudFNlYXJjaFRlcm0ucmVwbGFjZSgvLCsvZywgJywgJyk7XHJcbiAgICAgIGl0ZW1EaXYuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkLmNsaWNrKTtcclxuICAgICAgY29udGFpbmVyRGl2LmFwcGVuZENoaWxkKGl0ZW1EaXYpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBJZiB0aGUgcGlja2xpc3QgY29udGFpbmVyIGlzIG91dCBvZiBib3VuZHMgdG8gdGhlIHRvcCBvciBib3R0b20sIHRoZW4gc2Nyb2xsIGl0IGludG8gdmlld1xyXG4gICAgdGhpcy5waWNrbGlzdC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBvdXRPZkJvdW5kc1RvcCA9IHRoaXMucGlja2xpc3QuY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCA8IDA7XHJcbiAgICAgIGNvbnN0IG91dE9mQm91bmRzQm90dG9tID0gdGhpcy5waWNrbGlzdC5jb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tID4gd2luZG93LmlubmVySGVpZ2h0O1xyXG5cclxuICAgICAgaWYgKG91dE9mQm91bmRzVG9wIHx8IG91dE9mQm91bmRzQm90dG9tKSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5jb250YWluZXIuc2Nyb2xsSW50b1ZpZXcoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkID0ge1xyXG4gICAgICBlbGVtZW50OiBudWxsLFxyXG4gICAgICAvLyBDcmVhdGUgYSBcInVzZSBhZGRyZXNzIGVudGVyZWRcIiBvcHRpb25cclxuICAgICAgY3JlYXRlOiAoY29uZmlkZW5jZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IHtcclxuICAgICAgICAgIHRleHQ6IGAke2NvbmZpZGVuY2V9ICR7dGhpcy5vcHRpb25zLnVzZUFkZHJlc3NFbnRlcmVkVGV4dH1gXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBsaXN0SXRlbSA9IHRoaXMucGlja2xpc3QuY3JlYXRlTGlzdEl0ZW0oaXRlbSk7XHJcbiAgICAgICAgbGlzdEl0ZW0uY2xhc3NMaXN0LmFkZCgndXNlLWFkZHJlc3MtZW50ZXJlZCcpO1xyXG4gICAgICAgIGxpc3RJdGVtLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnRW50ZXIgYWRkcmVzcyBtYW51YWxseScpO1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QubGlzdCA9IHRoaXMucGlja2xpc3QubGlzdCB8fCB0aGlzLnBpY2tsaXN0LmNyZWF0ZUxpc3QoKTtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobGlzdEl0ZW0sIHRoaXMucGlja2xpc3QuY29udGFpbmVyLmZpcnN0Q2hpbGQpO1xyXG4gICAgICAgIGxpc3RJdGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5jbGljayk7XHJcbiAgICAgICAgcmV0dXJuIGxpc3RJdGVtO1xyXG4gICAgICB9LFxyXG4gICAgICAvLyBEZXN0cm95IHRoZSBcInVzZSBhZGRyZXNzIGVudGVyZWRcIiBvcHRpb25cclxuICAgICAgZGVzdHJveTogKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkLmVsZW1lbnQpIHtcclxuICAgICAgICAgIHRoaXMucGlja2xpc3QubGlzdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucGlja2xpc3QudXNlQWRkcmVzc0VudGVyZWQuZWxlbWVudCk7XHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkLmVsZW1lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAvLyBVc2UgdGhlIGFkZHJlc3MgZW50ZXJlZCBhcyB0aGUgRm9ybWF0dGVkIGFkZHJlc3NcclxuICAgICAgY2xpY2s6ICgpID0+IHtcclxuICAgICAgICBjb25zdCBpbnB1dERhdGEgPSB7XHJcbiAgICAgICAgICByZXN1bHQ6IHtcclxuICAgICAgICAgICAgY29uZmlkZW5jZTogJ05vIG1hdGNoZXMnLFxyXG4gICAgICAgICAgICBhZGRyZXNzOiB7XHJcbiAgICAgICAgICAgICAgYWRkcmVzc19saW5lXzE6ICcnLFxyXG4gICAgICAgICAgICAgIGFkZHJlc3NfbGluZV8yOiAnJyxcclxuICAgICAgICAgICAgICBhZGRyZXNzX2xpbmVfMzogJycsXHJcbiAgICAgICAgICAgICAgbG9jYWxpdHk6ICcnLFxyXG4gICAgICAgICAgICAgIHJlZ2lvbjogJycsXHJcbiAgICAgICAgICAgICAgcG9zdGFsX2NvZGU6ICcnLFxyXG4gICAgICAgICAgICAgIGNvdW50cnk6ICcnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50U2VhcmNoVGVybSkge1xyXG4gICAgICAgICAgLy8gVHJ5IGFuZCBzcGxpdCBpbnRvIGxpbmVzIGJ5IHVzaW5nIGNvbW1hIGRlbGltaXRlclxyXG4gICAgICAgICAgY29uc3QgbGluZXMgPSB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgICBpZiAobGluZXNbMF0pIHtcclxuICAgICAgICAgICAgaW5wdXREYXRhLnJlc3VsdC5hZGRyZXNzLmFkZHJlc3NfbGluZV8xID0gbGluZXNbMF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAobGluZXNbMV0pIHtcclxuICAgICAgICAgICAgaW5wdXREYXRhLnJlc3VsdC5hZGRyZXNzLmFkZHJlc3NfbGluZV8yID0gbGluZXNbMV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAobGluZXNbMl0pIHtcclxuICAgICAgICAgICAgaW5wdXREYXRhLnJlc3VsdC5hZGRyZXNzLmFkZHJlc3NfbGluZV8zID0gbGluZXNbMl07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMzsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlucHV0RGF0YS5yZXN1bHQuYWRkcmVzcy5hZGRyZXNzX2xpbmVfMyArPSBsaW5lc1tpXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucmVzdWx0LnNob3coaW5wdXREYXRhKTtcclxuICAgICAgICB0aGlzLnJlc3VsdC51cGRhdGVIZWFkaW5nKHRoaXMub3B0aW9ucy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLm1hbnVhbEhlYWRpbmdUZXh0KTtcclxuICAgICAgfSxcclxuICAgICAgLy8gQ3JlYXRlIGFuZCByZXR1cm4gYW4gYWRkcmVzcyBsaW5lIG9iamVjdCB3aXRoIHRoZSBrZXkgYXMgdGhlIGxhYmVsXHJcbiAgICAgIGZvcm1hdE1hbnVhbEFkZHJlc3NMaW5lOiBmdW5jdGlvbiAobGluZXMsIGkpIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBkZWZhdWx0cy5hZGRyZXNzTGluZUxhYmVsc1tpXTtcclxuICAgICAgICBjb25zdCBsaW5lT2JqZWN0ID0ge307XHJcbiAgICAgICAgbGluZU9iamVjdFtrZXldID0gbGluZXNbaV0gfHwgJyc7XHJcbiAgICAgICAgcmV0dXJuIGxpbmVPYmplY3Q7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8gQ3JlYXRlIHRoZSBwaWNrbGlzdCBsaXN0IChhbmQgY29udGFpbmVyKSBhbmQgaW5qZWN0IGFmdGVyIHRoZSBpbnB1dFxyXG4gICAgdGhpcy5waWNrbGlzdC5jcmVhdGVMaXN0ID0gKCkgPT4ge1xyXG4gICAgICAvLyBJZiBTaW5nbGVsaW5lIG1vZGUgaXMgdXNlZCwgdGhlbiBhcHBlbmQgdGhlIHBpY2tsaXN0IGFmdGVyIHRoZSBsYXN0IGlucHV0IGZpZWxkLCBvdGhlcndpc2UgdXNlIHRoZSBmaXJzdCBvbmVcclxuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5TSU5HTEVMSU5FID8gdGhpcy5pbnB1dHMubGVuZ3RoIC0gMSA6IDA7XHJcblxyXG4gICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2FkZHJlc3MtcGlja2xpc3QtY29udGFpbmVyJyk7XHJcbiAgICAgIHRoaXMucGlja2xpc3QuY29udGFpbmVyID0gY29udGFpbmVyO1xyXG5cclxuICAgICAgLy8gSW5zZXJ0IHRoZSBwaWNrbGlzdCBjb250YWluZXIgYWZ0ZXIgdGhlIGlucHV0XHJcbiAgICAgIHRoaXMuaW5wdXRzW3Bvc2l0aW9uXS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLnBpY2tsaXN0LmNvbnRhaW5lciwgdGhpcy5pbnB1dHNbcG9zaXRpb25dLm5leHRFbGVtZW50U2libGluZyk7XHJcblxyXG4gICAgICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIGxpc3QuY2xhc3NMaXN0LmFkZCgnYWRkcmVzcy1waWNrbGlzdCcpO1xyXG4gICAgICAvLyBBcHBlbmQgdGhlIHBpY2tsaXN0IHRvIHRoZSBpbm5lciB3cmFwcGVyXHJcbiAgICAgIHRoaXMucGlja2xpc3QuY29udGFpbmVyLmFwcGVuZENoaWxkKGxpc3QpO1xyXG5cclxuICAgICAgLy8gQWRkIGEgY2xhc3MgdG8gdGhlIGlucHV0IHRvIGRlbm90ZSB0aGF0IGEgcGlja2xpc3Qgd2l0aCBzdWdnZXN0aW9ucyBpcyBiZWluZyBzaG93blxyXG4gICAgICB0aGlzLmlucHV0c1twb3NpdGlvbl0uY2xhc3NMaXN0LmFkZCgnc2hvd2luZy1zdWdnZXN0aW9ucycpO1xyXG5cclxuICAgICAgbGlzdC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5waWNrbGlzdC5jaGVja0VudGVyKTtcclxuICAgICAgcmV0dXJuIGxpc3Q7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIENyZWF0ZSBhIG5ldyBwaWNrbGlzdCBpdGVtL3Jvd1xyXG4gICAgdGhpcy5waWNrbGlzdC5jcmVhdGVMaXN0SXRlbSA9IChpdGVtOiBQaWNrbGlzdEl0ZW0pID0+IHtcclxuICAgICAgY29uc3Qgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIHJvdy5pbm5lckhUTUwgPSB0aGlzLnBpY2tsaXN0LmFkZE1hdGNoaW5nRW1waGFzaXMoaXRlbSk7XHJcblxyXG4gICAgICAvLyBTdG9yZSB0aGUgRm9ybWF0IFVSTCBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSB1c2UgdGhlIGdsb2JhbF9hZGRyZXNzX2tleSBhcyBhIFwicmVmaW5lbWVudFwiIHByb3BlcnR5XHJcbiAgICAgIGlmIChpdGVtLmZvcm1hdCkge1xyXG4gICAgICAgIHJvdy5zZXRBdHRyaWJ1dGUoJ2Zvcm1hdCcsIGl0ZW0uZm9ybWF0KTtcclxuICAgICAgfSBlbHNlIGlmIChpdGVtLmdsb2JhbF9hZGRyZXNzX2tleSkge1xyXG4gICAgICAgIHJvdy5zZXRBdHRyaWJ1dGUoJ3JlZmluZScsIGl0ZW0uZ2xvYmFsX2FkZHJlc3Nfa2V5KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcm93O1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnBpY2tsaXN0LnJlZmluZSA9IHtcclxuICAgICAgZWxlbWVudDogbnVsbCxcclxuICAgICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBwaWNrbGlzdCBuZWVkcyByZWZpbmluZy4gVGhpcyBoYXBwZW5zIGFmdGVyIGFuIGl0ZW0gaGFzIGJlZW4gXCJzdGVwcGVkIGludG9cIiBidXQgaGFzIGFuIHVucmVzb2x2YWJsZSByYW5nZS5cclxuICAgICAgLy8gVGhlIHVzZXIgaXMgcHJvbXB0ZWQgdG8gZW50ZXIgdGhlaXIgc2VsZWN0aW9uIChlLmcuIGJ1aWxkaW5nIG51bWJlcikuXHJcbiAgICAgIGlzTmVlZGVkOiAocmVzcG9uc2U6IFNlYXJjaFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoVHlwZSAhPT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLkFVVE9DT01QTEVURSAmJiAocmVzcG9uc2UucmVzdWx0LmNvbmZpZGVuY2UgPT09ICdQcmVtaXNlcyBwYXJ0aWFsJyB8fCByZXNwb25zZS5yZXN1bHQuY29uZmlkZW5jZSA9PT0gJ1N0cmVldCBwYXJ0aWFsJyB8fCByZXNwb25zZS5yZXN1bHQuY29uZmlkZW5jZSA9PT0gJ011bHRpcGxlIG1hdGNoZXMnKTtcclxuICAgICAgfSxcclxuICAgICAgY3JlYXRlSW5wdXQ6IChwcm9tcHQ6IHN0cmluZywga2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCByb3cgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGlja2xpc3QtcmVmaW5lbWVudC1ib3gnKSB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICByb3cuY2xhc3NMaXN0LmFkZCgncGlja2xpc3QtcmVmaW5lbWVudC1ib3gnKTtcclxuXHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSAoPEhUTUxJbnB1dEVsZW1lbnQ+ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBpY2tsaXN0LXJlZmluZW1lbnQtYm94IGlucHV0JykgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSk7XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTtcclxuICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgcHJvbXB0KTtcclxuICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2tleScsIGtleSk7XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdhdXRvY29tcGxldGUnLCAnbmV3LXBhc3N3b3JkJyk7XHJcbiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMucGlja2xpc3QucmVmaW5lLmVudGVyLmJpbmQodGhpcykpO1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QucmVmaW5lLmVsZW1lbnQgPSBpbnB1dDtcclxuXHJcbiAgICAgICAgY29uc3QgYnV0dG9uID0gKDxIVE1MQnV0dG9uRWxlbWVudD5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGlja2xpc3QtcmVmaW5lbWVudC1ib3ggYnV0dG9uJykgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJykpO1xyXG4gICAgICAgIGJ1dHRvbi5pbm5lclRleHQgPSAnUmVmaW5lJztcclxuICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnBpY2tsaXN0LnJlZmluZS5lbnRlcik7XHJcblxyXG4gICAgICAgIHJvdy5hcHBlbmRDaGlsZChpbnB1dCk7XHJcbiAgICAgICAgcm93LmFwcGVuZENoaWxkKGJ1dHRvbik7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJvdywgdGhpcy5waWNrbGlzdC5saXN0KTtcclxuXHJcbiAgICAgICAgaW5wdXQuZm9jdXMoKTtcclxuICAgICAgfSxcclxuICAgICAgZW50ZXI6IChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgICAvLyBBbGxvdyBhIG5ldyByZWZpbmVtZW50IGVudHJ5IGlmIHRoZSBlbnRlciBrZXkgd2FzIHVzZWQgaW5zaWRlIHRoZSB0ZXh0Ym94IG9yIHRoZSBidXR0b24gd2FzIGNsaWNrZWRcclxuICAgICAgICBpZiAoKGV2ZW50IGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudCAmJiBldmVudC5rZXkgPT09ICdFbnRlcicpIHx8IGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgICAgICAvLyBJZiBhIHBpY2tsaXN0IGl0ZW0gaXMgY3VycmVudGx5IHNlbGVjdGVkLCB0aGVuIHBvdGVudGlhbGx5IHVzZSB0aGlzIGluc3RlYWQgb2Ygd2hhdCdzIGluIHRoZSBpbnB1dCBmaWVsZFxyXG4gICAgICAgICAgaWYgKHRoaXMucGlja2xpc3QuY3VycmVudEl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5waWNrbGlzdC5jaGVja0VudGVyKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgICAgICAgLy8gVGFrZSB0aGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgZmllbGQgYW5kIHVzZSB0aGlzIHRvIGZ1cnRoZXIgcmVmaW5lIHRoZSBhZGRyZXNzXHJcbiAgICAgICAgICBpZiAodGhpcy5waWNrbGlzdC5yZWZpbmUuZWxlbWVudC52YWx1ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5zdHJpbmdpZnkoe3JlZmluZW1lbnQ6IHRoaXMucGlja2xpc3QucmVmaW5lLmVsZW1lbnQudmFsdWV9KTtcclxuICAgICAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5waWNrbGlzdC5yZWZpbmUuZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2tleScpO1xyXG4gICAgICAgICAgICB0aGlzLnJlcXVlc3Quc2VuZChgJHt0aGlzLmJhc2VVcmx9JHt0aGlzLnJlZmluZUVuZHBvaW50fS8ke2tleX1gLCAnUE9TVCcsIHRoaXMucmVzdWx0LmhhbmRsZVZhbGlkYXRlUmVzcG9uc2UsIGRhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5waWNrbGlzdC5zaXplICYmIGV2ZW50IGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudCAmJiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fCBldmVudC5rZXkgPT09ICdFbnRlcicpKSB7XHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0LmtleXVwKGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5waWNrbGlzdC5yZXNldFRhYkNvdW50ID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLnBpY2tsaXN0LnRhYkNvdW50ID0gLTE7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEtleWJvYXJkIG5hdmlnYXRpb25cclxuICAgIHRoaXMucGlja2xpc3Qua2V5dXAgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLnBpY2tsaXN0Lmxpc3QpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucGlja2xpc3QuY2hlY2tFbnRlcihldmVudCk7XHJcblxyXG4gICAgICAvLyBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgYWRkcmVzc2VzIGluIHRoZSBwaWNrbGlzdFxyXG4gICAgICBjb25zdCBhZGRyZXNzZXMgPSB0aGlzLnBpY2tsaXN0Lmxpc3QucXVlcnlTZWxlY3RvckFsbCgnZGl2Jyk7XHJcbiAgICAgIGxldCBmaXJzdEFkZHJlc3M7XHJcbiAgICAgIGxldCBsYXN0QWRkcmVzcztcclxuXHJcbiAgICAgIC8vIElmIHRoZSBwaWNrbGlzdCBpcyBlbXB0eSwganVzdCByZXR1cm5cclxuICAgICAgaWYgKGFkZHJlc3Nlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFNldCB0aGUgdGFiQ291bnQgYmFzZWQgb24gcHJldmlvdXMgYW5kIGRpcmVjdGlvblxyXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LnRhYkNvdW50LS07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QudGFiQ291bnQrKztcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gU2V0IHRvcCBhbmQgYm90dG9tIHBvc2l0aW9ucyBhbmQgZW5hYmxlIHdyYXAtYXJvdW5kXHJcbiAgICAgIGlmICh0aGlzLnBpY2tsaXN0LnRhYkNvdW50IDwgMCkge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QudGFiQ291bnQgPSBhZGRyZXNzZXMubGVuZ3RoIC0gMTtcclxuICAgICAgICBsYXN0QWRkcmVzcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMucGlja2xpc3QudGFiQ291bnQgPiBhZGRyZXNzZXMubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QudGFiQ291bnQgPSAwO1xyXG4gICAgICAgIGZpcnN0QWRkcmVzcyA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEhpZ2hsaWdodCB0aGUgc2VsZWN0ZWQgYWRkcmVzc1xyXG4gICAgICBjb25zdCBjdXJyZW50bHlIaWdobGlnaHRlZCA9IGFkZHJlc3Nlc1t0aGlzLnBpY2tsaXN0LnRhYkNvdW50XTtcclxuICAgICAgLy8gUmVtb3ZlIGFueSBwcmV2aW91c2x5IGhpZ2hsaWdodGVkIG9uZXNcclxuICAgICAgY29uc3QgcHJldmlvdXNseUhpZ2hsaWdodGVkID0gdGhpcy5waWNrbGlzdC5saXN0LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZCcpO1xyXG4gICAgICBpZiAocHJldmlvdXNseUhpZ2hsaWdodGVkKSB7XHJcbiAgICAgICAgcHJldmlvdXNseUhpZ2hsaWdodGVkLmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJyk7XHJcbiAgICAgIH1cclxuICAgICAgY3VycmVudGx5SGlnaGxpZ2h0ZWQuY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTtcclxuICAgICAgLy8gU2V0IHRoZSBjdXJyZW50SXRlbSBvbiB0aGUgcGlja2xpc3QgdG8gdGhlIGN1cnJlbnRseSBoaWdobGlnaHRlZCBhZGRyZXNzXHJcbiAgICAgIHRoaXMucGlja2xpc3QuY3VycmVudEl0ZW0gPSBjdXJyZW50bHlIaWdobGlnaHRlZDtcclxuXHJcbiAgICAgIC8vIFNjcm9sbCBhZGRyZXNzIGludG8gdmlldywgaWYgcmVxdWlyZWRcclxuICAgICAgY29uc3QgYWRkcmVzc0xpc3RDb29yZHMgPSB7XHJcbiAgICAgICAgdG9wOiB0aGlzLnBpY2tsaXN0Lmxpc3Qub2Zmc2V0VG9wLFxyXG4gICAgICAgIGJvdHRvbTogdGhpcy5waWNrbGlzdC5saXN0Lm9mZnNldFRvcCArIHRoaXMucGlja2xpc3QubGlzdC5vZmZzZXRIZWlnaHQsXHJcbiAgICAgICAgc2Nyb2xsVG9wOiB0aGlzLnBpY2tsaXN0Lmxpc3Quc2Nyb2xsVG9wLFxyXG4gICAgICAgIHNlbGVjdGVkVG9wOiBjdXJyZW50bHlIaWdobGlnaHRlZC5vZmZzZXRUb3AsXHJcbiAgICAgICAgc2VsZWN0ZWRCb3R0b206IGN1cnJlbnRseUhpZ2hsaWdodGVkLm9mZnNldFRvcCArIGN1cnJlbnRseUhpZ2hsaWdodGVkLm9mZnNldEhlaWdodCxcclxuICAgICAgICBzY3JvbGxBbW91bnQ6IGN1cnJlbnRseUhpZ2hsaWdodGVkLm9mZnNldEhlaWdodFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAoZmlyc3RBZGRyZXNzKSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0LnNjcm9sbFRvcCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAobGFzdEFkZHJlc3MpIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3Quc2Nyb2xsVG9wID0gOTk5O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGFkZHJlc3NMaXN0Q29vcmRzLnNlbGVjdGVkQm90dG9tICsgYWRkcmVzc0xpc3RDb29yZHMuc2Nyb2xsQW1vdW50ID4gYWRkcmVzc0xpc3RDb29yZHMuYm90dG9tKSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0LnNjcm9sbFRvcCA9IGFkZHJlc3NMaXN0Q29vcmRzLnNjcm9sbFRvcCArIGFkZHJlc3NMaXN0Q29vcmRzLnNjcm9sbEFtb3VudDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChhZGRyZXNzTGlzdENvb3Jkcy5zZWxlY3RlZFRvcCAtIGFkZHJlc3NMaXN0Q29vcmRzLnNjcm9sbEFtb3VudCAtIGFkZHJlc3NMaXN0Q29vcmRzLnRvcCA8IGFkZHJlc3NMaXN0Q29vcmRzLnNjcm9sbFRvcCkge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QubGlzdC5zY3JvbGxUb3AgPSBhZGRyZXNzTGlzdENvb3Jkcy5zY3JvbGxUb3AgLSBhZGRyZXNzTGlzdENvb3Jkcy5zY3JvbGxBbW91bnQ7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8gQWRkIGVtcGhhc2lzIHRvIHRoZSBwaWNrbGlzdCBpdGVtcyBoaWdobGlnaHRpbmcgdGhlIG1hdGNoXHJcbiAgICB0aGlzLnBpY2tsaXN0LmFkZE1hdGNoaW5nRW1waGFzaXMgPSBmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICBjb25zdCBoaWdobGlnaHRzID0gaXRlbS5tYXRjaGVkIHx8IFtdO1xyXG4gICAgICBsZXQgbGFiZWwgPSBpdGVtLnRleHQ7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGlnaGxpZ2h0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gJzxiPicgKyBsYWJlbC5zdWJzdHJpbmcoaGlnaGxpZ2h0c1tpXVswXSwgaGlnaGxpZ2h0c1tpXVsxXSkgKyAnPC9iPic7XHJcbiAgICAgICAgbGFiZWwgPSBsYWJlbC5zdWJzdHJpbmcoMCwgaGlnaGxpZ2h0c1tpXVswXSkgKyByZXBsYWNlbWVudCArIGxhYmVsLnN1YnN0cmluZyhoaWdobGlnaHRzW2ldWzFdKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGxhYmVsO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBMaXN0ZW4gdG8gYSBwaWNrbGlzdCBzZWxlY3Rpb25cclxuICAgIHRoaXMucGlja2xpc3QubGlzdGVuID0gKHJvdykgPT4ge1xyXG4gICAgICByb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnBpY2tsaXN0LnBpY2suYmluZChudWxsLCByb3cpKTtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5waWNrbGlzdC5jaGVja0VudGVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnVGFiJykge1xyXG4gICAgICAgIGxldCBwaWNrbGlzdEl0ZW07XHJcbiAgICAgICAgLy8gSWYgcGlja2xpc3QgY29udGFpbnMgMSBhZGRyZXNzIHRoZW4gdXNlIHRoaXMgb25lIHRvIGZvcm1hdFxyXG4gICAgICAgIGlmICh0aGlzLnBpY2tsaXN0LnNpemUgPT09IDEpIHtcclxuICAgICAgICAgIHBpY2tsaXN0SXRlbSA9IHRoaXMucGlja2xpc3QubGlzdC5xdWVyeVNlbGVjdG9yQWxsKCdkaXYnKVswXTtcclxuICAgICAgICB9IC8vIEVsc2UgdXNlIHRoZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgb25lIHdoZW4gbmF2aWdhdGlvbiB1c2luZyBrZXlib2FyZFxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMucGlja2xpc3QuY3VycmVudEl0ZW0pIHtcclxuICAgICAgICAgIHBpY2tsaXN0SXRlbSA9IHRoaXMucGlja2xpc3QuY3VycmVudEl0ZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwaWNrbGlzdEl0ZW0pIHtcclxuICAgICAgICAgIHRoaXMucGlja2xpc3QucGljayhwaWNrbGlzdEl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBIb3cgdG8gaGFuZGxlIGEgcGlja2xpc3Qgc2VsZWN0aW9uXHJcbiAgICB0aGlzLnBpY2tsaXN0LnBpY2sgPSAoaXRlbSkgPT4ge1xyXG4gICAgICAvLyBGaXJlIGFuIGV2ZW50IHdoZW4gYW4gYWRkcmVzcyBpcyBwaWNrZWRcclxuICAgICAgdGhpcy5ldmVudHMudHJpZ2dlcigncG9zdC1waWNrbGlzdC1zZWxlY3Rpb24nLCBpdGVtKTtcclxuXHJcbiAgICAgIC8vIEdldCBhIGZpbmFsIGFkZHJlc3MgdXNpbmcgcGlja2xpc3QgaXRlbSB1bmxlc3MgaXQgbmVlZHMgcmVmaW5lbWVudFxyXG4gICAgICBpZiAoaXRlbS5nZXRBdHRyaWJ1dGUoJ2Zvcm1hdCcpKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtYXQoaXRlbS5nZXRBdHRyaWJ1dGUoJ2Zvcm1hdCcpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJlZmluZShpdGVtLmdldEF0dHJpYnV0ZSgncmVmaW5lJykpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXQodXJsOiBzdHJpbmcpIHtcclxuICAgIC8vIFRyaWdnZXIgYW4gZXZlbnRcclxuICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3ByZS1mb3JtYXR0aW5nLXNlYXJjaCcsIHVybCk7XHJcblxyXG4gICAgLy8gSGlkZSB0aGUgc2VhcmNoaW5nIHNwaW5uZXJcclxuICAgIHRoaXMuc2VhcmNoU3Bpbm5lci5oaWRlKCk7XHJcblxyXG4gICAgLy8gSW5pdGlhdGUgYSBuZXcgRm9ybWF0IHJlcXVlc3RcclxuICAgIHRoaXMucmVxdWVzdC5zZW5kKHVybCwgJ0dFVCcsIHRoaXMucmVzdWx0LnNob3csIHVuZGVmaW5lZCwgW3trZXk6ICdBZGQtTWV0YWRhdGEnLCB2YWx1ZTogdHJ1ZX0vKiwge2tleTogJ0FkZC1Db21wb25lbnRzJywgdmFsdWU6IHRydWV9Ki9dKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVmaW5lKGtleTogc3RyaW5nKSB7XHJcbiAgICAvLyBUcmlnZ2VyIGFuIGV2ZW50XHJcbiAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwcmUtcmVmaW5lbWVudCcsIGtleSk7XHJcblxyXG4gICAgLy8gSGlkZSB0aGUgc2VhcmNoaW5nIHNwaW5uZXJcclxuICAgIHRoaXMuc2VhcmNoU3Bpbm5lci5oaWRlKCk7XHJcblxyXG4gICAgLy8gSW5pdGlhdGUgYSBuZXcgU3RlcC1pbiByZXF1ZXN0IHVzaW5nIHRoZSBnbG9iYWwgYWRkcmVzcyBrZXlcclxuICAgIHRoaXMucmVxdWVzdC5zZW5kKGAke3RoaXMuYmFzZVVybH0ke3RoaXMuc3RlcEluRW5kcG9pbnR9LyR7a2V5fWAsICdHRVQnLCB0aGlzLnBpY2tsaXN0LnNob3cpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXN1bHQ6IEFkZHJlc3NWYWxpZGF0aW9uUmVzdWx0ID0ge1xyXG4gICAgZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcjogbnVsbCxcclxuICAgIGxhc3RBZGRyZXNzRmllbGQ6IG51bGwsXHJcbiAgICBnZW5lcmF0ZUFkZHJlc3NMaW5lUmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgLy8gUmVuZGVyIGEgRm9ybWF0dGVkIGFkZHJlc3NcclxuICAgIHNob3c6IChkYXRhOiBTZWFyY2hSZXNwb25zZSkgPT4ge1xyXG4gICAgICAvLyBIaWRlIHRoZSBpbmxpbmUgc2VhcmNoIHNwaW5uZXJcclxuICAgICAgdGhpcy5zZWFyY2hTcGlubmVyLmhpZGUoKTtcclxuXHJcbiAgICAgIC8vIEhpZGUgdGhlIHBpY2tsaXN0XHJcbiAgICAgIHRoaXMucGlja2xpc3QuaGlkZSgpO1xyXG5cclxuICAgICAgLy8gQ2xlYXIgdGhlIHByZXZpb3VzIHNlYXJjaCB0ZXJtXHJcbiAgICAgIHRoaXMubGFzdFNlYXJjaFRlcm0gPSAnJztcclxuXHJcbiAgICAgIC8vIEFsbG93IEF1dG9jb21wbGV0ZSB0aHJvdWdoIGFzIGl0IHdpbGwgbmVlZCB0byBjcmVhdGUgdGhlIGFkZGl0aW9uYWwgb3V0cHV0IGZpZWxkcyBmb3IgdGhlIGZpbmFsIGFkZHJlc3MuXHJcbiAgICAgIC8vIE90aGVyd2lzZSwgb25seSByZW5kZXIgdGhlIGZpbmFsIGFkZHJlc3MgaWYgdGhlcmUgYXJlIHJlc3VsdHMgYXZhaWxhYmxlLlxyXG4gICAgICBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuQVVUT0NPTVBMRVRFIHx8IChkYXRhLnJlc3VsdC5hZGRyZXNzICYmIGRhdGEucmVzdWx0LmNvbmZpZGVuY2UgIT09ICdObyBtYXRjaGVzJykpIHtcclxuXHJcbiAgICAgICAgLy8gQ2xlYXIgc2VhcmNoIGlucHV0KHMpXHJcbiAgICAgICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnB1dCA9PiBpbnB1dC52YWx1ZSA9ICcnKTtcclxuXHJcbiAgICAgICAgLy8gQ2FsY3VsYXRlIGlmIHdlIG5lZWRlZCB0byBnZW5lcmF0ZSB0aGUgZm9ybWF0dGVkIGFkZHJlc3MgaW5wdXQgZmllbGRzIGxhdGVyXHJcbiAgICAgICAgdGhpcy5yZXN1bHQuY2FsY3VsYXRlSWZBZGRyZXNzTGluZUdlbmVyYXRpb25SZXF1aXJlZCgpO1xyXG5cclxuICAgICAgICAvLyBHZXQgZm9ybWF0dGVkIGFkZHJlc3MgY29udGFpbmVyIGVsZW1lbnRcclxuICAgICAgICAvLyBPbmx5IGNyZWF0ZSBhIGNvbnRhaW5lciBpZiB3ZSdyZSBjcmVhdGluZyBpbnB1dHMuIE90aGVyd2lzZSB0aGUgdXNlciB3aWxsIGhhdmUgdGhlaXIgb3duIGNvbnRhaW5lci5cclxuICAgICAgICB0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyID0gdGhpcy5vcHRpb25zLmVsZW1lbnRzLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXI7XHJcbiAgICAgICAgaWYgKCF0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyICYmIHRoaXMucmVzdWx0LmdlbmVyYXRlQWRkcmVzc0xpbmVSZXF1aXJlZCkge1xyXG4gICAgICAgICAgdGhpcy5yZXN1bHQuY3JlYXRlRm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTG9vcCBvdmVyIGVhY2ggZm9ybWF0dGVkIGFkZHJlc3MgY29tcG9uZW50XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBPYmplY3Qua2V5cyhkYXRhLnJlc3VsdC5hZGRyZXNzKS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoZGF0YS5yZXN1bHQuYWRkcmVzcylbaV07XHJcbiAgICAgICAgICBjb25zdCBhZGRyZXNzQ29tcG9uZW50ID0gZGF0YS5yZXN1bHQuYWRkcmVzc1trZXldO1xyXG4gICAgICAgICAgLy8gQmluZCB0aGUgYWRkcmVzcyBlbGVtZW50IHRvIHRoZSB1c2VyJ3MgYWRkcmVzcyBmaWVsZCAob3IgY3JlYXRlIGEgbmV3IG9uZSlcclxuICAgICAgICAgIHRoaXMucmVzdWx0LnVwZGF0ZUFkZHJlc3NMaW5lKGtleSwgYWRkcmVzc0NvbXBvbmVudCwgJ2FkZHJlc3MtbGluZS1pbnB1dCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSGlkZSBjb3VudHJ5IGFuZCBhZGRyZXNzIHNlYXJjaCBmaWVsZHMgKGlmIHRoZXkgaGF2ZSBhICd0b2dnbGUnIGNsYXNzKVxyXG4gICAgICAgIHRoaXMudG9nZ2xlU2VhcmNoSW5wdXRzKCdoaWRlJyk7XHJcblxyXG4gICAgICAgIC8vIEVuYWJsZSB1c2VycyB0byBzZWFyY2ggYWdhaW4gc3Vic2VxdWVudGx5XHJcbiAgICAgICAgdGhpcy5oYXNTZWFyY2hJbnB1dEJlZW5SZXNldCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIElmIGFuIGFkZHJlc3MgbGluZSBpcyBhbHNvIHRoZSBtYWluIHNlYXJjaCBpbnB1dCwgc2V0IHByb3BlcnR5IHRvIGZhbHNlLlxyXG4gICAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHR5cGluZyBpbiB0aGUgZmllbGQgYWdhaW4gKGFmdGVyIGFuIGFkZHJlc3MgaGFzIGJlZW5cclxuICAgICAgICAvLyByZXR1cm5lZCkgd2lsbCBub3QgdHJpZ2dlciBhIG5ldyBzZWFyY2guXHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLkFVVE9DT01QTEVURSkge1xyXG4gICAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IGluIHRoaXMub3B0aW9ucy5lbGVtZW50cykge1xyXG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMub3B0aW9ucy5lbGVtZW50cywgZWxlbWVudCkpIHtcclxuICAgICAgICAgICAgICAvLyBFeGNsdWRpbmcgdGhlIGlucHV0IGl0c2VsZiwgZG9lcyBhbm90aGVyIGVsZW1lbnQgbWF0Y2ggdGhlIGlucHV0IGZpZWxkP1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50ICE9PSAnaW5wdXQnICYmIHRoaXMub3B0aW9ucy5lbGVtZW50c1tlbGVtZW50XSA9PT0gdGhpcy5pbnB1dHNbMF0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFzU2VhcmNoSW5wdXRCZWVuUmVzZXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSAnU2VhcmNoIGFnYWluJyBsaW5rIGFuZCBpbnNlcnQgaW50byBET01cclxuICAgICAgICB0aGlzLnJlc3VsdC5jcmVhdGVTZWFyY2hBZ2FpbkxpbmsoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gRmlyZSBhbiBldmVudCB0byBzYXkgd2UndmUgZ290IHRoZSBmb3JtYXR0ZWQgYWRkcmVzc1xyXG4gICAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LWZvcm1hdHRpbmctc2VhcmNoJywgZGF0YSk7XHJcbiAgICB9LFxyXG4gICAgaGlkZTogKCkgPT4ge1xyXG4gICAgICAvLyBEZWxldGUgdGhlIGZvcm1hdHRlZCBhZGRyZXNzIGNvbnRhaW5lclxyXG4gICAgICBpZiAodGhpcy5yZXN1bHQuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcikge1xyXG4gICAgICAgIHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyKTtcclxuICAgICAgICB0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIERlbGV0ZSB0aGUgc2VhcmNoIGFnYWluIGxpbmtcclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5zZWFyY2hBZ2Fpbi5saW5rKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLnNlYXJjaEFnYWluLmxpbmsucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLm9wdGlvbnMuc2VhcmNoQWdhaW4ubGluayk7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLnNlYXJjaEFnYWluLmxpbmsgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgICAgLy8gUmVtb3ZlIHByZXZpb3VzIHZhbHVlIGZyb20gdXNlcidzIHJlc3VsdCBmaWVsZFxyXG4gICAgICAvLyBMb29wIG92ZXIgdGhlaXIgZWxlbWVudHNcclxuICAgICAgZm9yIChjb25zdCBlbGVtZW50IGluIHRoaXMub3B0aW9ucy5lbGVtZW50cykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5vcHRpb25zLmVsZW1lbnRzLCBlbGVtZW50KSkge1xyXG4gICAgICAgICAgLy8gSWYgaXQgbWF0Y2hlcyBhbiBcImFkZHJlc3NcIiBlbGVtZW50XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRlZmF1bHRzLmFkZHJlc3NMaW5lTGFiZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGVmYXVsdHMuYWRkcmVzc0xpbmVMYWJlbHNbaV07XHJcbiAgICAgICAgICAgIC8vIE9ubHkgcmVzZXQgdGhlIHZhbHVlIGlmIGl0J3Mgbm90IGFuIGlucHV0IGZpZWxkXHJcbiAgICAgICAgICAgIGlmIChsYWJlbCA9PT0gZWxlbWVudCAmJiB0aGlzLm9wdGlvbnMuZWxlbWVudHNbZWxlbWVudF0gIT09IHRoaXMuaW5wdXRzWzBdKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmVsZW1lbnRzW2VsZW1lbnRdLnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBjcmVhdGVBZGRyZXNzTGluZToge1xyXG4gICAgICAvLyBDcmVhdGUgYW4gaW5wdXQgdG8gc3RvcmUgdGhlIGFkZHJlc3MgbGluZVxyXG4gICAgICBpbnB1dDogKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBjbGFzc05hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIC8vIENyZWF0ZSBhIHdyYXBwZXJcclxuICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBkaXYuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlIGxhYmVsXHJcbiAgICAgICAgY29uc3QgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xyXG4gICAgICAgIGxhYmVsLmlubmVySFRNTCA9IGtleS5yZXBsYWNlKC8oW0EtWl0pL2csICcgJDEnKSAvLyBBZGQgc3BhY2UgYmVmb3JlIGNhcGl0YWwgTGV0dGVyc1xyXG4gICAgICAgICAgLnJlcGxhY2UoLyhbMC05XSkvZywgJyAkMScpIC8vIEFkZCBzcGFjZSBiZWZvcmUgbnVtYmVyc1xyXG4gICAgICAgICAgLnJlcGxhY2UoL14uLywgZnVuY3Rpb24gKHN0cikge3JldHVybiBzdHIudG9VcHBlckNhc2UoKTt9KTsgLy8gTWFrZSBmaXJzdCBsZXR0ZXIgb2Ygd29yZCBhIGNhcGl0YWwgbGV0dGVyXHJcbiAgICAgICAgZGl2LmFwcGVuZENoaWxkKGxhYmVsKTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBpbnB1dFxyXG4gICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpO1xyXG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGtleSk7XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIHZhbHVlKTtcclxuICAgICAgICBkaXYuYXBwZW5kQ2hpbGQoaW5wdXQpO1xyXG4gICAgICAgIHJldHVybiBkaXY7XHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIENyZWF0ZSB0aGUgYWRkcmVzcyBsaW5lIGxhYmVsIGJhc2VkIG9uIHRoZSBjb3VudHJ5IGFuZCBsYW5ndWFnZVxyXG4gICAgICBsYWJlbDogKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgbGV0IGxhYmVsID0ga2V5O1xyXG4gICAgICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5vcHRpb25zLmxhbmd1YWdlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgY29uc3QgY291bnRyeSA9IHRoaXMuY3VycmVudENvdW50cnlDb2RlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgaWYgKHRyYW5zbGF0aW9ucykge1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlZExhYmVsID0gdHJhbnNsYXRpb25zW2xhbmd1YWdlXVtjb3VudHJ5XVtrZXldO1xyXG4gICAgICAgICAgICBpZiAodHJhbnNsYXRlZExhYmVsKSB7XHJcbiAgICAgICAgICAgICAgbGFiZWwgPSB0cmFuc2xhdGVkTGFiZWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgLy8gVHJhbnNsYXRpb24gZG9lc24ndCBleGlzdCBmb3Iga2V5XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsYWJlbDtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vIENyZWF0ZSB0aGUgZm9ybWF0dGVkIGFkZHJlc3MgY29udGFpbmVyIGFuZCBpbmplY3QgYWZ0ZXIgdGhlIGlucHV0XHJcbiAgICBjcmVhdGVGb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyOiAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnZm9ybWF0dGVkLWFkZHJlc3MnKTtcclxuXHJcbiAgICAgIC8vIElmIFNpbmdsZWxpbmUgbW9kZSBpcyB1c2VkLCB0aGVuIGFwcGVuZCB0aGUgZm9ybWF0dGVkIGFkZHJlc3MgYWZ0ZXIgdGhlIGxhc3QgaW5wdXQgZmllbGQsIG90aGVyd2lzZSB1c2UgdGhlIGZpcnN0IG9uZVxyXG4gICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlNJTkdMRUxJTkUgPyB0aGlzLmlucHV0cy5sZW5ndGggLSAxIDogMDtcclxuXHJcbiAgICAgIC8vIEluc2VydCB0aGUgY29udGFpbmVyIGFmdGVyIHRoZSBpbnB1dFxyXG4gICAgICB0aGlzLmlucHV0c1twb3NpdGlvbl0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoY29udGFpbmVyLCB0aGlzLmlucHV0c1twb3NpdGlvbl0ubmV4dFNpYmxpbmcpO1xyXG4gICAgICB0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyID0gY29udGFpbmVyO1xyXG4gICAgfSxcclxuICAgIC8vIENyZWF0ZSBhIGhlYWRpbmcgZm9yIHRoZSBmb3JtYXR0ZWQgYWRkcmVzcyBjb250YWluZXJcclxuICAgIGNyZWF0ZUhlYWRpbmc6ICgpID0+IHtcclxuICAgICAgLy8gQ3JlYXRlIGEgaGVhZGluZyBmb3IgdGhlIGZvcm1hdHRlZCBhZGRyZXNzXHJcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5zaG93SGVhZGluZykge1xyXG4gICAgICAgIGNvbnN0IGhlYWRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMub3B0aW9ucy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLmhlYWRpbmdUeXBlKTtcclxuICAgICAgICBoZWFkaW5nLmlubmVySFRNTCA9IHRoaXMub3B0aW9ucy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnZhbGlkYXRlZEhlYWRpbmdUZXh0O1xyXG4gICAgICAgIHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuYXBwZW5kQ2hpbGQoaGVhZGluZyk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyBVcGRhdGUgdGhlIGhlYWRpbmcgdGV4dCBpbiB0aGUgZm9ybWF0dGVkIGFkZHJlc3MgY29udGFpbmVyXHJcbiAgICB1cGRhdGVIZWFkaW5nOiAodGV4dCkgPT4ge1xyXG4gICAgICAvL0NoYW5nZSB0aGUgaGVhZGluZyB0ZXh0IHRvIFwiTWFudWFsIGFkZHJlc3MgZW50ZXJlZFwiXHJcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5zaG93SGVhZGluZykge1xyXG4gICAgICAgIGNvbnN0IGhlYWRpbmcgPSB0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IodGhpcy5vcHRpb25zLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuaGVhZGluZ1R5cGUpO1xyXG4gICAgICAgIGhlYWRpbmcuaW5uZXJIVE1MID0gdGV4dDtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNhbGN1bGF0ZUlmQWRkcmVzc0xpbmVHZW5lcmF0aW9uUmVxdWlyZWQ6ICgpID0+IHtcclxuICAgICAgdGhpcy5yZXN1bHQuZ2VuZXJhdGVBZGRyZXNzTGluZVJlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWZhdWx0cy5hZGRyZXNzTGluZUxhYmVscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGRlZmF1bHRzLmFkZHJlc3NMaW5lTGFiZWxzW2ldO1xyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZWxlbWVudHNba2V5XSkge1xyXG4gICAgICAgICAgdGhpcy5yZXN1bHQuZ2VuZXJhdGVBZGRyZXNzTGluZVJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICB1cGRhdGVBZGRyZXNzTGluZTogKGtleTogc3RyaW5nLCBhZGRyZXNzTGluZU9iamVjdCwgY2xhc3NOYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgLy8gRWl0aGVyIGFwcGVuZCB0aGUgcmVzdWx0IHRvIHRoZSB1c2VyJ3MgYWRkcmVzcyBmaWVsZCBvciBjcmVhdGUgYSBuZXcgZmllbGQgZm9yIHRoZW1cclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5lbGVtZW50c1trZXldKSB7XHJcbiAgICAgICAgY29uc3QgYWRkcmVzc0ZpZWxkID0gdGhpcy5vcHRpb25zLmVsZW1lbnRzW2tleV07XHJcbiAgICAgICAgdGhpcy5yZXN1bHQudXBkYXRlTGFiZWwoa2V5KTtcclxuICAgICAgICBsZXQgdmFsdWUgPSBhZGRyZXNzTGluZU9iamVjdDtcclxuICAgICAgICAvLyBJZiBhIHZhbHVlIGlzIGFscmVhZHkgcHJlc2VudCwgcHJlcGVuZCBhIGNvbW1hIGFuZCBzcGFjZVxyXG4gICAgICAgIGlmIChhZGRyZXNzRmllbGQudmFsdWUgJiYgdmFsdWUpIHtcclxuICAgICAgICAgIHZhbHVlID0gJywgJyArIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBEZWNpZGUgd2hhdCBwcm9wZXJ0eSBvZiB0aGUgbm9kZSB3ZSBuZWVkIHRvIHVwZGF0ZS4gaS5lLiBpZiBpdCdzIG5vdCBhIGZvcm0gZmllbGQsIHVwZGF0ZSB0aGUgaW5uZXJUZXh0LlxyXG4gICAgICAgIGlmIChhZGRyZXNzRmllbGQubm9kZU5hbWUgPT09ICdJTlBVVCcgfHwgYWRkcmVzc0ZpZWxkLm5vZGVOYW1lID09PSAnVEVYVEFSRUEnIHx8IGFkZHJlc3NGaWVsZC5ub2RlTmFtZSA9PT0gJ1NFTEVDVCcpIHtcclxuICAgICAgICAgIGFkZHJlc3NGaWVsZC52YWx1ZSArPSB2YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgYWRkcmVzc0ZpZWxkLmlubmVyVGV4dCArPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gU3RvcmUgYSByZWNvcmQgb2YgdGhlaXIgbGFzdCBhZGRyZXNzIGZpZWxkXHJcbiAgICAgICAgdGhpcy5yZXN1bHQubGFzdEFkZHJlc3NGaWVsZCA9IGFkZHJlc3NGaWVsZDtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnJlc3VsdC5nZW5lcmF0ZUFkZHJlc3NMaW5lUmVxdWlyZWQpIHtcclxuICAgICAgICAvLyBDcmVhdGUgYW4gaW5wdXQgdG8gc3RvcmUgdGhlIGFkZHJlc3MgbGluZVxyXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5yZXN1bHQuY3JlYXRlQWRkcmVzc0xpbmUubGFiZWwoa2V5KTtcclxuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMucmVzdWx0LmNyZWF0ZUFkZHJlc3NMaW5lLmlucHV0KGxhYmVsLCBhZGRyZXNzTGluZU9iamVjdCwgY2xhc3NOYW1lKTtcclxuICAgICAgICAvLyBJbnNlcnQgaW50byBET01cclxuICAgICAgICB0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLmFwcGVuZENoaWxkKGZpZWxkKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vIFVwZGF0ZSB0aGUgbGFiZWwgaWYgdHJhbnNsYXRpb24gaXMgcHJlc2VudFxyXG4gICAgdXBkYXRlTGFiZWw6IChrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICBsZXQgbGFiZWwgPSBrZXk7XHJcbiAgICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5vcHRpb25zLmxhbmd1YWdlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGNvbnN0IGNvdW50cnkgPSB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBpZiAodHJhbnNsYXRpb25zKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRMYWJlbCA9IHRyYW5zbGF0aW9uc1tsYW5ndWFnZV1bY291bnRyeV1ba2V5XTtcclxuICAgICAgICAgIGlmICh0cmFuc2xhdGVkTGFiZWwpIHtcclxuICAgICAgICAgICAgbGFiZWwgPSB0cmFuc2xhdGVkTGFiZWw7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhYmVscyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsYWJlbCcpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhYmVscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgIGlmIChsYWJlbHNbaV0uaHRtbEZvciA9PT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbHNbaV0uaW5uZXJIVE1MID0gdHJhbnNsYXRlZExhYmVsO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRvZXNuJ3QgZXhpc3QgZm9yIGtleVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbGFiZWw7XHJcbiAgICB9LFxyXG4gICAgLy8gQ3JlYXRlIHRoZSAnU2VhcmNoIGFnYWluJyBsaW5rIHRoYXQgcmVzZXRzIHRoZSBzZWFyY2hcclxuICAgIGNyZWF0ZVNlYXJjaEFnYWluTGluazogKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnNlYXJjaEFnYWluLnZpc2libGUpIHtcclxuICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XHJcbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnYnV0dG9uJyk7XHJcbiAgICAgICAgbGluay5jbGFzc0xpc3QuYWRkKCdzZWFyY2gtYWdhaW4tYnV0dG9uJyk7XHJcbiAgICAgICAgbGluay5pbm5lclRleHQgPSB0aGlzLm9wdGlvbnMuc2VhcmNoQWdhaW4udGV4dDtcclxuICAgICAgICAvLyBCaW5kIGV2ZW50IGxpc3RlbmVyXHJcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuZ2xvYmFsUmVzZXQuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgLy8gU3RvcmUgYSByZWZlcmVuY2UgdG8gdGhlIGxpbmsgZWxlbWVudFxyXG4gICAgICAgIHRoaXMub3B0aW9ucy5zZWFyY2hBZ2Fpbi5saW5rID0gbGluaztcclxuXHJcbiAgICAgICAgLy8gSW5zZXJ0IGludG8gdGhlIGZvcm1hdHRlZCBhZGRyZXNzIGNvbnRhaW5lclxyXG4gICAgICAgIGlmICh0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyKSB7XHJcbiAgICAgICAgICB0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXN1bHQubGFzdEFkZHJlc3NGaWVsZCkge1xyXG4gICAgICAgICAgLy8gSW5zZXJ0IGFmdGVyIGxhc3QgYWRkcmVzcyBmaWVsZFxyXG4gICAgICAgICAgdGhpcy5yZXN1bHQubGFzdEFkZHJlc3NGaWVsZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShsaW5rLCB0aGlzLnJlc3VsdC5sYXN0QWRkcmVzc0ZpZWxkLm5leHRTaWJsaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyBXcml0ZSB0aGUgbGlzdCBvZiBoaWRkZW4gYWRkcmVzcyBsaW5lIGlucHV0cyB0byB0aGUgRE9NXHJcbiAgICByZW5kZXJJbnB1dExpc3Q6IChpbnB1dEFycmF5KSA9PiB7XHJcbiAgICAgIGlmIChpbnB1dEFycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0QXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXRBcnJheVtpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8gRGVjaWRlIHdoZXRoZXIgdG8gZWl0aGVyIHNob3cgYSBwaWNrbGlzdCBvciBhIHZlcmlmaWVkIHJlc3VsdCBmcm9tIGEgVmFsaWRhdGUgcmVzcG9uc2VcclxuICAgIGhhbmRsZVZhbGlkYXRlUmVzcG9uc2U6IChyZXNwb25zZTogU2VhcmNoUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnJlc3VsdC5jb25maWRlbmNlID09PSAnVmVyaWZpZWQgbWF0Y2gnKSB7XHJcbiAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIGFuIGFkZHJlc3MsIHRoZW4gdXNlIHRoaXMgZGlyZWN0bHkgaW4gdGhlIHJlc3VsdFxyXG4gICAgICAgIGlmIChyZXNwb25zZS5yZXN1bHQuYWRkcmVzcykge1xyXG4gICAgICAgICAgdGhpcy5yZXN1bHQuc2hvdyhyZXNwb25zZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5yZXN1bHQuc3VnZ2VzdGlvbnMpIHtcclxuICAgICAgICAgIC8vIElmIHRoZSB2ZXJpZmllZCBtYXRjaCBzdGlsbCBjb250YWlucyBhIHN1Z2dlc3Rpb24sIHRoZW4gd2UgbmVlZCB0byBmb3JtYXQgdGhpcyBmaXJzdFxyXG4gICAgICAgICAgdGhpcy5mb3JtYXQocmVzcG9uc2UucmVzdWx0LnN1Z2dlc3Rpb25zWzBdLmZvcm1hdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnJlc3VsdC5zdWdnZXN0aW9ucykge1xyXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIG5lZWRzIHRvIHBpY2sgYSBzdWdnZXN0aW9uLCB0aGVuIGRpc3BsYXkgdGhlIHBpY2tsaXN0XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5zaG93KHJlc3BvbnNlKTtcclxuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5yZXN1bHQuY29uZmlkZW5jZSA9PT0gJ05vIG1hdGNoZXMnKSB7XHJcbiAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIG1hdGNoZXMsIHRoZW4gYWxsb3cgXCJ1c2UgYWRkcmVzcyBlbnRlcmVkXCJcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LmhhbmRsZUVtcHR5UGlja2xpc3QocmVzcG9uc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBjaGVja1RhYihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRLZXkoZXZlbnQpO1xyXG4gICAgaWYgKGtleSA9PT0gJ1RhYicpIHtcclxuICAgICAgdGhpcy5waWNrbGlzdC5rZXl1cChldmVudCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgIC8vIFByZXZlbnQgYW4gJ0VudGVyJyBrZXlwcmVzcyBvbiB0aGUgaW5wdXQgc3VibWl0dGluZyB0aGUgZm9ybVxyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZWFyY2hTcGlubmVyID0ge1xyXG4gICAgc2hvdzogKCkgPT4ge1xyXG4gICAgICAvLyBSZXR1cm4gaWYgd2UncmUgbm90IGRpc3BsYXlpbmcgYSBzcGlubmVyXHJcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLnVzZVNwaW5uZXIpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy8gQ3JlYXRlIHRoZSBzcGlubmVyIGNvbnRhaW5lclxyXG4gICAgICBjb25zdCBzcGlubmVyQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIHNwaW5uZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgnbG9hZGVyJyk7XHJcbiAgICAgIHNwaW5uZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgnbG9hZGVyLWlubGluZScpO1xyXG5cclxuICAgICAgLy8gQ3JlYXRlIHRoZSBzcGlubmVyXHJcbiAgICAgIGNvbnN0IHNwaW5uZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgc3Bpbm5lci5jbGFzc0xpc3QuYWRkKCdzcGlubmVyJyk7XHJcbiAgICAgIHNwaW5uZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoc3Bpbm5lcik7XHJcblxyXG4gICAgICAvLyBJbnNlcnQgdGhlIHNwaW5uZXIgYWZ0ZXIgdGhlIGZpZWxkXHJcbiAgICAgIHRoaXMuaW5wdXRzWzBdLnBhcmVudE5vZGU/Lmluc2VydEJlZm9yZShzcGlubmVyQ29udGFpbmVyLCB0aGlzLmlucHV0c1swXS5uZXh0U2libGluZyk7XHJcbiAgICB9LFxyXG5cclxuICAgIGhpZGU6ICgpID0+IHtcclxuICAgICAgLy8gUmV0dXJuIGlmIHdlJ3JlIG5vdCBkaXNwbGF5aW5nIGEgc3Bpbm5lclxyXG4gICAgICBpZiAoIXRoaXMub3B0aW9ucy51c2VTcGlubmVyKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHNwaW5uZXIgPSB0aGlzLmlucHV0c1swXS5wYXJlbnROb2RlPy5xdWVyeVNlbGVjdG9yKCcubG9hZGVyLWlubGluZScpO1xyXG4gICAgICBpZiAoc3Bpbm5lcikge1xyXG4gICAgICAgIHRoaXMuaW5wdXRzWzBdLnBhcmVudE5vZGU/LnJlbW92ZUNoaWxkKHNwaW5uZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLy8gVG9nZ2xlIHRoZSBcImhpZGRlblwiIGNsYXNzIHRvIGVpdGhlciBzaG93IG9yIGhpZGUgdGhlIGlucHV0IGFuZCBjb3VudHJ5IGZpZWxkKHMpXHJcbiAgcHJpdmF0ZSB0b2dnbGVTZWFyY2hJbnB1dHMoc3RhdGU6ICdzaG93JyB8ICdoaWRlJykge1xyXG4gICAgY29uc3QgbW9kaWZpZXIgPSBzdGF0ZSA9PT0gJ3Nob3cnID8gJ3JlbW92ZScgOiAnYWRkJztcclxuICAgIHRoaXMub3B0aW9ucy5lbGVtZW50cy5pbnB1dHM/LmZvckVhY2goaW5wdXQgPT4gaW5wdXQucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKCcudG9nZ2xlJykuZm9yRWFjaChlbGVtZW50ID0+IGVsZW1lbnQuY2xhc3NMaXN0W21vZGlmaWVyXSgnaGlkZGVuJykpKTtcclxuICAgIHRoaXMub3B0aW9ucy5lbGVtZW50cy5jb3VudHJ5TGlzdD8ucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKCcudG9nZ2xlJykuZm9yRWFjaChlbGVtZW50ID0+IGVsZW1lbnQuY2xhc3NMaXN0W21vZGlmaWVyXSgnaGlkZGVuJykpO1xyXG4gICAgdGhpcy5vcHRpb25zLmVsZW1lbnRzLmxvb2t1cEJ1dHRvbj8ucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKCcudG9nZ2xlJykuZm9yRWFjaChlbGVtZW50ID0+IGVsZW1lbnQuY2xhc3NMaXN0W21vZGlmaWVyXSgnaGlkZGVuJykpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnbG9iYWxSZXNldChldmVudD8pIHtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgLy8gRW5hYmxlIHNlYXJjaGluZ1xyXG4gICAgdGhpcy5vcHRpb25zLmVuYWJsZWQgPSB0cnVlO1xyXG4gICAgLy8gSGlkZSBmb3JtYXR0ZWQgYWRkcmVzc1xyXG4gICAgdGhpcy5yZXN1bHQuaGlkZSgpO1xyXG4gICAgLy8gUmVzZXQgc2VhcmNoIGlucHV0IGJhY2tcclxuICAgIHRoaXMuaGFzU2VhcmNoSW5wdXRCZWVuUmVzZXQgPSB0cnVlO1xyXG5cclxuICAgIC8vIENsZWFyIHRoZSBpbnB1dCBmaWVsZChzKVxyXG4gICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnB1dCA9PiBpbnB1dC52YWx1ZSA9ICcnKTtcclxuICAgIC8vIFJlbW92ZSB0aGUgcGlja2xpc3QgKGlmIHByZXNlbnQpXHJcbiAgICB0aGlzLnBpY2tsaXN0LmhpZGUoKTtcclxuICAgIC8vIFNob3cgc2VhcmNoIGlucHV0XHJcbiAgICB0aGlzLnRvZ2dsZVNlYXJjaElucHV0cygnc2hvdycpO1xyXG4gICAgLy8gQXBwbHkgZm9jdXMgdG8gaW5wdXRcclxuICAgIHRoaXMuaW5wdXRzWzBdLmZvY3VzKCk7XHJcblxyXG4gICAgLy8gRmlyZSBhbiBldmVudCBhZnRlciBhIHJlc2V0XHJcbiAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LXJlc2V0Jyk7XHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCBBZGRyZXNzVmFsaWRhdGlvbiBmcm9tICcuL2FkZHJlc3Mtc2VhcmNoJztcclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBpbnRlcmZhY2UgV2luZG93IHtcclxuICAgIEFkZHJlc3NWYWxpZGF0aW9uOiBhbnk7XHJcbiAgfVxyXG59XHJcblxyXG53aW5kb3cuQWRkcmVzc1ZhbGlkYXRpb24gPSBBZGRyZXNzVmFsaWRhdGlvbjsiXSwibmFtZXMiOlsiQWRkcmVzc1ZhbGlkYXRpb25Nb2RlIiwiY29sbGVjdGlvbiIsIm9uIiwiZXZlbnQiLCJhY3Rpb24iLCJ0aGlzIiwicHVzaCIsInRyaWdnZXIiLCJkYXRhIiwiaSIsImxlbmd0aCIsImFyZ3MiLCJhIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJlIiwiaW5zdGFuY2UiLCJzZW5kIiwidXJsIiwibWV0aG9kIiwiY2FsbGJhY2siLCJoZWFkZXJzIiwiY3VycmVudFJlcXVlc3QiLCJYTUxIdHRwUmVxdWVzdCIsIm9wZW4iLCJ0aW1lb3V0Iiwic2V0UmVxdWVzdEhlYWRlciIsIm9wdGlvbnMiLCJ0b2tlbiIsImZvckVhY2giLCJoZWFkZXIiLCJrZXkiLCJ2YWx1ZSIsIm9ubG9hZCIsInhociIsInN0YXR1cyIsIkpTT04iLCJwYXJzZSIsInJlc3BvbnNlVGV4dCIsInNlYXJjaFNwaW5uZXIiLCJoaWRlIiwiZXZlbnRzIiwib25lcnJvciIsIm9udGltZW91dCIsImRlZmF1bHRzIiwic2VhcmNoVHlwZSIsIkFVVE9DT01QTEVURSIsImlucHV0IiwicGxhY2Vob2xkZXJUZXh0IiwiYXBwbHlGb2N1cyIsImZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIiLCJzaG93SGVhZGluZyIsImhlYWRpbmdUeXBlIiwidmFsaWRhdGVkSGVhZGluZ1RleHQiLCJtYW51YWxIZWFkaW5nVGV4dCIsInNlYXJjaEFnYWluIiwidmlzaWJsZSIsInRleHQiLCJ1c2VBZGRyZXNzRW50ZXJlZFRleHQiLCJ1c2VTcGlubmVyIiwibGFuZ3VhZ2UiLCJhZGRyZXNzTGluZUxhYmVscyIsImRhdGFzZXRDb2RlcyIsImNvdW50cnkiLCJpc28zQ29kZSIsImlzbzJDb2RlIiwiZGF0YXNldENvZGUiLCJ0cmFuc2xhdGlvbnMiLCJlbiIsImdiciIsImxvY2FsaXR5IiwicmVnaW9uIiwicG9zdGFsX2NvZGUiLCJ1c2EiLCJzaXplIiwibWF4U3VnZ2VzdGlvbnMiLCJiYXNlVXJsIiwic2VhcmNoRW5kcG9pbnQiLCJ2YWxpZGF0ZUVuZHBvaW50IiwicHJvbXB0c2V0RW5kcG9pbnQiLCJzdGVwSW5FbmRwb2ludCIsInJlZmluZUVuZHBvaW50IiwiZW5yaWNobWVudEVuZHBvaW50IiwicG93ZXJlZEJ5TG9nbyIsImVsZW1lbnQiLCJjcmVhdGUiLCJwaWNrbGlzdCIsIml0ZW0iLCJzdmciLCJmb3JtYXQiLCJsaXN0SXRlbSIsImNyZWF0ZUxpc3RJdGVtIiwiY2xhc3NMaXN0IiwiYWRkIiwibGlzdCIsInBhcmVudE5vZGUiLCJhcHBlbmRDaGlsZCIsImRlc3Ryb3kiLCJyZW1vdmVDaGlsZCIsInVuZGVmaW5lZCIsInJlc3VsdCIsImxhc3RBZGRyZXNzRmllbGQiLCJnZW5lcmF0ZUFkZHJlc3NMaW5lUmVxdWlyZWQiLCJzaG93IiwibGFzdFNlYXJjaFRlcm0iLCJhZGRyZXNzIiwiY29uZmlkZW5jZSIsImlucHV0cyIsImNhbGN1bGF0ZUlmQWRkcmVzc0xpbmVHZW5lcmF0aW9uUmVxdWlyZWQiLCJlbGVtZW50cyIsImNyZWF0ZUZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIiLCJPYmplY3QiLCJrZXlzIiwiYWRkcmVzc0NvbXBvbmVudCIsInVwZGF0ZUFkZHJlc3NMaW5lIiwidG9nZ2xlU2VhcmNoSW5wdXRzIiwiaGFzU2VhcmNoSW5wdXRCZWVuUmVzZXQiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJjcmVhdGVTZWFyY2hBZ2FpbkxpbmsiLCJsaW5rIiwiY3JlYXRlQWRkcmVzc0xpbmUiLCJjbGFzc05hbWUiLCJkaXYiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJsYWJlbCIsImlubmVySFRNTCIsInJlcGxhY2UiLCJzdHIiLCJ0b1VwcGVyQ2FzZSIsInNldEF0dHJpYnV0ZSIsInRvTG93ZXJDYXNlIiwiY3VycmVudENvdW50cnlDb2RlIiwidHJhbnNsYXRlZExhYmVsIiwiY29udGFpbmVyIiwicG9zaXRpb24iLCJTSU5HTEVMSU5FIiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJjcmVhdGVIZWFkaW5nIiwiaGVhZGluZyIsInVwZGF0ZUhlYWRpbmciLCJxdWVyeVNlbGVjdG9yIiwiYWRkcmVzc0xpbmVPYmplY3QiLCJhZGRyZXNzRmllbGQiLCJ1cGRhdGVMYWJlbCIsIm5vZGVOYW1lIiwiaW5uZXJUZXh0IiwiZmllbGQiLCJsYWJlbHMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImh0bWxGb3IiLCJhZGRFdmVudExpc3RlbmVyIiwiZ2xvYmFsUmVzZXQiLCJiaW5kIiwicmVuZGVySW5wdXRMaXN0IiwiaW5wdXRBcnJheSIsImhhbmRsZVZhbGlkYXRlUmVzcG9uc2UiLCJyZXNwb25zZSIsInN1Z2dlc3Rpb25zIiwiaGFuZGxlRW1wdHlQaWNrbGlzdCIsInNwaW5uZXJDb250YWluZXIiLCJzcGlubmVyIiwibWVyZ2VEZWZhdWx0T3B0aW9ucyIsInNldHVwIiwic2V0VG9rZW4iLCJzZXRTZWFyY2hUeXBlIiwic2V0SW5wdXRzIiwiZ2V0RW5yaWNobWVudERhdGEiLCJnbG9iYWxBZGRyZXNzS2V5IiwiY291bnRyeV9pc28iLCJnbG9iYWxfYWRkcmVzc19rZXkiLCJhdHRyaWJ1dGVzIiwiZ2VvY29kZXMiLCJyZXF1ZXN0IiwiaGFuZGxlRW5yaWNobWVudFJlc3VsdCIsInN0cmluZ2lmeSIsInNldENvdW50cnlMaXN0IiwiY3JlYXRlUGlja2xpc3QiLCJzZXRUaW1lb3V0IiwiZ2V0UGFyYW1ldGVyIiwibmFtZSIsInJlc3VsdHMiLCJSZWdFeHAiLCJleGVjIiwibG9jYXRpb24iLCJzZWFyY2giLCJkZWNvZGVVUklDb21wb25lbnQiLCJjdXN0b21PcHRpb25zIiwiZW5hYmxlZCIsImdldFByb21wdHNldCIsImN1cnJlbnREYXRhU2V0IiwibG9va3VwRGF0YXNldENvZGUiLCJoYW5kbGVQcm9tcHRzZXRSZXN1bHQiLCJsaW5lcyIsImV4YW1wbGUiLCJwcm9tcHQiLCJzdWdnZXN0ZWRfaW5wdXRfbGVuZ3RoIiwiVkFMSURBVEUiLCJkYXRhc2V0cyIsIkFycmF5IiwiaXNBcnJheSIsInNlYXJjaF90eXBlIiwicHJvbXB0X3NldCIsImZpbmQiLCJkYXRhc2V0IiwiaW5jbHVkZXMiLCJyZWdpc3RlcklucHV0cyIsImxvb2t1cEJ1dHRvbiIsImxvb2t1cEZuIiwiZnJvbSIsImtleVVwRm4iLCJjaGVja1RhYkZuIiwiY2hlY2tUYWIiLCJoYW5kbGVLZXlib2FyZEV2ZW50IiwiY291bnRyeUNvZGVNYXBwaW5nIiwiZm9jdXMiLCJjb3VudHJ5TGlzdCIsImhhbmRsZUNvdW50cnlMaXN0Q2hhbmdlIiwiY291bnRyeUNvZGUiLCJFcnJvciIsImdlbmVyYXRlU2VhcmNoRGF0YUZvckFwaUNhbGwiLCJjb21wb25lbnRzIiwidW5zcGVjaWZpZWQiLCJjdXJyZW50U2VhcmNoVGVybSIsIm1heF9zdWdnZXN0aW9ucyIsIlZhbHVlIiwicHJldmVudERlZmF1bHQiLCJnZXRLZXkiLCJrZXl1cCIsIm1hcCIsImpvaW4iLCJjb3VudHJ5Q29kZUFuZERhdGFzZXQiLCJzcGxpdCIsImNhblNlYXJjaCIsImFib3J0IiwiUGlja2xpc3QiLCJ0YWJDb3VudCIsIml0ZW1zIiwiY3VycmVudEl0ZW0iLCJyZXNldFRhYkNvdW50IiwiY3JlYXRlTGlzdCIsInVzZUFkZHJlc3NFbnRlcmVkIiwicmVmaW5lIiwiaXNOZWVkZWQiLCJjcmVhdGVJbnB1dCIsInN1Z2dlc3Rpb25zX3Byb21wdCIsInN1Z2dlc3Rpb25zX2tleSIsImRpc3BsYXlTdWdnZXN0aW9uc0hlYWRlciIsImxpc3RlbiIsImRpc3BsYXlVc2VBZGRyZXNzRW50ZXJlZEZvb3RlciIsInNjcm9sbEludG9WaWV3SWZOZWVkZWQiLCJyZW1vdmUiLCJoYW5kbGVFbXB0eVBpY2tsaXN0Q2FsbGJhY2siLCJ0aXRsZURpdiIsImNvbnRhaW5lckRpdiIsIm5leHRFbGVtZW50U2libGluZyIsIml0ZW1EaXYiLCJjbGljayIsIm91dE9mQm91bmRzVG9wIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwib3V0T2ZCb3VuZHNCb3R0b20iLCJib3R0b20iLCJ3aW5kb3ciLCJpbm5lckhlaWdodCIsInNjcm9sbEludG9WaWV3IiwiZmlyc3RDaGlsZCIsImlucHV0RGF0YSIsImFkZHJlc3NfbGluZV8xIiwiYWRkcmVzc19saW5lXzIiLCJhZGRyZXNzX2xpbmVfMyIsImZvcm1hdE1hbnVhbEFkZHJlc3NMaW5lIiwibGluZU9iamVjdCIsImNoZWNrRW50ZXIiLCJyb3ciLCJhZGRNYXRjaGluZ0VtcGhhc2lzIiwiZW50ZXIiLCJidXR0b24iLCJLZXlib2FyZEV2ZW50IiwiTW91c2VFdmVudCIsInN0b3BQcm9wYWdhdGlvbiIsInJlZmluZW1lbnQiLCJnZXRBdHRyaWJ1dGUiLCJmaXJzdEFkZHJlc3MiLCJsYXN0QWRkcmVzcyIsImFkZHJlc3NlcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJjdXJyZW50bHlIaWdobGlnaHRlZCIsInByZXZpb3VzbHlIaWdobGlnaHRlZCIsImFkZHJlc3NMaXN0Q29vcmRzIiwib2Zmc2V0VG9wIiwib2Zmc2V0SGVpZ2h0Iiwic2Nyb2xsVG9wIiwiaGlnaGxpZ2h0cyIsIm1hdGNoZWQiLCJyZXBsYWNlbWVudCIsInN1YnN0cmluZyIsInBpY2siLCJwaWNrbGlzdEl0ZW0iLCJzdGF0ZSIsIm1vZGlmaWVyIiwiQWRkcmVzc1ZhbGlkYXRpb24iXSwic291cmNlUm9vdCI6IiJ9