1"use strict";(self.webpackChunkkuoni=self.webpackChunkkuoni||[]).push([[985],{985:(e,t,n)=>{n.r(t),n.d(t,{default:()=>V});var o=n(1425),r=n(6458),l=n(8304),c=function(e){return(0,o.pushScopeId)("data-v-9c7d4ba0"),e=e(),(0,o.popScopeId)(),e},i=[c((function(){return(0,o.createElementVNode)("img",{src:"/images/loading-spinner.png"},null,-1)}))],a={key:0},u={key:1},s=["onClick"],d={key:0},p=c((function(){return(0,o.createElementVNode)("img",{src:"/images/icons/info.svg"},null,-1)})),m=["innerHTML"],f={key:2},k={key:3,class:"active"},v=["onClick"],b={key:0,class:"onrequest-text"},y=c((function(){return(0,o.createElementVNode)("span",{class:"on-request-indicator"},[(0,o.createElementVNode)("img",{src:"/images/icons/info.svg"}),(0,o.createTextVNode)(" This room is on request")],-1)})),B=["innerHTML"],E={key:0,class:"room-details__select-mobile"},h=["value"];const g=(0,o.defineComponent)({props:{room:null},setup:function(e){var t=this,n=e,c=(0,l.j)(),g=document.getElementById("bip").value,V=Number.parseInt(document.getElementById("resultId").value),N=(0,r.R)(g,V),C=(0,o.ref)(!1),S=(0,o.ref)(0),w=(0,o.ref)(null),x=(0,o.ref)("Select"),D=(0,o.ref)("theroot"),L=(0,o.computed)((function(){return N.makeSelectionState==r.r.Started||N.loadContentState==r.r.Started})),M=(0,o.computed)((function(){return N.mobileSelectedValue})),T=(0,o.computed)((function(){return N.viewModel}));function I(e){c.storeLoading=!0,N.selectRoom(e).then((function(){c.updatedPrice=N.viewModel.footBar.total,c.updatedPricePerPerson=N.viewModel.footBar.perPerson,c.storeLoading=!1}))}function _(e){return e.price>=0?"£".concat(e.price):"-£".concat(-1*e.price)}return(0,o.onMounted)((function(){var e;document.addEventListener("click",(function(){return C.value=!1})),null===(e=window.bookflowComponent)||void 0===e||e.initHovers(D.value)})),(0,o.watch)(M,(function(e,o){return r=t,l=void 0,i=function(){var t;return function(e,t){var n,o,r,l,c={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;l&&(l=0,i[0]&&(c=0)),c;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return c.label++,{value:i[1],done:!1};case 5:c.label++,o=i[1],i=[0];continue;case 7:i=c.ops.pop(),c.trys.pop();continue;default:if(!((r=(r=c.trys).length>0&&r[r.length-1])||6!==i[0]&&2!==i[0])){c=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){c.label=i[1];break}if(6===i[0]&&c.label<r[1]){c.label=r[1],r=i;break}if(r&&c.label<r[2]){c.label=r[2],c.ops.push(i);break}r[2]&&c.ops.pop(),c.trys.pop();continue}i=t.call(e,c)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}(this,(function(o){return n.room.boardOptions.some((function(t){return t.selectionCriteria==e}))?(t=n.room.boardOptions.find((function(t){return t.selectionCriteria==e})),x.value=t.board,S.value=t.price,w.value=t.selectionCriteria):(x.value="Select",S.value=null,w.value=null),[2]}))},new((c=void 0)||(c=Promise))((function(e,t){function n(e){try{a(i.next(e))}catch(e){t(e)}}function o(e){try{a(i.throw(e))}catch(e){t(e)}}function a(t){var r;t.done?e(t.value):(r=t.value,r instanceof c?r:new c((function(e){e(r)}))).then(n,o)}a((i=i.apply(r,l||[])).next())}));var r,l,c,i})),function(t,n){return(0,o.unref)(L)?((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:0,class:(0,o.normalizeClass)(["loading-spinner",{active:(0,o.unref)(L)}])},i,2)):((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:1,class:"room-details-card__right",ref_key:"theroot",ref:D},[(0,o.createElementVNode)("div",null,[(0,o.createElementVNode)("h4",null,(0,o.toDisplayString)(e.room.name),1),(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(e.room.fit),1),e.room.description?((0,o.openBlock)(),(0,o.createElementBlock)("p",a,(0,o.toDisplayString)(e.room.descriptionText),1)):(0,o.createCommentVNode)("v-if",!0),e.room.descriptionBullets.length?((0,o.openBlock)(),(0,o.createElementBlock)("ul",u,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.room.descriptionBullets,(function(e){return(0,o.openBlock)(),(0,o.createElementBlock)("li",null,(0,o.toDisplayString)(e),1)})),256))])):(0,o.createCommentVNode)("v-if",!0)]),(0,o.createElementVNode)("div",null,[(0,o.createElementVNode)("ul",{class:(0,o.normalizeClass)({active:C.value})},[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.room.boardOptions,(function(e){return(0,o.openBlock)(),(0,o.createElementBlock)("li",{class:"board-text",onClick:function(t){return function(e){N.mobileSelectedValue=e.selectionCriteria}(e)}},[e.description?((0,o.openBlock)(),(0,o.createElementBlock)("label",d,[(0,o.createTextVNode)((0,o.toDisplayString)(e.board),1),p])):(0,o.createCommentVNode)("v-if",!0),e.description?((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:1,class:"board-description",innerHTML:e.description},null,8,m)):((0,o.openBlock)(),(0,o.createElementBlock)("label",f,(0,o.toDisplayString)(e.board),1)),(0,o.createElementVNode)("span",null,(0,o.toDisplayString)(_(e))+" p/p",1),e.selected?((0,o.openBlock)(),(0,o.createElementBlock)("button",k)):((0,o.openBlock)(),(0,o.createElementBlock)("button",{key:4,onClick:function(t){return I(e.selectionCriteria)}},null,8,v))],8,s)})),256))],2),e.room.onRequest?((0,o.openBlock)(),(0,o.createElementBlock)("div",b,[y,(0,o.createElementVNode)("div",{class:"onrequest-description",innerHTML:(0,o.unref)(T).selectedRoomOption.onRequestDescription},null,8,B)])):(0,o.createCommentVNode)("v-if",!0)]),(0,o.createElementVNode)("div",{class:"faux-select",onClick:n[0]||(n[0]=(0,o.withModifiers)((function(e){C.value=!0}),["stop"]))},[(0,o.createElementVNode)("label",null,(0,o.toDisplayString)(x.value),1)]),null!=w.value?((0,o.openBlock)(),(0,o.createElementBlock)("div",E,[(0,o.createElementVNode)("span",null,"£"+(0,o.toDisplayString)(S.value),1),(0,o.createElementVNode)("input",{type:"hidden",name:"selectionRph",value:w.value},null,8,h),(0,o.createElementVNode)("button",{onClick:n[1]||(n[1]=function(e){return I(w.value)})})])):(0,o.createCommentVNode)("v-if",!0)],512))}}}),V=(0,n(6262).A)(g,[["__scopeId","data-v-9c7d4ba0"]])}}]); 2//# sourceMappingURL=data:application/json;charset=utf-8;base64,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0FDQUEsRUFBaUIsY0FDYixrQkFBYyx3QkFBb0IsUUFBU2pELEVBQVksRUFDdEQsc0JBQWlCLHFCQUFpQmlELEVBQU1BLE9BQVEsR0FDaERoRCxNQUVGLHdCQUFvQixRQUFRLEdBQy9CZ0QsRUFBaUIsY0FDYixrQkFBYyx3QkFBb0IsTUFBTyxDQUN4Q3BELElBQUssRUFDTFEsTUFBTyxvQkFDUG9FLFVBQVd4QixFQUFNeUIsYUFDaEIsS0FBTSxFQUFleEUsTUFDdkIsa0JBQWMsd0JBQW9CLFFBQVNDLEdBQVkscUJBQWlCOEMsRUFBTUEsT0FBUSxLQUMzRix3QkFBb0IsT0FBUSxNQUFNLHFCQUFpQkQsRUFBZ0JDLElBQVUsT0FBUSxHQUNwRkEsRUFBYyxXQUNWLGtCQUFjLHdCQUFvQixTQUFVN0MsTUFDNUMsa0JBQWMsd0JBQW9CLFNBQVUsQ0FDM0NQLElBQUssRUFDTDBFLFFBQVMsU0FBQ0MsR0FBZ0IsT0FBQ2xDLEVBQWNXLEVBQU1WLGtCQU
2FyQixHQUN6QixLQUFNLEVBQWVqQyxLQUMzQixFQUFlUCxFQUNwQixJQUFJLE9BQ0gsR0FDRmdCLEVBQVFGLEtBQWMsWUFDbEIsa0JBQWMsd0JBQW9CLE1BQU9OLEVBQWEsQ0FDckRDLEdBQ0Esd0JBQW9CLE1BQU8sQ0FDekJILE1BQU8sd0JBQ1BvRSxXQUFXLFdBQU9wQyxHQUFXc0MsbUJBQW1CQyxzQkFDL0MsS0FBTSxFQUFlbkUsT0FFMUIsd0JBQW9CLFFBQVEsTUFFbEMsd0JBQW9CLE1BQU8sQ0FDekJKLE1BQU8sY0FDUGtFLFFBQVNSLEVBQU8sS0FBT0EsRUFBTyxJQUFLLG9CQUFlLFNBQUNTLEdDbkZyRC9DLEVBQVNMLE9BQVEsQ0RtRm9ELEdBQTJCLENBQUMsV0FDOUYsRUFDRCx3QkFBb0IsUUFBUyxNQUFNLHFCQUFpQlMsRUFBbUJULE9BQVEsS0FFbEQsTUFBOUJRLEVBQXFCUixRQUNqQixrQkFBYyx3QkFBb0IsTUFBT1YsRUFBYSxFQUNyRCx3QkFBb0IsT0FBUSxLQUFNLEtBQU0scUJBQWlCaUIsRUFBb0JQLE9BQVEsSUFDckYsd0JBQW9CLFFBQVMsQ0FDM0J5RCxLQUFNLFNBQ05YLEtBQU0sZUFDTjlDLE1BQU9RLEVBQXFCUixPQUMzQixLQUFNLEVBQWVULElBQ3hCLHdCQUFvQixTQUFVLENBQzVCNEQsUUFBU1IsRUFBTyxLQUFPQSxFQUFPLEdBQUssU0FBQ1MsR0FBZ0IsT0FBQ2xDLEVBQWNWLEVBQXFCUixNQUFwQyxTQUd4RCx3QkFBb0IsUUFBUSxJQUMvQixLQUNULENBQ0EsSUV2TUEsR0FGaUMsRSxRQUFBLEdBQWdCLEVBQVEsQ0FBQyxDQUFDLFlBQVksb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9rdW9uaS8uL0NvbnRlbnQvVnVlL0NvbXBvbmVudHMvYm9va2Zsb3ctaG90ZWwtc2VsZWN0LXJvb20udnVlPzJjMmIiLCJ3ZWJwYWNrOi8va3VvbmkvLi9Db250ZW50L1Z1ZS9Db21wb25lbnRzL2Jvb2tmbG93LWhvdGVsLXNlbGVjdC1yb29tLnZ1ZSIsIndlYnBhY2s6Ly9rdW9uaS8uL0NvbnRlbnQvVnVlL0NvbXBvbmVudHMvYm9va2Zsb3ctaG90ZWwtc2VsZWN0LXJvb20udnVlPzg5NTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmaW5lQ29tcG9uZW50IGFzIF9kZWZpbmVDb21wb25lbnQgfSBmcm9tICd2dWUnXG5pbXBvcnQgeyB1bnJlZiBhcyBfdW5yZWYsIGNyZWF0ZUVsZW1lbnRWTm9kZSBhcyBfY3JlYXRlRWxlbWVudFZOb2RlLCBub3JtYWxpemVDbGFzcyBhcyBfbm9ybWFsaXplQ2xhc3MsIG9wZW5CbG9jayBhcyBfb3BlbkJsb2NrLCBjcmVhdGVFbGVtZW50QmxvY2sgYXMgX2NyZWF0ZUVsZW1lbnRCbG9jaywgY3JlYXRlQ29tbWVudFZOb2RlIGFzIF9jcmVhdGVDb21tZW50Vk5vZGUsIHRvRGlzcGxheVN0cmluZyBhcyBfdG9EaXNwbGF5U3RyaW5nLCByZW5kZXJMaXN0IGFzIF9yZW5kZXJMaXN0LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGNyZWF0ZVRleHRWTm9kZSBhcyBfY3JlYXRlVGV4dFZOb2RlLCB3aXRoTW9kaWZpZXJzIGFzIF93aXRoTW9kaWZpZXJzLCBwdXNoU2NvcGVJZCBhcyBfcHVzaFNjb3BlSWQsIHBvcFNjb3BlSWQgYXMgX3BvcFNjb3BlSWQgfSBmcm9tIFwidnVlXCJcblxuY29uc3QgX3dpdGhTY29wZUlkID0gbiA9PiAoX3B1c2hTY29wZUlkKFwiZGF0YS12LTljN2Q0YmEwXCIpLG49bigpLF9wb3BTY29wZUlkKCksbilcbmNvbnN0IF9ob2lzdGVkXzEgPSAvKiNfX1BVUkVfXyovIF93aXRoU2NvcGVJZCgoKSA9PiAvKiNfX1BVUkVfXyovX2NyZWF0ZUVsZW1lbnRWTm9kZShcImltZ1wiLCB7IHNyYzogXCIvaW1hZ2VzL2xvYWRpbmctc3Bpbm5lci5wbmdcIiB9LCBudWxsLCAtMSAvKiBIT0lTVEVEICovKSlcbmNvbnN0IF9ob2lzdGVkXzIgPSBbXG4gIF9ob2lzdGVkXzFcbl1cbmNvbnN0IF9ob2lzdGVkXzMgPSB7IGtleTogMCB9XG5jb25zdCBfaG9pc3RlZF80ID0geyBrZXk6IDEgfVxuY29uc3QgX2hvaXN0ZWRfNSA9IFtcIm9uQ2xpY2tcIl1cbmNvbnN0IF9ob2lzdGVkXzYgPSB7IGtleTogMCB9XG5jb25zdCBfaG9pc3RlZF83ID0gLyojX19QVVJFX18qLyBfd2l0aFNjb3BlSWQoKCkgPT4gLyojX19QVVJFX18qL19jcmVhdGVFbGVtZW50Vk5vZGUoXCJpbWdcIiwgeyBzcmM6IFwiL2ltYWdlcy9pY29ucy9pbmZvLnN2Z1wiIH0sIG51bGwsIC0xIC8qIEhPSVNURUQgKi8pKVxuY29uc3QgX2hvaXN0ZWRfOCA9IFtcImlubmVySFRNTFwiXVxuY29uc3QgX2hvaXN0ZWRfOSA9IHsga2V5OiAyIH1cbmNvbnN0IF9ob2lzdGVkXzEwID0ge1xuICBrZXk6IDMsXG4gIGNsYXNzOiBcImFjdGl2ZVwiXG59XG5jb25zdCBfaG9pc3RlZF8xMSA9IFtcIm9uQ2xpY2tcIl1cbmNvbnN0IF9ob2lzdGVkXzEyID0ge1xuICBrZXk6IDAsXG4gIGNsYXNzOiBcIm9ucmVxdWVzdC10ZXh0XCJcbn1cbmNvbnN0IF9ob2lzdGVkXzEzID0gLyojX19QVVJFX18qLyBfd2l0aFNjb3BlSWQoKCkgPT4gLyojX19QVVJFX18qL19jcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHsgY2xhc3M6IFwib24tcmVxdWVzdC1pbmRpY2F0b3JcIiB9LCBbXG4gIC8qI19fUFVSRV9fKi9fY3JlYXRlRWxlbWVudFZOb2RlKFwiaW1nXCIsIHsgc3JjOiBcIi9pbWFnZXMvaWNvbnMvaW5mby5zdmdcIiB9KSxcbiAgLyojX19QVVJFX18qL19jcmVhdGVUZXh0Vk5vZGUoXCIgVGhpcyByb29tIGlzIG9uIHJlcXVlc3RcIilcbl0sIC0xIC8qIEhPSVNURUQgKi8pKVxuY29uc3QgX2hvaXN0ZWRfMTQgPSBbXCJpbm5lckhUTUxcIl1cbmNvbnN0IF9ob2lzdGVkXzE1ID0ge1xuICBrZXk6IDAsXG4gIGNsYXNzOiBcInJvb20tZGV0YWlsc19fc2VsZWN0LW1vYmlsZVwiXG59XG5jb25zdCBfaG9pc3RlZF8xNiA9IFtcInZhbHVlXCJdXG5cbmltcG9ydCB7IHJlZiwgb25Nb3VudGVkLCBjb21wdXRlZCwgd2F0Y2ggfSBmcm9tICd2dWUnXHJcbiAgICBpbXBvcnQgeyBjcmVhdGVCb29rZmxvd0hvdGVsU3RvcmUsIExvYWRpbmdTdGF0dXMgfSBmcm9tIFwiLi4vU3RvcmVzL2Jvb2tmbG93LWhvdGVsLXN0b3JlXCI7ICAgIFxyXG4gICAgaW1wb3J0IHsgdXNlU2VhcmNoU3RvcmUgfSBmcm9tIFwiLi4vU3RvcmVzL3NlYXJjaC1zdG9yZVwiO1xyXG5cclxuICAgIFxuZXhwb3J0IGRlZmF1bHQgLyojX19QVVJFX18qL19kZWZpbmVDb21wb25lbnQoe1xuICBwcm9wczoge1xuICAgIHJvb206IG51bGxcbiAgfSxcbiAgc2V0dXAoX19wcm9wczogYW55KSB7XG5cbmNvbnN0IHByb3BzID0gX19wcm9wcyBhcyB7XHJcbiAgICAgICAgcm9vbTogYW55XHJcbiAgICB9XG5cclxuICAgIGNvbnN0IHNlYXJjaFN0b3JlID0gdXNlU2VhcmNoU3RvcmUoKTtcclxuXHJcbiAgICBjb25zdCBib29raW5nQ29kZSA9IChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmlwJykgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICBjb25zdCByZXN1bHRJZCA9IE51bWJlci5wYXJzZUludCggKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRJZCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlICk7XHJcbiAgICBjb25zdCBzdG9yZSA9IGNyZWF0ZUJvb2tmbG93SG90ZWxTdG9yZShib29raW5nQ29kZSwgcmVzdWx0SWQpO1xyXG5cclxuICAgIFxyXG5cclxuICAgIGNvbnN0IGlzQWN0aXZlID0gcmVmKGZhbHNlKTtcclxuICAgIGNvbnN0IHNlbGVjdGVkUHJpY2VNb2JpbGUgPSByZWYoMCk7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25WYWx1ZU1vYmlsZSA9IHJlZihudWxsKTtcclxuICAgIGNvbnN0IHNlbGVjdGVkUm9vbU1vYmlsZSA9IHJlZihcIlNlbGVjdFwiKTtcclxuICAgIGNvbnN0IHRoZXJvb3QgPSByZWYoJ3RoZXJvb3QnKVxyXG5cclxuICAgIGNvbnN0IGxvYWRpbmcgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHN0b3JlLm1ha2VTZWxlY3Rpb25TdGF0ZSA9PSBMb2FkaW5nU3RhdHVzLlN0YXJ0ZWQgfHwgc3RvcmUubG9hZENvbnRlbnRTdGF0ZSA9PSBMb2FkaW5nU3RhdHVzLlN0YXJ0ZWQ7XHJcbiAgICB9KVxyXG5cclxuICAgIGNvbnN0IG1vYmlsZVNlbGVjdGVkVmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHN0b3JlLm1vYmlsZVNlbGVjdGVkVmFsdWU7XHJcbiAgICB9KVxyXG5cclxuICAgIGNvbnN0IHZpZXdNb2RlbCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gc3RvcmUudmlld01vZGVsO1xyXG4gICAgfSlcclxuXHJcbiAgICBvbk1vdW50ZWQoKCkgPT4ge1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiBpc0FjdGl2ZS52YWx1ZSA9IGZhbHNlKTsgICAgICAgICBcclxuICAgICAgICB3aW5kb3dbJ2Jvb2tmbG93Q29tcG9uZW50J10/LmluaXRIb3ZlcnModGhlcm9vdC52YWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmdW5jdGlvbiBtYWtlTW9iaWxlU2VsZWN0aW9uKGJvYXJkKSB7XHJcbiAgICAgICAgc3RvcmUubW9iaWxlU2VsZWN0ZWRWYWx1ZSA9IGJvYXJkLnNlbGVjdGlvbkNyaXRlcmlhO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gbWFrZVNlbGVjdGlvbihzZWxlY3Rpb25Dcml0ZXJpY
2Skge1xyXG4gICAgICAgIHNlYXJjaFN0b3JlLnN0b3JlTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgc3RvcmUuc2VsZWN0Um9vbShzZWxlY3Rpb25Dcml0ZXJpYSkudGhlbigoKSA9PiB7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHNlYXJjaFN0b3JlLnVwZGF0ZWRQcmljZSA9IHN0b3JlLnZpZXdNb2RlbC5mb290QmFyLnRvdGFsO1xyXG4gICAgICAgICAgICBzZWFyY2hTdG9yZS51cGRhdGVkUHJpY2VQZXJQZXJzb24gPSBzdG9yZS52aWV3TW9kZWwuZm9vdEJhci5wZXJQZXJzb247XHJcbiAgICAgICAgICAgIHNlYXJjaFN0b3JlLnN0b3JlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHNob3dNb2JpbGVQb3B1cChlKSB7XHJcbiAgICAgICAgaXNBY3RpdmUudmFsdWUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHdhdGNoKG1vYmlsZVNlbGVjdGVkVmFsdWUsIGFzeW5jIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMucm9vbS5ib2FyZE9wdGlvbnMuc29tZShiID0+IGIuc2VsZWN0aW9uQ3JpdGVyaWEgPT0gbmV3VmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGxldCBib2FyZCA9IHByb3BzLnJvb20uYm9hcmRPcHRpb25zLmZpbmQoYiA9PiBiLnNlbGVjdGlvbkNyaXRlcmlhID09IG5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgc2VsZWN0ZWRSb29tTW9iaWxlLnZhbHVlID0gYm9hcmQuYm9hcmQ7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkUHJpY2VNb2JpbGUudmFsdWUgPSBib2FyZC5wcmljZTtcclxuICAgICAgICAgICAgc2VsZWN0aW9uVmFsdWVNb2JpbGUudmFsdWUgPSBib2FyZC5zZWxlY3Rpb25Dcml0ZXJpYTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzZWxlY3RlZFJvb21Nb2JpbGUudmFsdWUgPSAnU2VsZWN0JztcclxuICAgICAgICAgICAgc2VsZWN0ZWRQcmljZU1vYmlsZS52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHNlbGVjdGlvblZhbHVlTW9iaWxlLnZhbHVlID1udWxsO1xyXG4gICAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgZnVuY3Rpb24gcHJpY2VEaWZmZXJlbmNlKGJvYXJkKSB7XHJcbiAgICAgICAgaWYoYm9hcmQucHJpY2UgPj0gMClcclxuICAgICAgICAgICAgcmV0dXJuIGDCoyR7Ym9hcmQucHJpY2V9YDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAtwqMke2JvYXJkLnByaWNlKi0xfWA7XHJcbiAgICB9XHJcblxyXG5cbnJldHVybiAoX2N0eDogYW55LF9jYWNoZTogYW55KSA9PiB7XG4gIHJldHVybiAoX3VucmVmKGxvYWRpbmcpKVxuICAgID8gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCB7XG4gICAgICAgIGtleTogMCxcbiAgICAgICAgY2xhc3M6IF9ub3JtYWxpemVDbGFzcyhbXCJsb2FkaW5nLXNwaW5uZXJcIiwge2FjdGl2ZSA6IF91bnJlZihsb2FkaW5nKX1dKVxuICAgICAgfSwgX2hvaXN0ZWRfMiwgMiAvKiBDTEFTUyAqLykpXG4gICAgOiAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwiZGl2XCIsIHtcbiAgICAgICAga2V5OiAxLFxuICAgICAgICBjbGFzczogXCJyb29tLWRldGFpbHMtY2FyZF9fcmlnaHRcIixcbiAgICAgICAgcmVmX2tleTogXCJ0aGVyb290XCIsXG4gICAgICAgIHJlZjogdGhlcm9vdFxuICAgICAgfSwgW1xuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIG51bGwsIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiaDRcIiwgbnVsbCwgX3RvRGlzcGxheVN0cmluZyhfX3Byb3BzLnJvb20ubmFtZSksIDEgLyogVEVYVCAqLyksXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwgbnVsbCwgX3RvRGlzcGxheVN0cmluZyhfX3Byb3BzLnJvb20uZml0KSwgMSAvKiBURVhUICovKSxcbiAgICAgICAgICAoX19wcm9wcy5yb29tLmRlc2NyaXB0aW9uKVxuICAgICAgICAgICAgPyAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwicFwiLCBfaG9pc3RlZF8zLCBfdG9EaXNwbGF5U3RyaW5nKF9fcHJvcHMucm9vbS5kZXNjcmlwdGlvblRleHQpLCAxIC8qIFRFWFQgKi8pKVxuICAgICAgICAgICAgOiBfY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKSxcbiAgICAgICAgICAoX19wcm9wcy5yb29tLmRlc2NyaXB0aW9uQnVsbGV0cy5sZW5ndGgpXG4gICAgICAgICAgICA/IChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soXCJ1bFwiLCBfaG9pc3RlZF80LCBbXG4gICAgICAgICAgICAgICAgKF9vcGVuQmxvY2sodHJ1ZSksIF9jcmVhdGVFbGVtZW50QmxvY2soX0ZyYWdtZW50LCBudWxsLCBfcmVuZGVyTGlzdChfX3Byb3BzLnJvb20uZGVzY3JpcHRpb25CdWxsZXRzLCAoYnVsbGV0KSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcImxpXCIsIG51bGwsIF90b0Rpc3BsYXlTdHJpbmcoYnVsbGV0KSwgMSAvKiBURVhUICovKSlcbiAgICAgICAgICAgICAgICB9KSwgMjU2IC8qIFVOS0VZRURfRlJBR01FTlQgKi8pKVxuICAgICAgICAgICAgICBdKSlcbiAgICAgICAgICAgIDogX2NyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgbnVsbCwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJ1bFwiLCB7XG4gICAgICAgICAgICBjbGFzczogX25vcm1hbGl6ZUNsYXNzKHthY3RpdmU6IGlzQWN0aXZlLnZhbHVlfSlcbiAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAoX29wZW5CbG9jayh0cnVlKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhfRnJhZ21lbnQsIG51bGwsIF9yZW5kZXJMaXN0KF9fcHJvcHMucm9vbS5ib2FyZE9wdGlvbnMsIChib2FyZCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcImxpXCIsIHtcbiAgICAgICAgICAgICAgICBjbGFzczogXCJib2FyZC10ZXh0XCIsXG4gICAgICAgICAgICAgICAgb25DbGljazogKCRldmVudDogYW55KSA9PiAobWFrZU1vYmlsZVNlbGVjdGlvbihib2FyZCkpXG4gICAgICAgICAgICAgI
2H0sIFtcbiAgICAgICAgICAgICAgICAoYm9hcmQuZGVzY3JpcHRpb24pXG4gICAgICAgICAgICAgICAgICA/IChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soXCJsYWJlbFwiLCBfaG9pc3RlZF82LCBbXG4gICAgICAgICAgICAgICAgICAgICAgX2NyZWF0ZVRleHRWTm9kZShfdG9EaXNwbGF5U3RyaW5nKGJvYXJkLmJvYXJkKSwgMSAvKiBURVhUICovKSxcbiAgICAgICAgICAgICAgICAgICAgICBfaG9pc3RlZF83XG4gICAgICAgICAgICAgICAgICAgIF0pKVxuICAgICAgICAgICAgICAgICAgOiBfY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKSxcbiAgICAgICAgICAgICAgICAoYm9hcmQuZGVzY3JpcHRpb24pXG4gICAgICAgICAgICAgICAgICA/IChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGtleTogMSxcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJib2FyZC1kZXNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgIGlubmVySFRNTDogYm9hcmQuZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfOCkpXG4gICAgICAgICAgICAgICAgICA6IChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soXCJsYWJlbFwiLCBfaG9pc3RlZF85LCBfdG9EaXNwbGF5U3RyaW5nKGJvYXJkLmJvYXJkKSwgMSAvKiBURVhUICovKSksXG4gICAgICAgICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwgbnVsbCwgX3RvRGlzcGxheVN0cmluZyhwcmljZURpZmZlcmVuY2UoYm9hcmQpKSArIFwiIHAvcFwiLCAxIC8qIFRFWFQgKi8pLFxuICAgICAgICAgICAgICAgIChib2FyZC5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgID8gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcImJ1dHRvblwiLCBfaG9pc3RlZF8xMCkpXG4gICAgICAgICAgICAgICAgICA6IChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soXCJidXR0b25cIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGtleTogNCxcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoJGV2ZW50OiBhbnkpID0+IChtYWtlU2VsZWN0aW9uKGJvYXJkLnNlbGVjdGlvbkNyaXRlcmlhKSlcbiAgICAgICAgICAgICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMTEpKVxuICAgICAgICAgICAgICBdLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF81KSlcbiAgICAgICAgICAgIH0pLCAyNTYgLyogVU5LRVlFRF9GUkFHTUVOVCAqLykpXG4gICAgICAgICAgXSwgMiAvKiBDTEFTUyAqLyksXG4gICAgICAgICAgKF9fcHJvcHMucm9vbS5vblJlcXVlc3QpXG4gICAgICAgICAgICA/IChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soXCJkaXZcIiwgX2hvaXN0ZWRfMTIsIFtcbiAgICAgICAgICAgICAgICBfaG9pc3RlZF8xMyxcbiAgICAgICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm9ucmVxdWVzdC1kZXNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgaW5uZXJIVE1MOiBfdW5yZWYodmlld01vZGVsKS5zZWxlY3RlZFJvb21PcHRpb24ub25SZXF1ZXN0RGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF8xNClcbiAgICAgICAgICAgICAgXSkpXG4gICAgICAgICAgICA6IF9jcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHtcbiAgICAgICAgICBjbGFzczogXCJmYXV4LXNlbGVjdFwiLFxuICAgICAgICAgIG9uQ2xpY2s6IF9jYWNoZVswXSB8fCAoX2NhY2hlWzBdID0gX3dpdGhNb2RpZmllcnMoKCRldmVudDogYW55KSA9PiAoc2hvd01vYmlsZVBvcHVwKCRldmVudCkpLCBbXCJzdG9wXCJdKSlcbiAgICAgICAgfSwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJsYWJlbFwiLCBudWxsLCBfdG9EaXNwbGF5U3RyaW5nKHNlbGVjdGVkUm9vbU1vYmlsZS52YWx1ZSksIDEgLyogVEVYVCAqLylcbiAgICAgICAgXSksXG4gICAgICAgIChzZWxlY3Rpb25WYWx1ZU1vYmlsZS52YWx1ZSAhPSBudWxsKVxuICAgICAgICAgID8gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCBfaG9pc3RlZF8xNSwgW1xuICAgICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCBudWxsLCBcIsKjXCIgKyBfdG9EaXNwbGF5U3RyaW5nKHNlbGVjdGVkUHJpY2VNb2JpbGUudmFsdWUpLCAxIC8qIFRFWFQgKi8pLFxuICAgICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgICAgICAgbmFtZTogXCJzZWxlY3Rpb25ScGhcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogc2VsZWN0aW9uVmFsdWVNb2JpbGUudmFsdWVcbiAgICAgICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMTYpLFxuICAgICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiYnV0dG9uXCIsIHtcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiBfY2FjaGVbMV0gfHwgKF9jYWNoZVsxXSA9ICgkZXZlbnQ6IGFueSkgPT4gKG1ha2VTZWxlY3Rpb24oc2VsZWN0aW9uVmFsdWVNb2JpbGUudmFsdWUpKSlcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0pKVxuICAgICAgICAgIDogX2NyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSlcbiAgICAgIF0sIDUxMiAvKiBORUVEX1BBVENIICovKSlcbn1cbn1cblxufSkiLCI8c3R5bGUgc2NvcGVkPlxyXG4gICAgLmxvYWRpbmctc3Bpbm5lciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB9XHJcbjwvc3R5bGU+XHJcbjx0ZW1wbGF0ZT5cclxuICAgIDxkaXYgdi1pZj1cImxvYWRpbmdcIiBjbGFzcz1cImxvYWRpbmctc3Bpbm5lclwiIDpjbGFzcz1cInthY3RpdmUgOiBsb2FkaW5nfVwiPlxyXG4gICAgICAgIDxpbWcgc3JjPVwiL2ltYWdlcy9sb2FkaW5nLXNwaW5uZXIucG5nXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgdi1lbHNlIGNsYXNzPVwicm9vbS1kZXRhaWxzLWNhcmRfX3JpZ2h0XCIgcmVmPVwidGhlcm9vdFwiPlxyXG4gICAgICAgIDxkaXY+X
2HJcbiAgICAgICAgICAgIDxoND57e3Jvb20ubmFtZX19PC9oND5cclxuICAgICAgICAgICAgPHNwYW4+e3tyb29tLmZpdH19PC9zcGFuPiAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICA8cCB2LWlmPVwicm9vbS5kZXNjcmlwdGlvblwiPnt7cm9vbS5kZXNjcmlwdGlvblRleHR9fTwvcD5cclxuICAgICAgICAgICAgPHVsIHYtaWY9XCJyb29tLmRlc2NyaXB0aW9uQnVsbGV0cy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgIDxsaSB2LWZvcj1cImJ1bGxldCBpbiByb29tLmRlc2NyaXB0aW9uQnVsbGV0c1wiPnt7YnVsbGV0fX08L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8dWwgOmNsYXNzPVwie2FjdGl2ZTogaXNBY3RpdmV9XCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgdi1mb3I9XCJib2FyZCBpbiByb29tLmJvYXJkT3B0aW9uc1wiIGNsYXNzPVwiYm9hcmQtdGV4dFwiIHYtb246Y2xpY2s9XCJtYWtlTW9iaWxlU2VsZWN0aW9uKGJvYXJkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCB2LWlmPVwiYm9hcmQuZGVzY3JpcHRpb25cIj57e2JvYXJkLmJvYXJkfX08aW1nIHNyYz1cIi9pbWFnZXMvaWNvbnMvaW5mby5zdmdcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgdi1pZj1cImJvYXJkLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJib2FyZC1kZXNjcmlwdGlvblwiIHYtaHRtbD1cImJvYXJkLmRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHYtZWxzZT57e2JvYXJkLmJvYXJkfX08L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3ByaWNlRGlmZmVyZW5jZShib2FyZCl9fSBwL3A8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdi1pZj1cImJvYXJkLnNlbGVjdGVkXCIgY2xhc3M9XCJhY3RpdmVcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHYtZWxzZSB2LW9uOmNsaWNrPVwibWFrZVNlbGVjdGlvbihib2FyZC5zZWxlY3Rpb25Dcml0ZXJpYSlcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IHYtaWY9XCJyb29tLm9uUmVxdWVzdFwiIGNsYXNzPVwib25yZXF1ZXN0LXRleHRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib24tcmVxdWVzdC1pbmRpY2F0b3JcIj4gPGltZyBzcmM9XCIvaW1hZ2VzL2ljb25zL2luZm8uc3ZnXCIgLz4gVGhpcyByb29tIGlzIG9uIHJlcXVlc3Q8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib25yZXF1ZXN0LWRlc2NyaXB0aW9uXCIgdi1odG1sPVwidmlld01vZGVsLnNlbGVjdGVkUm9vbU9wdGlvbi5vblJlcXVlc3REZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZhdXgtc2VsZWN0XCIgdi1vbjpjbGljay5zdG9wPVwic2hvd01vYmlsZVBvcHVwKCRldmVudClcIj5cclxuICAgICAgICAgICAgPGxhYmVsPnt7c2VsZWN0ZWRSb29tTW9iaWxlfX08L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgdi1pZj1cInNlbGVjdGlvblZhbHVlTW9iaWxlICE9IG51bGxcIiBjbGFzcz1cInJvb20tZGV0YWlsc19fc2VsZWN0LW1vYmlsZVwiPlxyXG4gICAgICAgICAgICA8c3Bhbj7Co3t7c2VsZWN0ZWRQcmljZU1vYmlsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzZWxlY3Rpb25ScGhcIiA6dmFsdWU9XCJzZWxlY3Rpb25WYWx1ZU1vYmlsZVwiIC8+XHJcbiAgICAgICAgICAgIDxidXR0b24gdi1vbjpjbGljaz1cIm1ha2VTZWxlY3Rpb24oc2VsZWN0aW9uVmFsdWVNb2JpbGUpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC90ZW1wbGF0ZT5cclxuPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cclxuICAgIGltcG9ydCB7IHJlZiwgb25Nb3VudGVkLCBjb21wdXRlZCwgd2F0Y2ggfSBmcm9tICd2dWUnXHJcbiAgICBpbXBvcnQgeyBjcmVhdGVCb29rZmxvd0hvdGVsU3RvcmUsIExvYWRpbmdTdGF0dXMgfSBmcm9tIFwiLi4vU3RvcmVzL2Jvb2tmbG93LWhvdGVsLXN0b3JlXCI7ICAgIFxyXG4gICAgaW1wb3J0IHsgdXNlU2VhcmNoU3RvcmUgfSBmcm9tIFwiLi4vU3RvcmVzL3NlYXJjaC1zdG9yZVwiO1xyXG5cclxuICAgIGNvbnN0IHNlYXJjaFN0b3JlID0gdXNlU2VhcmNoU3RvcmUoKTtcclxuXHJcbiAgICBjb25zdCBib29raW5nQ29kZSA9IChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmlwJykgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICBjb25zdCByZXN1bHRJZCA9IE51bWJlci5wYXJzZUludCggKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRJZCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlICk7XHJcbiAgICBjb25zdCBzdG9yZSA9IGNyZWF0ZUJvb2tmbG93SG90ZWxTdG9yZShib29raW5nQ29kZSwgcmVzdWx0SWQpO1xyXG5cclxuICAgIGNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHM8e1xyXG4gICAgICAgIHJvb206IGFueVxyXG4gICAgfT4oKVxyXG5cclxuICAgIGNvbnN0IGlzQWN0aXZlID0gcmVmKGZhbHNlKTtcclxuICAgIGNvbnN0IHNlbGVjdGVkUHJpY2VNb2JpbGUgPSByZWYoMCk7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25WYWx1ZU1vYmlsZSA9IHJlZihudWxsKTtcclxuICAgIGNvbnN0IHNlbGVjdGVkUm9vbU1vYmlsZSA9IHJlZihcIlNlbGVjdFwiKTtcclxuICAgIGNvbnN0IHRoZXJvb3QgPSByZWYoJ3RoZXJvb3QnKVxyXG5cclxuICAgIGNvbnN0IGxvYWRpbmcgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHN0b3JlLm1ha2VTZWxlY3Rpb25TdGF0ZSA9PSBMb2FkaW5nU3RhdHVzLlN0YXJ0ZWQgfHwgc3RvcmUubG9hZENvbnRlbnRTdGF0ZSA9PSBMb2FkaW5nU3RhdHVzLlN0YXJ0ZWQ7XHJcbiAgICB9KVxyXG5cclxuICAgIGNvbnN0IG1vYmlsZVNlbGVjdGVkVmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHN0b3JlLm1vYmlsZVNlbGVjdGVkVmFsdWU7XHJcbiAgICB9KVxyXG5cclxuICAgIGNvbnN0IHZpZXdNb2RlbCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gc3RvcmUudmlld01vZGVsO1xyXG4gICAgfSlcclxuXHJcbiAgICBvbk1vdW50ZWQoKCkgPT4ge1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiBpc0FjdGl2ZS52YWx1ZSA9IGZhbHNlKTsgICAgICAgICBcclxuICAgICAgICB3aW5kb3dbJ2Jvb2tmbG93Q29tcG9uZW50J10/LmluaXRIb3ZlcnModGhlcm9vdC52YWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmdW5jdGlvbiBtYWtlTW9iaWxlU2VsZWN0aW9uKGJvYXJkKSB7XHJcbiAgICAgICAgc3RvcmUubW9iaWxlU2VsZWN0ZWRWYWx1ZSA9IGJvYXJkLnNlbGVjdGlvbkNyaXRlcmlhO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gbWFrZVNlbGVjdGlvbihzZWxlY3Rpb25Dcml0ZXJpY
2Skge1xyXG4gICAgICAgIHNlYXJjaFN0b3JlLnN0b3JlTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgc3RvcmUuc2VsZWN0Um9vbShzZWxlY3Rpb25Dcml0ZXJpYSkudGhlbigoKSA9PiB7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHNlYXJjaFN0b3JlLnVwZGF0ZWRQcmljZSA9IHN0b3JlLnZpZXdNb2RlbC5mb290QmFyLnRvdGFsO1xyXG4gICAgICAgICAgICBzZWFyY2hTdG9yZS51cGRhdGVkUHJpY2VQZXJQZXJzb24gPSBzdG9yZS52aWV3TW9kZWwuZm9vdEJhci5wZXJQZXJzb247XHJcbiAgICAgICAgICAgIHNlYXJjaFN0b3JlLnN0b3JlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHNob3dNb2JpbGVQb3B1cChlKSB7XHJcbiAgICAgICAgaXNBY3RpdmUudmFsdWUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHdhdGNoKG1vYmlsZVNlbGVjdGVkVmFsdWUsIGFzeW5jIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMucm9vbS5ib2FyZE9wdGlvbnMuc29tZShiID0+IGIuc2VsZWN0aW9uQ3JpdGVyaWEgPT0gbmV3VmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGxldCBib2FyZCA9IHByb3BzLnJvb20uYm9hcmRPcHRpb25zLmZpbmQoYiA9PiBiLnNlbGVjdGlvbkNyaXRlcmlhID09IG5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgc2VsZWN0ZWRSb29tTW9iaWxlLnZhbHVlID0gYm9hcmQuYm9hcmQ7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkUHJpY2VNb2JpbGUudmFsdWUgPSBib2FyZC5wcmljZTtcclxuICAgICAgICAgICAgc2VsZWN0aW9uVmFsdWVNb2JpbGUudmFsdWUgPSBib2FyZC5zZWxlY3Rpb25Dcml0ZXJpYTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzZWxlY3RlZFJvb21Nb2JpbGUudmFsdWUgPSAnU2VsZWN0JztcclxuICAgICAgICAgICAgc2VsZWN0ZWRQcmljZU1vYmlsZS52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHNlbGVjdGlvblZhbHVlTW9iaWxlLnZhbHVlID1udWxsO1xyXG4gICAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgZnVuY3Rpb24gcHJpY2VEaWZmZXJlbmNlKGJvYXJkKSB7XHJcbiAgICAgICAgaWYoYm9hcmQucHJpY2UgPj0gMClcclxuICAgICAgICAgICAgcmV0dXJuIGDCoyR7Ym9hcmQucHJpY2V9YDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAtwqMke2JvYXJkLnByaWNlKi0xfWA7XHJcbiAgICB9XHJcblxyXG48L3NjcmlwdD4iLCJpbXBvcnQgc2NyaXB0IGZyb20gXCIuL2Jvb2tmbG93LWhvdGVsLXNlbGVjdC1yb29tLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL2Jvb2tmbG93LWhvdGVsLXNlbGVjdC1yb29tLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IFwiLi9ib29rZmxvdy1ob3RlbC1zZWxlY3Qtcm9vbS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD05YzdkNGJhMCZzY29wZWQ9dHJ1ZSZsYW5nPWNzc1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIkQ6XFxcXEJ1aWxkXFxcXEFnZW50V29ya0ZvbGRlcnNcXFxcS3VvbmlcXFxcMVxcXFxzXFxcXHNyY1xcXFxLdW9uaS5Ub3VyT3AuV3d3XFxcXG5vZGVfbW9kdWxlc1xcXFx2dWUtbG9hZGVyXFxcXGRpc3RcXFxcZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ19fc2NvcGVJZCcsXCJkYXRhLXYtOWM3ZDRiYTBcIl1dKVxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyJdLCJuYW1lcyI6WyJfd2l0aFNjb3BlSWQiLCJuIiwiX2hvaXN0ZWRfMiIsInNyYyIsIl9ob2lzdGVkXzMiLCJrZXkiLCJfaG9pc3RlZF80IiwiX2hvaXN0ZWRfNSIsIl9ob2lzdGVkXzYiLCJfaG9pc3RlZF83IiwiX2hvaXN0ZWRfOCIsIl9ob2lzdGVkXzkiLCJfaG9pc3RlZF8xMCIsImNsYXNzIiwiX2hvaXN0ZWRfMTEiLCJfaG9pc3RlZF8xMiIsIl9ob2lzdGVkXzEzIiwiX2hvaXN0ZWRfMTQiLCJfaG9pc3RlZF8xNSIsIl9ob2lzdGVkXzE2IiwicHJvcHMiLCJyb29tIiwic2V0dXAiLCJfX3Byb3BzIiwic2VhcmNoU3RvcmUiLCJib29raW5nQ29kZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ2YWx1ZSIsInJlc3VsdElkIiwiTnVtYmVyIiwicGFyc2VJbnQiLCJzdG9yZSIsImlzQWN0aXZlIiwicmVmIiwic2VsZWN0ZWRQcmljZU1vYmlsZSIsInNlbGVjdGlvblZhbHVlTW9iaWxlIiwic2VsZWN0ZWRSb29tTW9iaWxlIiwidGhlcm9vdCIsImxvYWRpbmciLCJ
2jb21wdXRlZCIsIm1ha2VTZWxlY3Rpb25TdGF0ZSIsIlN0YXJ0ZWQiLCJsb2FkQ29udGVudFN0YXRlIiwibW9iaWxlU2VsZWN0ZWRWYWx1ZSIsInZpZXdNb2RlbCIsIm1ha2VTZWxlY3Rpb24iLCJzZWxlY3Rpb25Dcml0ZXJpYSIsInN0b3JlTG9hZGluZyIsInNlbGVjdFJvb20iLCJ0aGVuIiwidXBkYXRlZFByaWNlIiwiZm9vdEJhciIsInRvdGFsIiwidXBkYXRlZFByaWNlUGVyUGVyc29uIiwicGVyUGVyc29uIiwicHJpY2VEaWZmZXJlbmNlIiwiYm9hcmQiLCJwcmljZSIsIm9uTW91bnRlZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJ3aW5kb3ciLCJpbml0SG92ZXJzIiwid2F0Y2giLCJuZXdWYWx1ZSIsIm9sZFZhbHVlIiwiYm9hcmRPcHRpb25zIiwic29tZSIsImIiLCJmaW5kIiwiX2N0eCIsIl9jYWNoZSIsImFjdGl2ZSIsInJlZl9rZXkiLCJuYW1lIiwiZml0IiwiZGVzY3JpcHRpb25UZXh0IiwiZGVzY3JpcHRpb25CdWxsZXRzIiwiYnVsbGV0Iiwib25DbGljayIsIiRldmVudCIsImlubmVySFRNTCIsImRlc2NyaXB0aW9uIiwic2VsZWN0ZWRSb29tT3B0aW9uIiwib25SZXF1ZXN0RGVzY3JpcHRpb24iLCJ0eXBlIl0sInNvdXJjZVJvb3QiOiIifQ==
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.