react-gravity-form
Version:
A component for including Gravity Forms on React apps via the Wordpress API
2 lines • 38.9 kB
JavaScript
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault"),_typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"FormConfirmation",{enumerable:!0,get:function get(){return _FormElements.FormConfirmation}}),Object.defineProperty(exports,"FormError",{enumerable:!0,get:function get(){return _FormElements.FormError}}),Object.defineProperty(exports,"RenderFields",{enumerable:!0,get:function get(){return _FormElements.RenderFields}}),Object.defineProperty(exports,"Submit",{enumerable:!0,get:function get(){return _FormElements.Submit}}),exports["default"]=void 0,Object.defineProperty(exports,"validateField",{enumerable:!0,get:function get(){return _validation.validateField}});var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator")),_extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends")),_asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")),_defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty")),_slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")),_react=_interopRequireWildcard(require("react")),_isomorphicUnfetch=_interopRequireDefault(require("isomorphic-unfetch")),_FormElements=require("./FormElements"),_form=require("./Helpers/form"),_validation=require("./Helpers/validation");function _getRequireWildcardCache(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(b,c){if(!c&&b&&b.__esModule)return b;if(null===b||"object"!=_typeof(b)&&"function"!=typeof b)return{default:b};var d=_getRequireWildcardCache(c);if(d&&d.has(b))return d.get(b);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in b)if("default"!=a&&Object.prototype.hasOwnProperty.call(b,a)){var g=f?Object.getOwnPropertyDescriptor(b,a):null;g&&(g.get||g.set)?Object.defineProperty(e,a,g):e[a]=b[a]}return e["default"]=b,d&&d.set(b,e),e}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){(0,_defineProperty2["default"])(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}var GravityForm=function(a){var b,c=a.initialPage,d=a.populatedEntry,e=a.onChange,f=(0,_react.useState)(!1),g=(0,_slicedToArray2["default"])(f,2),h=g[0],i=g[1],j=(0,_react.useState)(!1),k=(0,_slicedToArray2["default"])(j,2),l=k[0],m=k[1],n=(0,_react.useState)({}),o=(0,_slicedToArray2["default"])(n,2),p=o[0],q=o[1],r=(0,_react.useState)(!1),s=(0,_slicedToArray2["default"])(r,2),t=s[0],u=s[1],v=(0,_react.useState)(!1),w=(0,_slicedToArray2["default"])(v,2),x=w[0],y=w[1],z=(0,_react.useState)(!1),A=(0,_slicedToArray2["default"])(z,2),B=A[0],C=A[1],D=(0,_react.useState)({}),E=(0,_slicedToArray2["default"])(D,2),F=E[0],G=E[1],H=(0,_react.useState)({}),I=(0,_slicedToArray2["default"])(H,2),J=I[0],K=I[1],L=(0,_react.useState)(c||1),M=(0,_slicedToArray2["default"])(L,2),N=M[0],O=M[1],P=(0,_react.useState)({}),Q=(0,_slicedToArray2["default"])(P,2),R=Q[0],S=Q[1],T=(0,_react.useState)({}),U=(0,_slicedToArray2["default"])(T,2),V=U[0],W=U[1],X=(0,_react.useState)(!1),Y=(0,_slicedToArray2["default"])(X,2),Z=Y[0],$=Y[1],_=(0,_react.useState)(!1),aa=(0,_slicedToArray2["default"])(_,2),ba=aa[0],ca=aa[1],da=(0,_react.useState)(!1),ea=(0,_slicedToArray2["default"])(da,2),fa=ea[0],ga=ea[1],ha=(0,_react.useState)({}),ia=(0,_slicedToArray2["default"])(ha,2),ja=ia[0],ka=ia[1],la=(0,_react.useRef)(null),ma=(0,_react.useCallback)(function(a){(0,_form.updateFieldsValuesBasedOnEntry)(a)},[]);(0,_react.useEffect)(function(){(0,_form.fetchForm)(_objectSpread({setFormData:G,setFormValues:q,setActivePage:O,setConditionFields:S,setConditionalIds:W,setPages:ka,setIsMultiPart:$},a))},[]),(0,_react.useEffect)(function(){e&&e(p)},[p]),(0,_react.useEffect)(function(){d&&ma(d)},[d]);var na=function(){if(la){var a=la.current.querySelector(".form-field.error");a&&a.scrollIntoView()}},oa=a.title,pa=a.formID,qa=a.submitIcon,ra=a.saveStateToHtmlField,sa=a.styledComponents,ta=a.customComponents,ua=a.errorMessage,va=a.dropzoneText,wa=a.loadingSpinner,xa=a.onError,ya=a.language,za=a.apiKeys,Aa=sa||!1,Ba=Aa.Button,Ca=Aa.Loading,Da=Aa.FormError,Ea=Aa.FormConfirmation,Fa=Aa.GFWrapper,Ga=void 0===Fa?"div":Fa,Ha=F||{},Ia=Ha.cssClass,Ja=Ha.button,Ka=void 0===Ja?{}:Ja,La=Ka.conditionalLogic,Ma=La&&(0,_form.checkConditionalLogic)(La,0<Object.keys(p).length?p:F.fields),Na=function(a){a.preventDefault(),(0,_form.prevStep)(p,ja,N,O,ca)},Oa=function(){var b=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function c(b){var d,e,f,g,h,j,k,l,n,o;return _regenerator["default"].wrap(function(c){for(;;)switch(c.prev=c.next){case 0:if(d=a.onSubmit,e=a.filterFormData,f=new FormData(b.target),e&&(f=e(f,p)),b.preventDefault(),g=(0,_form.forceValidation)(N,p,ga,K),g){c.next=8;break}return na(),c.abrupt("return",!1);case 8:d?d(f):(u(!0),y(!1),i(!1),C(!1),m(!1),h=a.formID,j=a.backendUrl,k=a.jumpToConfirmation,l=a.onSubmitSuccess,n=a.onError,o=j.substring(0,j.indexOf("/wp-json")),(0,_isomorphicUnfetch["default"])("".concat(o,"/wp-json/gf/v2/forms/").concat(h,"/submissions"),{method:"POST",body:f}).then(function(a){return a.json()}).then(function(b){if(b&&b.is_valid){if(l){var c=l(b);if(!c)return!1}var d=b.confirmation_message,e=b||!1,f=e.confirmation_type,g=e.confirmation_redirect;if(f&&g&&"redirect"===f&&"undefined"!=typeof window)return window.location.replace(g),!1;u(!1),y(!0),C(d),k&&(0,_form.scrollToConfirmation)(a,la,k)}else throw{response:b}})["catch"](function(b){var c=b&&b.response&&b.response.validation_messages?b.response.validation_messages:"Something went wrong";n?(n(c),u(!1),i(!0)):(u(!1),i(!0),m(c)),k&&(0,_form.scrollToConfirmation)(a,la)}));case 9:case"end":return c.stop()}},c)}));return function onSubmit(){return b.apply(this,arguments)}}();return _react["default"].createElement(Ga,{ref:la,className:"form-wrapper",id:"gravity_form_".concat(pa)},F.title?null:Ca&&_react["default"].createElement(Ca,{isLoading:!0}),h&&!x&&!xa&&_react["default"].createElement(_FormElements.FormError,{SFormError:Da||!1,errorMessage:ua||"There was a problem with your submission"}),x&&B&&_react["default"].createElement(_FormElements.FormConfirmation,{confirmation:B,SFormConfirmation:Ea}),!x&&F.fields?_react["default"].createElement("form",{onSubmit:function onSubmit(a){return Oa(a)},className:Ia,encType:Z?"multipart/form-data":void 0,noValidate:!0},(F.title||F.description)&&_react["default"].createElement("div",null,F.title&&oa?_react["default"].createElement("h3",{className:"form-title"},F.title):null,F.description?_react["default"].createElement("p",{className:"form-description"},F.description):null),_react["default"].createElement("div",{className:"form-wrapper"},(null===F||void 0===F||null===(b=F.pagination)||void 0===b?void 0:b.pages)&&_react["default"].createElement(_FormElements.ProgressBar,{pagination:F.pagination,activePage:N,firstPageCssClass:F.firstPageCssClass}),_react["default"].createElement(_FormElements.RenderFields,(0,_extends2["default"])({styledComponents:sa,customComponents:ta,fields:F.fields,formValues:p,submitFailed:h,submitSuccess:x,updateForm:function updateForm(a,b,c){return(0,_form.updateFormHandler)(b,a,c,p,q,V,R)},touched:J,setTouched:function setTouched(a){return(0,_form.setTouchedHandler)(a,J,K)},setErrorMessages:m,pagination:F.pagination,activePage:N,prevStep:function prevStep(a){return Na(a)},nextStep:function nextStep(b){return(0,_form.nextStep)(b,a,ja,p,N,O,ca,K,ga)},checkConditionalLogic:function checkConditionalLogic(a,b){return(0,_form.checkConditionalLogic)(a,b=!1)},saveStateToHtmlField:ra,enableHoneypot:F.enableHoneypot,errors:l,unsetError:function unsetError(a){return(0,_form.unsetError)(a,l)},dropzoneText:va,pageClicked:ba,language:ya,apiKeys:za},a)),(!F.pagination||F.pagination&&F.pagination.pages.length===N)&&_react["default"].createElement(_FormElements.Submit,{Button:Ba,Loading:Ca,formData:F,submitIcon:qa,submitting:t,prevStep:function prevStep(a){return Na(a)},loadingSpinner:wa,hideSubmitButton:Ma}))):"")};GravityForm.defaultProps={title:!0,submitIcon:!1,saveStateToHtmlField:!1,jumpToConfirmation:!0};var _default=exports["default"]=GravityForm;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJHcmF2aXR5Rm9ybSIsInByb3BzIiwiYiIsImluaXRpYWxQYWdlIiwicG9wdWxhdGVkRW50cnkiLCJvbkNoYW5nZSIsImYiLCJ1c2VTdGF0ZSIsImciLCJfc2xpY2VkVG9BcnJheTIiLCJzdWJtaXRGYWlsZWQiLCJzZXRTdWJtaXRGYWlsZWQiLCJqIiwiayIsImVycm9yTWVzc2FnZXMiLCJzZXRFcnJvck1lc3NhZ2VzIiwibiIsIm8iLCJmb3JtVmFsdWVzIiwic2V0Rm9ybVZhbHVlcyIsInIiLCJzIiwic3VibWl0dGluZyIsInNldFN1Ym1pdHRpbmciLCJ2IiwidyIsInN1Ym1pdFN1Y2Nlc3MiLCJzZXRTdWJtaXRTdWNjZXNzIiwieiIsIkEiLCJjb25maXJtYXRpb25NZXNzYWdlIiwic2V0Q29uZmlybWF0aW9uTWVzc2FnZSIsIkQiLCJFIiwiZm9ybURhdGEiLCJzZXRGb3JtRGF0YSIsIkgiLCJJIiwidG91Y2hlZCIsInNldFRvdWNoZWQiLCJMIiwiTSIsImFjdGl2ZVBhZ2UiLCJzZXRBY3RpdmVQYWdlIiwiUCIsIlEiLCJjb25kaXRpb25GaWVsZHMiLCJzZXRDb25kaXRpb25GaWVsZHMiLCJUIiwiVSIsImNvbmRpdGlvbmFsSWRzIiwic2V0Q29uZGl0aW9uYWxJZHMiLCJYIiwiWSIsImlzTXVsdGlwYXJ0Iiwic2V0SXNNdWx0aVBhcnQiLCJfIiwiYWEiLCJwYWdlQ2xpY2tlZCIsInNldFBhZ2VDbGlja2VkIiwiZGEiLCJlYSIsInNob3dQYWdlVmFsaWRhdGlvbk1zZyIsInNldFNob3dQYWdlVmFsaWRhdGlvbk1zZyIsImhhIiwiaWEiLCJwYWdlcyIsInNldFBhZ2VzIiwid3JhcHBlclJlZiIsInVzZVJlZiIsInVwZGF0ZUVudHJ5RmllbGRzIiwidXNlQ2FsbGJhY2siLCJ1cGRhdGVGaWVsZHNWYWx1ZXNCYXNlZE9uRW50cnkiLCJ1c2VFZmZlY3QiLCJmZXRjaEZvcm0iLCJfb2JqZWN0U3ByZWFkIiwic2Nyb2xsVG9GaXJzdEludmFsaWRGaWVsZCIsImZpcnN0RXJyRWwiLCJjdXJyZW50IiwicXVlcnlTZWxlY3RvciIsInNjcm9sbEludG9WaWV3IiwidGl0bGUiLCJmb3JtSUQiLCJzdWJtaXRJY29uIiwic2F2ZVN0YXRlVG9IdG1sRmllbGQiLCJzdHlsZWRDb21wb25lbnRzIiwiY3VzdG9tQ29tcG9uZW50cyIsImVycm9yTWVzc2FnZSIsImRyb3B6b25lVGV4dCIsImxvYWRpbmdTcGlubmVyIiwib25FcnJvciIsImxhbmd1YWdlIiwiYXBpS2V5cyIsIkFhIiwiQnV0dG9uIiwiTG9hZGluZyIsIlNGb3JtRXJyb3IiLCJGb3JtRXJyb3IiLCJTRm9ybUNvbmZpcm1hdGlvbiIsIkZvcm1Db25maXJtYXRpb24iLCJGYSIsIkdGV3JhcHBlciIsIkhhIiwiY3NzQ2xhc3MiLCJKYSIsImJ1dHRvbiIsIkthIiwiY29uZGl0aW9uYWxMb2dpYyIsImhpZGVTdWJtaXRCdXR0b24iLCJjaGVja0NvbmRpdGlvbmFsTG9naWMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiZmllbGRzIiwiaGFuZGxlUHJldlN0ZXAiLCJlIiwicHJldmVudERlZmF1bHQiLCJwcmV2U3RlcCIsIm9uU3VibWl0IiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsImMiLCJldmVudCIsImQiLCJoIiwibCIsIndyYXAiLCJwcmV2IiwibmV4dCIsImN1c3RvbU9uU3VibWl0IiwiZmlsdGVyRm9ybURhdGEiLCJGb3JtRGF0YSIsInRhcmdldCIsImlzRm9ybVZhbGlkIiwiZm9yY2VWYWxpZGF0aW9uIiwiYWJydXB0IiwiYmFja2VuZFVybCIsImp1bXBUb0NvbmZpcm1hdGlvbiIsIm9uU3VibWl0U3VjY2VzcyIsImdmU3VibWlzc2lvblVybCIsInN1YnN0cmluZyIsImluZGV4T2YiLCJmZXRjaCIsImNvbmNhdCIsIm1ldGhvZCIsImJvZHkiLCJ0aGVuIiwicmVzcCIsImpzb24iLCJyZXNwb25zZSIsImlzX3ZhbGlkIiwicmVzIiwiY29uZmlybWF0aW9uX21lc3NhZ2UiLCJjb25maXJtYXRpb25fdHlwZSIsImNvbmZpcm1hdGlvbl9yZWRpcmVjdCIsIndpbmRvdyIsImxvY2F0aW9uIiwicmVwbGFjZSIsInNjcm9sbFRvQ29uZmlybWF0aW9uIiwiZXJyb3IiLCJ2YWxpZGF0aW9uX21lc3NhZ2VzIiwic3RvcCIsImFwcGx5IiwiYXJndW1lbnRzIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsIkdhIiwicmVmIiwiY2xhc3NOYW1lIiwiaWQiLCJDYSIsImlzTG9hZGluZyIsIl9Gb3JtRWxlbWVudHMiLCJjb25maXJtYXRpb24iLCJlbmNUeXBlIiwibm9WYWxpZGF0ZSIsImRlc2NyaXB0aW9uIiwicGFnaW5hdGlvbiIsIlByb2dyZXNzQmFyIiwiZmlyc3RQYWdlQ3NzQ2xhc3MiLCJSZW5kZXJGaWVsZHMiLCJfZXh0ZW5kczIiLCJ1cGRhdGVGb3JtIiwiZmllbGQiLCJpbnB1dElEIiwidXBkYXRlRm9ybUhhbmRsZXIiLCJzZXRUb3VjaGVkSGFuZGxlciIsIm5leHRTdGVwIiwiY29uZGl0aW9uIiwiZW5hYmxlSG9uZXlwb3QiLCJlcnJvcnMiLCJ1bnNldEVycm9yIiwiU3VibWl0IiwiZGVmYXVsdFByb3BzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGZldGNoIGZyb20gJ2lzb21vcnBoaWMtdW5mZXRjaCc7XG5pbXBvcnQgeyBGb3JtQ29uZmlybWF0aW9uLCBGb3JtRXJyb3IsIFJlbmRlckZpZWxkcywgU3VibWl0LCBQcm9ncmVzc0JhciB9IGZyb20gJy4vRm9ybUVsZW1lbnRzJztcblxuaW1wb3J0IHtcbiAgY2hlY2tDb25kaXRpb25hbExvZ2ljLFxuICBmZXRjaEZvcm0sXG4gIGZvcmNlVmFsaWRhdGlvbixcbiAgbmV4dFN0ZXAsXG4gIHByZXZTdGVwLFxuICBzY3JvbGxUb0NvbmZpcm1hdGlvbixcbiAgc2V0VG91Y2hlZEhhbmRsZXIsXG4gIHVuc2V0RXJyb3IsXG4gIHVwZGF0ZUZpZWxkc1ZhbHVlc0Jhc2VkT25FbnRyeSxcbiAgdXBkYXRlRm9ybUhhbmRsZXIsXG59IGZyb20gJy4vSGVscGVycy9mb3JtJztcblxuaW1wb3J0IHsgdmFsaWRhdGVGaWVsZCB9IGZyb20gJy4vSGVscGVycy92YWxpZGF0aW9uJztcblxuY29uc3QgR3Jhdml0eUZvcm0gPSBwcm9wcyA9PiB7XG4gIGNvbnN0IHsgaW5pdGlhbFBhZ2UsIHBvcHVsYXRlZEVudHJ5LCBvbkNoYW5nZSB9ID0gcHJvcHM7XG5cbiAgY29uc3QgW3N1Ym1pdEZhaWxlZCwgc2V0U3VibWl0RmFpbGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2Vycm9yTWVzc2FnZXMsIHNldEVycm9yTWVzc2FnZXNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZm9ybVZhbHVlcywgc2V0Rm9ybVZhbHVlc10gPSB1c2VTdGF0ZSh7fSk7XG4gIGNvbnN0IFtzdWJtaXR0aW5nLCBzZXRTdWJtaXR0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3N1Ym1pdFN1Y2Nlc3MsIHNldFN1Ym1pdFN1Y2Nlc3NdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbY29uZmlybWF0aW9uTWVzc2FnZSwgc2V0Q29uZmlybWF0aW9uTWVzc2FnZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmb3JtRGF0YSwgc2V0Rm9ybURhdGFdID0gdXNlU3RhdGUoe30pO1xuICBjb25zdCBbdG91Y2hlZCwgc2V0VG91Y2hlZF0gPSB1c2VTdGF0ZSh7fSk7XG4gIGNvbnN0IFthY3RpdmVQYWdlLCBzZXRBY3RpdmVQYWdlXSA9IHVzZVN0YXRlKGluaXRpYWxQYWdlIHx8IDEpO1xuICBjb25zdCBbY29uZGl0aW9uRmllbGRzLCBzZXRDb25kaXRpb25GaWVsZHNdID0gdXNlU3RhdGUoe30pO1xuICBjb25zdCBbY29uZGl0aW9uYWxJZHMsIHNldENvbmRpdGlvbmFsSWRzXSA9IHVzZVN0YXRlKHt9KTtcbiAgY29uc3QgW2lzTXVsdGlwYXJ0LCBzZXRJc011bHRpUGFydF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtwYWdlQ2xpY2tlZCwgc2V0UGFnZUNsaWNrZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd1BhZ2VWYWxpZGF0aW9uTXNnLCBzZXRTaG93UGFnZVZhbGlkYXRpb25Nc2ddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbcGFnZXMsIHNldFBhZ2VzXSA9IHVzZVN0YXRlKHt9KTtcblxuICBjb25zdCB3cmFwcGVyUmVmID0gdXNlUmVmKG51bGwpO1xuXG4gIGNvbnN0IHVwZGF0ZUVudHJ5RmllbGRzID0gdXNlQ2FsbGJhY2socG9wdWxhdGVkRW50cnkgPT4ge1xuICAgIHVwZGF0ZUZpZWxkc1ZhbHVlc0Jhc2VkT25FbnRyeShwb3B1bGF0ZWRFbnRyeSk7XG4gIH0sIFtdKTtcblxuICAvKipcbiAgICogRmV0Y2ggZm9ybSBkYXRhXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZldGNoRm9ybSh7XG4gICAgICBzZXRGb3JtRGF0YSxcbiAgICAgIHNldEZvcm1WYWx1ZXMsXG4gICAgICBzZXRBY3RpdmVQYWdlLFxuICAgICAgc2V0Q29uZGl0aW9uRmllbGRzLFxuICAgICAgc2V0Q29uZGl0aW9uYWxJZHMsXG4gICAgICBzZXRQYWdlcyxcbiAgICAgIHNldElzTXVsdGlQYXJ0LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICAvKipcbiAgICogQ2FsbCBjdXN0b20gb25DaGFuZ2UgaGFuZGxlciB3aXRoIHBhc3NlZCB2YWx1ZXMgZnJvbSBmb3JtXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgb25DaGFuZ2UoZm9ybVZhbHVlcyk7XG4gICAgfVxuICB9LCBbZm9ybVZhbHVlc10pO1xuXG4gIC8qKlxuICAgKiBTZXQgZW50cnkgdG8gdGhlIGZvcm1cbiAgICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHBvcHVsYXRlZEVudHJ5KSB7XG4gICAgICB1cGRhdGVFbnRyeUZpZWxkcyhwb3B1bGF0ZWRFbnRyeSk7XG4gICAgfVxuICB9LCBbcG9wdWxhdGVkRW50cnldKTtcblxuICAvKipcbiAgICogU2Nyb2xsIHBhZ2UgdG8gdGhlIGZpcnN0IG5vdCB2YWxpZCBmaWVsZFxuICAgKi9cbiAgY29uc3Qgc2Nyb2xsVG9GaXJzdEludmFsaWRGaWVsZCA9ICgpID0+IHtcbiAgICBpZiAoIXdyYXBwZXJSZWYpIHJldHVybjtcblxuICAgIGNvbnN0IGZpcnN0RXJyRWwgPSB3cmFwcGVyUmVmLmN1cnJlbnQucXVlcnlTZWxlY3RvcignLmZvcm0tZmllbGQuZXJyb3InKTtcbiAgICBpZiAoZmlyc3RFcnJFbCkge1xuICAgICAgZmlyc3RFcnJFbC5zY3JvbGxJbnRvVmlldygpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB7XG4gICAgdGl0bGUsXG4gICAgZm9ybUlELFxuICAgIHN1Ym1pdEljb24sXG4gICAgc2F2ZVN0YXRlVG9IdG1sRmllbGQsXG4gICAgc3R5bGVkQ29tcG9uZW50cyxcbiAgICBjdXN0b21Db21wb25lbnRzLFxuICAgIGVycm9yTWVzc2FnZSxcbiAgICBkcm9wem9uZVRleHQsXG4gICAgbG9hZGluZ1NwaW5uZXIsXG4gICAgb25FcnJvcixcbiAgICBsYW5ndWFnZSxcbiAgICBhcGlLZXlzLFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3Qge1xuICAgIEJ1dHRvbixcbiAgICBMb2FkaW5nLFxuICAgIEZvcm1FcnJvcjogU0Zvcm1FcnJvcixcbiAgICBGb3JtQ29uZmlybWF0aW9uOiBTRm9ybUNvbmZpcm1hdGlvbixcbiAgICBHRldyYXBwZXIgPSAnZGl2JyxcbiAgfSA9IHN0eWxlZENvbXBvbmVudHMgfHwgZmFsc2U7XG5cbiAgY29uc3QgeyBjc3NDbGFzcywgYnV0dG9uOiB7IGNvbmRpdGlvbmFsTG9naWMgfSA9IHt9IH0gPSBmb3JtRGF0YSB8fCB7fTtcbiAgY29uc3QgaGlkZVN1Ym1pdEJ1dHRvbiA9XG4gIGNvbmRpdGlvbmFsTG9naWMgJiZcbiAgY2hlY2tDb25kaXRpb25hbExvZ2ljKFxuICAgIGNvbmRpdGlvbmFsTG9naWMsXG4gICAgT2JqZWN0LmtleXMoZm9ybVZhbHVlcykubGVuZ3RoID4gMCA/IGZvcm1WYWx1ZXMgOiBmb3JtRGF0YS5maWVsZHNcbiAgKTtcblxuICBjb25zdCBoYW5kbGVQcmV2U3RlcCA9IGUgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBwcmV2U3RlcChmb3JtVmFsdWVzLCBwYWdlcywgYWN0aXZlUGFnZSwgc2V0QWN0aXZlUGFnZSwgc2V0UGFnZUNsaWNrZWQpO1xuICB9O1xuXG4gIGNvbnN0IG9uU3VibWl0ID0gYXN5bmMgZXZlbnQgPT4ge1xuICAgIGNvbnN0IHsgb25TdWJtaXQ6IGN1c3RvbU9uU3VibWl0LCBmaWx0ZXJGb3JtRGF0YSB9ID0gcHJvcHM7XG4gICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKGV2ZW50LnRhcmdldCk7XG5cbiAgICBpZiAoZmlsdGVyRm9ybURhdGEpIGZvcm1EYXRhID0gZmlsdGVyRm9ybURhdGEoZm9ybURhdGEsIGZvcm1WYWx1ZXMpO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGlzRm9ybVZhbGlkID0gZm9yY2VWYWxpZGF0aW9uKFxuICAgICAgYWN0aXZlUGFnZSxcbiAgICAgIGZvcm1WYWx1ZXMsXG4gICAgICBzZXRTaG93UGFnZVZhbGlkYXRpb25Nc2csXG4gICAgICBzZXRUb3VjaGVkXG4gICAgKTtcblxuICAgIGlmICghaXNGb3JtVmFsaWQpIHtcbiAgICAgIHNjcm9sbFRvRmlyc3RJbnZhbGlkRmllbGQoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoY3VzdG9tT25TdWJtaXQpIHtcbiAgICAgIGN1c3RvbU9uU3VibWl0KGZvcm1EYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0U3VibWl0dGluZyh0cnVlKTtcbiAgICAgIHNldFN1Ym1pdFN1Y2Nlc3MoZmFsc2UpO1xuICAgICAgc2V0U3VibWl0RmFpbGVkKGZhbHNlKTtcbiAgICAgIHNldENvbmZpcm1hdGlvbk1lc3NhZ2UoZmFsc2UpO1xuICAgICAgc2V0RXJyb3JNZXNzYWdlcyhmYWxzZSk7XG5cbiAgICAgIGNvbnN0IHsgZm9ybUlELCBiYWNrZW5kVXJsLCBqdW1wVG9Db25maXJtYXRpb24sIG9uU3VibWl0U3VjY2Vzcywgb25FcnJvciB9ID0gcHJvcHM7XG4gICAgICBjb25zdCBnZlN1Ym1pc3Npb25VcmwgPSBiYWNrZW5kVXJsLnN1YnN0cmluZygwLCBiYWNrZW5kVXJsLmluZGV4T2YoJy93cC1qc29uJykpO1xuXG4gICAgICBmZXRjaChgJHtnZlN1Ym1pc3Npb25Vcmx9L3dwLWpzb24vZ2YvdjIvZm9ybXMvJHtmb3JtSUR9L3N1Ym1pc3Npb25zYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICB9KVxuICAgICAgICAudGhlbihyZXNwID0+IHJlc3AuanNvbigpKVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmlzX3ZhbGlkKSB7XG4gICAgICAgICAgICBpZiAob25TdWJtaXRTdWNjZXNzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlcyA9IG9uU3VibWl0U3VjY2VzcyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgIGlmICghcmVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb25maXJtYXRpb25NZXNzYWdlID0gcmVzcG9uc2UuY29uZmlybWF0aW9uX21lc3NhZ2U7XG4gICAgICAgICAgICBjb25zdCB7IGNvbmZpcm1hdGlvbl90eXBlLCBjb25maXJtYXRpb25fcmVkaXJlY3QgfSA9IHJlc3BvbnNlIHx8IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGNvbmZpcm1hdGlvbl90eXBlICYmIGNvbmZpcm1hdGlvbl9yZWRpcmVjdCAmJiBjb25maXJtYXRpb25fdHlwZSA9PT0gJ3JlZGlyZWN0Jykge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZShjb25maXJtYXRpb25fcmVkaXJlY3QpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICAgICAgICBzZXRTdWJtaXRTdWNjZXNzKHRydWUpO1xuICAgICAgICAgICAgc2V0Q29uZmlybWF0aW9uTWVzc2FnZShjb25maXJtYXRpb25NZXNzYWdlKTtcblxuICAgICAgICAgICAgaWYgKGp1bXBUb0NvbmZpcm1hdGlvbikge1xuICAgICAgICAgICAgICBzY3JvbGxUb0NvbmZpcm1hdGlvbihwcm9wcywgd3JhcHBlclJlZiwganVtcFRvQ29uZmlybWF0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cge1xuICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZXMgPVxuICAgICAgICAgICAgZXJyb3IgJiYgZXJyb3IucmVzcG9uc2UgJiYgZXJyb3IucmVzcG9uc2UudmFsaWRhdGlvbl9tZXNzYWdlc1xuICAgICAgICAgICAgICA/IGVycm9yLnJlc3BvbnNlLnZhbGlkYXRpb25fbWVzc2FnZXNcbiAgICAgICAgICAgICAgOiAnU29tZXRoaW5nIHdlbnQgd3JvbmcnO1xuXG4gICAgICAgICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgICAgICAgIG9uRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gICAgICAgICAgICBzZXRTdWJtaXR0aW5nKGZhbHNlKTtcbiAgICAgICAgICAgIHNldFN1Ym1pdEZhaWxlZCh0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICAgICAgICBzZXRTdWJtaXRGYWlsZWQodHJ1ZSk7XG4gICAgICAgICAgICBzZXRFcnJvck1lc3NhZ2VzKGVycm9yTWVzc2FnZXMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChqdW1wVG9Db25maXJtYXRpb24pIHtcbiAgICAgICAgICAgIHNjcm9sbFRvQ29uZmlybWF0aW9uKHByb3BzLCB3cmFwcGVyUmVmKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIChcbiAgICA8R0ZXcmFwcGVyIHJlZj17d3JhcHBlclJlZn0gY2xhc3NOYW1lPVwiZm9ybS13cmFwcGVyXCIgaWQ9e2BncmF2aXR5X2Zvcm1fJHtmb3JtSUR9YH0+XG4gICAgICB7Zm9ybURhdGEudGl0bGUgPyBudWxsIDogTG9hZGluZyAmJiA8TG9hZGluZyBpc0xvYWRpbmcgLz59XG5cbiAgICAgIHtzdWJtaXRGYWlsZWQgJiYgIXN1Ym1pdFN1Y2Nlc3MgJiYgIW9uRXJyb3IgJiYgKFxuICAgICAgICA8Rm9ybUVycm9yXG4gICAgICAgICAgU0Zvcm1FcnJvcj17U0Zvcm1FcnJvciB8fCBmYWxzZX1cbiAgICAgICAgICBlcnJvck1lc3NhZ2U9e2Vycm9yTWVzc2FnZSB8fCAnVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHlvdXIgc3VibWlzc2lvbid9XG4gICAgICAgIC8+XG4gICAgICApfVxuXG4gICAgICB7c3VibWl0U3VjY2VzcyAmJiBjb25maXJtYXRpb25NZXNzYWdlICYmIChcbiAgICAgICAgPEZvcm1Db25maXJtYXRpb25cbiAgICAgICAgICBjb25maXJtYXRpb249e2NvbmZpcm1hdGlvbk1lc3NhZ2V9XG4gICAgICAgICAgU0Zvcm1Db25maXJtYXRpb249e1NGb3JtQ29uZmlybWF0aW9ufVxuICAgICAgICAvPlxuICAgICAgKX1cblxuICAgICAgeyFzdWJtaXRTdWNjZXNzICYmIGZvcm1EYXRhLmZpZWxkcyA/IChcbiAgICAgICAgPGZvcm1cbiAgICAgICAgICBvblN1Ym1pdD17ZXZlbnQgPT4gb25TdWJtaXQoZXZlbnQpfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y3NzQ2xhc3N9XG4gICAgICAgICAgZW5jVHlwZT17aXNNdWx0aXBhcnQgPyAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScgOiB1bmRlZmluZWR9XG4gICAgICAgICAgbm9WYWxpZGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgeyhmb3JtRGF0YS50aXRsZSB8fCBmb3JtRGF0YS5kZXNjcmlwdGlvbikgJiYgKFxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAge2Zvcm1EYXRhLnRpdGxlICYmIHRpdGxlID8gPGgzIGNsYXNzTmFtZT1cImZvcm0tdGl0bGVcIj57Zm9ybURhdGEudGl0bGV9PC9oMz4gOiBudWxsfVxuICAgICAgICAgICAgICB7Zm9ybURhdGEuZGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZm9ybS1kZXNjcmlwdGlvblwiPntmb3JtRGF0YS5kZXNjcmlwdGlvbn08L3A+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0td3JhcHBlclwiPlxuICAgICAgICAgICAge2Zvcm1EYXRhPy5wYWdpbmF0aW9uPy5wYWdlcyAmJiAoXG4gICAgICAgICAgICAgIDxQcm9ncmVzc0JhclxuICAgICAgICAgICAgICAgIHBhZ2luYXRpb249e2Zvcm1EYXRhLnBhZ2luYXRpb259XG4gICAgICAgICAgICAgICAgYWN0aXZlUGFnZT17YWN0aXZlUGFnZX1cbiAgICAgICAgICAgICAgICBmaXJzdFBhZ2VDc3NDbGFzcz17Zm9ybURhdGEuZmlyc3RQYWdlQ3NzQ2xhc3N9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFJlbmRlckZpZWxkc1xuICAgICAgICAgICAgICBzdHlsZWRDb21wb25lbnRzPXtzdHlsZWRDb21wb25lbnRzfVxuICAgICAgICAgICAgICBjdXN0b21Db21wb25lbnRzPXtjdXN0b21Db21wb25lbnRzfVxuICAgICAgICAgICAgICBmaWVsZHM9e2Zvcm1EYXRhLmZpZWxkc31cbiAgICAgICAgICAgICAgZm9ybVZhbHVlcz17Zm9ybVZhbHVlc31cbiAgICAgICAgICAgICAgc3VibWl0RmFpbGVkPXtzdWJtaXRGYWlsZWR9XG4gICAgICAgICAgICAgIHN1Ym1pdFN1Y2Nlc3M9e3N1Ym1pdFN1Y2Nlc3N9XG4gICAgICAgICAgICAgIHVwZGF0ZUZvcm09eyhldmVudCwgZmllbGQsIGlucHV0SUQpID0+XG4gICAgICAgICAgICAgICAgdXBkYXRlRm9ybUhhbmRsZXIoXG4gICAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgICAgaW5wdXRJRCxcbiAgICAgICAgICAgICAgICAgIGZvcm1WYWx1ZXMsXG4gICAgICAgICAgICAgICAgICBzZXRGb3JtVmFsdWVzLFxuICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxJZHMsXG4gICAgICAgICAgICAgICAgICBjb25kaXRpb25GaWVsZHNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgICAgICAgc2V0VG91Y2hlZD17aWQgPT4gc2V0VG91Y2hlZEhhbmRsZXIoaWQsIHRvdWNoZWQsIHNldFRvdWNoZWQpfVxuICAgICAgICAgICAgICBzZXRFcnJvck1lc3NhZ2VzPXtzZXRFcnJvck1lc3NhZ2VzfVxuICAgICAgICAgICAgICBwYWdpbmF0aW9uPXtmb3JtRGF0YS5wYWdpbmF0aW9ufVxuICAgICAgICAgICAgICBhY3RpdmVQYWdlPXthY3RpdmVQYWdlfVxuICAgICAgICAgICAgICBwcmV2U3RlcD17ZSA9PiBoYW5kbGVQcmV2U3RlcChlKX1cbiAgICAgICAgICAgICAgbmV4dFN0ZXA9e2UgPT5cbiAgICAgICAgICAgICAgICBuZXh0U3RlcChcbiAgICAgICAgICAgICAgICAgIGUsXG4gICAgICAgICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VzLFxuICAgICAgICAgICAgICAgICAgZm9ybVZhbHVlcyxcbiAgICAgICAgICAgICAgICAgIGFjdGl2ZVBhZ2UsXG4gICAgICAgICAgICAgICAgICBzZXRBY3RpdmVQYWdlLFxuICAgICAgICAgICAgICAgICAgc2V0UGFnZUNsaWNrZWQsXG4gICAgICAgICAgICAgICAgICBzZXRUb3VjaGVkLFxuICAgICAgICAgICAgICAgICAgc2V0U2hvd1BhZ2VWYWxpZGF0aW9uTXNnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNoZWNrQ29uZGl0aW9uYWxMb2dpYz17KGNvbmRpdGlvbiwgZmllbGRzKSA9PlxuICAgICAgICAgICAgICAgIGNoZWNrQ29uZGl0aW9uYWxMb2dpYyhjb25kaXRpb24sIChmaWVsZHMgPSBmYWxzZSkpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc2F2ZVN0YXRlVG9IdG1sRmllbGQ9e3NhdmVTdGF0ZVRvSHRtbEZpZWxkfVxuICAgICAgICAgICAgICBlbmFibGVIb25leXBvdD17Zm9ybURhdGEuZW5hYmxlSG9uZXlwb3R9XG4gICAgICAgICAgICAgIGVycm9ycz17ZXJyb3JNZXNzYWdlc31cbiAgICAgICAgICAgICAgdW5zZXRFcnJvcj17aWQgPT4gdW5zZXRFcnJvcihpZCwgZXJyb3JNZXNzYWdlcyl9XG4gICAgICAgICAgICAgIGRyb3B6b25lVGV4dD17ZHJvcHpvbmVUZXh0fVxuICAgICAgICAgICAgICBwYWdlQ2xpY2tlZD17cGFnZUNsaWNrZWR9XG4gICAgICAgICAgICAgIGxhbmd1YWdlPXtsYW5ndWFnZX1cbiAgICAgICAgICAgICAgYXBpS2V5cz17YXBpS2V5c31cbiAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHsoIWZvcm1EYXRhLnBhZ2luYXRpb24gfHxcbiAgICAgICAgICAgICAgKGZvcm1EYXRhLnBhZ2luYXRpb24gJiYgZm9ybURhdGEucGFnaW5hdGlvbi5wYWdlcy5sZW5ndGggPT09IGFjdGl2ZVBhZ2UpKSAmJiAoXG4gICAgICAgICAgICAgIDxTdWJtaXRcbiAgICAgICAgICAgICAgICBCdXR0b249e0J1dHRvbn1cbiAgICAgICAgICAgICAgICBMb2FkaW5nPXtMb2FkaW5nfVxuICAgICAgICAgICAgICAgIGZvcm1EYXRhPXtmb3JtRGF0YX1cbiAgICAgICAgICAgICAgICBzdWJtaXRJY29uPXtzdWJtaXRJY29ufVxuICAgICAgICAgICAgICAgIHN1Ym1pdHRpbmc9e3N1Ym1pdHRpbmd9XG4gICAgICAgICAgICAgICAgcHJldlN0ZXA9e2UgPT4gaGFuZGxlUHJldlN0ZXAoZSl9XG4gICAgICAgICAgICAgICAgbG9hZGluZ1NwaW5uZXI9e2xvYWRpbmdTcGlubmVyfVxuICAgICAgICAgICAgICAgIGhpZGVTdWJtaXRCdXR0b249e2hpZGVTdWJtaXRCdXR0b259XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICApIDogKFxuICAgICAgICAnJ1xuICAgICAgKX1cbiAgICA8L0dGV3JhcHBlcj5cbiAgKTtcbn07XG5cbkdyYXZpdHlGb3JtLmRlZmF1bHRQcm9wcyA9IHtcbiAgdGl0bGU6IHRydWUsXG4gIHN1Ym1pdEljb246IGZhbHNlLFxuICBzYXZlU3RhdGVUb0h0bWxGaWVsZDogZmFsc2UsXG4gIGp1bXBUb0NvbmZpcm1hdGlvbjogdHJ1ZSxcbn07XG5cbmV4cG9ydCB7IHZhbGlkYXRlRmllbGQsIEZvcm1Db25maXJtYXRpb24sIEZvcm1FcnJvciwgUmVuZGVyRmllbGRzLCBTdWJtaXQgfTtcblxuZXhwb3J0IGRlZmF1bHQgR3Jhdml0eUZvcm07XG5cbiJdLCJtYXBwaW5ncyI6Iml0RkFtQkEsR0FBTSxDQUFBQSxXQUFXLENBQUcsUUFBQUEsQ0FBQUMsQ0FBSyxDQUFJLEtBQUFDLENBQUEsQ0FDbkJDLENBQVcsQ0FBK0JGLENBQUssQ0FBL0NFLFdBQVcsQ0FBRUMsQ0FBYyxDQUFlSCxDQUFLLENBQWxDRyxjQUFjLENBQUVDLENBQVEsQ0FBS0osQ0FBSyxDQUFsQkksUUFBUSxDQUFBQyxDQUFBLENBRUwsR0FBQUMsZUFBUSxJQUFNLENBQUMsQ0FBQUMsQ0FBQSxJQUFBQyxlQUFBLGFBQUFILENBQUEsSUFBaERJLENBQVksQ0FBQUYsQ0FBQSxJQUFFRyxDQUFlLENBQUFILENBQUEsSUFBQUksQ0FBQSxDQUNNLEdBQUFMLGVBQVEsSUFBTSxDQUFDLENBQUFNLENBQUEsSUFBQUosZUFBQSxhQUFBRyxDQUFBLElBQWxERSxDQUFhLENBQUFELENBQUEsSUFBRUUsQ0FBZ0IsQ0FBQUYsQ0FBQSxJQUFBRyxDQUFBLENBQ0YsR0FBQVQsZUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUFVLENBQUEsSUFBQVIsZUFBQSxhQUFBTyxDQUFBLElBQXpDRSxDQUFVLENBQUFELENBQUEsSUFBRUUsQ0FBYSxDQUFBRixDQUFBLElBQUFHLENBQUEsQ0FDSSxHQUFBYixlQUFRLElBQU0sQ0FBQyxDQUFBYyxDQUFBLElBQUFaLGVBQUEsYUFBQVcsQ0FBQSxJQUE1Q0UsQ0FBVSxDQUFBRCxDQUFBLElBQUVFLENBQWEsQ0FBQUYsQ0FBQSxJQUFBRyxDQUFBLENBQ1UsR0FBQWpCLGVBQVEsSUFBTSxDQUFDLENBQUFr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
;