diff --git a/POAP-booth/bin/game.js b/POAP-booth/bin/game.js index efada33..3d854e2 100644 --- a/POAP-booth/bin/game.js +++ b/POAP-booth/bin/game.js @@ -3,4 +3,4 @@ /*! dcl-amd */; var loader;(function(e){"use strict";var r=1;var d=2;var i=[];var f={baseUrl:""};var c={};function n(e){if(typeof e==="object"){for(var n in e){if(e.hasOwnProperty(n)){f[n]=e[n]}}}}e.config=n;function l(t,e,o){var n=arguments.length;if(n===1){o=t;e=["require","exports","module"];t=null}else if(n===2){if(f.toString.call(t)==="[object Array]"){o=e;e=t;t=null}else{o=e;e=["require","exports","module"]}}if(!t){i.push([e,o]);return}function r(){var e,n;if(c[t]){e=c[t].handlers;n=c[t].context}var r=c[t]=typeof o==="function"?o.apply(null,i.slice.call(arguments,0))||c[t]||{}:o;r.dclamd=d;r.context=n;for(var l=0,a=e?e.length:0;l= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __metadata = (this && this.__metadata) || function (k, v) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n};\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __spread = (this && this.__spread) || function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n};\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/itransformcomponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/math/interpolation\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Interpolate = exports.InterpolationType = void 0;\r\n var InterpolationType;\r\n (function (InterpolationType) {\r\n InterpolationType[InterpolationType[\"LINEAR\"] = 0] = \"LINEAR\";\r\n InterpolationType[InterpolationType[\"EASEINQUAD\"] = 1] = \"EASEINQUAD\";\r\n InterpolationType[InterpolationType[\"EASEOUTQUAD\"] = 2] = \"EASEOUTQUAD\";\r\n InterpolationType[InterpolationType[\"EASEQUAD\"] = 3] = \"EASEQUAD\";\r\n })(InterpolationType = exports.InterpolationType || (exports.InterpolationType = {}));\r\n function Interpolate(type, t) {\r\n switch (type) {\r\n case InterpolationType.LINEAR:\r\n return InterpolateLinear(t);\r\n case InterpolationType.EASEINQUAD:\r\n return InterpolateEaseInQuad(t);\r\n case InterpolationType.EASEOUTQUAD:\r\n return InterpolateEaseOutQuad(t);\r\n case InterpolationType.EASEQUAD:\r\n return InterpolateEaseQuad(t);\r\n default:\r\n return InterpolateLinear(t);\r\n }\r\n }\r\n exports.Interpolate = Interpolate;\r\n function InterpolateLinear(t) {\r\n return t;\r\n }\r\n function InterpolateEaseInQuad(t) {\r\n return t * t;\r\n }\r\n function InterpolateEaseOutQuad(t) {\r\n return t * (2 - t);\r\n }\r\n function InterpolateEaseQuad(t) {\r\n return (t * t) / (2.0 * (t * t - t) + 1.0);\r\n }\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/rotate\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_1, interpolation_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.RotateTransformComponent = void 0;\r\n /**\r\n * Component to rotate entity from one rotation (start) to another (end) in an amount of time\r\n */\r\n var RotateTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a RotateTransformComponent instance to add as a component to a Entity\r\n * @param start starting rotation\r\n * @param end ending rotation\r\n * @param duration duration (in seconds) of start to end rotation\r\n * @param onFinishCallback called when rotation ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function RotateTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_1.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_1.TransformSystem.createAndAddToEngine();\r\n }\r\n RotateTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_1.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n RotateTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n RotateTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.rotation = Quaternion.Slerp(this.start, this.end, this.lerpTime);\r\n };\r\n RotateTransformComponent = __decorate([\r\n Component('rotateTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], RotateTransformComponent);\r\n return RotateTransformComponent;\r\n }());\r\n exports.RotateTransformComponent = RotateTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/scale\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_2, interpolation_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ScaleTransformComponent = void 0;\r\n /**\r\n * Component to scale entity from one value (start) to another (end) in an amount of time\r\n */\r\n var ScaleTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a ScaleTransformComponent instance to add as a component to a Entity\r\n * @param start starting scale\r\n * @param end ending scale\r\n * @param duration duration (in seconds) of start to end scaling\r\n * @param onFinishCallback called when scaling ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function ScaleTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_2.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_2.TransformSystem.createAndAddToEngine();\r\n }\r\n ScaleTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_2.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n ScaleTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n ScaleTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.scale = Vector3.Lerp(this.start, this.end, this.lerpTime);\r\n };\r\n ScaleTransformComponent = __decorate([\r\n Component('scaleTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], ScaleTransformComponent);\r\n return ScaleTransformComponent;\r\n }());\r\n exports.ScaleTransformComponent = ScaleTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/followpath\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\"], function (require, exports, transfromSystem_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.FollowPathComponent = void 0;\r\n /**\r\n * Component to move a entity down a fixed path in an amount of time\r\n */\r\n var FollowPathComponent = /** @class */ (function () {\r\n /**\r\n * Create a FollowPathComponent instance to add as a component to a Entity\r\n * @param points array of points for the path\r\n * @param duration duration of the movement through the path\r\n * @param onFinishCallback called when movement ends\r\n * @param onPointReachedCallback called everytime an entity reaches a point of the path\r\n */\r\n function FollowPathComponent(points, duration, onFinishCallback, onPointReachedCallback) {\r\n this.speed = [];\r\n this.normalizedTime = 0;\r\n this.currentIndex = 0;\r\n this.points = points;\r\n this.onFinishCallback = onFinishCallback;\r\n this.onPointReachedCallback = onPointReachedCallback;\r\n if (points.length < 2) {\r\n throw new Error('At least 2 points are needed for FollowPathComponent.');\r\n }\r\n if (duration > 0) {\r\n var sqTotalDist = 0;\r\n var sqPointsDist = [];\r\n for (var i = 0; i < points.length - 1; i++) {\r\n var sqDist = Vector3.DistanceSquared(points[i], points[i + 1]);\r\n sqTotalDist += sqDist;\r\n sqPointsDist.push(sqDist);\r\n }\r\n for (var i = 0; i < sqPointsDist.length; i++) {\r\n this.speed.push(1 / ((sqPointsDist[i] / sqTotalDist) * duration));\r\n }\r\n }\r\n else {\r\n this.normalizedTime = 1;\r\n this.currentIndex = points.length - 2;\r\n }\r\n transfromSystem_3.TransformSystem.createAndAddToEngine();\r\n }\r\n FollowPathComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed[this.currentIndex], 0, 1);\r\n if (this.normalizedTime >= 1 &&\r\n this.currentIndex < this.points.length - 2) {\r\n this.currentIndex++;\r\n this.normalizedTime = 0;\r\n if (this.onPointReachedCallback &&\r\n this.currentIndex < this.points.length - 1)\r\n this.onPointReachedCallback(this.points[this.currentIndex], this.points[this.currentIndex + 1]);\r\n }\r\n };\r\n FollowPathComponent.prototype.hasFinished = function () {\r\n return (this.currentIndex >= this.points.length - 2 && this.normalizedTime >= 1);\r\n };\r\n FollowPathComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.position = Vector3.Lerp(this.points[this.currentIndex], this.points[this.currentIndex + 1], this.normalizedTime);\r\n };\r\n FollowPathComponent = __decorate([\r\n Component('followPathComponent'),\r\n __metadata(\"design:paramtypes\", [Array, Number, Function, Function])\r\n ], FollowPathComponent);\r\n return FollowPathComponent;\r\n }());\r\n exports.FollowPathComponent = FollowPathComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/keeprotating\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\"], function (require, exports, transfromSystem_4) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.KeepRotatingComponent = void 0;\r\n /**\r\n * Component to rotate entity indefinitely until stop is called\r\n */\r\n var KeepRotatingComponent = /** @class */ (function () {\r\n /**\r\n * Rotates an entity continuously. The entity will keep rotating forever until it's explicitly stopped or the component is removed.\r\n * @param rotationVelocity a quaternion describing the desired rotation to perform each second second\r\n * @param onFinishCallback called when rotation ends\r\n */\r\n function KeepRotatingComponent(rotationVelocity, onFinishCallback) {\r\n this.rotationVelocity = rotationVelocity;\r\n this.onFinishCallback = onFinishCallback;\r\n this.rotation = Quaternion.Identity;\r\n this.finished = false;\r\n transfromSystem_4.TransformSystem.createAndAddToEngine();\r\n }\r\n KeepRotatingComponent.prototype.update = function (dt) {\r\n this.rotation = Quaternion.Slerp(Quaternion.Identity, this.rotationVelocity, dt);\r\n };\r\n KeepRotatingComponent.prototype.hasFinished = function () {\r\n return this.finished;\r\n };\r\n KeepRotatingComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.rotation = transform.rotation.multiply(this.rotation);\r\n };\r\n KeepRotatingComponent.prototype.stop = function () {\r\n this.finished = true;\r\n };\r\n KeepRotatingComponent = __decorate([\r\n Component('keepRotatingComponent'),\r\n __metadata(\"design:paramtypes\", [Quaternion, Function])\r\n ], KeepRotatingComponent);\r\n return KeepRotatingComponent;\r\n }());\r\n exports.KeepRotatingComponent = KeepRotatingComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/component/move\", \"node_modules/decentraland-ecs-utils/transform/component/rotate\", \"node_modules/decentraland-ecs-utils/transform/component/scale\", \"node_modules/decentraland-ecs-utils/transform/component/followpath\", \"node_modules/decentraland-ecs-utils/transform/component/keeprotating\"], function (require, exports, move_1, rotate_1, scale_1, followpath_1, keeprotating_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TransformSystem = void 0;\r\n var TransformSystem = /** @class */ (function () {\r\n function TransformSystem() {\r\n this._components = [];\r\n TransformSystem._instance = this;\r\n this._components.push(move_1.MoveTransformComponent);\r\n this._components.push(rotate_1.RotateTransformComponent);\r\n this._components.push(scale_1.ScaleTransformComponent);\r\n this._components.push(followpath_1.FollowPathComponent);\r\n this._components.push(keeprotating_1.KeepRotatingComponent);\r\n }\r\n TransformSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TransformSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n TransformSystem.registerCustomComponent = function (component) {\r\n this.createAndAddToEngine()._components.push(component);\r\n };\r\n TransformSystem.prototype.update = function (dt) {\r\n var _this = this;\r\n this._components.forEach(function (component) {\r\n _this.updateComponent(dt, component);\r\n });\r\n };\r\n TransformSystem.prototype.updateComponent = function (dt, component) {\r\n var group = engine.getComponentGroup(component, Transform);\r\n group.entities.forEach(function (entity) {\r\n var transform = entity.getComponent(Transform);\r\n var comp = entity.getComponent(component);\r\n comp.update(dt);\r\n comp.assignValueToTransform(transform);\r\n if (comp.hasFinished()) {\r\n entity.removeComponent(comp);\r\n if (comp.onFinishCallback != null)\r\n comp.onFinishCallback();\r\n }\r\n });\r\n };\r\n TransformSystem._instance = null;\r\n return TransformSystem;\r\n }());\r\n exports.TransformSystem = TransformSystem;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/move\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_5, interpolation_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.MoveTransformComponent = void 0;\r\n /**\r\n * Component to translate entity from one position (start) to another (end) in an amount of time\r\n */\r\n var MoveTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a MoveTransformComponent instance to add as a component to a Entity\r\n * @param start starting position\r\n * @param end ending position\r\n * @param duration duration (in seconds) of start to end translation\r\n * @param onFinishCallback called when translation ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function MoveTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_3.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_5.TransformSystem.createAndAddToEngine();\r\n }\r\n MoveTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_3.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n MoveTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n MoveTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.position = Vector3.Lerp(this.start, this.end, this.lerpTime);\r\n };\r\n MoveTransformComponent = __decorate([\r\n Component('moveTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], MoveTransformComponent);\r\n return MoveTransformComponent;\r\n }());\r\n exports.MoveTransformComponent = MoveTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/toggle/toggleComponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ToggleComponent = exports.ToggleState = void 0;\r\n var ToggleState;\r\n (function (ToggleState) {\r\n ToggleState[ToggleState[\"Off\"] = 0] = \"Off\";\r\n ToggleState[ToggleState[\"On\"] = 1] = \"On\";\r\n })(ToggleState = exports.ToggleState || (exports.ToggleState = {}));\r\n /**\r\n * Toggle component for entities with two states (ON or OFF)\r\n */\r\n var ToggleComponent = /** @class */ (function () {\r\n /**\r\n * Create an instance of a ToggleComponent\r\n * @param startingState starting state of the toggle (ON or OFF)\r\n * @param onValueChangedCallback called when toggle state changed\r\n */\r\n function ToggleComponent(startingState, onValueChangedCallback) {\r\n if (startingState === void 0) { startingState = ToggleState.On; }\r\n this.enabled = true;\r\n this.state = ToggleState.Off;\r\n this.set(startingState);\r\n if (onValueChangedCallback)\r\n this.setCallback(onValueChangedCallback);\r\n }\r\n /**\r\n * Set trigger to a state\r\n * @param state new state\r\n */\r\n ToggleComponent.prototype.set = function (state) {\r\n this.state = state;\r\n if (this.onValueChangedCallback)\r\n this.onValueChangedCallback(state);\r\n };\r\n /**\r\n * Toggle state of ToggleComponent\r\n */\r\n ToggleComponent.prototype.toggle = function () {\r\n if (this.enabled) {\r\n this.set(1 - this.state);\r\n }\r\n };\r\n /**\r\n * Get if current toggle state is ON\r\n */\r\n ToggleComponent.prototype.isOn = function () {\r\n return this.state == ToggleState.On;\r\n };\r\n /**\r\n * Set callback for when ToggleComponent state changed\r\n * @param onValueChangedCallback callback\r\n */\r\n ToggleComponent.prototype.setCallback = function (onValueChangedCallback) {\r\n this.onValueChangedCallback = onValueChangedCallback;\r\n };\r\n ToggleComponent = __decorate([\r\n Component('toggle'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], ToggleComponent);\r\n return ToggleComponent;\r\n }());\r\n exports.ToggleComponent = ToggleComponent;\r\n exports.default = {\r\n ToggleComponent: ToggleComponent,\r\n ToggleState: ToggleState\r\n };\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/itimercomponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/interval\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Interval = void 0;\r\n /**\r\n * Execute every X milliseconds\r\n */\r\n var Interval = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function Interval(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_1.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function () {\r\n _this.elapsedTime = 0;\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n };\r\n }\r\n Interval.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n Interval = __decorate([\r\n Component('timerInterval'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], Interval);\r\n return Interval;\r\n }());\r\n exports.Interval = Interval;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/expire\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ExpireIn = void 0;\r\n /**\r\n * Remove entity after X milliseconds\r\n */\r\n var ExpireIn = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function ExpireIn(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_2.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function (entity) {\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n entity.removeComponent(_this);\r\n engine.removeEntity(entity);\r\n };\r\n }\r\n ExpireIn.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n ExpireIn = __decorate([\r\n Component('timerExpireIn'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], ExpireIn);\r\n return ExpireIn;\r\n }());\r\n exports.ExpireIn = ExpireIn;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/system/timerSystem\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/component/interval\", \"node_modules/decentraland-ecs-utils/timer/component/delay\", \"node_modules/decentraland-ecs-utils/timer/component/expire\"], function (require, exports, interval_1, delay_1, expire_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TimerSystem = void 0;\r\n var TimerSystem = /** @class */ (function () {\r\n function TimerSystem() {\r\n this._components = [];\r\n TimerSystem._instance = this;\r\n this._components.push(interval_1.Interval);\r\n this._components.push(delay_1.Delay);\r\n this._components.push(expire_1.ExpireIn);\r\n }\r\n TimerSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TimerSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n TimerSystem.registerCustomComponent = function (component) {\r\n this.createAndAddToEngine()._components.push(component);\r\n };\r\n TimerSystem.prototype.update = function (dt) {\r\n var _this = this;\r\n this._components.forEach(function (component) {\r\n _this.updateComponent(dt, component);\r\n });\r\n };\r\n TimerSystem.prototype.updateComponent = function (dt, component) {\r\n var record = engine.getEntitiesWithComponent(component);\r\n for (var key in record) {\r\n if (record.hasOwnProperty(key)) {\r\n var entity = record[key];\r\n var timerComponent = entity.getComponent(component);\r\n timerComponent.elapsedTime += dt;\r\n if (timerComponent.elapsedTime >= timerComponent.targetTime) {\r\n timerComponent.onTargetTimeReached(entity);\r\n }\r\n }\r\n }\r\n };\r\n TimerSystem._instance = null;\r\n return TimerSystem;\r\n }());\r\n exports.TimerSystem = TimerSystem;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/delay\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Delay = void 0;\r\n /**\r\n * Execute once after X milliseconds\r\n */\r\n var Delay = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function Delay(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_3.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function (entity) {\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n entity.removeComponent(_this);\r\n };\r\n }\r\n Delay.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n Delay = __decorate([\r\n Component('timerDelay'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], Delay);\r\n return Delay;\r\n }());\r\n exports.Delay = Delay;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/triggers/triggerSystem\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TriggerSphereShape = exports.TriggerBoxShape = exports.TriggerComponent = exports.TriggerSystem = void 0;\r\n var TriggerSystem = /** @class */ (function () {\r\n function TriggerSystem() {\r\n this._triggers = {};\r\n TriggerSystem._instance = this;\r\n this._cameraTriggerWrapper = new CameraTrigger(new TriggerBoxShape(new Vector3(0.5, 1.8, 0.5), new Vector3(0, 0.91, 0)));\r\n }\r\n Object.defineProperty(TriggerSystem, \"instance\", {\r\n get: function () {\r\n return this.createAndAddToEngine();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TriggerSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n /**\r\n * set a custom trigger's shape for the camera\r\n * @param shape custom trigger's shape\r\n */\r\n TriggerSystem.prototype.setCameraTriggerShape = function (shape) {\r\n this._cameraTriggerWrapper.setShape(shape);\r\n };\r\n TriggerSystem.prototype.update = function () {\r\n var _this = this;\r\n //get entities with trigger component\r\n var entitiesWithTriggers = engine.getComponentGroup(TriggerComponent)\r\n .entities;\r\n //iterate through all entities with triggers and wrap entities that weren't wrapped yet\r\n entitiesWithTriggers.forEach(function (entity) {\r\n if (_this.shouldWrapTriggerEntity(entity)) {\r\n _this.wrapTriggerEntity(entity);\r\n }\r\n });\r\n //iterate through wrapped entities\r\n for (var key in this._triggers) {\r\n if (this._triggers.hasOwnProperty(key)) {\r\n var wrapper = this._triggers[key];\r\n //update debug entity\r\n if (wrapper.isDebugging()) {\r\n wrapper.updateDebugEntity();\r\n }\r\n if (!wrapper.isInEngine()) {\r\n //remove debugging\r\n if (wrapper.isDebugging()) {\r\n wrapper.removeDebugEntity();\r\n }\r\n //remove old collisions\r\n TriggerSystem.removeTriggerFromSystem(wrapper);\r\n //remove from record\r\n delete this._triggers[key];\r\n }\r\n else if (wrapper.trigger != null && wrapper.trigger.enabled) {\r\n //if was set as enabled in last frame\r\n if (!wrapper.wasEnabled) {\r\n if (wrapper.isDebugging()) {\r\n wrapper.addDebugEntity();\r\n }\r\n }\r\n //set as enabled\r\n wrapper.wasEnabled = true;\r\n //check collision camera\r\n if (wrapper.trigger.onCameraEnter || wrapper.trigger.onCameraExit) {\r\n this.checkCollisionAgainstCamera(wrapper);\r\n }\r\n //check collision with others\r\n if (wrapper.trigger.onTriggerEnter || wrapper.trigger.onTriggerExit) {\r\n this.checkCollisionAgainstOtherTriggers(wrapper);\r\n }\r\n }\r\n else if (wrapper.wasEnabled) {\r\n wrapper.wasEnabled = false;\r\n //remove debugging\r\n if (wrapper.isDebugging()) {\r\n wrapper.removeDebugEntity();\r\n }\r\n TriggerSystem.removeTriggerFromSystem(wrapper);\r\n }\r\n }\r\n }\r\n };\r\n TriggerSystem.prototype.shouldWrapTriggerEntity = function (entity) {\r\n return (this._triggers[entity.uuid] == undefined ||\r\n this._triggers[entity.uuid] == null);\r\n };\r\n TriggerSystem.prototype.wrapTriggerEntity = function (entity) {\r\n this._triggers[entity.uuid] = new TriggerWrapper(entity);\r\n };\r\n TriggerSystem.removeTriggerFromSystem = function (wrapper) {\r\n var activeCollisions = wrapper.getActiveCollisions();\r\n for (var i = 0; i < activeCollisions.length; i++) {\r\n if (activeCollisions[i].trigger.onTriggerExit && wrapper.entity)\r\n activeCollisions[i].trigger.onTriggerExit(wrapper.entity);\r\n activeCollisions[i].disengageActiveCollision(wrapper);\r\n wrapper.disengageActiveCollision(activeCollisions[i]);\r\n }\r\n };\r\n TriggerSystem.disengageCollision = function (t1, t2) {\r\n t1.disengageActiveCollision(t2);\r\n t2.disengageActiveCollision(t1);\r\n if (t1.trigger.onTriggerExit && t2.entity)\r\n t1.trigger.onTriggerExit(t2.entity);\r\n if (t2.trigger.onTriggerExit && t1.entity)\r\n t2.trigger.onTriggerExit(t1.entity);\r\n };\r\n TriggerSystem.engageCollision = function (t1, t2) {\r\n t1.engageCollision(t2);\r\n t2.engageCollision(t1);\r\n if (t1.trigger.onTriggerEnter && t2.entity)\r\n t1.trigger.onTriggerEnter(t2.entity);\r\n if (t2.trigger.onTriggerEnter && t1.entity)\r\n t2.trigger.onTriggerEnter(t1.entity);\r\n };\r\n TriggerSystem.prototype.checkCollisionAgainstCamera = function (wrapper) {\r\n var wereColliding = wrapper.hasActiveCollision(this._cameraTriggerWrapper);\r\n var areColliding = TriggerSystem.areColliding(wrapper, this._cameraTriggerWrapper);\r\n if (wereColliding && !areColliding) {\r\n wrapper.disengageActiveCollision(this._cameraTriggerWrapper);\r\n if (wrapper.trigger.onCameraExit)\r\n wrapper.trigger.onCameraExit();\r\n }\r\n else if (!wereColliding && areColliding) {\r\n wrapper.engageCollision(this._cameraTriggerWrapper);\r\n if (wrapper.trigger.onCameraEnter)\r\n wrapper.trigger.onCameraEnter();\r\n }\r\n };\r\n TriggerSystem.prototype.checkCollisionAgainstOtherTriggers = function (wrapper) {\r\n for (var key in this._triggers) {\r\n if (this._triggers.hasOwnProperty(key)) {\r\n if (key != wrapper.uuid && this._triggers[key].trigger.enabled) {\r\n if (TriggerSystem.canTriggersCollide(wrapper, this._triggers[key])) {\r\n var wereColliding = wrapper.hasActiveCollision(this._triggers[key]);\r\n var areColliding = TriggerSystem.areColliding(wrapper, this._triggers[key]);\r\n if (wereColliding && !areColliding)\r\n TriggerSystem.disengageCollision(wrapper, this._triggers[key]);\r\n else if (!wereColliding && areColliding)\r\n TriggerSystem.engageCollision(wrapper, this._triggers[key]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n TriggerSystem.canTriggersCollide = function (t1, t2) {\r\n if (t1.trigger.triggeredByLayer == 0)\r\n return true;\r\n return (t2.trigger.layer & t1.trigger.triggeredByLayer) != 0;\r\n };\r\n TriggerSystem.areColliding = function (t1, t2) {\r\n if (t1.getShape() instanceof TriggerBoxShape &&\r\n t2.getShape() instanceof TriggerBoxShape) {\r\n return TriggerSystem.areCollidingAABB(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerSphereShape &&\r\n t2.getShape() instanceof TriggerSphereShape) {\r\n return TriggerSystem.areCollidingSphere(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerBoxShape &&\r\n t2.getShape() instanceof TriggerSphereShape) {\r\n return TriggerSystem.areCollidingAABBSphere(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerSphereShape &&\r\n t2.getShape() instanceof TriggerBoxShape) {\r\n return TriggerSystem.areCollidingAABBSphere(t2.getGlobalPosition(), t2.getShape(), t1.getGlobalPosition(), t1.getShape());\r\n }\r\n return false;\r\n };\r\n TriggerSystem.areCollidingAABB = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var t1 = TriggerSystem.getBoxShapeValues(t1GlobalPosition, t1Shape);\r\n var t2 = TriggerSystem.getBoxShapeValues(t2GlobalPosition, t2Shape);\r\n return (t1.min.x <= t2.max.x &&\r\n t1.max.x >= t2.min.x &&\r\n t1.min.y <= t2.max.y && t1.max.y >= t2.min.y &&\r\n t1.min.z <= t2.max.z && t1.max.z >= t2.min.z);\r\n };\r\n TriggerSystem.areCollidingSphere = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var sqDist = Vector3.DistanceSquared(t1GlobalPosition.add(t1Shape.position), t2GlobalPosition.add(t2Shape.position));\r\n return (sqDist < t1Shape.radius * t1Shape.radius + t2Shape.radius * t2Shape.radius);\r\n };\r\n TriggerSystem.areCollidingAABBSphere = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var box = TriggerSystem.getBoxShapeValues(t1GlobalPosition, t1Shape);\r\n var sphere = {\r\n center: t2GlobalPosition.add(t2Shape.position),\r\n radius: t2Shape.radius\r\n };\r\n var dmin = 0;\r\n if (sphere.center.x < box.min.x)\r\n dmin += (box.min.x - sphere.center.x) * (box.min.x - sphere.center.x);\r\n if (sphere.center.x > box.max.x)\r\n dmin += (sphere.center.x - box.max.x) * (sphere.center.x - box.max.x);\r\n if (sphere.center.y < box.min.y)\r\n dmin += (box.min.y - sphere.center.y) * (box.min.y - sphere.center.y);\r\n if (sphere.center.y > box.max.y)\r\n dmin += (sphere.center.y - box.max.y) * (sphere.center.y - box.max.y);\r\n if (sphere.center.z < box.min.z)\r\n dmin += (box.min.z - sphere.center.z) * (box.min.z - sphere.center.z);\r\n if (sphere.center.z > box.max.z)\r\n dmin += (sphere.center.z - box.max.z) * (sphere.center.z - box.max.z);\r\n return dmin < sphere.radius * sphere.radius;\r\n };\r\n TriggerSystem.getBoxShapeValues = function (entityGlobalPosition, shape) {\r\n var center = entityGlobalPosition.add(shape.position);\r\n return {\r\n center: center,\r\n min: center.subtract(shape.size.scale(0.5)),\r\n max: center.add(shape.size.scale(0.5))\r\n };\r\n };\r\n TriggerSystem._instance = null;\r\n return TriggerSystem;\r\n }());\r\n exports.TriggerSystem = TriggerSystem;\r\n var TriggerWrapper = /** @class */ (function () {\r\n function TriggerWrapper(entity) {\r\n this.wasEnabled = true;\r\n this._uuid = '';\r\n this._collidingWith = {};\r\n this._isDebug = false;\r\n this._debugEntity = null;\r\n this._entity = entity;\r\n if (entity) {\r\n this._trigger = entity.getComponent(TriggerComponent);\r\n this._uuid = entity.uuid;\r\n this._isDebug = this._trigger.debugEnabled;\r\n if (this._isDebug) {\r\n this.addDebugEntity();\r\n }\r\n }\r\n }\r\n Object.defineProperty(TriggerWrapper.prototype, \"entity\", {\r\n get: function () {\r\n return this._entity;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TriggerWrapper.prototype, \"trigger\", {\r\n get: function () {\r\n return this._trigger;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TriggerWrapper.prototype, \"uuid\", {\r\n get: function () {\r\n return this._uuid;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerWrapper.prototype.getGlobalPosition = function () {\r\n if (this._entity)\r\n return TriggerWrapper.getEntityWorldPosition(this._entity);\r\n return Vector3.Zero();\r\n };\r\n TriggerWrapper.prototype.getShape = function () {\r\n return this._trigger.shape;\r\n };\r\n TriggerWrapper.prototype.isInEngine = function () {\r\n return this._entity != null && this._entity.isAddedToEngine();\r\n };\r\n TriggerWrapper.prototype.getActiveCollisions = function () {\r\n var ret = [];\r\n for (var key in this._collidingWith) {\r\n if (this._collidingWith.hasOwnProperty(key)) {\r\n ret.push(this._collidingWith[key]);\r\n }\r\n }\r\n return ret;\r\n };\r\n TriggerWrapper.prototype.hasActiveCollision = function (other) {\r\n return (this._collidingWith[other.uuid] != undefined &&\r\n this._collidingWith[other.uuid] != null);\r\n };\r\n TriggerWrapper.prototype.disengageActiveCollision = function (other) {\r\n delete this._collidingWith[other.uuid];\r\n };\r\n TriggerWrapper.prototype.engageCollision = function (other) {\r\n this._collidingWith[other.uuid] = other;\r\n };\r\n TriggerWrapper.prototype.isDebugging = function () {\r\n return this._isDebug;\r\n };\r\n TriggerWrapper.prototype.addDebugEntity = function () {\r\n if (!TriggerWrapper._debugMaterial) {\r\n TriggerWrapper._debugMaterial = new Material();\r\n TriggerWrapper._debugMaterial.alphaTest = 0.5;\r\n }\r\n if (this._debugEntity == null) {\r\n this._debugEntity = new Entity();\r\n var transform = new Transform();\r\n this._debugEntity.addComponent(transform);\r\n this._debugEntity.addComponent(TriggerWrapper._debugMaterial);\r\n if (this.getShape() instanceof TriggerBoxShape) {\r\n var shape = new BoxShape();\r\n shape.withCollisions = false;\r\n this._debugEntity.addComponent(shape);\r\n transform.scale = this.getShape().size;\r\n }\r\n if (this.getShape() instanceof TriggerSphereShape) {\r\n var shape = new SphereShape();\r\n shape.withCollisions = false;\r\n this._debugEntity.addComponent(shape);\r\n var rad = this.getShape().radius;\r\n transform.scale = new Vector3(rad, rad, rad);\r\n }\r\n }\r\n engine.addEntity(this._debugEntity);\r\n };\r\n TriggerWrapper.prototype.removeDebugEntity = function () {\r\n if (this._debugEntity != null)\r\n engine.removeEntity(this._debugEntity);\r\n };\r\n TriggerWrapper.prototype.updateDebugEntity = function () {\r\n if (this._debugEntity) {\r\n this._debugEntity.getComponent(Transform).position = this.getGlobalPosition().add(this.getShape().position);\r\n }\r\n };\r\n TriggerWrapper.getEntityWorldPosition = function (entity) {\r\n var entityPosition = entity.hasComponent(Transform)\r\n ? entity.getComponent(Transform).position\r\n : Vector3.Zero();\r\n var parentEntity = entity.getParent();\r\n if (parentEntity != null) {\r\n var parentRotation = parentEntity.hasComponent(Transform)\r\n ? parentEntity.getComponent(Transform).rotation\r\n : Quaternion.Identity;\r\n return this.getEntityWorldPosition(parentEntity).add(entityPosition.rotate(parentRotation));\r\n }\r\n return entityPosition;\r\n };\r\n TriggerWrapper._debugMaterial = null;\r\n return TriggerWrapper;\r\n }());\r\n var CameraTrigger = /** @class */ (function (_super) {\r\n __extends(CameraTrigger, _super);\r\n function CameraTrigger(shape) {\r\n var _this = _super.call(this) || this;\r\n _this._shape = shape;\r\n _this._uuid = 'cameraTrigger';\r\n return _this;\r\n }\r\n CameraTrigger.prototype.getGlobalPosition = function () {\r\n return Camera.instance.position;\r\n };\r\n CameraTrigger.prototype.getShape = function () {\r\n return this._shape;\r\n };\r\n CameraTrigger.prototype.setShape = function (shape) {\r\n this._shape = shape;\r\n };\r\n CameraTrigger.prototype.isInEngine = function () {\r\n return false;\r\n };\r\n CameraTrigger.prototype.hasActiveCollision = function (other) {\r\n return false;\r\n };\r\n CameraTrigger.prototype.disengageActiveCollision = function (other) { };\r\n CameraTrigger.prototype.engageCollision = function (other) { };\r\n CameraTrigger.prototype.isDebugging = function () {\r\n return false;\r\n };\r\n return CameraTrigger;\r\n }(TriggerWrapper));\r\n var TriggerComponent = /** @class */ (function () {\r\n /**\r\n *\r\n * @param shape shape of the triggering collider area\r\n * @param layer layer of the Trigger, useful to discriminate between trigger events. You can set multiple layers by using a | symbol.\r\n * @param triggeredByLayer against which layers to check collisions\r\n * @param onTriggerEnter callback when an entity of a valid layer enters the trigger area\r\n * @param onTriggerExit callback when an entity of a valid layer leaves the trigger area\r\n * @param onCameraEnter callback when the player enters the trigger area\r\n * @param onCameraExit callback when the player leaves the trigger area\r\n * @param enableDebug when true makes the trigger area visible for debug purposes.\r\n */\r\n function TriggerComponent(shape, layer, triggeredByLayer, onTriggerEnter, onTriggerExit, onCameraEnter, onCameraExit, enableDebug) {\r\n if (layer === void 0) { layer = 0; }\r\n if (triggeredByLayer === void 0) { triggeredByLayer = 0; }\r\n if (enableDebug === void 0) { enableDebug = false; }\r\n /**\r\n * is trigger enable?\r\n */\r\n this.enabled = true;\r\n /**\r\n * bit layer of the Tigger (usefull to discriminate between trigger events)\r\n */\r\n this.layer = 0;\r\n /**\r\n * against which layer are we going to check trigger's collisions\r\n */\r\n this.triggeredByLayer = 0;\r\n TriggerSystem.createAndAddToEngine();\r\n this.shape = shape;\r\n this.layer = layer;\r\n this.triggeredByLayer = triggeredByLayer;\r\n this.onTriggerEnter = onTriggerEnter;\r\n this.onTriggerExit = onTriggerExit;\r\n this.onCameraEnter = onCameraEnter;\r\n this.onCameraExit = onCameraExit;\r\n this._debugEnabled = enableDebug;\r\n }\r\n Object.defineProperty(TriggerComponent.prototype, \"debugEnabled\", {\r\n /**\r\n * get if debug is enabled\r\n */\r\n get: function () {\r\n return this._debugEnabled;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerComponent = __decorate([\r\n Component('triggerComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Number, Number, Function, Function, Function, Function, Boolean])\r\n ], TriggerComponent);\r\n return TriggerComponent;\r\n }());\r\n exports.TriggerComponent = TriggerComponent;\r\n var TriggerBoxShape = /** @class */ (function () {\r\n function TriggerBoxShape(size, position) {\r\n this.size = size;\r\n this.position = position;\r\n }\r\n return TriggerBoxShape;\r\n }());\r\n exports.TriggerBoxShape = TriggerBoxShape;\r\n var TriggerSphereShape = /** @class */ (function () {\r\n function TriggerSphereShape(radius, position) {\r\n this.radius = radius;\r\n this.position = position;\r\n }\r\n return TriggerSphereShape;\r\n }());\r\n exports.TriggerSphereShape = TriggerSphereShape;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/actionsSequenceSystem/actionsSequenceSystem\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ActionsSequenceSystem = void 0;\r\n var ActionsSequenceSystem = /** @class */ (function () {\r\n function ActionsSequenceSystem(sequenceBuilt) {\r\n this.beginSequenceNode = null;\r\n this.currentSequenceNode = null;\r\n this.running = false;\r\n this.started = false;\r\n if (sequenceBuilt) {\r\n this.startSequence(sequenceBuilt);\r\n }\r\n }\r\n ActionsSequenceSystem.prototype.startSequence = function (sequenceBuilt) {\r\n this.beginSequenceNode = sequenceBuilt.beginSequenceNode;\r\n this.currentSequenceNode = this.beginSequenceNode;\r\n this.running = true;\r\n this.started = false;\r\n };\r\n ActionsSequenceSystem.prototype.setOnFinishCallback = function (onFinishCallback) {\r\n this.onFinishCallback = onFinishCallback;\r\n };\r\n ActionsSequenceSystem.prototype.isRunning = function () {\r\n return this.running;\r\n };\r\n ActionsSequenceSystem.prototype.stop = function () {\r\n this.running = false;\r\n };\r\n ActionsSequenceSystem.prototype.resume = function () {\r\n if (this.beginSequenceNode != null) {\r\n this.running = true;\r\n }\r\n };\r\n ActionsSequenceSystem.prototype.reset = function () {\r\n this.currentSequenceNode = this.beginSequenceNode;\r\n this.running = true;\r\n this.started = false;\r\n };\r\n ActionsSequenceSystem.prototype.getRunningAction = function () {\r\n var currentNode = this.currentSequenceNode;\r\n if (this.currentSequenceNode instanceof SubSequenceNode) {\r\n do {\r\n currentNode = currentNode.currentInnerSequence;\r\n } while (currentNode instanceof SubSequenceNode);\r\n }\r\n return currentNode.action;\r\n };\r\n ActionsSequenceSystem.prototype.update = function (dt) {\r\n if (this.running) {\r\n if (!this.started) {\r\n ;\r\n this.currentSequenceNode.onStart();\r\n this.started = true;\r\n }\r\n else {\r\n if (!this.currentSequenceNode.hasFinish()) {\r\n ;\r\n this.currentSequenceNode.update(dt);\r\n }\r\n else {\r\n ;\r\n this.currentSequenceNode.onFinish();\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.next;\r\n if (this.currentSequenceNode) {\r\n this.currentSequenceNode.onStart();\r\n }\r\n else {\r\n this.running = false;\r\n if (this.onFinishCallback)\r\n this.onFinishCallback();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n return ActionsSequenceSystem;\r\n }());\r\n exports.ActionsSequenceSystem = ActionsSequenceSystem;\r\n (function (ActionsSequenceSystem) {\r\n var SequenceBuilder = /** @class */ (function () {\r\n function SequenceBuilder() {\r\n this.currentSequenceNode = null;\r\n this.beginSequenceNode = null;\r\n this.whileNodeStack = [];\r\n }\r\n SequenceBuilder.prototype.then = function (action) {\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = new SequenceNode();\r\n this.currentSequenceNode.action = action;\r\n this.beginSequenceNode = this.currentSequenceNode;\r\n }\r\n else {\r\n var next = new SequenceNode();\r\n next.action = action;\r\n this.currentSequenceNode = this.currentSequenceNode.then(next);\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.if = function (condition) {\r\n var ifSeq = new IfSequenceNode(condition);\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = ifSeq;\r\n this.beginSequenceNode = ifSeq;\r\n }\r\n else {\r\n this.currentSequenceNode = this.currentSequenceNode.then(ifSeq);\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.else = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof IfSequenceNode) {\r\n seq.closed = true;\r\n var elseSeq = new ElseSequenceNode(seq);\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.then(elseSeq);\r\n }\r\n else {\r\n throw new Error('IF statement is needed to be called before ELSE statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.endIf = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof IfSequenceNode || seq instanceof ElseSequenceNode) {\r\n seq.closed = true;\r\n }\r\n else {\r\n throw new Error('IF statement is needed to be called before ENDIF statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.while = function (condition) {\r\n var whileSeq = new WhileSequenceNode(condition);\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = whileSeq;\r\n this.beginSequenceNode = whileSeq;\r\n }\r\n else {\r\n this.currentSequenceNode = this.currentSequenceNode.then(whileSeq);\r\n }\r\n this.whileNodeStack.push(whileSeq);\r\n return this;\r\n };\r\n SequenceBuilder.prototype.endWhile = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof WhileSequenceNode) {\r\n seq.closed = true;\r\n if (this.whileNodeStack.length > 0) {\r\n this.whileNodeStack.splice(this.whileNodeStack.length - 1, 1);\r\n }\r\n }\r\n else {\r\n throw new Error('WHILE statement is needed to be called before ENDWHILE statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.breakWhile = function () {\r\n if (this.whileNodeStack.length > 0) {\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.then(new BreakWhileSequenceNode(this.whileNodeStack[this.whileNodeStack.length - 1]));\r\n }\r\n else {\r\n throw new Error('WHILE statement is needed to be called before BREAKWHILE statement.');\r\n }\r\n return this;\r\n };\r\n return SequenceBuilder;\r\n }());\r\n ActionsSequenceSystem.SequenceBuilder = SequenceBuilder;\r\n })(ActionsSequenceSystem = exports.ActionsSequenceSystem || (exports.ActionsSequenceSystem = {}));\r\n exports.ActionsSequenceSystem = ActionsSequenceSystem;\r\n var SequenceNode = /** @class */ (function () {\r\n function SequenceNode() {\r\n this.action = null;\r\n this.next = null;\r\n }\r\n SequenceNode.prototype.then = function (next) {\r\n this.next = next;\r\n return next;\r\n };\r\n SequenceNode.prototype.onStart = function () {\r\n if (this.action)\r\n this.action.onStart();\r\n };\r\n SequenceNode.prototype.update = function (dt) {\r\n if (this.action)\r\n this.action.update(dt);\r\n };\r\n SequenceNode.prototype.onFinish = function () {\r\n if (this.action)\r\n this.action.onFinish();\r\n };\r\n SequenceNode.prototype.hasFinish = function () {\r\n if (this.action)\r\n return this.action.hasFinished;\r\n else\r\n return true;\r\n };\r\n SequenceNode.prototype.getSequence = function () {\r\n return this;\r\n };\r\n return SequenceNode;\r\n }());\r\n var SubSequenceNode = /** @class */ (function (_super) {\r\n __extends(SubSequenceNode, _super);\r\n function SubSequenceNode() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.currentInnerSequence = null;\r\n _this.startingInnerSequence = null;\r\n _this.closed = false;\r\n return _this;\r\n }\r\n SubSequenceNode.prototype.then = function (next) {\r\n if (this.currentInnerSequence == null) {\r\n this.currentInnerSequence = next;\r\n this.startingInnerSequence = next;\r\n }\r\n else {\r\n if (this.closed) {\r\n this.next = next;\r\n return next;\r\n }\r\n else {\r\n this.currentInnerSequence = this.currentInnerSequence.then(next);\r\n }\r\n }\r\n return this;\r\n };\r\n SubSequenceNode.prototype.onStart = function () {\r\n this.currentInnerSequence = this.startingInnerSequence;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n };\r\n SubSequenceNode.prototype.update = function (dt) {\r\n if (this.currentInnerSequence) {\r\n if (!this.currentInnerSequence.hasFinish()) {\r\n this.currentInnerSequence.update(dt);\r\n }\r\n else {\r\n this.currentInnerSequence.onFinish();\r\n this.currentInnerSequence = this.currentInnerSequence.next;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n }\r\n }\r\n };\r\n SubSequenceNode.prototype.onFinish = function () {\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onFinish();\r\n };\r\n SubSequenceNode.prototype.hasFinish = function () {\r\n return this.currentInnerSequence == null;\r\n };\r\n SubSequenceNode.prototype.getSequence = function () {\r\n if (this.currentInnerSequence) {\r\n var innerSeq = this.currentInnerSequence.getSequence();\r\n if (innerSeq instanceof SubSequenceNode) {\r\n if (!innerSeq.closed) {\r\n return innerSeq;\r\n }\r\n }\r\n }\r\n return this;\r\n };\r\n return SubSequenceNode;\r\n }(SequenceNode));\r\n var IfSequenceNode = /** @class */ (function (_super) {\r\n __extends(IfSequenceNode, _super);\r\n function IfSequenceNode(condition) {\r\n var _this = _super.call(this) || this;\r\n _this.result = false;\r\n _this.condition = condition;\r\n return _this;\r\n }\r\n IfSequenceNode.prototype.onStart = function () {\r\n this.result = this.condition();\r\n if (this.result)\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n return IfSequenceNode;\r\n }(SubSequenceNode));\r\n var ElseSequenceNode = /** @class */ (function (_super) {\r\n __extends(ElseSequenceNode, _super);\r\n function ElseSequenceNode(ifSequence) {\r\n var _this = _super.call(this) || this;\r\n _this.ifSequence = null;\r\n _this.ifSequence = ifSequence;\r\n return _this;\r\n }\r\n ElseSequenceNode.prototype.onStart = function () {\r\n if (this.ifSequence && !this.ifSequence.result)\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n return ElseSequenceNode;\r\n }(SubSequenceNode));\r\n var WhileSequenceNode = /** @class */ (function (_super) {\r\n __extends(WhileSequenceNode, _super);\r\n function WhileSequenceNode(condition) {\r\n var _this = _super.call(this) || this;\r\n _this.breakWhile = false;\r\n _this.condition = condition;\r\n return _this;\r\n }\r\n WhileSequenceNode.prototype.onStart = function () {\r\n this.breakWhile = false;\r\n if (this.condition())\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n WhileSequenceNode.prototype.update = function (dt) {\r\n if (this.currentInnerSequence) {\r\n if (!this.currentInnerSequence.hasFinish()) {\r\n this.currentInnerSequence.update(dt);\r\n }\r\n else {\r\n this.currentInnerSequence.onFinish();\r\n this.currentInnerSequence = this.currentInnerSequence.next;\r\n if (this.currentInnerSequence == null)\r\n this.currentInnerSequence = this.startingInnerSequence;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n }\r\n }\r\n };\r\n WhileSequenceNode.prototype.hasFinish = function () {\r\n return this.breakWhile || !this.condition();\r\n };\r\n return WhileSequenceNode;\r\n }(SubSequenceNode));\r\n var BreakWhileSequenceNode = /** @class */ (function (_super) {\r\n __extends(BreakWhileSequenceNode, _super);\r\n function BreakWhileSequenceNode(whileNode) {\r\n var _this = _super.call(this) || this;\r\n _this.whileNode = whileNode;\r\n return _this;\r\n }\r\n BreakWhileSequenceNode.prototype.onStart = function () {\r\n this.whileNode.breakWhile = true;\r\n };\r\n return BreakWhileSequenceNode;\r\n }(SequenceNode));\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/index\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/component/move\", \"node_modules/decentraland-ecs-utils/transform/component/rotate\", \"node_modules/decentraland-ecs-utils/transform/component/scale\", \"node_modules/decentraland-ecs-utils/transform/component/followpath\", \"node_modules/decentraland-ecs-utils/transform/component/keeprotating\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\", \"node_modules/decentraland-ecs-utils/toggle/toggleComponent\", \"node_modules/decentraland-ecs-utils/timer/component/delay\", \"node_modules/decentraland-ecs-utils/timer/component/expire\", \"node_modules/decentraland-ecs-utils/timer/component/interval\", \"node_modules/decentraland-ecs-utils/triggers/triggerSystem\", \"node_modules/decentraland-ecs-utils/actionsSequenceSystem/actionsSequenceSystem\"], function (require, exports, move_2, rotate_2, scale_2, followpath_2, keeprotating_2, transfromSystem_6, interpolation_4, toggleComponent_1, delay_2, expire_2, interval_2, triggerSystem_1, actionsSequenceSystem_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = {\r\n TransformSystem: transfromSystem_6.TransformSystem,\r\n MoveTransformComponent: move_2.MoveTransformComponent,\r\n RotateTransformComponent: rotate_2.RotateTransformComponent,\r\n ScaleTransformComponent: scale_2.ScaleTransformComponent,\r\n FollowPathComponent: followpath_2.FollowPathComponent,\r\n KeepRotatingComponent: keeprotating_2.KeepRotatingComponent,\r\n Interpolate: interpolation_4.Interpolate,\r\n InterpolationType: interpolation_4.InterpolationType,\r\n ToggleComponent: toggleComponent_1.ToggleComponent,\r\n ToggleState: toggleComponent_1.ToggleState,\r\n Delay: delay_2.Delay,\r\n ExpireIn: expire_2.ExpireIn,\r\n Interval: interval_2.Interval,\r\n TriggerComponent: triggerSystem_1.TriggerComponent,\r\n TriggerSystem: triggerSystem_1.TriggerSystem,\r\n TriggerSphereShape: triggerSystem_1.TriggerSphereShape,\r\n TriggerBoxShape: triggerSystem_1.TriggerBoxShape,\r\n ActionsSequenceSystem: actionsSequenceSystem_1.ActionsSequenceSystem\r\n };\r\n});\r\ndefine(\"node_modules/eth-connect/eth-connect.esm\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n var ethconnect = function (t) { var e = {}; function r(n) { if (e[n])\r\n return e[n].exports; var o = e[n] = { i: n, l: !1, exports: {} }; return t[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports; } return r.m = t, r.c = e, r.d = function (t, e, n) { r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }); }, r.r = function (t) { \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: \"Module\" }), Object.defineProperty(t, \"__esModule\", { value: !0 }); }, r.t = function (t, e) { if (1 & e && (t = r(t)), 8 & e)\r\n return t; if (4 & e && \"object\" == typeof t && t && t.__esModule)\r\n return t; var n = Object.create(null); if (r.r(n), Object.defineProperty(n, \"default\", { enumerable: !0, value: t }), 2 & e && \"string\" != typeof t)\r\n for (var o in t)\r\n r.d(n, o, function (e) { return t[e]; }.bind(null, o)); return n; }, r.n = function (t) { var e = t && t.__esModule ? function () { return t.default; } : function () { return t; }; return r.d(e, \"a\", e), e; }, r.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e); }, r.p = \"\", r(r.s = 28); }([function (t, e, r) { var n; t.exports = (n = n || function (t, e) { var r = Object.create || function () { function t() { } return function (e) { var r; return t.prototype = e, r = new t, t.prototype = null, r; }; }(), n = {}, o = n.lib = {}, i = o.Base = { extend: function (t) { var e = r(this); return t && e.mixIn(t), e.hasOwnProperty(\"init\") && this.init !== e.init || (e.init = function () { e.$super.init.apply(this, arguments); }), e.init.prototype = e, e.$super = this, e; }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t; }, init: function () { }, mixIn: function (t) { for (var e in t)\r\n t.hasOwnProperty(e) && (this[e] = t[e]); t.hasOwnProperty(\"toString\") && (this.toString = t.toString); }, clone: function () { return this.init.prototype.extend(this); } }, s = o.WordArray = i.extend({ init: function (t, e) { t = this.words = t || [], this.sigBytes = null != e ? e : 4 * t.length; }, toString: function (t) { return (t || c).stringify(this); }, concat: function (t) { var e = this.words, r = t.words, n = this.sigBytes, o = t.sigBytes; if (this.clamp(), n % 4)\r\n for (var i = 0; i < o; i++) {\r\n var s = r[i >>> 2] >>> 24 - i % 4 * 8 & 255;\r\n e[n + i >>> 2] |= s << 24 - (n + i) % 4 * 8;\r\n }\r\n else\r\n for (var i = 0; i < o; i += 4)\r\n e[n + i >>> 2] = r[i >>> 2]; return this.sigBytes += o, this; }, clamp: function () { var e = this.words, r = this.sigBytes; e[r >>> 2] &= 4294967295 << 32 - r % 4 * 8, e.length = t.ceil(r / 4); }, clone: function () { var t = i.clone.call(this); return t.words = this.words.slice(0), t; }, random: function (e) { for (var r, n = [], o = function (e) { var e = e, r = 987654321, n = 4294967295; return function () { var o = ((r = 36969 * (65535 & r) + (r >> 16) & n) << 16) + (e = 18e3 * (65535 & e) + (e >> 16) & n) & n; return o /= 4294967296, (o += .5) * (t.random() > .5 ? 1 : -1); }; }, i = 0; i < e; i += 4) {\r\n var a = o(4294967296 * (r || t.random()));\r\n r = 987654071 * a(), n.push(4294967296 * a() | 0);\r\n } return new s.init(n, e); } }), a = n.enc = {}, c = a.Hex = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o++) {\r\n var i = e[o >>> 2] >>> 24 - o % 4 * 8 & 255;\r\n n.push((i >>> 4).toString(16)), n.push((15 & i).toString(16));\r\n } return n.join(\"\"); }, parse: function (t) { for (var e = t.length, r = [], n = 0; n < e; n += 2)\r\n r[n >>> 3] |= parseInt(t.substr(n, 2), 16) << 24 - n % 8 * 4; return new s.init(r, e / 2); } }, u = a.Latin1 = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o++) {\r\n var i = e[o >>> 2] >>> 24 - o % 4 * 8 & 255;\r\n n.push(String.fromCharCode(i));\r\n } return n.join(\"\"); }, parse: function (t) { for (var e = t.length, r = [], n = 0; n < e; n++)\r\n r[n >>> 2] |= (255 & t.charCodeAt(n)) << 24 - n % 4 * 8; return new s.init(r, e); } }, l = a.Utf8 = { stringify: function (t) { try {\r\n return decodeURIComponent(escape(u.stringify(t)));\r\n }\r\n catch (t) {\r\n throw new Error(\"Malformed UTF-8 data\");\r\n } }, parse: function (t) { return u.parse(unescape(encodeURIComponent(t))); } }, h = o.BufferedBlockAlgorithm = i.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0; }, _append: function (t) { \"string\" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; }, _process: function (e) { var r = this._data, n = r.words, o = r.sigBytes, i = this.blockSize, a = 4 * i, c = o / a, u = (c = e ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0)) * i, l = t.min(4 * u, o); if (u) {\r\n for (var h = 0; h < u; h += i)\r\n this._doProcessBlock(n, h);\r\n var f = n.splice(0, u);\r\n r.sigBytes -= l;\r\n } return new s.init(f, l); }, clone: function () { var t = i.clone.call(this); return t._data = this._data.clone(), t; }, _minBufferSize: 0 }), f = (o.Hasher = h.extend({ cfg: i.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset(); }, reset: function () { h.reset.call(this), this._doReset(); }, update: function (t) { return this._append(t), this._process(), this; }, finalize: function (t) { t && this._append(t); var e = this._doFinalize(); return e; }, blockSize: 16, _createHelper: function (t) { return function (e, r) { return new t.init(r).finalize(e); }; }, _createHmacHelper: function (t) { return function (e, r) { return new f.HMAC.init(t, r).finalize(e); }; } }), n.algo = {}); return n; }(Math), n); }, function (t, e, r) { var n; t.exports = (n = r(0), r(5), void (n.lib.Cipher || function (t) { var e = n, r = e.lib, o = r.Base, i = r.WordArray, s = r.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), u = e.algo, l = u.EvpKDF, h = r.Cipher = s.extend({ cfg: o.extend(), createEncryptor: function (t, e) { return this.create(this._ENC_XFORM_MODE, t, e); }, createDecryptor: function (t, e) { return this.create(this._DEC_XFORM_MODE, t, e); }, init: function (t, e, r) { this.cfg = this.cfg.extend(r), this._xformMode = t, this._key = e, this.reset(); }, reset: function () { s.reset.call(this), this._doReset(); }, process: function (t) { return this._append(t), this._process(); }, finalize: function (t) { t && this._append(t); var e = this._doFinalize(); return e; }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return \"string\" == typeof t ? F : w; } return function (e) { return { encrypt: function (r, n, o) { return t(n).encrypt(e, r, n, o); }, decrypt: function (r, n, o) { return t(n).decrypt(e, r, n, o); } }; }; }() }), f = (r.StreamCipher = h.extend({ _doFinalize: function () { var t = this._process(!0); return t; }, blockSize: 1 }), e.mode = {}), p = r.BlockCipherMode = o.extend({ createEncryptor: function (t, e) { return this.Encryptor.create(t, e); }, createDecryptor: function (t, e) { return this.Decryptor.create(t, e); }, init: function (t, e) { this._cipher = t, this._iv = e; } }), d = f.CBC = function () { var e = p.extend(); function r(e, r, n) { var o = this._iv; if (o) {\r\n var i = o;\r\n this._iv = t;\r\n }\r\n else\r\n var i = this._prevBlock; for (var s = 0; s < n; s++)\r\n e[r + s] ^= i[s]; } return e.Encryptor = e.extend({ processBlock: function (t, e) { var n = this._cipher, o = n.blockSize; r.call(this, t, e, o), n.encryptBlock(t, e), this._prevBlock = t.slice(e, e + o); } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var n = this._cipher, o = n.blockSize, i = t.slice(e, e + o); n.decryptBlock(t, e), r.call(this, t, e, o), this._prevBlock = i; } }), e; }(), m = e.pad = {}, y = m.Pkcs7 = { pad: function (t, e) { for (var r = 4 * e, n = r - t.sigBytes % r, o = n << 24 | n << 16 | n << 8 | n, s = [], a = 0; a < n; a += 4)\r\n s.push(o); var c = i.create(s, n); t.concat(c); }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, g = (r.BlockCipher = h.extend({ cfg: h.cfg.extend({ mode: d, padding: y }), reset: function () { h.reset.call(this); var t = this.cfg, e = t.iv, r = t.mode; if (this._xformMode == this._ENC_XFORM_MODE)\r\n var n = r.createEncryptor;\r\n else {\r\n var n = r.createDecryptor;\r\n this._minBufferSize = 1;\r\n } this._mode && this._mode.__creator == n ? this._mode.init(this, e && e.words) : (this._mode = n.call(r, this, e && e.words), this._mode.__creator = n); }, _doProcessBlock: function (t, e) { this._mode.processBlock(t, e); }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) {\r\n t.pad(this._data, this.blockSize);\r\n var e = this._process(!0);\r\n }\r\n else {\r\n var e = this._process(!0);\r\n t.unpad(e);\r\n } return e; }, blockSize: 4 }), r.CipherParams = o.extend({ init: function (t) { this.mixIn(t); }, toString: function (t) { return (t || this.formatter).stringify(this); } })), _ = e.format = {}, v = _.OpenSSL = { stringify: function (t) { var e = t.ciphertext, r = t.salt; if (r)\r\n var n = i.create([1398893684, 1701076831]).concat(r).concat(e);\r\n else\r\n var n = e; return n.toString(c); }, parse: function (t) { var e = c.parse(t), r = e.words; if (1398893684 == r[0] && 1701076831 == r[1]) {\r\n var n = i.create(r.slice(2, 4));\r\n r.splice(0, 4), e.sigBytes -= 16;\r\n } return g.create({ ciphertext: e, salt: n }); } }, w = r.SerializableCipher = o.extend({ cfg: o.extend({ format: v }), encrypt: function (t, e, r, n) { n = this.cfg.extend(n); var o = t.createEncryptor(r, n), i = o.finalize(e), s = o.cfg; return g.create({ ciphertext: i, key: r, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: n.format }); }, decrypt: function (t, e, r, n) { n = this.cfg.extend(n), e = this._parse(e, n.format); var o = t.createDecryptor(r, n).finalize(e.ciphertext); return o; }, _parse: function (t, e) { return \"string\" == typeof t ? e.parse(t, this) : t; } }), b = e.kdf = {}, B = b.OpenSSL = { execute: function (t, e, r, n) { n || (n = i.random(8)); var o = l.create({ keySize: e + r }).compute(t, n), s = i.create(o.words.slice(e), 4 * r); return o.sigBytes = 4 * e, g.create({ key: o, iv: s, salt: n }); } }, F = r.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: B }), encrypt: function (t, e, r, n) { var o = (n = this.cfg.extend(n)).kdf.execute(r, t.keySize, t.ivSize); n.iv = o.iv; var i = w.encrypt.call(this, t, e, o.key, n); return i.mixIn(o), i; }, decrypt: function (t, e, r, n) { n = this.cfg.extend(n), e = this._parse(e, n.format); var o = n.kdf.execute(r, t.keySize, t.ivSize, e.salt); n.iv = o.iv; var i = w.decrypt.call(this, t, e, o.key, n); return i; } }); }())); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(17), o = r(3), i = r(14), s = r(25);\r\n function a(t) { n.BigNumber.config(i.ETH_BIGNUMBER_ROUNDING_MODE); var e = o.padLeft(o.toTwosComplement(t).toString(16), 64); return new s.SolidityParam(e); }\r\n function c(t) { return \"1\" === new n.BigNumber(t.substr(0, 1), 16).toString(2).substr(0, 1); }\r\n function u(t) { var e = t.staticPart() || \"0\"; return c(e) ? new n.BigNumber(e, 16).minus(new n.BigNumber(\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 16)).minus(1) : new n.BigNumber(e, 16); }\r\n function l(t) { var e = t.staticPart() || \"0\"; return new n.BigNumber(e, 16); }\r\n e.formatInputInt = a, e.formatInputBytes = function (t) { var e = o.toHex(t).substr(2), r = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * r), new s.SolidityParam(e); }, e.formatInputDynamicBytes = function (t) { var e = o.toHex(t).substr(2), r = e.length / 2, n = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * n), new s.SolidityParam(a(r).value + e); }, e.formatInputString = function (t) { var e = o.fromUtf8(t).substr(2), r = e.length / 2, n = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * n), new s.SolidityParam(a(r).value + e); }, e.formatInputBool = function (t) { var e = \"000000000000000000000000000000000000000000000000000000000000000\" + (t ? \"1\" : \"0\"); return new s.SolidityParam(e); }, e.formatInputReal = function (t) { return a(new n.BigNumber(t).times(new n.BigNumber(2).pow(128))); }, e.signedIsNegative = c, e.formatOutputInt = u, e.formatOutputUInt = l, e.formatOutputReal = function (t) { return u(t).dividedBy(new n.BigNumber(2).pow(128)); }, e.formatOutputUReal = function (t) { return l(t).dividedBy(new n.BigNumber(2).pow(128)); }, e.formatOutputBool = function (t) { return \"0000000000000000000000000000000000000000000000000000000000000001\" === t.staticPart(); }, e.formatOutputBytes = function (t, e) { var r = e.match(/^bytes([0-9]*)/), n = parseInt(r[1], 10); return \"0x\" + t.staticPart().slice(0, 2 * n); }, e.formatOutputDynamicBytes = function (t) { var e = 2 * new n.BigNumber(t.dynamicPart().slice(0, 64), 16).toNumber(); return \"0x\" + t.dynamicPart().substr(64, e); }, e.formatOutputString = function (t) { var e = 2 * new n.BigNumber(t.dynamicPart().slice(0, 64), 16).toNumber(); return o.toUtf8(t.dynamicPart().substr(64, e)); }, e.formatOutputAddress = function (t) { var e = t.staticPart(); return \"0x\" + e.slice(e.length - 40, e.length); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(17), o = r(31), i = r(32), s = r(20);\r\n function a(t, e) { var r = t; return e && \"hex\" === e.encoding && (r.length > 2 && \"0x\" === r.substr(0, 2) && (r = r.substr(2)), r = i.enc.Hex.parse(r)), s(r, { outputLength: 256 }).toString(); }\r\n e.sha3 = a;\r\n var c = { noether: \"0\", wei: \"1\", kwei: \"1000\", Kwei: \"1000\", babbage: \"1000\", femtoether: \"1000\", mwei: \"1000000\", Mwei: \"1000000\", lovelace: \"1000000\", picoether: \"1000000\", gwei: \"1000000000\", Gwei: \"1000000000\", shannon: \"1000000000\", nanoether: \"1000000000\", nano: \"1000000000\", szabo: \"1000000000000\", microether: \"1000000000000\", micro: \"1000000000000\", finney: \"1000000000000000\", milliether: \"1000000000000000\", milli: \"1000000000000000\", ether: \"1000000000000000000\", kether: \"1000000000000000000000\", grand: \"1000000000000000000000\", mether: \"1000000000000000000000000\", gether: \"1000000000000000000000000000\", tether: \"1000000000000000000000000000000\" };\r\n function u(t, e, r) { return new Array(e - t.length + 1).join(r || \"0\") + t; }\r\n function l(t, e) {\r\n if (e === void 0) { e = !1; }\r\n var r = o.encode(t), n = \"\";\r\n for (var t_1 = 0; t_1 < r.length; t_1++) {\r\n var o_1 = r.charCodeAt(t_1);\r\n if (0 === o_1) {\r\n if (!e)\r\n break;\r\n n += \"00\";\r\n }\r\n else {\r\n var t_2 = o_1.toString(16);\r\n n += t_2.length < 2 ? \"0\" + t_2 : t_2;\r\n }\r\n }\r\n return \"0x\" + n;\r\n }\r\n function h(t) { var e = d(t), r = e.toString(16); return e.isLessThan(0) ? \"-0x\" + r.substr(1) : \"0x\" + r; }\r\n function f(t) { if (v(t))\r\n return h(+t); if (g(t))\r\n return h(t); if (\"object\" == typeof t)\r\n return l(JSON.stringify(t)); if (_(t)) {\r\n var e_1 = t;\r\n if (0 === e_1.indexOf(\"-0x\"))\r\n return h(e_1);\r\n if (0 === e_1.indexOf(\"0x\"))\r\n return e_1;\r\n if (!isFinite(e_1))\r\n return l(e_1, !0);\r\n } return h(t); }\r\n function p(t) { var e = t ? t.toLowerCase() : \"ether\", r = c[e]; if (void 0 === r)\r\n throw new Error(\"This unit doesn't exists, please use the one of the following units\" + JSON.stringify(c, null, 2)); return new n.BigNumber(r, 10); }\r\n function d(t) { var e = t || 0; return g(e) ? e : \"string\" != typeof e || 0 !== e.indexOf(\"0x\") && 0 !== e.indexOf(\"-0x\") ? new n.BigNumber(e.toString(10), 10) : new n.BigNumber(e.replace(\"0x\", \"\"), 16); }\r\n function m(t) { return /^0x[0-9a-f]{40}$/i.test(t); }\r\n function y(t) { var e = t.replace(\"0x\", \"\"); var r = a(e.toLowerCase()); for (var t_3 = 0; t_3 < 40; t_3++)\r\n if (parseInt(r[t_3], 16) > 7 && e[t_3].toUpperCase() !== e[t_3] || parseInt(r[t_3], 16) <= 7 && e[t_3].toLowerCase() !== e[t_3])\r\n return !1; return !0; }\r\n function g(t) { return t instanceof n.BigNumber; }\r\n function _(t) { return \"string\" == typeof t || t && t.constructor && \"String\" === t.constructor.name; }\r\n function v(t) { return \"boolean\" == typeof t; }\r\n e.padLeft = u, e.padRight = function (t, e, r) { return t + new Array(e - t.length + 1).join(r || \"0\"); }, e.toUtf8 = function (t) { var e = \"\", r = 0, n = t.length; for (\"0x\" === t.substring(0, 2) && (r = 2); r < n; r += 2) {\r\n var n_1 = parseInt(t.substr(r, 2), 16);\r\n if (0 === n_1)\r\n break;\r\n e += String.fromCharCode(n_1);\r\n } return o.decode(e); }, e.toAscii = function (t) { var e = \"\", r = 0, n = t.length; for (\"0x\" === t.substring(0, 2) && (r = 2); r < n; r += 2) {\r\n var n_2 = parseInt(t.substr(r, 2), 16);\r\n e += String.fromCharCode(n_2);\r\n } return e; }, e.fromUtf8 = l, e.fromAscii = function (t, e) {\r\n if (e === void 0) { e = 0; }\r\n var r = \"\";\r\n for (var e_2 = 0; e_2 < t.length; e_2++) {\r\n var n_3 = t.charCodeAt(e_2).toString(16);\r\n r += n_3.length < 2 ? \"0\" + n_3 : n_3;\r\n }\r\n return \"0x\" + r.padEnd(e, \"0\");\r\n }, e.transformToFullName = function (t) { if (-1 !== t.name.indexOf(\"(\"))\r\n return t.name; var e = t.inputs.map(function (t) { return t.type; }).join(); return t.name + \"(\" + e + \")\"; }, e.extractDisplayName = function (t) { var e = t.indexOf(\"(\"), r = t.indexOf(\")\"); return -1 !== e && -1 !== r ? t.substr(0, e) : t; }, e.extractTypeName = function (t) { var e = t.indexOf(\"(\"), r = t.indexOf(\")\"); return -1 !== e && -1 !== r ? t.substr(e + 1, r - e - 1).replace(\" \", \"\") : \"\"; }, e.isHex = function (t) { return \"string\" == typeof t && /^0x[0-9a-fA-F]+$/.test(t); }, e.toNullDecimal = function (t) { return null == t ? t : d(t).toNumber(); }, e.toDecimal = function (t) { return d(t).toNumber(); }, e.toString = function (t) { return g(t) ? t.toString(10) : \"\" + t; }, e.toData = function (t) { return \"string\" == typeof t && !t.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t) ? \"0x\" + t : f(t); }, e.toBoolean = function (t) { return \"boolean\" == typeof t ? t : 0 !== d(t).toNumber(); }, e.fromDecimal = h, e.toHex = f, e.getValueOfUnit = p, e.fromWei = function (t, e) { var r = d(t).dividedBy(p(e)); return g(t) ? r : r.toString(10); }, e.toWei = function (t, e) { var r = d(t).times(p(e)); return g(t) ? r : r.toString(10); }, e.toBigNumber = d, e.toTwosComplement = function (t) { var e = d(t).integerValue(); return e.isLessThan(0) ? new n.BigNumber(\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 16).plus(e).plus(1) : e; }, e.isStrictAddress = m, e.isAddress = function (t) { return !!/^(0x)?[0-9a-f]{40}$/i.test(t) && (!(!/^(0x)?[0-9a-f]{40}$/.test(t) && !/^(0x)?[0-9A-F]{40}$/.test(t)) || y(t)); }, e.isChecksumAddress = y, e.toChecksumAddress = function (t) { if (void 0 === t)\r\n return \"\"; var e = t.toLowerCase().replace(\"0x\", \"\"), r = a(e); var n = \"0x\"; for (var t_4 = 0; t_4 < e.length; t_4++)\r\n parseInt(r[t_4], 16) > 7 ? n += e[t_4].toUpperCase() : n += e[t_4]; return n; }, e.toArray = function (t) { if (!Array.isArray(t))\r\n throw new Error(\"Value was not an array: \" + JSON.stringify(t)); return t; }, e.toAddress = function (t) { return m(t) ? t : /^[0-9a-f]{40}$/.test(t) ? \"0x\" + t : \"0x\" + u(f(t).substr(2), 40); }, e.isBigNumber = g, e.isString = _, e.isFunction = function (t) { return \"function\" == typeof t; }, e.isObject = function (t) { return null !== t && !Array.isArray(t) && \"object\" == typeof t; }, e.isBoolean = v, e.isArray = function (t) { return Array.isArray(t); }, e.isJson = function (t) { try {\r\n return !!JSON.parse(t);\r\n }\r\n catch (t) {\r\n return !1;\r\n } }, e.isBloom = function (t) { return !(!/^(0x)?[0-9a-f]{512}$/i.test(t) || !/^(0x)?[0-9a-f]{512}$/.test(t) && !/^(0x)?[0-9A-F]{512}$/.test(t)); }, e.isTopic = function (t) { return !(!/^(0x)?[0-9a-f]{64}$/i.test(t) || !/^(0x)?[0-9a-f]{64}$/.test(t) && !/^(0x)?[0-9A-F]{64}$/.test(t)); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(25);\r\n e.SolidityType = /** @class */ (function () {\r\n function SolidityType(t) {\r\n this._inputFormatter = t.inputFormatter, this._outputFormatter = t.outputFormatter;\r\n }\r\n SolidityType.prototype.isType = function (t) { throw new Error(\"this method should be overrwritten for type \" + t); };\r\n SolidityType.prototype.staticPartLength = function (t) { return (this.nestedTypes(t) || [\"[1]\"]).map(function (t) { return parseInt(t.slice(1, -1), 10) || 1; }).reduce(function (t, e) { return t * e; }, 32); };\r\n SolidityType.prototype.isDynamicArray = function (t) { var e = this.nestedTypes(t); return !!e && !e[e.length - 1].match(/[0-9]{1,}/g); };\r\n SolidityType.prototype.isStaticArray = function (t) { var e = this.nestedTypes(t); return !!e && !!e[e.length - 1].match(/[0-9]{1,}/g); };\r\n SolidityType.prototype.staticArrayLength = function (t) { var e = this.nestedTypes(t); if (e) {\r\n var t_5 = e[e.length - 1].match(/[0-9]{1,}/g);\r\n return parseInt(t_5[t_5.length - 1] || \"1\", 10);\r\n } return 1; };\r\n SolidityType.prototype.nestedName = function (t) { var e = this.nestedTypes(t); return e ? t.substr(0, t.length - e[e.length - 1].length) : t; };\r\n SolidityType.prototype.isDynamicType = function (t) { return !1; };\r\n SolidityType.prototype.nestedTypes = function (t) { return t.match(/(\\[[0-9]*\\])/g); };\r\n SolidityType.prototype.encode = function (t, e) {\r\n var _this = this;\r\n if (this.isDynamicArray(e)) {\r\n var r_1 = t.length, o_2 = this.nestedName(e), i_1 = [];\r\n return i_1.push(n.formatInputInt(r_1).encode()), t.forEach(function (t) { i_1.push(_this.encode(t, o_2)); }), i_1;\r\n }\r\n if (this.isStaticArray(e)) {\r\n var r_2 = this.staticArrayLength(e), n_4 = this.nestedName(e), o_3 = [];\r\n for (var e_3 = 0; e_3 < r_2; e_3++)\r\n o_3.push(this.encode(t[e_3], n_4));\r\n return o_3;\r\n }\r\n return this._inputFormatter(t, e).encode();\r\n };\r\n SolidityType.prototype.decode = function (t, e, r) { if (this.isDynamicArray(r)) {\r\n var n_5 = parseInt(\"0x\" + t.substr(2 * e, 64), 16), o_4 = parseInt(\"0x\" + t.substr(2 * n_5, 64), 16), i_2 = n_5 + 32, s = this.nestedName(r), a = this.staticPartLength(s), c = 32 * Math.floor((a + 31) / 32), u = [];\r\n for (var e_4 = 0; e_4 < o_4 * c; e_4 += c)\r\n u.push(this.decode(t, i_2 + e_4, s));\r\n return u;\r\n } if (this.isStaticArray(r)) {\r\n var n_6 = this.staticArrayLength(r), o_5 = e, i_3 = this.nestedName(r), s = this.staticPartLength(i_3), a = 32 * Math.floor((s + 31) / 32), c = [];\r\n for (var e_5 = 0; e_5 < n_6 * a; e_5 += a)\r\n c.push(this.decode(t, o_5 + e_5, i_3));\r\n return c;\r\n } if (this.isDynamicType(r)) {\r\n var n_7 = parseInt(\"0x\" + t.substr(2 * e, 64), 16), i_4 = parseInt(\"0x\" + t.substr(2 * n_7, 64), 16), s = Math.floor((i_4 + 31) / 32), a = new o.SolidityParam(t.substr(2 * n_7, 64 * (1 + s)), 0);\r\n return this._outputFormatter(a, r);\r\n } var n = this.staticPartLength(r), i = new o.SolidityParam(t.substr(2 * e, 2 * n)); return this._outputFormatter(i, r); };\r\n return SolidityType;\r\n }());\r\n }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), r(11), r(12), i = (o = n).lib, s = i.Base, a = i.WordArray, c = o.algo, u = c.MD5, l = c.EvpKDF = s.extend({ cfg: s.extend({ keySize: 4, hasher: u, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t); }, compute: function (t, e) { for (var r = this.cfg, n = r.hasher.create(), o = a.create(), i = o.words, s = r.keySize, c = r.iterations; i.length < s;) {\r\n u && n.update(u);\r\n var u = n.update(t).finalize(e);\r\n n.reset();\r\n for (var l = 1; l < c; l++)\r\n u = n.finalize(u), n.reset();\r\n o.concat(u);\r\n } return o.sigBytes = 4 * s, o; } }), o.EvpKDF = function (t, e, r) { return l.create(r).compute(t, e); }, n.EvpKDF); }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), i = (o = n).lib.WordArray, o.enc.Base64 = { stringify: function (t) { var e = t.words, r = t.sigBytes, n = this._map; t.clamp(); for (var o = [], i = 0; i < r; i += 3)\r\n for (var s = (e[i >>> 2] >>> 24 - i % 4 * 8 & 255) << 16 | (e[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255) << 8 | e[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, a = 0; a < 4 && i + .75 * a < r; a++)\r\n o.push(n.charAt(s >>> 6 * (3 - a) & 63)); var c = n.charAt(64); if (c)\r\n for (; o.length % 4;)\r\n o.push(c); return o.join(\"\"); }, parse: function (t) { var e = t.length, r = this._map, n = this._reverseMap; if (!n) {\r\n n = this._reverseMap = [];\r\n for (var o = 0; o < r.length; o++)\r\n n[r.charCodeAt(o)] = o;\r\n } var s = r.charAt(64); if (s) {\r\n var a = t.indexOf(s);\r\n -1 !== a && (e = a);\r\n } return function (t, e, r) { for (var n = [], o = 0, s = 0; s < e; s++)\r\n if (s % 4) {\r\n var a = r[t.charCodeAt(s - 1)] << s % 4 * 2, c = r[t.charCodeAt(s)] >>> 6 - s % 4 * 2;\r\n n[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++;\r\n } return i.create(n, o); }(t, e, n); }, _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\" }, n.enc.Base64); }, function (t, e, r) { var n; t.exports = (n = r(0), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = []; !function () { for (var e = 0; e < 64; e++)\r\n a[e] = 4294967296 * t.abs(t.sin(e + 1)) | 0; }(); var c = s.MD5 = i.extend({ _doReset: function () { this._hash = new o.init([1732584193, 4023233417, 2562383102, 271733878]); }, _doProcessBlock: function (t, e) { for (var r = 0; r < 16; r++) {\r\n var n = e + r, o = t[n];\r\n t[n] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);\r\n } var i = this._hash.words, s = t[e + 0], c = t[e + 1], p = t[e + 2], d = t[e + 3], m = t[e + 4], y = t[e + 5], g = t[e + 6], _ = t[e + 7], v = t[e + 8], w = t[e + 9], b = t[e + 10], B = t[e + 11], F = t[e + 12], N = t[e + 13], k = t[e + 14], x = t[e + 15], S = i[0], A = i[1], O = i[2], T = i[3]; S = u(S, A, O, T, s, 7, a[0]), T = u(T, S, A, O, c, 12, a[1]), O = u(O, T, S, A, p, 17, a[2]), A = u(A, O, T, S, d, 22, a[3]), S = u(S, A, O, T, m, 7, a[4]), T = u(T, S, A, O, y, 12, a[5]), O = u(O, T, S, A, g, 17, a[6]), A = u(A, O, T, S, _, 22, a[7]), S = u(S, A, O, T, v, 7, a[8]), T = u(T, S, A, O, w, 12, a[9]), O = u(O, T, S, A, b, 17, a[10]), A = u(A, O, T, S, B, 22, a[11]), S = u(S, A, O, T, F, 7, a[12]), T = u(T, S, A, O, N, 12, a[13]), O = u(O, T, S, A, k, 17, a[14]), S = l(S, A = u(A, O, T, S, x, 22, a[15]), O, T, c, 5, a[16]), T = l(T, S, A, O, g, 9, a[17]), O = l(O, T, S, A, B, 14, a[18]), A = l(A, O, T, S, s, 20, a[19]), S = l(S, A, O, T, y, 5, a[20]), T = l(T, S, A, O, b, 9, a[21]), O = l(O, T, S, A, x, 14, a[22]), A = l(A, O, T, S, m, 20, a[23]), S = l(S, A, O, T, w, 5, a[24]), T = l(T, S, A, O, k, 9, a[25]), O = l(O, T, S, A, d, 14, a[26]), A = l(A, O, T, S, v, 20, a[27]), S = l(S, A, O, T, N, 5, a[28]), T = l(T, S, A, O, p, 9, a[29]), O = l(O, T, S, A, _, 14, a[30]), S = h(S, A = l(A, O, T, S, F, 20, a[31]), O, T, y, 4, a[32]), T = h(T, S, A, O, v, 11, a[33]), O = h(O, T, S, A, B, 16, a[34]), A = h(A, O, T, S, k, 23, a[35]), S = h(S, A, O, T, c, 4, a[36]), T = h(T, S, A, O, m, 11, a[37]), O = h(O, T, S, A, _, 16, a[38]), A = h(A, O, T, S, b, 23, a[39]), S = h(S, A, O, T, N, 4, a[40]), T = h(T, S, A, O, s, 11, a[41]), O = h(O, T, S, A, d, 16, a[42]), A = h(A, O, T, S, g, 23, a[43]), S = h(S, A, O, T, w, 4, a[44]), T = h(T, S, A, O, F, 11, a[45]), O = h(O, T, S, A, x, 16, a[46]), S = f(S, A = h(A, O, T, S, p, 23, a[47]), O, T, s, 6, a[48]), T = f(T, S, A, O, _, 10, a[49]), O = f(O, T, S, A, k, 15, a[50]), A = f(A, O, T, S, y, 21, a[51]), S = f(S, A, O, T, F, 6, a[52]), T = f(T, S, A, O, d, 10, a[53]), O = f(O, T, S, A, b, 15, a[54]), A = f(A, O, T, S, c, 21, a[55]), S = f(S, A, O, T, v, 6, a[56]), T = f(T, S, A, O, x, 10, a[57]), O = f(O, T, S, A, g, 15, a[58]), A = f(A, O, T, S, N, 21, a[59]), S = f(S, A, O, T, m, 6, a[60]), T = f(T, S, A, O, B, 10, a[61]), O = f(O, T, S, A, p, 15, a[62]), A = f(A, O, T, S, w, 21, a[63]), i[0] = i[0] + S | 0, i[1] = i[1] + A | 0, i[2] = i[2] + O | 0, i[3] = i[3] + T | 0; }, _doFinalize: function () { var e = this._data, r = e.words, n = 8 * this._nDataBytes, o = 8 * e.sigBytes; r[o >>> 5] |= 128 << 24 - o % 32; var i = t.floor(n / 4294967296), s = n; r[15 + (o + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), r[14 + (o + 64 >>> 9 << 4)] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), e.sigBytes = 4 * (r.length + 1), this._process(); for (var a = this._hash, c = a.words, u = 0; u < 4; u++) {\r\n var l = c[u];\r\n c[u] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8);\r\n } return a; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); function u(t, e, r, n, o, i, s) { var a = t + (e & r | ~e & n) + o + s; return (a << i | a >>> 32 - i) + e; } function l(t, e, r, n, o, i, s) { var a = t + (e & n | r & ~n) + o + s; return (a << i | a >>> 32 - i) + e; } function h(t, e, r, n, o, i, s) { var a = t + (e ^ r ^ n) + o + s; return (a << i | a >>> 32 - i) + e; } function f(t, e, r, n, o, i, s) { var a = t + (r ^ (e | ~n)) + o + s; return (a << i | a >>> 32 - i) + e; } e.MD5 = i._createHelper(c), e.HmacMD5 = i._createHmacHelper(c); }(Math), n.MD5); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(14);\r\n function i(t) { return \"latest\" === t || \"pending\" === t || \"earliest\" === t; }\r\n function s(t) { if (void 0 !== t && null != t)\r\n return i(t) ? t : n.toHex(t); }\r\n function a(t) { return t ? (null !== t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), null !== t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.nonce = n.toDecimal(t.nonce), t.gas = n.toDecimal(t.gas), t.gasPrice = n.toBigNumber(t.gasPrice), t.value = n.toBigNumber(t.value), t) : null; }\r\n function c(t) { return t ? (t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.logIndex && (t.logIndex = n.toDecimal(t.logIndex)), t) : null; }\r\n function u(t) { if (n.isStrictAddress(t))\r\n return t; if (n.isAddress(t))\r\n return \"0x\" + t; throw new Error(\"Invalid address: \" + JSON.stringify(t)); }\r\n e.outputBigNumberFormatter = function (t) { return n.toBigNumber(t); }, e.isPredefinedBlockNumber = i, e.inputDefaultBlockNumberFormatter = function (t) { return void 0 === t ? o.defaultBlock : s(t); }, e.inputBlockNumberFormatter = s, e.inputCallFormatter = function (t) { return t.from = t.from, t.from && (t.from = u(t.from)), t.to && (t.to = u(t.to)), [\"gasPrice\", \"gas\", \"value\", \"nonce\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (e) { t[e] = n.fromDecimal(t[e]); }), t.data && !t.data.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t.data) && (t.data = \"0x\" + t.data), t; }, e.inputTransactionFormatter = function (t) { if (\"object\" != typeof t)\r\n throw new Error(\"Did not provide transaction options\"); if (!t.from)\r\n throw new Error('Missing \"from\" in transaction options'); return t.from = u(t.from), t.to && (t.to = u(t.to)), [\"gasPrice\", \"gas\", \"value\", \"nonce\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (e) { t[e] = n.fromDecimal(t[e]); }), t.data && !t.data.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t.data) && (t.data = \"0x\" + t.data), t; }, e.outputTransactionFormatter = a, e.outputTransactionReceiptFormatter = function (t) { return t ? (null !== t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), null !== t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.cumulativeGasUsed = n.toDecimal(t.cumulativeGasUsed), t.gasUsed = n.toDecimal(t.gasUsed), n.isArray(t.logs) && (t.logs = t.logs.map(function (t) { return c(t); })), t.status = n.toDecimal(t.status), t) : null; }, e.outputBlockFormatter = function (t) { return t ? (t.gasLimit = n.toDecimal(t.gasLimit), t.gasUsed = n.toDecimal(t.gasUsed), t.size = n.toDecimal(t.size), t.timestamp = n.toDecimal(t.timestamp), null !== t.number && (t.number = n.toDecimal(t.number)), t.difficulty = n.toBigNumber(t.difficulty), t.totalDifficulty = n.toBigNumber(t.totalDifficulty), n.isArray(t.transactions) && t.transactions.forEach(function (t) { if (!n.isString(t))\r\n return a(t); }), t) : null; }, e.outputLogFormatter = c, e.inputPostFormatter = function (t) { return t ? (t.ttl = n.fromDecimal(t.ttl), t.workToProve = n.fromDecimal(t.workToProve), t.priority = n.fromDecimal(t.priority), n.isArray(t.topics) || (t.topics = t.topics ? [t.topics] : []), t.topics = t.topics.map(function (t) { return 0 === t.indexOf(\"0x\") ? t : n.fromUtf8(t); }), t) : null; }, e.outputPostFormatter = function (t) { return t ? (t.expiry = n.toDecimal(t.expiry), t.sent = n.toDecimal(t.sent), t.ttl = n.toDecimal(t.ttl), t.workProved = n.toDecimal(t.workProved), t.topics || (t.topics = []), t.topics = t.topics.map(function (t) { return n.toAscii(t); }), t) : null; }, e.inputAddressFormatter = u, e.outputSyncingFormatter = function (t) { return t ? (t.startingBlock = n.toDecimal(t.startingBlock), t.currentBlock = n.toDecimal(t.currentBlock), t.highestBlock = n.toDecimal(t.highestBlock), t.knownStates && (t.knownStates = n.toDecimal(t.knownStates), t.pulledStates = n.toDecimal(t.pulledStates)), t) : t; };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n function n() { var t, e; var r = new Promise(function (n, o) { t = (function (t) { n(t), r.isPending = !1; }), e = (function (t) { o(t), r.isPending = !1; }); }).catch(function (t) { return Promise.reject(t); }); return r.resolve = t, r.reject = e, \"finally\" in r || (r.finally = (function (t) { r.then(t), r.catch(t); })), r.isPending = !0, r; }\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.future = n, e.default = n;\r\n }, function (t, e, r) { var n, o, i, s, a, c; t.exports = (n = r(0), i = (o = n).lib, s = i.Base, a = i.WordArray, (c = o.x64 = {}).Word = s.extend({ init: function (t, e) { this.high = t, this.low = e; } }), c.WordArray = s.extend({ init: function (t, e) { t = this.words = t || [], this.sigBytes = null != e ? e : 8 * t.length; }, toX32: function () { for (var t = this.words, e = t.length, r = [], n = 0; n < e; n++) {\r\n var o = t[n];\r\n r.push(o.high), r.push(o.low);\r\n } return a.create(r, this.sigBytes); }, clone: function () { for (var t = s.clone.call(this), e = t.words = this.words.slice(0), r = e.length, n = 0; n < r; n++)\r\n e[n] = e[n].clone(); return t; } }), n); }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), i = (o = n).lib, s = i.WordArray, a = i.Hasher, c = o.algo, u = [], l = c.SHA1 = a.extend({ _doReset: function () { this._hash = new s.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], c = 0; c < 80; c++) {\r\n if (c < 16)\r\n u[c] = 0 | t[e + c];\r\n else {\r\n var l = u[c - 3] ^ u[c - 8] ^ u[c - 14] ^ u[c - 16];\r\n u[c] = l << 1 | l >>> 31;\r\n }\r\n var h = (n << 5 | n >>> 27) + a + u[c];\r\n h += c < 20 ? 1518500249 + (o & i | ~o & s) : c < 40 ? 1859775393 + (o ^ i ^ s) : c < 60 ? (o & i | o & s | i & s) - 1894007588 : (o ^ i ^ s) - 899497514, a = s, s = i, i = o << 30 | o >>> 2, o = n, n = h;\r\n } r[0] = r[0] + n | 0, r[1] = r[1] + o | 0, r[2] = r[2] + i | 0, r[3] = r[3] + s | 0, r[4] = r[4] + a | 0; }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[14 + (n + 64 >>> 9 << 4)] = Math.floor(r / 4294967296), e[15 + (n + 64 >>> 9 << 4)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash; }, clone: function () { var t = a.clone.call(this); return t._hash = this._hash.clone(), t; } }), o.SHA1 = a._createHelper(l), o.HmacSHA1 = a._createHmacHelper(l), n.SHA1); }, function (t, e, r) { var n, o, i, s, a, c, u; t.exports = (n = r(0), i = (o = n).lib, s = i.Base, a = o.enc, c = a.Utf8, u = o.algo, void (u.HMAC = s.extend({ init: function (t, e) { t = this._hasher = new t.init, \"string\" == typeof e && (e = c.parse(e)); var r = t.blockSize, n = 4 * r; e.sigBytes > n && (e = t.finalize(e)), e.clamp(); for (var o = this._oKey = e.clone(), i = this._iKey = e.clone(), s = o.words, a = i.words, u = 0; u < r; u++)\r\n s[u] ^= 1549556828, a[u] ^= 909522486; o.sigBytes = i.sigBytes = n, this.reset(); }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey); }, update: function (t) { return this._hasher.update(t), this; }, finalize: function (t) { var e = this._hasher, r = e.finalize(t); e.reset(); var n = e.finalize(this._oKey.clone().concat(r)); return n; } }))); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.InvalidNumberOfSolidityArgs = function (t, e) { return new Error(\"Invalid number of arguments to Solidity function. given: \" + t + \", expected: \" + e); }, e.InvalidNumberOfRPCParams = function (t, e, r) { return new Error(\"Invalid number of input parameters to RPC method \\\"\" + t + \"\\\" given: \" + e + \", expected: \" + r); }, e.InvalidConnection = function (t) { return new Error(\"CONNECTION ERROR: Couldn't connect to node \" + t + \".\"); }, e.InvalidProvider = function () { return new Error(\"Provider not set or invalid\"); }, e.InvalidResponse = function (t) { var e = t && t.error && t.error.message ? t.error.message : \"Invalid JSON RPC response: \" + JSON.stringify(t); return new Error(e); }, e.ConnectionTimeout = function (t) { return new Error(\"CONNECTION TIMEOUT: timeout of \" + t + \" ms achived\"); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(57);\r\n e.ETH_UNITS = [\"wei\", \"kwei\", \"Mwei\", \"Gwei\", \"szabo\", \"finney\", \"femtoether\", \"picoether\", \"nanoether\", \"microether\", \"milliether\", \"nano\", \"micro\", \"milli\", \"ether\", \"grand\", \"Mether\", \"Gether\", \"Tether\", \"Pether\", \"Eether\", \"Zether\", \"Yether\", \"Nether\", \"Dether\", \"Vether\", \"Uether\"], e.ETH_PADDING = 32, e.ETH_SIGNATURE_LENGTH = 4, e.ETH_BIGNUMBER_ROUNDING_MODE = { ROUNDING_MODE: n.BigNumberRoundingMode.ROUND_DOWN }, e.ETH_POLLING_TIMEOUT = 500, e.defaultBlock = \"latest\";\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(61), i = r(62), s = r(63), a = r(64), c = r(65), u = r(66), l = r(67), h = r(68), f = r(69);\r\n function p(t, e) { return t.isDynamicType(e) || t.isDynamicArray(e); }\r\n var d = /** @class */ (function () {\r\n function d(t) {\r\n this._types = t;\r\n }\r\n d.prototype._requireType = function (t) { var e = this._types.filter(function (e) { return e.isType(t); })[0]; if (!e)\r\n throw Error(\"invalid solidity type!: \" + t); return e; };\r\n d.prototype.encodeParam = function (t, e) { return this.encodeParams([t], [e]); };\r\n d.prototype.encodeParams = function (t, e) { var r = this.getSolidityTypes(t), n = r.map(function (r, n) { return r.encode(e[n], t[n]); }), o = r.reduce(function (e, n, o) { var i = n.staticPartLength(t[o]), s = 32 * Math.floor((i + 31) / 32); return e + (p(r[o], t[o]) ? 32 : s); }, 0); return this.encodeMultiWithOffset(t, r, n, o); };\r\n d.prototype.encodeMultiWithOffset = function (t, e, r, o) {\r\n var _this = this;\r\n var i = o, s = \"\";\r\n return t.forEach(function (o, a) { if (p(e[a], t[a])) {\r\n s += n.formatInputInt(i).encode();\r\n var o_6 = _this.encodeWithOffset(t[a], e[a], r[a], i);\r\n i += o_6.length / 2;\r\n }\r\n else\r\n s += _this.encodeWithOffset(t[a], e[a], r[a], i); }), t.forEach(function (n, o) { if (p(e[o], t[o])) {\r\n var n_8 = _this.encodeWithOffset(t[o], e[o], r[o], i);\r\n i += n_8.length / 2, s += n_8;\r\n } }), s;\r\n };\r\n d.prototype.encodeWithOffset = function (t, e, r, o) { var i = 1, s = 2, a = 3, c = e.isDynamicArray(t) ? i : e.isStaticArray(t) ? s : a; if (c !== a) {\r\n var a_1 = e.nestedName(t), u_1 = e.staticPartLength(a_1), l_1 = c === i ? r[0] : \"\";\r\n if (e.isDynamicArray(a_1)) {\r\n var t_6 = c === i ? 2 : 0;\r\n for (var e_6 = 0; e_6 < r.length; e_6++)\r\n c === i ? t_6 += +r[e_6 - 1][0] || 0 : c === s && (t_6 += +(r[e_6 - 1] || [])[0] || 0), l_1 += n.formatInputInt(o + e_6 * u_1 + 32 * t_6).encode();\r\n }\r\n var h_1 = c === i ? r.length - 1 : r.length;\r\n for (var t_7 = 0; t_7 < h_1; t_7++) {\r\n var n_9 = l_1 / 2;\r\n c === i ? l_1 += this.encodeWithOffset(a_1, e, r[t_7 + 1], o + n_9) : c === s && (l_1 += this.encodeWithOffset(a_1, e, r[t_7], o + n_9));\r\n }\r\n return l_1;\r\n } return r; };\r\n d.prototype.decodeParam = function (t, e) { return this.decodeParams([t], e)[0]; };\r\n d.prototype.decodeParams = function (t, e) { var r = this.getSolidityTypes(t), n = this.getOffsets(t, r); return r.map(function (r, o) { return r.decode(e, n[o], t[o]); }); };\r\n d.prototype.getOffsets = function (t, e) { var r = e.map(function (e, r) { return e.staticPartLength(t[r]); }); for (var t_8 = 1; t_8 < r.length; t_8++)\r\n r[t_8] += r[t_8 - 1]; return r.map(function (r, n) { return r - e[n].staticPartLength(t[n]); }); };\r\n d.prototype.getSolidityTypes = function (t) {\r\n var _this = this;\r\n return t.map(function (t) { return _this._requireType(t); });\r\n };\r\n return d;\r\n }());\r\n e.SolidityCoder = d, e.coder = new d([new o.SolidityTypeAddress, new i.SolidityTypeBool, new s.SolidityTypeInt, new a.SolidityTypeUInt, new c.SolidityTypeDynamicBytes, new f.SolidityTypeBytes, new u.SolidityTypeString, new l.SolidityTypeReal, new h.SolidityTypeUReal]);\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.toRPC = function (t) { if (t.jsonrpc = \"2.0\", !t.id || \"number\" != typeof t.id || Math.floor(t.id) !== t.id)\r\n throw new Error(\"Invalid RPC message(invalid id) message: \" + JSON.stringify(t)); if (!t.method || \"string\" != typeof t.method || 0 === t.method.trim().length)\r\n throw new Error(\"Invalid RPC message(invalid method) message: \" + JSON.stringify(t)); if (!t.params || \"object\" != typeof t.params)\r\n throw new Error(\"Invalid RPC message(invalid params) message: \" + JSON.stringify(t)); return t; };\r\n }, function (t, e, r) { var n; !function (o) {\r\n \"use strict\";\r\n var i, s = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i, a = Math.ceil, c = Math.floor, u = \"[BigNumber Error] \", l = u + \"Number primitive has more than 15 significant digits: \", h = 1e14, f = 14, p = 9007199254740991, d = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], m = 1e7, y = 1e9;\r\n function g(t) { var e = 0 | t; return t > 0 || t === e ? e : e - 1; }\r\n function _(t) { for (var e, r, n = 1, o = t.length, i = t[0] + \"\"; n < o;) {\r\n for (e = t[n++] + \"\", r = f - e.length; r--; e = \"0\" + e)\r\n ;\r\n i += e;\r\n } for (o = i.length; 48 === i.charCodeAt(--o);)\r\n ; return i.slice(0, o + 1 || 1); }\r\n function v(t, e) { var r, n, o = t.c, i = e.c, s = t.s, a = e.s, c = t.e, u = e.e; if (!s || !a)\r\n return null; if (r = o && !o[0], n = i && !i[0], r || n)\r\n return r ? n ? 0 : -a : s; if (s != a)\r\n return s; if (r = s < 0, n = c == u, !o || !i)\r\n return n ? 0 : !o ^ r ? 1 : -1; if (!n)\r\n return c > u ^ r ? 1 : -1; for (a = (c = o.length) < (u = i.length) ? c : u, s = 0; s < a; s++)\r\n if (o[s] != i[s])\r\n return o[s] > i[s] ^ r ? 1 : -1; return c == u ? 0 : c > u ^ r ? 1 : -1; }\r\n function w(t, e, r, n) { if (t < e || t > r || t !== (t < 0 ? a(t) : c(t)))\r\n throw Error(u + (n || \"Argument\") + (\"number\" == typeof t ? t < e || t > r ? \" out of range: \" : \" not an integer: \" : \" not a primitive number: \") + t); }\r\n function b(t) { return \"[object Array]\" == Object.prototype.toString.call(t); }\r\n function B(t) { var e = t.c.length - 1; return g(t.e / f) == e && t.c[e] % 2 != 0; }\r\n function F(t, e) { return (t.length > 1 ? t.charAt(0) + \".\" + t.slice(1) : t) + (e < 0 ? \"e\" : \"e+\") + e; }\r\n function N(t, e, r) { var n, o; if (e < 0) {\r\n for (o = r + \".\"; ++e; o += r)\r\n ;\r\n t = o + t;\r\n }\r\n else if (++e > (n = t.length)) {\r\n for (o = r, e -= n; --e; o += r)\r\n ;\r\n t += o;\r\n }\r\n else\r\n e < n && (t = t.slice(0, e) + \".\" + t.slice(e)); return t; }\r\n (i = function t(e) { var r, n, o, i, k, x, S, A, O, T = W.prototype = { constructor: W, toString: null, valueOf: null }, P = new W(1), M = 20, C = 4, E = -7, D = 21, R = -1e7, I = 1e7, H = !1, j = 1, U = 0, L = { decimalSeparator: \".\", groupSeparator: \",\", groupSize: 3, secondaryGroupSize: 0, fractionGroupSeparator: \" \", fractionGroupSize: 0 }, z = \"0123456789abcdefghijklmnopqrstuvwxyz\"; function W(t, e) { var r, i, a, u, h, d, m, y = this; if (!(y instanceof W))\r\n return new W(t, e); if (null == e) {\r\n if (t instanceof W)\r\n return y.s = t.s, y.e = t.e, void (y.c = (t = t.c) ? t.slice() : t);\r\n if ((h = \"number\" == typeof t) && 0 * t == 0) {\r\n if (y.s = 1 / t < 0 ? (t = -t, -1) : 1, t === ~~t) {\r\n for (a = 0, u = t; u >= 10; u /= 10, a++)\r\n ;\r\n return y.e = a, void (y.c = [t]);\r\n }\r\n m = t + \"\";\r\n }\r\n else {\r\n if (!s.test(m = t + \"\"))\r\n return o(y, m, h);\r\n y.s = 45 == m.charCodeAt(0) ? (m = m.slice(1), -1) : 1;\r\n }\r\n }\r\n else {\r\n if (w(e, 2, z.length, \"Base\"), m = t + \"\", 10 == e)\r\n return V(y = new W(t instanceof W ? t : m), M + y.e + 1, C);\r\n if (h = \"number\" == typeof t) {\r\n if (0 * t != 0)\r\n return o(y, m, h, e);\r\n if (y.s = 1 / t < 0 ? (m = m.slice(1), -1) : 1, W.DEBUG && m.replace(/^0\\.0*|\\./, \"\").length > 15)\r\n throw Error(l + t);\r\n h = !1;\r\n }\r\n else\r\n y.s = 45 === m.charCodeAt(0) ? (m = m.slice(1), -1) : 1, e > 10 && e < 37 && (m = m.toLowerCase());\r\n for (r = z.slice(0, e), a = u = 0, d = m.length; u < d; u++)\r\n if (r.indexOf(i = m.charAt(u)) < 0) {\r\n if (\".\" == i && u > a) {\r\n a = d;\r\n continue;\r\n }\r\n return o(y, t + \"\", h, e);\r\n }\r\n m = n(m, e, 10, y.s);\r\n } for ((a = m.indexOf(\".\")) > -1 && (m = m.replace(\".\", \"\")), (u = m.search(/e/i)) > 0 ? (a < 0 && (a = u), a += +m.slice(u + 1), m = m.substring(0, u)) : a < 0 && (a = m.length), u = 0; 48 === m.charCodeAt(u); u++)\r\n ; for (d = m.length; 48 === m.charCodeAt(--d);)\r\n ; if (m = m.slice(u, ++d)) {\r\n if (d -= u, h && W.DEBUG && d > 15 && (t > p || t !== c(t)))\r\n throw Error(l + y.s * t);\r\n if ((a = a - u - 1) > I)\r\n y.c = y.e = null;\r\n else if (a < R)\r\n y.c = [y.e = 0];\r\n else {\r\n if (y.e = a, y.c = [], u = (a + 1) % f, a < 0 && (u += f), u < d) {\r\n for (u && y.c.push(+m.slice(0, u)), d -= f; u < d;)\r\n y.c.push(+m.slice(u, u += f));\r\n m = m.slice(u), u = f - m.length;\r\n }\r\n else\r\n u -= d;\r\n for (; u--; m += \"0\")\r\n ;\r\n y.c.push(+m);\r\n }\r\n }\r\n else\r\n y.c = [y.e = 0]; } function q(t, e, r, n) { var o, i, s, a, c; if (null == r ? r = C : w(r, 0, 8), !t.c)\r\n return t.toString(); if (o = t.c[0], s = t.e, null == e)\r\n c = _(t.c), c = 1 == n || 2 == n && s <= E ? F(c, s) : N(c, s, \"0\");\r\n else if (i = (t = V(new W(t), e, r)).e, a = (c = _(t.c)).length, 1 == n || 2 == n && (e <= i || i <= E)) {\r\n for (; a < e; c += \"0\", a++)\r\n ;\r\n c = F(c, i);\r\n }\r\n else if (e -= s, c = N(c, i, \"0\"), i + 1 > a) {\r\n if (--e > 0)\r\n for (c += \".\"; e--; c += \"0\")\r\n ;\r\n }\r\n else if ((e += i - a) > 0)\r\n for (i + 1 == a && (c += \".\"); e--; c += \"0\")\r\n ; return t.s < 0 && o ? \"-\" + c : c; } function $(t, e) { var r, n, o = 0; for (b(t[0]) && (t = t[0]), r = new W(t[0]); ++o < t.length;) {\r\n if (!(n = new W(t[o])).s) {\r\n r = n;\r\n break;\r\n }\r\n e.call(r, n) && (r = n);\r\n } return r; } function G(t, e, r) { for (var n = 1, o = e.length; !e[--o]; e.pop())\r\n ; for (o = e[0]; o >= 10; o /= 10, n++)\r\n ; return (r = n + r * f - 1) > I ? t.c = t.e = null : r < R ? t.c = [t.e = 0] : (t.e = r, t.c = e), t; } function V(t, e, r, n) { var o, i, s, u, l, p, m, y = t.c, g = d; if (y) {\r\n t: {\r\n for (o = 1, u = y[0]; u >= 10; u /= 10, o++)\r\n ;\r\n if ((i = e - o) < 0)\r\n i += f, s = e, m = (l = y[p = 0]) / g[o - s - 1] % 10 | 0;\r\n else if ((p = a((i + 1) / f)) >= y.length) {\r\n if (!n)\r\n break t;\r\n for (; y.length <= p; y.push(0))\r\n ;\r\n l = m = 0, o = 1, s = (i %= f) - f + 1;\r\n }\r\n else {\r\n for (l = u = y[p], o = 1; u >= 10; u /= 10, o++)\r\n ;\r\n m = (s = (i %= f) - f + o) < 0 ? 0 : l / g[o - s - 1] % 10 | 0;\r\n }\r\n if (n = n || e < 0 || null != y[p + 1] || (s < 0 ? l : l % g[o - s - 1]), n = r < 4 ? (m || n) && (0 == r || r == (t.s < 0 ? 3 : 2)) : m > 5 || 5 == m && (4 == r || n || 6 == r && (i > 0 ? s > 0 ? l / g[o - s] : 0 : y[p - 1]) % 10 & 1 || r == (t.s < 0 ? 8 : 7)), e < 1 || !y[0])\r\n return y.length = 0, n ? (e -= t.e + 1, y[0] = g[(f - e % f) % f], t.e = -e || 0) : y[0] = t.e = 0, t;\r\n if (0 == i ? (y.length = p, u = 1, p--) : (y.length = p + 1, u = g[f - i], y[p] = s > 0 ? c(l / g[o - s] % g[s]) * u : 0), n)\r\n for (;;) {\r\n if (0 == p) {\r\n for (i = 1, s = y[0]; s >= 10; s /= 10, i++)\r\n ;\r\n for (s = y[0] += u, u = 1; s >= 10; s /= 10, u++)\r\n ;\r\n i != u && (t.e++, y[0] == h && (y[0] = 1));\r\n break;\r\n }\r\n if (y[p] += u, y[p] != h)\r\n break;\r\n y[p--] = 0, u = 1;\r\n }\r\n for (i = y.length; 0 === y[--i]; y.pop())\r\n ;\r\n }\r\n t.e > I ? t.c = t.e = null : t.e < R && (t.c = [t.e = 0]);\r\n } return t; } return W.clone = t, W.ROUND_UP = 0, W.ROUND_DOWN = 1, W.ROUND_CEIL = 2, W.ROUND_FLOOR = 3, W.ROUND_HALF_UP = 4, W.ROUND_HALF_DOWN = 5, W.ROUND_HALF_EVEN = 6, W.ROUND_HALF_CEIL = 7, W.ROUND_HALF_FLOOR = 8, W.EUCLID = 9, W.config = W.set = function (t) { var e, r; if (null != t) {\r\n if (\"object\" != typeof t)\r\n throw Error(u + \"Object expected: \" + t);\r\n if (t.hasOwnProperty(e = \"DECIMAL_PLACES\") && (w(r = t[e], 0, y, e), M = r), t.hasOwnProperty(e = \"ROUNDING_MODE\") && (w(r = t[e], 0, 8, e), C = r), t.hasOwnProperty(e = \"EXPONENTIAL_AT\") && (b(r = t[e]) ? (w(r[0], -y, 0, e), w(r[1], 0, y, e), E = r[0], D = r[1]) : (w(r, -y, y, e), E = -(D = r < 0 ? -r : r))), t.hasOwnProperty(e = \"RANGE\"))\r\n if (b(r = t[e]))\r\n w(r[0], -y, -1, e), w(r[1], 1, y, e), R = r[0], I = r[1];\r\n else {\r\n if (w(r, -y, y, e), !r)\r\n throw Error(u + e + \" cannot be zero: \" + r);\r\n R = -(I = r < 0 ? -r : r);\r\n }\r\n if (t.hasOwnProperty(e = \"CRYPTO\")) {\r\n if ((r = t[e]) !== !!r)\r\n throw Error(u + e + \" not true or false: \" + r);\r\n if (r) {\r\n if (\"undefined\" == typeof crypto || !crypto || !crypto.getRandomValues && !crypto.randomBytes)\r\n throw H = !r, Error(u + \"crypto unavailable\");\r\n H = r;\r\n }\r\n else\r\n H = r;\r\n }\r\n if (t.hasOwnProperty(e = \"MODULO_MODE\") && (w(r = t[e], 0, 9, e), j = r), t.hasOwnProperty(e = \"POW_PRECISION\") && (w(r = t[e], 0, y, e), U = r), t.hasOwnProperty(e = \"FORMAT\")) {\r\n if (\"object\" != typeof (r = t[e]))\r\n throw Error(u + e + \" not an object: \" + r);\r\n L = r;\r\n }\r\n if (t.hasOwnProperty(e = \"ALPHABET\")) {\r\n if (\"string\" != typeof (r = t[e]) || /^.$|\\.|(.).*\\1/.test(r))\r\n throw Error(u + e + \" invalid: \" + r);\r\n z = r;\r\n }\r\n } return { DECIMAL_PLACES: M, ROUNDING_MODE: C, EXPONENTIAL_AT: [E, D], RANGE: [R, I], CRYPTO: H, MODULO_MODE: j, POW_PRECISION: U, FORMAT: L, ALPHABET: z }; }, W.isBigNumber = function (t) { return t instanceof W || t && !0 === t._isBigNumber || !1; }, W.maximum = W.max = function () { return $(arguments, T.lt); }, W.minimum = W.min = function () { return $(arguments, T.gt); }, W.random = (i = 9007199254740992 * Math.random() & 2097151 ? function () { return c(9007199254740992 * Math.random()); } : function () { return 8388608 * (1073741824 * Math.random() | 0) + (8388608 * Math.random() | 0); }, function (t) { var e, r, n, o, s, l = 0, h = [], p = new W(P); if (null == t ? t = M : w(t, 0, y), o = a(t / f), H)\r\n if (crypto.getRandomValues) {\r\n for (e = crypto.getRandomValues(new Uint32Array(o *= 2)); l < o;)\r\n (s = 131072 * e[l] + (e[l + 1] >>> 11)) >= 9e15 ? (r = crypto.getRandomValues(new Uint32Array(2)), e[l] = r[0], e[l + 1] = r[1]) : (h.push(s % 1e14), l += 2);\r\n l = o / 2;\r\n }\r\n else {\r\n if (!crypto.randomBytes)\r\n throw H = !1, Error(u + \"crypto unavailable\");\r\n for (e = crypto.randomBytes(o *= 7); l < o;)\r\n (s = 281474976710656 * (31 & e[l]) + 1099511627776 * e[l + 1] + 4294967296 * e[l + 2] + 16777216 * e[l + 3] + (e[l + 4] << 16) + (e[l + 5] << 8) + e[l + 6]) >= 9e15 ? crypto.randomBytes(7).copy(e, l) : (h.push(s % 1e14), l += 7);\r\n l = o / 7;\r\n } if (!H)\r\n for (; l < o;)\r\n (s = i()) < 9e15 && (h[l++] = s % 1e14); for (o = h[--l], t %= f, o && t && (s = d[f - t], h[l] = c(o / s) * s); 0 === h[l]; h.pop(), l--)\r\n ; if (l < 0)\r\n h = [n = 0];\r\n else {\r\n for (n = -1; 0 === h[0]; h.splice(0, 1), n -= f)\r\n ;\r\n for (l = 1, s = h[0]; s >= 10; s /= 10, l++)\r\n ;\r\n l < f && (n -= f - l);\r\n } return p.e = n, p.c = h, p; }), n = function () { function t(t, e, r, n) { for (var o, i, s = [0], a = 0, c = t.length; a < c;) {\r\n for (i = s.length; i--; s[i] *= e)\r\n ;\r\n for (s[0] += n.indexOf(t.charAt(a++)), o = 0; o < s.length; o++)\r\n s[o] > r - 1 && (null == s[o + 1] && (s[o + 1] = 0), s[o + 1] += s[o] / r | 0, s[o] %= r);\r\n } return s.reverse(); } return function (e, n, o, i, s) { var a, c, u, l, h, f, p, d, m = e.indexOf(\".\"), y = M, g = C; for (m >= 0 && (l = U, U = 0, e = e.replace(\".\", \"\"), f = (d = new W(n)).pow(e.length - m), U = l, d.c = t(N(_(f.c), f.e, \"0\"), 10, o, \"0123456789\"), d.e = d.c.length), u = l = (p = t(e, n, o, s ? (a = z, \"0123456789\") : (a = \"0123456789\", z))).length; 0 == p[--l]; p.pop())\r\n ; if (!p[0])\r\n return a.charAt(0); if (m < 0 ? --u : (f.c = p, f.e = u, f.s = i, p = (f = r(f, d, y, g, o)).c, h = f.r, u = f.e), m = p[c = u + y + 1], l = o / 2, h = h || c < 0 || null != p[c + 1], h = g < 4 ? (null != m || h) && (0 == g || g == (f.s < 0 ? 3 : 2)) : m > l || m == l && (4 == g || h || 6 == g && 1 & p[c - 1] || g == (f.s < 0 ? 8 : 7)), c < 1 || !p[0])\r\n e = h ? N(a.charAt(1), -y, a.charAt(0)) : a.charAt(0);\r\n else {\r\n if (p.length = c, h)\r\n for (--o; ++p[--c] > o;)\r\n p[c] = 0, c || (++u, p = [1].concat(p));\r\n for (l = p.length; !p[--l];)\r\n ;\r\n for (m = 0, e = \"\"; m <= l; e += a.charAt(p[m++]))\r\n ;\r\n e = N(e, u, a.charAt(0));\r\n } return e; }; }(), r = function () { function t(t, e, r) { var n, o, i, s, a = 0, c = t.length, u = e % m, l = e / m | 0; for (t = t.slice(); c--;)\r\n a = ((o = u * (i = t[c] % m) + (n = l * i + (s = t[c] / m | 0) * u) % m * m + a) / r | 0) + (n / m | 0) + l * s, t[c] = o % r; return a && (t = [a].concat(t)), t; } function e(t, e, r, n) { var o, i; if (r != n)\r\n i = r > n ? 1 : -1;\r\n else\r\n for (o = i = 0; o < r; o++)\r\n if (t[o] != e[o]) {\r\n i = t[o] > e[o] ? 1 : -1;\r\n break;\r\n } return i; } function r(t, e, r, n) { for (var o = 0; r--;)\r\n t[r] -= o, o = t[r] < e[r] ? 1 : 0, t[r] = o * n + t[r] - e[r]; for (; !t[0] && t.length > 1; t.splice(0, 1))\r\n ; } return function (n, o, i, s, a) { var u, l, p, d, m, y, _, v, w, b, B, F, N, k, x, S, A, O = n.s == o.s ? 1 : -1, T = n.c, P = o.c; if (!(T && T[0] && P && P[0]))\r\n return new W(n.s && o.s && (T ? !P || T[0] != P[0] : P) ? T && 0 == T[0] || !P ? 0 * O : O / 0 : NaN); for (w = (v = new W(O)).c = [], O = i + (l = n.e - o.e) + 1, a || (a = h, l = g(n.e / f) - g(o.e / f), O = O / f | 0), p = 0; P[p] == (T[p] || 0); p++)\r\n ; if (P[p] > (T[p] || 0) && l--, O < 0)\r\n w.push(1), d = !0;\r\n else {\r\n for (k = T.length, S = P.length, p = 0, O += 2, (m = c(a / (P[0] + 1))) > 1 && (P = t(P, m, a), T = t(T, m, a), S = P.length, k = T.length), N = S, B = (b = T.slice(0, S)).length; B < S; b[B++] = 0)\r\n ;\r\n A = P.slice(), A = [0].concat(A), x = P[0], P[1] >= a / 2 && x++;\r\n do {\r\n if (m = 0, (u = e(P, b, S, B)) < 0) {\r\n if (F = b[0], S != B && (F = F * a + (b[1] || 0)), (m = c(F / x)) > 1)\r\n for (m >= a && (m = a - 1), _ = (y = t(P, m, a)).length, B = b.length; 1 == e(y, b, _, B);)\r\n m--, r(y, S < _ ? A : P, _, a), _ = y.length, u = 1;\r\n else\r\n 0 == m && (u = m = 1), _ = (y = P.slice()).length;\r\n if (_ < B && (y = [0].concat(y)), r(b, y, B, a), B = b.length, -1 == u)\r\n for (; e(P, b, S, B) < 1;)\r\n m++, r(b, S < B ? A : P, B, a), B = b.length;\r\n }\r\n else\r\n 0 === u && (m++, b = [0]);\r\n w[p++] = m, b[0] ? b[B++] = T[N] || 0 : (b = [T[N]], B = 1);\r\n } while ((N++ < k || null != b[0]) && O--);\r\n d = null != b[0], w[0] || w.splice(0, 1);\r\n } if (a == h) {\r\n for (p = 1, O = w[0]; O >= 10; O /= 10, p++)\r\n ;\r\n V(v, i + (v.e = p + l * f - 1) + 1, s, d);\r\n }\r\n else\r\n v.e = l, v.r = +d; return v; }; }(), k = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i, x = /^([^.]+)\\.$/, S = /^\\.([^.]+)$/, A = /^-?(Infinity|NaN)$/, O = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g, o = function (t, e, r, n) { var o, i = r ? e : e.replace(O, \"\"); if (A.test(i))\r\n t.s = isNaN(i) ? null : i < 0 ? -1 : 1, t.c = t.e = null;\r\n else {\r\n if (!r && (i = i.replace(k, function (t, e, r) { return o = \"x\" == (r = r.toLowerCase()) ? 16 : \"b\" == r ? 2 : 8, n && n != o ? t : e; }), n && (o = n, i = i.replace(x, \"$1\").replace(S, \"0.$1\")), e != i))\r\n return new W(i, o);\r\n if (W.DEBUG)\r\n throw Error(u + \"Not a\" + (n ? \" base \" + n : \"\") + \" number: \" + e);\r\n t.c = t.e = t.s = null;\r\n } }, T.absoluteValue = T.abs = function () { var t = new W(this); return t.s < 0 && (t.s = 1), t; }, T.comparedTo = function (t, e) { return v(this, new W(t, e)); }, T.decimalPlaces = T.dp = function (t, e) { var r, n, o, i = this; if (null != t)\r\n return w(t, 0, y), null == e ? e = C : w(e, 0, 8), V(new W(i), t + i.e + 1, e); if (!(r = i.c))\r\n return null; if (n = ((o = r.length - 1) - g(this.e / f)) * f, o = r[o])\r\n for (; o % 10 == 0; o /= 10, n--)\r\n ; return n < 0 && (n = 0), n; }, T.dividedBy = T.div = function (t, e) { return r(this, new W(t, e), M, C); }, T.dividedToIntegerBy = T.idiv = function (t, e) { return r(this, new W(t, e), 0, 1); }, T.exponentiatedBy = T.pow = function (t, e) { var r, n, o, i, s, l, h, p = this; if ((t = new W(t)).c && !t.isInteger())\r\n throw Error(u + \"Exponent not an integer: \" + t); if (null != e && (e = new W(e)), i = t.e > 14, !p.c || !p.c[0] || 1 == p.c[0] && !p.e && 1 == p.c.length || !t.c || !t.c[0])\r\n return h = new W(Math.pow(+p.valueOf(), i ? 2 - B(t) : +t)), e ? h.mod(e) : h; if (s = t.s < 0, e) {\r\n if (e.c ? !e.c[0] : !e.s)\r\n return new W(NaN);\r\n (n = !s && p.isInteger() && e.isInteger()) && (p = p.mod(e));\r\n }\r\n else {\r\n if (t.e > 9 && (p.e > 0 || p.e < -1 || (0 == p.e ? p.c[0] > 1 || i && p.c[1] >= 24e7 : p.c[0] < 8e13 || i && p.c[0] <= 9999975e7)))\r\n return o = p.s < 0 && B(t) ? -0 : 0, p.e > -1 && (o = 1 / o), new W(s ? 1 / o : o);\r\n U && (o = a(U / f + 2));\r\n } for (i ? (r = new W(.5), l = B(t)) : l = t % 2, s && (t.s = 1), h = new W(P);;) {\r\n if (l) {\r\n if (!(h = h.times(p)).c)\r\n break;\r\n o ? h.c.length > o && (h.c.length = o) : n && (h = h.mod(e));\r\n }\r\n if (i) {\r\n if (V(t = t.times(r), t.e + 1, 1), !t.c[0])\r\n break;\r\n i = t.e > 14, l = B(t);\r\n }\r\n else {\r\n if (!(t = c(t / 2)))\r\n break;\r\n l = t % 2;\r\n }\r\n p = p.times(p), o ? p.c && p.c.length > o && (p.c.length = o) : n && (p = p.mod(e));\r\n } return n ? h : (s && (h = P.div(h)), e ? h.mod(e) : o ? V(h, U, C, void 0) : h); }, T.integerValue = function (t) { var e = new W(this); return null == t ? t = C : w(t, 0, 8), V(e, e.e + 1, t); }, T.isEqualTo = T.eq = function (t, e) { return 0 === v(this, new W(t, e)); }, T.isFinite = function () { return !!this.c; }, T.isGreaterThan = T.gt = function (t, e) { return v(this, new W(t, e)) > 0; }, T.isGreaterThanOrEqualTo = T.gte = function (t, e) { return 1 === (e = v(this, new W(t, e))) || 0 === e; }, T.isInteger = function () { return !!this.c && g(this.e / f) > this.c.length - 2; }, T.isLessThan = T.lt = function (t, e) { return v(this, new W(t, e)) < 0; }, T.isLessThanOrEqualTo = T.lte = function (t, e) { return -1 === (e = v(this, new W(t, e))) || 0 === e; }, T.isNaN = function () { return !this.s; }, T.isNegative = function () { return this.s < 0; }, T.isPositive = function () { return this.s > 0; }, T.isZero = function () { return !!this.c && 0 == this.c[0]; }, T.minus = function (t, e) { var r, n, o, i, s = this, a = s.s; if (e = (t = new W(t, e)).s, !a || !e)\r\n return new W(NaN); if (a != e)\r\n return t.s = -e, s.plus(t); var c = s.e / f, u = t.e / f, l = s.c, p = t.c; if (!c || !u) {\r\n if (!l || !p)\r\n return l ? (t.s = -e, t) : new W(p ? s : NaN);\r\n if (!l[0] || !p[0])\r\n return p[0] ? (t.s = -e, t) : new W(l[0] ? s : 3 == C ? -0 : 0);\r\n } if (c = g(c), u = g(u), l = l.slice(), a = c - u) {\r\n for ((i = a < 0) ? (a = -a, o = l) : (u = c, o = p), o.reverse(), e = a; e--; o.push(0))\r\n ;\r\n o.reverse();\r\n }\r\n else\r\n for (n = (i = (a = l.length) < (e = p.length)) ? a : e, a = e = 0; e < n; e++)\r\n if (l[e] != p[e]) {\r\n i = l[e] < p[e];\r\n break;\r\n } if (i && (o = l, l = p, p = o, t.s = -t.s), (e = (n = p.length) - (r = l.length)) > 0)\r\n for (; e--; l[r++] = 0)\r\n ; for (e = h - 1; n > a;) {\r\n if (l[--n] < p[n]) {\r\n for (r = n; r && !l[--r]; l[r] = e)\r\n ;\r\n --l[r], l[n] += h;\r\n }\r\n l[n] -= p[n];\r\n } for (; 0 == l[0]; l.splice(0, 1), --u)\r\n ; return l[0] ? G(t, l, u) : (t.s = 3 == C ? -1 : 1, t.c = [t.e = 0], t); }, T.modulo = T.mod = function (t, e) { var n, o, i = this; return t = new W(t, e), !i.c || !t.s || t.c && !t.c[0] ? new W(NaN) : !t.c || i.c && !i.c[0] ? new W(i) : (9 == j ? (o = t.s, t.s = 1, n = r(i, t, 0, 3), t.s = o, n.s *= o) : n = r(i, t, 0, j), (t = i.minus(n.times(t))).c[0] || 1 != j || (t.s = i.s), t); }, T.multipliedBy = T.times = function (t, e) { var r, n, o, i, s, a, c, u, l, p, d, y, _, v, w, b = this, B = b.c, F = (t = new W(t, e)).c; if (!(B && F && B[0] && F[0]))\r\n return !b.s || !t.s || B && !B[0] && !F || F && !F[0] && !B ? t.c = t.e = t.s = null : (t.s *= b.s, B && F ? (t.c = [0], t.e = 0) : t.c = t.e = null), t; for (n = g(b.e / f) + g(t.e / f), t.s *= b.s, (c = B.length) < (p = F.length) && (_ = B, B = F, F = _, o = c, c = p, p = o), o = c + p, _ = []; o--; _.push(0))\r\n ; for (v = h, w = m, o = p; --o >= 0;) {\r\n for (r = 0, d = F[o] % w, y = F[o] / w | 0, i = o + (s = c); i > o;)\r\n r = ((u = d * (u = B[--s] % w) + (a = y * u + (l = B[s] / w | 0) * d) % w * w + _[i] + r) / v | 0) + (a / w | 0) + y * l, _[i--] = u % v;\r\n _[i] = r;\r\n } return r ? ++n : _.splice(0, 1), G(t, _, n); }, T.negated = function () { var t = new W(this); return t.s = -t.s || null, t; }, T.plus = function (t, e) { var r, n = this, o = n.s; if (e = (t = new W(t, e)).s, !o || !e)\r\n return new W(NaN); if (o != e)\r\n return t.s = -e, n.minus(t); var i = n.e / f, s = t.e / f, a = n.c, c = t.c; if (!i || !s) {\r\n if (!a || !c)\r\n return new W(o / 0);\r\n if (!a[0] || !c[0])\r\n return c[0] ? t : new W(a[0] ? n : 0 * o);\r\n } if (i = g(i), s = g(s), a = a.slice(), o = i - s) {\r\n for (o > 0 ? (s = i, r = c) : (o = -o, r = a), r.reverse(); o--; r.push(0))\r\n ;\r\n r.reverse();\r\n } for ((o = a.length) - (e = c.length) < 0 && (r = c, c = a, a = r, e = o), o = 0; e;)\r\n o = (a[--e] = a[e] + c[e] + o) / h | 0, a[e] = h === a[e] ? 0 : a[e] % h; return o && (a = [o].concat(a), ++s), G(t, a, s); }, T.precision = T.sd = function (t, e) { var r, n, o, i = this; if (null != t && t !== !!t)\r\n return w(t, 1, y), null == e ? e = C : w(e, 0, 8), V(new W(i), t, e); if (!(r = i.c))\r\n return null; if (n = (o = r.length - 1) * f + 1, o = r[o]) {\r\n for (; o % 10 == 0; o /= 10, n--)\r\n ;\r\n for (o = r[0]; o >= 10; o /= 10, n++)\r\n ;\r\n } return t && i.e + 1 > n && (n = i.e + 1), n; }, T.shiftedBy = function (t) { return w(t, -p, p), this.times(\"1e\" + t); }, T.squareRoot = T.sqrt = function () { var t, e, n, o, i, s = this, a = s.c, c = s.s, u = s.e, l = M + 4, h = new W(\"0.5\"); if (1 !== c || !a || !a[0])\r\n return new W(!c || c < 0 && (!a || a[0]) ? NaN : a ? s : 1 / 0); if (0 == (c = Math.sqrt(+s)) || c == 1 / 0 ? (((e = _(a)).length + u) % 2 == 0 && (e += \"0\"), c = Math.sqrt(e), u = g((u + 1) / 2) - (u < 0 || u % 2), n = new W(e = c == 1 / 0 ? \"1e\" + u : (e = c.toExponential()).slice(0, e.indexOf(\"e\") + 1) + u)) : n = new W(c + \"\"), n.c[0])\r\n for ((c = (u = n.e) + l) < 3 && (c = 0);;)\r\n if (i = n, n = h.times(i.plus(r(s, i, l, 1))), _(i.c).slice(0, c) === (e = _(n.c)).slice(0, c)) {\r\n if (n.e < u && --c, \"9999\" != (e = e.slice(c - 3, c + 1)) && (o || \"4999\" != e)) {\r\n +e && (+e.slice(1) || \"5\" != e.charAt(0)) || (V(n, n.e + M + 2, 1), t = !n.times(n).eq(s));\r\n break;\r\n }\r\n if (!o && (V(i, i.e + M + 2, 0), i.times(i).eq(s))) {\r\n n = i;\r\n break;\r\n }\r\n l += 4, c += 4, o = 1;\r\n } return V(n, n.e + M + 1, C, t); }, T.toExponential = function (t, e) { return null != t && (w(t, 0, y), t++), q(this, t, e, 1); }, T.toFixed = function (t, e) { return null != t && (w(t, 0, y), t = t + this.e + 1), q(this, t, e); }, T.toFormat = function (t, e) { var r = this.toFixed(t, e); if (this.c) {\r\n var n, o = r.split(\".\"), i = +L.groupSize, s = +L.secondaryGroupSize, a = L.groupSeparator, c = o[0], u = o[1], l = this.s < 0, h = l ? c.slice(1) : c, f = h.length;\r\n if (s && (n = i, i = s, s = n, f -= n), i > 0 && f > 0) {\r\n for (n = f % i || i, c = h.substr(0, n); n < f; n += i)\r\n c += a + h.substr(n, i);\r\n s > 0 && (c += a + h.slice(n)), l && (c = \"-\" + c);\r\n }\r\n r = u ? c + L.decimalSeparator + ((s = +L.fractionGroupSize) ? u.replace(new RegExp(\"\\\\d{\" + s + \"}\\\\B\", \"g\"), \"$&\" + L.fractionGroupSeparator) : u) : c;\r\n } return r; }, T.toFraction = function (t) { var e, n, o, i, s, a, c, l, h, p, m, y, g = this, v = g.c; if (null != t && (!(l = new W(t)).isInteger() && (l.c || 1 !== l.s) || l.lt(P)))\r\n throw Error(u + \"Argument \" + (l.isInteger() ? \"out of range: \" : \"not an integer: \") + t); if (!v)\r\n return g.toString(); for (n = new W(P), p = o = new W(P), i = h = new W(P), y = _(v), a = n.e = y.length - g.e - 1, n.c[0] = d[(c = a % f) < 0 ? f + c : c], t = !t || l.comparedTo(n) > 0 ? a > 0 ? n : p : l, c = I, I = 1 / 0, l = new W(y), h.c[0] = 0; m = r(l, n, 0, 1), 1 != (s = o.plus(m.times(i))).comparedTo(t);)\r\n o = i, i = s, p = h.plus(m.times(s = p)), h = s, n = l.minus(m.times(s = n)), l = s; return s = r(t.minus(o), i, 0, 1), h = h.plus(s.times(p)), o = o.plus(s.times(i)), h.s = p.s = g.s, e = r(p, i, a *= 2, C).minus(g).abs().comparedTo(r(h, o, a, C).minus(g).abs()) < 1 ? [p.toString(), i.toString()] : [h.toString(), o.toString()], I = c, e; }, T.toNumber = function () { return +this; }, T.toPrecision = function (t, e) { return null != t && w(t, 1, y), q(this, t, e, 2); }, T.toString = function (t) { var e, r = this, o = r.s, i = r.e; return null === i ? o ? (e = \"Infinity\", o < 0 && (e = \"-\" + e)) : e = \"NaN\" : (e = _(r.c), null == t ? e = i <= E || i >= D ? F(e, i) : N(e, i, \"0\") : (w(t, 2, z.length, \"Base\"), e = n(N(e, i, \"0\"), 10, t, o, !0)), o < 0 && r.c[0] && (e = \"-\" + e)), e; }, T.valueOf = T.toJSON = function () { var t, e = this, r = e.e; return null === r ? e.toString() : (t = _(e.c), t = r <= E || r >= D ? F(t, r) : N(t, r, \"0\"), e.s < 0 ? \"-\" + t : t); }, T._isBigNumber = !0, null != e && W.set(e), W; }()).default = i.BigNumber = i, void 0 === (n = function () { return i; }.call(e, r, e, t)) || (t.exports = n);\r\n }(); }, function (t, e, r) { var n; t.exports = (n = r(0), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = [], c = []; !function () { function e(e) { for (var r = t.sqrt(e), n = 2; n <= r; n++)\r\n if (!(e % n))\r\n return !1; return !0; } function r(t) { return 4294967296 * (t - (0 | t)) | 0; } for (var n = 2, o = 0; o < 64;)\r\n e(n) && (o < 8 && (a[o] = r(t.pow(n, .5))), c[o] = r(t.pow(n, 1 / 3)), o++), n++; }(); var u = [], l = s.SHA256 = i.extend({ _doReset: function () { this._hash = new o.init(a.slice(0)); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], l = r[5], h = r[6], f = r[7], p = 0; p < 64; p++) {\r\n if (p < 16)\r\n u[p] = 0 | t[e + p];\r\n else {\r\n var d = u[p - 15], m = (d << 25 | d >>> 7) ^ (d << 14 | d >>> 18) ^ d >>> 3, y = u[p - 2], g = (y << 15 | y >>> 17) ^ (y << 13 | y >>> 19) ^ y >>> 10;\r\n u[p] = m + u[p - 7] + g + u[p - 16];\r\n }\r\n var _ = n & o ^ n & i ^ o & i, v = (n << 30 | n >>> 2) ^ (n << 19 | n >>> 13) ^ (n << 10 | n >>> 22), w = f + ((a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25)) + (a & l ^ ~a & h) + c[p] + u[p];\r\n f = h, h = l, l = a, a = s + w | 0, s = i, i = o, o = n, n = w + (v + _) | 0;\r\n } r[0] = r[0] + n | 0, r[1] = r[1] + o | 0, r[2] = r[2] + i | 0, r[3] = r[3] + s | 0, r[4] = r[4] + a | 0, r[5] = r[5] + l | 0, r[6] = r[6] + h | 0, r[7] = r[7] + f | 0; }, _doFinalize: function () { var e = this._data, r = e.words, n = 8 * this._nDataBytes, o = 8 * e.sigBytes; return r[o >>> 5] |= 128 << 24 - o % 32, r[14 + (o + 64 >>> 9 << 4)] = t.floor(n / 4294967296), r[15 + (o + 64 >>> 9 << 4)] = n, e.sigBytes = 4 * r.length, this._process(), this._hash; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); e.SHA256 = i._createHelper(l), e.HmacSHA256 = i._createHmacHelper(l); }(Math), n.SHA256); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), function () { var t = n, e = t.lib.Hasher, r = t.x64, o = r.Word, i = r.WordArray, s = t.algo; function a() { return o.create.apply(o, arguments); } var c = [a(1116352408, 3609767458), a(1899447441, 602891725), a(3049323471, 3964484399), a(3921009573, 2173295548), a(961987163, 4081628472), a(1508970993, 3053834265), a(2453635748, 2937671579), a(2870763221, 3664609560), a(3624381080, 2734883394), a(310598401, 1164996542), a(607225278, 1323610764), a(1426881987, 3590304994), a(1925078388, 4068182383), a(2162078206, 991336113), a(2614888103, 633803317), a(3248222580, 3479774868), a(3835390401, 2666613458), a(4022224774, 944711139), a(264347078, 2341262773), a(604807628, 2007800933), a(770255983, 1495990901), a(1249150122, 1856431235), a(1555081692, 3175218132), a(1996064986, 2198950837), a(2554220882, 3999719339), a(2821834349, 766784016), a(2952996808, 2566594879), a(3210313671, 3203337956), a(3336571891, 1034457026), a(3584528711, 2466948901), a(113926993, 3758326383), a(338241895, 168717936), a(666307205, 1188179964), a(773529912, 1546045734), a(1294757372, 1522805485), a(1396182291, 2643833823), a(1695183700, 2343527390), a(1986661051, 1014477480), a(2177026350, 1206759142), a(2456956037, 344077627), a(2730485921, 1290863460), a(2820302411, 3158454273), a(3259730800, 3505952657), a(3345764771, 106217008), a(3516065817, 3606008344), a(3600352804, 1432725776), a(4094571909, 1467031594), a(275423344, 851169720), a(430227734, 3100823752), a(506948616, 1363258195), a(659060556, 3750685593), a(883997877, 3785050280), a(958139571, 3318307427), a(1322822218, 3812723403), a(1537002063, 2003034995), a(1747873779, 3602036899), a(1955562222, 1575990012), a(2024104815, 1125592928), a(2227730452, 2716904306), a(2361852424, 442776044), a(2428436474, 593698344), a(2756734187, 3733110249), a(3204031479, 2999351573), a(3329325298, 3815920427), a(3391569614, 3928383900), a(3515267271, 566280711), a(3940187606, 3454069534), a(4118630271, 4000239992), a(116418474, 1914138554), a(174292421, 2731055270), a(289380356, 3203993006), a(460393269, 320620315), a(685471733, 587496836), a(852142971, 1086792851), a(1017036298, 365543100), a(1126000580, 2618297676), a(1288033470, 3409855158), a(1501505948, 4234509866), a(1607167915, 987167468), a(1816402316, 1246189591)], u = []; !function () { for (var t = 0; t < 80; t++)\r\n u[t] = a(); }(); var l = s.SHA512 = e.extend({ _doReset: function () { this._hash = new i.init([new o.init(1779033703, 4089235720), new o.init(3144134277, 2227873595), new o.init(1013904242, 4271175723), new o.init(2773480762, 1595750129), new o.init(1359893119, 2917565137), new o.init(2600822924, 725511199), new o.init(528734635, 4215389547), new o.init(1541459225, 327033209)]); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], l = r[5], h = r[6], f = r[7], p = n.high, d = n.low, m = o.high, y = o.low, g = i.high, _ = i.low, v = s.high, w = s.low, b = a.high, B = a.low, F = l.high, N = l.low, k = h.high, x = h.low, S = f.high, A = f.low, O = p, T = d, P = m, M = y, C = g, E = _, D = v, R = w, I = b, H = B, j = F, U = N, L = k, z = x, W = S, q = A, $ = 0; $ < 80; $++) {\r\n var G = u[$];\r\n if ($ < 16)\r\n var V = G.high = 0 | t[e + 2 * $], J = G.low = 0 | t[e + 2 * $ + 1];\r\n else {\r\n var K = u[$ - 15], X = K.high, Z = K.low, Y = (X >>> 1 | Z << 31) ^ (X >>> 8 | Z << 24) ^ X >>> 7, Q = (Z >>> 1 | X << 31) ^ (Z >>> 8 | X << 24) ^ (Z >>> 7 | X << 25), tt = u[$ - 2], et = tt.high, rt = tt.low, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ et >>> 6, ot = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ (rt >>> 6 | et << 26), it = u[$ - 7], st = it.high, at = it.low, ct = u[$ - 16], ut = ct.high, lt = ct.low;\r\n V = (V = (V = Y + st + ((J = Q + at) >>> 0 < Q >>> 0 ? 1 : 0)) + nt + ((J += ot) >>> 0 < ot >>> 0 ? 1 : 0)) + ut + ((J += lt) >>> 0 < lt >>> 0 ? 1 : 0), G.high = V, G.low = J;\r\n }\r\n var ht, ft = I & j ^ ~I & L, pt = H & U ^ ~H & z, dt = O & P ^ O & C ^ P & C, mt = T & M ^ T & E ^ M & E, yt = (O >>> 28 | T << 4) ^ (O << 30 | T >>> 2) ^ (O << 25 | T >>> 7), gt = (T >>> 28 | O << 4) ^ (T << 30 | O >>> 2) ^ (T << 25 | O >>> 7), _t = (I >>> 14 | H << 18) ^ (I >>> 18 | H << 14) ^ (I << 23 | H >>> 9), vt = (H >>> 14 | I << 18) ^ (H >>> 18 | I << 14) ^ (H << 23 | I >>> 9), wt = c[$], bt = wt.high, Bt = wt.low, Ft = W + _t + ((ht = q + vt) >>> 0 < q >>> 0 ? 1 : 0), Nt = gt + mt;\r\n W = L, q = z, L = j, z = U, j = I, U = H, I = D + (Ft = (Ft = (Ft = Ft + ft + ((ht += pt) >>> 0 < pt >>> 0 ? 1 : 0)) + bt + ((ht += Bt) >>> 0 < Bt >>> 0 ? 1 : 0)) + V + ((ht += J) >>> 0 < J >>> 0 ? 1 : 0)) + ((H = R + ht | 0) >>> 0 < R >>> 0 ? 1 : 0) | 0, D = C, R = E, C = P, E = M, P = O, M = T, O = Ft + (yt + dt + (Nt >>> 0 < gt >>> 0 ? 1 : 0)) + ((T = ht + Nt | 0) >>> 0 < ht >>> 0 ? 1 : 0) | 0;\r\n } d = n.low = d + T, n.high = p + O + (d >>> 0 < T >>> 0 ? 1 : 0), y = o.low = y + M, o.high = m + P + (y >>> 0 < M >>> 0 ? 1 : 0), _ = i.low = _ + E, i.high = g + C + (_ >>> 0 < E >>> 0 ? 1 : 0), w = s.low = w + R, s.high = v + D + (w >>> 0 < R >>> 0 ? 1 : 0), B = a.low = B + H, a.high = b + I + (B >>> 0 < H >>> 0 ? 1 : 0), N = l.low = N + U, l.high = F + j + (N >>> 0 < U >>> 0 ? 1 : 0), x = h.low = x + z, h.high = k + L + (x >>> 0 < z >>> 0 ? 1 : 0), A = f.low = A + q, f.high = S + W + (A >>> 0 < q >>> 0 ? 1 : 0); }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[30 + (n + 128 >>> 10 << 5)] = Math.floor(r / 4294967296), e[31 + (n + 128 >>> 10 << 5)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash.toX32(); }, clone: function () { var t = e.clone.call(this); return t._hash = this._hash.clone(), t; }, blockSize: 32 }); t.SHA512 = e._createHelper(l), t.HmacSHA512 = e._createHmacHelper(l); }(), n.SHA512); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.x64.Word, a = e.algo, c = [], u = [], l = []; !function () { for (var t = 1, e = 0, r = 0; r < 24; r++) {\r\n c[t + 5 * e] = (r + 1) * (r + 2) / 2 % 64;\r\n var n = (2 * t + 3 * e) % 5;\r\n t = e % 5, e = n;\r\n } for (t = 0; t < 5; t++)\r\n for (e = 0; e < 5; e++)\r\n u[t + 5 * e] = e + (2 * t + 3 * e) % 5 * 5; for (var o = 1, i = 0; i < 24; i++) {\r\n for (var a = 0, h = 0, f = 0; f < 7; f++) {\r\n if (1 & o) {\r\n var p = (1 << f) - 1;\r\n p < 32 ? h ^= 1 << p : a ^= 1 << p - 32;\r\n }\r\n 128 & o ? o = o << 1 ^ 113 : o <<= 1;\r\n }\r\n l[i] = s.create(a, h);\r\n } }(); var h = []; !function () { for (var t = 0; t < 25; t++)\r\n h[t] = s.create(); }(); var f = a.SHA3 = i.extend({ cfg: i.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], e = 0; e < 25; e++)\r\n t[e] = new s.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; }, _doProcessBlock: function (t, e) { for (var r = this._state, n = this.blockSize / 2, o = 0; o < n; o++) {\r\n var i = t[e + 2 * o], s = t[e + 2 * o + 1];\r\n i = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), (A = r[o]).high ^= s, A.low ^= i;\r\n } for (var a = 0; a < 24; a++) {\r\n for (var f = 0; f < 5; f++) {\r\n for (var p = 0, d = 0, m = 0; m < 5; m++)\r\n p ^= (A = r[f + 5 * m]).high, d ^= A.low;\r\n var y = h[f];\r\n y.high = p, y.low = d;\r\n }\r\n for (f = 0; f < 5; f++) {\r\n var g = h[(f + 4) % 5], _ = h[(f + 1) % 5], v = _.high, w = _.low;\r\n for (p = g.high ^ (v << 1 | w >>> 31), d = g.low ^ (w << 1 | v >>> 31), m = 0; m < 5; m++)\r\n (A = r[f + 5 * m]).high ^= p, A.low ^= d;\r\n }\r\n for (var b = 1; b < 25; b++) {\r\n var B = (A = r[b]).high, F = A.low, N = c[b];\r\n N < 32 ? (p = B << N | F >>> 32 - N, d = F << N | B >>> 32 - N) : (p = F << N - 32 | B >>> 64 - N, d = B << N - 32 | F >>> 64 - N);\r\n var k = h[u[b]];\r\n k.high = p, k.low = d;\r\n }\r\n var x = h[0], S = r[0];\r\n for (x.high = S.high, x.low = S.low, f = 0; f < 5; f++)\r\n for (m = 0; m < 5; m++) {\r\n var A = r[b = f + 5 * m], O = h[b], T = h[(f + 1) % 5 + 5 * m], P = h[(f + 2) % 5 + 5 * m];\r\n A.high = O.high ^ ~T.high & P.high, A.low = O.low ^ ~T.low & P.low;\r\n }\r\n A = r[0];\r\n var M = l[a];\r\n A.high ^= M.high, A.low ^= M.low;\r\n } }, _doFinalize: function () { var e = this._data, r = e.words, n = (this._nDataBytes, 8 * e.sigBytes), i = 32 * this.blockSize; r[n >>> 5] |= 1 << 24 - n % 32, r[(t.ceil((n + 1) / i) * i >>> 5) - 1] |= 128, e.sigBytes = 4 * r.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, u = [], l = 0; l < c; l++) {\r\n var h = s[l], f = h.high, p = h.low;\r\n f = 16711935 & (f << 8 | f >>> 24) | 4278255360 & (f << 24 | f >>> 8), p = 16711935 & (p << 8 | p >>> 24) | 4278255360 & (p << 24 | p >>> 8), u.push(p), u.push(f);\r\n } return new o.init(u, a); }, clone: function () { for (var t = i.clone.call(this), e = t._state = this._state.slice(0), r = 0; r < 25; r++)\r\n e[r] = e[r].clone(); return t; } }); e.SHA3 = i._createHelper(f), e.HmacSHA3 = i._createHmacHelper(f); }(Math), n.SHA3); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(8), o = r(3), i = r(22), s = r(23);\r\n !function (t) { t.eth_getBalance = new i.Method({ callName: \"eth_getBalance\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: n.outputBigNumberFormatter }), t.eth_getStorageAt = new i.Method({ callName: \"eth_getStorageAt\", params: 3, inputFormatter: [n.inputAddressFormatter, o.toHex, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_getCode = new i.Method({ callName: \"eth_getCode\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_getBlockByHash = new i.Method({ callName: \"eth_getBlockByHash\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, function (t) { return !!t; }], outputFormatter: n.outputBlockFormatter }), t.eth_getBlockByNumber = new i.Method({ callName: \"eth_getBlockByNumber\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, function (t) { return !!t; }], outputFormatter: n.outputBlockFormatter }), t.eth_getUncleByBlockHashAndIndex = new i.Method({ callName: \"eth_getUncleByBlockHashAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputBlockFormatter }), t.eth_getUncleByBlockNumberAndIndex = new i.Method({ callName: \"eth_getUncleByBlockNumberAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputBlockFormatter }), t.eth_getBlockTransactionCountByHash = new i.Method({ callName: \"eth_getBlockTransactionCountByHash\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getBlockTransactionCountByNumber = new i.Method({ callName: \"eth_getBlockTransactionCountByNumber\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getUncleCountByBlockHash = new i.Method({ callName: \"eth_getUncleCountByBlockHash\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getUncleCountByBlockNumber = new i.Method({ callName: \"eth_getUncleCountByBlockNumber\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getTransactionByHash = new i.Method({ callName: \"eth_getTransactionByHash\", params: 1, outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionByBlockHashAndIndex = new i.Method({ callName: \"eth_getTransactionByBlockHashAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionByBlockNumberAndIndex = new i.Method({ callName: \"eth_getTransactionByBlockNumberAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionReceipt = new i.Method({ callName: \"eth_getTransactionReceipt\", params: 1, outputFormatter: n.outputTransactionReceiptFormatter }), t.eth_getTransactionCount = new i.Method({ callName: \"eth_getTransactionCount\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_sendRawTransaction = new i.Method({ callName: \"eth_sendRawTransaction\", params: 1, inputFormatter: [null], outputFormatter: o.toData }), t.web3_sha3 = new i.Method({ callName: \"web3_sha3\", params: 1, inputFormatter: [null], outputFormatter: o.toData }), t.eth_sendTransaction = new i.Method({ callName: \"eth_sendTransaction\", params: 1, inputFormatter: [n.inputTransactionFormatter], outputFormatter: o.toData }), t.eth_sign = new i.Method({ callName: \"eth_sign\", params: 2, inputFormatter: [n.inputAddressFormatter, null], outputFormatter: o.toData }), t.eth_call = new i.Method({ callName: \"eth_call\", params: 2, inputFormatter: [n.inputCallFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_estimateGas = new i.Method({ callName: \"eth_estimateGas\", params: 1, inputFormatter: [n.inputCallFormatter], outputFormatter: o.toDecimal }), t.eth_submitWork = new i.Method({ callName: \"eth_submitWork\", params: 3, outputFormatter: o.toBoolean }), t.eth_getWork = new i.Method({ callName: \"eth_getWork\", params: 1, outputFormatter: o.toArray }), t.eth_coinbase = new s.Property({ getter: \"eth_coinbase\", outputFormatter: o.toAddress }), t.eth_mining = new s.Property({ getter: \"eth_mining\", outputFormatter: o.toBoolean }), t.eth_hashrate = new s.Property({ getter: \"eth_hashrate\", outputFormatter: o.toDecimal }), t.eth_syncing = new s.Property({ getter: \"eth_syncing\", outputFormatter: n.outputSyncingFormatter }), t.eth_gasPrice = new s.Property({ getter: \"eth_gasPrice\", outputFormatter: n.outputBigNumberFormatter }), t.eth_accounts = new s.Property({ getter: \"eth_accounts\", outputFormatter: o.toArray }), t.eth_blockNumber = new s.Property({ getter: \"eth_blockNumber\", outputFormatter: o.toDecimal }), t.eth_protocolVersion = new s.Property({ getter: \"eth_protocolVersion\", outputFormatter: o.toDecimal }), t.web3_clientVersion = new s.Property({ getter: \"web3_clientVersion\", outputFormatter: o.toString }), t.net_version = new s.Property({ getter: \"net_version\", outputFormatter: o.toString }), t.shh_version = new i.Method({ callName: \"shh_version\", params: 0, outputFormatter: o.toDecimal }), t.shh_post = new i.Method({ callName: \"shh_post\", params: 1, inputFormatter: [null], outputFormatter: o.toBoolean }), t.personal_newAccount = new i.Method({ callName: \"personal_newAccount\", params: 1, inputFormatter: [null], outputFormatter: o.toAddress }), t.personal_importRawKey = new i.Method({ callName: \"personal_importRawKey\", params: 2, outputFormatter: o.toAddress }), t.personal_sign = new i.Method({ callName: \"personal_sign\", params: 3, inputFormatter: [null, n.inputAddressFormatter, null], outputFormatter: o.toData }), t.personal_ecRecover = new i.Method({ callName: \"personal_ecRecover\", params: 2, outputFormatter: o.toAddress }), t.personal_unlockAccount = new i.Method({ callName: \"personal_unlockAccount\", params: 3, inputFormatter: [n.inputAddressFormatter, null, o.toNullDecimal], outputFormatter: o.toBoolean }), t.personal_sendTransaction = new i.Method({ callName: \"personal_sendTransaction\", params: 2, inputFormatter: [n.inputTransactionFormatter, null], outputFormatter: o.toData }), t.personal_lockAccount = new i.Method({ callName: \"personal_lockAccount\", params: 1, inputFormatter: [n.inputAddressFormatter], outputFormatter: o.toBoolean }), t.personal_listAccounts = new s.Property({ getter: \"personal_listAccounts\", outputFormatter: o.toArray }), t.net_listening = new s.Property({ getter: \"net_listening\", outputFormatter: o.toBoolean }), t.net_peerCount = new s.Property({ getter: \"net_peerCount\", outputFormatter: o.toDecimal }), t.eth_newFilter = new i.Method({ callName: \"eth_newFilter\", params: 1, outputFormatter: o.toHex }), t.eth_getLogs = new i.Method({ callName: \"eth_getLogs\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_newBlockFilter = new i.Method({ callName: \"eth_newBlockFilter\", params: 0, outputFormatter: o.toHex }), t.eth_newPendingTransactionFilter = new i.Method({ callName: \"eth_newPendingTransactionFilter\", params: 0, outputFormatter: o.toHex }), t.eth_uninstallFilter = new i.Method({ callName: \"eth_uninstallFilter\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toBoolean }), t.eth_getFilterLogs = new i.Method({ callName: \"eth_getFilterLogs\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_getFilterChanges = new i.Method({ callName: \"eth_getFilterChanges\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_submitHashrate = new i.Method({ callName: \"eth_submitHashrate\", params: 2, outputFormatter: o.toBoolean }), t.shh_newIdentity = new i.Method({ callName: \"shh_newIdentity\", params: 0, outputFormatter: o.toData }), t.shh_hasIdentity = new i.Method({ callName: \"shh_hasIdentity\", params: 1, outputFormatter: o.toBoolean }), t.shh_newGroup = new i.Method({ callName: \"shh_newGroup\", params: 0, outputFormatter: o.toData }), t.shh_addToGroup = new i.Method({ callName: \"shh_addToGroup\", params: 1, outputFormatter: o.toBoolean }), t.shh_newFilter = new i.Method({ callName: \"shh_newFilter\", params: 1, outputFormatter: o.toHex }), t.shh_uninstallFilter = new i.Method({ callName: \"shh_uninstallFilter\", params: 1, outputFormatter: o.toBoolean }), t.shh_getLogs = new i.Method({ callName: \"shh_getLogs\", params: 1, outputFormatter: o.toArray }), t.shh_getFilterMessages = new i.Method({ callName: \"shh_getFilterMessages\", params: 1, outputFormatter: o.toArray }), t.shh_getFilterChanges = new i.Method({ callName: \"shh_getFilterChanges\", params: 1, outputFormatter: o.toArray }), t.shh_getMessages = new i.Method({ callName: \"shh_getMessages\", params: 1, outputFormatter: o.toArray }); }(e.eth || (e.eth = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(13);\r\n e.Method = /** @class */ (function () {\r\n function class_1(t) {\r\n this.callName = t.callName, this.params = t.params || 0, this.inputFormatter = t.inputFormatter || null, this.outputFormatter = t.outputFormatter, this.requestManager = null;\r\n }\r\n class_1.prototype.validateArgs = function (t) { if (t.length !== this.params)\r\n throw n.InvalidNumberOfRPCParams(this.callName, t.length, this.params); };\r\n class_1.prototype.formatInput = function (t) { return this.inputFormatter ? this.inputFormatter.map(function (e, r) { return e ? e(t[r]) : t[r]; }) : t; };\r\n class_1.prototype.formatOutput = function (t) { return null !== t ? this.outputFormatter(t) : null; };\r\n class_1.prototype.toPayload = function (t) { var e = this.formatInput(t); return this.validateArgs(e), { method: this.callName, params: e }; };\r\n class_1.prototype.execute = function (t) {\r\n var e = [];\r\n for (var _a = 1; _a < arguments.length; _a++) {\r\n e[_a - 1] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var r, n; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n r = this.toPayload(e);\r\n if (!t)\r\n throw new Error(\"Missing RequestManager in method#exec\");\r\n return [4 /*yield*/, t.sendAsync(r)];\r\n case 1:\r\n n = _c.sent();\r\n return [2 /*return*/, this.formatOutput(n)];\r\n }\r\n }); });\r\n };\r\n return class_1;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n e.Property = /** @class */ (function () {\r\n function class_2(t) {\r\n this.getter = t.getter, this.outputFormatter = t.outputFormatter;\r\n }\r\n class_2.prototype.formatOutput = function (t) { return this.outputFormatter(t); };\r\n class_2.prototype.execute = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, t.sendAsync({ method: this.getter, params: [] })];\r\n case 1:\r\n e = _a.sent();\r\n return [2 /*return*/, this.formatOutput(e)];\r\n }\r\n }); });\r\n };\r\n return class_2;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(60), o = r(26), i = r(70);\r\n e.Contract = /** @class */ (function () {\r\n function Contract(t, e, r) {\r\n var s;\r\n this.requestManager = t, this.abi = e, this.address = r, this.events = {}, this.transactionHash = null, this.transactionHash = null, this.address = r, this.abi = e, (s = this).abi.filter(function (t) { return \"function\" === t.type; }).map(function (t) { return new n.SolidityFunction(s.requestManager, t, s.address); }).forEach(function (t) { t.attachToContract(s); }), function (t) { var e = t.abi.filter(function (t) { return \"event\" === t.type; }); new i.AllSolidityEvents(t.requestManager, e, t.address).attachToContract(t), e.map(function (e) { return new o.SolidityEvent(t.requestManager, e, t.address); }).forEach(function (e) { e.attachToContract(t); }); }(this);\r\n }\r\n return Contract;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3);\r\n e.SolidityParam = /** @class */ (function () {\r\n function SolidityParam(t, e) {\r\n this.offset = void 0, this.value = t || \"\", this.offset = e;\r\n }\r\n SolidityParam.prototype.isDynamic = function () { return void 0 !== this.offset; };\r\n SolidityParam.prototype.offsetAsBytes = function () { return this.isDynamic() ? n.padLeft(n.toTwosComplement(this.offset).toString(16), 64) : \"\"; };\r\n SolidityParam.prototype.staticPart = function () { return this.isDynamic() ? this.offsetAsBytes() : this.value; };\r\n SolidityParam.prototype.dynamicPart = function () { return this.isDynamic() ? this.value : \"\"; };\r\n SolidityParam.prototype.encode = function () { return this.staticPart() + this.dynamicPart(); };\r\n return SolidityParam;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(15), s = r(27);\r\n e.SolidityEvent = /** @class */ (function () {\r\n function class_3(t, e, r) {\r\n this.requestManager = t, this.address = r, this._anonymous = !1, this._params = e.inputs, this._name = n.transformToFullName(e), this._anonymous = e.anonymous;\r\n }\r\n class_3.prototype.types = function (t) { return this._params.filter(function (e) { return e.indexed === t; }).map(function (t) { return t.type; }); };\r\n class_3.prototype.displayName = function () { return n.extractDisplayName(this._name); };\r\n class_3.prototype.typeName = function () { return n.extractTypeName(this._name) || \"void\"; };\r\n class_3.prototype.signature = function () { return n.sha3(this._name); };\r\n class_3.prototype.encode = function (t, e) {\r\n if (t === void 0) { t = {}; }\r\n if (e === void 0) { e = {}; }\r\n var r = { topics: [], address: this.address };\r\n [\"fromBlock\", \"toBlock\"].filter(function (t) { return void 0 !== e[t]; }).forEach(function (t) { r[t] = o.inputBlockNumberFormatter(e[t]); }), this._anonymous || r.topics.push(\"0x\" + this.signature());\r\n var s = this._params.filter(function (t) { return !0 === t.indexed; }).map(function (e) { var r = t[e.name]; return null == r ? null : n.isArray(r) ? r.map(function (t) { return \"0x\" + i.coder.encodeParam(e.type, t); }) : \"0x\" + i.coder.encodeParam(e.type, r); });\r\n return r.topics = r.topics.concat(s), r;\r\n };\r\n class_3.prototype.decode = function (t) { t.data = t.data || \"\", t.topics = t.topics || []; var e = (this._anonymous ? t.topics : t.topics.slice(1)).map(function (t) { return t.slice(2); }).join(\"\"), r = i.coder.decodeParams(this.types(!0), e), n = t.data.slice(2), s = i.coder.decodeParams(this.types(!1), n), a = o.outputLogFormatter(t); return a.event = this.displayName(), a.address = t.address, a.args = this._params.reduce(function (t, e) { return t[e.name] = e.indexed ? r.shift() : s.shift(), t; }, {}), delete a.data, delete a.topics, a; };\r\n class_3.prototype.execute = function (t, e) {\r\n return __awaiter(this, void 0, void 0, function () { var r, n; return __generator(this, function (_a) {\r\n r = this.encode(t, e), n = this.decode.bind(this);\r\n return [2 /*return*/, new s.EthFilter(this.requestManager, r, n)];\r\n }); });\r\n };\r\n class_3.prototype.attachToContract = function (t) { var e = this.execute.bind(this), r = this.displayName(); t.events[r] || (t.events[r] = e), t.events[r][this.typeName()] = this.execute.bind(this, t); };\r\n return class_3;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(14), s = r(9);\r\n function a(t) { if (null == t)\r\n return null; var e = String(t).toString(); return 0 === e.indexOf(\"0x\") ? e : n.fromUtf8(e); }\r\n var c = /** @class */ (function () {\r\n function c(t) {\r\n this.requestManager = t, this.isStarted = !1, this.isDisposed = !1, this.filterId = s.future(), this.callbacks = [], this.stopSemaphore = s.future();\r\n }\r\n c.prototype.watch = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var _a, _c; return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (this.isDisposed)\r\n throw new Error(\"The filter was disposed\");\r\n _a = t;\r\n if (!_a) return [3 /*break*/, 3];\r\n this.callbacks.push(t);\r\n _c = this.isStarted;\r\n if (_c) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.start()];\r\n case 1:\r\n _c = (_d.sent());\r\n _d.label = 2;\r\n case 2:\r\n _a = (_c);\r\n _d.label = 3;\r\n case 3:\r\n _a;\r\n return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.start = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t_10, t_9; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (this.isDisposed)\r\n throw new Error(\"The filter was disposed\");\r\n if (!!this.isStarted) return [3 /*break*/, 6];\r\n this.isStarted = !0;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.getNewFilter()];\r\n case 2:\r\n t_10 = _a.sent();\r\n if (!t_10)\r\n throw new Error(\"Could not create a filter, response: \" + JSON.stringify(t_10));\r\n this.filterId.resolve(t_10);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n t_9 = _a.sent();\r\n throw t_9;\r\n case 4:\r\n this.stopSemaphore = s.future();\r\n return [4 /*yield*/, this.poll()];\r\n case 5:\r\n _a.sent();\r\n _a.label = 6;\r\n case 6: return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.stop = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t, _a, _c; return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (!this.isStarted)\r\n return [2 /*return*/];\r\n if (this.isDisposed)\r\n return [2 /*return*/];\r\n this.isDisposed = !0;\r\n return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _d.sent();\r\n this.isStarted = !1;\r\n _a = this.stopSemaphore;\r\n if (!_a) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.stopSemaphore];\r\n case 2:\r\n _a = (_d.sent());\r\n _d.label = 3;\r\n case 3:\r\n _a;\r\n _c = !0;\r\n return [4 /*yield*/, this.uninstall()];\r\n case 4:\r\n if (_c !== (_d.sent()))\r\n throw new Error(\"Couldn't stop the eth filter: \" + t);\r\n return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.poll = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var t_11, t;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.isStarted) return [3 /*break*/, 3];\r\n if (!this.callbacks.length) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.getChanges()];\r\n case 1:\r\n t_11 = _a.sent();\r\n this.callbacks.forEach(function (e) { _this.formatter ? t_11.forEach(function (t) { e(_this.formatter(t)); }) : t_11.forEach(function (t) { return e(t); }); });\r\n _a.label = 2;\r\n case 2:\r\n this.stopSemaphore.resolve(1), this.isStarted && (this.stopSemaphore = s.future(), setTimeout((t = (function () { return _this.poll(); }), function () { t().catch(function (t) { return console.error(t); }); }), i.ETH_POLLING_TIMEOUT));\r\n return [3 /*break*/, 4];\r\n case 3:\r\n this.stopSemaphore.resolve(1);\r\n _a.label = 4;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return c;\r\n }());\r\n e.AbstractFilter = c;\r\n e.SHHFilter = /** @class */ (function (_super) {\r\n __extends(class_4, _super);\r\n function class_4(t, e) {\r\n var _this = this;\r\n _this = _super.call(this, t) || this, _this.requestManager = t, _this.options = e, _this.options = _this.options || { topics: [] }, _this.options.topics = _this.options.topics || [], _this.options.topics = _this.options.topics.map(function (t) { return a(t); }), _this.options = { topics: _this.options.topics, to: _this.options.to };\r\n return _this;\r\n }\r\n class_4.prototype.getMessages = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_getMessages(t)];\r\n }\r\n }); });\r\n };\r\n class_4.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.shh_newFilter(this.options)];\r\n }); });\r\n };\r\n class_4.prototype.getChanges = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_getFilterChanges(t)];\r\n }\r\n }); });\r\n };\r\n class_4.prototype.uninstall = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_uninstallFilter(t)];\r\n }\r\n }); });\r\n };\r\n return class_4;\r\n }(c));\r\n var u = /** @class */ (function (_super) {\r\n __extends(u, _super);\r\n function u(t, e, r) {\r\n if (r === void 0) { r = (function (t) { return t; }); }\r\n var _this = this;\r\n _this = _super.call(this, t) || this, _this.requestManager = t, _this.options = e, _this.formatter = r, _this.options = _this.options || {}, _this.options.topics = _this.options.topics || [], _this.options.topics = _this.options.topics.map(function (t) { return a(t); }), _this.options = { topics: _this.options.topics, address: _this.options.address ? _this.options.address : void 0, fromBlock: \"number\" == typeof _this.options.fromBlock || \"string\" == typeof _this.options.fromBlock ? o.inputBlockNumberFormatter(_this.options.fromBlock) : \"latest\", toBlock: \"number\" == typeof _this.options.toBlock || \"string\" == typeof _this.options.toBlock ? o.inputBlockNumberFormatter(_this.options.toBlock) : \"latest\" };\r\n return _this;\r\n }\r\n u.prototype.getLogs = function () {\r\n return __awaiter(this, void 0, void 0, function () { var _a, t; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _a = this.isStarted;\r\n if (_a) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.start()];\r\n case 1:\r\n _a = (_c.sent());\r\n _c.label = 2;\r\n case 2:\r\n _a;\r\n return [4 /*yield*/, this.filterId];\r\n case 3:\r\n t = _c.sent();\r\n return [2 /*return*/, this.requestManager.eth_getFilterLogs(t)];\r\n }\r\n }); });\r\n };\r\n u.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newFilter(this.options)];\r\n }); });\r\n };\r\n u.prototype.getChanges = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.eth_getFilterChanges(t)];\r\n }\r\n }); });\r\n };\r\n u.prototype.uninstall = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.eth_uninstallFilter(t)];\r\n }\r\n }); });\r\n };\r\n return u;\r\n }(c));\r\n e.EthFilter = u;\r\n e.EthPendingTransactionFilter = /** @class */ (function (_super) {\r\n __extends(class_5, _super);\r\n function class_5(t) {\r\n return _super.call(this, t, null, function (t) { return t; }) || this;\r\n }\r\n class_5.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newPendingTransactionFilter()];\r\n }); });\r\n };\r\n return class_5;\r\n }(u));\r\n e.EthBlockFilter = /** @class */ (function (_super) {\r\n __extends(class_6, _super);\r\n function class_6(t) {\r\n return _super.call(this, t, null, function (t) { return t; }) || this;\r\n }\r\n class_6.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newBlockFilter()];\r\n }); });\r\n };\r\n return class_6;\r\n }(u));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(29);\r\n e.HTTPProvider = n.HTTPProvider;\r\n var o = r(30);\r\n e.WebSocketProvider = o.WebSocketProvider, function (t) { for (var r in t)\r\n e.hasOwnProperty(r) || (e[r] = t[r]); }(r(3));\r\n var i = r(55);\r\n e.RequestManager = i.RequestManager;\r\n var s = r(24);\r\n e.Contract = s.Contract;\r\n var a = r(71);\r\n e.ContractFactory = a.ContractFactory;\r\n var c = r(22);\r\n e.Method = c.Method;\r\n var u = r(23);\r\n e.Property = u.Property;\r\n var l = r(21);\r\n e.eth = l.eth;\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(16);\r\n e.HTTPProvider = /** @class */ (function () {\r\n function class_7(t, e) {\r\n if (e === void 0) { e = {}; }\r\n this.host = t, this.options = e, this.debug = !1, this.host = t || \"http://localhost:8545\";\r\n }\r\n class_7.prototype.send = function () { throw new Error(\"Sync requests are deprecated\"); };\r\n class_7.prototype.sendAsync = function (t, e) {\r\n var _this = this;\r\n try {\r\n var r_3 = null;\r\n if (r_3 = t instanceof Array ? t.map(function (t) { return n.toRPC(t); }) : n.toRPC(t), \"undefined\" == typeof fetch)\r\n throw new Error(\"There is no global fetch object. Please install and import isomorphic-fetch\");\r\n var o = { body: JSON.stringify(r_3), method: \"POST\", headers: Object.assign({}, this.options.headers, { \"Content-Type\": \"application/json\" }) };\r\n this.debug && console.log(\"SEND >> \" + o.body), fetch(this.host, o).then(function (t) { return __awaiter(_this, void 0, void 0, function () { var r_4; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!t.ok) return [3 /*break*/, 2];\r\n return [4 /*yield*/, t.json()];\r\n case 1:\r\n r_4 = _a.sent();\r\n this.debug && console.log(\"RECV << \" + JSON.stringify(r_4)), r_4.error ? e(Object.assign(new Error(r_4.error.json || r_4.error), r_4.error)) : e(null, r_4);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(new Error(\"External error. response code: \" + t.status));\r\n _a.label = 3;\r\n case 3: return [2 /*return*/];\r\n }\r\n }); }); }, function (t) { _this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(t); });\r\n }\r\n catch (t) {\r\n this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(t);\r\n }\r\n };\r\n return class_7;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(16), o = r(9);\r\n var i = /** @class */ (function () {\r\n function i(t, e) {\r\n if (e === void 0) { e = {}; }\r\n this.url = t, this.options = e, this.isDisposed = !1, this.responseCallbacks = new Map, this.notificationCallbacks = new Set, this.debug = !1, this.lastChunk = \"\", this.connect();\r\n }\r\n i.prototype.dispose = function () { this.isDisposed = !0; var t = this.connection; this.timeout(new Error(\"Provider disposed.\")), t.then(function (t) { return t.close(); }); };\r\n i.prototype.send = function () { throw new Error(\"Sync requests are deprecated\"); };\r\n i.prototype.sendAsync = function (t, e) {\r\n var _this = this;\r\n var r = [];\r\n var i;\r\n if (t instanceof Array)\r\n i = Promise.all(t.map(function (t) { var e = o.future(); try {\r\n var o_7 = n.toRPC(t);\r\n r.push(o_7), _this.responseCallbacks.set(o_7.id, e);\r\n }\r\n catch (t) {\r\n e.reject(t);\r\n } return e; }));\r\n else {\r\n var e_7 = o.future();\r\n try {\r\n var o_8 = n.toRPC(t);\r\n r.push(o_8), this.responseCallbacks.set(o_8.id, e_7);\r\n }\r\n catch (t) {\r\n e_7.reject(t);\r\n }\r\n i = e_7;\r\n }\r\n i.then(function (t) { return e(null, t); }, function (t) { return e(t); }), this.connection.then(function (t) { r.forEach(function (e) { var r = JSON.stringify(e); _this.debug && console.log(\"SEND >> \" + r), t.send(r); }); }, function (t) { e(t); });\r\n };\r\n i.prototype.parseResponse = function (t) {\r\n var _this = this;\r\n var e = [];\r\n return t.replace(/\\}[\\n\\r]?\\{/g, \"}|--|{\").replace(/\\}\\][\\n\\r]?\\[\\{/g, \"}]|--|[{\").replace(/\\}[\\n\\r]?\\[\\{/g, \"}|--|[{\").replace(/\\}\\][\\n\\r]?\\{/g, \"}]|--|{\").split(\"|--|\").forEach(function (t) { var r = t; _this.lastChunk && (r = _this.lastChunk + r); var n = null; try {\r\n n = JSON.parse(r);\r\n }\r\n catch (t) {\r\n return _this.lastChunk = r, clearTimeout(_this.lastChunkTimeout), void (_this.lastChunkTimeout = setTimeout(function () { _this.timeout(); }, 15e3));\r\n } clearTimeout(_this.lastChunkTimeout), _this.lastChunk = null, n && e.push(n); }), e;\r\n };\r\n i.prototype.processMessage = function (t) { if (\"id\" in t) {\r\n var e_8 = t.id, r_5 = this.responseCallbacks.get(e_8);\r\n if (!r_5)\r\n return void console.error(\"Error: Received a response for an unknown request\", t);\r\n this.responseCallbacks.delete(e_8), \"error\" in t ? r_5.reject(Object.assign(new Error(t.error.message || t.error), t.error)) : \"result\" in t && r_5.resolve(t);\r\n }\r\n else\r\n this.notificationCallbacks.forEach(function (e) { return e(null, t); }); };\r\n i.prototype.timeout = function (t) { this.connection && this.connection.isPending || (this.connection = o.future()); var e = t || new Error(\"Connection timeout\"); this.responseCallbacks.forEach(function (t) { return t.reject(e); }), this.responseCallbacks.clear(), this.isDisposed || this.connect(); };\r\n i.prototype.connect = function () {\r\n var _this = this;\r\n this.connection && !this.connection.isPending && this.connection.then(function (t) { return t.close(); }), this.connection && this.connection.isPending || (this.connection = o.future()), this.lastChunk = \"\";\r\n var t = this.options.WebSocketConstructor || (\"undefined\" != typeof WebSocket ? WebSocket : void 0);\r\n if (!t)\r\n throw new Error(\"Please provide a WebSocketConstructor\");\r\n var e = new t(this.url, this.options.protocol);\r\n e.onopen = (function () { _this.connection.resolve(e); }), e.onerror = (function (t) { _this.timeout(t); }), e.onclose = (function (t) { _this.timeout(new Error(\"Connection closed (\" + (t && t.reason || \"Unknown reason\") + \")\")); }), e.onmessage = (function (t) { var e = \"string\" == typeof t.data ? t.data : \"\"; _this.debug && console.log(\"RECV << \" + t.data), _this.parseResponse(e).forEach(function (t) { t instanceof Array ? t.forEach(function (t) { return _this.processMessage(t); }) : _this.processMessage(t); }); });\r\n };\r\n return i;\r\n }());\r\n e.WebSocketProvider = i, e.default = i;\r\n }, function (t, e, r) { !function (t) { var e, r, n, o = String.fromCharCode; function i(t) { for (var e, r, n = [], o = 0, i = t.length; o < i;)\r\n (e = t.charCodeAt(o++)) >= 55296 && e <= 56319 && o < i ? 56320 == (64512 & (r = t.charCodeAt(o++))) ? n.push(((1023 & e) << 10) + (1023 & r) + 65536) : (n.push(e), o--) : n.push(e); return n; } function s(t) { if (t >= 55296 && t <= 57343)\r\n throw Error(\"Lone surrogate U+\" + t.toString(16).toUpperCase() + \" is not a scalar value\"); } function a(t, e) { return o(t >> e & 63 | 128); } function c(t) { if (0 == (4294967168 & t))\r\n return o(t); var e = \"\"; return 0 == (4294965248 & t) ? e = o(t >> 6 & 31 | 192) : 0 == (4294901760 & t) ? (s(t), e = o(t >> 12 & 15 | 224), e += a(t, 6)) : 0 == (4292870144 & t) && (e = o(t >> 18 & 7 | 240), e += a(t, 12), e += a(t, 6)), e += o(63 & t | 128); } function u() { if (n >= r)\r\n throw Error(\"Invalid byte index\"); var t = 255 & e[n]; if (n++, 128 == (192 & t))\r\n return 63 & t; throw Error(\"Invalid continuation byte\"); } function l() { var t, o; if (n > r)\r\n throw Error(\"Invalid byte index\"); if (n == r)\r\n return !1; if (t = 255 & e[n], n++, 0 == (128 & t))\r\n return t; if (192 == (224 & t)) {\r\n if ((o = (31 & t) << 6 | u()) >= 128)\r\n return o;\r\n throw Error(\"Invalid continuation byte\");\r\n } if (224 == (240 & t)) {\r\n if ((o = (15 & t) << 12 | u() << 6 | u()) >= 2048)\r\n return s(o), o;\r\n throw Error(\"Invalid continuation byte\");\r\n } if (240 == (248 & t) && (o = (7 & t) << 18 | u() << 12 | u() << 6 | u()) >= 65536 && o <= 1114111)\r\n return o; throw Error(\"Invalid UTF-8 detected\"); } t.version = \"3.0.0\", t.encode = function (t) { for (var e = i(t), r = e.length, n = -1, o = \"\"; ++n < r;)\r\n o += c(e[n]); return o; }, t.decode = function (t) { e = i(t), r = e.length, n = 0; for (var s, a = []; !1 !== (s = l());)\r\n a.push(s); return function (t) { for (var e, r = t.length, n = -1, i = \"\"; ++n < r;)\r\n (e = t[n]) > 65535 && (i += o((e -= 65536) >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), i += o(e); return i; }(a); }; }(e); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), r(33), r(34), r(6), r(7), r(11), r(18), r(35), r(19), r(36), r(20), r(37), r(12), r(38), r(5), r(1), r(39), r(40), r(41), r(42), r(43), r(44), r(45), r(46), r(47), r(48), r(49), r(50), r(51), r(52), r(53), r(54), n); }, function (t, e, r) { var n; t.exports = (n = r(0), function () { if (\"function\" == typeof ArrayBuffer) {\r\n var t = n.lib.WordArray, e = t.init;\r\n (t.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || \"undefined\" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) {\r\n for (var r = t.byteLength, n = [], o = 0; o < r; o++)\r\n n[o >>> 2] |= t[o] << 24 - o % 4 * 8;\r\n e.call(this, n, r);\r\n }\r\n else\r\n e.apply(this, arguments); }).prototype = t;\r\n } }(), n.lib.WordArray); }, function (t, e, r) { var n; t.exports = (n = r(0), function () { var t = n, e = t.lib.WordArray, r = t.enc; function o(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935; } r.Utf16 = r.Utf16BE = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o += 2) {\r\n var i = e[o >>> 2] >>> 16 - o % 4 * 8 & 65535;\r\n n.push(String.fromCharCode(i));\r\n } return n.join(\"\"); }, parse: function (t) { for (var r = t.length, n = [], o = 0; o < r; o++)\r\n n[o >>> 1] |= t.charCodeAt(o) << 16 - o % 2 * 16; return e.create(n, 2 * r); } }, r.Utf16LE = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], i = 0; i < r; i += 2) {\r\n var s = o(e[i >>> 2] >>> 16 - i % 4 * 8 & 65535);\r\n n.push(String.fromCharCode(s));\r\n } return n.join(\"\"); }, parse: function (t) { for (var r = t.length, n = [], i = 0; i < r; i++)\r\n n[i >>> 1] |= o(t.charCodeAt(i) << 16 - i % 2 * 16); return e.create(n, 2 * r); } }; }(), n.enc.Utf16); }, function (t, e, r) { var n, o, i, s, a, c; t.exports = (n = r(0), r(18), i = (o = n).lib.WordArray, s = o.algo, a = s.SHA256, c = s.SHA224 = a.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); }, _doFinalize: function () { var t = a._doFinalize.call(this); return t.sigBytes -= 4, t; } }), o.SHA224 = a._createHelper(c), o.HmacSHA224 = a._createHmacHelper(c), n.SHA224); }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), r(10), r(19), i = (o = n).x64, s = i.Word, a = i.WordArray, c = o.algo, u = c.SHA512, l = c.SHA384 = u.extend({ _doReset: function () { this._hash = new a.init([new s.init(3418070365, 3238371032), new s.init(1654270250, 914150663), new s.init(2438529370, 812702999), new s.init(355462360, 4144912697), new s.init(1731405415, 4290775857), new s.init(2394180231, 1750603025), new s.init(3675008525, 1694076839), new s.init(1203062813, 3204075428)]); }, _doFinalize: function () { var t = u._doFinalize.call(this); return t.sigBytes -= 16, t; } }), o.SHA384 = u._createHelper(l), o.HmacSHA384 = u._createHmacHelper(l), n.SHA384); }, function (t, e, r) {\r\n var n;\r\n t.exports = (n = r(0),\r\n /** @preserve\r\n (c) 2012 by Cédric Mesnil. All rights reserved.\r\n \n Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\r\n \n - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\r\n - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\r\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n */\r\n function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = o.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), c = o.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), u = o.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), l = o.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), h = o.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), f = o.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), p = s.RIPEMD160 = i.extend({ _doReset: function () { this._hash = o.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); }, _doProcessBlock: function (t, e) { for (var r = 0; r < 16; r++) {\r\n var n = e + r, o = t[n];\r\n t[n] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);\r\n } var i, s, p, w, b, B, F, N, k, x, S, A = this._hash.words, O = h.words, T = f.words, P = a.words, M = c.words, C = u.words, E = l.words; for (B = i = A[0], F = s = A[1], N = p = A[2], k = w = A[3], x = b = A[4], r = 0; r < 80; r += 1)\r\n S = i + t[e + P[r]] | 0, S += r < 16 ? d(s, p, w) + O[0] : r < 32 ? m(s, p, w) + O[1] : r < 48 ? y(s, p, w) + O[2] : r < 64 ? g(s, p, w) + O[3] : _(s, p, w) + O[4], S = (S = v(S |= 0, C[r])) + b | 0, i = b, b = w, w = v(p, 10), p = s, s = S, S = B + t[e + M[r]] | 0, S += r < 16 ? _(F, N, k) + T[0] : r < 32 ? g(F, N, k) + T[1] : r < 48 ? y(F, N, k) + T[2] : r < 64 ? m(F, N, k) + T[3] : d(F, N, k) + T[4], S = (S = v(S |= 0, E[r])) + x | 0, B = x, x = k, k = v(N, 10), N = F, F = S; S = A[1] + p + k | 0, A[1] = A[2] + w + x | 0, A[2] = A[3] + b + B | 0, A[3] = A[4] + i + F | 0, A[4] = A[0] + s + N | 0, A[0] = S; }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32, e[14 + (n + 64 >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var o = this._hash, i = o.words, s = 0; s < 5; s++) {\r\n var a = i[s];\r\n i[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8);\r\n } return o; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); function d(t, e, r) { return t ^ e ^ r; } function m(t, e, r) { return t & e | ~t & r; } function y(t, e, r) { return (t | ~e) ^ r; } function g(t, e, r) { return t & r | e & ~r; } function _(t, e, r) { return t ^ (e | ~r); } function v(t, e) { return t << e | t >>> 32 - e; } e.RIPEMD160 = i._createHelper(p), e.HmacRIPEMD160 = i._createHmacHelper(p); }(Math), n.RIPEMD160);\r\n }, function (t, e, r) { var n, o, i, s, a, c, u, l, h; t.exports = (n = r(0), r(11), r(12), i = (o = n).lib, s = i.Base, a = i.WordArray, c = o.algo, u = c.SHA1, l = c.HMAC, h = c.PBKDF2 = s.extend({ cfg: s.extend({ keySize: 4, hasher: u, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t); }, compute: function (t, e) { for (var r = this.cfg, n = l.create(r.hasher, t), o = a.create(), i = a.create([1]), s = o.words, c = i.words, u = r.keySize, h = r.iterations; s.length < u;) {\r\n var f = n.update(e).finalize(i);\r\n n.reset();\r\n for (var p = f.words, d = p.length, m = f, y = 1; y < h; y++) {\r\n m = n.finalize(m), n.reset();\r\n for (var g = m.words, _ = 0; _ < d; _++)\r\n p[_] ^= g[_];\r\n }\r\n o.concat(f), c[0]++;\r\n } return o.sigBytes = 4 * u, o; } }), o.PBKDF2 = function (t, e, r) { return h.create(r).compute(t, e); }, n.PBKDF2); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.mode.CFB = function () { var t = n.lib.BlockCipherMode.extend(); function e(t, e, r, n) { var o = this._iv; if (o) {\r\n var i = o.slice(0);\r\n this._iv = void 0;\r\n }\r\n else\r\n i = this._prevBlock; n.encryptBlock(i, 0); for (var s = 0; s < r; s++)\r\n t[e + s] ^= i[s]; } return t.Encryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize; e.call(this, t, r, o, n), this._prevBlock = t.slice(r, r + o); } }), t.Decryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize, i = t.slice(r, r + o); e.call(this, t, r, o, n), this._prevBlock = i; } }), t; }(), n.mode.CFB); }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), r(1), n.mode.CTR = (o = n.lib.BlockCipherMode.extend(), i = o.Encryptor = o.extend({ processBlock: function (t, e) { var r = this._cipher, n = r.blockSize, o = this._iv, i = this._counter; o && (i = this._counter = o.slice(0), this._iv = void 0); var s = i.slice(0); r.encryptBlock(s, 0), i[n - 1] = i[n - 1] + 1 | 0; for (var a = 0; a < n; a++)\r\n t[e + a] ^= s[a]; } }), o.Decryptor = i, o), n.mode.CTR); }, function (t, e, r) {\r\n var n;\r\n t.exports = (n = r(0), r(1),\r\n /** @preserve\r\n * Counter block mode compatible with Dr Brian Gladman fileenc.c\r\n * derived from CryptoJS.mode.CTR\r\n * Jan Hruby jhruby.web@gmail.com\r\n */\r\n n.mode.CTRGladman = function () { var t = n.lib.BlockCipherMode.extend(); function e(t) { if (255 == (t >> 24 & 255)) {\r\n var e = t >> 16 & 255, r = t >> 8 & 255, n = 255 & t;\r\n 255 === e ? (e = 0, 255 === r ? (r = 0, 255 === n ? n = 0 : ++n) : ++r) : ++e, t = 0, t += e << 16, t += r << 8, t += n;\r\n }\r\n else\r\n t += 1 << 24; return t; } var r = t.Encryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize, i = this._iv, s = this._counter; i && (s = this._counter = i.slice(0), this._iv = void 0), function (t) { 0 === (t[0] = e(t[0])) && (t[1] = e(t[1])); }(s); var a = s.slice(0); n.encryptBlock(a, 0); for (var c = 0; c < o; c++)\r\n t[r + c] ^= a[c]; } }); return t.Decryptor = r, t; }(), n.mode.CTRGladman);\r\n }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), r(1), n.mode.OFB = (o = n.lib.BlockCipherMode.extend(), i = o.Encryptor = o.extend({ processBlock: function (t, e) { var r = this._cipher, n = r.blockSize, o = this._iv, i = this._keystream; o && (i = this._keystream = o.slice(0), this._iv = void 0), r.encryptBlock(i, 0); for (var s = 0; s < n; s++)\r\n t[e + s] ^= i[s]; } }), o.Decryptor = i, o), n.mode.OFB); }, function (t, e, r) { var n, o; t.exports = (n = r(0), r(1), n.mode.ECB = ((o = n.lib.BlockCipherMode.extend()).Encryptor = o.extend({ processBlock: function (t, e) { this._cipher.encryptBlock(t, e); } }), o.Decryptor = o.extend({ processBlock: function (t, e) { this._cipher.decryptBlock(t, e); } }), o), n.mode.ECB); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.AnsiX923 = { pad: function (t, e) { var r = t.sigBytes, n = 4 * e, o = n - r % n, i = r + o - 1; t.clamp(), t.words[i >>> 2] |= o << 24 - i % 4 * 8, t.sigBytes += o; }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, n.pad.Ansix923); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.Iso10126 = { pad: function (t, e) { var r = 4 * e, o = r - t.sigBytes % r; t.concat(n.lib.WordArray.random(o - 1)).concat(n.lib.WordArray.create([o << 24], 1)); }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, n.pad.Iso10126); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.Iso97971 = { pad: function (t, e) { t.concat(n.lib.WordArray.create([2147483648], 1)), n.pad.ZeroPadding.pad(t, e); }, unpad: function (t) { n.pad.ZeroPadding.unpad(t), t.sigBytes--; } }, n.pad.Iso97971); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.ZeroPadding = { pad: function (t, e) { var r = 4 * e; t.clamp(), t.sigBytes += r - (t.sigBytes % r || r); }, unpad: function (t) { for (var e = t.words, r = t.sigBytes - 1; !(e[r >>> 2] >>> 24 - r % 4 * 8 & 255);)\r\n r--; t.sigBytes = r + 1; } }, n.pad.ZeroPadding); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.NoPadding = { pad: function () { }, unpad: function () { } }, n.pad.NoPadding); }, function (t, e, r) { var n, o, i, s; t.exports = (n = r(0), r(1), i = (o = n).lib.CipherParams, s = o.enc.Hex, o.format.Hex = { stringify: function (t) { return t.ciphertext.toString(s); }, parse: function (t) { var e = s.parse(t); return i.create({ ciphertext: e }); } }, n.format.Hex); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.BlockCipher, r = t.algo, o = [], i = [], s = [], a = [], c = [], u = [], l = [], h = [], f = [], p = []; !function () { for (var t = [], e = 0; e < 256; e++)\r\n t[e] = e < 128 ? e << 1 : e << 1 ^ 283; var r = 0, n = 0; for (e = 0; e < 256; e++) {\r\n var d = n ^ n << 1 ^ n << 2 ^ n << 3 ^ n << 4;\r\n d = d >>> 8 ^ 255 & d ^ 99, o[r] = d, i[d] = r;\r\n var m = t[r], y = t[m], g = t[y], _ = 257 * t[d] ^ 16843008 * d;\r\n s[r] = _ << 24 | _ >>> 8, a[r] = _ << 16 | _ >>> 16, c[r] = _ << 8 | _ >>> 24, u[r] = _, _ = 16843009 * g ^ 65537 * y ^ 257 * m ^ 16843008 * r, l[d] = _ << 24 | _ >>> 8, h[d] = _ << 16 | _ >>> 16, f[d] = _ << 8 | _ >>> 24, p[d] = _, r ? (r = m ^ t[t[t[g ^ m]]], n ^= t[t[n]]) : r = n = 1;\r\n } }(); var d = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], m = r.AES = e.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) {\r\n for (var t = this._keyPriorReset = this._key, e = t.words, r = t.sigBytes / 4, n = 4 * ((this._nRounds = r + 6) + 1), i = this._keySchedule = [], s = 0; s < n; s++)\r\n if (s < r)\r\n i[s] = e[s];\r\n else {\r\n var a = i[s - 1];\r\n s % r ? r > 6 && s % r == 4 && (a = o[a >>> 24] << 24 | o[a >>> 16 & 255] << 16 | o[a >>> 8 & 255] << 8 | o[255 & a]) : (a = o[(a = a << 8 | a >>> 24) >>> 24] << 24 | o[a >>> 16 & 255] << 16 | o[a >>> 8 & 255] << 8 | o[255 & a], a ^= d[s / r | 0] << 24), i[s] = i[s - r] ^ a;\r\n }\r\n for (var c = this._invKeySchedule = [], u = 0; u < n; u++)\r\n s = n - u, a = u % 4 ? i[s] : i[s - 4], c[u] = u < 4 || s <= 4 ? a : l[o[a >>> 24]] ^ h[o[a >>> 16 & 255]] ^ f[o[a >>> 8 & 255]] ^ p[o[255 & a]];\r\n } }, encryptBlock: function (t, e) { this._doCryptBlock(t, e, this._keySchedule, s, a, c, u, o); }, decryptBlock: function (t, e) { var r = t[e + 1]; t[e + 1] = t[e + 3], t[e + 3] = r, this._doCryptBlock(t, e, this._invKeySchedule, l, h, f, p, i), r = t[e + 1], t[e + 1] = t[e + 3], t[e + 3] = r; }, _doCryptBlock: function (t, e, r, n, o, i, s, a) { for (var c = this._nRounds, u = t[e] ^ r[0], l = t[e + 1] ^ r[1], h = t[e + 2] ^ r[2], f = t[e + 3] ^ r[3], p = 4, d = 1; d < c; d++) {\r\n var m = n[u >>> 24] ^ o[l >>> 16 & 255] ^ i[h >>> 8 & 255] ^ s[255 & f] ^ r[p++], y = n[l >>> 24] ^ o[h >>> 16 & 255] ^ i[f >>> 8 & 255] ^ s[255 & u] ^ r[p++], g = n[h >>> 24] ^ o[f >>> 16 & 255] ^ i[u >>> 8 & 255] ^ s[255 & l] ^ r[p++], _ = n[f >>> 24] ^ o[u >>> 16 & 255] ^ i[l >>> 8 & 255] ^ s[255 & h] ^ r[p++];\r\n u = m, l = y, h = g, f = _;\r\n } m = (a[u >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & f]) ^ r[p++], y = (a[l >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ r[p++], g = (a[h >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & l]) ^ r[p++], _ = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & h]) ^ r[p++], t[e] = m, t[e + 1] = y, t[e + 2] = g, t[e + 3] = _; }, keySize: 8 }); t.AES = e._createHelper(m); }(), n.AES); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib, r = e.WordArray, o = e.BlockCipher, i = t.algo, s = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], a = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], c = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], u = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], l = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], h = i.DES = o.extend({ _doReset: function () { for (var t = this._key.words, e = [], r = 0; r < 56; r++) {\r\n var n = s[r] - 1;\r\n e[r] = t[n >>> 5] >>> 31 - n % 32 & 1;\r\n } for (var o = this._subKeys = [], i = 0; i < 16; i++) {\r\n var u = o[i] = [], l = c[i];\r\n for (r = 0; r < 24; r++)\r\n u[r / 6 | 0] |= e[(a[r] - 1 + l) % 28] << 31 - r % 6, u[4 + (r / 6 | 0)] |= e[28 + (a[r + 24] - 1 + l) % 28] << 31 - r % 6;\r\n for (u[0] = u[0] << 1 | u[0] >>> 31, r = 1; r < 7; r++)\r\n u[r] = u[r] >>> 4 * (r - 1) + 3;\r\n u[7] = u[7] << 5 | u[7] >>> 27;\r\n } var h = this._invSubKeys = []; for (r = 0; r < 16; r++)\r\n h[r] = o[15 - r]; }, encryptBlock: function (t, e) { this._doCryptBlock(t, e, this._subKeys); }, decryptBlock: function (t, e) { this._doCryptBlock(t, e, this._invSubKeys); }, _doCryptBlock: function (t, e, r) { this._lBlock = t[e], this._rBlock = t[e + 1], f.call(this, 4, 252645135), f.call(this, 16, 65535), p.call(this, 2, 858993459), p.call(this, 8, 16711935), f.call(this, 1, 1431655765); for (var n = 0; n < 16; n++) {\r\n for (var o = r[n], i = this._lBlock, s = this._rBlock, a = 0, c = 0; c < 8; c++)\r\n a |= u[c][((s ^ o[c]) & l[c]) >>> 0];\r\n this._lBlock = s, this._rBlock = i ^ a;\r\n } var h = this._lBlock; this._lBlock = this._rBlock, this._rBlock = h, f.call(this, 1, 1431655765), p.call(this, 8, 16711935), p.call(this, 2, 858993459), f.call(this, 16, 65535), f.call(this, 4, 252645135), t[e] = this._lBlock, t[e + 1] = this._rBlock; }, keySize: 2, ivSize: 2, blockSize: 2 }); function f(t, e) { var r = (this._lBlock >>> t ^ this._rBlock) & e; this._rBlock ^= r, this._lBlock ^= r << t; } function p(t, e) { var r = (this._rBlock >>> t ^ this._lBlock) & e; this._lBlock ^= r, this._rBlock ^= r << t; } t.DES = o._createHelper(h); var d = i.TripleDES = o.extend({ _doReset: function () { var t = this._key.words; this._des1 = h.createEncryptor(r.create(t.slice(0, 2))), this._des2 = h.createEncryptor(r.create(t.slice(2, 4))), this._des3 = h.createEncryptor(r.create(t.slice(4, 6))); }, encryptBlock: function (t, e) { this._des1.encryptBlock(t, e), this._des2.decryptBlock(t, e), this._des3.encryptBlock(t, e); }, decryptBlock: function (t, e) { this._des3.decryptBlock(t, e), this._des2.encryptBlock(t, e), this._des1.decryptBlock(t, e); }, keySize: 6, ivSize: 2, blockSize: 2 }); t.TripleDES = o._createHelper(d); }(), n.TripleDES); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = r.RC4 = e.extend({ _doReset: function () { for (var t = this._key, e = t.words, r = t.sigBytes, n = this._S = [], o = 0; o < 256; o++)\r\n n[o] = o; o = 0; for (var i = 0; o < 256; o++) {\r\n var s = o % r, a = e[s >>> 2] >>> 24 - s % 4 * 8 & 255;\r\n i = (i + n[o] + a) % 256;\r\n var c = n[o];\r\n n[o] = n[i], n[i] = c;\r\n } this._i = this._j = 0; }, _doProcessBlock: function (t, e) { t[e] ^= i.call(this); }, keySize: 8, ivSize: 0 }); function i() { for (var t = this._S, e = this._i, r = this._j, n = 0, o = 0; o < 4; o++) {\r\n r = (r + t[e = (e + 1) % 256]) % 256;\r\n var i = t[e];\r\n t[e] = t[r], t[r] = i, n |= t[(t[e] + t[r]) % 256] << 24 - 8 * o;\r\n } return this._i = e, this._j = r, n; } t.RC4 = e._createHelper(o); var s = r.RC4Drop = o.extend({ cfg: o.cfg.extend({ drop: 192 }), _doReset: function () { o._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)\r\n i.call(this); } }); t.RC4Drop = e._createHelper(s); }(), n.RC4); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = [], i = [], s = [], a = r.Rabbit = e.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, r = 0; r < 4; r++)\r\n t[r] = 16711935 & (t[r] << 8 | t[r] >>> 24) | 4278255360 & (t[r] << 24 | t[r] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; for (this._b = 0, r = 0; r < 4; r++)\r\n c.call(this); for (r = 0; r < 8; r++)\r\n o[r] ^= n[r + 4 & 7]; if (e) {\r\n var i = e.words, s = i[0], a = i[1], u = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), l = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), h = u >>> 16 | 4294901760 & l, f = l << 16 | 65535 & u;\r\n for (o[0] ^= u, o[1] ^= h, o[2] ^= l, o[3] ^= f, o[4] ^= u, o[5] ^= h, o[6] ^= l, o[7] ^= f, r = 0; r < 4; r++)\r\n c.call(this);\r\n } }, _doProcessBlock: function (t, e) { var r = this._X; c.call(this), o[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, o[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, o[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, o[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16; for (var n = 0; n < 4; n++)\r\n o[n] = 16711935 & (o[n] << 8 | o[n] >>> 24) | 4278255360 & (o[n] << 24 | o[n] >>> 8), t[e + n] ^= o[n]; }, blockSize: 4, ivSize: 2 }); function c() { for (var t = this._X, e = this._C, r = 0; r < 8; r++)\r\n i[r] = e[r]; for (e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < i[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < i[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < i[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < i[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < i[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < i[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < i[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < i[7] >>> 0 ? 1 : 0, r = 0; r < 8; r++) {\r\n var n = t[r] + e[r], o = 65535 & n, a = n >>> 16, c = ((o * o >>> 17) + o * a >>> 15) + a * a, u = ((4294901760 & n) * n | 0) + ((65535 & n) * n | 0);\r\n s[r] = c ^ u;\r\n } t[0] = s[0] + (s[7] << 16 | s[7] >>> 16) + (s[6] << 16 | s[6] >>> 16) | 0, t[1] = s[1] + (s[0] << 8 | s[0] >>> 24) + s[7] | 0, t[2] = s[2] + (s[1] << 16 | s[1] >>> 16) + (s[0] << 16 | s[0] >>> 16) | 0, t[3] = s[3] + (s[2] << 8 | s[2] >>> 24) + s[1] | 0, t[4] = s[4] + (s[3] << 16 | s[3] >>> 16) + (s[2] << 16 | s[2] >>> 16) | 0, t[5] = s[5] + (s[4] << 8 | s[4] >>> 24) + s[3] | 0, t[6] = s[6] + (s[5] << 16 | s[5] >>> 16) + (s[4] << 16 | s[4] >>> 16) | 0, t[7] = s[7] + (s[6] << 8 | s[6] >>> 24) + s[5] | 0; } t.Rabbit = e._createHelper(a); }(), n.Rabbit); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = [], i = [], s = [], a = r.RabbitLegacy = e.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, r = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)\r\n c.call(this); for (o = 0; o < 8; o++)\r\n n[o] ^= r[o + 4 & 7]; if (e) {\r\n var i = e.words, s = i[0], a = i[1], u = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), l = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), h = u >>> 16 | 4294901760 & l, f = l << 16 | 65535 & u;\r\n for (n[0] ^= u, n[1] ^= h, n[2] ^= l, n[3] ^= f, n[4] ^= u, n[5] ^= h, n[6] ^= l, n[7] ^= f, o = 0; o < 4; o++)\r\n c.call(this);\r\n } }, _doProcessBlock: function (t, e) { var r = this._X; c.call(this), o[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, o[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, o[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, o[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16; for (var n = 0; n < 4; n++)\r\n o[n] = 16711935 & (o[n] << 8 | o[n] >>> 24) | 4278255360 & (o[n] << 24 | o[n] >>> 8), t[e + n] ^= o[n]; }, blockSize: 4, ivSize: 2 }); function c() { for (var t = this._X, e = this._C, r = 0; r < 8; r++)\r\n i[r] = e[r]; for (e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < i[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < i[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < i[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < i[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < i[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < i[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < i[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < i[7] >>> 0 ? 1 : 0, r = 0; r < 8; r++) {\r\n var n = t[r] + e[r], o = 65535 & n, a = n >>> 16, c = ((o * o >>> 17) + o * a >>> 15) + a * a, u = ((4294901760 & n) * n | 0) + ((65535 & n) * n | 0);\r\n s[r] = c ^ u;\r\n } t[0] = s[0] + (s[7] << 16 | s[7] >>> 16) + (s[6] << 16 | s[6] >>> 16) | 0, t[1] = s[1] + (s[0] << 8 | s[0] >>> 24) + s[7] | 0, t[2] = s[2] + (s[1] << 16 | s[1] >>> 16) + (s[0] << 16 | s[0] >>> 16) | 0, t[3] = s[3] + (s[2] << 8 | s[2] >>> 24) + s[1] | 0, t[4] = s[4] + (s[3] << 16 | s[3] >>> 16) + (s[2] << 16 | s[2] >>> 16) | 0, t[5] = s[5] + (s[4] << 8 | s[4] >>> 24) + s[3] | 0, t[6] = s[6] + (s[5] << 16 | s[5] >>> 16) + (s[4] << 16 | s[4] >>> 16) | 0, t[7] = s[7] + (s[6] << 8 | s[6] >>> 24) + s[5] | 0; } t.RabbitLegacy = e._createHelper(a); }(), n.RabbitLegacy); }, function (t, e, r) {\r\n \"use strict\";\r\n var n = this && this.__decorate || function (t, e, r, n) { var o, i = arguments.length, s = i < 3 ? e : null === n ? n = Object.getOwnPropertyDescriptor(e, r) : n; if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate)\r\n s = Reflect.decorate(t, e, r, n);\r\n else\r\n for (var a = t.length - 1; a >= 0; a--)\r\n (o = t[a]) && (s = (i < 3 ? o(s) : i > 3 ? o(e, r, s) : o(e, r)) || s); return i > 3 && s && Object.defineProperty(e, r, s), s; }, o = this && this.__metadata || function (t, e) { if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.metadata)\r\n return Reflect.metadata(t, e); };\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var i = r(56), s = r(13), a = r(9), c = r(21), u = r(58), l = r(59);\r\n function h(t, e) { var r = c.eth[e]; if (!r)\r\n throw new Error(\"Could not find the method/property named \" + e.toString()); Object.defineProperty(t, e, { value: function () {\r\n var _a;\r\n return (_a = r.execute).call.apply(_a, __spread([r, this], arguments));\r\n } }); }\r\n e.TRANSACTION_FETCH_DELAY = 2e3, e.inject = h;\r\n var f = /** @class */ (function () {\r\n function f(t) {\r\n this.provider = t, this.requests = new Map;\r\n }\r\n f.prototype.sendAsync = function (t) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e, r;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n if (!this.provider)\r\n throw s.InvalidProvider();\r\n e = i.toPayload(t.method, t.params);\r\n r = a.future();\r\n return [2 /*return*/, (this.requests.set(e.id, r), this.provider.sendAsync(e, function (t, n) { _this.requests.delete(e.id), t ? r.reject(t) : i.isValidResponse(n) ? r.resolve(n.result) : r.reject(s.InvalidResponse(n)); }), r)];\r\n });\r\n });\r\n };\r\n f.prototype.setProvider = function (t) { this.provider = t; };\r\n f.prototype.getConfirmedTransaction = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.waitForCompletion(t)];\r\n case 1:\r\n e = _a.sent();\r\n if (this.isFailure(e))\r\n throw new Error(\"Transaction \\\"\" + t + \"\\\" failed\");\r\n return [2 /*return*/, e];\r\n }\r\n }); });\r\n };\r\n f.prototype.waitForCompletion = function (t, r) {\r\n return __awaiter(this, void 0, void 0, function () { var e_9, r_6; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.isTxDropped(t, r)];\r\n case 1:\r\n if (!_a.sent()) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 2:\r\n e_9 = _a.sent();\r\n return [2 /*return*/, Object.assign({}, e_9, { status: u.TransactionStatus.failed })];\r\n case 3: return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 4:\r\n r_6 = _a.sent();\r\n if (!this.isPending(r_6) && r_6.receipt)\r\n return [2 /*return*/, Object.assign({}, r_6, { status: this.isFailure(r_6) ? u.TransactionStatus.failed : u.TransactionStatus.confirmed })];\r\n return [4 /*yield*/, l.sleep(e.TRANSACTION_FETCH_DELAY)];\r\n case 5:\r\n _a.sent();\r\n _a.label = 6;\r\n case 6: return [3 /*break*/, 3];\r\n case 7: return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n f.prototype.getTransaction = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e, r, n, t_15, _a, t_12, _c, t_13, _d, t_14; return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n _e.trys.push([0, 4, , 5]);\r\n return [4 /*yield*/, this.eth_accounts()];\r\n case 1:\r\n t_15 = (_e.sent())[0];\r\n _a = t_15;\r\n if (!_a) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.eth_getTransactionCount(t_15, \"latest\")];\r\n case 2:\r\n _a = (e = _e.sent());\r\n _e.label = 3;\r\n case 3:\r\n _a;\r\n return [3 /*break*/, 5];\r\n case 4:\r\n t_12 = _e.sent();\r\n e = null;\r\n return [3 /*break*/, 5];\r\n case 5:\r\n _e.trys.push([5, 7, , 8]);\r\n _c = null;\r\n return [4 /*yield*/, this.eth_getTransactionByHash(t)];\r\n case 6:\r\n if (_c == (r = _e.sent()))\r\n return [2 /*return*/, null];\r\n return [3 /*break*/, 8];\r\n case 7:\r\n t_13 = _e.sent();\r\n return [2 /*return*/, null];\r\n case 8:\r\n if (null == r.blockNumber) {\r\n if (null != e) {\r\n if (r.nonce < e) {\r\n return [2 /*return*/, { hash: t, type: u.TransactionType.replaced, nonce: r.nonce }];\r\n }\r\n if (r.nonce > e) {\r\n return [2 /*return*/, { hash: t, type: u.TransactionType.queued, nonce: r.nonce }];\r\n }\r\n }\r\n return [2 /*return*/, Object.assign({ type: u.TransactionType.pending }, r)];\r\n }\r\n _e.label = 9;\r\n case 9:\r\n _e.trys.push([9, 11, , 12]);\r\n _d = null;\r\n return [4 /*yield*/, this.eth_getTransactionReceipt(t)];\r\n case 10:\r\n if (_d == (n = _e.sent()) || 0 === n.status) {\r\n return [2 /*return*/, Object.assign({ type: u.TransactionType.reverted }, r)];\r\n }\r\n return [3 /*break*/, 12];\r\n case 11:\r\n t_14 = _e.sent();\r\n return [2 /*return*/, null];\r\n case 12: return [2 /*return*/, Object.assign({ type: u.TransactionType.confirmed }, r, { receipt: n })];\r\n }\r\n }); });\r\n };\r\n f.prototype.isTxDropped = function (t, r) {\r\n if (r === void 0) { r = 15; }\r\n return __awaiter(this, void 0, void 0, function () { var n, _a; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n n = r;\r\n _c.label = 1;\r\n case 1:\r\n if (!(n > 0)) return [3 /*break*/, 5];\r\n _a = null;\r\n return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 2:\r\n if (_a !== (_c.sent()))\r\n return [2 /*return*/, !1];\r\n n -= 1;\r\n return [4 /*yield*/, l.sleep(e.TRANSACTION_FETCH_DELAY)];\r\n case 3:\r\n _c.sent();\r\n _c.label = 4;\r\n case 4: return [3 /*break*/, 1];\r\n case 5: return [2 /*return*/, !0];\r\n }\r\n }); });\r\n };\r\n f.prototype.getTransactionAndReceipt = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var _a, e, r; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0: return [4 /*yield*/, Promise.all([this.eth_getTransactionByHash(t), this.eth_getTransactionReceipt(t)])];\r\n case 1:\r\n _a = __read.apply(void 0, [_c.sent(), 2]), e = _a[0], r = _a[1];\r\n return [2 /*return*/, e ? Object.assign({}, e, { receipt: r }) : null];\r\n }\r\n }); });\r\n };\r\n f.prototype.isPending = function (t) { return t && null === t.blockNumber; };\r\n f.prototype.isFailure = function (t) { return t && (!t.receipt || 0 === t.receipt.status); };\r\n return f;\r\n }());\r\n n([h, o(\"design:type\", Function)], f.prototype, \"web3_clientVersion\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"web3_sha3\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_version\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_peerCount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_listening\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_protocolVersion\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_syncing\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_coinbase\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_mining\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_hashrate\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_gasPrice\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_accounts\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_blockNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBalance\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getStorageAt\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionCount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockTransactionCountByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockTransactionCountByNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleCountByBlockHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleCountByBlockNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getCode\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sign\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sendTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sendRawTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_call\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_estimateGas\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockByNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByBlockHashAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByBlockNumberAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionReceipt\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleByBlockHashAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleByBlockNumberAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newBlockFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newPendingTransactionFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_uninstallFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getFilterChanges\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getFilterLogs\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getLogs\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getWork\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_submitWork\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_submitHashrate\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_post\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_version\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newIdentity\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_hasIdentity\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newGroup\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_addToGroup\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_uninstallFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_getFilterChanges\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_getMessages\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_unlockAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_newAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_listAccounts\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_lockAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_importRawKey\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_sendTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_sign\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_ecRecover\", void 0), e.RequestManager = f;\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n function n(t, r) { if (!t)\r\n throw new Error(\"jsonrpc method should be specified!\"); if (\"string\" != typeof t)\r\n throw new Error(\"jsonrpc must be a string, got \" + typeof t + \"!\"); return e.messageId++, { jsonrpc: \"2.0\", id: e.messageId, method: t, params: r || [] }; }\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.messageId = 0, e.toPayload = n, e.isValidResponse = function (t) { return Array.isArray(t) ? t.every(e) : e(t); function e(t) { return !(!t || t.error || \"2.0\" !== t.jsonrpc || \"number\" != typeof t.id || null == t.result && void 0 === t.result); } }, e.toBatchPayload = function (t) { return t.map(function (t) { return n(t.method, t.params); }); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), function (t) { t[t.ROUND_UP = 0] = \"ROUND_UP\", t[t.ROUND_DOWN = 1] = \"ROUND_DOWN\", t[t.ROUND_CE = 2] = \"ROUND_CE\", t[t.ROUND_FLOOR = 3] = \"ROUND_FLOOR\", t[t.ROUND_HALF_UP = 4] = \"ROUND_HALF_UP\", t[t.ROUND_HALF_DOWN = 5] = \"ROUND_HALF_DOWN\", t[t.ROUND_HALF_EVEN = 6] = \"ROUND_HALF_EVEN\", t[t.ROUND_HALF_CEIL = 7] = \"ROUND_HALF_CEIL\", t[t.ROUND_HALF_FLOOR = 8] = \"ROUND_HALF_FLOOR\"; }(e.BigNumberRoundingMode || (e.BigNumberRoundingMode = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), function (t) { t.pending = \"pending\", t.confirmed = \"confirmed\", t.failed = \"failed\"; }(e.TransactionStatus || (e.TransactionStatus = {})), function (t) { t.queued = \"queued\", t.dropped = \"dropped\", t.replaced = \"replaced\", t.pending = \"pending\", t.reverted = \"reverted\", t.confirmed = \"confirmed\"; }(e.TransactionType || (e.TransactionType = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.sleep = function (t) { return new Promise(function (e) { return setTimeout(e, t); }); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(13), s = r(15);\r\n e.SolidityFunction = /** @class */ (function () {\r\n function class_8(t, e, r) {\r\n this.requestManager = t, this.json = e, this._inputTypes = e.inputs.map(function (t) { return t.type; }), this._outputTypes = e.outputs.map(function (t) { return t.type; }), this._constant = e.constant, this._payable = e.payable, this.needsToBeTransaction = \"payable\" in e && e.payable || \"constant\" in e && !e.constant || \"stateMutability\" in e && \"nonpayable\" === e.stateMutability, this._name = n.transformToFullName(e), this._address = r;\r\n }\r\n class_8.prototype.extractDefaultBlock = function (t) { if (t.length > this._inputTypes.length && !n.isObject(t[t.length - 1]))\r\n return o.inputDefaultBlockNumberFormatter(t.pop()); };\r\n class_8.prototype.validateArgs = function (t) { if (t.some(function (t) { return void 0 === t; }))\r\n throw new Error(\"Invalid call, some arguments are undefined\"); var e = t.filter(function (t) { return !(!0 === n.isObject(t) && !1 === n.isArray(t) && !1 === n.isBigNumber(t)); }); if (e.length !== this._inputTypes.length)\r\n throw i.InvalidNumberOfSolidityArgs(e.length, this._inputTypes.length); };\r\n class_8.prototype.toPayload = function (t) { var e = { to: void 0, data: void 0, value: void 0, from: void 0 }; return t.length > this._inputTypes.length && n.isObject(t[t.length - 1]) && (e = t[t.length - 1]), this.validateArgs(t), e.to = this._address, e.data = \"0x\" + this.signature() + s.coder.encodeParams(this._inputTypes, t), e; };\r\n class_8.prototype.signature = function () { return n.sha3(this._name).slice(0, 8); };\r\n class_8.prototype.unpackOutput = function (t) { if (!t)\r\n return; var e = t.length >= 2 ? t.slice(2) : t; var r = s.coder.decodeParams(this._outputTypes, e); return 1 === r.length ? r[0] : r; };\r\n class_8.prototype.execute = function (t) {\r\n var e = [];\r\n for (var _a = 1; _a < arguments.length; _a++) {\r\n e[_a - 1] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var r_7, r_8, n_10, o_9; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n if (!t)\r\n throw new Error(\"Cannot call function \" + this.displayName() + \" because there is no requestManager\");\r\n if (!this.needsToBeTransaction) return [3 /*break*/, 2];\r\n r_7 = this.toPayload(e);\r\n if (r_7.value > 0 && !this._payable)\r\n throw new Error(\"Cannot send value to non-payable function\");\r\n if (!r_7.from)\r\n throw new Error('Missing \"from\" in transaction options');\r\n return [4 /*yield*/, t.eth_sendTransaction(r_7)];\r\n case 1: return [2 /*return*/, _c.sent()];\r\n case 2:\r\n r_8 = this.extractDefaultBlock(e), n_10 = this.toPayload(e);\r\n return [4 /*yield*/, t.eth_call(n_10, r_8)];\r\n case 3:\r\n o_9 = _c.sent();\r\n return [2 /*return*/, this.unpackOutput(o_9)];\r\n }\r\n }); });\r\n };\r\n class_8.prototype.estimateGas = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n var e = this.toPayload(t);\r\n return this.requestManager.eth_estimateGas(e);\r\n };\r\n class_8.prototype.getData = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return this.toPayload(t).data;\r\n };\r\n class_8.prototype.displayName = function () { return n.extractDisplayName(this._name); };\r\n class_8.prototype.typeName = function () { return n.extractTypeName(this._name) || \"void\"; };\r\n class_8.prototype.attachToContract = function (t) { var e = this.displayName(); var r = this, n = Object.assign(function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n var e = this.requestManager || r.requestManager;\r\n return r.execute.apply(r, __spread([e], t));\r\n }, { estimateGas: this.estimateGas.bind(this) }); t[e] || (t[e] = n), t[e][this.typeName()] = n; };\r\n return class_8;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeAddress = /** @class */ (function (_super) {\r\n __extends(SolidityTypeAddress, _super);\r\n function SolidityTypeAddress() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputAddress }) || this;\r\n }\r\n SolidityTypeAddress.prototype.isType = function (t) { return !!t.match(/address(\\[([0-9]*)\\])?/); };\r\n return SolidityTypeAddress;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeBool = /** @class */ (function (_super) {\r\n __extends(SolidityTypeBool, _super);\r\n function SolidityTypeBool() {\r\n return _super.call(this, { inputFormatter: n.formatInputBool, outputFormatter: n.formatOutputBool }) || this;\r\n }\r\n SolidityTypeBool.prototype.isType = function (t) { return !!t.match(/^bool(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeBool;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeInt = /** @class */ (function (_super) {\r\n __extends(SolidityTypeInt, _super);\r\n function SolidityTypeInt() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputInt }) || this;\r\n }\r\n SolidityTypeInt.prototype.isType = function (t) { return !!t.match(/^int([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeInt;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeUInt = /** @class */ (function (_super) {\r\n __extends(SolidityTypeUInt, _super);\r\n function SolidityTypeUInt() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputUInt }) || this;\r\n }\r\n SolidityTypeUInt.prototype.isType = function (t) { return !!t.match(/^uint([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeUInt;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeDynamicBytes = /** @class */ (function (_super) {\r\n __extends(SolidityTypeDynamicBytes, _super);\r\n function SolidityTypeDynamicBytes() {\r\n return _super.call(this, { inputFormatter: n.formatInputDynamicBytes, outputFormatter: n.formatOutputDynamicBytes }) || this;\r\n }\r\n SolidityTypeDynamicBytes.prototype.isType = function (t) { return !!t.match(/^bytes(\\[([0-9]*)\\])*$/); };\r\n SolidityTypeDynamicBytes.prototype.isDynamicType = function () { return !0; };\r\n return SolidityTypeDynamicBytes;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeString = /** @class */ (function (_super) {\r\n __extends(SolidityTypeString, _super);\r\n function SolidityTypeString() {\r\n return _super.call(this, { inputFormatter: n.formatInputString, outputFormatter: n.formatOutputString }) || this;\r\n }\r\n SolidityTypeString.prototype.isType = function (t) { return !!t.match(/^string(\\[([0-9]*)\\])*$/); };\r\n SolidityTypeString.prototype.isDynamicType = function () { return !0; };\r\n return SolidityTypeString;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeReal = /** @class */ (function (_super) {\r\n __extends(SolidityTypeReal, _super);\r\n function SolidityTypeReal() {\r\n return _super.call(this, { inputFormatter: n.formatInputReal, outputFormatter: n.formatOutputReal }) || this;\r\n }\r\n SolidityTypeReal.prototype.isType = function (t) { return !!t.match(/real([0-9]*)?(\\[([0-9]*)\\])?/); };\r\n return SolidityTypeReal;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeUReal = /** @class */ (function (_super) {\r\n __extends(SolidityTypeUReal, _super);\r\n function SolidityTypeUReal() {\r\n return _super.call(this, { inputFormatter: n.formatInputReal, outputFormatter: n.formatOutputUReal }) || this;\r\n }\r\n SolidityTypeUReal.prototype.isType = function (t) { return !!t.match(/^ureal([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeUReal;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeBytes = /** @class */ (function (_super) {\r\n __extends(SolidityTypeBytes, _super);\r\n function SolidityTypeBytes() {\r\n return _super.call(this, { inputFormatter: n.formatInputBytes, outputFormatter: n.formatOutputBytes }) || this;\r\n }\r\n SolidityTypeBytes.prototype.isType = function (t) { return !!t.match(/^bytes([0-9]{1,})(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeBytes;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(26), s = r(27);\r\n e.AllSolidityEvents = /** @class */ (function () {\r\n function class_9(t, e, r) {\r\n this._requestManager = t, this._json = e, this._address = r;\r\n }\r\n class_9.prototype.encode = function (t) {\r\n if (t === void 0) { t = {}; }\r\n var e = { address: this._address };\r\n return [\"fromBlock\", \"toBlock\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (r) { e[r] = o.inputBlockNumberFormatter(t[r]); }), e;\r\n };\r\n class_9.prototype.decode = function (t) { t.data = t.data || \"\"; var e = n.isArray(t.topics) && n.isString(t.topics[0]) ? t.topics[0].slice(2) : \"\", r = this._json.filter(function (t) { return e === n.sha3(n.transformToFullName(t)); })[0]; return r ? new i.SolidityEvent(this._requestManager, r, this._address).decode(t) : o.outputLogFormatter(t); };\r\n class_9.prototype.execute = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e, r; return __generator(this, function (_a) {\r\n e = this.encode(t), r = this.decode.bind(this);\r\n return [2 /*return*/, new s.EthFilter(this._requestManager, e, r)];\r\n }); });\r\n };\r\n class_9.prototype.attachToContract = function (t) { var e = this.execute.bind(this); t.allEvents = e; };\r\n return class_9;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(15), i = r(24), s = r(9);\r\n function a(t, e) { return t.filter(function (t) { return \"constructor\" === t.type && t.inputs.length === e.length; }).map(function (t) { return t.inputs.map(function (t) { return t.type; }); }).map(function (t) { return o.coder.encodeParams(t, e); })[0] || \"\"; }\r\n e.ContractFactory = /** @class */ (function () {\r\n function class_10(t, e) {\r\n this.requestManager = t, this.abi = e;\r\n }\r\n class_10.prototype.deploy = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var e, r, o, _c, _d, i, c, u; return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n r = t[t.length - 1];\r\n if (n.isObject(r) && !n.isArray(r) && (e = t.pop()), !e)\r\n throw new Error(\"Missing options object\");\r\n if (!e.data || \"string\" != typeof e.data)\r\n throw new Error(\"Invalid options.data\");\r\n if (e.value > 0 && !(this.abi.filter(function (e) { return \"constructor\" === e.type && e.inputs.length === t.length; })[0] || {}).payable)\r\n throw new Error(\"Cannot send value to non-payable constructor\");\r\n o = a(this.abi, t);\r\n e.data += o;\r\n _c = e.gas;\r\n if (_c) return [3 /*break*/, 2];\r\n _d = e;\r\n return [4 /*yield*/, this.requestManager.eth_estimateGas(e)];\r\n case 1:\r\n _c = (_d.gas = _e.sent());\r\n _e.label = 2;\r\n case 2:\r\n _c;\r\n return [4 /*yield*/, this.requestManager.eth_sendTransaction(e)];\r\n case 3:\r\n i = _e.sent();\r\n return [4 /*yield*/, function (t, e) {\r\n return __awaiter(this, void 0, void 0, function () { var r, n, o, i, a; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n r = s.future();\r\n n = 0;\r\n o = function () { ++n > 50 ? r.reject(new Error(\"Contract transaction couldn't be found after 50 blocks\")) : t.eth_getTransactionReceipt(e).then(function (t) { t && t.blockHash ? r.resolve(t) : setTimeout(o, 1e3); }, function (t) { return r.reject(t); }); };\r\n o();\r\n return [4 /*yield*/, r];\r\n case 1:\r\n i = _a.sent();\r\n return [4 /*yield*/, t.eth_getCode(i.contractAddress, \"latest\")];\r\n case 2:\r\n a = _a.sent();\r\n if (a.length > 3)\r\n return [2 /*return*/, i.contractAddress];\r\n throw Object.assign(new Error(\"The contract code couldn't be stored, please check your gas amount.\"), { response: a, receipt: i });\r\n }\r\n }); });\r\n }(this.requestManager, i)];\r\n case 4:\r\n c = _e.sent();\r\n return [4 /*yield*/, this.at(c)];\r\n case 5:\r\n u = _e.sent();\r\n return [2 /*return*/, (u.transactionHash = i, u)];\r\n }\r\n }); });\r\n };\r\n class_10.prototype.at = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n if (!n.isAddress(t))\r\n throw new TypeError(\"Invalid address \" + JSON.stringify(t));\r\n return [2 /*return*/, new i.Contract(this.requestManager, this.abi, t)];\r\n }); });\r\n };\r\n class_10.prototype.getData = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var e, r, o; return __generator(this, function (_c) {\r\n e = { data: void 0 };\r\n r = t[t.length - 1];\r\n if (n.isObject(r) && !n.isArray(r) && (e = t.pop()), !e)\r\n throw new Error(\"Missing options object\");\r\n if (!e.data || \"string\" != typeof e.data)\r\n throw new Error(\"Invalid options.data\");\r\n o = a(this.abi, t);\r\n return [2 /*return*/, (e.data += o, e.data)];\r\n }); });\r\n };\r\n return class_10;\r\n }());\r\n }]);\r\n exports.default = ethconnect;\r\n});\r\n// tslint:disable\r\ndefine(\"node_modules/eth-connect/esm\", [\"require\", \"exports\", \"node_modules/eth-connect/eth-connect.esm\"], function (require, exports, eth_connect_esm_1) {\r\n \"use strict\";\r\n var EthConnect = eth_connect_esm_1.default;\r\n return EthConnect;\r\n});\r\ndefine(\"src/abis/PoapDelegateMint\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = [\r\n {\r\n inputs: [\r\n {\r\n internalType: 'address',\r\n name: '_poapContractAddress',\r\n type: 'address',\r\n },\r\n { internalType: 'address', name: '_validSigner', type: 'address' },\r\n ],\r\n payable: false,\r\n stateMutability: 'nonpayable',\r\n type: 'constructor',\r\n },\r\n {\r\n anonymous: false,\r\n inputs: [\r\n {\r\n indexed: false,\r\n internalType: 'bytes',\r\n name: '_signedMessage',\r\n type: 'bytes',\r\n },\r\n ],\r\n name: 'VerifiedSignature',\r\n type: 'event',\r\n },\r\n {\r\n constant: false,\r\n inputs: [\r\n { internalType: 'uint256', name: 'event_id', type: 'uint256' },\r\n { internalType: 'address', name: 'receiver', type: 'address' },\r\n { internalType: 'bytes', name: 'signedMessage', type: 'bytes' },\r\n ],\r\n name: 'mintToken',\r\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\r\n payable: false,\r\n stateMutability: 'nonpayable',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'name',\r\n outputs: [{ internalType: 'string', name: '', type: 'string' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'owner',\r\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [{ internalType: 'bytes', name: '', type: 'bytes' }],\r\n name: 'processed',\r\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'validSigner',\r\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n ];\r\n});\r\ndefine(\"src/ui\", [\"require\", \"exports\", \"src/guestbook\"], function (require, exports, guestbook_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.LastButton = exports.NextButton = exports.SignButton = exports.signaturesUI = exports.background = exports.closeUI = exports.openUI = exports.screenSpaceUI = void 0;\r\n exports.screenSpaceUI = new UICanvas();\r\n exports.screenSpaceUI.visible = true;\r\n var UIOpenTime;\r\n var imageTexture = new Texture('images/UI_Guestbook.png');\r\n var scaleMultiplier = 0.7;\r\n var linesPerGuestBookPage = 14;\r\n function openUI(event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var guestBookPage, allSignatures, totalPages;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n UIOpenTime = +Date.now();\r\n exports.background.visible = true;\r\n exports.background.isPointerBlocker = true;\r\n guestBookPage = 1;\r\n return [4 /*yield*/, guestbook_1.getGuestBook(event)];\r\n case 1:\r\n allSignatures = _a.sent();\r\n totalPages = displaySignatures(allSignatures, guestBookPage);\r\n exports.SignButton.onClick = new OnClick(function () {\r\n guestbook_1.signGuestBook(event);\r\n closeUI();\r\n log('signed guestbook');\r\n });\r\n log('On page ', guestBookPage, ' of ', totalPages);\r\n if (totalPages < 2) {\r\n exports.LastButton.visible = false;\r\n exports.NextButton.visible = false;\r\n }\r\n else {\r\n exports.LastButton.visible = false;\r\n exports.NextButton.visible = true;\r\n }\r\n exports.NextButton.onClick = new OnClick(function () { return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n guestBookPage += 1;\r\n return [4 /*yield*/, guestbook_1.getGuestBook(event)];\r\n case 1:\r\n allSignatures = _a.sent();\r\n displaySignatures(allSignatures, guestBookPage);\r\n exports.LastButton.visible = true;\r\n if (guestBookPage >= totalPages) {\r\n exports.NextButton.visible = false;\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); });\r\n exports.LastButton.onClick = new OnClick(function () { return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n guestBookPage -= 1;\r\n if (guestBookPage < 1) {\r\n guestBookPage = 1;\r\n }\r\n return [4 /*yield*/, guestbook_1.getGuestBook(event)];\r\n case 1:\r\n allSignatures = _a.sent();\r\n displaySignatures(allSignatures, guestBookPage);\r\n exports.NextButton.visible = true;\r\n if (guestBookPage == 1) {\r\n exports.LastButton.visible = false;\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); });\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.openUI = openUI;\r\n function closeUI() {\r\n exports.background.visible = false;\r\n exports.background.isPointerBlocker = false;\r\n }\r\n exports.closeUI = closeUI;\r\n exports.background = new UIImage(exports.screenSpaceUI, imageTexture);\r\n exports.background.name = 'background';\r\n exports.background.width = 1024 * scaleMultiplier;\r\n exports.background.height = 921 * scaleMultiplier;\r\n exports.background.hAlign = 'center';\r\n exports.background.vAlign = 'center';\r\n exports.background.sourceLeft = 0;\r\n exports.background.sourceTop = 76;\r\n exports.background.sourceWidth = 1024;\r\n exports.background.sourceHeight = 921;\r\n exports.background.visible = false;\r\n exports.background.isPointerBlocker = false;\r\n exports.signaturesUI = new UIText(exports.background);\r\n exports.signaturesUI.value = 'Fetching signatures';\r\n exports.signaturesUI.name = 'signatures';\r\n exports.signaturesUI.width = '650px';\r\n exports.signaturesUI.height = '800px';\r\n exports.signaturesUI.hAlign = 'center';\r\n exports.signaturesUI.vAlign = 'center';\r\n exports.signaturesUI.positionY = 0;\r\n exports.signaturesUI.positionX = 0;\r\n exports.signaturesUI.fontSize = 25;\r\n exports.signaturesUI.vTextAlign = 'center';\r\n exports.signaturesUI.hTextAlign = 'center';\r\n exports.signaturesUI.color = Color4.FromHexString('#53508F88');\r\n exports.SignButton = new UIImage(exports.background, imageTexture);\r\n exports.SignButton.name = 'SignButton';\r\n exports.SignButton.width = 460 * scaleMultiplier;\r\n exports.SignButton.height = 75 * scaleMultiplier;\r\n exports.SignButton.hAlign = 'center';\r\n exports.SignButton.vAlign = 'center';\r\n exports.SignButton.positionY = (-839 + 921 / 2) * scaleMultiplier;\r\n exports.SignButton.positionX = 0;\r\n exports.SignButton.sourceLeft = 76;\r\n exports.SignButton.sourceTop = 0;\r\n exports.SignButton.sourceWidth = 460;\r\n exports.SignButton.sourceHeight = 75;\r\n exports.NextButton = new UIImage(exports.background, imageTexture);\r\n exports.NextButton.name = 'NextButton';\r\n exports.NextButton.width = 76 * scaleMultiplier;\r\n exports.NextButton.height = 76 * scaleMultiplier;\r\n exports.NextButton.hAlign = 'center';\r\n exports.NextButton.vAlign = 'center';\r\n exports.NextButton.positionY = 0;\r\n exports.NextButton.positionX = 300;\r\n exports.NextButton.sourceLeft = 537;\r\n exports.NextButton.sourceTop = 0;\r\n exports.NextButton.sourceWidth = 75;\r\n exports.NextButton.sourceHeight = 75;\r\n exports.LastButton = new UIImage(exports.background, imageTexture);\r\n exports.LastButton.name = 'LastButton';\r\n exports.LastButton.width = 76 * scaleMultiplier;\r\n exports.LastButton.height = 76 * scaleMultiplier;\r\n exports.LastButton.hAlign = 'center';\r\n exports.LastButton.vAlign = 'center';\r\n exports.LastButton.positionY = 0;\r\n exports.LastButton.positionX = -300;\r\n exports.LastButton.sourceLeft = 0;\r\n exports.LastButton.sourceTop = 0;\r\n exports.LastButton.sourceWidth = 75;\r\n exports.LastButton.sourceHeight = 75;\r\n // arrange all signatures into pages\r\n function displaySignatures(allSignatures, guestBookPage) {\r\n var signaturePage = 0;\r\n var signatureList = [''];\r\n for (var i = 0; i < allSignatures.length; i++) {\r\n signatureList[signaturePage] = signatureList[signaturePage].concat(allSignatures[i].name);\r\n signatureList[signaturePage] = signatureList[signaturePage].concat(' - ');\r\n var lines = signatureList[signaturePage].split('\\n');\r\n if (lines[lines.length - 1].length > 25) {\r\n signatureList[signaturePage] = signatureList[signaturePage].concat('\\n');\r\n }\r\n if (lines.length >= linesPerGuestBookPage) {\r\n signaturePage += 1;\r\n signatureList.push('');\r\n //guestBookPage\r\n }\r\n }\r\n exports.signaturesUI.value = signatureList[guestBookPage - 1];\r\n log('signature to show from page ', guestBookPage, ' :', signatureList[guestBookPage - 1]);\r\n return signatureList.length;\r\n }\r\n // Instance the input object\r\n var input = Input.instance;\r\n //button down event\r\n input.subscribe('BUTTON_DOWN', ActionButton.POINTER, false, function (e) {\r\n var currentTime = +Date.now();\r\n var isOpen;\r\n if (exports.background.visible) {\r\n isOpen = true;\r\n }\r\n else {\r\n isOpen = false;\r\n }\r\n if (isOpen && currentTime - UIOpenTime > 100) {\r\n closeUI();\r\n }\r\n });\r\n});\r\ndefine(\"src/guestbook\", [\"require\", \"exports\", \"src/ui\", \"src/poapHandler\"], function (require, exports, ui_1, poapHandler_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.signGuestBook = exports.getGuestBook = exports.GuestBook = exports.fireBaseServer = void 0;\r\n // external servers being used by the project - Please change these to your own if working on something else!\r\n exports.fireBaseServer = 'https://us-central1-decentraland-events.cloudfunctions.net/app/';\r\n // get player data\r\n var GuestBook = /** @class */ (function (_super) {\r\n __extends(GuestBook, _super);\r\n function GuestBook(transform, eventName\r\n //,sound: AudioClip\r\n ) {\r\n var _this = _super.call(this) || this;\r\n engine.addEntity(_this);\r\n _this.addComponent(new GLTFShape('models/guestbook/guestbook.glb'));\r\n _this.addComponent(new Transform(transform));\r\n _this.eventName = eventName;\r\n _this.addComponent(new OnPointerDown(function () {\r\n ui_1.openUI(eventName);\r\n log('OPENED GUESTBOOK');\r\n }, { hoverText: 'Open' }));\r\n var guestBookBase = new Entity();\r\n guestBookBase.addComponent(new Transform());\r\n guestBookBase.addComponent(new GLTFShape('models/guestbook/guestbook_base.glb'));\r\n guestBookBase.setParent(_this);\r\n return _this;\r\n }\r\n return GuestBook;\r\n }(Entity));\r\n exports.GuestBook = GuestBook;\r\n // get latest scoreboard data from server\r\n function getGuestBook(event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, response, json, e_10;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 3, , 4]);\r\n url = exports.fireBaseServer + 'get-signatures/?event=' + event;\r\n return [4 /*yield*/, fetch(url)];\r\n case 1:\r\n response = _a.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 2:\r\n json = _a.sent();\r\n log(json);\r\n return [2 /*return*/, json];\r\n case 3:\r\n e_10 = _a.sent();\r\n log('error fetching scores from server ', e_10);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.getGuestBook = getGuestBook;\r\n // change data in scoreboard\r\n function signGuestBook(event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, body, _a, _b, _c, response, e_11;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (!!poapHandler_1.userData) return [3 /*break*/, 2];\r\n return [4 /*yield*/, poapHandler_1.setUserData()];\r\n case 1:\r\n _d.sent();\r\n _d.label = 2;\r\n case 2:\r\n _d.trys.push([2, 6, , 7]);\r\n url = exports.fireBaseServer + 'add-signature/?event=' + event;\r\n _b = (_a = JSON).stringify;\r\n _c = {};\r\n return [4 /*yield*/, poapHandler_1.userData];\r\n case 3:\r\n _c.id = (_d.sent()).userId;\r\n return [4 /*yield*/, poapHandler_1.userData];\r\n case 4:\r\n body = _b.apply(_a, [(_c.name = (_d.sent()).displayName,\r\n _c)]);\r\n log(body);\r\n return [4 /*yield*/, fetch(url, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: body,\r\n })];\r\n case 5:\r\n response = _d.sent();\r\n return [2 /*return*/, response.json()];\r\n case 6:\r\n e_11 = _d.sent();\r\n log('error posting to server ', e_11);\r\n return [3 /*break*/, 7];\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.signGuestBook = signGuestBook;\r\n});\r\ndefine(\"src/game\", [\"require\", \"exports\", \"src/dispenser\", \"src/guestbook\"], function (require, exports, dispenser_1, guestbook_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.sceneMessageBus = void 0;\r\n // GUESTBOOK\r\n var guestBook = new guestbook_2.GuestBook({\r\n position: new Vector3(10, 0, 6),\r\n }, 'test');\r\n // POAP BOOTH\r\n var POAPBooth = new dispenser_1.Dispenser({\r\n position: new Vector3(8, 0, 8),\r\n }, 'genesis');\r\n // MAKE POAP BOOTH MULTIPLAYER\r\n exports.sceneMessageBus = new MessageBus();\r\n exports.sceneMessageBus.on('activatePoap', function () {\r\n POAPBooth.activate();\r\n });\r\n // POAP BANNER\r\n var POAPBanner = new Entity();\r\n POAPBanner.addComponent(new Transform({\r\n position: new Vector3(6, 0, 8),\r\n }));\r\n POAPBanner.addComponent(new GLTFShape('models/poap/POAP_Banner.glb'));\r\n engine.addEntity(POAPBanner);\r\n POAPBanner.addComponent(new OnPointerDown(function (e) {\r\n openExternalURL('https://www.poap.xyz/');\r\n }, { hoverText: 'Learn More' }));\r\n // FLOOR\r\n var entity = new Entity('entity');\r\n engine.addEntity(entity);\r\n entity.addComponentOrReplace(new GLTFShape('models/FloorBaseGrass_01/FloorBaseGrass_01.glb'));\r\n entity.addComponentOrReplace(new Transform({\r\n position: new Vector3(8, 0, 8),\r\n rotation: new Quaternion(0, 0, 0, 1),\r\n scale: new Vector3(1, 1, 1),\r\n }));\r\n});\r\ndefine(\"src/poapHandler\", [\"require\", \"exports\", \"@decentraland/Identity\", \"node_modules/eth-connect/esm\", \"@decentraland/EthereumController\", \"@decentraland/web3-provider\", \"src/abis/PoapDelegateMint\", \"src/game\"], function (require, exports, Identity_1, eth, EthereumController, web3_provider_1, PoapDelegateMint_1, game_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.makeTransaction = exports.getSignedMessage = exports.getSecret = exports.callQRAPI = exports.setUserData = exports.fetchUserData = exports.userData = exports.fireBaseServer = exports.ethController = void 0;\r\n exports.ethController = EthereumController;\r\n exports.fireBaseServer = 'https://us-central1-decentraland-events.cloudfunctions.net/app/';\r\n function fetchUserData() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Identity_1.getUserData()];\r\n case 1:\r\n data = _a.sent();\r\n log(data.displayName);\r\n return [2 /*return*/, data];\r\n }\r\n });\r\n });\r\n }\r\n exports.fetchUserData = fetchUserData;\r\n function setUserData() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Identity_1.getUserData()];\r\n case 1:\r\n data = _a.sent();\r\n log(data.displayName);\r\n exports.userData = data;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.setUserData = setUserData;\r\n function callQRAPI(event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, response, data, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n url = exports.fireBaseServer + 'get-poap-code/?event=' + event;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(url)];\r\n case 2:\r\n response = _b.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n data = _b.sent();\r\n log('TOKEN: ', data.token);\r\n return [2 /*return*/, data.token.toString()];\r\n case 4:\r\n _a = _b.sent();\r\n log('error fetching from token server ', url);\r\n return [3 /*break*/, 5];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.callQRAPI = callQRAPI;\r\n function getSecret(qrHex) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, response, data, json, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n url = 'https://api.poap.xyz/actions/claim-qr?qr_hash=' + qrHex;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(url)];\r\n case 2:\r\n response = _b.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n data = _b.sent();\r\n json = { secret: data.secret, event_id: data.event_id };\r\n log('secret :', json);\r\n return [2 /*return*/, json];\r\n case 4:\r\n _a = _b.sent();\r\n log('error fetching from POAP server ', url);\r\n return [3 /*break*/, 5];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.getSecret = getSecret;\r\n function getSignedMessage(data, qrHex) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, method, headers, body, response, data_1, json, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n url = 'https://api.poap.xyz/actions/claim-qr';\r\n method = 'POST';\r\n headers = { 'Content-Type': 'application/json' };\r\n body = JSON.stringify({\r\n address: exports.userData.publicKey,\r\n delegated: true,\r\n qr_hash: qrHex,\r\n secret: data.secret,\r\n });\r\n log('sending ', body);\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(url, {\r\n headers: headers,\r\n method: method,\r\n body: body,\r\n })];\r\n case 2:\r\n response = _b.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n data_1 = _b.sent();\r\n json = {\r\n signed_message: data_1.delegated_signed_message,\r\n event_id: data_1.event_id,\r\n };\r\n return [2 /*return*/, json];\r\n case 4:\r\n _a = _b.sent();\r\n log('error fetching from POAP server ', url);\r\n return [3 /*break*/, 5];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.getSignedMessage = getSignedMessage;\r\n function makeTransaction(event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var qrHex, secret, signature, provider, rm, poapTokenFactory, PoapDelegatedMint;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!!exports.userData) return [3 /*break*/, 2];\r\n return [4 /*yield*/, fetchUserData()];\r\n case 1:\r\n exports.userData = _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n if (!exports.userData.hasConnectedWeb3) {\r\n log('no wallet');\r\n return [2 /*return*/];\r\n }\r\n return [4 /*yield*/, callQRAPI(event)];\r\n case 3:\r\n qrHex = _a.sent();\r\n return [4 /*yield*/, getSecret(qrHex)];\r\n case 4:\r\n secret = _a.sent();\r\n return [4 /*yield*/, getSignedMessage(secret, qrHex)];\r\n case 5:\r\n signature = _a.sent();\r\n log('signature for request ', signature);\r\n return [4 /*yield*/, web3_provider_1.getProvider()];\r\n case 6:\r\n provider = _a.sent();\r\n rm = new eth.RequestManager(provider);\r\n return [4 /*yield*/, new eth.ContractFactory(rm, PoapDelegateMint_1.default)];\r\n case 7:\r\n poapTokenFactory = _a.sent();\r\n return [4 /*yield*/, poapTokenFactory.at(\r\n //ropsten\r\n //'0x2f3c23b50396EcB55C73956B069CF04e493bdEf9'\r\n //mainnet\r\n '0xAac2497174f2Ec4069A98375A67D798db8a05337')];\r\n case 8:\r\n PoapDelegatedMint = (_a.sent());\r\n return [4 /*yield*/, PoapDelegatedMint.mintToken(signature.event_id, exports.userData.publicKey, signature.signed_message, {\r\n from: exports.userData.publicKey,\r\n }).then(game_1.sceneMessageBus.emit('activatePoap', {}))];\r\n case 9:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.makeTransaction = makeTransaction;\r\n});\r\ndefine(\"src/dispenser\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/index\", \"src/poapHandler\", \"src/game\"], function (require, exports, index_1, poapHandler_2, game_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Dispenser = void 0;\r\n var Dispenser = /** @class */ (function (_super) {\r\n __extends(Dispenser, _super);\r\n function Dispenser(transform, eventName) {\r\n var _this = _super.call(this) || this;\r\n _this.idleAnim = new AnimationState('Idle_POAP', { looping: true });\r\n _this.buyAnim = new AnimationState('Action_POAP', { looping: false });\r\n _this.buttonAnim = new AnimationState('Button_Action', { looping: false });\r\n engine.addEntity(_this);\r\n _this.addComponent(new GLTFShape('models/poap/POAP_dispenser.glb'));\r\n _this.addComponent(new Transform(transform));\r\n _this.addComponent(new Animator());\r\n _this.getComponent(Animator).addClip(_this.idleAnim);\r\n _this.getComponent(Animator).addClip(_this.buyAnim);\r\n _this.idleAnim.play();\r\n _this.eventName = eventName;\r\n var button = new Entity();\r\n button.addComponent(new GLTFShape('models/poap/POAP_button.glb'));\r\n button.addComponent(new Animator());\r\n button.getComponent(Animator).addClip(_this.buttonAnim);\r\n button.setParent(_this);\r\n button.addComponent(new OnPointerDown(function (e) {\r\n button.getComponent(Animator).getClip('Action').stop();\r\n button.getComponent(Animator).getClip('Action').play();\r\n game_2.sceneMessageBus.emit('activatePoap', {});\r\n poapHandler_2.makeTransaction(eventName);\r\n }, { hoverText: 'Get Attendance Token' }));\r\n engine.addEntity(button);\r\n return _this;\r\n }\r\n Dispenser.prototype.activate = function () {\r\n var anim = this.getComponent(Animator);\r\n anim.getClip('Idle_POAP').stop();\r\n anim.getClip('Action_POAP').stop();\r\n anim.getClip('Action_POAP').play();\r\n this.addComponentOrReplace(new index_1.default.Delay(4000, function () {\r\n anim.getClip('Action_POAP').stop();\r\n anim.getClip('Idle_POAP').play();\r\n }));\r\n };\r\n return Dispenser;\r\n }(Entity));\r\n exports.Dispenser = Dispenser;\r\n});\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9jb21wb25lbnQvaXRyYW5zZm9ybWNvbXBvbmVudC50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9tYXRoL2ludGVycG9sYXRpb24udHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L3JvdGF0ZS50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9jb21wb25lbnQvc2NhbGUudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L2ZvbGxvd3BhdGgudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L2tlZXByb3RhdGluZy50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9zeXN0ZW0vdHJhbnNmcm9tU3lzdGVtLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdHJhbnNmb3JtL2NvbXBvbmVudC9tb3ZlLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdG9nZ2xlL3RvZ2dsZUNvbXBvbmVudC50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RpbWVyL2NvbXBvbmVudC9pdGltZXJjb21wb25lbnQudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90aW1lci9jb21wb25lbnQvaW50ZXJ2YWwudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90aW1lci9jb21wb25lbnQvZXhwaXJlLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdGltZXIvc3lzdGVtL3RpbWVyU3lzdGVtLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdGltZXIvY29tcG9uZW50L2RlbGF5LnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdHJpZ2dlcnMvdHJpZ2dlclN5c3RlbS50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL2FjdGlvbnNTZXF1ZW5jZVN5c3RlbS9hY3Rpb25zU2VxdWVuY2VTeXN0ZW0udHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy9pbmRleC50cyIsIi4uL25vZGVfbW9kdWxlcy9ldGgtY29ubmVjdC9ldGgtY29ubmVjdC5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvZXRoLWNvbm5lY3QvZXNtLnRzIiwiLi4vc3JjL2FiaXMvUG9hcERlbGVnYXRlTWludC5qcyIsIi4uL3NyYy91aS50cyIsIi4uL3NyYy9ndWVzdGJvb2sudHMiLCIuLi9zcmMvZ2FtZS50cyIsIi4uL3NyYy9wb2FwSGFuZGxlci50cyIsIi4uL3NyYy9kaXNwZW5zZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNBQSxJQUFZLGlCQUtYO0lBTEQsV0FBWSxpQkFBaUI7UUFDM0IsNkRBQU0sQ0FBQTtRQUNOLHFFQUFVLENBQUE7UUFDVix1RUFBVyxDQUFBO1FBQ1gsaUVBQVEsQ0FBQTtJQUNWLENBQUMsRUFMVyxpQkFBaUIsR0FBakIseUJBQWlCLEtBQWpCLHlCQUFpQixRQUs1QjtJQUVELFNBQWdCLFdBQVcsQ0FBQyxJQUF1QixFQUFFLENBQVM7UUFDNUQsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLGlCQUFpQixDQUFDLE1BQU07Z0JBQzNCLE9BQU8saUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDN0IsS0FBSyxpQkFBaUIsQ0FBQyxVQUFVO2dCQUMvQixPQUFPLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2pDLEtBQUssaUJBQWlCLENBQUMsV0FBVztnQkFDaEMsT0FBTyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNsQyxLQUFLLGlCQUFpQixDQUFDLFFBQVE7Z0JBQzdCLE9BQU8sbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDL0I7Z0JBQ0UsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUM5QjtJQUNILENBQUM7SUFiRCxrQ0FhQztJQUNELFNBQVMsaUJBQWlCLENBQUMsQ0FBUztRQUNsQyxPQUFPLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFDRCxTQUFTLHFCQUFxQixDQUFDLENBQVM7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2QsQ0FBQztJQUNELFNBQVMsc0JBQXNCLENBQUMsQ0FBUztRQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNwQixDQUFDO0lBQ0QsU0FBUyxtQkFBbUIsQ0FBQyxDQUFTO1FBQ3BDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFBO0lBQzVDLENBQUM7Ozs7OztJQzVCRDs7T0FFRztJQUVIO1FBVUU7Ozs7Ozs7V0FPRztRQUNILGtDQUNFLEtBQXlCLEVBQ3pCLEdBQXVCLEVBQ3ZCLFFBQWdCLEVBQ2hCLGdCQUE2QixFQUM3QixpQkFBK0Q7WUFBL0Qsa0NBQUEsRUFBQSxvQkFBdUMsaUNBQWlCLENBQUMsTUFBTTtZQUUvRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtZQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQTtZQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFBO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFBO1lBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQTtZQUN4QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUE7WUFFMUMsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUE7YUFDMUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUE7Z0JBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUE7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFBO2FBQ2xCO1lBRUQsaUNBQWUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO1FBQ3hDLENBQUM7UUFFRCx5Q0FBTSxHQUFOLFVBQU8sRUFBVTtZQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFDckMsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFBO1lBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRywyQkFBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDMUUsQ0FBQztRQUVELDhDQUFXLEdBQVg7WUFDRSxPQUFPLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFBO1FBQ2pDLENBQUM7UUFFRCx5REFBc0IsR0FBdEIsVUFBdUIsU0FBb0I7WUFDekMsU0FBUyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDNUUsQ0FBQztRQTFEVSx3QkFBd0I7WUFEcEMsU0FBUyxDQUFDLDBCQUEwQixDQUFDOztXQUN6Qix3QkFBd0IsQ0EyRHBDO1FBQUQsK0JBQUM7S0FBQSxBQTNERCxJQTJEQztJQTNEWSw0REFBd0I7Ozs7OztJQ0pyQzs7T0FFRztJQUVIO1FBVUU7Ozs7Ozs7V0FPRztRQUNILGlDQUNFLEtBQXNCLEVBQ3RCLEdBQW9CLEVBQ3BCLFFBQWdCLEVBQ2hCLGdCQUE2QixFQUM3QixpQkFBK0Q7WUFBL0Qsa0NBQUEsRUFBQSxvQkFBdUMsaUNBQWlCLENBQUMsTUFBTTtZQUUvRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtZQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQTtZQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFBO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFBO1lBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQTtZQUN4QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUE7WUFFMUMsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUE7YUFDMUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUE7Z0JBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUE7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFBO2FBQ2xCO1lBRUQsaUNBQWUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO1FBQ3hDLENBQUM7UUFFRCx3Q0FBTSxHQUFOLFVBQU8sRUFBVTtZQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFDckMsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFBO1lBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRywyQkFBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDMUUsQ0FBQztRQUVELDZDQUFXLEdBQVg7WUFDRSxPQUFPLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFBO1FBQ2pDLENBQUM7UUFFRCx3REFBc0IsR0FBdEIsVUFBdUIsU0FBb0I7WUFDekMsU0FBUyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckUsQ0FBQztRQTFEVSx1QkFBdUI7WUFEbkMsU0FBUyxDQUFDLHlCQUF5QixDQUFDOztXQUN4Qix1QkFBdUIsQ0EyRG5DO1FBQUQsOEJBQUM7S0FBQSxBQTNERCxJQTJEQztJQTNEWSwwREFBdUI7Ozs7OztJQ0xwQzs7T0FFRztJQUVIO1FBU0U7Ozs7OztXQU1HO1FBQ0gsNkJBQ0UsTUFBaUIsRUFDakIsUUFBZ0IsRUFDaEIsZ0JBQTZCLEVBQzdCLHNCQUE0RTtZQWxCdEUsVUFBSyxHQUFhLEVBQUUsQ0FBQTtZQW9CMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUE7WUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUE7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7WUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFBO1lBQ3hDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQTtZQUVwRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUE7YUFDekU7WUFFRCxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hCLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQTtnQkFDbkIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFBO2dCQUNyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQzFDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDOUQsV0FBVyxJQUFJLE1BQU0sQ0FBQTtvQkFDckIsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtpQkFDMUI7Z0JBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUE7aUJBQ2xFO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUE7Z0JBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7YUFDdEM7WUFFRCxpQ0FBZSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFDeEMsQ0FBQztRQUVELG9DQUFNLEdBQU4sVUFBTyxFQUFVO1lBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDeEQsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFBO1lBQ0QsSUFDRSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUMxQztnQkFDQSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFBO2dCQUN2QixJQUNFLElBQUksQ0FBQyxzQkFBc0I7b0JBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztvQkFFMUMsSUFBSSxDQUFDLHNCQUFzQixDQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUNuQyxDQUFBO2FBQ0o7UUFDSCxDQUFDO1FBRUQseUNBQVcsR0FBWDtZQUNFLE9BQU8sQ0FDTCxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FDeEUsQ0FBQTtRQUNILENBQUM7UUFFRCxvREFBc0IsR0FBdEIsVUFBdUIsU0FBb0I7WUFDekMsU0FBUyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxFQUNsQyxJQUFJLENBQUMsY0FBYyxDQUNwQixDQUFBO1FBQ0gsQ0FBQztRQXRGVSxtQkFBbUI7WUFEL0IsU0FBUyxDQUFDLHFCQUFxQixDQUFDOztXQUNwQixtQkFBbUIsQ0F1Ri9CO1FBQUQsMEJBQUM7S0FBQSxBQXZGRCxJQXVGQztJQXZGWSxrREFBbUI7Ozs7OztJQ0poQzs7T0FFRztJQUVIO1FBT0U7Ozs7V0FJRztRQUNILCtCQUFZLGdCQUE0QixFQUFFLGdCQUE2QjtZQUNyRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUE7WUFDeEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFBO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQTtZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtZQUVyQixpQ0FBZSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFDeEMsQ0FBQztRQUVELHNDQUFNLEdBQU4sVUFBTyxFQUFVO1lBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUM5QixVQUFVLENBQUMsUUFBUSxFQUNuQixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLEVBQUUsQ0FDSCxDQUFBO1FBQ0gsQ0FBQztRQUVELDJDQUFXLEdBQVg7WUFDRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7UUFDdEIsQ0FBQztRQUVELHNEQUFzQixHQUF0QixVQUF1QixTQUFvQjtZQUN6QyxTQUFTLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNqRSxDQUFDO1FBRUQsb0NBQUksR0FBSjtZQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO1FBQ3RCLENBQUM7UUF2Q1UscUJBQXFCO1lBRGpDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQzs2Q0FhSCxVQUFVO1dBWjdCLHFCQUFxQixDQXdDakM7UUFBRCw0QkFBQztLQUFBLEFBeENELElBd0NDO0lBeENZLHNEQUFxQjs7Ozs7O0lDQWxDO1FBbUJFO1lBaEJRLGdCQUFXLEdBQWdELEVBQUUsQ0FBQTtZQWlCbkUsZUFBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7WUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsNkJBQXNCLENBQUMsQ0FBQTtZQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQ0FBd0IsQ0FBQyxDQUFBO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLCtCQUF1QixDQUFDLENBQUE7WUFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0NBQW1CLENBQUMsQ0FBQTtZQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxvQ0FBcUIsQ0FBQyxDQUFBO1FBQzlDLENBQUM7UUFyQk0sb0NBQW9CLEdBQTNCO1lBQ0UsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBO2dCQUN0QyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTthQUNqQztZQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQTtRQUN2QixDQUFDO1FBRU0sdUNBQXVCLEdBQTlCLFVBQ0UsU0FBa0M7WUFFbEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN6RCxDQUFDO1FBV0QsZ0NBQU0sR0FBTixVQUFPLEVBQVU7WUFBakIsaUJBSUM7WUFIQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFBLFNBQVM7Z0JBQ2hDLEtBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1lBQ3JDLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUVPLHlDQUFlLEdBQXZCLFVBQ0UsRUFBVSxFQUNWLFNBQWtDO1lBRWxDLElBQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFFNUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBQSxNQUFNO2dCQUMzQixJQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUNoRCxJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUUzQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUNmLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDdEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7b0JBQ3RCLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQzVCLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUk7d0JBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7aUJBQzNEO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBbERjLHlCQUFTLEdBQTJCLElBQUksQ0FBQTtRQW1EekQsc0JBQUM7S0FBQSxBQXBERCxJQW9EQztJQXBEWSwwQ0FBZTs7Ozs7O0lDSDVCOztPQUVHO0lBRUg7UUFVRTs7Ozs7OztXQU9HO1FBQ0gsZ0NBQ0UsS0FBc0IsRUFDdEIsR0FBb0IsRUFDcEIsUUFBZ0IsRUFDaEIsZ0JBQTZCLEVBQzdCLGlCQUErRDtZQUEvRCxrQ0FBQSxFQUFBLG9CQUF1QyxpQ0FBaUIsQ0FBQyxNQUFNO1lBRS9ELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1lBQ2xCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO1lBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUE7WUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUE7WUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFBO1lBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQTtZQUUxQyxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQTthQUMxQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtnQkFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQTtnQkFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUE7YUFDbEI7WUFFRCxpQ0FBZSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFDeEMsQ0FBQztRQUVELHVDQUFNLEdBQU4sVUFBTyxFQUFVO1lBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUNyQyxDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUE7WUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLDJCQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUMxRSxDQUFDO1FBRUQsNENBQVcsR0FBWDtZQUNFLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUE7UUFDakMsQ0FBQztRQUVELHVEQUFzQixHQUF0QixVQUF1QixTQUFvQjtZQUN6QyxTQUFTLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN4RSxDQUFDO1FBMURVLHNCQUFzQjtZQURsQyxTQUFTLENBQUMsd0JBQXdCLENBQUM7O1dBQ3ZCLHNCQUFzQixDQTJEbEM7UUFBRCw2QkFBQztLQUFBLEFBM0RELElBMkRDO0lBM0RZLHdEQUFzQjs7Ozs7O0lDUm5DLElBQVksV0FHWDtJQUhELFdBQVksV0FBVztRQUNyQiwyQ0FBTyxDQUFBO1FBQ1AseUNBQUUsQ0FBQTtJQUNKLENBQUMsRUFIVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQUd0QjtJQUVEOztPQUVHO0lBRUg7UUFNRTs7OztXQUlHO1FBQ0gseUJBQ0UsYUFBMkMsRUFDM0Msc0JBQXFEO1lBRHJELDhCQUFBLEVBQUEsZ0JBQTZCLFdBQVcsQ0FBQyxFQUFFO1lBWHRDLFlBQU8sR0FBWSxJQUFJLENBQUE7WUFHdEIsVUFBSyxHQUFnQixXQUFXLENBQUMsR0FBRyxDQUFBO1lBVzFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUE7WUFDdkIsSUFBSSxzQkFBc0I7Z0JBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1FBQ3RFLENBQUM7UUFFRDs7O1dBR0c7UUFDSSw2QkFBRyxHQUFWLFVBQVcsS0FBa0I7WUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7WUFDbEIsSUFBSSxJQUFJLENBQUMsc0JBQXNCO2dCQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyRSxDQUFDO1FBRUQ7O1dBRUc7UUFDSSxnQ0FBTSxHQUFiO1lBQ0UsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDekI7UUFDSCxDQUFDO1FBRUQ7O1dBRUc7UUFDSSw4QkFBSSxHQUFYO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUE7UUFDckMsQ0FBQztRQUVEOzs7V0FHRztRQUNJLHFDQUFXLEdBQWxCLFVBQ0Usc0JBQW9EO1lBRXBELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQTtRQUN0RCxDQUFDO1FBcERVLGVBQWU7WUFEM0IsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7V0FDUCxlQUFlLENBcUQzQjtRQUFELHNCQUFDO0tBQUEsQUFyREQsSUFxREM7SUFyRFksMENBQWU7SUF1RDVCLGtCQUFlO1FBQ2IsZUFBZSxpQkFBQTtRQUNmLFdBQVcsYUFBQTtLQUNaLENBQUE7Ozs7Ozs7Ozs7SUVoRUQ7O09BRUc7SUFFSDtRQU9FOzs7V0FHRztRQUNILGtCQUFZLFNBQWlCLEVBQUUscUJBQWtDO1lBQWpFLGlCQVVDO1lBVEMseUJBQVcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO1lBRWxDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFBO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQTtZQUNsQyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUE7WUFDbEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHO2dCQUN6QixLQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQTtnQkFDcEIsSUFBSSxLQUFJLENBQUMscUJBQXFCO29CQUFFLEtBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1lBQzlELENBQUMsQ0FBQTtRQUNILENBQUM7UUFFRCw4QkFBVyxHQUFYLFVBQVkscUJBQWlDO1lBQzNDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQTtRQUNwRCxDQUFDO1FBekJVLFFBQVE7WUFEcEIsU0FBUyxDQUFDLGVBQWUsQ0FBQzs7V0FDZCxRQUFRLENBMEJwQjtRQUFELGVBQUM7S0FBQSxBQTFCRCxJQTBCQztJQTFCWSw0QkFBUTs7Ozs7O0lDSnJCOztPQUVHO0lBRUg7UUFPRTs7O1dBR0c7UUFDSCxrQkFBWSxTQUFpQixFQUFFLHFCQUFrQztZQUFqRSxpQkFXQztZQVZDLHlCQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtZQUVsQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQTtZQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUE7WUFDbEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFBO1lBQ2xELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxVQUFBLE1BQU07Z0JBQy9CLElBQUksS0FBSSxDQUFDLHFCQUFxQjtvQkFBRSxLQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtnQkFDNUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFJLENBQUMsQ0FBQTtnQkFDNUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUM3QixDQUFDLENBQUE7UUFDSCxDQUFDO1FBRUQsOEJBQVcsR0FBWCxVQUFZLHFCQUFpQztZQUMzQyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUE7UUFDcEQsQ0FBQztRQTFCVSxRQUFRO1lBRHBCLFNBQVMsQ0FBQyxlQUFlLENBQUM7O1dBQ2QsUUFBUSxDQTJCcEI7UUFBRCxlQUFDO0tBQUEsQUEzQkQsSUEyQkM7SUEzQlksNEJBQVE7Ozs7OztJQ0ZyQjtRQW1CRTtZQWhCUSxnQkFBVyxHQUE0QyxFQUFFLENBQUE7WUFpQi9ELFdBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG1CQUFRLENBQUMsQ0FBQTtZQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFLLENBQUMsQ0FBQTtZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBUSxDQUFDLENBQUE7UUFDakMsQ0FBQztRQW5CTSxnQ0FBb0IsR0FBM0I7WUFDRSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFO2dCQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUE7Z0JBQ2xDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO2FBQ2pDO1lBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBO1FBQ3ZCLENBQUM7UUFFTSxtQ0FBdUIsR0FBOUIsVUFDRSxTQUFrQztZQUVsQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3pELENBQUM7UUFTRCw0QkFBTSxHQUFOLFVBQU8sRUFBVTtZQUFqQixpQkFJQztZQUhDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQUEsU0FBUztnQkFDaEMsS0FBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFDckMsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBRU8scUNBQWUsR0FBdkIsVUFDRSxFQUFVLEVBQ1YsU0FBa0M7WUFFbEMsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBRXZELEtBQUssSUFBTSxHQUFHLElBQUksTUFBTSxFQUFFO2dCQUN4QixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzlCLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtvQkFDeEIsSUFBSSxjQUFjLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQTtvQkFFbkQsY0FBYyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUE7b0JBQ2hDLElBQUksY0FBYyxDQUFDLFdBQVcsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFO3dCQUMzRCxjQUFjLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUE7cUJBQzNDO2lCQUNGO2FBQ0Y7UUFDSCxDQUFDO1FBaERjLHFCQUFTLEdBQXVCLElBQUksQ0FBQTtRQWlEckQsa0JBQUM7S0FBQSxBQWxERCxJQWtEQztJQWxEWSxrQ0FBVzs7Ozs7O0lDRnhCOztPQUVHO0lBRUg7UUFPRTs7O1dBR0c7UUFDSCxlQUFZLFNBQWlCLEVBQUUscUJBQWtDO1lBQWpFLGlCQVVDO1lBVEMseUJBQVcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO1lBRWxDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFBO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQTtZQUNsQyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUE7WUFDbEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFVBQUEsTUFBTTtnQkFDL0IsSUFBSSxLQUFJLENBQUMscUJBQXFCO29CQUFFLEtBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO2dCQUM1RCxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQUksQ0FBQyxDQUFBO1lBQzlCLENBQUMsQ0FBQTtRQUNILENBQUM7UUFFRCwyQkFBVyxHQUFYLFVBQVkscUJBQWlDO1lBQzNDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQTtRQUNwRCxDQUFDO1FBekJVLEtBQUs7WUFEakIsU0FBUyxDQUFDLFlBQVksQ0FBQzs7V0FDWCxLQUFLLENBMEJqQjtRQUFELFlBQUM7S0FBQSxBQTFCRCxJQTBCQztJQTFCWSxzQkFBSzs7Ozs7O0lDUGxCO1FBU0U7WUFIUSxjQUFTLEdBQW1DLEVBQUUsQ0FBQTtZQUlwRCxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtZQUM5QixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxhQUFhLENBQzVDLElBQUksZUFBZSxDQUFDLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN6RSxDQUFBO1FBQ0gsQ0FBQztRQVpELHNCQUFXLHlCQUFRO2lCQUFuQjtnQkFDRSxPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO1lBQ3BDLENBQUM7OztXQUFBO1FBWU0sa0NBQW9CLEdBQTNCO1lBQ0UsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFBO2dCQUNwQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTthQUNqQztZQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQTtRQUN2QixDQUFDO1FBRUQ7OztXQUdHO1FBQ0gsNkNBQXFCLEdBQXJCLFVBQXNCLEtBQTJDO1lBQy9ELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDNUMsQ0FBQztRQUVELDhCQUFNLEdBQU47WUFBQSxpQkE0REM7WUEzREMscUNBQXFDO1lBQ3JDLElBQUksb0JBQW9CLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDO2lCQUNsRSxRQUFRLENBQUE7WUFFWCx1RkFBdUY7WUFDdkYsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFVBQUEsTUFBTTtnQkFDakMsSUFBSSxLQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQ3hDLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtpQkFDL0I7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUVGLGtDQUFrQztZQUNsQyxLQUFLLElBQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2hDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3RDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBRWpDLHFCQUFxQjtvQkFDckIsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUU7d0JBQ3pCLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO3FCQUM1QjtvQkFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFO3dCQUN6QixrQkFBa0I7d0JBQ2xCLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFOzRCQUN6QixPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTt5QkFDNUI7d0JBQ0QsdUJBQXVCO3dCQUN2QixhQUFhLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUE7d0JBQzlDLG9CQUFvQjt3QkFDcEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO3FCQUMzQjt5QkFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO3dCQUM3RCxxQ0FBcUM7d0JBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFOzRCQUN2QixJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQ0FDekIsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFBOzZCQUN6Qjt5QkFDRjt3QkFDRCxnQkFBZ0I7d0JBQ2hCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFBO3dCQUV6Qix3QkFBd0I7d0JBQ3hCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7NEJBQ2pFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQTt5QkFDMUM7d0JBRUQsNkJBQTZCO3dCQUM3QixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFOzRCQUNuRSxJQUFJLENBQUMsa0NBQWtDLENBQUMsT0FBTyxDQUFDLENBQUE7eUJBQ2pEO3FCQUNGO3lCQUFNLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTt3QkFDN0IsT0FBTyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7d0JBQzFCLGtCQUFrQjt3QkFDbEIsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUU7NEJBQ3pCLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO3lCQUM1Qjt3QkFDRCxhQUFhLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUE7cUJBQy9DO2lCQUNGO2FBQ0Y7UUFDSCxDQUFDO1FBRU8sK0NBQXVCLEdBQS9CLFVBQWdDLE1BQWU7WUFDN0MsT0FBTyxDQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVM7Z0JBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FDcEMsQ0FBQTtRQUNILENBQUM7UUFFTyx5Q0FBaUIsR0FBekIsVUFBMEIsTUFBZTtZQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxNQUFnQixDQUFDLENBQUE7UUFDcEUsQ0FBQztRQUVjLHFDQUF1QixHQUF0QyxVQUF1QyxPQUF1QjtZQUM1RCxJQUFJLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1lBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hELElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsTUFBTTtvQkFDNUQsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBRW5CLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUM1QixnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFDckQsT0FBTyxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDdEQ7UUFDSCxDQUFDO1FBRWMsZ0NBQWtCLEdBQWpDLFVBQWtDLEVBQWtCLEVBQUUsRUFBa0I7WUFDdEUsRUFBRSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQy9CLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUUvQixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxNQUFNO2dCQUN2QyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDckMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsTUFBTTtnQkFDdkMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7UUFFYyw2QkFBZSxHQUE5QixVQUErQixFQUFrQixFQUFFLEVBQWtCO1lBQ25FLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDdEIsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUV0QixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxNQUFNO2dCQUN4QyxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDdEMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsTUFBTTtnQkFDeEMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3hDLENBQUM7UUFFTyxtREFBMkIsR0FBbkMsVUFBb0MsT0FBdUI7WUFDekQsSUFBSSxhQUFhLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1lBQzFFLElBQUksWUFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQzNDLE9BQU8sRUFDUCxJQUFJLENBQUMscUJBQXFCLENBQzNCLENBQUE7WUFFRCxJQUFJLGFBQWEsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDbEMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO2dCQUM1RCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWTtvQkFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFBO2FBQ2pFO2lCQUFNLElBQUksQ0FBQyxhQUFhLElBQUksWUFBWSxFQUFFO2dCQUN6QyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO2dCQUNuRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYTtvQkFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFBO2FBQ25FO1FBQ0gsQ0FBQztRQUVPLDBEQUFrQyxHQUExQyxVQUEyQyxPQUF1QjtZQUNoRSxLQUFLLElBQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2hDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3RDLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO3dCQUM5RCxJQUFJLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFOzRCQUNsRSxJQUFJLGFBQWEsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBOzRCQUNuRSxJQUFJLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUMzQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FDcEIsQ0FBQTs0QkFFRCxJQUFJLGFBQWEsSUFBSSxDQUFDLFlBQVk7Z0NBQ2hDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO2lDQUMzRCxJQUFJLENBQUMsYUFBYSxJQUFJLFlBQVk7Z0NBQ3JDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTt5QkFDOUQ7cUJBQ0Y7aUJBQ0Y7YUFDRjtRQUNILENBQUM7UUFFYyxnQ0FBa0IsR0FBakMsVUFDRSxFQUFrQixFQUNsQixFQUFrQjtZQUVsQixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQTtZQUNqRCxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM5RCxDQUFDO1FBRWMsMEJBQVksR0FBM0IsVUFBNEIsRUFBa0IsRUFBRSxFQUFrQjtZQUNoRSxJQUNFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxlQUFlO2dCQUN4QyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksZUFBZSxFQUN4QztnQkFDQSxPQUFPLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDbkMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQ3RCLEVBQUUsQ0FBQyxRQUFRLEVBQXFCLEVBQ2hDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxFQUN0QixFQUFFLENBQUMsUUFBUSxFQUFxQixDQUNqQyxDQUFBO2FBQ0Y7aUJBQU0sSUFDTCxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksa0JBQWtCO2dCQUMzQyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksa0JBQWtCLEVBQzNDO2dCQUNBLE9BQU8sYUFBYSxDQUFDLGtCQUFrQixDQUNyQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFDdEIsRUFBRSxDQUFDLFFBQVEsRUFBd0IsRUFDbkMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQ3RCLEVBQUUsQ0FBQyxRQUFRLEVBQXdCLENBQ3BDLENBQUE7YUFDRjtpQkFBTSxJQUNMLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxlQUFlO2dCQUN4QyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksa0JBQWtCLEVBQzNDO2dCQUNBLE9BQU8sYUFBYSxDQUFDLHNCQUFzQixDQUN6QyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFDdEIsRUFBRSxDQUFDLFFBQVEsRUFBcUIsRUFDaEMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQ3RCLEVBQUUsQ0FBQyxRQUFRLEVBQXdCLENBQ3BDLENBQUE7YUFDRjtpQkFBTSxJQUNMLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxrQkFBa0I7Z0JBQzNDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxlQUFlLEVBQ3hDO2dCQUNBLE9BQU8sYUFBYSxDQUFDLHNCQUFzQixDQUN6QyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFDdEIsRUFBRSxDQUFDLFFBQVEsRUFBcUIsRUFDaEMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQ3RCLEVBQUUsQ0FBQyxRQUFRLEVBQXdCLENBQ3BDLENBQUE7YUFDRjtZQUNELE9BQU8sS0FBSyxDQUFBO1FBQ2QsQ0FBQztRQUVjLDhCQUFnQixHQUEvQixVQUNFLGdCQUF5QixFQUN6QixPQUF3QixFQUN4QixnQkFBeUIsRUFDekIsT0FBd0I7WUFFeEIsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ25FLElBQUksRUFBRSxHQUFHLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUNuRSxPQUFPLENBQ0wsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDNUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzdDLENBQUE7UUFDSCxDQUFDO1FBRWMsZ0NBQWtCLEdBQWpDLFVBQ0UsZ0JBQXlCLEVBQ3pCLE9BQTJCLEVBQzNCLGdCQUF5QixFQUN6QixPQUEyQjtZQUUzQixJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUNsQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUN0QyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUN2QyxDQUFBO1lBQ0QsT0FBTyxDQUNMLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUMzRSxDQUFBO1FBQ0gsQ0FBQztRQUVjLG9DQUFzQixHQUFyQyxVQUNFLGdCQUF5QixFQUN6QixPQUF3QixFQUN4QixnQkFBeUIsRUFDekIsT0FBMkI7WUFFM0IsSUFBSSxHQUFHLEdBQUcsYUFBYSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ3BFLElBQUksTUFBTSxHQUFHO2dCQUNYLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDOUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2FBQ3ZCLENBQUE7WUFFRCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUE7WUFDWixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDdkUsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3ZFLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN2RSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDdkUsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3ZFLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUV2RSxPQUFPLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUE7UUFDN0MsQ0FBQztRQUVjLCtCQUFpQixHQUFoQyxVQUNFLG9CQUE2QixFQUM3QixLQUFzQjtZQUV0QixJQUFJLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQ3JELE9BQU87Z0JBQ0wsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZDLENBQUE7UUFDSCxDQUFDO1FBeFNjLHVCQUFTLEdBQXlCLElBQUksQ0FBQTtRQXlTdkQsb0JBQUM7S0FBQSxBQTFTRCxJQTBTQztJQTFTWSxzQ0FBYTtJQTRTMUI7UUFzQkUsd0JBQVksTUFBZTtZQXJCM0IsZUFBVSxHQUFZLElBQUksQ0FBQTtZQWNoQixVQUFLLEdBQVcsRUFBRSxDQUFBO1lBQ2xCLG1CQUFjLEdBQW1DLEVBQUUsQ0FBQTtZQUVyRCxhQUFRLEdBQVksS0FBSyxDQUFBO1lBQ3pCLGlCQUFZLEdBQWtCLElBQUksQ0FBQTtZQUl4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQTtZQUNyQixJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtnQkFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFBO2dCQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFBO2dCQUMxQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ2pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtpQkFDdEI7YUFDRjtRQUNILENBQUM7UUE3QkQsc0JBQUksa0NBQU07aUJBQVY7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBO1lBQ3JCLENBQUM7OztXQUFBO1FBQ0Qsc0JBQUksbUNBQU87aUJBQVg7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO1lBQ3RCLENBQUM7OztXQUFBO1FBQ0Qsc0JBQUksZ0NBQUk7aUJBQVI7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO1lBQ25CLENBQUM7OztXQUFBO1FBdUJELDBDQUFpQixHQUFqQjtZQUNFLElBQUksSUFBSSxDQUFDLE9BQU87Z0JBQUUsT0FBTyxjQUFjLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQzVFLE9BQU8sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ3ZCLENBQUM7UUFFRCxpQ0FBUSxHQUFSO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQTtRQUM1QixDQUFDO1FBRUQsbUNBQVUsR0FBVjtZQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUMvRCxDQUFDO1FBRUQsNENBQW1CLEdBQW5CO1lBQ0UsSUFBSSxHQUFHLEdBQXFCLEVBQUUsQ0FBQTtZQUU5QixLQUFLLElBQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3JDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzNDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO2lCQUNuQzthQUNGO1lBQ0QsT0FBTyxHQUFHLENBQUE7UUFDWixDQUFDO1FBRUQsMkNBQWtCLEdBQWxCLFVBQW1CLEtBQXFCO1lBQ3RDLE9BQU8sQ0FDTCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTO2dCQUM1QyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQ3hDLENBQUE7UUFDSCxDQUFDO1FBRUQsaURBQXdCLEdBQXhCLFVBQXlCLEtBQXFCO1lBQzVDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDeEMsQ0FBQztRQUVELHdDQUFlLEdBQWYsVUFBZ0IsS0FBcUI7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ3pDLENBQUM7UUFFRCxvQ0FBVyxHQUFYO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO1FBQ3RCLENBQUM7UUFFRCx1Q0FBYyxHQUFkO1lBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUU7Z0JBQ2xDLGNBQWMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQTtnQkFDOUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFBO2FBQzlDO1lBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFBO2dCQUVoQyxJQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFBO2dCQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFBO2dCQUU3RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxlQUFlLEVBQUU7b0JBQzlDLElBQU0sS0FBSyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUE7b0JBQzVCLEtBQUssQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFBO29CQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtvQkFDckMsU0FBUyxDQUFDLEtBQUssR0FBSSxJQUFJLENBQUMsUUFBUSxFQUFzQixDQUFDLElBQUksQ0FBQTtpQkFDNUQ7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLFlBQVksa0JBQWtCLEVBQUU7b0JBQ2pELElBQU0sS0FBSyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUE7b0JBQy9CLEtBQUssQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFBO29CQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtvQkFDckMsSUFBSSxHQUFHLEdBQUksSUFBSSxDQUFDLFFBQVEsRUFBeUIsQ0FBQyxNQUFNLENBQUE7b0JBQ3hELFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtpQkFDN0M7YUFDRjtZQUNELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ3JDLENBQUM7UUFFRCwwQ0FBaUIsR0FBakI7WUFDRSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSTtnQkFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUN2RSxDQUFDO1FBRUQsMENBQWlCLEdBQWpCO1lBQ0UsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FDNUIsU0FBUyxDQUNWLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUE7YUFDcEU7UUFDSCxDQUFDO1FBRWMscUNBQXNCLEdBQXJDLFVBQXNDLE1BQWU7WUFDbkQsSUFBSSxjQUFjLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7Z0JBQ2pELENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVE7Z0JBQ3pDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDbEIsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFBO1lBRXJDLElBQUksWUFBWSxJQUFJLElBQUksRUFBRTtnQkFDeEIsSUFBSSxjQUFjLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7b0JBQ3ZELENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVE7b0JBQy9DLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFBO2dCQUN2QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQ2xELGNBQWMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQ3RDLENBQUE7YUFDRjtZQUNELE9BQU8sY0FBYyxDQUFBO1FBQ3ZCLENBQUM7UUFsSGMsNkJBQWMsR0FBb0IsSUFBSSxDQUFBO1FBbUh2RCxxQkFBQztLQUFBLEFBdklELElBdUlDO0lBRUQ7UUFBNEIsaUNBQWM7UUFHeEMsdUJBQVksS0FBMkM7WUFBdkQsWUFDRSxpQkFBTyxTQUdSO1lBRkMsS0FBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7WUFDbkIsS0FBSSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUE7O1FBQzlCLENBQUM7UUFFRCx5Q0FBaUIsR0FBakI7WUFDRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFBO1FBQ2pDLENBQUM7UUFFRCxnQ0FBUSxHQUFSO1lBQ0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3BCLENBQUM7UUFFRCxnQ0FBUSxHQUFSLFVBQVMsS0FBMkM7WUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7UUFDckIsQ0FBQztRQUVELGtDQUFVLEdBQVY7WUFDRSxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUM7UUFFRCwwQ0FBa0IsR0FBbEIsVUFBbUIsS0FBcUI7WUFDdEMsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO1FBRUQsZ0RBQXdCLEdBQXhCLFVBQXlCLEtBQXFCLElBQUcsQ0FBQztRQUVsRCx1Q0FBZSxHQUFmLFVBQWdCLEtBQXFCLElBQUcsQ0FBQztRQUN6QyxtQ0FBVyxHQUFYO1lBQ0UsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO1FBQ0gsb0JBQUM7SUFBRCxDQUFDLEFBbkNELENBQTRCLGNBQWMsR0FtQ3pDO0lBR0Q7UUEwQ0U7Ozs7Ozs7Ozs7V0FVRztRQUNILDBCQUNFLEtBQTJDLEVBQzNDLEtBQWlCLEVBQ2pCLGdCQUE0QixFQUM1QixjQUF5QyxFQUN6QyxhQUF3QyxFQUN4QyxhQUEwQixFQUMxQixZQUF5QixFQUN6QixXQUE0QjtZQU41QixzQkFBQSxFQUFBLFNBQWlCO1lBQ2pCLGlDQUFBLEVBQUEsb0JBQTRCO1lBSzVCLDRCQUFBLEVBQUEsbUJBQTRCO1lBNUQ5Qjs7ZUFFRztZQUNILFlBQU8sR0FBWSxJQUFJLENBQUE7WUFLdkI7O2VBRUc7WUFDSCxVQUFLLEdBQVcsQ0FBQyxDQUFBO1lBQ2pCOztlQUVHO1lBQ0gscUJBQWdCLEdBQVcsQ0FBQyxDQUFBO1lBK0MxQixhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtZQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtZQUNsQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUE7WUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7WUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7WUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7WUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUE7WUFDaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUE7UUFDbEMsQ0FBQztRQXBDRCxzQkFBSSwwQ0FBWTtZQUhoQjs7ZUFFRztpQkFDSDtnQkFDRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUE7WUFDM0IsQ0FBQzs7O1dBQUE7UUF0Q1UsZ0JBQWdCO1lBRDVCLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQzs7V0FDakIsZ0JBQWdCLENBeUU1QjtRQUFELHVCQUFDO0tBQUEsQUF6RUQsSUF5RUM7SUF6RVksNENBQWdCO0lBMkU3QjtRQUlFLHlCQUFZLElBQWEsRUFBRSxRQUFpQjtZQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtZQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUMxQixDQUFDO1FBQ0gsc0JBQUM7SUFBRCxDQUFDLEFBUkQsSUFRQztJQVJZLDBDQUFlO0lBVTVCO1FBSUUsNEJBQVksTUFBYyxFQUFFLFFBQWlCO1lBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQzFCLENBQUM7UUFDSCx5QkFBQztJQUFELENBQUMsQUFSRCxJQVFDO0lBUlksZ0RBQWtCOzs7Ozs7SUNoakIvQjtRQVNFLCtCQUFZLGFBQXFEO1lBUnpELHNCQUFpQixHQUF3QixJQUFJLENBQUE7WUFDN0Msd0JBQW1CLEdBQXdCLElBQUksQ0FBQTtZQUUvQyxZQUFPLEdBQVksS0FBSyxDQUFBO1lBQ3hCLFlBQU8sR0FBWSxLQUFLLENBQUE7WUFLOUIsSUFBSSxhQUFhLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUE7YUFDbEM7UUFDSCxDQUFDO1FBRUQsNkNBQWEsR0FBYixVQUFjLGFBQW9EO1lBQ2hFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxhQUFhLENBQUMsaUJBQWlCLENBQUE7WUFDeEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQTtZQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUN0QixDQUFDO1FBRUQsbURBQW1CLEdBQW5CLFVBQW9CLGdCQUE0QjtZQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUE7UUFDMUMsQ0FBQztRQUVELHlDQUFTLEdBQVQ7WUFDRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUE7UUFDckIsQ0FBQztRQUVELG9DQUFJLEdBQUo7WUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUN0QixDQUFDO1FBRUQsc0NBQU0sR0FBTjtZQUNFLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRTtnQkFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7YUFDcEI7UUFDSCxDQUFDO1FBRUQscUNBQUssR0FBTDtZQUNFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUE7WUFDakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7WUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7UUFDdEIsQ0FBQztRQUVELGdEQUFnQixHQUFoQjtZQUNFLElBQUksV0FBVyxHQUF3QixJQUFJLENBQUMsbUJBQW1CLENBQUE7WUFFL0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLFlBQVksZUFBZSxFQUFFO2dCQUN2RCxHQUFHO29CQUNELFdBQVcsR0FBSSxXQUErQixDQUFDLG9CQUFvQixDQUFBO2lCQUNwRSxRQUFRLFdBQVcsWUFBWSxlQUFlLEVBQUM7YUFDakQ7WUFDRCxPQUFRLFdBQTRCLENBQUMsTUFBTSxDQUFBO1FBQzdDLENBQUM7UUFFRCxzQ0FBTSxHQUFOLFVBQU8sRUFBVTtZQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2pCLENBQUM7b0JBQUMsSUFBSSxDQUFDLG1CQUFvQyxDQUFDLE9BQU8sRUFBRSxDQUFBO29CQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtpQkFDcEI7cUJBQU07b0JBQ0wsSUFBSSxDQUFFLElBQUksQ0FBQyxtQkFBb0MsQ0FBQyxTQUFTLEVBQUUsRUFBRTt3QkFDM0QsQ0FBQzt3QkFBQyxJQUFJLENBQUMsbUJBQW9DLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO3FCQUN2RDt5QkFBTTt3QkFDTCxDQUFDO3dCQUFDLElBQUksQ0FBQyxtQkFBb0MsQ0FBQyxRQUFRLEVBQUUsQ0FBQTt3QkFDdEQsSUFBSSxDQUFDLG1CQUFtQixHQUFJLElBQUk7NkJBQzdCLG1CQUFvQyxDQUFDLElBQUksQ0FBQTt3QkFDNUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7NEJBQzVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQTt5QkFDbkM7NkJBQU07NEJBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7NEJBQ3BCLElBQUksSUFBSSxDQUFDLGdCQUFnQjtnQ0FBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTt5QkFDbkQ7cUJBQ0Y7aUJBQ0Y7YUFDRjtRQUNILENBQUM7UUFDSCw0QkFBQztJQUFELENBQUMsQUEvRUQsSUErRUM7SUEvRVksc0RBQXFCO0lBaUZsQyxXQUFpQixxQkFBcUI7UUFRcEM7WUFBQTtnQkFDVSx3QkFBbUIsR0FBd0IsSUFBSSxDQUFBO2dCQUNoRCxzQkFBaUIsR0FBd0IsSUFBSSxDQUFBO2dCQUU1QyxtQkFBYyxHQUF3QixFQUFFLENBQUE7WUErRmxELENBQUM7WUE3RkMsOEJBQUksR0FBSixVQUFLLE1BQXFDO2dCQUN4QyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO29CQUM3QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtvQkFDeEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQTtpQkFDbEQ7cUJBQU07b0JBQ0wsSUFBSSxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtvQkFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7b0JBQ3BCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2lCQUMvRDtnQkFDRCxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7WUFFRCw0QkFBRSxHQUFGLFVBQUcsU0FBd0I7Z0JBQ3pCLElBQUksS0FBSyxHQUFHLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUN6QyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUE7b0JBQ2hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUE7aUJBQy9CO3FCQUFNO29CQUNMLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO2lCQUNoRTtnQkFDRCxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7WUFFRCw4QkFBSSxHQUFKO2dCQUNFLElBQUksR0FBRyxHQUFJLElBQUksQ0FBQyxtQkFBb0MsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtnQkFDbEUsSUFBSSxHQUFHLFlBQVksY0FBYyxFQUFFO29CQUNqQyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtvQkFDakIsSUFBSSxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQTtvQkFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFJLElBQUk7eUJBQzdCLG1CQUFvQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtpQkFDdEQ7cUJBQU07b0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQsQ0FDN0QsQ0FBQTtpQkFDRjtnQkFDRCxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7WUFFRCwrQkFBSyxHQUFMO2dCQUNFLElBQUksR0FBRyxHQUFJLElBQUksQ0FBQyxtQkFBb0MsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtnQkFDbEUsSUFBSSxHQUFHLFlBQVksY0FBYyxJQUFJLEdBQUcsWUFBWSxnQkFBZ0IsRUFBRTtvQkFDcEUsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7aUJBQ2xCO3FCQUFNO29CQUNMLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkRBQTZELENBQzlELENBQUE7aUJBQ0Y7Z0JBQ0QsT0FBTyxJQUFJLENBQUE7WUFDYixDQUFDO1lBRUQsK0JBQUssR0FBTCxVQUFNLFNBQXdCO2dCQUM1QixJQUFJLFFBQVEsR0FBRyxJQUFJLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUMvQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUE7b0JBQ25DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUE7aUJBQ2xDO3FCQUFNO29CQUNMLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2lCQUNuRTtnQkFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDbEMsT0FBTyxJQUFJLENBQUE7WUFDYixDQUFDO1lBRUQsa0NBQVEsR0FBUjtnQkFDRSxJQUFJLEdBQUcsR0FBSSxJQUFJLENBQUMsbUJBQW9DLENBQUMsV0FBVyxFQUFFLENBQUE7Z0JBQ2xFLElBQUksR0FBRyxZQUFZLGlCQUFpQixFQUFFO29CQUNwQyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtvQkFDakIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtxQkFDOUQ7aUJBQ0Y7cUJBQU07b0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FDYixtRUFBbUUsQ0FDcEUsQ0FBQTtpQkFDRjtnQkFDRCxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7WUFFRCxvQ0FBVSxHQUFWO2dCQUNFLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUksSUFBSTt5QkFDN0IsbUJBQW9DLENBQUMsSUFBSSxDQUMxQyxJQUFJLHNCQUFzQixDQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUNwRCxDQUNGLENBQUE7aUJBQ0Y7cUJBQU07b0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FDYixxRUFBcUUsQ0FDdEUsQ0FBQTtpQkFDRjtnQkFDRCxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7WUFDSCxzQkFBQztRQUFELENBQUMsQUFuR0QsSUFtR0M7UUFuR1kscUNBQWUsa0JBbUczQixDQUFBO0lBQ0gsQ0FBQyxFQTVHZ0IscUJBQXFCLEdBQXJCLDZCQUFxQixLQUFyQiw2QkFBcUIsUUE0R3JDO0lBN0xZLHNEQUFxQjtJQStMbEM7UUFBQTtZQUNFLFdBQU0sR0FBeUMsSUFBSSxDQUFBO1lBQ25ELFNBQUksR0FBd0IsSUFBSSxDQUFBO1FBMkJsQyxDQUFDO1FBekJDLDJCQUFJLEdBQUosVUFBSyxJQUFrQjtZQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtZQUNoQixPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFFRCw4QkFBTyxHQUFQO1lBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTTtnQkFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ3hDLENBQUM7UUFFRCw2QkFBTSxHQUFOLFVBQU8sRUFBVTtZQUNmLElBQUksSUFBSSxDQUFDLE1BQU07Z0JBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDekMsQ0FBQztRQUVELCtCQUFRLEdBQVI7WUFDRSxJQUFJLElBQUksQ0FBQyxNQUFNO2dCQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDekMsQ0FBQztRQUVELGdDQUFTLEdBQVQ7WUFDRSxJQUFJLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUE7O2dCQUMxQyxPQUFPLElBQUksQ0FBQTtRQUNsQixDQUFDO1FBRUQsa0NBQVcsR0FBWDtZQUNFLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUNILG1CQUFDO0lBQUQsQ0FBQyxBQTdCRCxJQTZCQztJQUVEO1FBQThCLG1DQUFZO1FBQTFDO1lBQUEscUVBd0RDO1lBdkRDLDBCQUFvQixHQUF3QixJQUFJLENBQUE7WUFDaEQsMkJBQXFCLEdBQXdCLElBQUksQ0FBQTtZQUNqRCxZQUFNLEdBQVksS0FBSyxDQUFBOztRQXFEekIsQ0FBQztRQW5EQyw4QkFBSSxHQUFKLFVBQUssSUFBa0I7WUFDckIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFBO2dCQUNoQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFBO2FBQ2xDO2lCQUFNO2dCQUNMLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtvQkFDaEIsT0FBTyxJQUFJLENBQUE7aUJBQ1o7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7aUJBQ2pFO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFFRCxpQ0FBTyxHQUFQO1lBQ0UsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQTtZQUN0RCxJQUFJLElBQUksQ0FBQyxvQkFBb0I7Z0JBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ3BFLENBQUM7UUFFRCxnQ0FBTSxHQUFOLFVBQU8sRUFBVTtZQUNmLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxFQUFFO29CQUMxQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO2lCQUNyQztxQkFBTTtvQkFDTCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUE7b0JBQ3BDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFBO29CQUMxRCxJQUFJLElBQUksQ0FBQyxvQkFBb0I7d0JBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFBO2lCQUNuRTthQUNGO1FBQ0gsQ0FBQztRQUVELGtDQUFRLEdBQVI7WUFDRSxJQUFJLElBQUksQ0FBQyxvQkFBb0I7Z0JBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ3JFLENBQUM7UUFFRCxtQ0FBUyxHQUFUO1lBQ0UsT0FBTyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFBO1FBQzFDLENBQUM7UUFFRCxxQ0FBVyxHQUFYO1lBQ0UsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzdCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtnQkFDdEQsSUFBSSxRQUFRLFlBQVksZUFBZSxFQUFFO29CQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTt3QkFDcEIsT0FBTyxRQUFRLENBQUE7cUJBQ2hCO2lCQUNGO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFDSCxzQkFBQztJQUFELENBQUMsQUF4REQsQ0FBOEIsWUFBWSxHQXdEekM7SUFFRDtRQUE2QixrQ0FBZTtRQUkxQyx3QkFBWSxTQUF3QjtZQUFwQyxZQUNFLGlCQUFPLFNBRVI7WUFMRCxZQUFNLEdBQVksS0FBSyxDQUFBO1lBSXJCLEtBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBOztRQUM1QixDQUFDO1FBRUQsZ0NBQU8sR0FBUDtZQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO1lBQzlCLElBQUksSUFBSSxDQUFDLE1BQU07Z0JBQUUsaUJBQU0sT0FBTyxXQUFFLENBQUE7O2dCQUMzQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFBO1FBQ3ZDLENBQUM7UUFDSCxxQkFBQztJQUFELENBQUMsQUFkRCxDQUE2QixlQUFlLEdBYzNDO0lBRUQ7UUFBK0Isb0NBQWU7UUFHNUMsMEJBQVksVUFBMEI7WUFBdEMsWUFDRSxpQkFBTyxTQUVSO1lBTEQsZ0JBQVUsR0FBMEIsSUFBSSxDQUFBO1lBSXRDLEtBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBOztRQUM5QixDQUFDO1FBRUQsa0NBQU8sR0FBUDtZQUNFLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtnQkFBRSxpQkFBTSxPQUFPLFdBQUUsQ0FBQTs7Z0JBQzFELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUE7UUFDdkMsQ0FBQztRQUNILHVCQUFDO0lBQUQsQ0FBQyxBQVpELENBQStCLGVBQWUsR0FZN0M7SUFFRDtRQUFnQyxxQ0FBZTtRQUk3QywyQkFBWSxTQUF3QjtZQUFwQyxZQUNFLGlCQUFPLFNBRVI7WUFMRCxnQkFBVSxHQUFZLEtBQUssQ0FBQTtZQUl6QixLQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTs7UUFDNUIsQ0FBQztRQUVELG1DQUFPLEdBQVA7WUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtZQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQUUsaUJBQU0sT0FBTyxXQUFFLENBQUE7O2dCQUNoQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFBO1FBQ3ZDLENBQUM7UUFFRCxrQ0FBTSxHQUFOLFVBQU8sRUFBVTtZQUNmLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxFQUFFO29CQUMxQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO2lCQUNyQztxQkFBTTtvQkFDTCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUE7b0JBQ3BDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFBO29CQUMxRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJO3dCQUNuQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFBO29CQUN4RCxJQUFJLElBQUksQ0FBQyxvQkFBb0I7d0JBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFBO2lCQUNuRTthQUNGO1FBQ0gsQ0FBQztRQUVELHFDQUFTLEdBQVQ7WUFDRSxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDN0MsQ0FBQztRQUNILHdCQUFDO0lBQUQsQ0FBQyxBQWhDRCxDQUFnQyxlQUFlLEdBZ0M5QztJQUVEO1FBQXFDLDBDQUFZO1FBRy9DLGdDQUFZLFNBQTRCO1lBQXhDLFlBQ0UsaUJBQU8sU0FFUjtZQURDLEtBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBOztRQUM1QixDQUFDO1FBRUQsd0NBQU8sR0FBUDtZQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQTtRQUNsQyxDQUFDO1FBQ0gsNkJBQUM7SUFBRCxDQUFDLEFBWEQsQ0FBcUMsWUFBWSxHQVdoRDs7Ozs7SUM1VUQsa0JBQWU7UUFDYixlQUFlLG1DQUFBO1FBQ2Ysc0JBQXNCLCtCQUFBO1FBQ3RCLHdCQUF3QixtQ0FBQTtRQUN4Qix1QkFBdUIsaUNBQUE7UUFDdkIsbUJBQW1CLGtDQUFBO1FBQ25CLHFCQUFxQixzQ0FBQTtRQUNyQixXQUFXLDZCQUFBO1FBQ1gsaUJBQWlCLG1DQUFBO1FBQ2pCLGVBQWUsbUNBQUE7UUFDZixXQUFXLCtCQUFBO1FBQ1gsS0FBSyxlQUFBO1FBQ0wsUUFBUSxtQkFBQTtRQUNSLFFBQVEscUJBQUE7UUFDUixnQkFBZ0Isa0NBQUE7UUFDaEIsYUFBYSwrQkFBQTtRQUNiLGtCQUFrQixvQ0FBQTtRQUNsQixlQUFlLGlDQUFBO1FBQ2YscUJBQXFCLCtDQUFBO0tBQ3RCLENBQUE7Ozs7O0lDMUNELElBQUksVUFBVSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUEsQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBUyxDQUFDLElBQUUsV0FBVyxJQUFFLE9BQU8sTUFBTSxJQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsTUFBTSxDQUFDLFdBQVcsRUFBQyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDO1FBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsUUFBUSxJQUFFLE9BQU8sQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsVUFBVTtRQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDO1FBQUMsS0FBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxVQUFVLENBQUEsQ0FBQyxDQUFBLGNBQVcsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxjQUFXLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsTUFBTSxDQUFDLE1BQU0sSUFBRSxjQUFXLFNBQVMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxPQUFPLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLElBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFFLElBQUksQ0FBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsY0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsSUFBSSxFQUFDLGNBQVcsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBLENBQUEsQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLElBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDO29CQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtpQkFBQzs7Z0JBQUssS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQztvQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFFLENBQUMsRUFBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsVUFBVSxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsVUFBVSxDQUFDLENBQUEsT0FBTyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksR0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsR0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQztnQkFBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQztnQkFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUc7Z0JBQUMsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQztZQUFBLE9BQU0sQ0FBQyxFQUFDO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsc0JBQXNCLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxXQUFXLElBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQSxDQUFBLENBQUMsRUFBQyxRQUFRLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7b0JBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFTLENBQUMsSUFBRSxDQUFDLElBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsYUFBYSxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFPLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFFLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLHNCQUFzQixFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFHLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxRQUFRLEVBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxJQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxFQUFDLGFBQWEsRUFBQyxjQUFXLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFNLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsT0FBTyxVQUFTLENBQUMsSUFBRSxPQUFNLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxJQUFJLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxPQUFPLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBQztZQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFBO1NBQUM7O1lBQUssSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxFQUFDLEdBQUcsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQztnQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLElBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFHLElBQUksQ0FBQyxVQUFVLElBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztpQkFBSTtnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO2dCQUFBLElBQUksQ0FBQyxjQUFjLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxJQUFJLENBQUMsS0FBSyxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxXQUFXLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBLElBQUcsSUFBSSxDQUFDLFVBQVUsSUFBRSxJQUFJLENBQUMsZUFBZSxFQUFDO2dCQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUM7aUJBQUk7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFHLENBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7O2dCQUFLLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBLElBQUcsVUFBVSxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxVQUFVLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxJQUFFLEVBQUUsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU0sUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sR0FBRyxLQUFHLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFFLEdBQUcsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsa0VBQWtFLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsSUFBRSxHQUFHLENBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsQ0FBQyxDQUFDLGNBQWMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHVCQUF1QixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxpRUFBaUUsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sa0VBQWtFLEtBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyx3QkFBd0IsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUEsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUEsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxLQUFLLEtBQUcsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxJQUFFLElBQUksS0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBQyxZQUFZLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUM7WUFBQSxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsWUFBWSxFQUFDLElBQUksRUFBQyxZQUFZLEVBQUMsT0FBTyxFQUFDLFlBQVksRUFBQyxTQUFTLEVBQUMsWUFBWSxFQUFDLElBQUksRUFBQyxZQUFZLEVBQUMsS0FBSyxFQUFDLGVBQWUsRUFBQyxVQUFVLEVBQUMsZUFBZSxFQUFDLEtBQUssRUFBQyxlQUFlLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLFVBQVUsRUFBQyxrQkFBa0IsRUFBQyxLQUFLLEVBQUMsa0JBQWtCLEVBQUMsS0FBSyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sRUFBQyx3QkFBd0IsRUFBQyxLQUFLLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxFQUFDLDJCQUEyQixFQUFDLE1BQU0sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLEVBQUMsaUNBQWlDLEVBQUMsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBRSxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUk7Z0JBQUosa0JBQUEsRUFBQSxLQUFHLENBQUM7Z0JBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDO2dCQUFBLEtBQUksSUFBSSxHQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLEdBQUMsRUFBRSxFQUFDO29CQUFDLElBQUksR0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBQyxDQUFDLENBQUM7b0JBQUEsSUFBRyxDQUFDLEtBQUcsR0FBQyxFQUFDO3dCQUFDLElBQUcsQ0FBQyxDQUFDOzRCQUFDLE1BQU07d0JBQUEsQ0FBQyxJQUFFLElBQUksQ0FBQTtxQkFBQzt5QkFBSTt3QkFBQyxJQUFJLEdBQUMsR0FBQyxHQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUFBLENBQUMsSUFBRSxHQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxHQUFDLEdBQUMsQ0FBQSxDQUFDLENBQUEsR0FBQyxDQUFBO3FCQUFDO2lCQUFDO2dCQUFBLE9BQU0sSUFBSSxHQUFDLENBQUMsQ0FBQTtZQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxLQUFLLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLFFBQVEsSUFBRSxPQUFPLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBTSxHQUFDLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxLQUFHLEdBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxLQUFHLEdBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO29CQUFDLE9BQU8sR0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxRQUFRLENBQUMsR0FBQyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUEsQ0FBQyxDQUFBLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxLQUFLLENBQUMsS0FBRyxDQUFDO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscUVBQXFFLEdBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxRQUFRLElBQUUsT0FBTyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxHQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxFQUFFLEVBQUMsR0FBQyxFQUFFO2dCQUFDLElBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQztvQkFBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTSxRQUFRLElBQUUsT0FBTyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxXQUFXLElBQUUsUUFBUSxLQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFNLFNBQVMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLEdBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBRSxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsS0FBSSxJQUFJLEtBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUksR0FBQyxHQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztnQkFBQSxJQUFHLENBQUMsS0FBRyxHQUFDO29CQUFDLE1BQU07Z0JBQUEsQ0FBQyxJQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsS0FBSSxJQUFJLEtBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUksR0FBQyxHQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztnQkFBQSxDQUFDLElBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFHO2dCQUFILGtCQUFBLEVBQUEsS0FBRztnQkFBRSxJQUFJLENBQUMsR0FBQyxFQUFFLENBQUM7Z0JBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsR0FBQyxFQUFFLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQUEsQ0FBQyxJQUFFLEdBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLEdBQUMsR0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFDLENBQUE7aUJBQUM7Z0JBQUEsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUE7WUFBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBLE9BQU0sQ0FBQyxDQUFDLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxRQUFRLElBQUUsT0FBTyxDQUFDLElBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLFNBQVMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrRUFBa0UsRUFBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLEtBQUssQ0FBQyxLQUFHLENBQUM7Z0JBQUMsT0FBTSxFQUFFLENBQUMsQ0FBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsR0FBQyxFQUFFO2dCQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBMkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUcsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sVUFBVSxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLEtBQUcsQ0FBQyxJQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHO2dCQUFDLE9BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQztZQUFBLE9BQU0sQ0FBQyxFQUFDO2dCQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxD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QUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7b0JBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxJQUFFLENBQUM7d0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsR0FBQyxFQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsT0FBTyxDQUFDLENBQUE7aUJBQUMsQ0FBQSxJQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsUUFBUSxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsR0FBQyxHQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUMsR0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxHQUFDLEVBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUMsR0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7Z0JBQUEsbUJBQUM7WUFBRCxDQUFDLEFBQTk1RCxHQUE4NUQsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFHLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsR0FBRTtnQkFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBQyxFQUFDLFNBQVMsRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDO2dCQUFDLE9BQUssQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDO29CQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxFQUFDO2dCQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxHQUFDLEVBQUUsQ0FBQztnQkFBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxJQUFHLENBQUMsR0FBQyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFBO2lCQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLElBQUksRUFBQyxtRUFBbUUsRUFBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxXQUFXLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLEdBQUcsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU0sQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFNLFFBQVEsS0FBRyxDQUFDLElBQUUsU0FBUyxLQUFHLENBQUMsSUFBRSxVQUFVLEtBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFHLEtBQUssQ0FBQyxLQUFHLENBQUMsSUFBRSxJQUFJLElBQUUsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLFdBQVcsSUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLGdCQUFnQixJQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixJQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU0sSUFBSSxHQUFDLENBQUMsQ0FBQyxDQUFBLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFHLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxDQUFDLENBQUMsd0JBQXdCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyx1QkFBdUIsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdDQUFnQyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sS0FBSyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsWUFBWSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHlCQUF5QixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLEtBQUssQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFTLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMseUJBQXlCLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBRyxRQUFRLElBQUUsT0FBTyxDQUFDO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxLQUFLLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLDBCQUEwQixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsaUNBQWlDLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBSSxLQUFHLENBQUMsQ0FBQyxXQUFXLElBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUMsSUFBSSxLQUFHLENBQUMsQ0FBQyxnQkFBZ0IsSUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsb0JBQW9CLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBUyxDQUFDLElBQUUsSUFBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLEtBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxJQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHFCQUFxQixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsc0JBQXNCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxTQUFTLENBQUMsS0FBRyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxJQUFNLENBQUMsR0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFDLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsVUFBQSxDQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxVQUFBLENBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQUEsQ0FBQyxJQUFFLE9BQUEsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBakIsQ0FBaUIsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxTQUFTLElBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLFVBQUEsQ0FBQyxJQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxJQUFJLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUcsQ0FBQyxHQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUFJO29CQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQTtpQkFBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxJQUFFLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFDLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsU0FBUyxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsMkJBQTJCLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxLQUFLLENBQUMsOERBQTRELENBQUMsb0JBQWUsQ0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHdCQUF3QixHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyx3REFBcUQsQ0FBQyxrQkFBWSxDQUFDLG9CQUFlLENBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLElBQUksS0FBSyxDQUFDLDZDQUE2QyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLGNBQVcsT0FBTyxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxLQUFLLElBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQSw2QkFBNkIsR0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBQyxDQUFDLEdBQUMsYUFBYSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLFlBQVksRUFBQyxXQUFXLEVBQUMsV0FBVyxFQUFDLFlBQVksRUFBQyxZQUFZLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLG9CQUFvQixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsMkJBQTJCLEdBQUMsRUFBQyxhQUFhLEVBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBQyxFQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxRQUFRLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQTtnQkFBUSxXQUFZLENBQUM7b0JBQUUsSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUE7Z0JBQUEsQ0FBQztnQkFBQSx3QkFBWSxHQUFaLFVBQWEsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUM7b0JBQUMsTUFBTSxLQUFLLENBQUMsMEJBQTBCLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUM7Z0JBQUEsdUJBQVcsR0FBWCxVQUFZLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSx3QkFBWSxHQUFaLFVBQWEsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7Z0JBQUEsaUNBQXFCLEdBQXJCLFVBQXNCLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7b0JBQTdCLGlCQUE2VTtvQkFBOVMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7b0JBQUEsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7d0JBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQUEsSUFBSSxHQUFDLEdBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFBLENBQUMsSUFBRSxHQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQTtxQkFBQzs7d0JBQUssQ0FBQyxJQUFFLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQzt3QkFBQyxJQUFJLEdBQUMsR0FBQyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUEsQ0FBQyxJQUFFLEdBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxHQUFDLENBQUE7cUJBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUE7Z0JBQUEsQ0FBQztnQkFBQSw0QkFBZ0IsR0FBaEIsVUFBaUIsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsS0FBRyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQztvQkFBQSxJQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBQyxDQUFDLEVBQUM7d0JBQUMsSUFBSSxHQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUM7d0JBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsR0FBQyxFQUFFOzRCQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLEdBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEtBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUMsSUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBQyxHQUFDLEdBQUMsR0FBQyxHQUFDLEVBQUUsR0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtxQkFBQztvQkFBQSxJQUFJLEdBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFBQSxLQUFJLElBQUksR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsR0FBQyxFQUFDLEdBQUMsRUFBRSxFQUFD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QUFDLGdCQUFnQixFQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQTRDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFHLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTTtnQkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFnRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBRyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDLENBQUMsTUFBTTtnQkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFnRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBRyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxVQUFTLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsNENBQTRDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLG9CQUFvQixFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsd0RBQXdELEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxnQkFBZ0IsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsR0FBRyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUU7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLElBQUUsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLEVBQUUsS0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxJQUFFLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxVQUFVLENBQUMsR0FBQyxDQUFDLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxpQkFBaUIsQ0FBQSxDQUFDLENBQUEsbUJBQW1CLENBQUEsQ0FBQyxDQUFBLDJCQUEyQixDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sZ0JBQWdCLElBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxFQUFDO2dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDO2lCQUFLLElBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDO2dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQTthQUFDOztnQkFBSyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxDQUFDLENBQUMsR0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxFQUFDLFdBQVcsRUFBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFDLGdCQUFnQixFQUFDLEdBQUcsRUFBQyxjQUFjLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsa0JBQWtCLEVBQUMsQ0FBQyxFQUFDLHNCQUFzQixFQUFDLEdBQUcsRUFBQyxpQkFBaUIsRUFBQyxDQUFDLEVBQUMsRUFBQyxDQUFDLEdBQUMsc0NBQXNDLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxJQUFJLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUcsQ0FBQyxZQUFZLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFHLENBQUMsQ0FBQyxHQUFDLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDO3dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7NEJBQUMsQ0FBQzt3QkFBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtxQkFBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQTtpQkFBQztxQkFBSTtvQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQzt3QkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxJQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBO2lCQUFDO2FBQUM7aUJBQUk7Z0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLEVBQUUsSUFBRSxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFHLENBQUMsR0FBQyxRQUFRLElBQUUsT0FBTyxDQUFDLEVBQUM7b0JBQUMsSUFBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUM7d0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxJQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFO3dCQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQUM7O29CQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFDLEVBQUUsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxJQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7d0JBQUMsSUFBRyxHQUFHLElBQUUsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM7NEJBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQzs0QkFBQSxTQUFRO3lCQUFDO3dCQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQTtxQkFBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsS0FBSSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLEVBQUUsS0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUFFLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUcsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEtBQUssSUFBRSxDQUFDLEdBQUMsRUFBRSxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDO29CQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUM7cUJBQUssSUFBRyxDQUFDLEdBQUMsQ0FBQztvQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztxQkFBSTtvQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDO3dCQUFDLEtBQUksQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDOzRCQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO3FCQUFDOzt3QkFBSyxDQUFDLElBQUUsQ0FBQyxDQUFDO29CQUFBLE9BQUssQ0FBQyxFQUFFLEVBQUMsQ0FBQyxJQUFFLEdBQUc7d0JBQUMsQ0FBQztvQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUFDO2FBQUM7O2dCQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksSUFBRSxDQUFDO2dCQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUM7aUJBQUssSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBQztnQkFBQyxPQUFLLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEdBQUcsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQTthQUFDO2lCQUFLLElBQUcsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBRyxFQUFFLENBQUMsR0FBQyxDQUFDO29CQUFDLEtBQUksQ0FBQyxJQUFFLEdBQUcsRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLElBQUUsR0FBRzt3QkFBQyxDQUFDO2FBQUM7aUJBQUssSUFBRyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQztnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLEdBQUcsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsSUFBRSxHQUFHO29CQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRTtnQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztvQkFBQSxNQUFLO2lCQUFDO2dCQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBQztnQkFBQyxDQUFDLEVBQUM7b0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTt3QkFBQyxDQUFDO29CQUFBLElBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUM7d0JBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQzt5QkFBSyxJQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUM7d0JBQUMsSUFBRyxDQUFDLENBQUM7NEJBQUMsTUFBTSxDQUFDLENBQUM7d0JBQUEsT0FBSyxDQUFDLENBQUMsTUFBTSxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs0QkFBQyxDQUFDO3dCQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7cUJBQUM7eUJBQUk7d0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7NEJBQUMsQ0FBQzt3QkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQTtxQkFBQztvQkFBQSxJQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztvQkFBQSxJQUFHLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQzt3QkFBQyxTQUFPOzRCQUFDLElBQUcsQ0FBQyxJQUFFLENBQUMsRUFBQztnQ0FBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29DQUFDLENBQUM7Z0NBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7b0NBQUMsQ0FBQztnQ0FBQSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQ0FBQSxNQUFLOzZCQUFDOzRCQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQztnQ0FBQyxNQUFNOzRCQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO3lCQUFDO29CQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUU7d0JBQUMsQ0FBQztpQkFBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsSUFBSSxJQUFFLENBQUMsRUFBQztnQkFBQyxJQUFHLFFBQVEsSUFBRSxPQUFPLENBQUM7b0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLG1CQUFtQixHQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsZ0JBQWdCLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFDLGVBQWUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsZ0JBQWdCLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsT0FBTyxDQUFDO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUFJO3dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDOzRCQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsbUJBQW1CLEdBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBO3FCQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxDQUFDLEVBQUM7b0JBQUMsSUFBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLHNCQUFzQixHQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLElBQUcsQ0FBQyxFQUFDO3dCQUFDLElBQUcsV0FBVyxJQUFFLE9BQU8sTUFBTSxJQUFFLENBQUMsTUFBTSxJQUFFLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXOzRCQUFDLE1BQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsb0JBQW9CLENBQUMsQ0FBQzt3QkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBO3FCQUFDOzt3QkFBSyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsYUFBYSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBQyxlQUFlLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFDLFFBQVEsQ0FBQyxFQUFDO29CQUFDLElBQUcsUUFBUSxJQUFFLE9BQU0sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsa0JBQWtCLEdBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxJQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFDLFVBQVUsQ0FBQyxFQUFDO29CQUFDLElBQUcsUUFBUSxJQUFFLE9BQU0sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBO2lCQUFDO2FBQUMsQ0FBQSxPQUFNLEVBQUMsY0FBYyxFQUFDLENBQUMsRUFBQyxhQUFhLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxXQUFXLEVBQUMsQ0FBQyxFQUFDLGFBQWEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxZQUFZLElBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLGNBQVcsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsY0FBVyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLEdBQUMsZ0JBQWdCLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFDLE9BQU8sQ0FBQSxDQUFDLENBQUEsY0FBVyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsY0FBVyxPQUFPLE9BQU8sR0FBQyxDQUFDLFVBQVUsR0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO2dCQUFDLElBQUcsTUFBTSxDQUFDLGVBQWUsRUFBQztvQkFBQyxLQUFJLENBQUMsR0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDO3dCQUFFLENBQUMsQ0FBQyxHQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtpQkFBQztxQkFBSTtvQkFBQyxJQUFHLENBQUMsTUFBTSxDQUFDLFdBQVc7d0JBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxvQkFBb0IsQ0FBQyxDQUFDO29CQUFBLEtBQUksQ0FBQyxHQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDO3dCQUFFLENBQUMsQ0FBQyxHQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxhQUFhLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7aUJBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQztnQkFBQyxPQUFLLENBQUMsR0FBQyxDQUFDO29CQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDO2dCQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztpQkFBSTtnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO29CQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxjQUFXLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUU7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQztvQkFBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBLENBQUEsQ0FBQyxDQUFBLE9BQU8sVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLFlBQVksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxZQUFZLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsWUFBWSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUFJO2dCQUFDLElBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQztvQkFBQyxLQUFJLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQzt3QkFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQUUsQ0FBQztnQkFBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsY0FBVyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLEVBQUU7Z0JBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQztnQkFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQzs7Z0JBQUssS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7d0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7d0JBQUEsTUFBSztxQkFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO2dCQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsT0FBTyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQztnQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztpQkFBSTtnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFBQSxHQUFFO29CQUFDLElBQUcsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7d0JBQUMsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDOzRCQUFDLEtBQUksQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO2dDQUFFLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7OzRCQUFLLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7d0JBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUM7NEJBQUMsT0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQztnQ0FBRSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtxQkFBQzs7d0JBQUssQ0FBQyxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQUMsUUFBTSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsSUFBRSxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQUEsQ0FBQyxHQUFDLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxJQUFHLENBQUMsSUFBRSxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUM7O2dCQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyw2QkFBNkIsRUFBQyxDQUFDLEdBQUMsYUFBYSxFQUFDLENBQUMsR0FBQyxhQUFhLEVBQUMsQ0FBQyxHQUFDLG9CQUFvQixFQUFDLENBQUMsR0FBQyw0QkFBNEIsRUFBQyxDQUFDLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDO2lCQUFJO2dCQUFDLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsR0FBQyxHQUFHLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQSxDQUFDLENBQUEsR0FBRyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUM7b0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLENBQUMsS0FBSztvQkFBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEdBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxRQUFRLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUMsR0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFBO2FBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUEsSUFBRyxJQUFJLElBQUUsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFLLENBQUMsR0FBQyxFQUFFLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO2dCQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQywyQkFBMkIsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQztnQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQztpQkFBSTtnQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxLQUFJLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRztnQkFBQyxJQUFHLENBQUMsRUFBQztvQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUMsTUFBTTtvQkFBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLElBQUcsQ0FBQyxFQUFDO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUMsTUFBTTtvQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQztxQkFBSTtvQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQyxNQUFNO29CQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxjQUFXLE9BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLGNBQVcsT0FBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsY0FBVyxPQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLGNBQVcsT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLGNBQVcsT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLGNBQVcsT0FBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLEdBQUcsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTthQUFDOztnQkFBSyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQzt3QkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxNQUFLO3FCQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxDQUFDO2dCQUFDLE9BQUssQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQztvQkFBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFFO2dCQUFDLElBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDO29CQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQzt3QkFBQyxDQUFDO29CQUFBLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBSyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQztnQkFBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUEsT0FBTyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsSUFBRSxDQUFDLEdBQUU7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDO29CQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUM7Z0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxJQUFFLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDO29CQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO2FBQUMsQ0FBQSxLQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFHLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsT0FBSyxDQUFDLEdBQUMsRUFBRSxJQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUM7YUFBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsY0FBVyxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLEdBQUcsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxLQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO29CQUFHLElBQUcsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDO3dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEVBQUMsTUFBTSxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxNQUFNLElBQUUsQ0FBQyxDQUFDLEVBQUM7NEJBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQUEsTUFBSzt5QkFBQzt3QkFBQSxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQzs0QkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDOzRCQUFBLE1BQUs7eUJBQUM7d0JBQUEsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7cUJBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLElBQUksQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDO29CQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO3dCQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFDLENBQUMsR0FBQyxNQUFNLEVBQUMsR0FBRyxDQUFDLEVBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUEsQ0FBQyxDQUFBLGdCQUFnQixDQUFBLENBQUMsQ0FBQSxrQkFBa0IsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxjQUFXLE9BQU0sQ0FBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsVUFBVSxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxNQUFNLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxjQUFXLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsS0FBSyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsY0FBVyxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsY0FBVyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEVBQUU7WUFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFPLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFO1lBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLEdBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQUk7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDO29CQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBLFNBQVMsQ0FBQyxLQUFHLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxHQUFDLEVBQUU7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztxQkFBSTtvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBRSxHQUFDLENBQUMsRUFBRSxLQUFHLEVBQUUsR0FBQyxFQUFFLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFDLEVBQUUsS0FBRyxFQUFFLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUUsS0FBRyxFQUFFLEdBQUMsRUFBRSxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBRSxJQUFFLENBQUMsR0FBQyxFQUFFLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFFLEtBQUcsQ0FBQyxHQUFDLEVBQUUsSUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLElBQUksRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEdBQUcsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLElBQUksRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxLQUFHLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsSUFBSSxFQUFFLEVBQUMsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsSUFBSSxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsR0FBRyxFQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUMsRUFBRSxDQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFFLEdBQUMsRUFBRSxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsRUFBRSxJQUFFLEVBQUUsQ0FBQyxLQUFHLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxFQUFFLElBQUUsRUFBRSxDQUFDLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBRSxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFFLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxXQUFXLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBRyxLQUFHLEVBQUUsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBRyxLQUFHLEVBQUUsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztZQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7WUFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztZQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtZQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLEdBQUMsQ0FBQyxFQUFDO29CQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFBO2lCQUFDO2dCQUFBLEdBQUcsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEdBQUcsQ0FBQSxDQUFDLENBQUEsQ0FBQyxLQUFHLENBQUMsQ0FBQTthQUFDO1lBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO1NBQUMsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsSUFBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFFLENBQUMsQ0FBQTthQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO29CQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTt3QkFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO29CQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO29CQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7d0JBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUUsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7d0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO3FCQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFFLENBQUMsQ0FBQyxHQUFHLENBQUE7YUFBQyxDQUFBLENBQUMsRUFBQyxXQUFXLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxVQUFTLENBQUMsSUFBRSxDQUFDLENBQUMsY0FBYyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLHdCQUF3QixFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGtCQUFrQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGFBQWEsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxvQkFBb0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFB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LEVBQUMsUUFBUSxFQUFDLHFCQUFxQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBQyxJQUFJLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxhQUFhLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsY0FBYyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsYUFBYSxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLHdCQUF3QixFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLHFCQUFxQixFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLG9CQUFvQixFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxhQUFhLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGFBQWEsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxxQkFBcUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLElBQUksQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMscUJBQXFCLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHVCQUF1QixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxF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QyxxQkFBcUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxtQkFBbUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLG9CQUFvQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxzQkFBc0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxvQkFBb0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0s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QUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxVQUFVLElBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO29CQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDO29CQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUE7Z0JBQUEsQ0FBQztnQkFBQSx3QkFBTSxHQUFOLFVBQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxJQUFFLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsT0FBTyxDQUFD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QUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxjQUFjLEdBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENB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Q0FBQyxDQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUM7WUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBRSxLQUFLLElBQUUsQ0FBQyxJQUFFLEtBQUssSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxLQUFLLElBQUUsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFHLENBQUMsSUFBRSxLQUFLLElBQUUsQ0FBQyxJQUFFLEtBQUs7WUFBQyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFDLHdCQUF3QixDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsR0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBRyxDQUFDLElBQUUsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDO1lBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsR0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsRUFBRSxHQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLEtBQUcsSUFBRyxDQUFDLElBQUUsQ0FBQztZQUFDLE1BQU0sS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEVBQUUsRUFBQyxHQUFHLElBQUUsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDO1lBQUMsT0FBTyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUEsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsS0FBRyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDO1lBQUMsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxJQUFFLENBQUM7WUFBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDO1lBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxJQUFHLEdBQUcsSUFBRSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsRUFBQztZQUFDLElBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLElBQUUsR0FBRztnQkFBQyxPQUFPLENBQUMsQ0FBQztZQUFBLE1BQU0sS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUE7U0FBQyxDQUFBLElBQUcsR0FBRyxJQUFFLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxFQUFDO1lBQUMsSUFBRyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLElBQUUsSUFBSTtnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1NBQUMsQ0FBQSxJQUFHLEdBQUcsSUFBRSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxFQUFFLElBQUUsRUFBRSxHQUFDLENBQUMsRUFBRSxJQUFFLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFFLEtBQUssSUFBRSxDQUFDLElBQUUsT0FBTztZQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUEsTUFBTSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUM7WUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxVQUFTLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUM7WUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUM7WUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEtBQUssQ0FBQyxLQUFHLEVBQUUsR0FBQyxJQUFJLEdBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxjQUFXLElBQUcsVUFBVSxJQUFFLE9BQU8sV0FBVyxFQUFDO1lBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBRyxDQUFDLFlBQVksV0FBVyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksU0FBUyxJQUFFLFdBQVcsSUFBRSxPQUFPLGlCQUFpQixJQUFFLENBQUMsWUFBWSxpQkFBaUIsSUFBRSxDQUFDLFlBQVksVUFBVSxJQUFFLENBQUMsWUFBWSxXQUFXLElBQUUsQ0FBQyxZQUFZLFVBQVUsSUFBRSxDQUFDLFlBQVksV0FBVyxJQUFFLENBQUMsWUFBWSxZQUFZLElBQUUsQ0FBQyxZQUFZLFlBQVksQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLFlBQVksVUFBVSxFQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQTthQUFDOztnQkFBSyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBQyxTQUFTLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsUUFBUSxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxFQUFDLFNBQVMsRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxLQUFLLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxLQUFLLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxRQUFRLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsUUFBUSxJQUFFLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbHdpRjs7Ozs7Ozs7O3NCQVNHO2dCQUNILFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO3dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUE7cUJBQUMsQ0FBQSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxJQUFFLENBQUM7d0JBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO3dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUE7cUJBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEdBQUU7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztvQkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7d0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBQztZQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBQSxJQUFJLENBQUMsR0FBRyxHQUFDLEtBQUssQ0FBQyxDQUFBO1NBQUM7O1lBQUssQ0FBQyxHQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hsSTs7Ozt1QkFJSTtnQkFDSixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUcsR0FBRyxJQUFFLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxHQUFHLENBQUMsRUFBQztvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUM7b0JBQUEsR0FBRyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxHQUFHLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUE7aUJBQUM7O29CQUFLLENBQUMsSUFBRSxDQUFDLElBQUUsRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsR0FBRyxHQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7d0JBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsR0FBRyxHQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBQyxFQUFDLEdBQUcsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUMsRUFBQyxHQUFHLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBQyxFQUFDLEdBQUcsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUMsRUFBQyxHQUFHLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDO2dCQUFFLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFDLEVBQUMsR0FBRyxFQUFDLGNBQVcsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUU7WUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsR0FBQyxHQUFHLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUM7WUFBQSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7WUFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUM7WUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO1NBQUMsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBRSxJQUFJLENBQUMsY0FBYyxLQUFHLElBQUksQ0FBQyxJQUFJLEVBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsY0FBYyxHQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsWUFBWSxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLElBQUcsQ0FBQyxHQUFDLENBQUM7d0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFBSTt3QkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7cUJBQUM7Z0JBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsZUFBZSxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsWUFBWSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxlQUFlLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxhQUFhLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsUUFBUSxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsUUFBUSxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsSUFBSSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsSUFBSSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsSUFBSSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsSUFBSSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUE7YUFBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEdBQUMsRUFBRSxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsYUFBYSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsSUFBSSxDQUFDLE9BQU8sR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxPQUFPLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFHLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLE9BQU8sSUFBRSxDQUFDLEVBQUMsSUFBSSxDQUFDLE9BQU8sSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFHLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLE9BQU8sSUFBRSxDQUFDLEVBQUMsSUFBSSxDQUFDLE9BQU8sSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxHQUFHLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7Z0JBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsSUFBSSxDQUFDLEVBQUUsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxTQUFTLENBQUMsS0FBRyxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO1NBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsVUFBVSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxLQUFHLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLFVBQVUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxTQUFTLENBQUMsS0FBRyxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO1NBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxJQUFFLElBQUksQ0FBQyxVQUFVLElBQUUsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLElBQUcsUUFBUSxJQUFFLE9BQU8sT0FBTyxJQUFFLFVBQVUsSUFBRSxPQUFPLE9BQU8sQ0FBQyxRQUFRO2dCQUFDLENBQUMsR0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDOztnQkFBSyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLElBQUUsSUFBSSxDQUFDLFVBQVUsSUFBRSxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBRyxRQUFRLElBQUUsT0FBTyxPQUFPLElBQUUsVUFBVSxJQUFFLE9BQU8sT0FBTyxDQUFDLFFBQVE7Z0JBQUMsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBNEMsQ0FBQyxDQUFDLFFBQVEsRUFBSSxDQUFDLENBQUMsQ0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBQyxLQUFLLEVBQUM7O29CQUFXLE9BQU8sQ0FBQSxLQUFBLENBQUMsQ0FBQyxPQUFPLENBQUEsQ0FBQyxJQUFJLHFCQUFDLENBQUMsRUFBQyxJQUFJLEdBQUksU0FBUyxHQUFDO2dCQUFBLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsQ0FBQyxDQUFDLHVCQUF1QixHQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQztZQUFBO2dCQUFRLFdBQVksQ0FBQztvQkFBRSxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksR0FBRyxDQUFBO2dCQUFBLENBQUM7Z0JBQU0scUJBQVMsR0FBZixVQUFnQixDQUFDOzs7Ozs0QkFBRSxJQUFHLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0NBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7NEJBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7NEJBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzs0QkFBQSxzQkFBTyxDQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLFVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxLQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsRUFBQTs7O2lCQUFDO2dCQUFBLHVCQUFXLEdBQVgsVUFBWSxDQUFDLElBQUUsSUFBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO2dCQUFN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QyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxhQUFhLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsZUFBZSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGVBQWUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxxQkFBcUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxhQUFhLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFlBQVksRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxpQkFBaUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxnQkFBZ0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxrQkFBa0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx5QkFBeUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxvQ0FBb0MsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxzQ0FBc0MsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyw4QkFBOEIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxnQ0FBZ0MsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxhQUFhLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHFCQUFxQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHdCQUF3QixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxpQkFBaUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxvQkFBb0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxzQkFBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQywwQkFBMEIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx1Q0FBdUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx5Q0FBeUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQywyQkFBMkIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxpQ0FBaUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxtQ0FBbUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxlQUFlLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsb0JBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsaUNBQWlDLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMscUJBQXFCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsc0JBQXNCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsYUFBYSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGFBQWEsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxnQkFBZ0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxvQkFBb0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsYUFBYSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGlCQUFpQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGlCQUFpQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxnQkFBZ0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxlQUFlLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMscUJBQXFCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsc0JBQXNCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsaUJBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsd0JBQXdCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMscUJBQXFCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsdUJBQXVCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsc0JBQXNCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsdUJBQXVCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsMEJBQTBCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsZUFBZSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLG9CQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBQyxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxDQUFDO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFBLElBQUcsUUFBUSxJQUFFLE9BQU8sQ0FBQztnQkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFpQyxPQUFPLENBQUMsTUFBRyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBQyxFQUFDLE9BQU8sRUFBQyxLQUFLLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFBLENBQUEsQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBSyxJQUFFLEtBQUssS0FBRyxDQUFDLENBQUMsT0FBTyxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUUsSUFBSSxJQUFFLENBQUMsQ0FBQyxNQUFNLElBQUUsS0FBSyxDQUFDLEtBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxVQUFTLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEdBQUMsWUFBWSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsR0FBQyxhQUFhLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsQ0FBQyxDQUFDLEdBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFDLENBQUMsQ0FBQyxHQUFDLGlCQUFpQixFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFDLENBQUMsQ0FBQyxHQUFDLGlCQUFpQixFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFDLENBQUMsQ0FBQyxHQUFDLGlCQUFpQixFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsQ0FBQyxDQUFDLEdBQUMsa0JBQWtCLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixJQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixHQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsV0FBVyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsUUFBUSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsSUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsV0FBVyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFBLENBQUMsSUFBRSxPQUFBLFVBQVUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQWYsQ0FBZSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLGdCQUFnQjtnQkFBTyxpQkFBWSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7b0JBQUUsSUFBSSxDQUFDLGNBQWMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFDLFNBQVMsSUFBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBRSxVQUFVLElBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBRSxpQkFBaUIsSUFBRyxDQUFDLElBQUUsWUFBWSxLQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUE7Z0JBQUEsQ0FBQztnQkFBQSxxQ0FBbUIsR0FBbkIsVUFBb0IsQ0FBQyxJQUFFLElBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO2dCQUFBLDhCQUFZLEdBQVosVUFBYSxDQUFDLElBQUUsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsQ0FBQyxJQUFFLE9BQUEsS0FBSyxDQUFDLEtBQUcsQ0FBQyxFQUFWLENBQVUsQ0FBQztvQkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07b0JBQUMsTUFBTSxDQUFDLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSwyQkFBUyxHQUFULFVBQVUsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLEVBQUMsRUFBRSxFQUFDLEtBQUssQ0FBQyxFQUFDLElBQUksRUFBQyxLQUFLLENBQUMsRUFBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLEVBQUMsSUFBSSxFQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFDLElBQUksQ0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSwyQkFBUyxHQUFULGNBQVksT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSw4QkFBWSxHQUFaLFVBQWEsQ0FBQyxJQUFFLElBQUcsQ0FBQyxDQUFDO29CQUFDLE9BQU8sQ0FBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxLQUFHLENBQUMsQ0FBQyxNQUFNLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBTSx5QkFBTyxHQUFiLFVBQWMsQ0FBQztvQkFBQyxXQUFJO3lCQUFKLFVBQUksRUFBSixxQkFBSSxFQUFKLElBQUk7d0JBQUosMEJBQUk7Ozs7O2dDQUFFLElBQUcsQ0FBQyxDQUFDO29DQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQXdCLElBQUksQ0FBQyxXQUFXLEVBQUUsd0NBQXFDLENBQUMsQ0FBQztxQ0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQXpCLHdCQUF5QjtnQ0FBUSxNQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQUEsSUFBRyxHQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRO29DQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztnQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLElBQUk7b0NBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO2dDQUFPLHFCQUFNLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFDLENBQUMsRUFBQTtvQ0FBckMsc0JBQU8sU0FBOEIsRUFBQTs7Z0NBQVEsTUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUMsT0FBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQ0FBRyxxQkFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUMsRUFBQyxHQUFDLENBQUMsRUFBQTs7Z0NBQXZCLE1BQUUsU0FBcUI7Z0NBQUMsc0JBQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFDLENBQUMsRUFBQTs7O2lCQUFFO2dCQUFBLDZCQUFXLEdBQVg7b0JBQVksV0FBSTt5QkFBSixVQUFJLEVBQUoscUJBQUksRUFBSixJQUFJO3dCQUFKLHNCQUFJOztvQkFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQUEsQ0FBQztnQkFBQSx5QkFBTyxHQUFQO29CQUFRLFdBQUk7eUJBQUosVUFBSSxFQUFKLHFCQUFJLEVBQUosSUFBSTt3QkFBSixzQkFBSTs7b0JBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtnQkFBQSxDQUFDO2dCQUFBLDZCQUFXLEdBQVgsY0FBYyxPQUFPLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQSxDQUFDO2dCQUFBLDBCQUFRLEdBQVIsY0FBVyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFFLE1BQU0sQ0FBQSxDQUFBLENBQUM7Z0JBQUEsa0NBQWdCLEdBQWhCLFVBQWlCLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQSxJQUFNLENBQUMsR0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7b0JBQVMsV0FBSTt5QkFBSixVQUFJLEVBQUoscUJBQUksRUFBSixJQUFJO3dCQUFKLHNCQUFJOztvQkFBRSxJQUFNLENBQUMsR0FBQyxJQUFJLENBQUMsY0FBYyxJQUFFLENBQUMsQ0FBQyxjQUFjLENBQUM7b0JBQUEsT0FBTyxDQUFDLENBQUMsT0FBTyxPQUFULENBQUMsWUFBUyxDQUFDLEdBQUksQ0FBQyxHQUFDO2dCQUFBLENBQUMsRUFBQyxFQUFDLFdBQVcsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7Z0JBQUEsY0FBQztZQUFELENBQUMsQUFBanZFLEdBQWl2RSxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUFBLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLG1CQUFtQjtnQkFBZSx1Q0FBYztnQkFBQzsyQkFBYyxrQkFBTSxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsY0FBYyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEVBQUMsQ0FBQztnQkFBQSxDQUFDO2dCQUFBLG9DQUFNLEdBQU4sVUFBTyxDQUFDLElBQUUsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSwwQkFBQztZQUFELENBQUMsQUFBL0ssQ0FBYyxDQUFDLENBQUMsWUFBWSxFQUFtSixDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUFBLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLGdCQUFnQjtnQkFBZSxvQ0FBYztnQkFBQzsyQkFBYyxrQkFBTSxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsZUFBZSxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUMsQ0FBQztnQkFBQSxDQUFDO2dCQUFBLGlDQUFNLEdBQU4sVUFBTyxDQUFDLElBQUUsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSx1QkFBQztZQUFELENBQUMsQUFBNUssQ0FBYyxDQUFDLENBQUMsWUFBWSxFQUFnSixDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUFBLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLGVBQWU7Z0JBQWUsbUNBQWM7Z0JBQUM7MkJBQWMsa0JBQU0sRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBQyxDQUFDO2dCQUFBLENBQUM7Z0JBQUEsZ0NBQU0sR0FBTixVQUFPLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUEsQ0FBQSxDQUFDO2dCQUFBLHNCQUFDO1lBQUQsQ0FBQyxBQUFsTCxDQUFjLENBQUMsQ0FBQyxZQUFZLEVBQXNKLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBQSxDQUFDLENBQUMsZ0JBQWdCO2dCQUFlLG9DQUFjO2dCQUFDOzJCQUFjLGtCQUFNLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBQyxDQUFDO2dCQUFBLENBQUM7Z0JBQUEsaUNBQU0sR0FBTixVQUFPLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUEsQ0FBQSxDQUFDO2dCQUFBLHVCQUFDO1lBQUQsQ0FBQyxBQUFwTCxDQUFjLENBQUMsQ0FBQyxZQUFZLEVBQXdKLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBQSxDQUFDLENBQUMsd0JBQXdCO2dCQUFlLDRDQUFjO2dCQUFDOzJCQUFjLGtCQUFNLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyx1QkFBdUIsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLHdCQUF3QixFQUFDLENBQUM7Z0JBQUEsQ0FBQztnQkFBQSx5Q0FBTSxHQUFOLFVBQU8sQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQSxDQUFBLENBQUM7Z0JBQUEsZ0RBQWEsR0FBYixjQUFnQixPQUFNLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSwrQkFBQztZQUFELENBQUMsQUFBdE4sQ0FBYyxDQUFDLENBQUMsWUFBWSxFQUEwTCxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUFBLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLGtCQUFrQjtnQkFBZSxzQ0FBYztnQkFBQzsyQkFBYyxrQkFBTSxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBQyxDQUFDO2dCQUFBLENBQUM7Z0JBQUEsbUNBQU0sR0FBTixVQUFPLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUEsQ0FBQSxDQUFDO2dCQUFBLDBDQUFhLEdBQWIsY0FBZ0IsT0FBTSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7Z0JBQUEseUJBQUM7WUFBRCxDQUFDLEFBQTNNLENBQWMsQ0FBQyxDQUFDLFlBQVksRUFBK0ssQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxnQkFBZ0I7Z0JBQWUsb0NBQWM7Z0JBQUM7MkJBQWMsa0JBQU0sRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFDLENBQUM7Z0JBQUEsQ0FBQztnQkFBQSxpQ0FBTSxHQUFOLFVBQU8sQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQSxDQUFBLENBQUM7Z0JBQUEsdUJBQUM7WUFBRCxDQUFDLEFBQW5MLENBQWMsQ0FBQyxDQUFDLFlBQVksRUFBdUosQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxpQkFBaUI7Z0JBQWUscUNBQWM7Z0JBQUM7MkJBQWMsa0JBQU0sRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFDLENBQUM7Z0JBQUEsQ0FBQztnQkFBQSxrQ0FBTSxHQUFOLFVBQU8sQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQSxDQUFBLENBQUM7Z0JBQUEsd0JBQUM7WUFBRCxDQUFDLEFBQXZMLENBQWMsQ0FBQyxDQUFDLFlBQVksRUFBMkosQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxpQkFBaUI7Z0JBQWUscUNBQWM7Z0JBQUM7MkJBQWMsa0JBQU0sRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUMsQ0FBQztnQkFBQSxDQUFDO2dCQUFBLGtDQUFNLEdBQU4sVUFBTyxDQUFDLElBQUUsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSx3QkFBQztZQUFELENBQUMsQUFBMUwsQ0FBYyxDQUFDLENBQUMsWUFBWSxFQUE4SixDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUFBLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxpQkFBaUI7Z0JBQU8saUJBQVksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO29CQUFFLElBQUksQ0FBQyxlQUFlLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFBO2dCQUFBLENBQUM7Z0JBQUEsd0JBQU0sR0FBTixVQUFPLENBQUk7b0JBQUosa0JBQUEsRUFBQSxNQUFJO29CQUFFLElBQUksQ0FBQyxHQUFDLEVBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUMsQ0FBQztvQkFBQSxPQUFNLENBQUMsV0FBVyxFQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLEtBQUssQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFTLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBO2dCQUFBLENBQUM7Z0JBQUEsd0JBQU0sR0FBTixVQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFJLElBQUUsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBTSx5QkFBTyxHQUFiLFVBQWMsQ0FBQzs7d0JBQU0sQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUFBLHNCQUFPLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQTs7aUJBQUM7Z0JBQUEsa0NBQWdCLEdBQWhCLFVBQWlCLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSxjQUFDO1lBQUQsQ0FBQyxBQUE3c0IsR0FBNnNCLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxhQUFhLEtBQUcsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBRyxDQUFDLENBQUMsTUFBTSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUEsQ0FBQSxDQUFDO1lBQUEsQ0FBQyxDQUFDLGVBQWU7Z0JBQU8sa0JBQVksQ0FBQyxFQUFDLENBQUM7b0JBQUUsSUFBSSxDQUFDLGNBQWMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUE7Z0JBQUEsQ0FBQztnQkFBTSx5QkFBTSxHQUFaO29CQUFhLFdBQUk7eUJBQUosVUFBSSxFQUFKLHFCQUFJLEVBQUosSUFBSTt3QkFBSixzQkFBSTs7Ozs7Z0NBQVEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUFBLElBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO29DQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztnQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSTtvQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7Z0NBQUEsSUFBRyxDQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxhQUFhLEtBQUcsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBRyxDQUFDLENBQUMsTUFBTSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLENBQUMsT0FBTztvQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7Z0NBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUFBLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQztnQ0FBQyxLQUFBLENBQUMsQ0FBQyxHQUFHLENBQUE7d0NBQUwsd0JBQUs7Z0NBQUcsS0FBQSxDQUFDLENBQUE7Z0NBQUsscUJBQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUE7O2dDQUFuRCxLQUFBLENBQUMsR0FBRSxHQUFHLEdBQUMsU0FBNEMsQ0FBQyxDQUFBOzs7Z0NBQXJFLEdBQXNFO2dDQUFRLHFCQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUE7O2dDQUFsRCxDQUFDLEdBQUMsU0FBZ0Q7Z0NBQUcscUJBQU0sVUFBZSxDQUFDLEVBQUMsQ0FBQzs7OztvREFBUSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29EQUFJLENBQUMsR0FBQyxDQUFDLENBQUM7b0RBQU0sQ0FBQyxHQUFDLGNBQUssRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsVUFBVSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFBLENBQUMsSUFBRSxPQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQVgsQ0FBVyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUM7b0RBQUEsQ0FBQyxFQUFFLENBQUM7b0RBQVEscUJBQU0sQ0FBQyxFQUFBOztvREFBVCxDQUFDLEdBQUMsU0FBTztvREFBRyxxQkFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUMsUUFBUSxDQUFDLEVBQUE7O29EQUFqRCxDQUFDLEdBQUMsU0FBK0M7b0RBQUMsSUFBRyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUM7d0RBQUMsc0JBQU8sQ0FBQyxDQUFDLGVBQWUsRUFBQztvREFBQSxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMscUVBQXFFLENBQUMsRUFBQyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUE7OztxQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLEVBQUE7O2dDQUFsZ0IsQ0FBQyxHQUFDLFNBQWdnQjtnQ0FBRyxxQkFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFBOztnQ0FBbEIsQ0FBQyxHQUFDLFNBQWdCO2dDQUFDLHNCQUFPLENBQUEsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLEVBQUE7OztpQkFBQztnQkFBTSxxQkFBRSxHQUFSLFVBQVMsQ0FBQzs7d0JBQUUsSUFBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDOzRCQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMscUJBQW1CLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFHLENBQUMsQ0FBQzt3QkFBQSxzQkFBTyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxFQUFBOztpQkFBQztnQkFBTSwwQkFBTyxHQUFiO29CQUFjLFdBQUk7eUJBQUosVUFBSSxFQUFKLHFCQUFJLEVBQUosSUFBSTt3QkFBSixzQkFBSTs7O3dCQUFNLENBQUMsR0FBQyxFQUFDLElBQUksRUFBQyxLQUFLLENBQUMsRUFBQyxDQUFDO3dCQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxJQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzs0QkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7d0JBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUUsUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUk7NEJBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO3dCQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxzQkFBTyxDQUFBLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBQTs7aUJBQUM7Z0JBQUEsZUFBQztZQUFELENBQUMsQUFBeGlELEdBQXdpRCxDQUFBO1FBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNucW9DLGtCQUFlLFVBQVUsQ0FBQzs7QUNsQjFCLGlCQUFpQjs7O0lBSWpCLElBQU0sVUFBVSxHQUFTLHlCQUFDLENBQUE7SUFDMUIsT0FBUyxVQUFVLENBQUE7Ozs7O0lDTG5CLGtCQUFlO1FBQ2Q7WUFDQyxNQUFNLEVBQUU7Z0JBQ1A7b0JBQ0MsWUFBWSxFQUFFLFNBQVM7b0JBQ3ZCLElBQUksRUFBRSxzQkFBc0I7b0JBQzVCLElBQUksRUFBRSxTQUFTO2lCQUNmO2dCQUNELEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7YUFDbEU7WUFDRCxPQUFPLEVBQUUsS0FBSztZQUNkLGVBQWUsRUFBRSxZQUFZO1lBQzdCLElBQUksRUFBRSxhQUFhO1NBQ25CO1FBQ0Q7WUFDQyxTQUFTLEVBQUUsS0FBSztZQUNoQixNQUFNLEVBQUU7Z0JBQ1A7b0JBQ0MsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsWUFBWSxFQUFFLE9BQU87b0JBQ3JCLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLElBQUksRUFBRSxPQUFPO2lCQUNiO2FBQ0Q7WUFDRCxJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLElBQUksRUFBRSxPQUFPO1NBQ2I7UUFDRDtZQUNDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsTUFBTSxFQUFFO2dCQUNQLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7Z0JBQzlELEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7Z0JBQzlELEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7YUFDL0Q7WUFDRCxJQUFJLEVBQUUsV0FBVztZQUNqQixPQUFPLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDM0QsT0FBTyxFQUFFLEtBQUs7WUFDZCxlQUFlLEVBQUUsWUFBWTtZQUM3QixJQUFJLEVBQUUsVUFBVTtTQUNoQjtRQUNEO1lBQ0MsUUFBUSxFQUFFLElBQUk7WUFDZCxNQUFNLEVBQUUsRUFBRTtZQUNWLElBQUksRUFBRSxNQUFNO1lBQ1osT0FBTyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQy9ELE9BQU8sRUFBRSxLQUFLO1lBQ2QsZUFBZSxFQUFFLE1BQU07WUFDdkIsSUFBSSxFQUFFLFVBQVU7U0FDaEI7UUFDRDtZQUNDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLEVBQUU7WUFDVixJQUFJLEVBQUUsT0FBTztZQUNiLE9BQU8sRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUNqRSxPQUFPLEVBQUUsS0FBSztZQUNkLGVBQWUsRUFBRSxNQUFNO1lBQ3ZCLElBQUksRUFBRSxVQUFVO1NBQ2hCO1FBQ0Q7WUFDQyxRQUFRLEVBQUUsSUFBSTtZQUNkLE1BQU0sRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUM1RCxJQUFJLEVBQUUsV0FBVztZQUNqQixPQUFPLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDM0QsT0FBTyxFQUFFLEtBQUs7WUFDZCxlQUFlLEVBQUUsTUFBTTtZQUN2QixJQUFJLEVBQUUsVUFBVTtTQUNoQjtRQUNEO1lBQ0MsUUFBUSxFQUFFLElBQUk7WUFDZCxNQUFNLEVBQUUsRUFBRTtZQUNWLElBQUksRUFBRSxhQUFhO1lBQ25CLE9BQU8sRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUNqRSxPQUFPLEVBQUUsS0FBSztZQUNkLGVBQWUsRUFBRSxNQUFNO1lBQ3ZCLElBQUksRUFBRSxVQUFVO1NBQ2hCO0tBQ0QsQ0FBQTs7Ozs7O0lDMUVZLFFBQUEsYUFBYSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUE7SUFDM0MscUJBQWEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBRTVCLElBQUksVUFBVSxDQUFBO0lBRWQsSUFBTSxZQUFZLEdBQUcsSUFBSSxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQTtJQUMzRCxJQUFNLGVBQWUsR0FBRyxHQUFHLENBQUE7SUFFM0IsSUFBSSxxQkFBcUIsR0FBRyxFQUFFLENBQUE7SUFFOUIsU0FBc0IsTUFBTSxDQUFDLEtBQWE7Ozs7Ozs7d0JBQ3hDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTt3QkFDeEIsa0JBQVUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO3dCQUN6QixrQkFBVSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQTt3QkFDOUIsYUFBYSxHQUFHLENBQUMsQ0FBQTt3QkFFRCxxQkFBTSx3QkFBWSxDQUFDLEtBQUssQ0FBQyxFQUFBOzt3QkFBekMsYUFBYSxHQUFHLFNBQXlCO3dCQUN6QyxVQUFVLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFBO3dCQUVoRSxrQkFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQzs0QkFDL0IseUJBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTs0QkFDcEIsT0FBTyxFQUFFLENBQUE7NEJBQ1QsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUE7d0JBQ3pCLENBQUMsQ0FBQyxDQUFBO3dCQUVGLEdBQUcsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQTt3QkFFbEQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFOzRCQUNsQixrQkFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7NEJBQzFCLGtCQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTt5QkFDM0I7NkJBQU07NEJBQ0wsa0JBQVUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBOzRCQUMxQixrQkFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7eUJBQzFCO3dCQUVELGtCQUFVLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDOzs7O3dDQUMvQixhQUFhLElBQUksQ0FBQyxDQUFBO3dDQUVGLHFCQUFNLHdCQUFZLENBQUMsS0FBSyxDQUFDLEVBQUE7O3dDQUF6QyxhQUFhLEdBQUcsU0FBeUIsQ0FBQTt3Q0FDekMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFBO3dDQUMvQyxrQkFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7d0NBQ3pCLElBQUksYUFBYSxJQUFJLFVBQVUsRUFBRTs0Q0FDL0Isa0JBQVUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO3lDQUMzQjs7Ozs2QkFDRixDQUFDLENBQUE7d0JBRUYsa0JBQVUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUM7Ozs7d0NBQy9CLGFBQWEsSUFBSSxDQUFDLENBQUE7d0NBQ2xCLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRTs0Q0FDckIsYUFBYSxHQUFHLENBQUMsQ0FBQTt5Q0FDbEI7d0NBQ2UscUJBQU0sd0JBQVksQ0FBQyxLQUFLLENBQUMsRUFBQTs7d0NBQXpDLGFBQWEsR0FBRyxTQUF5QixDQUFBO3dDQUN6QyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUE7d0NBQy9DLGtCQUFVLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTt3Q0FDekIsSUFBSSxhQUFhLElBQUksQ0FBQyxFQUFFOzRDQUN0QixrQkFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7eUNBQzNCOzs7OzZCQUNGLENBQUMsQ0FBQTs7Ozs7S0FDSDtJQWhERCx3QkFnREM7SUFFRCxTQUFnQixPQUFPO1FBQ3JCLGtCQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUMxQixrQkFBVSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQTtJQUNyQyxDQUFDO0lBSEQsMEJBR0M7SUFFWSxRQUFBLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxxQkFBYSxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQ2xFLGtCQUFVLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQTtJQUM5QixrQkFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsZUFBZSxDQUFBO0lBQ3pDLGtCQUFVLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxlQUFlLENBQUE7SUFDekMsa0JBQVUsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFBO0lBQzVCLGtCQUFVLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQTtJQUM1QixrQkFBVSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUE7SUFDekIsa0JBQVUsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFBO0lBQ3pCLGtCQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtJQUM3QixrQkFBVSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUE7SUFDN0Isa0JBQVUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQzFCLGtCQUFVLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFBO0lBRXRCLFFBQUEsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLGtCQUFVLENBQUMsQ0FBQTtJQUNsRCxvQkFBWSxDQUFDLEtBQUssR0FBRyxxQkFBcUIsQ0FBQTtJQUMxQyxvQkFBWSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUE7SUFDaEMsb0JBQVksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFBO0lBQzVCLG9CQUFZLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQTtJQUM3QixvQkFBWSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUE7SUFDOUIsb0JBQVksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFBO0lBQzlCLG9CQUFZLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQTtJQUMxQixvQkFBWSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUE7SUFDMUIsb0JBQVksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO0lBQzFCLG9CQUFZLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQTtJQUNsQyxvQkFBWSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUE7SUFDbEMsb0JBQVksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUV6QyxRQUFBLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxrQkFBVSxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQy9ELGtCQUFVLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQTtJQUM5QixrQkFBVSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsZUFBZSxDQUFBO0lBQ3hDLGtCQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxlQUFlLENBQUE7SUFDeEMsa0JBQVUsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFBO0lBQzVCLGtCQUFVLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQTtJQUM1QixrQkFBVSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUE7SUFDekQsa0JBQVUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFBO0lBQ3hCLGtCQUFVLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQTtJQUMxQixrQkFBVSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUE7SUFDeEIsa0JBQVUsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFBO0lBQzVCLGtCQUFVLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQTtJQUVmLFFBQUEsVUFBVSxHQUFHLElBQUksT0FBTyxDQUFDLGtCQUFVLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDL0Qsa0JBQVUsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFBO0lBQzlCLGtCQUFVLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxlQUFlLENBQUE7SUFDdkMsa0JBQVUsQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLGVBQWUsQ0FBQTtJQUN4QyxrQkFBVSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUE7SUFDNUIsa0JBQVUsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFBO0lBQzVCLGtCQUFVLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQTtJQUN4QixrQkFBVSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUE7SUFDMUIsa0JBQVUsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFBO0lBQzNCLGtCQUFVLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQTtJQUN4QixrQkFBVSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUE7SUFDM0Isa0JBQVUsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFBO0lBRWYsUUFBQSxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsa0JBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUMvRCxrQkFBVSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUE7SUFDOUIsa0JBQVUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLGVBQWUsQ0FBQTtJQUN2QyxrQkFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsZUFBZSxDQUFBO0lBQ3hDLGtCQUFVLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQTtJQUM1QixrQkFBVSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUE7SUFDNUIsa0JBQVUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFBO0lBQ3hCLGtCQUFVLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFBO0lBQzNCLGtCQUFVLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQTtJQUN6QixrQkFBVSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUE7SUFDeEIsa0JBQVUsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFBO0lBQzNCLGtCQUFVLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQTtJQUU1QixvQ0FBb0M7SUFDcEMsU0FBUyxpQkFBaUIsQ0FBQyxhQUFvQixFQUFFLGFBQXFCO1FBQ3BFLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQTtRQUNyQixJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdDLGFBQWEsQ0FBQyxhQUFhLENBQUMsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUNoRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN0QixDQUFBO1lBQ0QsYUFBYSxDQUFDLGFBQWEsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDekUsSUFBSSxLQUFLLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNwRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7Z0JBQ3ZDLGFBQWEsQ0FBQyxhQUFhLENBQUMsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQ3pFO1lBRUQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLHFCQUFxQixFQUFFO2dCQUN6QyxhQUFhLElBQUksQ0FBQyxDQUFBO2dCQUNsQixhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUN0QixlQUFlO2FBQ2hCO1NBQ0Y7UUFDRCxvQkFBWSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3JELEdBQUcsQ0FDRCw4QkFBOEIsRUFDOUIsYUFBYSxFQUNiLElBQUksRUFDSixhQUFhLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUNqQyxDQUFBO1FBRUQsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFBO0lBQzdCLENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQTtJQUU1QixtQkFBbUI7SUFDbkIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBQyxDQUFDO1FBQzVELElBQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQy9CLElBQUksTUFBZSxDQUFBO1FBQ25CLElBQUksa0JBQVUsQ0FBQyxPQUFPLEVBQUU7WUFDdEIsTUFBTSxHQUFHLElBQUksQ0FBQTtTQUNkO2FBQU07WUFDTCxNQUFNLEdBQUcsS0FBSyxDQUFBO1NBQ2Y7UUFFRCxJQUFJLE1BQU0sSUFBSSxXQUFXLEdBQUcsVUFBVSxHQUFHLEdBQUcsRUFBRTtZQUM1QyxPQUFPLEVBQUUsQ0FBQTtTQUNWO0lBQ0gsQ0FBQyxDQUFDLENBQUE7Ozs7OztJQ2pMRiw2R0FBNkc7SUFDbEcsUUFBQSxjQUFjLEdBQ3ZCLGlFQUFpRSxDQUFBO0lBRW5FLGtCQUFrQjtJQUVsQjtRQUErQiw2QkFBTTtRQUVuQyxtQkFDRSxTQUFrQyxFQUNsQyxTQUFpQjtRQUVqQixtQkFBbUI7O1lBSnJCLFlBTUUsaUJBQU8sU0F3QlI7WUF2QkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFJLENBQUMsQ0FBQTtZQUV0QixLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksU0FBUyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQTtZQUNsRSxLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7WUFFM0MsS0FBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7WUFFMUIsS0FBSSxDQUFDLFlBQVksQ0FDZixJQUFJLGFBQWEsQ0FDZjtnQkFDRSxXQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ2pCLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1lBQ3pCLENBQUMsRUFDRCxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FDdEIsQ0FDRixDQUFBO1lBRUQsSUFBSSxhQUFhLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQTtZQUNoQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQTtZQUMzQyxhQUFhLENBQUMsWUFBWSxDQUN4QixJQUFJLFNBQVMsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUNyRCxDQUFBO1lBQ0QsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFJLENBQUMsQ0FBQTs7UUFDL0IsQ0FBQztRQUNILGdCQUFDO0lBQUQsQ0FBQyxBQWpDRCxDQUErQixNQUFNLEdBaUNwQztJQWpDWSw4QkFBUztJQW1DdEIseUNBQXlDO0lBQ3pDLFNBQXNCLFlBQVksQ0FBQyxLQUFhOzs7Ozs7O3dCQUV4QyxHQUFHLEdBQUcsc0JBQWMsR0FBRyx3QkFBd0IsR0FBRyxLQUFLLENBQUE7d0JBQzVDLHFCQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBQTs7d0JBQTNCLFFBQVEsR0FBRyxTQUFnQjt3QkFDcEIscUJBQU0sUUFBUSxDQUFDLElBQUksRUFBRSxFQUFBOzt3QkFBNUIsSUFBSSxHQUFHLFNBQXFCO3dCQUNoQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7d0JBQ1Qsc0JBQU8sSUFBSSxFQUFBOzs7d0JBRVgsR0FBRyxDQUFDLG9DQUFvQyxFQUFFLElBQUMsQ0FBQyxDQUFBOzs7Ozs7S0FFL0M7SUFWRCxvQ0FVQztJQUVELDRCQUE0QjtJQUM1QixTQUFzQixhQUFhLENBQUMsS0FBYTs7Ozs7OzZCQUMzQyxDQUFDLHNCQUFRLEVBQVQsd0JBQVM7d0JBQ1gscUJBQU0seUJBQVcsRUFBRSxFQUFBOzt3QkFBbkIsU0FBbUIsQ0FBQTs7Ozt3QkFHZixHQUFHLEdBQUcsc0JBQWMsR0FBRyx1QkFBdUIsR0FBRyxLQUFLLENBQUE7d0JBQy9DLEtBQUEsQ0FBQSxLQUFBLElBQUksQ0FBQSxDQUFDLFNBQVMsQ0FBQTs7d0JBQ2xCLHFCQUFNLHNCQUFRLEVBQUE7O3dCQUFuQixLQUFFLEdBQUUsQ0FBQyxTQUFjLENBQUMsQ0FBQyxNQUFNO3dCQUNwQixxQkFBTSxzQkFBUSxFQUFBOzt3QkFGbkIsSUFBSSxHQUFHLGVBRVQsT0FBSSxHQUFFLENBQUMsU0FBYyxDQUFDLENBQUMsV0FBVztxQ0FDbEM7d0JBQ0YsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO3dCQUNNLHFCQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0NBQzlCLE1BQU0sRUFBRSxNQUFNO2dDQUNkLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRTtnQ0FDL0MsSUFBSSxFQUFFLElBQUk7NkJBQ1gsQ0FBQyxFQUFBOzt3QkFKRSxRQUFRLEdBQUcsU0FJYjt3QkFDRixzQkFBTyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUE7Ozt3QkFFdEIsR0FBRyxDQUFDLDBCQUEwQixFQUFFLElBQUMsQ0FBQyxDQUFBOzs7Ozs7S0FFckM7SUFwQkQsc0NBb0JDOzs7Ozs7SUMxRUQsWUFBWTtJQUVaLElBQUksU0FBUyxHQUFHLElBQUkscUJBQVMsQ0FDM0I7UUFDRSxRQUFRLEVBQUUsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDaEMsRUFDRCxNQUFNLENBQ1AsQ0FBQTtJQUVELGFBQWE7SUFFYixJQUFJLFNBQVMsR0FBRyxJQUFJLHFCQUFTLENBQzNCO1FBQ0UsUUFBUSxFQUFFLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQy9CLEVBQ0QsU0FBUyxDQUNWLENBQUE7SUFFRCw4QkFBOEI7SUFFbkIsUUFBQSxlQUFlLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQTtJQUU3Qyx1QkFBZSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUU7UUFDakMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ3RCLENBQUMsQ0FBQyxDQUFBO0lBRUYsY0FBYztJQUVkLElBQUksVUFBVSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUE7SUFDN0IsVUFBVSxDQUFDLFlBQVksQ0FDckIsSUFBSSxTQUFTLENBQUM7UUFDWixRQUFRLEVBQUUsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDL0IsQ0FBQyxDQUNILENBQUE7SUFDRCxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQTtJQUNyRSxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRTVCLFVBQVUsQ0FBQyxZQUFZLENBQ3JCLElBQUksYUFBYSxDQUNmLFVBQUMsQ0FBQztRQUNBLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0lBQzFDLENBQUMsRUFDRCxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsQ0FDNUIsQ0FDRixDQUFBO0lBRUQsUUFBUTtJQUVSLElBQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ25DLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDeEIsTUFBTSxDQUFDLHFCQUFxQixDQUMxQixJQUFJLFNBQVMsQ0FBQyxnREFBZ0QsQ0FBQyxDQUNoRSxDQUFBO0lBQ0QsTUFBTSxDQUFDLHFCQUFxQixDQUMxQixJQUFJLFNBQVMsQ0FBQztRQUNaLFFBQVEsRUFBRSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixRQUFRLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM1QixDQUFDLENBQ0gsQ0FBQTs7Ozs7O0lDeERVLFFBQUEsYUFBYSxHQUFHLGtCQUFrQixDQUFBO0lBRWxDLFFBQUEsY0FBYyxHQUN2QixpRUFBaUUsQ0FBQTtJQWNuRSxTQUFzQixhQUFhOzs7Ozs0QkFDcEIscUJBQU0sc0JBQVcsRUFBRSxFQUFBOzt3QkFBMUIsSUFBSSxHQUFHLFNBQW1CO3dCQUNoQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO3dCQUNyQixzQkFBTyxJQUFJLEVBQUE7Ozs7S0FDWjtJQUpELHNDQUlDO0lBRUQsU0FBc0IsV0FBVzs7Ozs7NEJBQ2xCLHFCQUFNLHNCQUFXLEVBQUUsRUFBQTs7d0JBQTFCLElBQUksR0FBRyxTQUFtQjt3QkFDaEMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTt3QkFDckIsZ0JBQVEsR0FBRyxJQUFJLENBQUE7Ozs7O0tBQ2hCO0lBSkQsa0NBSUM7SUFFRCxTQUFzQixTQUFTLENBQUMsS0FBYTs7Ozs7O3dCQUNyQyxHQUFHLEdBQUcsc0JBQWMsR0FBRyx1QkFBdUIsR0FBRyxLQUFLLENBQUE7Ozs7d0JBRTNDLHFCQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBQTs7d0JBQTNCLFFBQVEsR0FBRyxTQUFnQjt3QkFDcEIscUJBQU0sUUFBUSxDQUFDLElBQUksRUFBRSxFQUFBOzt3QkFBNUIsSUFBSSxHQUFHLFNBQXFCO3dCQUNoQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTt3QkFDMUIsc0JBQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBQTs7O3dCQUU1QixHQUFHLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxDQUFDLENBQUE7Ozs7OztLQUVoRDtJQVZELDhCQVVDO0lBRUQsU0FBc0IsU0FBUyxDQUFDLEtBQWE7Ozs7Ozt3QkFDckMsR0FBRyxHQUFHLGdEQUFnRCxHQUFHLEtBQUssQ0FBQTs7Ozt3QkFHbkQscUJBQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFBOzt3QkFBM0IsUUFBUSxHQUFHLFNBQWdCO3dCQUNwQixxQkFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUE7O3dCQUE1QixJQUFJLEdBQUcsU0FBcUI7d0JBQzVCLElBQUksR0FBYyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7d0JBQ3RFLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUE7d0JBQ3JCLHNCQUFPLElBQUksRUFBQTs7O3dCQUVYLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLENBQUMsQ0FBQTs7Ozs7O0tBRS9DO0lBWkQsOEJBWUM7SUFFRCxTQUFzQixnQkFBZ0IsQ0FBQyxJQUFlLEVBQUUsS0FBYTs7Ozs7O3dCQUM3RCxHQUFHLEdBQUcsdUNBQXVDLENBQUE7d0JBQy9DLE1BQU0sR0FBRyxNQUFNLENBQUE7d0JBQ2YsT0FBTyxHQUFHLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUE7d0JBQ2hELElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDOzRCQUN4QixPQUFPLEVBQUUsZ0JBQVEsQ0FBQyxTQUFTOzRCQUMzQixTQUFTLEVBQUUsSUFBSTs0QkFDZixPQUFPLEVBQUUsS0FBSzs0QkFDZCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07eUJBQ3BCLENBQUMsQ0FBQTt3QkFDRixHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFBOzs7O3dCQUdKLHFCQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0NBQzlCLE9BQU8sRUFBRSxPQUFPO2dDQUNoQixNQUFNLEVBQUUsTUFBTTtnQ0FDZCxJQUFJLEVBQUUsSUFBSTs2QkFDWCxDQUFDLEVBQUE7O3dCQUpFLFFBQVEsR0FBRyxTQUliO3dCQUNTLHFCQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBQTs7d0JBQTVCLFNBQU8sU0FBcUI7d0JBQzVCLElBQUksR0FBb0I7NEJBQzFCLGNBQWMsRUFBRSxNQUFJLENBQUMsd0JBQXdCOzRCQUM3QyxRQUFRLEVBQUUsTUFBSSxDQUFDLFFBQVE7eUJBQ3hCLENBQUE7d0JBQ0Qsc0JBQU8sSUFBSSxFQUFBOzs7d0JBRVgsR0FBRyxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsQ0FBQyxDQUFBOzs7Ozs7S0FFL0M7SUEzQkQsNENBMkJDO0lBRUQsU0FBc0IsZUFBZSxDQUFDLEtBQWE7Ozs7Ozs2QkFDN0MsQ0FBQyxnQkFBUSxFQUFULHdCQUFTO3dCQUNBLHFCQUFNLGFBQWEsRUFBRSxFQUFBOzt3QkFBaEMsZ0JBQVEsR0FBRyxTQUFxQixDQUFBOzs7d0JBRWxDLElBQUksQ0FBQyxnQkFBUSxDQUFDLGdCQUFnQixFQUFFOzRCQUM5QixHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7NEJBQ2hCLHNCQUFNO3lCQUNQO3dCQUNtQixxQkFBTSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUE7O3dCQUF0QyxLQUFLLEdBQVcsU0FBc0I7d0JBRWxCLHFCQUFNLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBQTs7d0JBQTFDLE1BQU0sR0FBYyxTQUFzQjt3QkFFYixxQkFBTSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUE7O3dCQUFsRSxTQUFTLEdBQW9CLFNBQXFDO3dCQUV0RSxHQUFHLENBQUMsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLENBQUE7d0JBRXZCLHFCQUFNLDJCQUFXLEVBQUUsRUFBQTs7d0JBQTlCLFFBQVEsR0FBRyxTQUFtQjt3QkFDOUIsRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQTt3QkFFbEIscUJBQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSwwQkFBWSxDQUFDLEVBQUE7O3dCQUFsRSxnQkFBZ0IsR0FBRyxTQUErQzt3QkFDN0MscUJBQU0sZ0JBQWdCLENBQUMsRUFBRTs0QkFDbEQsU0FBUzs0QkFDVCw4Q0FBOEM7NEJBQzlDLFNBQVM7NEJBQ1QsNENBQTRDLENBQzdDLEVBQUE7O3dCQUxLLGlCQUFpQixHQUFHLENBQUMsU0FLMUIsQ0FBUTt3QkFFVCxxQkFBTSxpQkFBaUIsQ0FBQyxTQUFTLENBQy9CLFNBQVMsQ0FBQyxRQUFRLEVBQ2xCLGdCQUFRLENBQUMsU0FBUyxFQUNsQixTQUFTLENBQUMsY0FBYyxFQUN4QjtnQ0FDRSxJQUFJLEVBQUUsZ0JBQVEsQ0FBQyxTQUFTOzZCQUN6QixDQUNGLENBQUMsSUFBSSxDQUFDLHNCQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFBOzt3QkFQaEQsU0FPZ0QsQ0FBQTt3QkFFaEQsc0JBQU07Ozs7S0FDUDtJQXJDRCwwQ0FxQ0M7Ozs7OztJQzNIRDtRQUErQiw2QkFBTTtRQUtuQyxtQkFBWSxTQUFrQyxFQUFFLFNBQWlCO1lBQWpFLFlBQ0UsaUJBQU8sU0E4QlI7WUFuQ0QsY0FBUSxHQUFHLElBQUksY0FBYyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQzdELGFBQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtZQUMvRCxnQkFBVSxHQUFHLElBQUksY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO1lBSWxFLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSSxDQUFDLENBQUE7WUFFdEIsS0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUE7WUFDbEUsS0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO1lBRTNDLEtBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1lBQ2pDLEtBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUNsRCxLQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDakQsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUVwQixLQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtZQUUxQixJQUFJLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFBO1lBQ3pCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFBO1lBQ2pFLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1lBQ25DLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUN0RCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUksQ0FBQyxDQUFBO1lBQ3RCLE1BQU0sQ0FBQyxZQUFZLENBQ2pCLElBQUksYUFBYSxDQUNmLFVBQUMsQ0FBQztnQkFDQSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQkFDdEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7Z0JBQ3RELHNCQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQTtnQkFDeEMsNkJBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUM1QixDQUFDLEVBQ0QsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsQ0FDdEMsQ0FDRixDQUFBO1lBQ0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTs7UUFDMUIsQ0FBQztRQUVNLDRCQUFRLEdBQWY7WUFDRSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBRXRDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUVsQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO1lBRWxDLElBQUksQ0FBQyxxQkFBcUIsQ0FDeEIsSUFBSSxlQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQkFFbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUNsQyxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBQ0gsQ0FBQztRQUNILGdCQUFDO0lBQUQsQ0FBQyxBQXRERCxDQUErQixNQUFNLEdBc0RwQztJQXREWSw4QkFBUyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkXG4gIHVwZGF0ZShkdDogbnVtYmVyKTogdm9pZFxuICBoYXNGaW5pc2hlZCgpOiBib29sZWFuXG4gIGFzc2lnblZhbHVlVG9UcmFuc2Zvcm0odHJhbnNmb3JtOiBUcmFuc2Zvcm0pOiB2b2lkXG59XG4iLCJleHBvcnQgZW51bSBJbnRlcnBvbGF0aW9uVHlwZSB7XG4gIExJTkVBUixcbiAgRUFTRUlOUVVBRCxcbiAgRUFTRU9VVFFVQUQsXG4gIEVBU0VRVUFEXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBJbnRlcnBvbGF0ZSh0eXBlOiBJbnRlcnBvbGF0aW9uVHlwZSwgdDogbnVtYmVyKTogbnVtYmVyIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBJbnRlcnBvbGF0aW9uVHlwZS5MSU5FQVI6XG4gICAgICByZXR1cm4gSW50ZXJwb2xhdGVMaW5lYXIodClcbiAgICBjYXNlIEludGVycG9sYXRpb25UeXBlLkVBU0VJTlFVQUQ6XG4gICAgICByZXR1cm4gSW50ZXJwb2xhdGVFYXNlSW5RdWFkKHQpXG4gICAgY2FzZSBJbnRlcnBvbGF0aW9uVHlwZS5FQVNFT1VUUVVBRDpcbiAgICAgIHJldHVybiBJbnRlcnBvbGF0ZUVhc2VPdXRRdWFkKHQpXG4gICAgY2FzZSBJbnRlcnBvbGF0aW9uVHlwZS5FQVNFUVVBRDpcbiAgICAgIHJldHVybiBJbnRlcnBvbGF0ZUVhc2VRdWFkKHQpXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBJbnRlcnBvbGF0ZUxpbmVhcih0KVxuICB9XG59XG5mdW5jdGlvbiBJbnRlcnBvbGF0ZUxpbmVhcih0OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gdFxufVxuZnVuY3Rpb24gSW50ZXJwb2xhdGVFYXNlSW5RdWFkKHQ6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiB0ICogdFxufVxuZnVuY3Rpb24gSW50ZXJwb2xhdGVFYXNlT3V0UXVhZCh0OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gdCAqICgyIC0gdClcbn1cbmZ1bmN0aW9uIEludGVycG9sYXRlRWFzZVF1YWQodDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuICh0ICogdCkgLyAoMi4wICogKHQgKiB0IC0gdCkgKyAxLjApXG59XG4iLCJpbXBvcnQgeyBJVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9pdHJhbnNmb3JtY29tcG9uZW50J1xuaW1wb3J0IHsgVHJhbnNmb3JtU3lzdGVtIH0gZnJvbSAnLi4vc3lzdGVtL3RyYW5zZnJvbVN5c3RlbSdcbmltcG9ydCB7IEludGVycG9sYXRpb25UeXBlLCBJbnRlcnBvbGF0ZSB9IGZyb20gJy4uL21hdGgvaW50ZXJwb2xhdGlvbidcblxuLyoqXG4gKiBDb21wb25lbnQgdG8gcm90YXRlIGVudGl0eSBmcm9tIG9uZSByb3RhdGlvbiAoc3RhcnQpIHRvIGFub3RoZXIgKGVuZCkgaW4gYW4gYW1vdW50IG9mIHRpbWVcbiAqL1xuQENvbXBvbmVudCgncm90YXRlVHJhbnNmb3JtQ29tcG9uZW50JylcbmV4cG9ydCBjbGFzcyBSb3RhdGVUcmFuc2Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBJVHJhbnNmb3JtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzdGFydDogUmVhZE9ubHlRdWF0ZXJuaW9uXG4gIHByaXZhdGUgZW5kOiBSZWFkT25seVF1YXRlcm5pb25cbiAgcHJpdmF0ZSBzcGVlZDogbnVtYmVyXG4gIHByaXZhdGUgbm9ybWFsaXplZFRpbWU6IG51bWJlclxuICBwcml2YXRlIGludGVycG9sYXRpb25UeXBlOiBJbnRlcnBvbGF0aW9uVHlwZVxuICBwcml2YXRlIGxlcnBUaW1lOiBudW1iZXJcblxuICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBSb3RhdGVUcmFuc2Zvcm1Db21wb25lbnQgaW5zdGFuY2UgdG8gYWRkIGFzIGEgY29tcG9uZW50IHRvIGEgRW50aXR5XG4gICAqIEBwYXJhbSBzdGFydCBzdGFydGluZyByb3RhdGlvblxuICAgKiBAcGFyYW0gZW5kIGVuZGluZyByb3RhdGlvblxuICAgKiBAcGFyYW0gZHVyYXRpb24gZHVyYXRpb24gKGluIHNlY29uZHMpIG9mIHN0YXJ0IHRvIGVuZCByb3RhdGlvblxuICAgKiBAcGFyYW0gb25GaW5pc2hDYWxsYmFjayBjYWxsZWQgd2hlbiByb3RhdGlvbiBlbmRzXG4gICAqIEBwYXJhbSBpbnRlcnBvbGF0aW9uVHlwZSB0eXBlIG9mIGludGVycG9sYXRpb24gdG8gYmUgdXNlZCAoZGVmYXVsdDogTElORUFSKVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc3RhcnQ6IFJlYWRPbmx5UXVhdGVybmlvbixcbiAgICBlbmQ6IFJlYWRPbmx5UXVhdGVybmlvbixcbiAgICBkdXJhdGlvbjogbnVtYmVyLFxuICAgIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkLFxuICAgIGludGVycG9sYXRpb25UeXBlOiBJbnRlcnBvbGF0aW9uVHlwZSA9IEludGVycG9sYXRpb25UeXBlLkxJTkVBUlxuICApIHtcbiAgICB0aGlzLnN0YXJ0ID0gc3RhcnRcbiAgICB0aGlzLmVuZCA9IGVuZFxuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAwXG4gICAgdGhpcy5sZXJwVGltZSA9IDBcbiAgICB0aGlzLm9uRmluaXNoQ2FsbGJhY2sgPSBvbkZpbmlzaENhbGxiYWNrXG4gICAgdGhpcy5pbnRlcnBvbGF0aW9uVHlwZSA9IGludGVycG9sYXRpb25UeXBlXG5cbiAgICBpZiAoZHVyYXRpb24gIT0gMCkge1xuICAgICAgdGhpcy5zcGVlZCA9IDEgLyBkdXJhdGlvblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNwZWVkID0gMFxuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IDFcbiAgICAgIHRoaXMubGVycFRpbWUgPSAxXG4gICAgfVxuXG4gICAgVHJhbnNmb3JtU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKSB7XG4gICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IFNjYWxhci5DbGFtcChcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgKyBkdCAqIHRoaXMuc3BlZWQsXG4gICAgICAwLFxuICAgICAgMVxuICAgIClcbiAgICB0aGlzLmxlcnBUaW1lID0gSW50ZXJwb2xhdGUodGhpcy5pbnRlcnBvbGF0aW9uVHlwZSwgdGhpcy5ub3JtYWxpemVkVGltZSlcbiAgfVxuXG4gIGhhc0ZpbmlzaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZWRUaW1lID49IDFcbiAgfVxuXG4gIGFzc2lnblZhbHVlVG9UcmFuc2Zvcm0odHJhbnNmb3JtOiBUcmFuc2Zvcm0pIHtcbiAgICB0cmFuc2Zvcm0ucm90YXRpb24gPSBRdWF0ZXJuaW9uLlNsZXJwKHRoaXMuc3RhcnQsIHRoaXMuZW5kLCB0aGlzLmxlcnBUaW1lKVxuICB9XG59XG4iLCJpbXBvcnQgeyBJVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9pdHJhbnNmb3JtY29tcG9uZW50J1xuaW1wb3J0IHsgVHJhbnNmb3JtU3lzdGVtIH0gZnJvbSAnLi4vc3lzdGVtL3RyYW5zZnJvbVN5c3RlbSdcbmltcG9ydCB7IEludGVycG9sYXRpb25UeXBlLCBJbnRlcnBvbGF0ZSB9IGZyb20gJy4uL21hdGgvaW50ZXJwb2xhdGlvbidcblxuLyoqXG4gKiBDb21wb25lbnQgdG8gc2NhbGUgZW50aXR5IGZyb20gb25lIHZhbHVlIChzdGFydCkgdG8gYW5vdGhlciAoZW5kKSBpbiBhbiBhbW91bnQgb2YgdGltZVxuICovXG5AQ29tcG9uZW50KCdzY2FsZVRyYW5zZm9ybUNvbXBvbmVudCcpXG5leHBvcnQgY2xhc3MgU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBJVHJhbnNmb3JtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzdGFydDogUmVhZE9ubHlWZWN0b3IzXG4gIHByaXZhdGUgZW5kOiBSZWFkT25seVZlY3RvcjNcbiAgcHJpdmF0ZSBzcGVlZDogbnVtYmVyXG4gIHByaXZhdGUgbm9ybWFsaXplZFRpbWU6IG51bWJlclxuICBwcml2YXRlIGludGVycG9sYXRpb25UeXBlOiBJbnRlcnBvbGF0aW9uVHlwZVxuICBwcml2YXRlIGxlcnBUaW1lOiBudW1iZXJcblxuICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBTY2FsZVRyYW5zZm9ybUNvbXBvbmVudCBpbnN0YW5jZSB0byBhZGQgYXMgYSBjb21wb25lbnQgdG8gYSBFbnRpdHlcbiAgICogQHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHNjYWxlXG4gICAqIEBwYXJhbSBlbmQgZW5kaW5nIHNjYWxlXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBkdXJhdGlvbiAoaW4gc2Vjb25kcykgb2Ygc3RhcnQgdG8gZW5kIHNjYWxpbmdcbiAgICogQHBhcmFtIG9uRmluaXNoQ2FsbGJhY2sgY2FsbGVkIHdoZW4gc2NhbGluZyBlbmRzXG4gICAqIEBwYXJhbSBpbnRlcnBvbGF0aW9uVHlwZSB0eXBlIG9mIGludGVycG9sYXRpb24gdG8gYmUgdXNlZCAoZGVmYXVsdDogTElORUFSKVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc3RhcnQ6IFJlYWRPbmx5VmVjdG9yMyxcbiAgICBlbmQ6IFJlYWRPbmx5VmVjdG9yMyxcbiAgICBkdXJhdGlvbjogbnVtYmVyLFxuICAgIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkLFxuICAgIGludGVycG9sYXRpb25UeXBlOiBJbnRlcnBvbGF0aW9uVHlwZSA9IEludGVycG9sYXRpb25UeXBlLkxJTkVBUlxuICApIHtcbiAgICB0aGlzLnN0YXJ0ID0gc3RhcnRcbiAgICB0aGlzLmVuZCA9IGVuZFxuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAwXG4gICAgdGhpcy5sZXJwVGltZSA9IDBcbiAgICB0aGlzLm9uRmluaXNoQ2FsbGJhY2sgPSBvbkZpbmlzaENhbGxiYWNrXG4gICAgdGhpcy5pbnRlcnBvbGF0aW9uVHlwZSA9IGludGVycG9sYXRpb25UeXBlXG5cbiAgICBpZiAoZHVyYXRpb24gIT0gMCkge1xuICAgICAgdGhpcy5zcGVlZCA9IDEgLyBkdXJhdGlvblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNwZWVkID0gMFxuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IDFcbiAgICAgIHRoaXMubGVycFRpbWUgPSAxXG4gICAgfVxuXG4gICAgVHJhbnNmb3JtU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKSB7XG4gICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IFNjYWxhci5DbGFtcChcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgKyBkdCAqIHRoaXMuc3BlZWQsXG4gICAgICAwLFxuICAgICAgMVxuICAgIClcbiAgICB0aGlzLmxlcnBUaW1lID0gSW50ZXJwb2xhdGUodGhpcy5pbnRlcnBvbGF0aW9uVHlwZSwgdGhpcy5ub3JtYWxpemVkVGltZSlcbiAgfVxuXG4gIGhhc0ZpbmlzaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZWRUaW1lID49IDFcbiAgfVxuXG4gIGFzc2lnblZhbHVlVG9UcmFuc2Zvcm0odHJhbnNmb3JtOiBUcmFuc2Zvcm0pIHtcbiAgICB0cmFuc2Zvcm0uc2NhbGUgPSBWZWN0b3IzLkxlcnAodGhpcy5zdGFydCwgdGhpcy5lbmQsIHRoaXMubGVycFRpbWUpXG4gIH1cbn1cbiIsImltcG9ydCB7IElUcmFuc2Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2l0cmFuc2Zvcm1jb21wb25lbnQnXG5pbXBvcnQgeyBUcmFuc2Zvcm1TeXN0ZW0gfSBmcm9tICcuLi9zeXN0ZW0vdHJhbnNmcm9tU3lzdGVtJ1xuXG4vKipcbiAqIENvbXBvbmVudCB0byBtb3ZlIGEgZW50aXR5IGRvd24gYSBmaXhlZCBwYXRoIGluIGFuIGFtb3VudCBvZiB0aW1lXG4gKi9cbkBDb21wb25lbnQoJ2ZvbGxvd1BhdGhDb21wb25lbnQnKVxuZXhwb3J0IGNsYXNzIEZvbGxvd1BhdGhDb21wb25lbnQgaW1wbGVtZW50cyBJVHJhbnNmb3JtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBwb2ludHM6IFZlY3RvcjNbXVxuICBwcml2YXRlIHNwZWVkOiBudW1iZXJbXSA9IFtdXG4gIHByaXZhdGUgbm9ybWFsaXplZFRpbWU6IG51bWJlclxuICBwcml2YXRlIGN1cnJlbnRJbmRleDogbnVtYmVyXG5cbiAgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcbiAgb25Qb2ludFJlYWNoZWRDYWxsYmFjaz86IChjdXJyZW50UG9pbnQ6IFZlY3RvcjMsIG5leHRQb2ludDogVmVjdG9yMykgPT4gdm9pZFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBGb2xsb3dQYXRoQ29tcG9uZW50IGluc3RhbmNlIHRvIGFkZCBhcyBhIGNvbXBvbmVudCB0byBhIEVudGl0eVxuICAgKiBAcGFyYW0gcG9pbnRzIGFycmF5IG9mIHBvaW50cyBmb3IgdGhlIHBhdGhcbiAgICogQHBhcmFtIGR1cmF0aW9uIGR1cmF0aW9uIG9mIHRoZSBtb3ZlbWVudCB0aHJvdWdoIHRoZSBwYXRoXG4gICAqIEBwYXJhbSBvbkZpbmlzaENhbGxiYWNrIGNhbGxlZCB3aGVuIG1vdmVtZW50IGVuZHNcbiAgICogQHBhcmFtIG9uUG9pbnRSZWFjaGVkQ2FsbGJhY2sgY2FsbGVkIGV2ZXJ5dGltZSBhbiBlbnRpdHkgcmVhY2hlcyBhIHBvaW50IG9mIHRoZSBwYXRoXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwb2ludHM6IFZlY3RvcjNbXSxcbiAgICBkdXJhdGlvbjogbnVtYmVyLFxuICAgIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkLFxuICAgIG9uUG9pbnRSZWFjaGVkQ2FsbGJhY2s/OiAoY3VycmVudFBvaW50OiBWZWN0b3IzLCBuZXh0UG9pbnQ6IFZlY3RvcjMpID0+IHZvaWRcbiAgKSB7XG4gICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IDBcbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDBcbiAgICB0aGlzLnBvaW50cyA9IHBvaW50c1xuICAgIHRoaXMub25GaW5pc2hDYWxsYmFjayA9IG9uRmluaXNoQ2FsbGJhY2tcbiAgICB0aGlzLm9uUG9pbnRSZWFjaGVkQ2FsbGJhY2sgPSBvblBvaW50UmVhY2hlZENhbGxiYWNrXG5cbiAgICBpZiAocG9pbnRzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3QgMiBwb2ludHMgYXJlIG5lZWRlZCBmb3IgRm9sbG93UGF0aENvbXBvbmVudC4nKVxuICAgIH1cblxuICAgIGlmIChkdXJhdGlvbiA+IDApIHtcbiAgICAgIGxldCBzcVRvdGFsRGlzdCA9IDBcbiAgICAgIGxldCBzcVBvaW50c0Rpc3QgPSBbXVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgIGxldCBzcURpc3QgPSBWZWN0b3IzLkRpc3RhbmNlU3F1YXJlZChwb2ludHNbaV0sIHBvaW50c1tpICsgMV0pXG4gICAgICAgIHNxVG90YWxEaXN0ICs9IHNxRGlzdFxuICAgICAgICBzcVBvaW50c0Rpc3QucHVzaChzcURpc3QpXG4gICAgICB9XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNxUG9pbnRzRGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLnNwZWVkLnB1c2goMSAvICgoc3FQb2ludHNEaXN0W2ldIC8gc3FUb3RhbERpc3QpICogZHVyYXRpb24pKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gMVxuICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBwb2ludHMubGVuZ3RoIC0gMlxuICAgIH1cblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSBTY2FsYXIuQ2xhbXAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lICsgZHQgKiB0aGlzLnNwZWVkW3RoaXMuY3VycmVudEluZGV4XSxcbiAgICAgIDAsXG4gICAgICAxXG4gICAgKVxuICAgIGlmIChcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPj0gMSAmJlxuICAgICAgdGhpcy5jdXJyZW50SW5kZXggPCB0aGlzLnBvaW50cy5sZW5ndGggLSAyXG4gICAgKSB7XG4gICAgICB0aGlzLmN1cnJlbnRJbmRleCsrXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gMFxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLm9uUG9pbnRSZWFjaGVkQ2FsbGJhY2sgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPCB0aGlzLnBvaW50cy5sZW5ndGggLSAxXG4gICAgICApXG4gICAgICAgIHRoaXMub25Qb2ludFJlYWNoZWRDYWxsYmFjayhcbiAgICAgICAgICB0aGlzLnBvaW50c1t0aGlzLmN1cnJlbnRJbmRleF0sXG4gICAgICAgICAgdGhpcy5wb2ludHNbdGhpcy5jdXJyZW50SW5kZXggKyAxXVxuICAgICAgICApXG4gICAgfVxuICB9XG5cbiAgaGFzRmluaXNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY3VycmVudEluZGV4ID49IHRoaXMucG9pbnRzLmxlbmd0aCAtIDIgJiYgdGhpcy5ub3JtYWxpemVkVGltZSA+PSAxXG4gICAgKVxuICB9XG5cbiAgYXNzaWduVmFsdWVUb1RyYW5zZm9ybSh0cmFuc2Zvcm06IFRyYW5zZm9ybSkge1xuICAgIHRyYW5zZm9ybS5wb3NpdGlvbiA9IFZlY3RvcjMuTGVycChcbiAgICAgIHRoaXMucG9pbnRzW3RoaXMuY3VycmVudEluZGV4XSxcbiAgICAgIHRoaXMucG9pbnRzW3RoaXMuY3VycmVudEluZGV4ICsgMV0sXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lXG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgeyBJVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9pdHJhbnNmb3JtY29tcG9uZW50J1xuaW1wb3J0IHsgVHJhbnNmb3JtU3lzdGVtIH0gZnJvbSAnLi4vc3lzdGVtL3RyYW5zZnJvbVN5c3RlbSdcblxuLyoqXG4gKiBDb21wb25lbnQgdG8gcm90YXRlIGVudGl0eSBpbmRlZmluaXRlbHkgdW50aWwgc3RvcCBpcyBjYWxsZWRcbiAqL1xuQENvbXBvbmVudCgna2VlcFJvdGF0aW5nQ29tcG9uZW50JylcbmV4cG9ydCBjbGFzcyBLZWVwUm90YXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBJVHJhbnNmb3JtQ29tcG9uZW50IHtcbiAgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcblxuICBwcml2YXRlIHJvdGF0aW9uVmVsb2NpdHk6IFF1YXRlcm5pb25cbiAgcHJpdmF0ZSByb3RhdGlvbjogUXVhdGVybmlvblxuICBwcml2YXRlIGZpbmlzaGVkOiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFJvdGF0ZXMgYW4gZW50aXR5IGNvbnRpbnVvdXNseS4gVGhlIGVudGl0eSB3aWxsIGtlZXAgcm90YXRpbmcgZm9yZXZlciB1bnRpbCBpdCdzIGV4cGxpY2l0bHkgc3RvcHBlZCBvciB0aGUgY29tcG9uZW50IGlzIHJlbW92ZWQuXG4gICAqIEBwYXJhbSByb3RhdGlvblZlbG9jaXR5IGEgcXVhdGVybmlvbiBkZXNjcmliaW5nIHRoZSBkZXNpcmVkIHJvdGF0aW9uIHRvIHBlcmZvcm0gZWFjaCBzZWNvbmQgc2Vjb25kXG4gICAqIEBwYXJhbSBvbkZpbmlzaENhbGxiYWNrIGNhbGxlZCB3aGVuIHJvdGF0aW9uIGVuZHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHJvdGF0aW9uVmVsb2NpdHk6IFF1YXRlcm5pb24sIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yb3RhdGlvblZlbG9jaXR5ID0gcm90YXRpb25WZWxvY2l0eVxuICAgIHRoaXMub25GaW5pc2hDYWxsYmFjayA9IG9uRmluaXNoQ2FsbGJhY2tcbiAgICB0aGlzLnJvdGF0aW9uID0gUXVhdGVybmlvbi5JZGVudGl0eVxuICAgIHRoaXMuZmluaXNoZWQgPSBmYWxzZVxuXG4gICAgVHJhbnNmb3JtU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5yb3RhdGlvbiA9IFF1YXRlcm5pb24uU2xlcnAoXG4gICAgICBRdWF0ZXJuaW9uLklkZW50aXR5LFxuICAgICAgdGhpcy5yb3RhdGlvblZlbG9jaXR5LFxuICAgICAgZHRcbiAgICApXG4gIH1cblxuICBoYXNGaW5pc2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maW5pc2hlZFxuICB9XG5cbiAgYXNzaWduVmFsdWVUb1RyYW5zZm9ybSh0cmFuc2Zvcm06IFRyYW5zZm9ybSk6IHZvaWQge1xuICAgIHRyYW5zZm9ybS5yb3RhdGlvbiA9IHRyYW5zZm9ybS5yb3RhdGlvbi5tdWx0aXBseSh0aGlzLnJvdGF0aW9uKVxuICB9XG5cbiAgc3RvcCgpIHtcbiAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZVxuICB9XG59XG4iLCJpbXBvcnQgeyBJVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L2l0cmFuc2Zvcm1jb21wb25lbnQnXG5pbXBvcnQgeyBNb3ZlVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L21vdmUnXG5pbXBvcnQgeyBSb3RhdGVUcmFuc2Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQvcm90YXRlJ1xuaW1wb3J0IHsgU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQvc2NhbGUnXG5pbXBvcnQgeyBGb2xsb3dQYXRoQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L2ZvbGxvd3BhdGgnXG5pbXBvcnQgeyBLZWVwUm90YXRpbmdDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQva2VlcHJvdGF0aW5nJ1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmb3JtU3lzdGVtIGltcGxlbWVudHMgSVN5c3RlbSB7XG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogVHJhbnNmb3JtU3lzdGVtIHwgbnVsbCA9IG51bGxcblxuICBwcml2YXRlIF9jb21wb25lbnRzOiBDb21wb25lbnRDb25zdHJ1Y3RvcjxJVHJhbnNmb3JtQ29tcG9uZW50PltdID0gW11cblxuICBzdGF0aWMgY3JlYXRlQW5kQWRkVG9FbmdpbmUoKTogVHJhbnNmb3JtU3lzdGVtIHtcbiAgICBpZiAodGhpcy5faW5zdGFuY2UgPT0gbnVsbCkge1xuICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgVHJhbnNmb3JtU3lzdGVtKClcbiAgICAgIGVuZ2luZS5hZGRTeXN0ZW0odGhpcy5faW5zdGFuY2UpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZVxuICB9XG5cbiAgc3RhdGljIHJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50PFQgZXh0ZW5kcyBJVHJhbnNmb3JtQ29tcG9uZW50PihcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudENvbnN0cnVjdG9yPFQ+XG4gICkge1xuICAgIHRoaXMuY3JlYXRlQW5kQWRkVG9FbmdpbmUoKS5fY29tcG9uZW50cy5wdXNoKGNvbXBvbmVudClcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgVHJhbnNmb3JtU3lzdGVtLl9pbnN0YW5jZSA9IHRoaXNcbiAgICB0aGlzLl9jb21wb25lbnRzLnB1c2goTW92ZVRyYW5zZm9ybUNvbXBvbmVudClcbiAgICB0aGlzLl9jb21wb25lbnRzLnB1c2goUm90YXRlVHJhbnNmb3JtQ29tcG9uZW50KVxuICAgIHRoaXMuX2NvbXBvbmVudHMucHVzaChTY2FsZVRyYW5zZm9ybUNvbXBvbmVudClcbiAgICB0aGlzLl9jb21wb25lbnRzLnB1c2goRm9sbG93UGF0aENvbXBvbmVudClcbiAgICB0aGlzLl9jb21wb25lbnRzLnB1c2goS2VlcFJvdGF0aW5nQ29tcG9uZW50KVxuICB9XG5cbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcbiAgICB0aGlzLl9jb21wb25lbnRzLmZvckVhY2goY29tcG9uZW50ID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50KGR0LCBjb21wb25lbnQpXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29tcG9uZW50PFQgZXh0ZW5kcyBJVHJhbnNmb3JtQ29tcG9uZW50PihcbiAgICBkdDogbnVtYmVyLFxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50Q29uc3RydWN0b3I8VD5cbiAgKSB7XG4gICAgY29uc3QgZ3JvdXAgPSBlbmdpbmUuZ2V0Q29tcG9uZW50R3JvdXAoY29tcG9uZW50LCBUcmFuc2Zvcm0pXG5cbiAgICBncm91cC5lbnRpdGllcy5mb3JFYWNoKGVudGl0eSA9PiB7XG4gICAgICBjb25zdCB0cmFuc2Zvcm0gPSBlbnRpdHkuZ2V0Q29tcG9uZW50KFRyYW5zZm9ybSlcbiAgICAgIGNvbnN0IGNvbXAgPSBlbnRpdHkuZ2V0Q29tcG9uZW50KGNvbXBvbmVudClcblxuICAgICAgY29tcC51cGRhdGUoZHQpXG4gICAgICBjb21wLmFzc2lnblZhbHVlVG9UcmFuc2Zvcm0odHJhbnNmb3JtKVxuICAgICAgaWYgKGNvbXAuaGFzRmluaXNoZWQoKSkge1xuICAgICAgICBlbnRpdHkucmVtb3ZlQ29tcG9uZW50KGNvbXApXG4gICAgICAgIGlmIChjb21wLm9uRmluaXNoQ2FsbGJhY2sgIT0gbnVsbCkgY29tcC5vbkZpbmlzaENhbGxiYWNrKClcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG4iLCJpbXBvcnQgeyBJVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9pdHJhbnNmb3JtY29tcG9uZW50J1xuaW1wb3J0IHsgVHJhbnNmb3JtU3lzdGVtIH0gZnJvbSAnLi4vc3lzdGVtL3RyYW5zZnJvbVN5c3RlbSdcbmltcG9ydCB7IEludGVycG9sYXRpb25UeXBlLCBJbnRlcnBvbGF0ZSB9IGZyb20gJy4uL21hdGgvaW50ZXJwb2xhdGlvbidcblxuLyoqXG4gKiBDb21wb25lbnQgdG8gdHJhbnNsYXRlIGVudGl0eSBmcm9tIG9uZSBwb3NpdGlvbiAoc3RhcnQpIHRvIGFub3RoZXIgKGVuZCkgaW4gYW4gYW1vdW50IG9mIHRpbWVcbiAqL1xuQENvbXBvbmVudCgnbW92ZVRyYW5zZm9ybUNvbXBvbmVudCcpXG5leHBvcnQgY2xhc3MgTW92ZVRyYW5zZm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIElUcmFuc2Zvcm1Db21wb25lbnQge1xuICBwcml2YXRlIHN0YXJ0OiBSZWFkT25seVZlY3RvcjNcbiAgcHJpdmF0ZSBlbmQ6IFJlYWRPbmx5VmVjdG9yM1xuICBwcml2YXRlIHNwZWVkOiBudW1iZXJcbiAgcHJpdmF0ZSBub3JtYWxpemVkVGltZTogbnVtYmVyXG4gIHByaXZhdGUgaW50ZXJwb2xhdGlvblR5cGU6IEludGVycG9sYXRpb25UeXBlXG4gIHByaXZhdGUgbGVycFRpbWU6IG51bWJlclxuXG4gIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIE1vdmVUcmFuc2Zvcm1Db21wb25lbnQgaW5zdGFuY2UgdG8gYWRkIGFzIGEgY29tcG9uZW50IHRvIGEgRW50aXR5XG4gICAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBwb3NpdGlvblxuICAgKiBAcGFyYW0gZW5kIGVuZGluZyBwb3NpdGlvblxuICAgKiBAcGFyYW0gZHVyYXRpb24gZHVyYXRpb24gKGluIHNlY29uZHMpIG9mIHN0YXJ0IHRvIGVuZCB0cmFuc2xhdGlvblxuICAgKiBAcGFyYW0gb25GaW5pc2hDYWxsYmFjayBjYWxsZWQgd2hlbiB0cmFuc2xhdGlvbiBlbmRzXG4gICAqIEBwYXJhbSBpbnRlcnBvbGF0aW9uVHlwZSB0eXBlIG9mIGludGVycG9sYXRpb24gdG8gYmUgdXNlZCAoZGVmYXVsdDogTElORUFSKVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc3RhcnQ6IFJlYWRPbmx5VmVjdG9yMyxcbiAgICBlbmQ6IFJlYWRPbmx5VmVjdG9yMyxcbiAgICBkdXJhdGlvbjogbnVtYmVyLFxuICAgIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkLFxuICAgIGludGVycG9sYXRpb25UeXBlOiBJbnRlcnBvbGF0aW9uVHlwZSA9IEludGVycG9sYXRpb25UeXBlLkxJTkVBUlxuICApIHtcbiAgICB0aGlzLnN0YXJ0ID0gc3RhcnRcbiAgICB0aGlzLmVuZCA9IGVuZFxuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAwXG4gICAgdGhpcy5sZXJwVGltZSA9IDBcbiAgICB0aGlzLm9uRmluaXNoQ2FsbGJhY2sgPSBvbkZpbmlzaENhbGxiYWNrXG4gICAgdGhpcy5pbnRlcnBvbGF0aW9uVHlwZSA9IGludGVycG9sYXRpb25UeXBlXG5cbiAgICBpZiAoZHVyYXRpb24gIT0gMCkge1xuICAgICAgdGhpcy5zcGVlZCA9IDEgLyBkdXJhdGlvblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNwZWVkID0gMFxuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IDFcbiAgICAgIHRoaXMubGVycFRpbWUgPSAxXG4gICAgfVxuXG4gICAgVHJhbnNmb3JtU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKSB7XG4gICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IFNjYWxhci5DbGFtcChcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgKyBkdCAqIHRoaXMuc3BlZWQsXG4gICAgICAwLFxuICAgICAgMVxuICAgIClcbiAgICB0aGlzLmxlcnBUaW1lID0gSW50ZXJwb2xhdGUodGhpcy5pbnRlcnBvbGF0aW9uVHlwZSwgdGhpcy5ub3JtYWxpemVkVGltZSlcbiAgfVxuXG4gIGhhc0ZpbmlzaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZWRUaW1lID49IDFcbiAgfVxuXG4gIGFzc2lnblZhbHVlVG9UcmFuc2Zvcm0odHJhbnNmb3JtOiBUcmFuc2Zvcm0pIHtcbiAgICB0cmFuc2Zvcm0ucG9zaXRpb24gPSBWZWN0b3IzLkxlcnAodGhpcy5zdGFydCwgdGhpcy5lbmQsIHRoaXMubGVycFRpbWUpXG4gIH1cbn1cbiIsImV4cG9ydCBlbnVtIFRvZ2dsZVN0YXRlIHtcbiAgT2ZmID0gMCxcbiAgT25cbn1cblxuLyoqXG4gKiBUb2dnbGUgY29tcG9uZW50IGZvciBlbnRpdGllcyB3aXRoIHR3byBzdGF0ZXMgKE9OIG9yIE9GRilcbiAqL1xuQENvbXBvbmVudCgndG9nZ2xlJylcbmV4cG9ydCBjbGFzcyBUb2dnbGVDb21wb25lbnQge1xuICBwdWJsaWMgZW5hYmxlZDogYm9vbGVhbiA9IHRydWVcblxuICBwcml2YXRlIG9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2s/OiAodmFsdWU6IFRvZ2dsZVN0YXRlKSA9PiB2b2lkXG4gIHByaXZhdGUgc3RhdGU6IFRvZ2dsZVN0YXRlID0gVG9nZ2xlU3RhdGUuT2ZmXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBhIFRvZ2dsZUNvbXBvbmVudFxuICAgKiBAcGFyYW0gc3RhcnRpbmdTdGF0ZSBzdGFydGluZyBzdGF0ZSBvZiB0aGUgdG9nZ2xlIChPTiBvciBPRkYpXG4gICAqIEBwYXJhbSBvblZhbHVlQ2hhbmdlZENhbGxiYWNrIGNhbGxlZCB3aGVuIHRvZ2dsZSBzdGF0ZSBjaGFuZ2VkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBzdGFydGluZ1N0YXRlOiBUb2dnbGVTdGF0ZSA9IFRvZ2dsZVN0YXRlLk9uLFxuICAgIG9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2s/OiAodmFsdWU6IFRvZ2dsZVN0YXRlKSA9PiB2b2lkXG4gICkge1xuICAgIHRoaXMuc2V0KHN0YXJ0aW5nU3RhdGUpXG4gICAgaWYgKG9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2spIHRoaXMuc2V0Q2FsbGJhY2sob25WYWx1ZUNoYW5nZWRDYWxsYmFjaylcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdHJpZ2dlciB0byBhIHN0YXRlXG4gICAqIEBwYXJhbSBzdGF0ZSBuZXcgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBzZXQoc3RhdGU6IFRvZ2dsZVN0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlXG4gICAgaWYgKHRoaXMub25WYWx1ZUNoYW5nZWRDYWxsYmFjaykgdGhpcy5vblZhbHVlQ2hhbmdlZENhbGxiYWNrKHN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBzdGF0ZSBvZiBUb2dnbGVDb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW5hYmxlZCkge1xuICAgICAgdGhpcy5zZXQoMSAtIHRoaXMuc3RhdGUpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBpZiBjdXJyZW50IHRvZ2dsZSBzdGF0ZSBpcyBPTlxuICAgKi9cbiAgcHVibGljIGlzT24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUgPT0gVG9nZ2xlU3RhdGUuT25cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY2FsbGJhY2sgZm9yIHdoZW4gVG9nZ2xlQ29tcG9uZW50IHN0YXRlIGNoYW5nZWRcbiAgICogQHBhcmFtIG9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2sgY2FsbGJhY2tcbiAgICovXG4gIHB1YmxpYyBzZXRDYWxsYmFjayhcbiAgICBvblZhbHVlQ2hhbmdlZENhbGxiYWNrOiAodmFsdWU6IFRvZ2dsZVN0YXRlKSA9PiB2b2lkXG4gICk6IHZvaWQge1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZWRDYWxsYmFjayA9IG9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2tcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFRvZ2dsZUNvbXBvbmVudCxcbiAgVG9nZ2xlU3RhdGVcbn1cbiIsImV4cG9ydCBpbnRlcmZhY2UgSVRpbWVyQ29tcG9uZW50IHtcclxuICBlbGFwc2VkVGltZTogbnVtYmVyXHJcbiAgdGFyZ2V0VGltZTogbnVtYmVyXHJcbiAgb25UYXJnZXRUaW1lUmVhY2hlZDogKG93bmVyRW50aXR5OiBJRW50aXR5KSA9PiB2b2lkXHJcbn1cclxuIiwiaW1wb3J0IHsgSVRpbWVyQ29tcG9uZW50IH0gZnJvbSAnLi9pdGltZXJjb21wb25lbnQnXHJcbmltcG9ydCB7IFRpbWVyU3lzdGVtIH0gZnJvbSAnLi4vc3lzdGVtL3RpbWVyU3lzdGVtJ1xyXG5cclxuLyoqXHJcbiAqIEV4ZWN1dGUgZXZlcnkgWCBtaWxsaXNlY29uZHNcclxuICovXHJcbkBDb21wb25lbnQoJ3RpbWVySW50ZXJ2YWwnKVxyXG5leHBvcnQgY2xhc3MgSW50ZXJ2YWwgaW1wbGVtZW50cyBJVGltZXJDb21wb25lbnQge1xyXG4gIGVsYXBzZWRUaW1lOiBudW1iZXJcclxuICB0YXJnZXRUaW1lOiBudW1iZXJcclxuICBvblRhcmdldFRpbWVSZWFjaGVkOiAob3duZXJFbnRpdHk6IElFbnRpdHkpID0+IHZvaWRcclxuXHJcbiAgcHJpdmF0ZSBvblRpbWVSZWFjaGVkQ2FsbGJhY2s/OiAoKSA9PiB2b2lkXHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBtaWxsaXNlY3MgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzXHJcbiAgICogQHBhcmFtIG9uVGltZVJlYWNoZWRDYWxsYmFjayBjYWxsYmFjayBmb3Igd2hlbiB0aW1lIGlzIHJlYWNoZWRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihtaWxsaXNlY3M6IG51bWJlciwgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZCkge1xyXG4gICAgVGltZXJTeXN0ZW0uY3JlYXRlQW5kQWRkVG9FbmdpbmUoKVxyXG5cclxuICAgIHRoaXMuZWxhcHNlZFRpbWUgPSAwXHJcbiAgICB0aGlzLnRhcmdldFRpbWUgPSBtaWxsaXNlY3MgLyAxMDAwXHJcbiAgICB0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjayA9IG9uVGltZVJlYWNoZWRDYWxsYmFja1xyXG4gICAgdGhpcy5vblRhcmdldFRpbWVSZWFjaGVkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmVsYXBzZWRUaW1lID0gMFxyXG4gICAgICBpZiAodGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2spIHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENhbGxiYWNrKG9uVGltZVJlYWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCkge1xyXG4gICAgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2sgPSBvblRpbWVSZWFjaGVkQ2FsbGJhY2tcclxuICB9XHJcbn1cclxuIiwiaW1wb3J0IHsgSVRpbWVyQ29tcG9uZW50IH0gZnJvbSAnLi9pdGltZXJjb21wb25lbnQnXHJcbmltcG9ydCB7IFRpbWVyU3lzdGVtIH0gZnJvbSAnLi4vc3lzdGVtL3RpbWVyU3lzdGVtJ1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBlbnRpdHkgYWZ0ZXIgWCBtaWxsaXNlY29uZHNcclxuICovXHJcbkBDb21wb25lbnQoJ3RpbWVyRXhwaXJlSW4nKVxyXG5leHBvcnQgY2xhc3MgRXhwaXJlSW4gaW1wbGVtZW50cyBJVGltZXJDb21wb25lbnQge1xyXG4gIGVsYXBzZWRUaW1lOiBudW1iZXJcclxuICB0YXJnZXRUaW1lOiBudW1iZXJcclxuICBvblRhcmdldFRpbWVSZWFjaGVkOiAob3duZXJFbnRpdHk6IElFbnRpdHkpID0+IHZvaWRcclxuXHJcbiAgcHJpdmF0ZSBvblRpbWVSZWFjaGVkQ2FsbGJhY2s/OiAoKSA9PiB2b2lkXHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBtaWxsaXNlY3MgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzXHJcbiAgICogQHBhcmFtIG9uVGltZVJlYWNoZWRDYWxsYmFjayBjYWxsYmFjayBmb3Igd2hlbiB0aW1lIGlzIHJlYWNoZWRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihtaWxsaXNlY3M6IG51bWJlciwgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZCkge1xyXG4gICAgVGltZXJTeXN0ZW0uY3JlYXRlQW5kQWRkVG9FbmdpbmUoKVxyXG5cclxuICAgIHRoaXMuZWxhcHNlZFRpbWUgPSAwXHJcbiAgICB0aGlzLnRhcmdldFRpbWUgPSBtaWxsaXNlY3MgLyAxMDAwXHJcbiAgICB0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjayA9IG9uVGltZVJlYWNoZWRDYWxsYmFja1xyXG4gICAgdGhpcy5vblRhcmdldFRpbWVSZWFjaGVkID0gZW50aXR5ID0+IHtcclxuICAgICAgaWYgKHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrKSB0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjaygpXHJcbiAgICAgIGVudGl0eS5yZW1vdmVDb21wb25lbnQodGhpcylcclxuICAgICAgZW5naW5lLnJlbW92ZUVudGl0eShlbnRpdHkpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYWxsYmFjayhvblRpbWVSZWFjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrID0gb25UaW1lUmVhY2hlZENhbGxiYWNrXHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCB7IElUaW1lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC9pdGltZXJjb21wb25lbnQnXHJcbmltcG9ydCB7IEludGVydmFsIH0gZnJvbSAnLi4vY29tcG9uZW50L2ludGVydmFsJ1xyXG5pbXBvcnQgeyBEZWxheSB9IGZyb20gJy4uL2NvbXBvbmVudC9kZWxheSdcclxuaW1wb3J0IHsgRXhwaXJlSW4gfSBmcm9tICcuLi9jb21wb25lbnQvZXhwaXJlJ1xyXG5cclxuZXhwb3J0IGNsYXNzIFRpbWVyU3lzdGVtIGltcGxlbWVudHMgSVN5c3RlbSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBUaW1lclN5c3RlbSB8IG51bGwgPSBudWxsXHJcblxyXG4gIHByaXZhdGUgX2NvbXBvbmVudHM6IENvbXBvbmVudENvbnN0cnVjdG9yPElUaW1lckNvbXBvbmVudD5bXSA9IFtdXHJcblxyXG4gIHN0YXRpYyBjcmVhdGVBbmRBZGRUb0VuZ2luZSgpOiBUaW1lclN5c3RlbSB7XHJcbiAgICBpZiAodGhpcy5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBUaW1lclN5c3RlbSgpXHJcbiAgICAgIGVuZ2luZS5hZGRTeXN0ZW0odGhpcy5faW5zdGFuY2UpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faW5zdGFuY2VcclxuICB9XHJcblxyXG4gIHN0YXRpYyByZWdpc3RlckN1c3RvbUNvbXBvbmVudDxUIGV4dGVuZHMgSVRpbWVyQ29tcG9uZW50PihcclxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50Q29uc3RydWN0b3I8VD5cclxuICApIHtcclxuICAgIHRoaXMuY3JlYXRlQW5kQWRkVG9FbmdpbmUoKS5fY29tcG9uZW50cy5wdXNoKGNvbXBvbmVudClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcbiAgICBUaW1lclN5c3RlbS5faW5zdGFuY2UgPSB0aGlzXHJcbiAgICB0aGlzLl9jb21wb25lbnRzLnB1c2goSW50ZXJ2YWwpXHJcbiAgICB0aGlzLl9jb21wb25lbnRzLnB1c2goRGVsYXkpXHJcbiAgICB0aGlzLl9jb21wb25lbnRzLnB1c2goRXhwaXJlSW4pXHJcbiAgfVxyXG5cclxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5fY29tcG9uZW50cy5mb3JFYWNoKGNvbXBvbmVudCA9PiB7XHJcbiAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50KGR0LCBjb21wb25lbnQpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDb21wb25lbnQ8VCBleHRlbmRzIElUaW1lckNvbXBvbmVudD4oXHJcbiAgICBkdDogbnVtYmVyLFxyXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRDb25zdHJ1Y3RvcjxUPlxyXG4gICkge1xyXG4gICAgbGV0IHJlY29yZCA9IGVuZ2luZS5nZXRFbnRpdGllc1dpdGhDb21wb25lbnQoY29tcG9uZW50KVxyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IGluIHJlY29yZCkge1xyXG4gICAgICBpZiAocmVjb3JkLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICBsZXQgZW50aXR5ID0gcmVjb3JkW2tleV1cclxuICAgICAgICBsZXQgdGltZXJDb21wb25lbnQgPSBlbnRpdHkuZ2V0Q29tcG9uZW50KGNvbXBvbmVudClcclxuXHJcbiAgICAgICAgdGltZXJDb21wb25lbnQuZWxhcHNlZFRpbWUgKz0gZHRcclxuICAgICAgICBpZiAodGltZXJDb21wb25lbnQuZWxhcHNlZFRpbWUgPj0gdGltZXJDb21wb25lbnQudGFyZ2V0VGltZSkge1xyXG4gICAgICAgICAgdGltZXJDb21wb25lbnQub25UYXJnZXRUaW1lUmVhY2hlZChlbnRpdHkpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCB7IElUaW1lckNvbXBvbmVudCB9IGZyb20gJy4vaXRpbWVyY29tcG9uZW50J1xyXG5pbXBvcnQgeyBUaW1lclN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90aW1lclN5c3RlbSdcclxuXHJcbi8qKlxyXG4gKiBFeGVjdXRlIG9uY2UgYWZ0ZXIgWCBtaWxsaXNlY29uZHNcclxuICovXHJcbkBDb21wb25lbnQoJ3RpbWVyRGVsYXknKVxyXG5leHBvcnQgY2xhc3MgRGVsYXkgaW1wbGVtZW50cyBJVGltZXJDb21wb25lbnQge1xyXG4gIGVsYXBzZWRUaW1lOiBudW1iZXJcclxuICB0YXJnZXRUaW1lOiBudW1iZXJcclxuICBvblRhcmdldFRpbWVSZWFjaGVkOiAob3duZXJFbnRpdHk6IElFbnRpdHkpID0+IHZvaWRcclxuXHJcbiAgcHJpdmF0ZSBvblRpbWVSZWFjaGVkQ2FsbGJhY2s/OiAoKSA9PiB2b2lkXHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBtaWxsaXNlY3MgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzXHJcbiAgICogQHBhcmFtIG9uVGltZVJlYWNoZWRDYWxsYmFjayBjYWxsYmFjayBmb3Igd2hlbiB0aW1lIGlzIHJlYWNoZWRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihtaWxsaXNlY3M6IG51bWJlciwgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZCkge1xyXG4gICAgVGltZXJTeXN0ZW0uY3JlYXRlQW5kQWRkVG9FbmdpbmUoKVxyXG5cclxuICAgIHRoaXMuZWxhcHNlZFRpbWUgPSAwXHJcbiAgICB0aGlzLnRhcmdldFRpbWUgPSBtaWxsaXNlY3MgLyAxMDAwXHJcbiAgICB0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjayA9IG9uVGltZVJlYWNoZWRDYWxsYmFja1xyXG4gICAgdGhpcy5vblRhcmdldFRpbWVSZWFjaGVkID0gZW50aXR5ID0+IHtcclxuICAgICAgaWYgKHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrKSB0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjaygpXHJcbiAgICAgIGVudGl0eS5yZW1vdmVDb21wb25lbnQodGhpcylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENhbGxiYWNrKG9uVGltZVJlYWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCkge1xyXG4gICAgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2sgPSBvblRpbWVSZWFjaGVkQ2FsbGJhY2tcclxuICB9XHJcbn1cclxuIiwiZXhwb3J0IGNsYXNzIFRyaWdnZXJTeXN0ZW0gaW1wbGVtZW50cyBJU3lzdGVtIHtcbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBUcmlnZ2VyU3lzdGVtIHwgbnVsbCA9IG51bGxcbiAgc3RhdGljIGdldCBpbnN0YW5jZSgpOiBUcmlnZ2VyU3lzdGVtIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICBwcml2YXRlIF90cmlnZ2VyczogUmVjb3JkPHN0cmluZywgVHJpZ2dlcldyYXBwZXI+ID0ge31cbiAgcHJpdmF0ZSBfY2FtZXJhVHJpZ2dlcldyYXBwZXI6IENhbWVyYVRyaWdnZXJcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgIFRyaWdnZXJTeXN0ZW0uX2luc3RhbmNlID0gdGhpc1xuICAgIHRoaXMuX2NhbWVyYVRyaWdnZXJXcmFwcGVyID0gbmV3IENhbWVyYVRyaWdnZXIoXG4gICAgICBuZXcgVHJpZ2dlckJveFNoYXBlKG5ldyBWZWN0b3IzKDAuNSwgMS44LCAwLjUpLCBuZXcgVmVjdG9yMygwLCAwLjkxLCAwKSlcbiAgICApXG4gIH1cblxuICBzdGF0aWMgY3JlYXRlQW5kQWRkVG9FbmdpbmUoKTogVHJpZ2dlclN5c3RlbSB7XG4gICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpIHtcbiAgICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IFRyaWdnZXJTeXN0ZW0oKVxuICAgICAgZW5naW5lLmFkZFN5c3RlbSh0aGlzLl9pbnN0YW5jZSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlXG4gIH1cblxuICAvKipcbiAgICogc2V0IGEgY3VzdG9tIHRyaWdnZXIncyBzaGFwZSBmb3IgdGhlIGNhbWVyYVxuICAgKiBAcGFyYW0gc2hhcGUgY3VzdG9tIHRyaWdnZXIncyBzaGFwZVxuICAgKi9cbiAgc2V0Q2FtZXJhVHJpZ2dlclNoYXBlKHNoYXBlOiBUcmlnZ2VyQm94U2hhcGUgfCBUcmlnZ2VyU3BoZXJlU2hhcGUpIHtcbiAgICB0aGlzLl9jYW1lcmFUcmlnZ2VyV3JhcHBlci5zZXRTaGFwZShzaGFwZSlcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICAvL2dldCBlbnRpdGllcyB3aXRoIHRyaWdnZXIgY29tcG9uZW50XG4gICAgbGV0IGVudGl0aWVzV2l0aFRyaWdnZXJzID0gZW5naW5lLmdldENvbXBvbmVudEdyb3VwKFRyaWdnZXJDb21wb25lbnQpXG4gICAgICAuZW50aXRpZXNcblxuICAgIC8vaXRlcmF0ZSB0aHJvdWdoIGFsbCBlbnRpdGllcyB3aXRoIHRyaWdnZXJzIGFuZCB3cmFwIGVudGl0aWVzIHRoYXQgd2VyZW4ndCB3cmFwcGVkIHlldFxuICAgIGVudGl0aWVzV2l0aFRyaWdnZXJzLmZvckVhY2goZW50aXR5ID0+IHtcbiAgICAgIGlmICh0aGlzLnNob3VsZFdyYXBUcmlnZ2VyRW50aXR5KGVudGl0eSkpIHtcbiAgICAgICAgdGhpcy53cmFwVHJpZ2dlckVudGl0eShlbnRpdHkpXG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vaXRlcmF0ZSB0aHJvdWdoIHdyYXBwZWQgZW50aXRpZXNcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLl90cmlnZ2Vycykge1xuICAgICAgaWYgKHRoaXMuX3RyaWdnZXJzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgbGV0IHdyYXBwZXIgPSB0aGlzLl90cmlnZ2Vyc1trZXldXG5cbiAgICAgICAgLy91cGRhdGUgZGVidWcgZW50aXR5XG4gICAgICAgIGlmICh3cmFwcGVyLmlzRGVidWdnaW5nKCkpIHtcbiAgICAgICAgICB3cmFwcGVyLnVwZGF0ZURlYnVnRW50aXR5KClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghd3JhcHBlci5pc0luRW5naW5lKCkpIHtcbiAgICAgICAgICAvL3JlbW92ZSBkZWJ1Z2dpbmdcbiAgICAgICAgICBpZiAod3JhcHBlci5pc0RlYnVnZ2luZygpKSB7XG4gICAgICAgICAgICB3cmFwcGVyLnJlbW92ZURlYnVnRW50aXR5KClcbiAgICAgICAgICB9XG4gICAgICAgICAgLy9yZW1vdmUgb2xkIGNvbGxpc2lvbnNcbiAgICAgICAgICBUcmlnZ2VyU3lzdGVtLnJlbW92ZVRyaWdnZXJGcm9tU3lzdGVtKHdyYXBwZXIpXG4gICAgICAgICAgLy9yZW1vdmUgZnJvbSByZWNvcmRcbiAgICAgICAgICBkZWxldGUgdGhpcy5fdHJpZ2dlcnNba2V5XVxuICAgICAgICB9IGVsc2UgaWYgKHdyYXBwZXIudHJpZ2dlciAhPSBudWxsICYmIHdyYXBwZXIudHJpZ2dlci5lbmFibGVkKSB7XG4gICAgICAgICAgLy9pZiB3YXMgc2V0IGFzIGVuYWJsZWQgaW4gbGFzdCBmcmFtZVxuICAgICAgICAgIGlmICghd3JhcHBlci53YXNFbmFibGVkKSB7XG4gICAgICAgICAgICBpZiAod3JhcHBlci5pc0RlYnVnZ2luZygpKSB7XG4gICAgICAgICAgICAgIHdyYXBwZXIuYWRkRGVidWdFbnRpdHkoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvL3NldCBhcyBlbmFibGVkXG4gICAgICAgICAgd3JhcHBlci53YXNFbmFibGVkID0gdHJ1ZVxuXG4gICAgICAgICAgLy9jaGVjayBjb2xsaXNpb24gY2FtZXJhXG4gICAgICAgICAgaWYgKHdyYXBwZXIudHJpZ2dlci5vbkNhbWVyYUVudGVyIHx8IHdyYXBwZXIudHJpZ2dlci5vbkNhbWVyYUV4aXQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tDb2xsaXNpb25BZ2FpbnN0Q2FtZXJhKHdyYXBwZXIpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy9jaGVjayBjb2xsaXNpb24gd2l0aCBvdGhlcnNcbiAgICAgICAgICBpZiAod3JhcHBlci50cmlnZ2VyLm9uVHJpZ2dlckVudGVyIHx8IHdyYXBwZXIudHJpZ2dlci5vblRyaWdnZXJFeGl0KSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrQ29sbGlzaW9uQWdhaW5zdE90aGVyVHJpZ2dlcnMod3JhcHBlcilcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAod3JhcHBlci53YXNFbmFibGVkKSB7XG4gICAgICAgICAgd3JhcHBlci53YXNFbmFibGVkID0gZmFsc2VcbiAgICAgICAgICAvL3JlbW92ZSBkZWJ1Z2dpbmdcbiAgICAgICAgICBpZiAod3JhcHBlci5pc0RlYnVnZ2luZygpKSB7XG4gICAgICAgICAgICB3cmFwcGVyLnJlbW92ZURlYnVnRW50aXR5KClcbiAgICAgICAgICB9XG4gICAgICAgICAgVHJpZ2dlclN5c3RlbS5yZW1vdmVUcmlnZ2VyRnJvbVN5c3RlbSh3cmFwcGVyKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRXcmFwVHJpZ2dlckVudGl0eShlbnRpdHk6IElFbnRpdHkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fdHJpZ2dlcnNbZW50aXR5LnV1aWRdID09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fdHJpZ2dlcnNbZW50aXR5LnV1aWRdID09IG51bGxcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHdyYXBUcmlnZ2VyRW50aXR5KGVudGl0eTogSUVudGl0eSkge1xuICAgIHRoaXMuX3RyaWdnZXJzW2VudGl0eS51dWlkXSA9IG5ldyBUcmlnZ2VyV3JhcHBlcihlbnRpdHkgYXMgRW50aXR5KVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVtb3ZlVHJpZ2dlckZyb21TeXN0ZW0od3JhcHBlcjogVHJpZ2dlcldyYXBwZXIpIHtcbiAgICBsZXQgYWN0aXZlQ29sbGlzaW9ucyA9IHdyYXBwZXIuZ2V0QWN0aXZlQ29sbGlzaW9ucygpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY3RpdmVDb2xsaXNpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYWN0aXZlQ29sbGlzaW9uc1tpXS50cmlnZ2VyLm9uVHJpZ2dlckV4aXQgJiYgd3JhcHBlci5lbnRpdHkpXG4gICAgICAgIChhY3RpdmVDb2xsaXNpb25zW2ldLnRyaWdnZXIub25UcmlnZ2VyRXhpdCBhcyAoXG4gICAgICAgICAgZW50aXR5OiBJRW50aXR5XG4gICAgICAgICkgPT4gdm9pZCkod3JhcHBlci5lbnRpdHkpXG4gICAgICBhY3RpdmVDb2xsaXNpb25zW2ldLmRpc2VuZ2FnZUFjdGl2ZUNvbGxpc2lvbih3cmFwcGVyKVxuICAgICAgd3JhcHBlci5kaXNlbmdhZ2VBY3RpdmVDb2xsaXNpb24oYWN0aXZlQ29sbGlzaW9uc1tpXSlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBkaXNlbmdhZ2VDb2xsaXNpb24odDE6IFRyaWdnZXJXcmFwcGVyLCB0MjogVHJpZ2dlcldyYXBwZXIpIHtcbiAgICB0MS5kaXNlbmdhZ2VBY3RpdmVDb2xsaXNpb24odDIpXG4gICAgdDIuZGlzZW5nYWdlQWN0aXZlQ29sbGlzaW9uKHQxKVxuXG4gICAgaWYgKHQxLnRyaWdnZXIub25UcmlnZ2VyRXhpdCAmJiB0Mi5lbnRpdHkpXG4gICAgICB0MS50cmlnZ2VyLm9uVHJpZ2dlckV4aXQodDIuZW50aXR5KVxuICAgIGlmICh0Mi50cmlnZ2VyLm9uVHJpZ2dlckV4aXQgJiYgdDEuZW50aXR5KVxuICAgICAgdDIudHJpZ2dlci5vblRyaWdnZXJFeGl0KHQxLmVudGl0eSlcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGVuZ2FnZUNvbGxpc2lvbih0MTogVHJpZ2dlcldyYXBwZXIsIHQyOiBUcmlnZ2VyV3JhcHBlcikge1xuICAgIHQxLmVuZ2FnZUNvbGxpc2lvbih0MilcbiAgICB0Mi5lbmdhZ2VDb2xsaXNpb24odDEpXG5cbiAgICBpZiAodDEudHJpZ2dlci5vblRyaWdnZXJFbnRlciAmJiB0Mi5lbnRpdHkpXG4gICAgICB0MS50cmlnZ2VyLm9uVHJpZ2dlckVudGVyKHQyLmVudGl0eSlcbiAgICBpZiAodDIudHJpZ2dlci5vblRyaWdnZXJFbnRlciAmJiB0MS5lbnRpdHkpXG4gICAgICB0Mi50cmlnZ2VyLm9uVHJpZ2dlckVudGVyKHQxLmVudGl0eSlcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tDb2xsaXNpb25BZ2FpbnN0Q2FtZXJhKHdyYXBwZXI6IFRyaWdnZXJXcmFwcGVyKSB7XG4gICAgbGV0IHdlcmVDb2xsaWRpbmcgPSB3cmFwcGVyLmhhc0FjdGl2ZUNvbGxpc2lvbih0aGlzLl9jYW1lcmFUcmlnZ2VyV3JhcHBlcilcbiAgICBsZXQgYXJlQ29sbGlkaW5nID0gVHJpZ2dlclN5c3RlbS5hcmVDb2xsaWRpbmcoXG4gICAgICB3cmFwcGVyLFxuICAgICAgdGhpcy5fY2FtZXJhVHJpZ2dlcldyYXBwZXJcbiAgICApXG5cbiAgICBpZiAod2VyZUNvbGxpZGluZyAmJiAhYXJlQ29sbGlkaW5nKSB7XG4gICAgICB3cmFwcGVyLmRpc2VuZ2FnZUFjdGl2ZUNvbGxpc2lvbih0aGlzLl9jYW1lcmFUcmlnZ2VyV3JhcHBlcilcbiAgICAgIGlmICh3cmFwcGVyLnRyaWdnZXIub25DYW1lcmFFeGl0KSB3cmFwcGVyLnRyaWdnZXIub25DYW1lcmFFeGl0KClcbiAgICB9IGVsc2UgaWYgKCF3ZXJlQ29sbGlkaW5nICYmIGFyZUNvbGxpZGluZykge1xuICAgICAgd3JhcHBlci5lbmdhZ2VDb2xsaXNpb24odGhpcy5fY2FtZXJhVHJpZ2dlcldyYXBwZXIpXG4gICAgICBpZiAod3JhcHBlci50cmlnZ2VyLm9uQ2FtZXJhRW50ZXIpIHdyYXBwZXIudHJpZ2dlci5vbkNhbWVyYUVudGVyKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQ29sbGlzaW9uQWdhaW5zdE90aGVyVHJpZ2dlcnMod3JhcHBlcjogVHJpZ2dlcldyYXBwZXIpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLl90cmlnZ2Vycykge1xuICAgICAgaWYgKHRoaXMuX3RyaWdnZXJzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgaWYgKGtleSAhPSB3cmFwcGVyLnV1aWQgJiYgdGhpcy5fdHJpZ2dlcnNba2V5XS50cmlnZ2VyLmVuYWJsZWQpIHtcbiAgICAgICAgICBpZiAoVHJpZ2dlclN5c3RlbS5jYW5UcmlnZ2Vyc0NvbGxpZGUod3JhcHBlciwgdGhpcy5fdHJpZ2dlcnNba2V5XSkpIHtcbiAgICAgICAgICAgIGxldCB3ZXJlQ29sbGlkaW5nID0gd3JhcHBlci5oYXNBY3RpdmVDb2xsaXNpb24odGhpcy5fdHJpZ2dlcnNba2V5XSlcbiAgICAgICAgICAgIGxldCBhcmVDb2xsaWRpbmcgPSBUcmlnZ2VyU3lzdGVtLmFyZUNvbGxpZGluZyhcbiAgICAgICAgICAgICAgd3JhcHBlcixcbiAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcnNba2V5XVxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBpZiAod2VyZUNvbGxpZGluZyAmJiAhYXJlQ29sbGlkaW5nKVxuICAgICAgICAgICAgICBUcmlnZ2VyU3lzdGVtLmRpc2VuZ2FnZUNvbGxpc2lvbih3cmFwcGVyLCB0aGlzLl90cmlnZ2Vyc1trZXldKVxuICAgICAgICAgICAgZWxzZSBpZiAoIXdlcmVDb2xsaWRpbmcgJiYgYXJlQ29sbGlkaW5nKVxuICAgICAgICAgICAgICBUcmlnZ2VyU3lzdGVtLmVuZ2FnZUNvbGxpc2lvbih3cmFwcGVyLCB0aGlzLl90cmlnZ2Vyc1trZXldKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNhblRyaWdnZXJzQ29sbGlkZShcbiAgICB0MTogVHJpZ2dlcldyYXBwZXIsXG4gICAgdDI6IFRyaWdnZXJXcmFwcGVyXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICh0MS50cmlnZ2VyLnRyaWdnZXJlZEJ5TGF5ZXIgPT0gMCkgcmV0dXJuIHRydWVcbiAgICByZXR1cm4gKHQyLnRyaWdnZXIubGF5ZXIgJiB0MS50cmlnZ2VyLnRyaWdnZXJlZEJ5TGF5ZXIpICE9IDBcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFyZUNvbGxpZGluZyh0MTogVHJpZ2dlcldyYXBwZXIsIHQyOiBUcmlnZ2VyV3JhcHBlcik6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIHQxLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyQm94U2hhcGUgJiZcbiAgICAgIHQyLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyQm94U2hhcGVcbiAgICApIHtcbiAgICAgIHJldHVybiBUcmlnZ2VyU3lzdGVtLmFyZUNvbGxpZGluZ0FBQkIoXG4gICAgICAgIHQxLmdldEdsb2JhbFBvc2l0aW9uKCksXG4gICAgICAgIHQxLmdldFNoYXBlKCkgYXMgVHJpZ2dlckJveFNoYXBlLFxuICAgICAgICB0Mi5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0Mi5nZXRTaGFwZSgpIGFzIFRyaWdnZXJCb3hTaGFwZVxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0MS5nZXRTaGFwZSgpIGluc3RhbmNlb2YgVHJpZ2dlclNwaGVyZVNoYXBlICYmXG4gICAgICB0Mi5nZXRTaGFwZSgpIGluc3RhbmNlb2YgVHJpZ2dlclNwaGVyZVNoYXBlXG4gICAgKSB7XG4gICAgICByZXR1cm4gVHJpZ2dlclN5c3RlbS5hcmVDb2xsaWRpbmdTcGhlcmUoXG4gICAgICAgIHQxLmdldEdsb2JhbFBvc2l0aW9uKCksXG4gICAgICAgIHQxLmdldFNoYXBlKCkgYXMgVHJpZ2dlclNwaGVyZVNoYXBlLFxuICAgICAgICB0Mi5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0Mi5nZXRTaGFwZSgpIGFzIFRyaWdnZXJTcGhlcmVTaGFwZVxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0MS5nZXRTaGFwZSgpIGluc3RhbmNlb2YgVHJpZ2dlckJveFNoYXBlICYmXG4gICAgICB0Mi5nZXRTaGFwZSgpIGluc3RhbmNlb2YgVHJpZ2dlclNwaGVyZVNoYXBlXG4gICAgKSB7XG4gICAgICByZXR1cm4gVHJpZ2dlclN5c3RlbS5hcmVDb2xsaWRpbmdBQUJCU3BoZXJlKFxuICAgICAgICB0MS5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0MS5nZXRTaGFwZSgpIGFzIFRyaWdnZXJCb3hTaGFwZSxcbiAgICAgICAgdDIuZ2V0R2xvYmFsUG9zaXRpb24oKSxcbiAgICAgICAgdDIuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyU3BoZXJlU2hhcGVcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdDEuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJTcGhlcmVTaGFwZSAmJlxuICAgICAgdDIuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJCb3hTaGFwZVxuICAgICkge1xuICAgICAgcmV0dXJuIFRyaWdnZXJTeXN0ZW0uYXJlQ29sbGlkaW5nQUFCQlNwaGVyZShcbiAgICAgICAgdDIuZ2V0R2xvYmFsUG9zaXRpb24oKSxcbiAgICAgICAgdDIuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyQm94U2hhcGUsXG4gICAgICAgIHQxLmdldEdsb2JhbFBvc2l0aW9uKCksXG4gICAgICAgIHQxLmdldFNoYXBlKCkgYXMgVHJpZ2dlclNwaGVyZVNoYXBlXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYXJlQ29sbGlkaW5nQUFCQihcbiAgICB0MUdsb2JhbFBvc2l0aW9uOiBWZWN0b3IzLFxuICAgIHQxU2hhcGU6IFRyaWdnZXJCb3hTaGFwZSxcbiAgICB0Mkdsb2JhbFBvc2l0aW9uOiBWZWN0b3IzLFxuICAgIHQyU2hhcGU6IFRyaWdnZXJCb3hTaGFwZVxuICApOiBib29sZWFuIHtcbiAgICBsZXQgdDEgPSBUcmlnZ2VyU3lzdGVtLmdldEJveFNoYXBlVmFsdWVzKHQxR2xvYmFsUG9zaXRpb24sIHQxU2hhcGUpXG4gICAgbGV0IHQyID0gVHJpZ2dlclN5c3RlbS5nZXRCb3hTaGFwZVZhbHVlcyh0Mkdsb2JhbFBvc2l0aW9uLCB0MlNoYXBlKVxuICAgIHJldHVybiAoXG4gICAgICB0MS5taW4ueCA8PSB0Mi5tYXgueCAmJlxuICAgICAgdDEubWF4LnggPj0gdDIubWluLnggJiZcbiAgICAgIHQxLm1pbi55IDw9IHQyLm1heC55ICYmIHQxLm1heC55ID49IHQyLm1pbi55ICYmXG4gICAgICB0MS5taW4ueiA8PSB0Mi5tYXgueiAmJiB0MS5tYXgueiA+PSB0Mi5taW4uelxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFyZUNvbGxpZGluZ1NwaGVyZShcbiAgICB0MUdsb2JhbFBvc2l0aW9uOiBWZWN0b3IzLFxuICAgIHQxU2hhcGU6IFRyaWdnZXJTcGhlcmVTaGFwZSxcbiAgICB0Mkdsb2JhbFBvc2l0aW9uOiBWZWN0b3IzLFxuICAgIHQyU2hhcGU6IFRyaWdnZXJTcGhlcmVTaGFwZVxuICApOiBib29sZWFuIHtcbiAgICBsZXQgc3FEaXN0ID0gVmVjdG9yMy5EaXN0YW5jZVNxdWFyZWQoXG4gICAgICB0MUdsb2JhbFBvc2l0aW9uLmFkZCh0MVNoYXBlLnBvc2l0aW9uKSxcbiAgICAgIHQyR2xvYmFsUG9zaXRpb24uYWRkKHQyU2hhcGUucG9zaXRpb24pXG4gICAgKVxuICAgIHJldHVybiAoXG4gICAgICBzcURpc3QgPCB0MVNoYXBlLnJhZGl1cyAqIHQxU2hhcGUucmFkaXVzICsgdDJTaGFwZS5yYWRpdXMgKiB0MlNoYXBlLnJhZGl1c1xuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFyZUNvbGxpZGluZ0FBQkJTcGhlcmUoXG4gICAgdDFHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MVNoYXBlOiBUcmlnZ2VyQm94U2hhcGUsXG4gICAgdDJHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MlNoYXBlOiBUcmlnZ2VyU3BoZXJlU2hhcGVcbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IGJveCA9IFRyaWdnZXJTeXN0ZW0uZ2V0Qm94U2hhcGVWYWx1ZXModDFHbG9iYWxQb3NpdGlvbiwgdDFTaGFwZSlcbiAgICBsZXQgc3BoZXJlID0ge1xuICAgICAgY2VudGVyOiB0Mkdsb2JhbFBvc2l0aW9uLmFkZCh0MlNoYXBlLnBvc2l0aW9uKSxcbiAgICAgIHJhZGl1czogdDJTaGFwZS5yYWRpdXNcbiAgICB9XG5cbiAgICBsZXQgZG1pbiA9IDBcbiAgICBpZiAoc3BoZXJlLmNlbnRlci54IDwgYm94Lm1pbi54KVxuICAgICAgZG1pbiArPSAoYm94Lm1pbi54IC0gc3BoZXJlLmNlbnRlci54KSAqIChib3gubWluLnggLSBzcGhlcmUuY2VudGVyLngpXG4gICAgaWYgKHNwaGVyZS5jZW50ZXIueCA+IGJveC5tYXgueClcbiAgICAgIGRtaW4gKz0gKHNwaGVyZS5jZW50ZXIueCAtIGJveC5tYXgueCkgKiAoc3BoZXJlLmNlbnRlci54IC0gYm94Lm1heC54KVxuICAgIGlmIChzcGhlcmUuY2VudGVyLnkgPCBib3gubWluLnkpXG4gICAgICBkbWluICs9IChib3gubWluLnkgLSBzcGhlcmUuY2VudGVyLnkpICogKGJveC5taW4ueSAtIHNwaGVyZS5jZW50ZXIueSlcbiAgICBpZiAoc3BoZXJlLmNlbnRlci55ID4gYm94Lm1heC55KVxuICAgICAgZG1pbiArPSAoc3BoZXJlLmNlbnRlci55IC0gYm94Lm1heC55KSAqIChzcGhlcmUuY2VudGVyLnkgLSBib3gubWF4LnkpXG4gICAgaWYgKHNwaGVyZS5jZW50ZXIueiA8IGJveC5taW4ueilcbiAgICAgIGRtaW4gKz0gKGJveC5taW4ueiAtIHNwaGVyZS5jZW50ZXIueikgKiAoYm94Lm1pbi56IC0gc3BoZXJlLmNlbnRlci56KVxuICAgIGlmIChzcGhlcmUuY2VudGVyLnogPiBib3gubWF4LnopXG4gICAgICBkbWluICs9IChzcGhlcmUuY2VudGVyLnogLSBib3gubWF4LnopICogKHNwaGVyZS5jZW50ZXIueiAtIGJveC5tYXgueilcblxuICAgIHJldHVybiBkbWluIDwgc3BoZXJlLnJhZGl1cyAqIHNwaGVyZS5yYWRpdXNcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldEJveFNoYXBlVmFsdWVzKFxuICAgIGVudGl0eUdsb2JhbFBvc2l0aW9uOiBWZWN0b3IzLFxuICAgIHNoYXBlOiBUcmlnZ2VyQm94U2hhcGVcbiAgKTogeyBjZW50ZXI6IFZlY3RvcjM7IG1pbjogVmVjdG9yMzsgbWF4OiBWZWN0b3IzIH0ge1xuICAgIGxldCBjZW50ZXIgPSBlbnRpdHlHbG9iYWxQb3NpdGlvbi5hZGQoc2hhcGUucG9zaXRpb24pXG4gICAgcmV0dXJuIHtcbiAgICAgIGNlbnRlcjogY2VudGVyLFxuICAgICAgbWluOiBjZW50ZXIuc3VidHJhY3Qoc2hhcGUuc2l6ZS5zY2FsZSgwLjUpKSxcbiAgICAgIG1heDogY2VudGVyLmFkZChzaGFwZS5zaXplLnNjYWxlKDAuNSkpXG4gICAgfVxuICB9XG59XG5cbmNsYXNzIFRyaWdnZXJXcmFwcGVyIHtcbiAgd2FzRW5hYmxlZDogYm9vbGVhbiA9IHRydWVcblxuICBnZXQgZW50aXR5KCk6IEVudGl0eSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eVxuICB9XG4gIGdldCB0cmlnZ2VyKCk6IFRyaWdnZXJDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyXG4gIH1cbiAgZ2V0IHV1aWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdXVpZFxuICB9XG5cbiAgcHJvdGVjdGVkIF9lbnRpdHk/OiBFbnRpdHlcbiAgcHJvdGVjdGVkIF90cmlnZ2VyITogVHJpZ2dlckNvbXBvbmVudFxuICBwcm90ZWN0ZWQgX3V1aWQ6IHN0cmluZyA9ICcnXG4gIHByb3RlY3RlZCBfY29sbGlkaW5nV2l0aDogUmVjb3JkPHN0cmluZywgVHJpZ2dlcldyYXBwZXI+ID0ge31cblxuICBwcml2YXRlIF9pc0RlYnVnOiBib29sZWFuID0gZmFsc2VcbiAgcHJpdmF0ZSBfZGVidWdFbnRpdHk6IEVudGl0eSB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgc3RhdGljIF9kZWJ1Z01hdGVyaWFsOiBNYXRlcmlhbCB8IG51bGwgPSBudWxsXG5cbiAgY29uc3RydWN0b3IoZW50aXR5PzogRW50aXR5KSB7XG4gICAgdGhpcy5fZW50aXR5ID0gZW50aXR5XG4gICAgaWYgKGVudGl0eSkge1xuICAgICAgdGhpcy5fdHJpZ2dlciA9IGVudGl0eS5nZXRDb21wb25lbnQoVHJpZ2dlckNvbXBvbmVudClcbiAgICAgIHRoaXMuX3V1aWQgPSBlbnRpdHkudXVpZFxuICAgICAgdGhpcy5faXNEZWJ1ZyA9IHRoaXMuX3RyaWdnZXIuZGVidWdFbmFibGVkXG4gICAgICBpZiAodGhpcy5faXNEZWJ1Zykge1xuICAgICAgICB0aGlzLmFkZERlYnVnRW50aXR5KClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRHbG9iYWxQb3NpdGlvbigpOiBWZWN0b3IzIHtcbiAgICBpZiAodGhpcy5fZW50aXR5KSByZXR1cm4gVHJpZ2dlcldyYXBwZXIuZ2V0RW50aXR5V29ybGRQb3NpdGlvbih0aGlzLl9lbnRpdHkpXG4gICAgcmV0dXJuIFZlY3RvcjMuWmVybygpXG4gIH1cblxuICBnZXRTaGFwZSgpOiBUcmlnZ2VyQm94U2hhcGUgfCBUcmlnZ2VyU3BoZXJlU2hhcGUge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyLnNoYXBlXG4gIH1cblxuICBpc0luRW5naW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHkgIT0gbnVsbCAmJiB0aGlzLl9lbnRpdHkuaXNBZGRlZFRvRW5naW5lKClcbiAgfVxuXG4gIGdldEFjdGl2ZUNvbGxpc2lvbnMoKTogVHJpZ2dlcldyYXBwZXJbXSB7XG4gICAgbGV0IHJldDogVHJpZ2dlcldyYXBwZXJbXSA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLl9jb2xsaWRpbmdXaXRoKSB7XG4gICAgICBpZiAodGhpcy5fY29sbGlkaW5nV2l0aC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIHJldC5wdXNoKHRoaXMuX2NvbGxpZGluZ1dpdGhba2V5XSlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldFxuICB9XG5cbiAgaGFzQWN0aXZlQ29sbGlzaW9uKG90aGVyOiBUcmlnZ2VyV3JhcHBlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLl9jb2xsaWRpbmdXaXRoW290aGVyLnV1aWRdICE9IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5fY29sbGlkaW5nV2l0aFtvdGhlci51dWlkXSAhPSBudWxsXG4gICAgKVxuICB9XG5cbiAgZGlzZW5nYWdlQWN0aXZlQ29sbGlzaW9uKG90aGVyOiBUcmlnZ2VyV3JhcHBlcikge1xuICAgIGRlbGV0ZSB0aGlzLl9jb2xsaWRpbmdXaXRoW290aGVyLnV1aWRdXG4gIH1cblxuICBlbmdhZ2VDb2xsaXNpb24ob3RoZXI6IFRyaWdnZXJXcmFwcGVyKSB7XG4gICAgdGhpcy5fY29sbGlkaW5nV2l0aFtvdGhlci51dWlkXSA9IG90aGVyXG4gIH1cblxuICBpc0RlYnVnZ2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNEZWJ1Z1xuICB9XG5cbiAgYWRkRGVidWdFbnRpdHkoKSB7XG4gICAgaWYgKCFUcmlnZ2VyV3JhcHBlci5fZGVidWdNYXRlcmlhbCkge1xuICAgICAgVHJpZ2dlcldyYXBwZXIuX2RlYnVnTWF0ZXJpYWwgPSBuZXcgTWF0ZXJpYWwoKVxuICAgICAgVHJpZ2dlcldyYXBwZXIuX2RlYnVnTWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2RlYnVnRW50aXR5ID09IG51bGwpIHtcbiAgICAgIHRoaXMuX2RlYnVnRW50aXR5ID0gbmV3IEVudGl0eSgpXG5cbiAgICAgIGNvbnN0IHRyYW5zZm9ybSA9IG5ldyBUcmFuc2Zvcm0oKVxuICAgICAgdGhpcy5fZGVidWdFbnRpdHkuYWRkQ29tcG9uZW50KHRyYW5zZm9ybSlcbiAgICAgIHRoaXMuX2RlYnVnRW50aXR5LmFkZENvbXBvbmVudChUcmlnZ2VyV3JhcHBlci5fZGVidWdNYXRlcmlhbClcblxuICAgICAgaWYgKHRoaXMuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJCb3hTaGFwZSkge1xuICAgICAgICBjb25zdCBzaGFwZSA9IG5ldyBCb3hTaGFwZSgpXG4gICAgICAgIHNoYXBlLndpdGhDb2xsaXNpb25zID0gZmFsc2VcbiAgICAgICAgdGhpcy5fZGVidWdFbnRpdHkuYWRkQ29tcG9uZW50KHNoYXBlKVxuICAgICAgICB0cmFuc2Zvcm0uc2NhbGUgPSAodGhpcy5nZXRTaGFwZSgpIGFzIFRyaWdnZXJCb3hTaGFwZSkuc2l6ZVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJTcGhlcmVTaGFwZSkge1xuICAgICAgICBjb25zdCBzaGFwZSA9IG5ldyBTcGhlcmVTaGFwZSgpXG4gICAgICAgIHNoYXBlLndpdGhDb2xsaXNpb25zID0gZmFsc2VcbiAgICAgICAgdGhpcy5fZGVidWdFbnRpdHkuYWRkQ29tcG9uZW50KHNoYXBlKVxuICAgICAgICBsZXQgcmFkID0gKHRoaXMuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyU3BoZXJlU2hhcGUpLnJhZGl1c1xuICAgICAgICB0cmFuc2Zvcm0uc2NhbGUgPSBuZXcgVmVjdG9yMyhyYWQsIHJhZCwgcmFkKVxuICAgICAgfVxuICAgIH1cbiAgICBlbmdpbmUuYWRkRW50aXR5KHRoaXMuX2RlYnVnRW50aXR5KVxuICB9XG5cbiAgcmVtb3ZlRGVidWdFbnRpdHkoKSB7XG4gICAgaWYgKHRoaXMuX2RlYnVnRW50aXR5ICE9IG51bGwpIGVuZ2luZS5yZW1vdmVFbnRpdHkodGhpcy5fZGVidWdFbnRpdHkpXG4gIH1cblxuICB1cGRhdGVEZWJ1Z0VudGl0eSgpIHtcbiAgICBpZiAodGhpcy5fZGVidWdFbnRpdHkpIHtcbiAgICAgIHRoaXMuX2RlYnVnRW50aXR5LmdldENvbXBvbmVudChcbiAgICAgICAgVHJhbnNmb3JtXG4gICAgICApLnBvc2l0aW9uID0gdGhpcy5nZXRHbG9iYWxQb3NpdGlvbigpLmFkZCh0aGlzLmdldFNoYXBlKCkucG9zaXRpb24pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0RW50aXR5V29ybGRQb3NpdGlvbihlbnRpdHk6IElFbnRpdHkpOiBWZWN0b3IzIHtcbiAgICBsZXQgZW50aXR5UG9zaXRpb24gPSBlbnRpdHkuaGFzQ29tcG9uZW50KFRyYW5zZm9ybSlcbiAgICAgID8gZW50aXR5LmdldENvbXBvbmVudChUcmFuc2Zvcm0pLnBvc2l0aW9uXG4gICAgICA6IFZlY3RvcjMuWmVybygpXG4gICAgbGV0IHBhcmVudEVudGl0eSA9IGVudGl0eS5nZXRQYXJlbnQoKVxuXG4gICAgaWYgKHBhcmVudEVudGl0eSAhPSBudWxsKSB7XG4gICAgICBsZXQgcGFyZW50Um90YXRpb24gPSBwYXJlbnRFbnRpdHkuaGFzQ29tcG9uZW50KFRyYW5zZm9ybSlcbiAgICAgICAgPyBwYXJlbnRFbnRpdHkuZ2V0Q29tcG9uZW50KFRyYW5zZm9ybSkucm90YXRpb25cbiAgICAgICAgOiBRdWF0ZXJuaW9uLklkZW50aXR5XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlXb3JsZFBvc2l0aW9uKHBhcmVudEVudGl0eSkuYWRkKFxuICAgICAgICBlbnRpdHlQb3NpdGlvbi5yb3RhdGUocGFyZW50Um90YXRpb24pXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBlbnRpdHlQb3NpdGlvblxuICB9XG59XG5cbmNsYXNzIENhbWVyYVRyaWdnZXIgZXh0ZW5kcyBUcmlnZ2VyV3JhcHBlciB7XG4gIHByaXZhdGUgX3NoYXBlOiBUcmlnZ2VyQm94U2hhcGUgfCBUcmlnZ2VyU3BoZXJlU2hhcGVcblxuICBjb25zdHJ1Y3RvcihzaGFwZTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuX3NoYXBlID0gc2hhcGVcbiAgICB0aGlzLl91dWlkID0gJ2NhbWVyYVRyaWdnZXInXG4gIH1cblxuICBnZXRHbG9iYWxQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gQ2FtZXJhLmluc3RhbmNlLnBvc2l0aW9uXG4gIH1cblxuICBnZXRTaGFwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hhcGVcbiAgfVxuXG4gIHNldFNoYXBlKHNoYXBlOiBUcmlnZ2VyQm94U2hhcGUgfCBUcmlnZ2VyU3BoZXJlU2hhcGUpIHtcbiAgICB0aGlzLl9zaGFwZSA9IHNoYXBlXG4gIH1cblxuICBpc0luRW5naW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaGFzQWN0aXZlQ29sbGlzaW9uKG90aGVyOiBUcmlnZ2VyV3JhcHBlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZGlzZW5nYWdlQWN0aXZlQ29sbGlzaW9uKG90aGVyOiBUcmlnZ2VyV3JhcHBlcikge31cblxuICBlbmdhZ2VDb2xsaXNpb24ob3RoZXI6IFRyaWdnZXJXcmFwcGVyKSB7fVxuICBpc0RlYnVnZ2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5AQ29tcG9uZW50KCd0cmlnZ2VyQ29tcG9uZW50JylcbmV4cG9ydCBjbGFzcyBUcmlnZ2VyQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIGlzIHRyaWdnZXIgZW5hYmxlP1xuICAgKi9cbiAgZW5hYmxlZDogYm9vbGVhbiA9IHRydWVcbiAgLyoqXG4gICAqIHNoYXBlIG9mIHRoZSBjb2xsaWRlclxuICAgKi9cbiAgc2hhcGU6IFRyaWdnZXJCb3hTaGFwZSB8IFRyaWdnZXJTcGhlcmVTaGFwZVxuICAvKipcbiAgICogYml0IGxheWVyIG9mIHRoZSBUaWdnZXIgKHVzZWZ1bGwgdG8gZGlzY3JpbWluYXRlIGJldHdlZW4gdHJpZ2dlciBldmVudHMpXG4gICAqL1xuICBsYXllcjogbnVtYmVyID0gMFxuICAvKipcbiAgICogYWdhaW5zdCB3aGljaCBsYXllciBhcmUgd2UgZ29pbmcgdG8gY2hlY2sgdHJpZ2dlcidzIGNvbGxpc2lvbnNcbiAgICovXG4gIHRyaWdnZXJlZEJ5TGF5ZXI6IG51bWJlciA9IDBcbiAgLyoqXG4gICAqIGNhbGxiYWNrIHdoZW4gdHJpZ2dlciBpcyBlbnRlcmVkXG4gICAqL1xuICBvblRyaWdnZXJFbnRlcj86IChlbnRpdHk6IEVudGl0eSkgPT4gdm9pZFxuICAvKipcbiAgICogY2FsbGJhY2sgd2hlbiB0cmlnZ2VyIGlzIGV4aXRcbiAgICovXG4gIG9uVHJpZ2dlckV4aXQ/OiAoZW50aXR5OiBFbnRpdHkpID0+IHZvaWRcbiAgLyoqXG4gICAqIGNhbGxiYWNrIHdoZW4gdHJpZ2dlciBpcyBlbnRlcmVkXG4gICAqL1xuICBvbkNhbWVyYUVudGVyPzogKCkgPT4gdm9pZFxuICAvKipcbiAgICogY2FsbGJhY2sgd2hlbiB0cmlnZ2VyIGlzIGV4aXRcbiAgICovXG4gIG9uQ2FtZXJhRXhpdD86ICgpID0+IHZvaWRcbiAgLyoqXG4gICAqIGdldCBpZiBkZWJ1ZyBpcyBlbmFibGVkXG4gICAqL1xuICBnZXQgZGVidWdFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kZWJ1Z0VuYWJsZWRcbiAgfVxuXG4gIHByaXZhdGUgX2RlYnVnRW5hYmxlZDogYm9vbGVhblxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gc2hhcGUgc2hhcGUgb2YgdGhlIHRyaWdnZXJpbmcgY29sbGlkZXIgYXJlYVxuICAgKiBAcGFyYW0gbGF5ZXIgbGF5ZXIgb2YgdGhlIFRyaWdnZXIsIHVzZWZ1bCB0byBkaXNjcmltaW5hdGUgYmV0d2VlbiB0cmlnZ2VyIGV2ZW50cy4gWW91IGNhbiBzZXQgbXVsdGlwbGUgbGF5ZXJzIGJ5IHVzaW5nIGEgfCBzeW1ib2wuXG4gICAqIEBwYXJhbSB0cmlnZ2VyZWRCeUxheWVyIGFnYWluc3Qgd2hpY2ggbGF5ZXJzIHRvIGNoZWNrIGNvbGxpc2lvbnNcbiAgICogQHBhcmFtIG9uVHJpZ2dlckVudGVyIGNhbGxiYWNrIHdoZW4gYW4gZW50aXR5IG9mIGEgdmFsaWQgbGF5ZXIgZW50ZXJzIHRoZSB0cmlnZ2VyIGFyZWFcbiAgICogQHBhcmFtIG9uVHJpZ2dlckV4aXQgY2FsbGJhY2sgd2hlbiBhbiBlbnRpdHkgb2YgYSB2YWxpZCBsYXllciBsZWF2ZXMgdGhlIHRyaWdnZXIgYXJlYVxuICAgKiBAcGFyYW0gb25DYW1lcmFFbnRlciBjYWxsYmFjayB3aGVuIHRoZSBwbGF5ZXIgZW50ZXJzIHRoZSB0cmlnZ2VyIGFyZWFcbiAgICogQHBhcmFtIG9uQ2FtZXJhRXhpdCBjYWxsYmFjayB3aGVuIHRoZSBwbGF5ZXIgbGVhdmVzIHRoZSB0cmlnZ2VyIGFyZWFcbiAgICogQHBhcmFtIGVuYWJsZURlYnVnIHdoZW4gdHJ1ZSBtYWtlcyB0aGUgdHJpZ2dlciBhcmVhIHZpc2libGUgZm9yIGRlYnVnIHB1cnBvc2VzLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc2hhcGU6IFRyaWdnZXJCb3hTaGFwZSB8IFRyaWdnZXJTcGhlcmVTaGFwZSxcbiAgICBsYXllcjogbnVtYmVyID0gMCxcbiAgICB0cmlnZ2VyZWRCeUxheWVyOiBudW1iZXIgPSAwLFxuICAgIG9uVHJpZ2dlckVudGVyPzogKGVudGl0eTogRW50aXR5KSA9PiB2b2lkLFxuICAgIG9uVHJpZ2dlckV4aXQ/OiAoZW50aXR5OiBFbnRpdHkpID0+IHZvaWQsXG4gICAgb25DYW1lcmFFbnRlcj86ICgpID0+IHZvaWQsXG4gICAgb25DYW1lcmFFeGl0PzogKCkgPT4gdm9pZCxcbiAgICBlbmFibGVEZWJ1ZzogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuICAgIFRyaWdnZXJTeXN0ZW0uY3JlYXRlQW5kQWRkVG9FbmdpbmUoKVxuICAgIHRoaXMuc2hhcGUgPSBzaGFwZVxuICAgIHRoaXMubGF5ZXIgPSBsYXllclxuICAgIHRoaXMudHJpZ2dlcmVkQnlMYXllciA9IHRyaWdnZXJlZEJ5TGF5ZXJcbiAgICB0aGlzLm9uVHJpZ2dlckVudGVyID0gb25UcmlnZ2VyRW50ZXJcbiAgICB0aGlzLm9uVHJpZ2dlckV4aXQgPSBvblRyaWdnZXJFeGl0XG4gICAgdGhpcy5vbkNhbWVyYUVudGVyID0gb25DYW1lcmFFbnRlclxuICAgIHRoaXMub25DYW1lcmFFeGl0ID0gb25DYW1lcmFFeGl0XG4gICAgdGhpcy5fZGVidWdFbmFibGVkID0gZW5hYmxlRGVidWdcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJpZ2dlckJveFNoYXBlIHtcbiAgc2l6ZTogVmVjdG9yM1xuICBwb3NpdGlvbjogVmVjdG9yM1xuXG4gIGNvbnN0cnVjdG9yKHNpemU6IFZlY3RvcjMsIHBvc2l0aW9uOiBWZWN0b3IzKSB7XG4gICAgdGhpcy5zaXplID0gc2l6ZVxuICAgIHRoaXMucG9zaXRpb24gPSBwb3NpdGlvblxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmlnZ2VyU3BoZXJlU2hhcGUge1xuICByYWRpdXM6IG51bWJlclxuICBwb3NpdGlvbjogVmVjdG9yM1xuXG4gIGNvbnN0cnVjdG9yKHJhZGl1czogbnVtYmVyLCBwb3NpdGlvbjogVmVjdG9yMykge1xuICAgIHRoaXMucmFkaXVzID0gcmFkaXVzXG4gICAgdGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uXG4gIH1cbn1cbiIsImV4cG9ydCBjbGFzcyBBY3Rpb25zU2VxdWVuY2VTeXN0ZW0gaW1wbGVtZW50cyBJU3lzdGVtIHtcbiAgcHJpdmF0ZSBiZWdpblNlcXVlbmNlTm9kZTogU2VxdWVuY2VOb2RlIHwgbnVsbCA9IG51bGxcbiAgcHJpdmF0ZSBjdXJyZW50U2VxdWVuY2VOb2RlOiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuXG4gIHByaXZhdGUgcnVubmluZzogYm9vbGVhbiA9IGZhbHNlXG4gIHByaXZhdGUgc3RhcnRlZDogYm9vbGVhbiA9IGZhbHNlXG5cbiAgcHJpdmF0ZSBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZFxuXG4gIGNvbnN0cnVjdG9yKHNlcXVlbmNlQnVpbHQ/OiBBY3Rpb25zU2VxdWVuY2VTeXN0ZW0uU2VxdWVuY2VCdWlsZGVyKSB7XG4gICAgaWYgKHNlcXVlbmNlQnVpbHQpIHtcbiAgICAgIHRoaXMuc3RhcnRTZXF1ZW5jZShzZXF1ZW5jZUJ1aWx0KVxuICAgIH1cbiAgfVxuXG4gIHN0YXJ0U2VxdWVuY2Uoc2VxdWVuY2VCdWlsdDogQWN0aW9uc1NlcXVlbmNlU3lzdGVtLlNlcXVlbmNlQnVpbGRlcikge1xuICAgIHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGUgPSBzZXF1ZW5jZUJ1aWx0LmJlZ2luU2VxdWVuY2VOb2RlXG4gICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlID0gdGhpcy5iZWdpblNlcXVlbmNlTm9kZVxuICAgIHRoaXMucnVubmluZyA9IHRydWVcbiAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZVxuICB9XG5cbiAgc2V0T25GaW5pc2hDYWxsYmFjayhvbkZpbmlzaENhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vbkZpbmlzaENhbGxiYWNrID0gb25GaW5pc2hDYWxsYmFja1xuICB9XG5cbiAgaXNSdW5uaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJ1bm5pbmdcbiAgfVxuXG4gIHN0b3AoKSB7XG4gICAgdGhpcy5ydW5uaW5nID0gZmFsc2VcbiAgfVxuXG4gIHJlc3VtZSgpIHtcbiAgICBpZiAodGhpcy5iZWdpblNlcXVlbmNlTm9kZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLnJ1bm5pbmcgPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlID0gdGhpcy5iZWdpblNlcXVlbmNlTm9kZVxuICAgIHRoaXMucnVubmluZyA9IHRydWVcbiAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZVxuICB9XG5cbiAgZ2V0UnVubmluZ0FjdGlvbigpOiBBY3Rpb25zU2VxdWVuY2VTeXN0ZW0uSUFjdGlvbiB8IG51bGwge1xuICAgIGxldCBjdXJyZW50Tm9kZTogU2VxdWVuY2VOb2RlIHwgbnVsbCA9IHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZVxuXG4gICAgaWYgKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBpbnN0YW5jZW9mIFN1YlNlcXVlbmNlTm9kZSkge1xuICAgICAgZG8ge1xuICAgICAgICBjdXJyZW50Tm9kZSA9IChjdXJyZW50Tm9kZSBhcyBTdWJTZXF1ZW5jZU5vZGUpLmN1cnJlbnRJbm5lclNlcXVlbmNlXG4gICAgICB9IHdoaWxlIChjdXJyZW50Tm9kZSBpbnN0YW5jZW9mIFN1YlNlcXVlbmNlTm9kZSlcbiAgICB9XG4gICAgcmV0dXJuIChjdXJyZW50Tm9kZSBhcyBTZXF1ZW5jZU5vZGUpLmFjdGlvblxuICB9XG5cbiAgdXBkYXRlKGR0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ydW5uaW5nKSB7XG4gICAgICBpZiAoIXRoaXMuc3RhcnRlZCkge1xuICAgICAgICA7KHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLm9uU3RhcnQoKVxuICAgICAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoISh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5oYXNGaW5pc2goKSkge1xuICAgICAgICAgIDsodGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlIGFzIFNlcXVlbmNlTm9kZSkudXBkYXRlKGR0KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIDsodGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlIGFzIFNlcXVlbmNlTm9kZSkub25GaW5pc2goKVxuICAgICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9ICh0aGlzXG4gICAgICAgICAgICAuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLm5leHRcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUub25TdGFydCgpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucnVubmluZyA9IGZhbHNlXG4gICAgICAgICAgICBpZiAodGhpcy5vbkZpbmlzaENhbGxiYWNrKSB0aGlzLm9uRmluaXNoQ2FsbGJhY2soKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEFjdGlvbnNTZXF1ZW5jZVN5c3RlbSB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgSUFjdGlvbiB7XG4gICAgb25TdGFydCgpOiB2b2lkXG4gICAgdXBkYXRlKGR0OiBudW1iZXIpOiB2b2lkXG4gICAgb25GaW5pc2goKTogdm9pZFxuICAgIGhhc0ZpbmlzaGVkOiBib29sZWFuXG4gIH1cblxuICBleHBvcnQgY2xhc3MgU2VxdWVuY2VCdWlsZGVyIHtcbiAgICBwcml2YXRlIGN1cnJlbnRTZXF1ZW5jZU5vZGU6IFNlcXVlbmNlTm9kZSB8IG51bGwgPSBudWxsXG4gICAgcHVibGljIGJlZ2luU2VxdWVuY2VOb2RlOiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuXG4gICAgcHJpdmF0ZSB3aGlsZU5vZGVTdGFjazogV2hpbGVTZXF1ZW5jZU5vZGVbXSA9IFtdXG5cbiAgICB0aGVuKGFjdGlvbjogQWN0aW9uc1NlcXVlbmNlU3lzdGVtLklBY3Rpb24pOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgaWYgKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IG5ldyBTZXF1ZW5jZU5vZGUoKVxuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUuYWN0aW9uID0gYWN0aW9uXG4gICAgICAgIHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGUgPSB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBuZXh0ID0gbmV3IFNlcXVlbmNlTm9kZSgpXG4gICAgICAgIG5leHQuYWN0aW9uID0gYWN0aW9uXG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZS50aGVuKG5leHQpXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIGlmKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbik6IFNlcXVlbmNlQnVpbGRlciB7XG4gICAgICBsZXQgaWZTZXEgPSBuZXcgSWZTZXF1ZW5jZU5vZGUoY29uZGl0aW9uKVxuICAgICAgaWYgKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IGlmU2VxXG4gICAgICAgIHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGUgPSBpZlNlcVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlID0gdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlLnRoZW4oaWZTZXEpXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIGVsc2UoKTogU2VxdWVuY2VCdWlsZGVyIHtcbiAgICAgIGxldCBzZXEgPSAodGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlIGFzIFNlcXVlbmNlTm9kZSkuZ2V0U2VxdWVuY2UoKVxuICAgICAgaWYgKHNlcSBpbnN0YW5jZW9mIElmU2VxdWVuY2VOb2RlKSB7XG4gICAgICAgIHNlcS5jbG9zZWQgPSB0cnVlXG4gICAgICAgIGxldCBlbHNlU2VxID0gbmV3IEVsc2VTZXF1ZW5jZU5vZGUoc2VxKVxuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSAodGhpc1xuICAgICAgICAgIC5jdXJyZW50U2VxdWVuY2VOb2RlIGFzIFNlcXVlbmNlTm9kZSkudGhlbihlbHNlU2VxKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdJRiBzdGF0ZW1lbnQgaXMgbmVlZGVkIHRvIGJlIGNhbGxlZCBiZWZvcmUgRUxTRSBzdGF0ZW1lbnQuJ1xuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIGVuZElmKCk6IFNlcXVlbmNlQnVpbGRlciB7XG4gICAgICBsZXQgc2VxID0gKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLmdldFNlcXVlbmNlKClcbiAgICAgIGlmIChzZXEgaW5zdGFuY2VvZiBJZlNlcXVlbmNlTm9kZSB8fCBzZXEgaW5zdGFuY2VvZiBFbHNlU2VxdWVuY2VOb2RlKSB7XG4gICAgICAgIHNlcS5jbG9zZWQgPSB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ0lGIHN0YXRlbWVudCBpcyBuZWVkZWQgdG8gYmUgY2FsbGVkIGJlZm9yZSBFTkRJRiBzdGF0ZW1lbnQuJ1xuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIHdoaWxlKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbik6IFNlcXVlbmNlQnVpbGRlciB7XG4gICAgICBsZXQgd2hpbGVTZXEgPSBuZXcgV2hpbGVTZXF1ZW5jZU5vZGUoY29uZGl0aW9uKVxuICAgICAgaWYgKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHdoaWxlU2VxXG4gICAgICAgIHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGUgPSB3aGlsZVNlcVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlID0gdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlLnRoZW4od2hpbGVTZXEpXG4gICAgICB9XG4gICAgICB0aGlzLndoaWxlTm9kZVN0YWNrLnB1c2god2hpbGVTZXEpXG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIGVuZFdoaWxlKCk6IFNlcXVlbmNlQnVpbGRlciB7XG4gICAgICBsZXQgc2VxID0gKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLmdldFNlcXVlbmNlKClcbiAgICAgIGlmIChzZXEgaW5zdGFuY2VvZiBXaGlsZVNlcXVlbmNlTm9kZSkge1xuICAgICAgICBzZXEuY2xvc2VkID0gdHJ1ZVxuICAgICAgICBpZiAodGhpcy53aGlsZU5vZGVTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy53aGlsZU5vZGVTdGFjay5zcGxpY2UodGhpcy53aGlsZU5vZGVTdGFjay5sZW5ndGggLSAxLCAxKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1dISUxFIHN0YXRlbWVudCBpcyBuZWVkZWQgdG8gYmUgY2FsbGVkIGJlZm9yZSBFTkRXSElMRSBzdGF0ZW1lbnQuJ1xuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIGJyZWFrV2hpbGUoKTogU2VxdWVuY2VCdWlsZGVyIHtcbiAgICAgIGlmICh0aGlzLndoaWxlTm9kZVN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlID0gKHRoaXNcbiAgICAgICAgICAuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLnRoZW4oXG4gICAgICAgICAgbmV3IEJyZWFrV2hpbGVTZXF1ZW5jZU5vZGUoXG4gICAgICAgICAgICB0aGlzLndoaWxlTm9kZVN0YWNrW3RoaXMud2hpbGVOb2RlU3RhY2subGVuZ3RoIC0gMV1cbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnV0hJTEUgc3RhdGVtZW50IGlzIG5lZWRlZCB0byBiZSBjYWxsZWQgYmVmb3JlIEJSRUFLV0hJTEUgc3RhdGVtZW50LidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgU2VxdWVuY2VOb2RlIHtcbiAgYWN0aW9uOiBBY3Rpb25zU2VxdWVuY2VTeXN0ZW0uSUFjdGlvbiB8IG51bGwgPSBudWxsXG4gIG5leHQ6IFNlcXVlbmNlTm9kZSB8IG51bGwgPSBudWxsXG5cbiAgdGhlbihuZXh0OiBTZXF1ZW5jZU5vZGUpOiBTZXF1ZW5jZU5vZGUge1xuICAgIHRoaXMubmV4dCA9IG5leHRcbiAgICByZXR1cm4gbmV4dFxuICB9XG5cbiAgb25TdGFydCgpIHtcbiAgICBpZiAodGhpcy5hY3Rpb24pIHRoaXMuYWN0aW9uLm9uU3RhcnQoKVxuICB9XG5cbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5hY3Rpb24pIHRoaXMuYWN0aW9uLnVwZGF0ZShkdClcbiAgfVxuXG4gIG9uRmluaXNoKCkge1xuICAgIGlmICh0aGlzLmFjdGlvbikgdGhpcy5hY3Rpb24ub25GaW5pc2goKVxuICB9XG5cbiAgaGFzRmluaXNoKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFjdGlvbikgcmV0dXJuIHRoaXMuYWN0aW9uLmhhc0ZpbmlzaGVkXG4gICAgZWxzZSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgZ2V0U2VxdWVuY2UoKTogU2VxdWVuY2VOb2RlIHtcbiAgICByZXR1cm4gdGhpc1xuICB9XG59XG5cbmNsYXNzIFN1YlNlcXVlbmNlTm9kZSBleHRlbmRzIFNlcXVlbmNlTm9kZSB7XG4gIGN1cnJlbnRJbm5lclNlcXVlbmNlOiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuICBzdGFydGluZ0lubmVyU2VxdWVuY2U6IFNlcXVlbmNlTm9kZSB8IG51bGwgPSBudWxsXG4gIGNsb3NlZDogYm9vbGVhbiA9IGZhbHNlXG5cbiAgdGhlbihuZXh0OiBTZXF1ZW5jZU5vZGUpOiBTZXF1ZW5jZU5vZGUge1xuICAgIGlmICh0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID09IG51bGwpIHtcbiAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSBuZXh0XG4gICAgICB0aGlzLnN0YXJ0aW5nSW5uZXJTZXF1ZW5jZSA9IG5leHRcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY2xvc2VkKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IG5leHRcbiAgICAgICAgcmV0dXJuIG5leHRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLnRoZW4obmV4dClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIG9uU3RhcnQoKSB7XG4gICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9IHRoaXMuc3RhcnRpbmdJbm5lclNlcXVlbmNlXG4gICAgaWYgKHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UpIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2Uub25TdGFydCgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlKSB7XG4gICAgICBpZiAoIXRoaXMuY3VycmVudElubmVyU2VxdWVuY2UuaGFzRmluaXNoKCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS51cGRhdGUoZHQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLm9uRmluaXNoKClcbiAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9IHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UubmV4dFxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSkgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS5vblN0YXJ0KClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkZpbmlzaCgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSkgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS5vbkZpbmlzaCgpXG4gIH1cblxuICBoYXNGaW5pc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPT0gbnVsbFxuICB9XG5cbiAgZ2V0U2VxdWVuY2UoKTogU2VxdWVuY2VOb2RlIHtcbiAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSkge1xuICAgICAgbGV0IGlubmVyU2VxID0gdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS5nZXRTZXF1ZW5jZSgpXG4gICAgICBpZiAoaW5uZXJTZXEgaW5zdGFuY2VvZiBTdWJTZXF1ZW5jZU5vZGUpIHtcbiAgICAgICAgaWYgKCFpbm5lclNlcS5jbG9zZWQpIHtcbiAgICAgICAgICByZXR1cm4gaW5uZXJTZXFcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpc1xuICB9XG59XG5cbmNsYXNzIElmU2VxdWVuY2VOb2RlIGV4dGVuZHMgU3ViU2VxdWVuY2VOb2RlIHtcbiAgY29uZGl0aW9uOiAoKSA9PiBib29sZWFuXG4gIHJlc3VsdDogYm9vbGVhbiA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoY29uZGl0aW9uOiAoKSA9PiBib29sZWFuKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29uZGl0aW9uID0gY29uZGl0aW9uXG4gIH1cblxuICBvblN0YXJ0KCkge1xuICAgIHRoaXMucmVzdWx0ID0gdGhpcy5jb25kaXRpb24oKVxuICAgIGlmICh0aGlzLnJlc3VsdCkgc3VwZXIub25TdGFydCgpXG4gICAgZWxzZSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID0gbnVsbFxuICB9XG59XG5cbmNsYXNzIEVsc2VTZXF1ZW5jZU5vZGUgZXh0ZW5kcyBTdWJTZXF1ZW5jZU5vZGUge1xuICBpZlNlcXVlbmNlOiBJZlNlcXVlbmNlTm9kZSB8IG51bGwgPSBudWxsXG5cbiAgY29uc3RydWN0b3IoaWZTZXF1ZW5jZTogSWZTZXF1ZW5jZU5vZGUpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5pZlNlcXVlbmNlID0gaWZTZXF1ZW5jZVxuICB9XG5cbiAgb25TdGFydCgpIHtcbiAgICBpZiAodGhpcy5pZlNlcXVlbmNlICYmICF0aGlzLmlmU2VxdWVuY2UucmVzdWx0KSBzdXBlci5vblN0YXJ0KClcbiAgICBlbHNlIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSBudWxsXG4gIH1cbn1cblxuY2xhc3MgV2hpbGVTZXF1ZW5jZU5vZGUgZXh0ZW5kcyBTdWJTZXF1ZW5jZU5vZGUge1xuICBjb25kaXRpb246ICgpID0+IGJvb2xlYW5cbiAgYnJlYWtXaGlsZTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoY29uZGl0aW9uOiAoKSA9PiBib29sZWFuKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29uZGl0aW9uID0gY29uZGl0aW9uXG4gIH1cblxuICBvblN0YXJ0KCkge1xuICAgIHRoaXMuYnJlYWtXaGlsZSA9IGZhbHNlXG4gICAgaWYgKHRoaXMuY29uZGl0aW9uKCkpIHN1cGVyLm9uU3RhcnQoKVxuICAgIGVsc2UgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9IG51bGxcbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UpIHtcbiAgICAgIGlmICghdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS5oYXNGaW5pc2goKSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLnVwZGF0ZShkdClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2Uub25GaW5pc2goKVxuICAgICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID0gdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS5uZXh0XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID09IG51bGwpXG4gICAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9IHRoaXMuc3RhcnRpbmdJbm5lclNlcXVlbmNlXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlKSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLm9uU3RhcnQoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhc0ZpbmlzaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5icmVha1doaWxlIHx8ICF0aGlzLmNvbmRpdGlvbigpXG4gIH1cbn1cblxuY2xhc3MgQnJlYWtXaGlsZVNlcXVlbmNlTm9kZSBleHRlbmRzIFNlcXVlbmNlTm9kZSB7XG4gIHdoaWxlTm9kZTogV2hpbGVTZXF1ZW5jZU5vZGVcblxuICBjb25zdHJ1Y3Rvcih3aGlsZU5vZGU6IFdoaWxlU2VxdWVuY2VOb2RlKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMud2hpbGVOb2RlID0gd2hpbGVOb2RlXG4gIH1cblxuICBvblN0YXJ0KCkge1xuICAgIHRoaXMud2hpbGVOb2RlLmJyZWFrV2hpbGUgPSB0cnVlXG4gIH1cbn1cbiIsImltcG9ydCB7IE1vdmVUcmFuc2Zvcm1Db21wb25lbnQgfSBmcm9tICcuL3RyYW5zZm9ybS9jb21wb25lbnQvbW92ZSdcbmltcG9ydCB7IFJvdGF0ZVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vdHJhbnNmb3JtL2NvbXBvbmVudC9yb3RhdGUnXG5pbXBvcnQgeyBTY2FsZVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vdHJhbnNmb3JtL2NvbXBvbmVudC9zY2FsZSdcbmltcG9ydCB7IEZvbGxvd1BhdGhDb21wb25lbnQgfSBmcm9tICcuL3RyYW5zZm9ybS9jb21wb25lbnQvZm9sbG93cGF0aCdcbmltcG9ydCB7IEtlZXBSb3RhdGluZ0NvbXBvbmVudCB9IGZyb20gJy4vdHJhbnNmb3JtL2NvbXBvbmVudC9rZWVwcm90YXRpbmcnXG5pbXBvcnQgeyBUcmFuc2Zvcm1TeXN0ZW0gfSBmcm9tICcuL3RyYW5zZm9ybS9zeXN0ZW0vdHJhbnNmcm9tU3lzdGVtJ1xuaW1wb3J0IHsgSW50ZXJwb2xhdGUsIEludGVycG9sYXRpb25UeXBlIH0gZnJvbSAnLi90cmFuc2Zvcm0vbWF0aC9pbnRlcnBvbGF0aW9uJ1xuXG5pbXBvcnQgeyBUb2dnbGVDb21wb25lbnQsIFRvZ2dsZVN0YXRlIH0gZnJvbSAnLi90b2dnbGUvdG9nZ2xlQ29tcG9uZW50J1xuXG5pbXBvcnQgeyBEZWxheSB9IGZyb20gJy4vdGltZXIvY29tcG9uZW50L2RlbGF5J1xuaW1wb3J0IHsgRXhwaXJlSW4gfSBmcm9tICcuL3RpbWVyL2NvbXBvbmVudC9leHBpcmUnXG5pbXBvcnQgeyBJbnRlcnZhbCB9IGZyb20gJy4vdGltZXIvY29tcG9uZW50L2ludGVydmFsJ1xuXG5pbXBvcnQge1xuICBUcmlnZ2VyU3lzdGVtLFxuICBUcmlnZ2VyQm94U2hhcGUsXG4gIFRyaWdnZXJTcGhlcmVTaGFwZSxcbiAgVHJpZ2dlckNvbXBvbmVudFxufSBmcm9tICcuL3RyaWdnZXJzL3RyaWdnZXJTeXN0ZW0nXG5cbmltcG9ydCB7IEFjdGlvbnNTZXF1ZW5jZVN5c3RlbSB9IGZyb20gJy4vYWN0aW9uc1NlcXVlbmNlU3lzdGVtL2FjdGlvbnNTZXF1ZW5jZVN5c3RlbSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICBUcmFuc2Zvcm1TeXN0ZW0sXG4gIE1vdmVUcmFuc2Zvcm1Db21wb25lbnQsXG4gIFJvdGF0ZVRyYW5zZm9ybUNvbXBvbmVudCxcbiAgU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQsXG4gIEZvbGxvd1BhdGhDb21wb25lbnQsXG4gIEtlZXBSb3RhdGluZ0NvbXBvbmVudCxcbiAgSW50ZXJwb2xhdGUsXG4gIEludGVycG9sYXRpb25UeXBlLFxuICBUb2dnbGVDb21wb25lbnQsXG4gIFRvZ2dsZVN0YXRlLFxuICBEZWxheSxcbiAgRXhwaXJlSW4sXG4gIEludGVydmFsLFxuICBUcmlnZ2VyQ29tcG9uZW50LFxuICBUcmlnZ2VyU3lzdGVtLFxuICBUcmlnZ2VyU3BoZXJlU2hhcGUsXG4gIFRyaWdnZXJCb3hTaGFwZSxcbiAgQWN0aW9uc1NlcXVlbmNlU3lzdGVtXG59XG4iLCJ2YXIgZXRoY29ubmVjdD1mdW5jdGlvbih0KXt2YXIgZT17fTtmdW5jdGlvbiByKG4pe2lmKGVbbl0pcmV0dXJuIGVbbl0uZXhwb3J0czt2YXIgbz1lW25dPXtpOm4sbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gdFtuXS5jYWxsKG8uZXhwb3J0cyxvLG8uZXhwb3J0cyxyKSxvLmw9ITAsby5leHBvcnRzfXJldHVybiByLm09dCxyLmM9ZSxyLmQ9ZnVuY3Rpb24odCxlLG4pe3Iubyh0LGUpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHtlbnVtZXJhYmxlOiEwLGdldDpufSl9LHIucj1mdW5jdGlvbih0KXtcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6XCJNb2R1bGVcIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pfSxyLnQ9ZnVuY3Rpb24odCxlKXtpZigxJmUmJih0PXIodCkpLDgmZSlyZXR1cm4gdDtpZig0JmUmJlwib2JqZWN0XCI9PXR5cGVvZiB0JiZ0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKTtpZihyLnIobiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sXCJkZWZhdWx0XCIse2VudW1lcmFibGU6ITAsdmFsdWU6dH0pLDImZSYmXCJzdHJpbmdcIiE9dHlwZW9mIHQpZm9yKHZhciBvIGluIHQpci5kKG4sbyxmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0uYmluZChudWxsLG8pKTtyZXR1cm4gbn0sci5uPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiB0LmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIHR9O3JldHVybiByLmQoZSxcImFcIixlKSxlfSxyLm89ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9LHIucD1cIlwiLHIoci5zPTI4KX0oW2Z1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49bnx8ZnVuY3Rpb24odCxlKXt2YXIgcj1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByO3JldHVybiB0LnByb3RvdHlwZT1lLHI9bmV3IHQsdC5wcm90b3R5cGU9bnVsbCxyfX0oKSxuPXt9LG89bi5saWI9e30saT1vLkJhc2U9e2V4dGVuZDpmdW5jdGlvbih0KXt2YXIgZT1yKHRoaXMpO3JldHVybiB0JiZlLm1peEluKHQpLGUuaGFzT3duUHJvcGVydHkoXCJpbml0XCIpJiZ0aGlzLmluaXQhPT1lLmluaXR8fChlLmluaXQ9ZnVuY3Rpb24oKXtlLiRzdXBlci5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLGUuaW5pdC5wcm90b3R5cGU9ZSxlLiRzdXBlcj10aGlzLGV9LGNyZWF0ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZXh0ZW5kKCk7cmV0dXJuIHQuaW5pdC5hcHBseSh0LGFyZ3VtZW50cyksdH0saW5pdDpmdW5jdGlvbigpe30sbWl4SW46ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShlKSYmKHRoaXNbZV09dFtlXSk7dC5oYXNPd25Qcm9wZXJ0eShcInRvU3RyaW5nXCIpJiYodGhpcy50b1N0cmluZz10LnRvU3RyaW5nKX0sY2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbml0LnByb3RvdHlwZS5leHRlbmQodGhpcyl9fSxzPW8uV29yZEFycmF5PWkuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLndvcmRzPXR8fFtdLHRoaXMuc2lnQnl0ZXM9bnVsbCE9ZT9lOjQqdC5sZW5ndGh9LHRvU3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybih0fHxjKS5zdHJpbmdpZnkodGhpcyl9LGNvbmNhdDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLndvcmRzLHI9dC53b3JkcyxuPXRoaXMuc2lnQnl0ZXMsbz10LnNpZ0J5dGVzO2lmKHRoaXMuY2xhbXAoKSxuJTQpZm9yKHZhciBpPTA7aTxvO2krKyl7dmFyIHM9cltpPj4+Ml0+Pj4yNC1pJTQqOCYyNTU7ZVtuK2k+Pj4yXXw9czw8MjQtKG4raSklNCo4fWVsc2UgZm9yKHZhciBpPTA7aTxvO2krPTQpZVtuK2k+Pj4yXT1yW2k+Pj4yXTtyZXR1cm4gdGhpcy5zaWdCeXRlcys9byx0aGlzfSxjbGFtcDpmdW5jdGlvbigpe3ZhciBlPXRoaXMud29yZHMscj10aGlzLnNpZ0J5dGVzO2Vbcj4+PjJdJj00Mjk0OTY3Mjk1PDwzMi1yJTQqOCxlLmxlbmd0aD10LmNlaWwoci80KX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1pLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSx0fSxyYW5kb206ZnVuY3Rpb24oZSl7Zm9yKHZhciByLG49W10sbz1mdW5jdGlvbihlKXt2YXIgZT1lLHI9OTg3NjU0MzIxLG49NDI5NDk2NzI5NTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz0oKHI9MzY5NjkqKDY1NTM1JnIpKyhyPj4xNikmbik8PDE2KSsoZT0xOGUzKig2NTUzNSZlKSsoZT4+MTYpJm4pJm47cmV0dXJuIG8vPTQyOTQ5NjcyOTYsKG8rPS41KSoodC5yYW5kb20oKT4uNT8xOi0xKX19LGk9MDtpPGU7aSs9NCl7dmFyIGE9byg0Mjk0OTY3Mjk2KihyfHx0LnJhbmRvbSgpKSk7cj05ODc2NTQwNzEqYSgpLG4ucHVzaCg0Mjk0OTY3Mjk2KmEoKXwwKX1yZXR1cm4gbmV3IHMuaW5pdChuLGUpfX0pLGE9bi5lbmM9e30sYz1hLkhleD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxuPVtdLG89MDtvPHI7bysrKXt2YXIgaT1lW28+Pj4yXT4+PjI0LW8lNCo4JjI1NTtuLnB1c2goKGk+Pj40KS50b1N0cmluZygxNikpLG4ucHVzaCgoMTUmaSkudG9TdHJpbmcoMTYpKX1yZXR1cm4gbi5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1bXSxuPTA7bjxlO24rPTIpcltuPj4+M118PXBhcnNlSW50KHQuc3Vic3RyKG4sMiksMTYpPDwyNC1uJTgqNDtyZXR1cm4gbmV3IHMuaW5pdChyLGUvMil9fSx1PWEuTGF0aW4xPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQud29yZHMscj10LnNpZ0J5dGVzLG49W10sbz0wO288cjtvKyspe3ZhciBpPWVbbz4+PjJdPj4+MjQtbyU0KjgmMjU1O24ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGkpKX1yZXR1cm4gbi5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1bXSxuPTA7bjxlO24rKylyW24+Pj4yXXw9KDI1NSZ0LmNoYXJDb2RlQXQobikpPDwyNC1uJTQqODtyZXR1cm4gbmV3IHMuaW5pdChyLGUpfX0sbD1hLlV0Zjg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUodS5zdHJpbmdpZnkodCkpKX1jYXRjaCh0KXt0aHJvdyBuZXcgRXJyb3IoXCJNYWxmb3JtZWQgVVRGLTggZGF0YVwiKX19LHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiB1LnBhcnNlKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh0KSkpfX0saD1vLkJ1ZmZlcmVkQmxvY2tBbGdvcml0aG09aS5leHRlbmQoe3Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5fZGF0YT1uZXcgcy5pbml0LHRoaXMuX25EYXRhQnl0ZXM9MH0sX2FwcGVuZDpmdW5jdGlvbih0KXtcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9bC5wYXJzZSh0KSksdGhpcy5fZGF0YS5jb25jYXQodCksdGhpcy5fbkRhdGFCeXRlcys9dC5zaWdCeXRlc30sX3Byb2Nlc3M6ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy5fZGF0YSxuPXIud29yZHMsbz1yLnNpZ0J5dGVzLGk9dGhpcy5ibG9ja1NpemUsYT00KmksYz1vL2EsdT0oYz1lP3QuY2VpbChjKTp0Lm1heCgoMHxjKS10aGlzLl9taW5CdWZmZXJTaXplLDApKSppLGw9dC5taW4oNCp1LG8pO2lmKHUpe2Zvcih2YXIgaD0wO2g8dTtoKz1pKXRoaXMuX2RvUHJvY2Vzc0Jsb2NrKG4saCk7dmFyIGY9bi5zcGxpY2UoMCx1KTtyLnNpZ0J5dGVzLT1sfXJldHVybiBuZXcgcy5pbml0KGYsbCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9aS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9kYXRhPXRoaXMuX2RhdGEuY2xvbmUoKSx0fSxfbWluQnVmZmVyU2l6ZTowfSksZj0oby5IYXNoZXI9aC5leHRlbmQoe2NmZzppLmV4dGVuZCgpLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpLHRoaXMucmVzZXQoKX0scmVzZXQ6ZnVuY3Rpb24oKXtoLnJlc2V0LmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfSx1cGRhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FwcGVuZCh0KSx0aGlzLl9wcm9jZXNzKCksdGhpc30sZmluYWxpemU6ZnVuY3Rpb24odCl7dCYmdGhpcy5fYXBwZW5kKHQpO3ZhciBlPXRoaXMuX2RvRmluYWxpemUoKTtyZXR1cm4gZX0sYmxvY2tTaXplOjE2LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuIG5ldyB0LmluaXQocikuZmluYWxpemUoZSl9fSxfY3JlYXRlSG1hY0hlbHBlcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm4gbmV3IGYuSE1BQy5pbml0KHQscikuZmluYWxpemUoZSl9fX0pLG4uYWxnbz17fSk7cmV0dXJuIG59KE1hdGgpLG4pfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscig1KSx2b2lkKG4ubGliLkNpcGhlcnx8ZnVuY3Rpb24odCl7dmFyIGU9bixyPWUubGliLG89ci5CYXNlLGk9ci5Xb3JkQXJyYXkscz1yLkJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0sYT1lLmVuYyxjPShhLlV0ZjgsYS5CYXNlNjQpLHU9ZS5hbGdvLGw9dS5FdnBLREYsaD1yLkNpcGhlcj1zLmV4dGVuZCh7Y2ZnOm8uZXh0ZW5kKCksY3JlYXRlRW5jcnlwdG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0VOQ19YRk9STV9NT0RFLHQsZSl9LGNyZWF0ZURlY3J5cHRvcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmNyZWF0ZSh0aGlzLl9ERUNfWEZPUk1fTU9ERSx0LGUpfSxpbml0OmZ1bmN0aW9uKHQsZSxyKXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQociksdGhpcy5feGZvcm1Nb2RlPXQsdGhpcy5fa2V5PWUsdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe3MucmVzZXQuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9LHByb2Nlc3M6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FwcGVuZCh0KSx0aGlzLl9wcm9jZXNzKCl9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3QmJnRoaXMuX2FwcGVuZCh0KTt2YXIgZT10aGlzLl9kb0ZpbmFsaXplKCk7cmV0dXJuIGV9LGtleVNpemU6NCxpdlNpemU6NCxfRU5DX1hGT1JNX01PREU6MSxfREVDX1hGT1JNX01PREU6MixfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9GOnd9cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybntlbmNyeXB0OmZ1bmN0aW9uKHIsbixvKXtyZXR1cm4gdChuKS5lbmNyeXB0KGUscixuLG8pfSxkZWNyeXB0OmZ1bmN0aW9uKHIsbixvKXtyZXR1cm4gdChuKS5kZWNyeXB0KGUscixuLG8pfX19fSgpfSksZj0oci5TdHJlYW1DaXBoZXI9aC5leHRlbmQoe19kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcHJvY2VzcyghMCk7cmV0dXJuIHR9LGJsb2NrU2l6ZToxfSksZS5tb2RlPXt9KSxwPXIuQmxvY2tDaXBoZXJNb2RlPW8uZXh0ZW5kKHtjcmVhdGVFbmNyeXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5FbmNyeXB0b3IuY3JlYXRlKHQsZSl9LGNyZWF0ZURlY3J5cHRvcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLkRlY3J5cHRvci5jcmVhdGUodCxlKX0saW5pdDpmdW5jdGlvbih0LGUpe3RoaXMuX2NpcGhlcj10LHRoaXMuX2l2PWV9fSksZD1mLkNCQz1mdW5jdGlvbigpe3ZhciBlPXAuZXh0ZW5kKCk7ZnVuY3Rpb24gcihlLHIsbil7dmFyIG89dGhpcy5faXY7aWYobyl7dmFyIGk9bzt0aGlzLl9pdj10fWVsc2UgdmFyIGk9dGhpcy5fcHJldkJsb2NrO2Zvcih2YXIgcz0wO3M8bjtzKyspZVtyK3NdXj1pW3NdfXJldHVybiBlLkVuY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY2lwaGVyLG89bi5ibG9ja1NpemU7ci5jYWxsKHRoaXMsdCxlLG8pLG4uZW5jcnlwdEJsb2NrKHQsZSksdGhpcy5fcHJldkJsb2NrPXQuc2xpY2UoZSxlK28pfX0pLGUuRGVjcnlwdG9yPWUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9jaXBoZXIsbz1uLmJsb2NrU2l6ZSxpPXQuc2xpY2UoZSxlK28pO24uZGVjcnlwdEJsb2NrKHQsZSksci5jYWxsKHRoaXMsdCxlLG8pLHRoaXMuX3ByZXZCbG9jaz1pfX0pLGV9KCksbT1lLnBhZD17fSx5PW0uUGtjczc9e3BhZDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj00KmUsbj1yLXQuc2lnQnl0ZXMlcixvPW48PDI0fG48PDE2fG48PDh8bixzPVtdLGE9MDthPG47YSs9NClzLnB1c2gobyk7dmFyIGM9aS5jcmVhdGUocyxuKTt0LmNvbmNhdChjKX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIGU9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09ZX19LGc9KHIuQmxvY2tDaXBoZXI9aC5leHRlbmQoe2NmZzpoLmNmZy5leHRlbmQoe21vZGU6ZCxwYWRkaW5nOnl9KSxyZXNldDpmdW5jdGlvbigpe2gucmVzZXQuY2FsbCh0aGlzKTt2YXIgdD10aGlzLmNmZyxlPXQuaXYscj10Lm1vZGU7aWYodGhpcy5feGZvcm1Nb2RlPT10aGlzLl9FTkNfWEZPUk1fTU9ERSl2YXIgbj1yLmNyZWF0ZUVuY3J5cHRvcjtlbHNle3ZhciBuPXIuY3JlYXRlRGVjcnlwdG9yO3RoaXMuX21pbkJ1ZmZlclNpemU9MX10aGlzLl9tb2RlJiZ0aGlzLl9tb2RlLl9fY3JlYXRvcj09bj90aGlzLl9tb2RlLmluaXQodGhpcyxlJiZlLndvcmRzKToodGhpcy5fbW9kZT1uLmNhbGwocix0aGlzLGUmJmUud29yZHMpLHRoaXMuX21vZGUuX19jcmVhdG9yPW4pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9tb2RlLnByb2Nlc3NCbG9jayh0LGUpfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY2ZnLnBhZGRpbmc7aWYodGhpcy5feGZvcm1Nb2RlPT10aGlzLl9FTkNfWEZPUk1fTU9ERSl7dC5wYWQodGhpcy5fZGF0YSx0aGlzLmJsb2NrU2l6ZSk7dmFyIGU9dGhpcy5fcHJvY2VzcyghMCl9ZWxzZXt2YXIgZT10aGlzLl9wcm9jZXNzKCEwKTt0LnVucGFkKGUpfXJldHVybiBlfSxibG9ja1NpemU6NH0pLHIuQ2lwaGVyUGFyYW1zPW8uZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQpe3RoaXMubWl4SW4odCl9LHRvU3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybih0fHx0aGlzLmZvcm1hdHRlcikuc3RyaW5naWZ5KHRoaXMpfX0pKSxfPWUuZm9ybWF0PXt9LHY9Xy5PcGVuU1NMPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dmFyIGU9dC5jaXBoZXJ0ZXh0LHI9dC5zYWx0O2lmKHIpdmFyIG49aS5jcmVhdGUoWzEzOTg4OTM2ODQsMTcwMTA3NjgzMV0pLmNvbmNhdChyKS5jb25jYXQoZSk7ZWxzZSB2YXIgbj1lO3JldHVybiBuLnRvU3RyaW5nKGMpfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1jLnBhcnNlKHQpLHI9ZS53b3JkcztpZigxMzk4ODkzNjg0PT1yWzBdJiYxNzAxMDc2ODMxPT1yWzFdKXt2YXIgbj1pLmNyZWF0ZShyLnNsaWNlKDIsNCkpO3Iuc3BsaWNlKDAsNCksZS5zaWdCeXRlcy09MTZ9cmV0dXJuIGcuY3JlYXRlKHtjaXBoZXJ0ZXh0OmUsc2FsdDpufSl9fSx3PXIuU2VyaWFsaXphYmxlQ2lwaGVyPW8uZXh0ZW5kKHtjZmc6by5leHRlbmQoe2Zvcm1hdDp2fSksZW5jcnlwdDpmdW5jdGlvbih0LGUscixuKXtuPXRoaXMuY2ZnLmV4dGVuZChuKTt2YXIgbz10LmNyZWF0ZUVuY3J5cHRvcihyLG4pLGk9by5maW5hbGl6ZShlKSxzPW8uY2ZnO3JldHVybiBnLmNyZWF0ZSh7Y2lwaGVydGV4dDppLGtleTpyLGl2OnMuaXYsYWxnb3JpdGhtOnQsbW9kZTpzLm1vZGUscGFkZGluZzpzLnBhZGRpbmcsYmxvY2tTaXplOnQuYmxvY2tTaXplLGZvcm1hdHRlcjpuLmZvcm1hdH0pfSxkZWNyeXB0OmZ1bmN0aW9uKHQsZSxyLG4pe249dGhpcy5jZmcuZXh0ZW5kKG4pLGU9dGhpcy5fcGFyc2UoZSxuLmZvcm1hdCk7dmFyIG89dC5jcmVhdGVEZWNyeXB0b3IocixuKS5maW5hbGl6ZShlLmNpcGhlcnRleHQpO3JldHVybiBvfSxfcGFyc2U6ZnVuY3Rpb24odCxlKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9lLnBhcnNlKHQsdGhpcyk6dH19KSxiPWUua2RmPXt9LEI9Yi5PcGVuU1NMPXtleGVjdXRlOmZ1bmN0aW9uKHQsZSxyLG4pe258fChuPWkucmFuZG9tKDgpKTt2YXIgbz1sLmNyZWF0ZSh7a2V5U2l6ZTplK3J9KS5jb21wdXRlKHQsbikscz1pLmNyZWF0ZShvLndvcmRzLnNsaWNlKGUpLDQqcik7cmV0dXJuIG8uc2lnQnl0ZXM9NCplLGcuY3JlYXRlKHtrZXk6byxpdjpzLHNhbHQ6bn0pfX0sRj1yLlBhc3N3b3JkQmFzZWRDaXBoZXI9dy5leHRlbmQoe2NmZzp3LmNmZy5leHRlbmQoe2tkZjpCfSksZW5jcnlwdDpmdW5jdGlvbih0LGUscixuKXt2YXIgbz0obj10aGlzLmNmZy5leHRlbmQobikpLmtkZi5leGVjdXRlKHIsdC5rZXlTaXplLHQuaXZTaXplKTtuLml2PW8uaXY7dmFyIGk9dy5lbmNyeXB0LmNhbGwodGhpcyx0LGUsby5rZXksbik7cmV0dXJuIGkubWl4SW4obyksaX0sZGVjcnlwdDpmdW5jdGlvbih0LGUscixuKXtuPXRoaXMuY2ZnLmV4dGVuZChuKSxlPXRoaXMuX3BhcnNlKGUsbi5mb3JtYXQpO3ZhciBvPW4ua2RmLmV4ZWN1dGUocix0LmtleVNpemUsdC5pdlNpemUsZS5zYWx0KTtuLml2PW8uaXY7dmFyIGk9dy5kZWNyeXB0LmNhbGwodGhpcyx0LGUsby5rZXksbik7cmV0dXJuIGl9fSl9KCkpKX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigxNyksbz1yKDMpLGk9cigxNCkscz1yKDI1KTtmdW5jdGlvbiBhKHQpe24uQmlnTnVtYmVyLmNvbmZpZyhpLkVUSF9CSUdOVU1CRVJfUk9VTkRJTkdfTU9ERSk7bGV0IGU9by5wYWRMZWZ0KG8udG9Ud29zQ29tcGxlbWVudCh0KS50b1N0cmluZygxNiksNjQpO3JldHVybiBuZXcgcy5Tb2xpZGl0eVBhcmFtKGUpfWZ1bmN0aW9uIGModCl7cmV0dXJuXCIxXCI9PT1uZXcgbi5CaWdOdW1iZXIodC5zdWJzdHIoMCwxKSwxNikudG9TdHJpbmcoMikuc3Vic3RyKDAsMSl9ZnVuY3Rpb24gdSh0KXtsZXQgZT10LnN0YXRpY1BhcnQoKXx8XCIwXCI7cmV0dXJuIGMoZSk/bmV3IG4uQmlnTnVtYmVyKGUsMTYpLm1pbnVzKG5ldyBuLkJpZ051bWJlcihcImZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZcIiwxNikpLm1pbnVzKDEpOm5ldyBuLkJpZ051bWJlcihlLDE2KX1mdW5jdGlvbiBsKHQpe2xldCBlPXQuc3RhdGljUGFydCgpfHxcIjBcIjtyZXR1cm4gbmV3IG4uQmlnTnVtYmVyKGUsMTYpfWUuZm9ybWF0SW5wdXRJbnQ9YSxlLmZvcm1hdElucHV0Qnl0ZXM9ZnVuY3Rpb24odCl7bGV0IGU9by50b0hleCh0KS5zdWJzdHIoMikscj1NYXRoLmZsb29yKChlLmxlbmd0aCs2MykvNjQpO3JldHVybiBlPW8ucGFkUmlnaHQoZSw2NCpyKSxuZXcgcy5Tb2xpZGl0eVBhcmFtKGUpfSxlLmZvcm1hdElucHV0RHluYW1pY0J5dGVzPWZ1bmN0aW9uKHQpe2xldCBlPW8udG9IZXgodCkuc3Vic3RyKDIpLHI9ZS5sZW5ndGgvMixuPU1hdGguZmxvb3IoKGUubGVuZ3RoKzYzKS82NCk7cmV0dXJuIGU9by5wYWRSaWdodChlLDY0Km4pLG5ldyBzLlNvbGlkaXR5UGFyYW0oYShyKS52YWx1ZStlKX0sZS5mb3JtYXRJbnB1dFN0cmluZz1mdW5jdGlvbih0KXtsZXQgZT1vLmZyb21VdGY4KHQpLnN1YnN0cigyKSxyPWUubGVuZ3RoLzIsbj1NYXRoLmZsb29yKChlLmxlbmd0aCs2MykvNjQpO3JldHVybiBlPW8ucGFkUmlnaHQoZSw2NCpuKSxuZXcgcy5Tb2xpZGl0eVBhcmFtKGEocikudmFsdWUrZSl9LGUuZm9ybWF0SW5wdXRCb29sPWZ1bmN0aW9uKHQpe2xldCBlPVwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCIrKHQ/XCIxXCI6XCIwXCIpO3JldHVybiBuZXcgcy5Tb2xpZGl0eVBhcmFtKGUpfSxlLmZvcm1hdElucHV0UmVhbD1mdW5jdGlvbih0KXtyZXR1cm4gYShuZXcgbi5CaWdOdW1iZXIodCkudGltZXMobmV3IG4uQmlnTnVtYmVyKDIpLnBvdygxMjgpKSl9LGUuc2lnbmVkSXNOZWdhdGl2ZT1jLGUuZm9ybWF0T3V0cHV0SW50PXUsZS5mb3JtYXRPdXRwdXRVSW50PWwsZS5mb3JtYXRPdXRwdXRSZWFsPWZ1bmN0aW9uKHQpe3JldHVybiB1KHQpLmRpdmlkZWRCeShuZXcgbi5CaWdOdW1iZXIoMikucG93KDEyOCkpfSxlLmZvcm1hdE91dHB1dFVSZWFsPWZ1bmN0aW9uKHQpe3JldHVybiBsKHQpLmRpdmlkZWRCeShuZXcgbi5CaWdOdW1iZXIoMikucG93KDEyOCkpfSxlLmZvcm1hdE91dHB1dEJvb2w9ZnVuY3Rpb24odCl7cmV0dXJuXCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxXCI9PT10LnN0YXRpY1BhcnQoKX0sZS5mb3JtYXRPdXRwdXRCeXRlcz1mdW5jdGlvbih0LGUpe2xldCByPWUubWF0Y2goL15ieXRlcyhbMC05XSopLyksbj1wYXJzZUludChyWzFdLDEwKTtyZXR1cm5cIjB4XCIrdC5zdGF0aWNQYXJ0KCkuc2xpY2UoMCwyKm4pfSxlLmZvcm1hdE91dHB1dER5bmFtaWNCeXRlcz1mdW5jdGlvbih0KXtsZXQgZT0yKm5ldyBuLkJpZ051bWJlcih0LmR5bmFtaWNQYXJ0KCkuc2xpY2UoMCw2NCksMTYpLnRvTnVtYmVyKCk7cmV0dXJuXCIweFwiK3QuZHluYW1pY1BhcnQoKS5zdWJzdHIoNjQsZSl9LGUuZm9ybWF0T3V0cHV0U3RyaW5nPWZ1bmN0aW9uKHQpe2xldCBlPTIqbmV3IG4uQmlnTnVtYmVyKHQuZHluYW1pY1BhcnQoKS5zbGljZSgwLDY0KSwxNikudG9OdW1iZXIoKTtyZXR1cm4gby50b1V0ZjgodC5keW5hbWljUGFydCgpLnN1YnN0cig2NCxlKSl9LGUuZm9ybWF0T3V0cHV0QWRkcmVzcz1mdW5jdGlvbih0KXtsZXQgZT10LnN0YXRpY1BhcnQoKTtyZXR1cm5cIjB4XCIrZS5zbGljZShlLmxlbmd0aC00MCxlLmxlbmd0aCl9fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDE3KSxvPXIoMzEpLGk9cigzMikscz1yKDIwKTtmdW5jdGlvbiBhKHQsZSl7bGV0IHI9dDtyZXR1cm4gZSYmXCJoZXhcIj09PWUuZW5jb2RpbmcmJihyLmxlbmd0aD4yJiZcIjB4XCI9PT1yLnN1YnN0cigwLDIpJiYocj1yLnN1YnN0cigyKSkscj1pLmVuYy5IZXgucGFyc2UocikpLHMocix7b3V0cHV0TGVuZ3RoOjI1Nn0pLnRvU3RyaW5nKCl9ZS5zaGEzPWE7bGV0IGM9e25vZXRoZXI6XCIwXCIsd2VpOlwiMVwiLGt3ZWk6XCIxMDAwXCIsS3dlaTpcIjEwMDBcIixiYWJiYWdlOlwiMTAwMFwiLGZlbXRvZXRoZXI6XCIxMDAwXCIsbXdlaTpcIjEwMDAwMDBcIixNd2VpOlwiMTAwMDAwMFwiLGxvdmVsYWNlOlwiMTAwMDAwMFwiLHBpY29ldGhlcjpcIjEwMDAwMDBcIixnd2VpOlwiMTAwMDAwMDAwMFwiLEd3ZWk6XCIxMDAwMDAwMDAwXCIsc2hhbm5vbjpcIjEwMDAwMDAwMDBcIixuYW5vZXRoZXI6XCIxMDAwMDAwMDAwXCIsbmFubzpcIjEwMDAwMDAwMDBcIixzemFibzpcIjEwMDAwMDAwMDAwMDBcIixtaWNyb2V0aGVyOlwiMTAwMDAwMDAwMDAwMFwiLG1pY3JvOlwiMTAwMDAwMDAwMDAwMFwiLGZpbm5leTpcIjEwMDAwMDAwMDAwMDAwMDBcIixtaWxsaWV0aGVyOlwiMTAwMDAwMDAwMDAwMDAwMFwiLG1pbGxpOlwiMTAwMDAwMDAwMDAwMDAwMFwiLGV0aGVyOlwiMTAwMDAwMDAwMDAwMDAwMDAwMFwiLGtldGhlcjpcIjEwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIixncmFuZDpcIjEwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIixtZXRoZXI6XCIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCIsZ2V0aGVyOlwiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLHRldGhlcjpcIjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIn07ZnVuY3Rpb24gdSh0LGUscil7cmV0dXJuIG5ldyBBcnJheShlLXQubGVuZ3RoKzEpLmpvaW4ocnx8XCIwXCIpK3R9ZnVuY3Rpb24gbCh0LGU9ITEpe2xldCByPW8uZW5jb2RlKHQpLG49XCJcIjtmb3IobGV0IHQ9MDt0PHIubGVuZ3RoO3QrKyl7bGV0IG89ci5jaGFyQ29kZUF0KHQpO2lmKDA9PT1vKXtpZighZSlicmVhaztuKz1cIjAwXCJ9ZWxzZXtsZXQgdD1vLnRvU3RyaW5nKDE2KTtuKz10Lmxlbmd0aDwyP1wiMFwiK3Q6dH19cmV0dXJuXCIweFwiK259ZnVuY3Rpb24gaCh0KXtsZXQgZT1kKHQpLHI9ZS50b1N0cmluZygxNik7cmV0dXJuIGUuaXNMZXNzVGhhbigwKT9cIi0weFwiK3Iuc3Vic3RyKDEpOlwiMHhcIityfWZ1bmN0aW9uIGYodCl7aWYodih0KSlyZXR1cm4gaCgrdCk7aWYoZyh0KSlyZXR1cm4gaCh0KTtpZihcIm9iamVjdFwiPT10eXBlb2YgdClyZXR1cm4gbChKU09OLnN0cmluZ2lmeSh0KSk7aWYoXyh0KSl7Y29uc3QgZT10O2lmKDA9PT1lLmluZGV4T2YoXCItMHhcIikpcmV0dXJuIGgoZSk7aWYoMD09PWUuaW5kZXhPZihcIjB4XCIpKXJldHVybiBlO2lmKCFpc0Zpbml0ZShlKSlyZXR1cm4gbChlLCEwKX1yZXR1cm4gaCh0KX1mdW5jdGlvbiBwKHQpe2xldCBlPXQ/dC50b0xvd2VyQ2FzZSgpOlwiZXRoZXJcIixyPWNbZV07aWYodm9pZCAwPT09cil0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIHVuaXQgZG9lc24ndCBleGlzdHMsIHBsZWFzZSB1c2UgdGhlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHVuaXRzXCIrSlNPTi5zdHJpbmdpZnkoYyxudWxsLDIpKTtyZXR1cm4gbmV3IG4uQmlnTnVtYmVyKHIsMTApfWZ1bmN0aW9uIGQodCl7bGV0IGU9dHx8MDtyZXR1cm4gZyhlKT9lOlwic3RyaW5nXCIhPXR5cGVvZiBlfHwwIT09ZS5pbmRleE9mKFwiMHhcIikmJjAhPT1lLmluZGV4T2YoXCItMHhcIik/bmV3IG4uQmlnTnVtYmVyKGUudG9TdHJpbmcoMTApLDEwKTpuZXcgbi5CaWdOdW1iZXIoZS5yZXBsYWNlKFwiMHhcIixcIlwiKSwxNil9ZnVuY3Rpb24gbSh0KXtyZXR1cm4vXjB4WzAtOWEtZl17NDB9JC9pLnRlc3QodCl9ZnVuY3Rpb24geSh0KXtjb25zdCBlPXQucmVwbGFjZShcIjB4XCIsXCJcIik7bGV0IHI9YShlLnRvTG93ZXJDYXNlKCkpO2ZvcihsZXQgdD0wO3Q8NDA7dCsrKWlmKHBhcnNlSW50KHJbdF0sMTYpPjcmJmVbdF0udG9VcHBlckNhc2UoKSE9PWVbdF18fHBhcnNlSW50KHJbdF0sMTYpPD03JiZlW3RdLnRvTG93ZXJDYXNlKCkhPT1lW3RdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGcodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBuLkJpZ051bWJlcn1mdW5jdGlvbiBfKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0fHx0JiZ0LmNvbnN0cnVjdG9yJiZcIlN0cmluZ1wiPT09dC5jb25zdHJ1Y3Rvci5uYW1lfWZ1bmN0aW9uIHYodCl7cmV0dXJuXCJib29sZWFuXCI9PXR5cGVvZiB0fWUucGFkTGVmdD11LGUucGFkUmlnaHQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0K25ldyBBcnJheShlLXQubGVuZ3RoKzEpLmpvaW4ocnx8XCIwXCIpfSxlLnRvVXRmOD1mdW5jdGlvbih0KXtsZXQgZT1cIlwiLHI9MCxuPXQubGVuZ3RoO2ZvcihcIjB4XCI9PT10LnN1YnN0cmluZygwLDIpJiYocj0yKTtyPG47cis9Mil7bGV0IG49cGFyc2VJbnQodC5zdWJzdHIociwyKSwxNik7aWYoMD09PW4pYnJlYWs7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShuKX1yZXR1cm4gby5kZWNvZGUoZSl9LGUudG9Bc2NpaT1mdW5jdGlvbih0KXtsZXQgZT1cIlwiLHI9MCxuPXQubGVuZ3RoO2ZvcihcIjB4XCI9PT10LnN1YnN0cmluZygwLDIpJiYocj0yKTtyPG47cis9Mil7bGV0IG49cGFyc2VJbnQodC5zdWJzdHIociwyKSwxNik7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShuKX1yZXR1cm4gZX0sZS5mcm9tVXRmOD1sLGUuZnJvbUFzY2lpPWZ1bmN0aW9uKHQsZT0wKXtsZXQgcj1cIlwiO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbj10LmNoYXJDb2RlQXQoZSkudG9TdHJpbmcoMTYpO3IrPW4ubGVuZ3RoPDI/XCIwXCIrbjpufXJldHVyblwiMHhcIityLnBhZEVuZChlLFwiMFwiKX0sZS50cmFuc2Zvcm1Ub0Z1bGxOYW1lPWZ1bmN0aW9uKHQpe2lmKC0xIT09dC5uYW1lLmluZGV4T2YoXCIoXCIpKXJldHVybiB0Lm5hbWU7bGV0IGU9dC5pbnB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KS5qb2luKCk7cmV0dXJuIHQubmFtZStcIihcIitlK1wiKVwifSxlLmV4dHJhY3REaXNwbGF5TmFtZT1mdW5jdGlvbih0KXtsZXQgZT10LmluZGV4T2YoXCIoXCIpLHI9dC5pbmRleE9mKFwiKVwiKTtyZXR1cm4tMSE9PWUmJi0xIT09cj90LnN1YnN0cigwLGUpOnR9LGUuZXh0cmFjdFR5cGVOYW1lPWZ1bmN0aW9uKHQpe2xldCBlPXQuaW5kZXhPZihcIihcIikscj10LmluZGV4T2YoXCIpXCIpO3JldHVybi0xIT09ZSYmLTEhPT1yP3Quc3Vic3RyKGUrMSxyLWUtMSkucmVwbGFjZShcIiBcIixcIlwiKTpcIlwifSxlLmlzSGV4PWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0JiYvXjB4WzAtOWEtZkEtRl0rJC8udGVzdCh0KX0sZS50b051bGxEZWNpbWFsPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3Q6ZCh0KS50b051bWJlcigpfSxlLnRvRGVjaW1hbD1mdW5jdGlvbih0KXtyZXR1cm4gZCh0KS50b051bWJlcigpfSxlLnRvU3RyaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBnKHQpP3QudG9TdHJpbmcoMTApOlwiXCIrdH0sZS50b0RhdGE9ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQmJiF0LnN0YXJ0c1dpdGgoXCIweFwiKSYmL15bQS1aYS16MC05XSskLy50ZXN0KHQpP1wiMHhcIit0OmYodCl9LGUudG9Cb29sZWFuPWZ1bmN0aW9uKHQpe3JldHVyblwiYm9vbGVhblwiPT10eXBlb2YgdD90OjAhPT1kKHQpLnRvTnVtYmVyKCl9LGUuZnJvbURlY2ltYWw9aCxlLnRvSGV4PWYsZS5nZXRWYWx1ZU9mVW5pdD1wLGUuZnJvbVdlaT1mdW5jdGlvbih0LGUpe2xldCByPWQodCkuZGl2aWRlZEJ5KHAoZSkpO3JldHVybiBnKHQpP3I6ci50b1N0cmluZygxMCl9LGUudG9XZWk9ZnVuY3Rpb24odCxlKXtsZXQgcj1kKHQpLnRpbWVzKHAoZSkpO3JldHVybiBnKHQpP3I6ci50b1N0cmluZygxMCl9LGUudG9CaWdOdW1iZXI9ZCxlLnRvVHdvc0NvbXBsZW1lbnQ9ZnVuY3Rpb24odCl7bGV0IGU9ZCh0KS5pbnRlZ2VyVmFsdWUoKTtyZXR1cm4gZS5pc0xlc3NUaGFuKDApP25ldyBuLkJpZ051bWJlcihcImZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZcIiwxNikucGx1cyhlKS5wbHVzKDEpOmV9LGUuaXNTdHJpY3RBZGRyZXNzPW0sZS5pc0FkZHJlc3M9ZnVuY3Rpb24odCl7cmV0dXJuISEvXigweCk/WzAtOWEtZl17NDB9JC9pLnRlc3QodCkmJighKCEvXigweCk/WzAtOWEtZl17NDB9JC8udGVzdCh0KSYmIS9eKDB4KT9bMC05QS1GXXs0MH0kLy50ZXN0KHQpKXx8eSh0KSl9LGUuaXNDaGVja3N1bUFkZHJlc3M9eSxlLnRvQ2hlY2tzdW1BZGRyZXNzPWZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpcmV0dXJuXCJcIjtjb25zdCBlPXQudG9Mb3dlckNhc2UoKS5yZXBsYWNlKFwiMHhcIixcIlwiKSxyPWEoZSk7bGV0IG49XCIweFwiO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXBhcnNlSW50KHJbdF0sMTYpPjc/bis9ZVt0XS50b1VwcGVyQ2FzZSgpOm4rPWVbdF07cmV0dXJuIG59LGUudG9BcnJheT1mdW5jdGlvbih0KXtpZighQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgRXJyb3IoYFZhbHVlIHdhcyBub3QgYW4gYXJyYXk6ICR7SlNPTi5zdHJpbmdpZnkodCl9YCk7cmV0dXJuIHR9LGUudG9BZGRyZXNzPWZ1bmN0aW9uKHQpe3JldHVybiBtKHQpP3Q6L15bMC05YS1mXXs0MH0kLy50ZXN0KHQpP1wiMHhcIit0OlwiMHhcIit1KGYodCkuc3Vic3RyKDIpLDQwKX0sZS5pc0JpZ051bWJlcj1nLGUuaXNTdHJpbmc9XyxlLmlzRnVuY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdH0sZS5pc09iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9PXQmJiFBcnJheS5pc0FycmF5KHQpJiZcIm9iamVjdFwiPT10eXBlb2YgdH0sZS5pc0Jvb2xlYW49dixlLmlzQXJyYXk9ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9LGUuaXNKc29uPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4hIUpTT04ucGFyc2UodCl9Y2F0Y2godCl7cmV0dXJuITF9fSxlLmlzQmxvb209ZnVuY3Rpb24odCl7cmV0dXJuISghL14oMHgpP1swLTlhLWZdezUxMn0kL2kudGVzdCh0KXx8IS9eKDB4KT9bMC05YS1mXXs1MTJ9JC8udGVzdCh0KSYmIS9eKDB4KT9bMC05QS1GXXs1MTJ9JC8udGVzdCh0KSl9LGUuaXNUb3BpYz1mdW5jdGlvbih0KXtyZXR1cm4hKCEvXigweCk/WzAtOWEtZl17NjR9JC9pLnRlc3QodCl8fCEvXigweCk/WzAtOWEtZl17NjR9JC8udGVzdCh0KSYmIS9eKDB4KT9bMC05QS1GXXs2NH0kLy50ZXN0KHQpKX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDI1KTtlLlNvbGlkaXR5VHlwZT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9pbnB1dEZvcm1hdHRlcj10LmlucHV0Rm9ybWF0dGVyLHRoaXMuX291dHB1dEZvcm1hdHRlcj10Lm91dHB1dEZvcm1hdHRlcn1pc1R5cGUodCl7dGhyb3cgbmV3IEVycm9yKFwidGhpcyBtZXRob2Qgc2hvdWxkIGJlIG92ZXJyd3JpdHRlbiBmb3IgdHlwZSBcIit0KX1zdGF0aWNQYXJ0TGVuZ3RoKHQpe3JldHVybih0aGlzLm5lc3RlZFR5cGVzKHQpfHxbXCJbMV1cIl0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VJbnQodC5zbGljZSgxLC0xKSwxMCl8fDF9KS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCplfSwzMil9aXNEeW5hbWljQXJyYXkodCl7bGV0IGU9dGhpcy5uZXN0ZWRUeXBlcyh0KTtyZXR1cm4hIWUmJiFlW2UubGVuZ3RoLTFdLm1hdGNoKC9bMC05XXsxLH0vZyl9aXNTdGF0aWNBcnJheSh0KXtsZXQgZT10aGlzLm5lc3RlZFR5cGVzKHQpO3JldHVybiEhZSYmISFlW2UubGVuZ3RoLTFdLm1hdGNoKC9bMC05XXsxLH0vZyl9c3RhdGljQXJyYXlMZW5ndGgodCl7bGV0IGU9dGhpcy5uZXN0ZWRUeXBlcyh0KTtpZihlKXtjb25zdCB0PWVbZS5sZW5ndGgtMV0ubWF0Y2goL1swLTldezEsfS9nKTtyZXR1cm4gcGFyc2VJbnQodFt0Lmxlbmd0aC0xXXx8XCIxXCIsMTApfXJldHVybiAxfW5lc3RlZE5hbWUodCl7bGV0IGU9dGhpcy5uZXN0ZWRUeXBlcyh0KTtyZXR1cm4gZT90LnN1YnN0cigwLHQubGVuZ3RoLWVbZS5sZW5ndGgtMV0ubGVuZ3RoKTp0fWlzRHluYW1pY1R5cGUodCl7cmV0dXJuITF9bmVzdGVkVHlwZXModCl7cmV0dXJuIHQubWF0Y2goLyhcXFtbMC05XSpcXF0pL2cpfWVuY29kZSh0LGUpe2lmKHRoaXMuaXNEeW5hbWljQXJyYXkoZSkpe2xldCByPXQubGVuZ3RoLG89dGhpcy5uZXN0ZWROYW1lKGUpLGk9W107cmV0dXJuIGkucHVzaChuLmZvcm1hdElucHV0SW50KHIpLmVuY29kZSgpKSx0LmZvckVhY2godD0+e2kucHVzaCh0aGlzLmVuY29kZSh0LG8pKX0pLGl9aWYodGhpcy5pc1N0YXRpY0FycmF5KGUpKXtsZXQgcj10aGlzLnN0YXRpY0FycmF5TGVuZ3RoKGUpLG49dGhpcy5uZXN0ZWROYW1lKGUpLG89W107Zm9yKGxldCBlPTA7ZTxyO2UrKylvLnB1c2godGhpcy5lbmNvZGUodFtlXSxuKSk7cmV0dXJuIG99cmV0dXJuIHRoaXMuX2lucHV0Rm9ybWF0dGVyKHQsZSkuZW5jb2RlKCl9ZGVjb2RlKHQsZSxyKXtpZih0aGlzLmlzRHluYW1pY0FycmF5KHIpKXtsZXQgbj1wYXJzZUludChcIjB4XCIrdC5zdWJzdHIoMiplLDY0KSwxNiksbz1wYXJzZUludChcIjB4XCIrdC5zdWJzdHIoMipuLDY0KSwxNiksaT1uKzMyLHM9dGhpcy5uZXN0ZWROYW1lKHIpLGE9dGhpcy5zdGF0aWNQYXJ0TGVuZ3RoKHMpLGM9MzIqTWF0aC5mbG9vcigoYSszMSkvMzIpLHU9W107Zm9yKGxldCBlPTA7ZTxvKmM7ZSs9Yyl1LnB1c2godGhpcy5kZWNvZGUodCxpK2UscykpO3JldHVybiB1fWlmKHRoaXMuaXNTdGF0aWNBcnJheShyKSl7bGV0IG49dGhpcy5zdGF0aWNBcnJheUxlbmd0aChyKSxvPWUsaT10aGlzLm5lc3RlZE5hbWUocikscz10aGlzLnN0YXRpY1BhcnRMZW5ndGgoaSksYT0zMipNYXRoLmZsb29yKChzKzMxKS8zMiksYz1bXTtmb3IobGV0IGU9MDtlPG4qYTtlKz1hKWMucHVzaCh0aGlzLmRlY29kZSh0LG8rZSxpKSk7cmV0dXJuIGN9aWYodGhpcy5pc0R5bmFtaWNUeXBlKHIpKXtsZXQgbj1wYXJzZUludChcIjB4XCIrdC5zdWJzdHIoMiplLDY0KSwxNiksaT1wYXJzZUludChcIjB4XCIrdC5zdWJzdHIoMipuLDY0KSwxNikscz1NYXRoLmZsb29yKChpKzMxKS8zMiksYT1uZXcgby5Tb2xpZGl0eVBhcmFtKHQuc3Vic3RyKDIqbiw2NCooMStzKSksMCk7cmV0dXJuIHRoaXMuX291dHB1dEZvcm1hdHRlcihhLHIpfWxldCBuPXRoaXMuc3RhdGljUGFydExlbmd0aChyKSxpPW5ldyBvLlNvbGlkaXR5UGFyYW0odC5zdWJzdHIoMiplLDIqbikpO3JldHVybiB0aGlzLl9vdXRwdXRGb3JtYXR0ZXIoaSxyKX19fSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjLHUsbDt0LmV4cG9ydHM9KG49cigwKSxyKDExKSxyKDEyKSxpPShvPW4pLmxpYixzPWkuQmFzZSxhPWkuV29yZEFycmF5LGM9by5hbGdvLHU9Yy5NRDUsbD1jLkV2cEtERj1zLmV4dGVuZCh7Y2ZnOnMuZXh0ZW5kKHtrZXlTaXplOjQsaGFzaGVyOnUsaXRlcmF0aW9uczoxfSksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCl9LGNvbXB1dGU6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5jZmcsbj1yLmhhc2hlci5jcmVhdGUoKSxvPWEuY3JlYXRlKCksaT1vLndvcmRzLHM9ci5rZXlTaXplLGM9ci5pdGVyYXRpb25zO2kubGVuZ3RoPHM7KXt1JiZuLnVwZGF0ZSh1KTt2YXIgdT1uLnVwZGF0ZSh0KS5maW5hbGl6ZShlKTtuLnJlc2V0KCk7Zm9yKHZhciBsPTE7bDxjO2wrKyl1PW4uZmluYWxpemUodSksbi5yZXNldCgpO28uY29uY2F0KHUpfXJldHVybiBvLnNpZ0J5dGVzPTQqcyxvfX0pLG8uRXZwS0RGPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbC5jcmVhdGUocikuY29tcHV0ZSh0LGUpfSxuLkV2cEtERil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvLGk7dC5leHBvcnRzPShuPXIoMCksaT0obz1uKS5saWIuV29yZEFycmF5LG8uZW5jLkJhc2U2ND17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3ZhciBlPXQud29yZHMscj10LnNpZ0J5dGVzLG49dGhpcy5fbWFwO3QuY2xhbXAoKTtmb3IodmFyIG89W10saT0wO2k8cjtpKz0zKWZvcih2YXIgcz0oZVtpPj4+Ml0+Pj4yNC1pJTQqOCYyNTUpPDwxNnwoZVtpKzE+Pj4yXT4+PjI0LShpKzEpJTQqOCYyNTUpPDw4fGVbaSsyPj4+Ml0+Pj4yNC0oaSsyKSU0KjgmMjU1LGE9MDthPDQmJmkrLjc1KmE8cjthKyspby5wdXNoKG4uY2hhckF0KHM+Pj42KigzLWEpJjYzKSk7dmFyIGM9bi5jaGFyQXQoNjQpO2lmKGMpZm9yKDtvLmxlbmd0aCU0OylvLnB1c2goYyk7cmV0dXJuIG8uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGgscj10aGlzLl9tYXAsbj10aGlzLl9yZXZlcnNlTWFwO2lmKCFuKXtuPXRoaXMuX3JldmVyc2VNYXA9W107Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspbltyLmNoYXJDb2RlQXQobyldPW99dmFyIHM9ci5jaGFyQXQoNjQpO2lmKHMpe3ZhciBhPXQuaW5kZXhPZihzKTstMSE9PWEmJihlPWEpfXJldHVybiBmdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPVtdLG89MCxzPTA7czxlO3MrKylpZihzJTQpe3ZhciBhPXJbdC5jaGFyQ29kZUF0KHMtMSldPDxzJTQqMixjPXJbdC5jaGFyQ29kZUF0KHMpXT4+PjYtcyU0KjI7bltvPj4+Ml18PShhfGMpPDwyNC1vJTQqOCxvKyt9cmV0dXJuIGkuY3JlYXRlKG4sbyl9KHQsZSxuKX0sX21hcDpcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89XCJ9LG4uZW5jLkJhc2U2NCl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxmdW5jdGlvbih0KXt2YXIgZT1uLHI9ZS5saWIsbz1yLldvcmRBcnJheSxpPXIuSGFzaGVyLHM9ZS5hbGdvLGE9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTw2NDtlKyspYVtlXT00Mjk0OTY3Mjk2KnQuYWJzKHQuc2luKGUrMSkpfDB9KCk7dmFyIGM9cy5NRDU9aS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgby5pbml0KFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzhdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjwxNjtyKyspe3ZhciBuPWUrcixvPXRbbl07dFtuXT0xNjcxMTkzNSYobzw8OHxvPj4+MjQpfDQyNzgyNTUzNjAmKG88PDI0fG8+Pj44KX12YXIgaT10aGlzLl9oYXNoLndvcmRzLHM9dFtlKzBdLGM9dFtlKzFdLHA9dFtlKzJdLGQ9dFtlKzNdLG09dFtlKzRdLHk9dFtlKzVdLGc9dFtlKzZdLF89dFtlKzddLHY9dFtlKzhdLHc9dFtlKzldLGI9dFtlKzEwXSxCPXRbZSsxMV0sRj10W2UrMTJdLE49dFtlKzEzXSxrPXRbZSsxNF0seD10W2UrMTVdLFM9aVswXSxBPWlbMV0sTz1pWzJdLFQ9aVszXTtTPXUoUyxBLE8sVCxzLDcsYVswXSksVD11KFQsUyxBLE8sYywxMixhWzFdKSxPPXUoTyxULFMsQSxwLDE3LGFbMl0pLEE9dShBLE8sVCxTLGQsMjIsYVszXSksUz11KFMsQSxPLFQsbSw3LGFbNF0pLFQ9dShULFMsQSxPLHksMTIsYVs1XSksTz11KE8sVCxTLEEsZywxNyxhWzZdKSxBPXUoQSxPLFQsUyxfLDIyLGFbN10pLFM9dShTLEEsTyxULHYsNyxhWzhdKSxUPXUoVCxTLEEsTyx3LDEyLGFbOV0pLE89dShPLFQsUyxBLGIsMTcsYVsxMF0pLEE9dShBLE8sVCxTLEIsMjIsYVsxMV0pLFM9dShTLEEsTyxULEYsNyxhWzEyXSksVD11KFQsUyxBLE8sTiwxMixhWzEzXSksTz11KE8sVCxTLEEsaywxNyxhWzE0XSksUz1sKFMsQT11KEEsTyxULFMseCwyMixhWzE1XSksTyxULGMsNSxhWzE2XSksVD1sKFQsUyxBLE8sZyw5LGFbMTddKSxPPWwoTyxULFMsQSxCLDE0LGFbMThdKSxBPWwoQSxPLFQsUyxzLDIwLGFbMTldKSxTPWwoUyxBLE8sVCx5LDUsYVsyMF0pLFQ9bChULFMsQSxPLGIsOSxhWzIxXSksTz1sKE8sVCxTLEEseCwxNCxhWzIyXSksQT1sKEEsTyxULFMsbSwyMCxhWzIzXSksUz1sKFMsQSxPLFQsdyw1LGFbMjRdKSxUPWwoVCxTLEEsTyxrLDksYVsyNV0pLE89bChPLFQsUyxBLGQsMTQsYVsyNl0pLEE9bChBLE8sVCxTLHYsMjAsYVsyN10pLFM9bChTLEEsTyxULE4sNSxhWzI4XSksVD1sKFQsUyxBLE8scCw5LGFbMjldKSxPPWwoTyxULFMsQSxfLDE0LGFbMzBdKSxTPWgoUyxBPWwoQSxPLFQsUyxGLDIwLGFbMzFdKSxPLFQseSw0LGFbMzJdKSxUPWgoVCxTLEEsTyx2LDExLGFbMzNdKSxPPWgoTyxULFMsQSxCLDE2LGFbMzRdKSxBPWgoQSxPLFQsUyxrLDIzLGFbMzVdKSxTPWgoUyxBLE8sVCxjLDQsYVszNl0pLFQ9aChULFMsQSxPLG0sMTEsYVszN10pLE89aChPLFQsUyxBLF8sMTYsYVszOF0pLEE9aChBLE8sVCxTLGIsMjMsYVszOV0pLFM9aChTLEEsTyxULE4sNCxhWzQwXSksVD1oKFQsUyxBLE8scywxMSxhWzQxXSksTz1oKE8sVCxTLEEsZCwxNixhWzQyXSksQT1oKEEsTyxULFMsZywyMyxhWzQzXSksUz1oKFMsQSxPLFQsdyw0LGFbNDRdKSxUPWgoVCxTLEEsTyxGLDExLGFbNDVdKSxPPWgoTyxULFMsQSx4LDE2LGFbNDZdKSxTPWYoUyxBPWgoQSxPLFQsUyxwLDIzLGFbNDddKSxPLFQscyw2LGFbNDhdKSxUPWYoVCxTLEEsTyxfLDEwLGFbNDldKSxPPWYoTyxULFMsQSxrLDE1LGFbNTBdKSxBPWYoQSxPLFQsUyx5LDIxLGFbNTFdKSxTPWYoUyxBLE8sVCxGLDYsYVs1Ml0pLFQ9ZihULFMsQSxPLGQsMTAsYVs1M10pLE89ZihPLFQsUyxBLGIsMTUsYVs1NF0pLEE9ZihBLE8sVCxTLGMsMjEsYVs1NV0pLFM9ZihTLEEsTyxULHYsNixhWzU2XSksVD1mKFQsUyxBLE8seCwxMCxhWzU3XSksTz1mKE8sVCxTLEEsZywxNSxhWzU4XSksQT1mKEEsTyxULFMsTiwyMSxhWzU5XSksUz1mKFMsQSxPLFQsbSw2LGFbNjBdKSxUPWYoVCxTLEEsTyxCLDEwLGFbNjFdKSxPPWYoTyxULFMsQSxwLDE1LGFbNjJdKSxBPWYoQSxPLFQsUyx3LDIxLGFbNjNdKSxpWzBdPWlbMF0rU3wwLGlbMV09aVsxXStBfDAsaVsyXT1pWzJdK098MCxpWzNdPWlbM10rVHwwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2RhdGEscj1lLndvcmRzLG49OCp0aGlzLl9uRGF0YUJ5dGVzLG89OCplLnNpZ0J5dGVzO3Jbbz4+PjVdfD0xMjg8PDI0LW8lMzI7dmFyIGk9dC5mbG9vcihuLzQyOTQ5NjcyOTYpLHM9bjtyWzE1KyhvKzY0Pj4+OTw8NCldPTE2NzExOTM1JihpPDw4fGk+Pj4yNCl8NDI3ODI1NTM2MCYoaTw8MjR8aT4+PjgpLHJbMTQrKG8rNjQ+Pj45PDw0KV09MTY3MTE5MzUmKHM8PDh8cz4+PjI0KXw0Mjc4MjU1MzYwJihzPDwyNHxzPj4+OCksZS5zaWdCeXRlcz00KihyLmxlbmd0aCsxKSx0aGlzLl9wcm9jZXNzKCk7Zm9yKHZhciBhPXRoaXMuX2hhc2gsYz1hLndvcmRzLHU9MDt1PDQ7dSsrKXt2YXIgbD1jW3VdO2NbdV09MTY3MTE5MzUmKGw8PDh8bD4+PjI0KXw0Mjc4MjU1MzYwJihsPDwyNHxsPj4+OCl9cmV0dXJuIGF9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9aS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO2Z1bmN0aW9uIHUodCxlLHIsbixvLGkscyl7dmFyIGE9dCsoZSZyfH5lJm4pK28rcztyZXR1cm4oYTw8aXxhPj4+MzItaSkrZX1mdW5jdGlvbiBsKHQsZSxyLG4sbyxpLHMpe3ZhciBhPXQrKGUmbnxyJn5uKStvK3M7cmV0dXJuKGE8PGl8YT4+PjMyLWkpK2V9ZnVuY3Rpb24gaCh0LGUscixuLG8saSxzKXt2YXIgYT10KyhlXnJebikrbytzO3JldHVybihhPDxpfGE+Pj4zMi1pKStlfWZ1bmN0aW9uIGYodCxlLHIsbixvLGkscyl7dmFyIGE9dCsocl4oZXx+bikpK28rcztyZXR1cm4oYTw8aXxhPj4+MzItaSkrZX1lLk1ENT1pLl9jcmVhdGVIZWxwZXIoYyksZS5IbWFjTUQ1PWkuX2NyZWF0ZUhtYWNIZWxwZXIoYyl9KE1hdGgpLG4uTUQ1KX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigzKSxvPXIoMTQpO2Z1bmN0aW9uIGkodCl7cmV0dXJuXCJsYXRlc3RcIj09PXR8fFwicGVuZGluZ1wiPT09dHx8XCJlYXJsaWVzdFwiPT09dH1mdW5jdGlvbiBzKHQpe2lmKHZvaWQgMCE9PXQmJm51bGwhPXQpcmV0dXJuIGkodCk/dDpuLnRvSGV4KHQpfWZ1bmN0aW9uIGEodCl7cmV0dXJuIHQ/KG51bGwhPT10LmJsb2NrTnVtYmVyJiYodC5ibG9ja051bWJlcj1uLnRvRGVjaW1hbCh0LmJsb2NrTnVtYmVyKSksbnVsbCE9PXQudHJhbnNhY3Rpb25JbmRleCYmKHQudHJhbnNhY3Rpb25JbmRleD1uLnRvRGVjaW1hbCh0LnRyYW5zYWN0aW9uSW5kZXgpKSx0Lm5vbmNlPW4udG9EZWNpbWFsKHQubm9uY2UpLHQuZ2FzPW4udG9EZWNpbWFsKHQuZ2FzKSx0Lmdhc1ByaWNlPW4udG9CaWdOdW1iZXIodC5nYXNQcmljZSksdC52YWx1ZT1uLnRvQmlnTnVtYmVyKHQudmFsdWUpLHQpOm51bGx9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdD8odC5ibG9ja051bWJlciYmKHQuYmxvY2tOdW1iZXI9bi50b0RlY2ltYWwodC5ibG9ja051bWJlcikpLHQudHJhbnNhY3Rpb25JbmRleCYmKHQudHJhbnNhY3Rpb25JbmRleD1uLnRvRGVjaW1hbCh0LnRyYW5zYWN0aW9uSW5kZXgpKSx0LmxvZ0luZGV4JiYodC5sb2dJbmRleD1uLnRvRGVjaW1hbCh0LmxvZ0luZGV4KSksdCk6bnVsbH1mdW5jdGlvbiB1KHQpe2lmKG4uaXNTdHJpY3RBZGRyZXNzKHQpKXJldHVybiB0O2lmKG4uaXNBZGRyZXNzKHQpKXJldHVyblwiMHhcIit0O3Rocm93IG5ldyBFcnJvcihgSW52YWxpZCBhZGRyZXNzOiAke0pTT04uc3RyaW5naWZ5KHQpfWApfWUub3V0cHV0QmlnTnVtYmVyRm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBuLnRvQmlnTnVtYmVyKHQpfSxlLmlzUHJlZGVmaW5lZEJsb2NrTnVtYmVyPWksZS5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dD9vLmRlZmF1bHRCbG9jazpzKHQpfSxlLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXI9cyxlLmlucHV0Q2FsbEZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdC5mcm9tPXQuZnJvbSx0LmZyb20mJih0LmZyb209dSh0LmZyb20pKSx0LnRvJiYodC50bz11KHQudG8pKSxbXCJnYXNQcmljZVwiLFwiZ2FzXCIsXCJ2YWx1ZVwiLFwibm9uY2VcIl0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT10W2VdfSkuZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPW4uZnJvbURlY2ltYWwodFtlXSl9KSx0LmRhdGEmJiF0LmRhdGEuc3RhcnRzV2l0aChcIjB4XCIpJiYvXltBLVphLXowLTldKyQvLnRlc3QodC5kYXRhKSYmKHQuZGF0YT1cIjB4XCIrdC5kYXRhKSx0fSxlLmlucHV0VHJhbnNhY3Rpb25Gb3JtYXR0ZXI9ZnVuY3Rpb24odCl7aWYoXCJvYmplY3RcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKFwiRGlkIG5vdCBwcm92aWRlIHRyYW5zYWN0aW9uIG9wdGlvbnNcIik7aWYoIXQuZnJvbSl0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgXCJmcm9tXCIgaW4gdHJhbnNhY3Rpb24gb3B0aW9ucycpO3JldHVybiB0LmZyb209dSh0LmZyb20pLHQudG8mJih0LnRvPXUodC50bykpLFtcImdhc1ByaWNlXCIsXCJnYXNcIixcInZhbHVlXCIsXCJub25jZVwiXS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PXRbZV19KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbZV09bi5mcm9tRGVjaW1hbCh0W2VdKX0pLHQuZGF0YSYmIXQuZGF0YS5zdGFydHNXaXRoKFwiMHhcIikmJi9eW0EtWmEtejAtOV0rJC8udGVzdCh0LmRhdGEpJiYodC5kYXRhPVwiMHhcIit0LmRhdGEpLHR9LGUub3V0cHV0VHJhbnNhY3Rpb25Gb3JtYXR0ZXI9YSxlLm91dHB1dFRyYW5zYWN0aW9uUmVjZWlwdEZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD8obnVsbCE9PXQuYmxvY2tOdW1iZXImJih0LmJsb2NrTnVtYmVyPW4udG9EZWNpbWFsKHQuYmxvY2tOdW1iZXIpKSxudWxsIT09dC50cmFuc2FjdGlvbkluZGV4JiYodC50cmFuc2FjdGlvbkluZGV4PW4udG9EZWNpbWFsKHQudHJhbnNhY3Rpb25JbmRleCkpLHQuY3VtdWxhdGl2ZUdhc1VzZWQ9bi50b0RlY2ltYWwodC5jdW11bGF0aXZlR2FzVXNlZCksdC5nYXNVc2VkPW4udG9EZWNpbWFsKHQuZ2FzVXNlZCksbi5pc0FycmF5KHQubG9ncykmJih0LmxvZ3M9dC5sb2dzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYyh0KX0pKSx0LnN0YXR1cz1uLnRvRGVjaW1hbCh0LnN0YXR1cyksdCk6bnVsbH0sZS5vdXRwdXRCbG9ja0Zvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD8odC5nYXNMaW1pdD1uLnRvRGVjaW1hbCh0Lmdhc0xpbWl0KSx0Lmdhc1VzZWQ9bi50b0RlY2ltYWwodC5nYXNVc2VkKSx0LnNpemU9bi50b0RlY2ltYWwodC5zaXplKSx0LnRpbWVzdGFtcD1uLnRvRGVjaW1hbCh0LnRpbWVzdGFtcCksbnVsbCE9PXQubnVtYmVyJiYodC5udW1iZXI9bi50b0RlY2ltYWwodC5udW1iZXIpKSx0LmRpZmZpY3VsdHk9bi50b0JpZ051bWJlcih0LmRpZmZpY3VsdHkpLHQudG90YWxEaWZmaWN1bHR5PW4udG9CaWdOdW1iZXIodC50b3RhbERpZmZpY3VsdHkpLG4uaXNBcnJheSh0LnRyYW5zYWN0aW9ucykmJnQudHJhbnNhY3Rpb25zLmZvckVhY2goZnVuY3Rpb24odCl7aWYoIW4uaXNTdHJpbmcodCkpcmV0dXJuIGEodCl9KSx0KTpudWxsfSxlLm91dHB1dExvZ0Zvcm1hdHRlcj1jLGUuaW5wdXRQb3N0Rm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0LnR0bD1uLmZyb21EZWNpbWFsKHQudHRsKSx0LndvcmtUb1Byb3ZlPW4uZnJvbURlY2ltYWwodC53b3JrVG9Qcm92ZSksdC5wcmlvcml0eT1uLmZyb21EZWNpbWFsKHQucHJpb3JpdHkpLG4uaXNBcnJheSh0LnRvcGljcyl8fCh0LnRvcGljcz10LnRvcGljcz9bdC50b3BpY3NdOltdKSx0LnRvcGljcz10LnRvcGljcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LmluZGV4T2YoXCIweFwiKT90Om4uZnJvbVV0ZjgodCl9KSx0KTpudWxsfSxlLm91dHB1dFBvc3RGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KHQuZXhwaXJ5PW4udG9EZWNpbWFsKHQuZXhwaXJ5KSx0LnNlbnQ9bi50b0RlY2ltYWwodC5zZW50KSx0LnR0bD1uLnRvRGVjaW1hbCh0LnR0bCksdC53b3JrUHJvdmVkPW4udG9EZWNpbWFsKHQud29ya1Byb3ZlZCksdC50b3BpY3N8fCh0LnRvcGljcz1bXSksdC50b3BpY3M9dC50b3BpY3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuLnRvQXNjaWkodCl9KSx0KTpudWxsfSxlLmlucHV0QWRkcmVzc0Zvcm1hdHRlcj11LGUub3V0cHV0U3luY2luZ0Zvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD8odC5zdGFydGluZ0Jsb2NrPW4udG9EZWNpbWFsKHQuc3RhcnRpbmdCbG9jayksdC5jdXJyZW50QmxvY2s9bi50b0RlY2ltYWwodC5jdXJyZW50QmxvY2spLHQuaGlnaGVzdEJsb2NrPW4udG9EZWNpbWFsKHQuaGlnaGVzdEJsb2NrKSx0Lmtub3duU3RhdGVzJiYodC5rbm93blN0YXRlcz1uLnRvRGVjaW1hbCh0Lmtub3duU3RhdGVzKSx0LnB1bGxlZFN0YXRlcz1uLnRvRGVjaW1hbCh0LnB1bGxlZFN0YXRlcykpLHQpOnR9fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbigpe2xldCB0LGU7Y29uc3Qgcj1uZXcgUHJvbWlzZSgobixvKT0+e3Q9KHQ9PntuKHQpLHIuaXNQZW5kaW5nPSExfSksZT0odD0+e28odCksci5pc1BlbmRpbmc9ITF9KX0pLmNhdGNoKHQ9PlByb21pc2UucmVqZWN0KHQpKTtyZXR1cm4gci5yZXNvbHZlPXQsci5yZWplY3Q9ZSxcImZpbmFsbHlcImluIHJ8fChyLmZpbmFsbHk9KHQ9PntyLnRoZW4odCksci5jYXRjaCh0KX0pKSxyLmlzUGVuZGluZz0hMCxyfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGUuZnV0dXJlPW4sZS5kZWZhdWx0PW59LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvLGkscyxhLGM7dC5leHBvcnRzPShuPXIoMCksaT0obz1uKS5saWIscz1pLkJhc2UsYT1pLldvcmRBcnJheSwoYz1vLng2ND17fSkuV29yZD1zLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3RoaXMuaGlnaD10LHRoaXMubG93PWV9fSksYy5Xb3JkQXJyYXk9cy5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxlKXt0PXRoaXMud29yZHM9dHx8W10sdGhpcy5zaWdCeXRlcz1udWxsIT1lP2U6OCp0Lmxlbmd0aH0sdG9YMzI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy53b3JkcyxlPXQubGVuZ3RoLHI9W10sbj0wO248ZTtuKyspe3ZhciBvPXRbbl07ci5wdXNoKG8uaGlnaCksci5wdXNoKG8ubG93KX1yZXR1cm4gYS5jcmVhdGUocix0aGlzLnNpZ0J5dGVzKX0sY2xvbmU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9cy5jbG9uZS5jYWxsKHRoaXMpLGU9dC53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLHI9ZS5sZW5ndGgsbj0wO248cjtuKyspZVtuXT1lW25dLmNsb25lKCk7cmV0dXJuIHR9fSksbil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvLGkscyxhLGMsdSxsO3QuZXhwb3J0cz0obj1yKDApLGk9KG89bikubGliLHM9aS5Xb3JkQXJyYXksYT1pLkhhc2hlcixjPW8uYWxnbyx1PVtdLGw9Yy5TSEExPWEuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IHMuaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX2hhc2gud29yZHMsbj1yWzBdLG89clsxXSxpPXJbMl0scz1yWzNdLGE9cls0XSxjPTA7Yzw4MDtjKyspe2lmKGM8MTYpdVtjXT0wfHRbZStjXTtlbHNle3ZhciBsPXVbYy0zXV51W2MtOF1edVtjLTE0XV51W2MtMTZdO3VbY109bDw8MXxsPj4+MzF9dmFyIGg9KG48PDV8bj4+PjI3KSthK3VbY107aCs9YzwyMD8xNTE4NTAwMjQ5KyhvJml8fm8mcyk6Yzw0MD8xODU5Nzc1MzkzKyhvXmlecyk6Yzw2MD8obyZpfG8mc3xpJnMpLTE4OTQwMDc1ODg6KG9eaV5zKS04OTk0OTc1MTQsYT1zLHM9aSxpPW88PDMwfG8+Pj4yLG89bixuPWh9clswXT1yWzBdK258MCxyWzFdPXJbMV0rb3wwLHJbMl09clsyXStpfDAsclszXT1yWzNdK3N8MCxyWzRdPXJbNF0rYXwwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLHI9OCp0aGlzLl9uRGF0YUJ5dGVzLG49OCp0LnNpZ0J5dGVzO3JldHVybiBlW24+Pj41XXw9MTI4PDwyNC1uJTMyLGVbMTQrKG4rNjQ+Pj45PDw0KV09TWF0aC5mbG9vcihyLzQyOTQ5NjcyOTYpLGVbMTUrKG4rNjQ+Pj45PDw0KV09cix0LnNpZ0J5dGVzPTQqZS5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2h9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9YS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pLG8uU0hBMT1hLl9jcmVhdGVIZWxwZXIobCksby5IbWFjU0hBMT1hLl9jcmVhdGVIbWFjSGVscGVyKGwpLG4uU0hBMSl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvLGkscyxhLGMsdTt0LmV4cG9ydHM9KG49cigwKSxpPShvPW4pLmxpYixzPWkuQmFzZSxhPW8uZW5jLGM9YS5VdGY4LHU9by5hbGdvLHZvaWQodS5ITUFDPXMuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLl9oYXNoZXI9bmV3IHQuaW5pdCxcInN0cmluZ1wiPT10eXBlb2YgZSYmKGU9Yy5wYXJzZShlKSk7dmFyIHI9dC5ibG9ja1NpemUsbj00KnI7ZS5zaWdCeXRlcz5uJiYoZT10LmZpbmFsaXplKGUpKSxlLmNsYW1wKCk7Zm9yKHZhciBvPXRoaXMuX29LZXk9ZS5jbG9uZSgpLGk9dGhpcy5faUtleT1lLmNsb25lKCkscz1vLndvcmRzLGE9aS53b3Jkcyx1PTA7dTxyO3UrKylzW3VdXj0xNTQ5NTU2ODI4LGFbdV1ePTkwOTUyMjQ4NjtvLnNpZ0J5dGVzPWkuc2lnQnl0ZXM9bix0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faGFzaGVyO3QucmVzZXQoKSx0LnVwZGF0ZSh0aGlzLl9pS2V5KX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9oYXNoZXIudXBkYXRlKHQpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2hhc2hlcixyPWUuZmluYWxpemUodCk7ZS5yZXNldCgpO3ZhciBuPWUuZmluYWxpemUodGhpcy5fb0tleS5jbG9uZSgpLmNvbmNhdChyKSk7cmV0dXJuIG59fSkpKX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGUuSW52YWxpZE51bWJlck9mU29saWRpdHlBcmdzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBFcnJvcihgSW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzIHRvIFNvbGlkaXR5IGZ1bmN0aW9uLiBnaXZlbjogJHt0fSwgZXhwZWN0ZWQ6ICR7ZX1gKX0sZS5JbnZhbGlkTnVtYmVyT2ZSUENQYXJhbXM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuZXcgRXJyb3IoYEludmFsaWQgbnVtYmVyIG9mIGlucHV0IHBhcmFtZXRlcnMgdG8gUlBDIG1ldGhvZCBcIiR7dH1cIiBnaXZlbjogJHtlfSwgZXhwZWN0ZWQ6ICR7cn1gKX0sZS5JbnZhbGlkQ29ubmVjdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEVycm9yKFwiQ09OTkVDVElPTiBFUlJPUjogQ291bGRuJ3QgY29ubmVjdCB0byBub2RlIFwiK3QrXCIuXCIpfSxlLkludmFsaWRQcm92aWRlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgRXJyb3IoXCJQcm92aWRlciBub3Qgc2V0IG9yIGludmFsaWRcIil9LGUuSW52YWxpZFJlc3BvbnNlPWZ1bmN0aW9uKHQpe2xldCBlPXQmJnQuZXJyb3ImJnQuZXJyb3IubWVzc2FnZT90LmVycm9yLm1lc3NhZ2U6XCJJbnZhbGlkIEpTT04gUlBDIHJlc3BvbnNlOiBcIitKU09OLnN0cmluZ2lmeSh0KTtyZXR1cm4gbmV3IEVycm9yKGUpfSxlLkNvbm5lY3Rpb25UaW1lb3V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRXJyb3IoXCJDT05ORUNUSU9OIFRJTUVPVVQ6IHRpbWVvdXQgb2YgXCIrdCtcIiBtcyBhY2hpdmVkXCIpfX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cig1Nyk7ZS5FVEhfVU5JVFM9W1wid2VpXCIsXCJrd2VpXCIsXCJNd2VpXCIsXCJHd2VpXCIsXCJzemFib1wiLFwiZmlubmV5XCIsXCJmZW10b2V0aGVyXCIsXCJwaWNvZXRoZXJcIixcIm5hbm9ldGhlclwiLFwibWljcm9ldGhlclwiLFwibWlsbGlldGhlclwiLFwibmFub1wiLFwibWljcm9cIixcIm1pbGxpXCIsXCJldGhlclwiLFwiZ3JhbmRcIixcIk1ldGhlclwiLFwiR2V0aGVyXCIsXCJUZXRoZXJcIixcIlBldGhlclwiLFwiRWV0aGVyXCIsXCJaZXRoZXJcIixcIllldGhlclwiLFwiTmV0aGVyXCIsXCJEZXRoZXJcIixcIlZldGhlclwiLFwiVWV0aGVyXCJdLGUuRVRIX1BBRERJTkc9MzIsZS5FVEhfU0lHTkFUVVJFX0xFTkdUSD00LGUuRVRIX0JJR05VTUJFUl9ST1VORElOR19NT0RFPXtST1VORElOR19NT0RFOm4uQmlnTnVtYmVyUm91bmRpbmdNb2RlLlJPVU5EX0RPV059LGUuRVRIX1BPTExJTkdfVElNRU9VVD01MDAsZS5kZWZhdWx0QmxvY2s9XCJsYXRlc3RcIn0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigyKSxvPXIoNjEpLGk9cig2Mikscz1yKDYzKSxhPXIoNjQpLGM9cig2NSksdT1yKDY2KSxsPXIoNjcpLGg9cig2OCksZj1yKDY5KTtmdW5jdGlvbiBwKHQsZSl7cmV0dXJuIHQuaXNEeW5hbWljVHlwZShlKXx8dC5pc0R5bmFtaWNBcnJheShlKX1jbGFzcyBke2NvbnN0cnVjdG9yKHQpe3RoaXMuX3R5cGVzPXR9X3JlcXVpcmVUeXBlKHQpe2xldCBlPXRoaXMuX3R5cGVzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5pc1R5cGUodCl9KVswXTtpZighZSl0aHJvdyBFcnJvcihcImludmFsaWQgc29saWRpdHkgdHlwZSE6IFwiK3QpO3JldHVybiBlfWVuY29kZVBhcmFtKHQsZSl7cmV0dXJuIHRoaXMuZW5jb2RlUGFyYW1zKFt0XSxbZV0pfWVuY29kZVBhcmFtcyh0LGUpe2xldCByPXRoaXMuZ2V0U29saWRpdHlUeXBlcyh0KSxuPXIubWFwKGZ1bmN0aW9uKHIsbil7cmV0dXJuIHIuZW5jb2RlKGVbbl0sdFtuXSl9KSxvPXIucmVkdWNlKGZ1bmN0aW9uKGUsbixvKXtsZXQgaT1uLnN0YXRpY1BhcnRMZW5ndGgodFtvXSkscz0zMipNYXRoLmZsb29yKChpKzMxKS8zMik7cmV0dXJuIGUrKHAocltvXSx0W29dKT8zMjpzKX0sMCk7cmV0dXJuIHRoaXMuZW5jb2RlTXVsdGlXaXRoT2Zmc2V0KHQscixuLG8pfWVuY29kZU11bHRpV2l0aE9mZnNldCh0LGUscixvKXtsZXQgaT1vLHM9XCJcIjtyZXR1cm4gdC5mb3JFYWNoKChvLGEpPT57aWYocChlW2FdLHRbYV0pKXtzKz1uLmZvcm1hdElucHV0SW50KGkpLmVuY29kZSgpO2xldCBvPXRoaXMuZW5jb2RlV2l0aE9mZnNldCh0W2FdLGVbYV0sclthXSxpKTtpKz1vLmxlbmd0aC8yfWVsc2Ugcys9dGhpcy5lbmNvZGVXaXRoT2Zmc2V0KHRbYV0sZVthXSxyW2FdLGkpfSksdC5mb3JFYWNoKChuLG8pPT57aWYocChlW29dLHRbb10pKXtsZXQgbj10aGlzLmVuY29kZVdpdGhPZmZzZXQodFtvXSxlW29dLHJbb10saSk7aSs9bi5sZW5ndGgvMixzKz1ufX0pLHN9ZW5jb2RlV2l0aE9mZnNldCh0LGUscixvKXtsZXQgaT0xLHM9MixhPTMsYz1lLmlzRHluYW1pY0FycmF5KHQpP2k6ZS5pc1N0YXRpY0FycmF5KHQpP3M6YTtpZihjIT09YSl7bGV0IGE9ZS5uZXN0ZWROYW1lKHQpLHU9ZS5zdGF0aWNQYXJ0TGVuZ3RoKGEpLGw9Yz09PWk/clswXTpcIlwiO2lmKGUuaXNEeW5hbWljQXJyYXkoYSkpe2xldCB0PWM9PT1pPzI6MDtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKyljPT09aT90Kz0rcltlLTFdWzBdfHwwOmM9PT1zJiYodCs9KyhyW2UtMV18fFtdKVswXXx8MCksbCs9bi5mb3JtYXRJbnB1dEludChvK2UqdSszMip0KS5lbmNvZGUoKX1sZXQgaD1jPT09aT9yLmxlbmd0aC0xOnIubGVuZ3RoO2ZvcihsZXQgdD0wO3Q8aDt0Kyspe2xldCBuPWwvMjtjPT09aT9sKz10aGlzLmVuY29kZVdpdGhPZmZzZXQoYSxlLHJbdCsxXSxvK24pOmM9PT1zJiYobCs9dGhpcy5lbmNvZGVXaXRoT2Zmc2V0KGEsZSxyW3RdLG8rbikpfXJldHVybiBsfXJldHVybiByfWRlY29kZVBhcmFtKHQsZSl7cmV0dXJuIHRoaXMuZGVjb2RlUGFyYW1zKFt0XSxlKVswXX1kZWNvZGVQYXJhbXModCxlKXtsZXQgcj10aGlzLmdldFNvbGlkaXR5VHlwZXModCksbj10aGlzLmdldE9mZnNldHModCxyKTtyZXR1cm4gci5tYXAoZnVuY3Rpb24ocixvKXtyZXR1cm4gci5kZWNvZGUoZSxuW29dLHRbb10pfSl9Z2V0T2Zmc2V0cyh0LGUpe2xldCByPWUubWFwKGZ1bmN0aW9uKGUscil7cmV0dXJuIGUuc3RhdGljUGFydExlbmd0aCh0W3JdKX0pO2ZvcihsZXQgdD0xO3Q8ci5sZW5ndGg7dCsrKXJbdF0rPXJbdC0xXTtyZXR1cm4gci5tYXAoZnVuY3Rpb24ocixuKXtyZXR1cm4gci1lW25dLnN0YXRpY1BhcnRMZW5ndGgodFtuXSl9KX1nZXRTb2xpZGl0eVR5cGVzKHQpe3JldHVybiB0Lm1hcCh0PT50aGlzLl9yZXF1aXJlVHlwZSh0KSl9fWUuU29saWRpdHlDb2Rlcj1kLGUuY29kZXI9bmV3IGQoW25ldyBvLlNvbGlkaXR5VHlwZUFkZHJlc3MsbmV3IGkuU29saWRpdHlUeXBlQm9vbCxuZXcgcy5Tb2xpZGl0eVR5cGVJbnQsbmV3IGEuU29saWRpdHlUeXBlVUludCxuZXcgYy5Tb2xpZGl0eVR5cGVEeW5hbWljQnl0ZXMsbmV3IGYuU29saWRpdHlUeXBlQnl0ZXMsbmV3IHUuU29saWRpdHlUeXBlU3RyaW5nLG5ldyBsLlNvbGlkaXR5VHlwZVJlYWwsbmV3IGguU29saWRpdHlUeXBlVVJlYWxdKX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGUudG9SUEM9ZnVuY3Rpb24odCl7aWYodC5qc29ucnBjPVwiMi4wXCIsIXQuaWR8fFwibnVtYmVyXCIhPXR5cGVvZiB0LmlkfHxNYXRoLmZsb29yKHQuaWQpIT09dC5pZCl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUlBDIG1lc3NhZ2UoaW52YWxpZCBpZCkgbWVzc2FnZTogJHtKU09OLnN0cmluZ2lmeSh0KX1gKTtpZighdC5tZXRob2R8fFwic3RyaW5nXCIhPXR5cGVvZiB0Lm1ldGhvZHx8MD09PXQubWV0aG9kLnRyaW0oKS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFJQQyBtZXNzYWdlKGludmFsaWQgbWV0aG9kKSBtZXNzYWdlOiAke0pTT04uc3RyaW5naWZ5KHQpfWApO2lmKCF0LnBhcmFtc3x8XCJvYmplY3RcIiE9dHlwZW9mIHQucGFyYW1zKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSUEMgbWVzc2FnZShpbnZhbGlkIHBhcmFtcykgbWVzc2FnZTogJHtKU09OLnN0cmluZ2lmeSh0KX1gKTtyZXR1cm4gdH19LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjshZnVuY3Rpb24obyl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGkscz0vXi0/KD86XFxkKyg/OlxcLlxcZCopP3xcXC5cXGQrKSg/OmVbKy1dP1xcZCspPyQvaSxhPU1hdGguY2VpbCxjPU1hdGguZmxvb3IsdT1cIltCaWdOdW1iZXIgRXJyb3JdIFwiLGw9dStcIk51bWJlciBwcmltaXRpdmUgaGFzIG1vcmUgdGhhbiAxNSBzaWduaWZpY2FudCBkaWdpdHM6IFwiLGg9MWUxNCxmPTE0LHA9OTAwNzE5OTI1NDc0MDk5MSxkPVsxLDEwLDEwMCwxZTMsMWU0LDFlNSwxZTYsMWU3LDFlOCwxZTksMWUxMCwxZTExLDFlMTIsMWUxM10sbT0xZTcseT0xZTk7ZnVuY3Rpb24gZyh0KXt2YXIgZT0wfHQ7cmV0dXJuIHQ+MHx8dD09PWU/ZTplLTF9ZnVuY3Rpb24gXyh0KXtmb3IodmFyIGUscixuPTEsbz10Lmxlbmd0aCxpPXRbMF0rXCJcIjtuPG87KXtmb3IoZT10W24rK10rXCJcIixyPWYtZS5sZW5ndGg7ci0tO2U9XCIwXCIrZSk7aSs9ZX1mb3Iobz1pLmxlbmd0aDs0OD09PWkuY2hhckNvZGVBdCgtLW8pOyk7cmV0dXJuIGkuc2xpY2UoMCxvKzF8fDEpfWZ1bmN0aW9uIHYodCxlKXt2YXIgcixuLG89dC5jLGk9ZS5jLHM9dC5zLGE9ZS5zLGM9dC5lLHU9ZS5lO2lmKCFzfHwhYSlyZXR1cm4gbnVsbDtpZihyPW8mJiFvWzBdLG49aSYmIWlbMF0scnx8bilyZXR1cm4gcj9uPzA6LWE6cztpZihzIT1hKXJldHVybiBzO2lmKHI9czwwLG49Yz09dSwhb3x8IWkpcmV0dXJuIG4/MDohb15yPzE6LTE7aWYoIW4pcmV0dXJuIGM+dV5yPzE6LTE7Zm9yKGE9KGM9by5sZW5ndGgpPCh1PWkubGVuZ3RoKT9jOnUscz0wO3M8YTtzKyspaWYob1tzXSE9aVtzXSlyZXR1cm4gb1tzXT5pW3NdXnI/MTotMTtyZXR1cm4gYz09dT8wOmM+dV5yPzE6LTF9ZnVuY3Rpb24gdyh0LGUscixuKXtpZih0PGV8fHQ+cnx8dCE9PSh0PDA/YSh0KTpjKHQpKSl0aHJvdyBFcnJvcih1KyhufHxcIkFyZ3VtZW50XCIpKyhcIm51bWJlclwiPT10eXBlb2YgdD90PGV8fHQ+cj9cIiBvdXQgb2YgcmFuZ2U6IFwiOlwiIG5vdCBhbiBpbnRlZ2VyOiBcIjpcIiBub3QgYSBwcmltaXRpdmUgbnVtYmVyOiBcIikrdCl9ZnVuY3Rpb24gYih0KXtyZXR1cm5cIltvYmplY3QgQXJyYXldXCI9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBCKHQpe3ZhciBlPXQuYy5sZW5ndGgtMTtyZXR1cm4gZyh0LmUvZik9PWUmJnQuY1tlXSUyIT0wfWZ1bmN0aW9uIEYodCxlKXtyZXR1cm4odC5sZW5ndGg+MT90LmNoYXJBdCgwKStcIi5cIit0LnNsaWNlKDEpOnQpKyhlPDA/XCJlXCI6XCJlK1wiKStlfWZ1bmN0aW9uIE4odCxlLHIpe3ZhciBuLG87aWYoZTwwKXtmb3Iobz1yK1wiLlwiOysrZTtvKz1yKTt0PW8rdH1lbHNlIGlmKCsrZT4obj10Lmxlbmd0aCkpe2ZvcihvPXIsZS09bjstLWU7bys9cik7dCs9b31lbHNlIGU8biYmKHQ9dC5zbGljZSgwLGUpK1wiLlwiK3Quc2xpY2UoZSkpO3JldHVybiB0fShpPWZ1bmN0aW9uIHQoZSl7dmFyIHIsbixvLGksayx4LFMsQSxPLFQ9Vy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlcsdG9TdHJpbmc6bnVsbCx2YWx1ZU9mOm51bGx9LFA9bmV3IFcoMSksTT0yMCxDPTQsRT0tNyxEPTIxLFI9LTFlNyxJPTFlNyxIPSExLGo9MSxVPTAsTD17ZGVjaW1hbFNlcGFyYXRvcjpcIi5cIixncm91cFNlcGFyYXRvcjpcIixcIixncm91cFNpemU6MyxzZWNvbmRhcnlHcm91cFNpemU6MCxmcmFjdGlvbkdyb3VwU2VwYXJhdG9yOlwiwqBcIixmcmFjdGlvbkdyb3VwU2l6ZTowfSx6PVwiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6XCI7ZnVuY3Rpb24gVyh0LGUpe3ZhciByLGksYSx1LGgsZCxtLHk9dGhpcztpZighKHkgaW5zdGFuY2VvZiBXKSlyZXR1cm4gbmV3IFcodCxlKTtpZihudWxsPT1lKXtpZih0IGluc3RhbmNlb2YgVylyZXR1cm4geS5zPXQucyx5LmU9dC5lLHZvaWQoeS5jPSh0PXQuYyk/dC5zbGljZSgpOnQpO2lmKChoPVwibnVtYmVyXCI9PXR5cGVvZiB0KSYmMCp0PT0wKXtpZih5LnM9MS90PDA/KHQ9LXQsLTEpOjEsdD09PX5+dCl7Zm9yKGE9MCx1PXQ7dT49MTA7dS89MTAsYSsrKTtyZXR1cm4geS5lPWEsdm9pZCh5LmM9W3RdKX1tPXQrXCJcIn1lbHNle2lmKCFzLnRlc3QobT10K1wiXCIpKXJldHVybiBvKHksbSxoKTt5LnM9NDU9PW0uY2hhckNvZGVBdCgwKT8obT1tLnNsaWNlKDEpLC0xKToxfX1lbHNle2lmKHcoZSwyLHoubGVuZ3RoLFwiQmFzZVwiKSxtPXQrXCJcIiwxMD09ZSlyZXR1cm4gVih5PW5ldyBXKHQgaW5zdGFuY2VvZiBXP3Q6bSksTSt5LmUrMSxDKTtpZihoPVwibnVtYmVyXCI9PXR5cGVvZiB0KXtpZigwKnQhPTApcmV0dXJuIG8oeSxtLGgsZSk7aWYoeS5zPTEvdDwwPyhtPW0uc2xpY2UoMSksLTEpOjEsVy5ERUJVRyYmbS5yZXBsYWNlKC9eMFxcLjAqfFxcLi8sXCJcIikubGVuZ3RoPjE1KXRocm93IEVycm9yKGwrdCk7aD0hMX1lbHNlIHkucz00NT09PW0uY2hhckNvZGVBdCgwKT8obT1tLnNsaWNlKDEpLC0xKToxLGU+MTAmJmU8MzcmJihtPW0udG9Mb3dlckNhc2UoKSk7Zm9yKHI9ei5zbGljZSgwLGUpLGE9dT0wLGQ9bS5sZW5ndGg7dTxkO3UrKylpZihyLmluZGV4T2YoaT1tLmNoYXJBdCh1KSk8MCl7aWYoXCIuXCI9PWkmJnU+YSl7YT1kO2NvbnRpbnVlfXJldHVybiBvKHksdCtcIlwiLGgsZSl9bT1uKG0sZSwxMCx5LnMpfWZvcigoYT1tLmluZGV4T2YoXCIuXCIpKT4tMSYmKG09bS5yZXBsYWNlKFwiLlwiLFwiXCIpKSwodT1tLnNlYXJjaCgvZS9pKSk+MD8oYTwwJiYoYT11KSxhKz0rbS5zbGljZSh1KzEpLG09bS5zdWJzdHJpbmcoMCx1KSk6YTwwJiYoYT1tLmxlbmd0aCksdT0wOzQ4PT09bS5jaGFyQ29kZUF0KHUpO3UrKyk7Zm9yKGQ9bS5sZW5ndGg7NDg9PT1tLmNoYXJDb2RlQXQoLS1kKTspO2lmKG09bS5zbGljZSh1LCsrZCkpe2lmKGQtPXUsaCYmVy5ERUJVRyYmZD4xNSYmKHQ+cHx8dCE9PWModCkpKXRocm93IEVycm9yKGwreS5zKnQpO2lmKChhPWEtdS0xKT5JKXkuYz15LmU9bnVsbDtlbHNlIGlmKGE8Uil5LmM9W3kuZT0wXTtlbHNle2lmKHkuZT1hLHkuYz1bXSx1PShhKzEpJWYsYTwwJiYodSs9ZiksdTxkKXtmb3IodSYmeS5jLnB1c2goK20uc2xpY2UoMCx1KSksZC09Zjt1PGQ7KXkuYy5wdXNoKCttLnNsaWNlKHUsdSs9ZikpO209bS5zbGljZSh1KSx1PWYtbS5sZW5ndGh9ZWxzZSB1LT1kO2Zvcig7dS0tO20rPVwiMFwiKTt5LmMucHVzaCgrbSl9fWVsc2UgeS5jPVt5LmU9MF19ZnVuY3Rpb24gcSh0LGUscixuKXt2YXIgbyxpLHMsYSxjO2lmKG51bGw9PXI/cj1DOncociwwLDgpLCF0LmMpcmV0dXJuIHQudG9TdHJpbmcoKTtpZihvPXQuY1swXSxzPXQuZSxudWxsPT1lKWM9Xyh0LmMpLGM9MT09bnx8Mj09biYmczw9RT9GKGMscyk6TihjLHMsXCIwXCIpO2Vsc2UgaWYoaT0odD1WKG5ldyBXKHQpLGUscikpLmUsYT0oYz1fKHQuYykpLmxlbmd0aCwxPT1ufHwyPT1uJiYoZTw9aXx8aTw9RSkpe2Zvcig7YTxlO2MrPVwiMFwiLGErKyk7Yz1GKGMsaSl9ZWxzZSBpZihlLT1zLGM9TihjLGksXCIwXCIpLGkrMT5hKXtpZigtLWU+MClmb3IoYys9XCIuXCI7ZS0tO2MrPVwiMFwiKTt9ZWxzZSBpZigoZSs9aS1hKT4wKWZvcihpKzE9PWEmJihjKz1cIi5cIik7ZS0tO2MrPVwiMFwiKTtyZXR1cm4gdC5zPDAmJm8/XCItXCIrYzpjfWZ1bmN0aW9uICQodCxlKXt2YXIgcixuLG89MDtmb3IoYih0WzBdKSYmKHQ9dFswXSkscj1uZXcgVyh0WzBdKTsrK288dC5sZW5ndGg7KXtpZighKG49bmV3IFcodFtvXSkpLnMpe3I9bjticmVha31lLmNhbGwocixuKSYmKHI9bil9cmV0dXJuIHJ9ZnVuY3Rpb24gRyh0LGUscil7Zm9yKHZhciBuPTEsbz1lLmxlbmd0aDshZVstLW9dO2UucG9wKCkpO2ZvcihvPWVbMF07bz49MTA7by89MTAsbisrKTtyZXR1cm4ocj1uK3IqZi0xKT5JP3QuYz10LmU9bnVsbDpyPFI/dC5jPVt0LmU9MF06KHQuZT1yLHQuYz1lKSx0fWZ1bmN0aW9uIFYodCxlLHIsbil7dmFyIG8saSxzLHUsbCxwLG0seT10LmMsZz1kO2lmKHkpe3Q6e2ZvcihvPTEsdT15WzBdO3U+PTEwO3UvPTEwLG8rKyk7aWYoKGk9ZS1vKTwwKWkrPWYscz1lLG09KGw9eVtwPTBdKS9nW28tcy0xXSUxMHwwO2Vsc2UgaWYoKHA9YSgoaSsxKS9mKSk+PXkubGVuZ3RoKXtpZighbilicmVhayB0O2Zvcig7eS5sZW5ndGg8PXA7eS5wdXNoKDApKTtsPW09MCxvPTEscz0oaSU9ZiktZisxfWVsc2V7Zm9yKGw9dT15W3BdLG89MTt1Pj0xMDt1Lz0xMCxvKyspO209KHM9KGklPWYpLWYrbyk8MD8wOmwvZ1tvLXMtMV0lMTB8MH1pZihuPW58fGU8MHx8bnVsbCE9eVtwKzFdfHwoczwwP2w6bCVnW28tcy0xXSksbj1yPDQ/KG18fG4pJiYoMD09cnx8cj09KHQuczwwPzM6MikpOm0+NXx8NT09bSYmKDQ9PXJ8fG58fDY9PXImJihpPjA/cz4wP2wvZ1tvLXNdOjA6eVtwLTFdKSUxMCYxfHxyPT0odC5zPDA/ODo3KSksZTwxfHwheVswXSlyZXR1cm4geS5sZW5ndGg9MCxuPyhlLT10LmUrMSx5WzBdPWdbKGYtZSVmKSVmXSx0LmU9LWV8fDApOnlbMF09dC5lPTAsdDtpZigwPT1pPyh5Lmxlbmd0aD1wLHU9MSxwLS0pOih5Lmxlbmd0aD1wKzEsdT1nW2YtaV0seVtwXT1zPjA/YyhsL2dbby1zXSVnW3NdKSp1OjApLG4pZm9yKDs7KXtpZigwPT1wKXtmb3IoaT0xLHM9eVswXTtzPj0xMDtzLz0xMCxpKyspO2ZvcihzPXlbMF0rPXUsdT0xO3M+PTEwO3MvPTEwLHUrKyk7aSE9dSYmKHQuZSsrLHlbMF09PWgmJih5WzBdPTEpKTticmVha31pZih5W3BdKz11LHlbcF0hPWgpYnJlYWs7eVtwLS1dPTAsdT0xfWZvcihpPXkubGVuZ3RoOzA9PT15Wy0taV07eS5wb3AoKSk7fXQuZT5JP3QuYz10LmU9bnVsbDp0LmU8UiYmKHQuYz1bdC5lPTBdKX1yZXR1cm4gdH1yZXR1cm4gVy5jbG9uZT10LFcuUk9VTkRfVVA9MCxXLlJPVU5EX0RPV049MSxXLlJPVU5EX0NFSUw9MixXLlJPVU5EX0ZMT09SPTMsVy5ST1VORF9IQUxGX1VQPTQsVy5ST1VORF9IQUxGX0RPV049NSxXLlJPVU5EX0hBTEZfRVZFTj02LFcuUk9VTkRfSEFMRl9DRUlMPTcsVy5ST1VORF9IQUxGX0ZMT09SPTgsVy5FVUNMSUQ9OSxXLmNvbmZpZz1XLnNldD1mdW5jdGlvbih0KXt2YXIgZSxyO2lmKG51bGwhPXQpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiB0KXRocm93IEVycm9yKHUrXCJPYmplY3QgZXhwZWN0ZWQ6IFwiK3QpO2lmKHQuaGFzT3duUHJvcGVydHkoZT1cIkRFQ0lNQUxfUExBQ0VTXCIpJiYodyhyPXRbZV0sMCx5LGUpLE09ciksdC5oYXNPd25Qcm9wZXJ0eShlPVwiUk9VTkRJTkdfTU9ERVwiKSYmKHcocj10W2VdLDAsOCxlKSxDPXIpLHQuaGFzT3duUHJvcGVydHkoZT1cIkVYUE9ORU5USUFMX0FUXCIpJiYoYihyPXRbZV0pPyh3KHJbMF0sLXksMCxlKSx3KHJbMV0sMCx5LGUpLEU9clswXSxEPXJbMV0pOih3KHIsLXkseSxlKSxFPS0oRD1yPDA/LXI6cikpKSx0Lmhhc093blByb3BlcnR5KGU9XCJSQU5HRVwiKSlpZihiKHI9dFtlXSkpdyhyWzBdLC15LC0xLGUpLHcoclsxXSwxLHksZSksUj1yWzBdLEk9clsxXTtlbHNle2lmKHcociwteSx5LGUpLCFyKXRocm93IEVycm9yKHUrZStcIiBjYW5ub3QgYmUgemVybzogXCIrcik7Uj0tKEk9cjwwPy1yOnIpfWlmKHQuaGFzT3duUHJvcGVydHkoZT1cIkNSWVBUT1wiKSl7aWYoKHI9dFtlXSkhPT0hIXIpdGhyb3cgRXJyb3IodStlK1wiIG5vdCB0cnVlIG9yIGZhbHNlOiBcIityKTtpZihyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgY3J5cHRvfHwhY3J5cHRvfHwhY3J5cHRvLmdldFJhbmRvbVZhbHVlcyYmIWNyeXB0by5yYW5kb21CeXRlcyl0aHJvdyBIPSFyLEVycm9yKHUrXCJjcnlwdG8gdW5hdmFpbGFibGVcIik7SD1yfWVsc2UgSD1yfWlmKHQuaGFzT3duUHJvcGVydHkoZT1cIk1PRFVMT19NT0RFXCIpJiYodyhyPXRbZV0sMCw5LGUpLGo9ciksdC5oYXNPd25Qcm9wZXJ0eShlPVwiUE9XX1BSRUNJU0lPTlwiKSYmKHcocj10W2VdLDAseSxlKSxVPXIpLHQuaGFzT3duUHJvcGVydHkoZT1cIkZPUk1BVFwiKSl7aWYoXCJvYmplY3RcIiE9dHlwZW9mKHI9dFtlXSkpdGhyb3cgRXJyb3IodStlK1wiIG5vdCBhbiBvYmplY3Q6IFwiK3IpO0w9cn1pZih0Lmhhc093blByb3BlcnR5KGU9XCJBTFBIQUJFVFwiKSl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mKHI9dFtlXSl8fC9eLiR8XFwufCguKS4qXFwxLy50ZXN0KHIpKXRocm93IEVycm9yKHUrZStcIiBpbnZhbGlkOiBcIityKTt6PXJ9fXJldHVybntERUNJTUFMX1BMQUNFUzpNLFJPVU5ESU5HX01PREU6QyxFWFBPTkVOVElBTF9BVDpbRSxEXSxSQU5HRTpbUixJXSxDUllQVE86SCxNT0RVTE9fTU9ERTpqLFBPV19QUkVDSVNJT046VSxGT1JNQVQ6TCxBTFBIQUJFVDp6fX0sVy5pc0JpZ051bWJlcj1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFd8fHQmJiEwPT09dC5faXNCaWdOdW1iZXJ8fCExfSxXLm1heGltdW09Vy5tYXg9ZnVuY3Rpb24oKXtyZXR1cm4gJChhcmd1bWVudHMsVC5sdCl9LFcubWluaW11bT1XLm1pbj1mdW5jdGlvbigpe3JldHVybiAkKGFyZ3VtZW50cyxULmd0KX0sVy5yYW5kb209KGk9OTAwNzE5OTI1NDc0MDk5MipNYXRoLnJhbmRvbSgpJjIwOTcxNTE/ZnVuY3Rpb24oKXtyZXR1cm4gYyg5MDA3MTk5MjU0NzQwOTkyKk1hdGgucmFuZG9tKCkpfTpmdW5jdGlvbigpe3JldHVybiA4Mzg4NjA4KigxMDczNzQxODI0Kk1hdGgucmFuZG9tKCl8MCkrKDgzODg2MDgqTWF0aC5yYW5kb20oKXwwKX0sZnVuY3Rpb24odCl7dmFyIGUscixuLG8scyxsPTAsaD1bXSxwPW5ldyBXKFApO2lmKG51bGw9PXQ/dD1NOncodCwwLHkpLG89YSh0L2YpLEgpaWYoY3J5cHRvLmdldFJhbmRvbVZhbHVlcyl7Zm9yKGU9Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkobyo9MikpO2w8bzspKHM9MTMxMDcyKmVbbF0rKGVbbCsxXT4+PjExKSk+PTllMTU/KHI9Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkoMikpLGVbbF09clswXSxlW2wrMV09clsxXSk6KGgucHVzaChzJTFlMTQpLGwrPTIpO2w9by8yfWVsc2V7aWYoIWNyeXB0by5yYW5kb21CeXRlcyl0aHJvdyBIPSExLEVycm9yKHUrXCJjcnlwdG8gdW5hdmFpbGFibGVcIik7Zm9yKGU9Y3J5cHRvLnJhbmRvbUJ5dGVzKG8qPTcpO2w8bzspKHM9MjgxNDc0OTc2NzEwNjU2KigzMSZlW2xdKSsxMDk5NTExNjI3Nzc2KmVbbCsxXSs0Mjk0OTY3Mjk2KmVbbCsyXSsxNjc3NzIxNiplW2wrM10rKGVbbCs0XTw8MTYpKyhlW2wrNV08PDgpK2VbbCs2XSk+PTllMTU/Y3J5cHRvLnJhbmRvbUJ5dGVzKDcpLmNvcHkoZSxsKTooaC5wdXNoKHMlMWUxNCksbCs9Nyk7bD1vLzd9aWYoIUgpZm9yKDtsPG87KShzPWkoKSk8OWUxNSYmKGhbbCsrXT1zJTFlMTQpO2ZvcihvPWhbLS1sXSx0JT1mLG8mJnQmJihzPWRbZi10XSxoW2xdPWMoby9zKSpzKTswPT09aFtsXTtoLnBvcCgpLGwtLSk7aWYobDwwKWg9W249MF07ZWxzZXtmb3Iobj0tMTswPT09aFswXTtoLnNwbGljZSgwLDEpLG4tPWYpO2ZvcihsPTEscz1oWzBdO3M+PTEwO3MvPTEwLGwrKyk7bDxmJiYobi09Zi1sKX1yZXR1cm4gcC5lPW4scC5jPWgscH0pLG49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxyLG4pe2Zvcih2YXIgbyxpLHM9WzBdLGE9MCxjPXQubGVuZ3RoO2E8Yzspe2ZvcihpPXMubGVuZ3RoO2ktLTtzW2ldKj1lKTtmb3Ioc1swXSs9bi5pbmRleE9mKHQuY2hhckF0KGErKykpLG89MDtvPHMubGVuZ3RoO28rKylzW29dPnItMSYmKG51bGw9PXNbbysxXSYmKHNbbysxXT0wKSxzW28rMV0rPXNbb10vcnwwLHNbb10lPXIpfXJldHVybiBzLnJldmVyc2UoKX1yZXR1cm4gZnVuY3Rpb24oZSxuLG8saSxzKXt2YXIgYSxjLHUsbCxoLGYscCxkLG09ZS5pbmRleE9mKFwiLlwiKSx5PU0sZz1DO2ZvcihtPj0wJiYobD1VLFU9MCxlPWUucmVwbGFjZShcIi5cIixcIlwiKSxmPShkPW5ldyBXKG4pKS5wb3coZS5sZW5ndGgtbSksVT1sLGQuYz10KE4oXyhmLmMpLGYuZSxcIjBcIiksMTAsbyxcIjAxMjM0NTY3ODlcIiksZC5lPWQuYy5sZW5ndGgpLHU9bD0ocD10KGUsbixvLHM/KGE9eixcIjAxMjM0NTY3ODlcIik6KGE9XCIwMTIzNDU2Nzg5XCIseikpKS5sZW5ndGg7MD09cFstLWxdO3AucG9wKCkpO2lmKCFwWzBdKXJldHVybiBhLmNoYXJBdCgwKTtpZihtPDA/LS11OihmLmM9cCxmLmU9dSxmLnM9aSxwPShmPXIoZixkLHksZyxvKSkuYyxoPWYucix1PWYuZSksbT1wW2M9dSt5KzFdLGw9by8yLGg9aHx8YzwwfHxudWxsIT1wW2MrMV0saD1nPDQ/KG51bGwhPW18fGgpJiYoMD09Z3x8Zz09KGYuczwwPzM6MikpOm0+bHx8bT09bCYmKDQ9PWd8fGh8fDY9PWcmJjEmcFtjLTFdfHxnPT0oZi5zPDA/ODo3KSksYzwxfHwhcFswXSllPWg/TihhLmNoYXJBdCgxKSwteSxhLmNoYXJBdCgwKSk6YS5jaGFyQXQoMCk7ZWxzZXtpZihwLmxlbmd0aD1jLGgpZm9yKC0tbzsrK3BbLS1jXT5vOylwW2NdPTAsY3x8KCsrdSxwPVsxXS5jb25jYXQocCkpO2ZvcihsPXAubGVuZ3RoOyFwWy0tbF07KTtmb3IobT0wLGU9XCJcIjttPD1sO2UrPWEuY2hhckF0KHBbbSsrXSkpO2U9TihlLHUsYS5jaGFyQXQoMCkpfXJldHVybiBlfX0oKSxyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUscil7dmFyIG4sbyxpLHMsYT0wLGM9dC5sZW5ndGgsdT1lJW0sbD1lL218MDtmb3IodD10LnNsaWNlKCk7Yy0tOylhPSgobz11KihpPXRbY10lbSkrKG49bCppKyhzPXRbY10vbXwwKSp1KSVtKm0rYSkvcnwwKSsobi9tfDApK2wqcyx0W2NdPW8lcjtyZXR1cm4gYSYmKHQ9W2FdLmNvbmNhdCh0KSksdH1mdW5jdGlvbiBlKHQsZSxyLG4pe3ZhciBvLGk7aWYociE9bilpPXI+bj8xOi0xO2Vsc2UgZm9yKG89aT0wO288cjtvKyspaWYodFtvXSE9ZVtvXSl7aT10W29dPmVbb10/MTotMTticmVha31yZXR1cm4gaX1mdW5jdGlvbiByKHQsZSxyLG4pe2Zvcih2YXIgbz0wO3ItLTspdFtyXS09byxvPXRbcl08ZVtyXT8xOjAsdFtyXT1vKm4rdFtyXS1lW3JdO2Zvcig7IXRbMF0mJnQubGVuZ3RoPjE7dC5zcGxpY2UoMCwxKSk7fXJldHVybiBmdW5jdGlvbihuLG8saSxzLGEpe3ZhciB1LGwscCxkLG0seSxfLHYsdyxiLEIsRixOLGsseCxTLEEsTz1uLnM9PW8ucz8xOi0xLFQ9bi5jLFA9by5jO2lmKCEoVCYmVFswXSYmUCYmUFswXSkpcmV0dXJuIG5ldyBXKG4ucyYmby5zJiYoVD8hUHx8VFswXSE9UFswXTpQKT9UJiYwPT1UWzBdfHwhUD8wKk86Ty8wOk5hTik7Zm9yKHc9KHY9bmV3IFcoTykpLmM9W10sTz1pKyhsPW4uZS1vLmUpKzEsYXx8KGE9aCxsPWcobi5lL2YpLWcoby5lL2YpLE89Ty9mfDApLHA9MDtQW3BdPT0oVFtwXXx8MCk7cCsrKTtpZihQW3BdPihUW3BdfHwwKSYmbC0tLE88MCl3LnB1c2goMSksZD0hMDtlbHNle2ZvcihrPVQubGVuZ3RoLFM9UC5sZW5ndGgscD0wLE8rPTIsKG09YyhhLyhQWzBdKzEpKSk+MSYmKFA9dChQLG0sYSksVD10KFQsbSxhKSxTPVAubGVuZ3RoLGs9VC5sZW5ndGgpLE49UyxCPShiPVQuc2xpY2UoMCxTKSkubGVuZ3RoO0I8UztiW0IrK109MCk7QT1QLnNsaWNlKCksQT1bMF0uY29uY2F0KEEpLHg9UFswXSxQWzFdPj1hLzImJngrKztkb3tpZihtPTAsKHU9ZShQLGIsUyxCKSk8MCl7aWYoRj1iWzBdLFMhPUImJihGPUYqYSsoYlsxXXx8MCkpLChtPWMoRi94KSk+MSlmb3IobT49YSYmKG09YS0xKSxfPSh5PXQoUCxtLGEpKS5sZW5ndGgsQj1iLmxlbmd0aDsxPT1lKHksYixfLEIpOyltLS0scih5LFM8Xz9BOlAsXyxhKSxfPXkubGVuZ3RoLHU9MTtlbHNlIDA9PW0mJih1PW09MSksXz0oeT1QLnNsaWNlKCkpLmxlbmd0aDtpZihfPEImJih5PVswXS5jb25jYXQoeSkpLHIoYix5LEIsYSksQj1iLmxlbmd0aCwtMT09dSlmb3IoO2UoUCxiLFMsQik8MTspbSsrLHIoYixTPEI/QTpQLEIsYSksQj1iLmxlbmd0aH1lbHNlIDA9PT11JiYobSsrLGI9WzBdKTt3W3ArK109bSxiWzBdP2JbQisrXT1UW05dfHwwOihiPVtUW05dXSxCPTEpfXdoaWxlKChOKys8a3x8bnVsbCE9YlswXSkmJk8tLSk7ZD1udWxsIT1iWzBdLHdbMF18fHcuc3BsaWNlKDAsMSl9aWYoYT09aCl7Zm9yKHA9MSxPPXdbMF07Tz49MTA7Ty89MTAscCsrKTtWKHYsaSsodi5lPXArbCpmLTEpKzEscyxkKX1lbHNlIHYuZT1sLHYucj0rZDtyZXR1cm4gdn19KCksaz0vXigtPykwKFt4Ym9dKSg/PVxcd1tcXHcuXSokKS9pLHg9L14oW14uXSspXFwuJC8sUz0vXlxcLihbXi5dKykkLyxBPS9eLT8oSW5maW5pdHl8TmFOKSQvLE89L15cXHMqXFwrKD89W1xcdy5dKXxeXFxzK3xcXHMrJC9nLG89ZnVuY3Rpb24odCxlLHIsbil7dmFyIG8saT1yP2U6ZS5yZXBsYWNlKE8sXCJcIik7aWYoQS50ZXN0KGkpKXQucz1pc05hTihpKT9udWxsOmk8MD8tMToxLHQuYz10LmU9bnVsbDtlbHNle2lmKCFyJiYoaT1pLnJlcGxhY2UoayxmdW5jdGlvbih0LGUscil7cmV0dXJuIG89XCJ4XCI9PShyPXIudG9Mb3dlckNhc2UoKSk/MTY6XCJiXCI9PXI/Mjo4LG4mJm4hPW8/dDplfSksbiYmKG89bixpPWkucmVwbGFjZSh4LFwiJDFcIikucmVwbGFjZShTLFwiMC4kMVwiKSksZSE9aSkpcmV0dXJuIG5ldyBXKGksbyk7aWYoVy5ERUJVRyl0aHJvdyBFcnJvcih1K1wiTm90IGFcIisobj9cIiBiYXNlIFwiK246XCJcIikrXCIgbnVtYmVyOiBcIitlKTt0LmM9dC5lPXQucz1udWxsfX0sVC5hYnNvbHV0ZVZhbHVlPVQuYWJzPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFcodGhpcyk7cmV0dXJuIHQuczwwJiYodC5zPTEpLHR9LFQuY29tcGFyZWRUbz1mdW5jdGlvbih0LGUpe3JldHVybiB2KHRoaXMsbmV3IFcodCxlKSl9LFQuZGVjaW1hbFBsYWNlcz1ULmRwPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixvLGk9dGhpcztpZihudWxsIT10KXJldHVybiB3KHQsMCx5KSxudWxsPT1lP2U9Qzp3KGUsMCw4KSxWKG5ldyBXKGkpLHQraS5lKzEsZSk7aWYoIShyPWkuYykpcmV0dXJuIG51bGw7aWYobj0oKG89ci5sZW5ndGgtMSktZyh0aGlzLmUvZikpKmYsbz1yW29dKWZvcig7byUxMD09MDtvLz0xMCxuLS0pO3JldHVybiBuPDAmJihuPTApLG59LFQuZGl2aWRlZEJ5PVQuZGl2PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodGhpcyxuZXcgVyh0LGUpLE0sQyl9LFQuZGl2aWRlZFRvSW50ZWdlckJ5PVQuaWRpdj1mdW5jdGlvbih0LGUpe3JldHVybiByKHRoaXMsbmV3IFcodCxlKSwwLDEpfSxULmV4cG9uZW50aWF0ZWRCeT1ULnBvdz1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpLHMsbCxoLHA9dGhpcztpZigodD1uZXcgVyh0KSkuYyYmIXQuaXNJbnRlZ2VyKCkpdGhyb3cgRXJyb3IodStcIkV4cG9uZW50IG5vdCBhbiBpbnRlZ2VyOiBcIit0KTtpZihudWxsIT1lJiYoZT1uZXcgVyhlKSksaT10LmU+MTQsIXAuY3x8IXAuY1swXXx8MT09cC5jWzBdJiYhcC5lJiYxPT1wLmMubGVuZ3RofHwhdC5jfHwhdC5jWzBdKXJldHVybiBoPW5ldyBXKE1hdGgucG93KCtwLnZhbHVlT2YoKSxpPzItQih0KTordCkpLGU/aC5tb2QoZSk6aDtpZihzPXQuczwwLGUpe2lmKGUuYz8hZS5jWzBdOiFlLnMpcmV0dXJuIG5ldyBXKE5hTik7KG49IXMmJnAuaXNJbnRlZ2VyKCkmJmUuaXNJbnRlZ2VyKCkpJiYocD1wLm1vZChlKSl9ZWxzZXtpZih0LmU+OSYmKHAuZT4wfHxwLmU8LTF8fCgwPT1wLmU/cC5jWzBdPjF8fGkmJnAuY1sxXT49MjRlNzpwLmNbMF08OGUxM3x8aSYmcC5jWzBdPD05OTk5OTc1ZTcpKSlyZXR1cm4gbz1wLnM8MCYmQih0KT8tMDowLHAuZT4tMSYmKG89MS9vKSxuZXcgVyhzPzEvbzpvKTtVJiYobz1hKFUvZisyKSl9Zm9yKGk/KHI9bmV3IFcoLjUpLGw9Qih0KSk6bD10JTIscyYmKHQucz0xKSxoPW5ldyBXKFApOzspe2lmKGwpe2lmKCEoaD1oLnRpbWVzKHApKS5jKWJyZWFrO28/aC5jLmxlbmd0aD5vJiYoaC5jLmxlbmd0aD1vKTpuJiYoaD1oLm1vZChlKSl9aWYoaSl7aWYoVih0PXQudGltZXMociksdC5lKzEsMSksIXQuY1swXSlicmVhaztpPXQuZT4xNCxsPUIodCl9ZWxzZXtpZighKHQ9Yyh0LzIpKSlicmVhaztsPXQlMn1wPXAudGltZXMocCksbz9wLmMmJnAuYy5sZW5ndGg+byYmKHAuYy5sZW5ndGg9byk6biYmKHA9cC5tb2QoZSkpfXJldHVybiBuP2g6KHMmJihoPVAuZGl2KGgpKSxlP2gubW9kKGUpOm8/VihoLFUsQyx2b2lkIDApOmgpfSxULmludGVnZXJWYWx1ZT1mdW5jdGlvbih0KXt2YXIgZT1uZXcgVyh0aGlzKTtyZXR1cm4gbnVsbD09dD90PUM6dyh0LDAsOCksVihlLGUuZSsxLHQpfSxULmlzRXF1YWxUbz1ULmVxPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIDA9PT12KHRoaXMsbmV3IFcodCxlKSl9LFQuaXNGaW5pdGU9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuY30sVC5pc0dyZWF0ZXJUaGFuPVQuZ3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdih0aGlzLG5ldyBXKHQsZSkpPjB9LFQuaXNHcmVhdGVyVGhhbk9yRXF1YWxUbz1ULmd0ZT1mdW5jdGlvbih0LGUpe3JldHVybiAxPT09KGU9dih0aGlzLG5ldyBXKHQsZSkpKXx8MD09PWV9LFQuaXNJbnRlZ2VyPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmMmJmcodGhpcy5lL2YpPnRoaXMuYy5sZW5ndGgtMn0sVC5pc0xlc3NUaGFuPVQubHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdih0aGlzLG5ldyBXKHQsZSkpPDB9LFQuaXNMZXNzVGhhbk9yRXF1YWxUbz1ULmx0ZT1mdW5jdGlvbih0LGUpe3JldHVybi0xPT09KGU9dih0aGlzLG5ldyBXKHQsZSkpKXx8MD09PWV9LFQuaXNOYU49ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zfSxULmlzTmVnYXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zPDB9LFQuaXNQb3NpdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnM+MH0sVC5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYyYmMD09dGhpcy5jWzBdfSxULm1pbnVzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixvLGkscz10aGlzLGE9cy5zO2lmKGU9KHQ9bmV3IFcodCxlKSkucywhYXx8IWUpcmV0dXJuIG5ldyBXKE5hTik7aWYoYSE9ZSlyZXR1cm4gdC5zPS1lLHMucGx1cyh0KTt2YXIgYz1zLmUvZix1PXQuZS9mLGw9cy5jLHA9dC5jO2lmKCFjfHwhdSl7aWYoIWx8fCFwKXJldHVybiBsPyh0LnM9LWUsdCk6bmV3IFcocD9zOk5hTik7aWYoIWxbMF18fCFwWzBdKXJldHVybiBwWzBdPyh0LnM9LWUsdCk6bmV3IFcobFswXT9zOjM9PUM/LTA6MCl9aWYoYz1nKGMpLHU9Zyh1KSxsPWwuc2xpY2UoKSxhPWMtdSl7Zm9yKChpPWE8MCk/KGE9LWEsbz1sKToodT1jLG89cCksby5yZXZlcnNlKCksZT1hO2UtLTtvLnB1c2goMCkpO28ucmV2ZXJzZSgpfWVsc2UgZm9yKG49KGk9KGE9bC5sZW5ndGgpPChlPXAubGVuZ3RoKSk/YTplLGE9ZT0wO2U8bjtlKyspaWYobFtlXSE9cFtlXSl7aT1sW2VdPHBbZV07YnJlYWt9aWYoaSYmKG89bCxsPXAscD1vLHQucz0tdC5zKSwoZT0obj1wLmxlbmd0aCktKHI9bC5sZW5ndGgpKT4wKWZvcig7ZS0tO2xbcisrXT0wKTtmb3IoZT1oLTE7bj5hOyl7aWYobFstLW5dPHBbbl0pe2ZvcihyPW47ciYmIWxbLS1yXTtsW3JdPWUpOy0tbFtyXSxsW25dKz1ofWxbbl0tPXBbbl19Zm9yKDswPT1sWzBdO2wuc3BsaWNlKDAsMSksLS11KTtyZXR1cm4gbFswXT9HKHQsbCx1KToodC5zPTM9PUM/LTE6MSx0LmM9W3QuZT0wXSx0KX0sVC5tb2R1bG89VC5tb2Q9ZnVuY3Rpb24odCxlKXt2YXIgbixvLGk9dGhpcztyZXR1cm4gdD1uZXcgVyh0LGUpLCFpLmN8fCF0LnN8fHQuYyYmIXQuY1swXT9uZXcgVyhOYU4pOiF0LmN8fGkuYyYmIWkuY1swXT9uZXcgVyhpKTooOT09aj8obz10LnMsdC5zPTEsbj1yKGksdCwwLDMpLHQucz1vLG4ucyo9byk6bj1yKGksdCwwLGopLCh0PWkubWludXMobi50aW1lcyh0KSkpLmNbMF18fDEhPWp8fCh0LnM9aS5zKSx0KX0sVC5tdWx0aXBsaWVkQnk9VC50aW1lcz1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpLHMsYSxjLHUsbCxwLGQseSxfLHYsdyxiPXRoaXMsQj1iLmMsRj0odD1uZXcgVyh0LGUpKS5jO2lmKCEoQiYmRiYmQlswXSYmRlswXSkpcmV0dXJuIWIuc3x8IXQuc3x8QiYmIUJbMF0mJiFGfHxGJiYhRlswXSYmIUI/dC5jPXQuZT10LnM9bnVsbDoodC5zKj1iLnMsQiYmRj8odC5jPVswXSx0LmU9MCk6dC5jPXQuZT1udWxsKSx0O2ZvcihuPWcoYi5lL2YpK2codC5lL2YpLHQucyo9Yi5zLChjPUIubGVuZ3RoKTwocD1GLmxlbmd0aCkmJihfPUIsQj1GLEY9XyxvPWMsYz1wLHA9byksbz1jK3AsXz1bXTtvLS07Xy5wdXNoKDApKTtmb3Iodj1oLHc9bSxvPXA7LS1vPj0wOyl7Zm9yKHI9MCxkPUZbb10ldyx5PUZbb10vd3wwLGk9bysocz1jKTtpPm87KXI9KCh1PWQqKHU9QlstLXNdJXcpKyhhPXkqdSsobD1CW3NdL3d8MCkqZCkldyp3K19baV0rcikvdnwwKSsoYS93fDApK3kqbCxfW2ktLV09dSV2O19baV09cn1yZXR1cm4gcj8rK246Xy5zcGxpY2UoMCwxKSxHKHQsXyxuKX0sVC5uZWdhdGVkPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFcodGhpcyk7cmV0dXJuIHQucz0tdC5zfHxudWxsLHR9LFQucGx1cz1mdW5jdGlvbih0LGUpe3ZhciByLG49dGhpcyxvPW4ucztpZihlPSh0PW5ldyBXKHQsZSkpLnMsIW98fCFlKXJldHVybiBuZXcgVyhOYU4pO2lmKG8hPWUpcmV0dXJuIHQucz0tZSxuLm1pbnVzKHQpO3ZhciBpPW4uZS9mLHM9dC5lL2YsYT1uLmMsYz10LmM7aWYoIWl8fCFzKXtpZighYXx8IWMpcmV0dXJuIG5ldyBXKG8vMCk7aWYoIWFbMF18fCFjWzBdKXJldHVybiBjWzBdP3Q6bmV3IFcoYVswXT9uOjAqbyl9aWYoaT1nKGkpLHM9ZyhzKSxhPWEuc2xpY2UoKSxvPWktcyl7Zm9yKG8+MD8ocz1pLHI9Yyk6KG89LW8scj1hKSxyLnJldmVyc2UoKTtvLS07ci5wdXNoKDApKTtyLnJldmVyc2UoKX1mb3IoKG89YS5sZW5ndGgpLShlPWMubGVuZ3RoKTwwJiYocj1jLGM9YSxhPXIsZT1vKSxvPTA7ZTspbz0oYVstLWVdPWFbZV0rY1tlXStvKS9ofDAsYVtlXT1oPT09YVtlXT8wOmFbZV0laDtyZXR1cm4gbyYmKGE9W29dLmNvbmNhdChhKSwrK3MpLEcodCxhLHMpfSxULnByZWNpc2lvbj1ULnNkPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixvLGk9dGhpcztpZihudWxsIT10JiZ0IT09ISF0KXJldHVybiB3KHQsMSx5KSxudWxsPT1lP2U9Qzp3KGUsMCw4KSxWKG5ldyBXKGkpLHQsZSk7aWYoIShyPWkuYykpcmV0dXJuIG51bGw7aWYobj0obz1yLmxlbmd0aC0xKSpmKzEsbz1yW29dKXtmb3IoO28lMTA9PTA7by89MTAsbi0tKTtmb3Iobz1yWzBdO28+PTEwO28vPTEwLG4rKyk7fXJldHVybiB0JiZpLmUrMT5uJiYobj1pLmUrMSksbn0sVC5zaGlmdGVkQnk9ZnVuY3Rpb24odCl7cmV0dXJuIHcodCwtcCxwKSx0aGlzLnRpbWVzKFwiMWVcIit0KX0sVC5zcXVhcmVSb290PVQuc3FydD1mdW5jdGlvbigpe3ZhciB0LGUsbixvLGkscz10aGlzLGE9cy5jLGM9cy5zLHU9cy5lLGw9TSs0LGg9bmV3IFcoXCIwLjVcIik7aWYoMSE9PWN8fCFhfHwhYVswXSlyZXR1cm4gbmV3IFcoIWN8fGM8MCYmKCFhfHxhWzBdKT9OYU46YT9zOjEvMCk7aWYoMD09KGM9TWF0aC5zcXJ0KCtzKSl8fGM9PTEvMD8oKChlPV8oYSkpLmxlbmd0aCt1KSUyPT0wJiYoZSs9XCIwXCIpLGM9TWF0aC5zcXJ0KGUpLHU9ZygodSsxKS8yKS0odTwwfHx1JTIpLG49bmV3IFcoZT1jPT0xLzA/XCIxZVwiK3U6KGU9Yy50b0V4cG9uZW50aWFsKCkpLnNsaWNlKDAsZS5pbmRleE9mKFwiZVwiKSsxKSt1KSk6bj1uZXcgVyhjK1wiXCIpLG4uY1swXSlmb3IoKGM9KHU9bi5lKStsKTwzJiYoYz0wKTs7KWlmKGk9bixuPWgudGltZXMoaS5wbHVzKHIocyxpLGwsMSkpKSxfKGkuYykuc2xpY2UoMCxjKT09PShlPV8obi5jKSkuc2xpY2UoMCxjKSl7aWYobi5lPHUmJi0tYyxcIjk5OTlcIiE9KGU9ZS5zbGljZShjLTMsYysxKSkmJihvfHxcIjQ5OTlcIiE9ZSkpeytlJiYoK2Uuc2xpY2UoMSl8fFwiNVwiIT1lLmNoYXJBdCgwKSl8fChWKG4sbi5lK00rMiwxKSx0PSFuLnRpbWVzKG4pLmVxKHMpKTticmVha31pZighbyYmKFYoaSxpLmUrTSsyLDApLGkudGltZXMoaSkuZXEocykpKXtuPWk7YnJlYWt9bCs9NCxjKz00LG89MX1yZXR1cm4gVihuLG4uZStNKzEsQyx0KX0sVC50b0V4cG9uZW50aWFsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGwhPXQmJih3KHQsMCx5KSx0KyspLHEodGhpcyx0LGUsMSl9LFQudG9GaXhlZD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsIT10JiYodyh0LDAseSksdD10K3RoaXMuZSsxKSxxKHRoaXMsdCxlKX0sVC50b0Zvcm1hdD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMudG9GaXhlZCh0LGUpO2lmKHRoaXMuYyl7dmFyIG4sbz1yLnNwbGl0KFwiLlwiKSxpPStMLmdyb3VwU2l6ZSxzPStMLnNlY29uZGFyeUdyb3VwU2l6ZSxhPUwuZ3JvdXBTZXBhcmF0b3IsYz1vWzBdLHU9b1sxXSxsPXRoaXMuczwwLGg9bD9jLnNsaWNlKDEpOmMsZj1oLmxlbmd0aDtpZihzJiYobj1pLGk9cyxzPW4sZi09biksaT4wJiZmPjApe2ZvcihuPWYlaXx8aSxjPWguc3Vic3RyKDAsbik7bjxmO24rPWkpYys9YStoLnN1YnN0cihuLGkpO3M+MCYmKGMrPWEraC5zbGljZShuKSksbCYmKGM9XCItXCIrYyl9cj11P2MrTC5kZWNpbWFsU2VwYXJhdG9yKygocz0rTC5mcmFjdGlvbkdyb3VwU2l6ZSk/dS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcZHtcIitzK1wifVxcXFxCXCIsXCJnXCIpLFwiJCZcIitMLmZyYWN0aW9uR3JvdXBTZXBhcmF0b3IpOnUpOmN9cmV0dXJuIHJ9LFQudG9GcmFjdGlvbj1mdW5jdGlvbih0KXt2YXIgZSxuLG8saSxzLGEsYyxsLGgscCxtLHksZz10aGlzLHY9Zy5jO2lmKG51bGwhPXQmJighKGw9bmV3IFcodCkpLmlzSW50ZWdlcigpJiYobC5jfHwxIT09bC5zKXx8bC5sdChQKSkpdGhyb3cgRXJyb3IodStcIkFyZ3VtZW50IFwiKyhsLmlzSW50ZWdlcigpP1wib3V0IG9mIHJhbmdlOiBcIjpcIm5vdCBhbiBpbnRlZ2VyOiBcIikrdCk7aWYoIXYpcmV0dXJuIGcudG9TdHJpbmcoKTtmb3Iobj1uZXcgVyhQKSxwPW89bmV3IFcoUCksaT1oPW5ldyBXKFApLHk9Xyh2KSxhPW4uZT15Lmxlbmd0aC1nLmUtMSxuLmNbMF09ZFsoYz1hJWYpPDA/ZitjOmNdLHQ9IXR8fGwuY29tcGFyZWRUbyhuKT4wP2E+MD9uOnA6bCxjPUksST0xLzAsbD1uZXcgVyh5KSxoLmNbMF09MDttPXIobCxuLDAsMSksMSE9KHM9by5wbHVzKG0udGltZXMoaSkpKS5jb21wYXJlZFRvKHQpOylvPWksaT1zLHA9aC5wbHVzKG0udGltZXMocz1wKSksaD1zLG49bC5taW51cyhtLnRpbWVzKHM9bikpLGw9cztyZXR1cm4gcz1yKHQubWludXMobyksaSwwLDEpLGg9aC5wbHVzKHMudGltZXMocCkpLG89by5wbHVzKHMudGltZXMoaSkpLGgucz1wLnM9Zy5zLGU9cihwLGksYSo9MixDKS5taW51cyhnKS5hYnMoKS5jb21wYXJlZFRvKHIoaCxvLGEsQykubWludXMoZykuYWJzKCkpPDE/W3AudG9TdHJpbmcoKSxpLnRvU3RyaW5nKCldOltoLnRvU3RyaW5nKCksby50b1N0cmluZygpXSxJPWMsZX0sVC50b051bWJlcj1mdW5jdGlvbigpe3JldHVybit0aGlzfSxULnRvUHJlY2lzaW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGwhPXQmJncodCwxLHkpLHEodGhpcyx0LGUsMil9LFQudG9TdHJpbmc9ZnVuY3Rpb24odCl7dmFyIGUscj10aGlzLG89ci5zLGk9ci5lO3JldHVybiBudWxsPT09aT9vPyhlPVwiSW5maW5pdHlcIixvPDAmJihlPVwiLVwiK2UpKTplPVwiTmFOXCI6KGU9XyhyLmMpLG51bGw9PXQ/ZT1pPD1FfHxpPj1EP0YoZSxpKTpOKGUsaSxcIjBcIik6KHcodCwyLHoubGVuZ3RoLFwiQmFzZVwiKSxlPW4oTihlLGksXCIwXCIpLDEwLHQsbywhMCkpLG88MCYmci5jWzBdJiYoZT1cIi1cIitlKSksZX0sVC52YWx1ZU9mPVQudG9KU09OPWZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLHI9ZS5lO3JldHVybiBudWxsPT09cj9lLnRvU3RyaW5nKCk6KHQ9XyhlLmMpLHQ9cjw9RXx8cj49RD9GKHQscik6Tih0LHIsXCIwXCIpLGUuczwwP1wiLVwiK3Q6dCl9LFQuX2lzQmlnTnVtYmVyPSEwLG51bGwhPWUmJlcuc2V0KGUpLFd9KCkpLmRlZmF1bHQ9aS5CaWdOdW1iZXI9aSx2b2lkIDA9PT0obj1mdW5jdGlvbigpe3JldHVybiBpfS5jYWxsKGUscixlLHQpKXx8KHQuZXhwb3J0cz1uKX0oKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLGZ1bmN0aW9uKHQpe3ZhciBlPW4scj1lLmxpYixvPXIuV29yZEFycmF5LGk9ci5IYXNoZXIscz1lLmFsZ28sYT1bXSxjPVtdOyFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7Zm9yKHZhciByPXQuc3FydChlKSxuPTI7bjw9cjtuKyspaWYoIShlJW4pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHIodCl7cmV0dXJuIDQyOTQ5NjcyOTYqKHQtKDB8dCkpfDB9Zm9yKHZhciBuPTIsbz0wO288NjQ7KWUobikmJihvPDgmJihhW29dPXIodC5wb3cobiwuNSkpKSxjW29dPXIodC5wb3cobiwxLzMpKSxvKyspLG4rK30oKTt2YXIgdT1bXSxsPXMuU0hBMjU2PWkuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG8uaW5pdChhLnNsaWNlKDApKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX2hhc2gud29yZHMsbj1yWzBdLG89clsxXSxpPXJbMl0scz1yWzNdLGE9cls0XSxsPXJbNV0saD1yWzZdLGY9cls3XSxwPTA7cDw2NDtwKyspe2lmKHA8MTYpdVtwXT0wfHRbZStwXTtlbHNle3ZhciBkPXVbcC0xNV0sbT0oZDw8MjV8ZD4+PjcpXihkPDwxNHxkPj4+MTgpXmQ+Pj4zLHk9dVtwLTJdLGc9KHk8PDE1fHk+Pj4xNyleKHk8PDEzfHk+Pj4xOSleeT4+PjEwO3VbcF09bSt1W3AtN10rZyt1W3AtMTZdfXZhciBfPW4mb15uJmlebyZpLHY9KG48PDMwfG4+Pj4yKV4objw8MTl8bj4+PjEzKV4objw8MTB8bj4+PjIyKSx3PWYrKChhPDwyNnxhPj4+NileKGE8PDIxfGE+Pj4xMSleKGE8PDd8YT4+PjI1KSkrKGEmbF5+YSZoKStjW3BdK3VbcF07Zj1oLGg9bCxsPWEsYT1zK3d8MCxzPWksaT1vLG89bixuPXcrKHYrXyl8MH1yWzBdPXJbMF0rbnwwLHJbMV09clsxXStvfDAsclsyXT1yWzJdK2l8MCxyWzNdPXJbM10rc3wwLHJbNF09cls0XSthfDAscls1XT1yWzVdK2x8MCxyWzZdPXJbNl0raHwwLHJbN109cls3XStmfDB9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZGF0YSxyPWUud29yZHMsbj04KnRoaXMuX25EYXRhQnl0ZXMsbz04KmUuc2lnQnl0ZXM7cmV0dXJuIHJbbz4+PjVdfD0xMjg8PDI0LW8lMzIsclsxNCsobys2ND4+Pjk8PDQpXT10LmZsb29yKG4vNDI5NDk2NzI5NiksclsxNSsobys2ND4+Pjk8PDQpXT1uLGUuc2lnQnl0ZXM9NCpyLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCksdGhpcy5faGFzaH0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1pLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7ZS5TSEEyNTY9aS5fY3JlYXRlSGVscGVyKGwpLGUuSG1hY1NIQTI1Nj1pLl9jcmVhdGVIbWFjSGVscGVyKGwpfShNYXRoKSxuLlNIQTI1Nil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDEwKSxmdW5jdGlvbigpe3ZhciB0PW4sZT10LmxpYi5IYXNoZXIscj10Lng2NCxvPXIuV29yZCxpPXIuV29yZEFycmF5LHM9dC5hbGdvO2Z1bmN0aW9uIGEoKXtyZXR1cm4gby5jcmVhdGUuYXBwbHkobyxhcmd1bWVudHMpfXZhciBjPVthKDExMTYzNTI0MDgsMzYwOTc2NzQ1OCksYSgxODk5NDQ3NDQxLDYwMjg5MTcyNSksYSgzMDQ5MzIzNDcxLDM5NjQ0ODQzOTkpLGEoMzkyMTAwOTU3MywyMTczMjk1NTQ4KSxhKDk2MTk4NzE2Myw0MDgxNjI4NDcyKSxhKDE1MDg5NzA5OTMsMzA1MzgzNDI2NSksYSgyNDUzNjM1NzQ4LDI5Mzc2NzE1NzkpLGEoMjg3MDc2MzIyMSwzNjY0NjA5NTYwKSxhKDM2MjQzODEwODAsMjczNDg4MzM5NCksYSgzMTA1OTg0MDEsMTE2NDk5NjU0MiksYSg2MDcyMjUyNzgsMTMyMzYxMDc2NCksYSgxNDI2ODgxOTg3LDM1OTAzMDQ5OTQpLGEoMTkyNTA3ODM4OCw0MDY4MTgyMzgzKSxhKDIxNjIwNzgyMDYsOTkxMzM2MTEzKSxhKDI2MTQ4ODgxMDMsNjMzODAzMzE3KSxhKDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCksYSgzODM1MzkwNDAxLDI2NjY2MTM0NTgpLGEoNDAyMjIyNDc3NCw5NDQ3MTExMzkpLGEoMjY0MzQ3MDc4LDIzNDEyNjI3NzMpLGEoNjA0ODA3NjI4LDIwMDc4MDA5MzMpLGEoNzcwMjU1OTgzLDE0OTU5OTA5MDEpLGEoMTI0OTE1MDEyMiwxODU2NDMxMjM1KSxhKDE1NTUwODE2OTIsMzE3NTIxODEzMiksYSgxOTk2MDY0OTg2LDIxOTg5NTA4MzcpLGEoMjU1NDIyMDg4MiwzOTk5NzE5MzM5KSxhKDI4MjE4MzQzNDksNzY2Nzg0MDE2KSxhKDI5NTI5OTY4MDgsMjU2NjU5NDg3OSksYSgzMjEwMzEzNjcxLDMyMDMzMzc5NTYpLGEoMzMzNjU3MTg5MSwxMDM0NDU3MDI2KSxhKDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSksYSgxMTM5MjY5OTMsMzc1ODMyNjM4MyksYSgzMzgyNDE4OTUsMTY4NzE3OTM2KSxhKDY2NjMwNzIwNSwxMTg4MTc5OTY0KSxhKDc3MzUyOTkxMiwxNTQ2MDQ1NzM0KSxhKDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSksYSgxMzk2MTgyMjkxLDI2NDM4MzM4MjMpLGEoMTY5NTE4MzcwMCwyMzQzNTI3MzkwKSxhKDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCksYSgyMTc3MDI2MzUwLDEyMDY3NTkxNDIpLGEoMjQ1Njk1NjAzNywzNDQwNzc2MjcpLGEoMjczMDQ4NTkyMSwxMjkwODYzNDYwKSxhKDI4MjAzMDI0MTEsMzE1ODQ1NDI3MyksYSgzMjU5NzMwODAwLDM1MDU5NTI2NTcpLGEoMzM0NTc2NDc3MSwxMDYyMTcwMDgpLGEoMzUxNjA2NTgxNywzNjA2MDA4MzQ0KSxhKDM2MDAzNTI4MDQsMTQzMjcyNTc3NiksYSg0MDk0NTcxOTA5LDE0NjcwMzE1OTQpLGEoMjc1NDIzMzQ0LDg1MTE2OTcyMCksYSg0MzAyMjc3MzQsMzEwMDgyMzc1MiksYSg1MDY5NDg2MTYsMTM2MzI1ODE5NSksYSg2NTkwNjA1NTYsMzc1MDY4NTU5MyksYSg4ODM5OTc4NzcsMzc4NTA1MDI4MCksYSg5NTgxMzk1NzEsMzMxODMwNzQyNyksYSgxMzIyODIyMjE4LDM4MTI3MjM0MDMpLGEoMTUzNzAwMjA2MywyMDAzMDM0OTk1KSxhKDE3NDc4NzM3NzksMzYwMjAzNjg5OSksYSgxOTU1NTYyMjIyLDE1NzU5OTAwMTIpLGEoMjAyNDEwNDgxNSwxMTI1NTkyOTI4KSxhKDIyMjc3MzA0NTIsMjcxNjkwNDMwNiksYSgyMzYxODUyNDI0LDQ0Mjc3NjA0NCksYSgyNDI4NDM2NDc0LDU5MzY5ODM0NCksYSgyNzU2NzM0MTg3LDM3MzMxMTAyNDkpLGEoMzIwNDAzMTQ3OSwyOTk5MzUxNTczKSxhKDMzMjkzMjUyOTgsMzgxNTkyMDQyNyksYSgzMzkxNTY5NjE0LDM5MjgzODM5MDApLGEoMzUxNTI2NzI3MSw1NjYyODA3MTEpLGEoMzk0MDE4NzYwNiwzNDU0MDY5NTM0KSxhKDQxMTg2MzAyNzEsNDAwMDIzOTk5MiksYSgxMTY0MTg0NzQsMTkxNDEzODU1NCksYSgxNzQyOTI0MjEsMjczMTA1NTI3MCksYSgyODkzODAzNTYsMzIwMzk5MzAwNiksYSg0NjAzOTMyNjksMzIwNjIwMzE1KSxhKDY4NTQ3MTczMyw1ODc0OTY4MzYpLGEoODUyMTQyOTcxLDEwODY3OTI4NTEpLGEoMTAxNzAzNjI5OCwzNjU1NDMxMDApLGEoMTEyNjAwMDU4MCwyNjE4Mjk3Njc2KSxhKDEyODgwMzM0NzAsMzQwOTg1NTE1OCksYSgxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYpLGEoMTYwNzE2NzkxNSw5ODcxNjc0NjgpLGEoMTgxNjQwMjMxNiwxMjQ2MTg5NTkxKV0sdT1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDgwO3QrKyl1W3RdPWEoKX0oKTt2YXIgbD1zLlNIQTUxMj1lLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBpLmluaXQoW25ldyBvLmluaXQoMTc3OTAzMzcwMyw0MDg5MjM1NzIwKSxuZXcgby5pbml0KDMxNDQxMzQyNzcsMjIyNzg3MzU5NSksbmV3IG8uaW5pdCgxMDEzOTA0MjQyLDQyNzExNzU3MjMpLG5ldyBvLmluaXQoMjc3MzQ4MDc2MiwxNTk1NzUwMTI5KSxuZXcgby5pbml0KDEzNTk4OTMxMTksMjkxNzU2NTEzNyksbmV3IG8uaW5pdCgyNjAwODIyOTI0LDcyNTUxMTE5OSksbmV3IG8uaW5pdCg1Mjg3MzQ2MzUsNDIxNTM4OTU0NyksbmV3IG8uaW5pdCgxNTQxNDU5MjI1LDMyNzAzMzIwOSldKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX2hhc2gud29yZHMsbj1yWzBdLG89clsxXSxpPXJbMl0scz1yWzNdLGE9cls0XSxsPXJbNV0saD1yWzZdLGY9cls3XSxwPW4uaGlnaCxkPW4ubG93LG09by5oaWdoLHk9by5sb3csZz1pLmhpZ2gsXz1pLmxvdyx2PXMuaGlnaCx3PXMubG93LGI9YS5oaWdoLEI9YS5sb3csRj1sLmhpZ2gsTj1sLmxvdyxrPWguaGlnaCx4PWgubG93LFM9Zi5oaWdoLEE9Zi5sb3csTz1wLFQ9ZCxQPW0sTT15LEM9ZyxFPV8sRD12LFI9dyxJPWIsSD1CLGo9RixVPU4sTD1rLHo9eCxXPVMscT1BLCQ9MDskPDgwOyQrKyl7dmFyIEc9dVskXTtpZigkPDE2KXZhciBWPUcuaGlnaD0wfHRbZSsyKiRdLEo9Ry5sb3c9MHx0W2UrMiokKzFdO2Vsc2V7dmFyIEs9dVskLTE1XSxYPUsuaGlnaCxaPUsubG93LFk9KFg+Pj4xfFo8PDMxKV4oWD4+Pjh8Wjw8MjQpXlg+Pj43LFE9KFo+Pj4xfFg8PDMxKV4oWj4+Pjh8WDw8MjQpXihaPj4+N3xYPDwyNSksdHQ9dVskLTJdLGV0PXR0LmhpZ2gscnQ9dHQubG93LG50PShldD4+PjE5fHJ0PDwxMyleKGV0PDwzfHJ0Pj4+MjkpXmV0Pj4+NixvdD0ocnQ+Pj4xOXxldDw8MTMpXihydDw8M3xldD4+PjI5KV4ocnQ+Pj42fGV0PDwyNiksaXQ9dVskLTddLHN0PWl0LmhpZ2gsYXQ9aXQubG93LGN0PXVbJC0xNl0sdXQ9Y3QuaGlnaCxsdD1jdC5sb3c7Vj0oVj0oVj1ZK3N0KygoSj1RK2F0KT4+PjA8UT4+PjA/MTowKSkrbnQrKChKKz1vdCk+Pj4wPG90Pj4+MD8xOjApKSt1dCsoKEorPWx0KT4+PjA8bHQ+Pj4wPzE6MCksRy5oaWdoPVYsRy5sb3c9Sn12YXIgaHQsZnQ9SSZqXn5JJkwscHQ9SCZVXn5IJnosZHQ9TyZQXk8mQ15QJkMsbXQ9VCZNXlQmRV5NJkUseXQ9KE8+Pj4yOHxUPDw0KV4oTzw8MzB8VD4+PjIpXihPPDwyNXxUPj4+NyksZ3Q9KFQ+Pj4yOHxPPDw0KV4oVDw8MzB8Tz4+PjIpXihUPDwyNXxPPj4+NyksX3Q9KEk+Pj4xNHxIPDwxOCleKEk+Pj4xOHxIPDwxNCleKEk8PDIzfEg+Pj45KSx2dD0oSD4+PjE0fEk8PDE4KV4oSD4+PjE4fEk8PDE0KV4oSDw8MjN8ST4+PjkpLHd0PWNbJF0sYnQ9d3QuaGlnaCxCdD13dC5sb3csRnQ9VytfdCsoKGh0PXErdnQpPj4+MDxxPj4+MD8xOjApLE50PWd0K210O1c9TCxxPXosTD1qLHo9VSxqPUksVT1ILEk9RCsoRnQ9KEZ0PShGdD1GdCtmdCsoKGh0Kz1wdCk+Pj4wPHB0Pj4+MD8xOjApKStidCsoKGh0Kz1CdCk+Pj4wPEJ0Pj4+MD8xOjApKStWKygoaHQrPUopPj4+MDxKPj4+MD8xOjApKSsoKEg9UitodHwwKT4+PjA8Uj4+PjA/MTowKXwwLEQ9QyxSPUUsQz1QLEU9TSxQPU8sTT1ULE89RnQrKHl0K2R0KyhOdD4+PjA8Z3Q+Pj4wPzE6MCkpKygoVD1odCtOdHwwKT4+PjA8aHQ+Pj4wPzE6MCl8MH1kPW4ubG93PWQrVCxuLmhpZ2g9cCtPKyhkPj4+MDxUPj4+MD8xOjApLHk9by5sb3c9eStNLG8uaGlnaD1tK1ArKHk+Pj4wPE0+Pj4wPzE6MCksXz1pLmxvdz1fK0UsaS5oaWdoPWcrQysoXz4+PjA8RT4+PjA/MTowKSx3PXMubG93PXcrUixzLmhpZ2g9ditEKyh3Pj4+MDxSPj4+MD8xOjApLEI9YS5sb3c9QitILGEuaGlnaD1iK0krKEI+Pj4wPEg+Pj4wPzE6MCksTj1sLmxvdz1OK1UsbC5oaWdoPUYraisoTj4+PjA8VT4+PjA/MTowKSx4PWgubG93PXgreixoLmhpZ2g9aytMKyh4Pj4+MDx6Pj4+MD8xOjApLEE9Zi5sb3c9QStxLGYuaGlnaD1TK1crKEE+Pj4wPHE+Pj4wPzE6MCl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMscj04KnRoaXMuX25EYXRhQnl0ZXMsbj04KnQuc2lnQnl0ZXM7cmV0dXJuIGVbbj4+PjVdfD0xMjg8PDI0LW4lMzIsZVszMCsobisxMjg+Pj4xMDw8NSldPU1hdGguZmxvb3Ioci80Mjk0OTY3Mjk2KSxlWzMxKyhuKzEyOD4+PjEwPDw1KV09cix0LnNpZ0J5dGVzPTQqZS5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2gudG9YMzIoKX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1lLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9LGJsb2NrU2l6ZTozMn0pO3QuU0hBNTEyPWUuX2NyZWF0ZUhlbHBlcihsKSx0LkhtYWNTSEE1MTI9ZS5fY3JlYXRlSG1hY0hlbHBlcihsKX0oKSxuLlNIQTUxMil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDEwKSxmdW5jdGlvbih0KXt2YXIgZT1uLHI9ZS5saWIsbz1yLldvcmRBcnJheSxpPXIuSGFzaGVyLHM9ZS54NjQuV29yZCxhPWUuYWxnbyxjPVtdLHU9W10sbD1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MSxlPTAscj0wO3I8MjQ7cisrKXtjW3QrNSplXT0ocisxKSoocisyKS8yJTY0O3ZhciBuPSgyKnQrMyplKSU1O3Q9ZSU1LGU9bn1mb3IodD0wO3Q8NTt0KyspZm9yKGU9MDtlPDU7ZSsrKXVbdCs1KmVdPWUrKDIqdCszKmUpJTUqNTtmb3IodmFyIG89MSxpPTA7aTwyNDtpKyspe2Zvcih2YXIgYT0wLGg9MCxmPTA7Zjw3O2YrKyl7aWYoMSZvKXt2YXIgcD0oMTw8ZiktMTtwPDMyP2hePTE8PHA6YV49MTw8cC0zMn0xMjgmbz9vPW88PDFeMTEzOm88PD0xfWxbaV09cy5jcmVhdGUoYSxoKX19KCk7dmFyIGg9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDwyNTt0KyspaFt0XT1zLmNyZWF0ZSgpfSgpO3ZhciBmPWEuU0hBMz1pLmV4dGVuZCh7Y2ZnOmkuY2ZnLmV4dGVuZCh7b3V0cHV0TGVuZ3RoOjUxMn0pLF9kb1Jlc2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX3N0YXRlPVtdLGU9MDtlPDI1O2UrKyl0W2VdPW5ldyBzLmluaXQ7dGhpcy5ibG9ja1NpemU9KDE2MDAtMip0aGlzLmNmZy5vdXRwdXRMZW5ndGgpLzMyfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5fc3RhdGUsbj10aGlzLmJsb2NrU2l6ZS8yLG89MDtvPG47bysrKXt2YXIgaT10W2UrMipvXSxzPXRbZSsyKm8rMV07aT0xNjcxMTkzNSYoaTw8OHxpPj4+MjQpfDQyNzgyNTUzNjAmKGk8PDI0fGk+Pj44KSxzPTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLChBPXJbb10pLmhpZ2hePXMsQS5sb3dePWl9Zm9yKHZhciBhPTA7YTwyNDthKyspe2Zvcih2YXIgZj0wO2Y8NTtmKyspe2Zvcih2YXIgcD0wLGQ9MCxtPTA7bTw1O20rKylwXj0oQT1yW2YrNSptXSkuaGlnaCxkXj1BLmxvdzt2YXIgeT1oW2ZdO3kuaGlnaD1wLHkubG93PWR9Zm9yKGY9MDtmPDU7ZisrKXt2YXIgZz1oWyhmKzQpJTVdLF89aFsoZisxKSU1XSx2PV8uaGlnaCx3PV8ubG93O2ZvcihwPWcuaGlnaF4odjw8MXx3Pj4+MzEpLGQ9Zy5sb3deKHc8PDF8dj4+PjMxKSxtPTA7bTw1O20rKykoQT1yW2YrNSptXSkuaGlnaF49cCxBLmxvd149ZH1mb3IodmFyIGI9MTtiPDI1O2IrKyl7dmFyIEI9KEE9cltiXSkuaGlnaCxGPUEubG93LE49Y1tiXTtOPDMyPyhwPUI8PE58Rj4+PjMyLU4sZD1GPDxOfEI+Pj4zMi1OKToocD1GPDxOLTMyfEI+Pj42NC1OLGQ9Qjw8Ti0zMnxGPj4+NjQtTik7dmFyIGs9aFt1W2JdXTtrLmhpZ2g9cCxrLmxvdz1kfXZhciB4PWhbMF0sUz1yWzBdO2Zvcih4LmhpZ2g9Uy5oaWdoLHgubG93PVMubG93LGY9MDtmPDU7ZisrKWZvcihtPTA7bTw1O20rKyl7dmFyIEE9cltiPWYrNSptXSxPPWhbYl0sVD1oWyhmKzEpJTUrNSptXSxQPWhbKGYrMiklNSs1Km1dO0EuaGlnaD1PLmhpZ2heflQuaGlnaCZQLmhpZ2gsQS5sb3c9Ty5sb3deflQubG93JlAubG93fUE9clswXTt2YXIgTT1sW2FdO0EuaGlnaF49TS5oaWdoLEEubG93Xj1NLmxvd319LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZGF0YSxyPWUud29yZHMsbj0odGhpcy5fbkRhdGFCeXRlcyw4KmUuc2lnQnl0ZXMpLGk9MzIqdGhpcy5ibG9ja1NpemU7cltuPj4+NV18PTE8PDI0LW4lMzIsclsodC5jZWlsKChuKzEpL2kpKmk+Pj41KS0xXXw9MTI4LGUuc2lnQnl0ZXM9NCpyLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCk7Zm9yKHZhciBzPXRoaXMuX3N0YXRlLGE9dGhpcy5jZmcub3V0cHV0TGVuZ3RoLzgsYz1hLzgsdT1bXSxsPTA7bDxjO2wrKyl7dmFyIGg9c1tsXSxmPWguaGlnaCxwPWgubG93O2Y9MTY3MTE5MzUmKGY8PDh8Zj4+PjI0KXw0Mjc4MjU1MzYwJihmPDwyNHxmPj4+OCkscD0xNjcxMTkzNSYocDw8OHxwPj4+MjQpfDQyNzgyNTUzNjAmKHA8PDI0fHA+Pj44KSx1LnB1c2gocCksdS5wdXNoKGYpfXJldHVybiBuZXcgby5pbml0KHUsYSl9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWkuY2xvbmUuY2FsbCh0aGlzKSxlPXQuX3N0YXRlPXRoaXMuX3N0YXRlLnNsaWNlKDApLHI9MDtyPDI1O3IrKyllW3JdPWVbcl0uY2xvbmUoKTtyZXR1cm4gdH19KTtlLlNIQTM9aS5fY3JlYXRlSGVscGVyKGYpLGUuSG1hY1NIQTM9aS5fY3JlYXRlSG1hY0hlbHBlcihmKX0oTWF0aCksbi5TSEEzKX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cig4KSxvPXIoMyksaT1yKDIyKSxzPXIoMjMpOyFmdW5jdGlvbih0KXt0LmV0aF9nZXRCYWxhbmNlPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0QmFsYW5jZVwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QWRkcmVzc0Zvcm1hdHRlcixuLmlucHV0RGVmYXVsdEJsb2NrTnVtYmVyRm9ybWF0dGVyXSxvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRCaWdOdW1iZXJGb3JtYXR0ZXJ9KSx0LmV0aF9nZXRTdG9yYWdlQXQ9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRTdG9yYWdlQXRcIixwYXJhbXM6MyxpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEFkZHJlc3NGb3JtYXR0ZXIsby50b0hleCxuLmlucHV0RGVmYXVsdEJsb2NrTnVtYmVyRm9ybWF0dGVyXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LmV0aF9nZXRDb2RlPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0Q29kZVwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QWRkcmVzc0Zvcm1hdHRlcixuLmlucHV0RGVmYXVsdEJsb2NrTnVtYmVyRm9ybWF0dGVyXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LmV0aF9nZXRCbG9ja0J5SGFzaD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldEJsb2NrQnlIYXNoXCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcixmdW5jdGlvbih0KXtyZXR1cm4hIXR9XSxvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRCbG9ja0Zvcm1hdHRlcn0pLHQuZXRoX2dldEJsb2NrQnlOdW1iZXI9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRCbG9ja0J5TnVtYmVyXCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcixmdW5jdGlvbih0KXtyZXR1cm4hIXR9XSxvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRCbG9ja0Zvcm1hdHRlcn0pLHQuZXRoX2dldFVuY2xlQnlCbG9ja0hhc2hBbmRJbmRleD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFVuY2xlQnlCbG9ja0hhc2hBbmRJbmRleFwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsby50b0hleF0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmxvY2tGb3JtYXR0ZXJ9KSx0LmV0aF9nZXRVbmNsZUJ5QmxvY2tOdW1iZXJBbmRJbmRleD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFVuY2xlQnlCbG9ja051bWJlckFuZEluZGV4XCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcixvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRCbG9ja0Zvcm1hdHRlcn0pLHQuZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5SGFzaD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5SGFzaFwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5TnVtYmVyPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0QmxvY2tUcmFuc2FjdGlvbkNvdW50QnlOdW1iZXJcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9nZXRVbmNsZUNvdW50QnlCbG9ja0hhc2g9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRVbmNsZUNvdW50QnlCbG9ja0hhc2hcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9nZXRVbmNsZUNvdW50QnlCbG9ja051bWJlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFVuY2xlQ291bnRCeUJsb2NrTnVtYmVyXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2g9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRUcmFuc2FjdGlvbkJ5SGFzaFwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpuLm91dHB1dFRyYW5zYWN0aW9uRm9ybWF0dGVyfSksdC5ldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4XCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcixvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRUcmFuc2FjdGlvbkZvcm1hdHRlcn0pLHQuZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja051bWJlckFuZEluZGV4PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrTnVtYmVyQW5kSW5kZXhcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyLG8udG9IZXhdLG91dHB1dEZvcm1hdHRlcjpuLm91dHB1dFRyYW5zYWN0aW9uRm9ybWF0dGVyfSksdC5ldGhfZ2V0VHJhbnNhY3Rpb25SZWNlaXB0PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0VHJhbnNhY3Rpb25SZWNlaXB0XCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0VHJhbnNhY3Rpb25SZWNlaXB0Rm9ybWF0dGVyfSksdC5ldGhfZ2V0VHJhbnNhY3Rpb25Db3VudD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFRyYW5zYWN0aW9uQ291bnRcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEFkZHJlc3NGb3JtYXR0ZXIsbi5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfc2VuZFJhd1RyYW5zYWN0aW9uPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfc2VuZFJhd1RyYW5zYWN0aW9uXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W251bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQud2ViM19zaGEzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJ3ZWIzX3NoYTNcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbnVsbF0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5ldGhfc2VuZFRyYW5zYWN0aW9uPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfc2VuZFRyYW5zYWN0aW9uXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRUcmFuc2FjdGlvbkZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5ldGhfc2lnbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX3NpZ25cIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEFkZHJlc3NGb3JtYXR0ZXIsbnVsbF0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5ldGhfY2FsbD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2NhbGxcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dENhbGxGb3JtYXR0ZXIsbi5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5ldGhfZXN0aW1hdGVHYXM9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9lc3RpbWF0ZUdhc1wiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0Q2FsbEZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfc3VibWl0V29yaz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX3N1Ym1pdFdvcmtcIixwYXJhbXM6MyxvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LmV0aF9nZXRXb3JrPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0V29ya1wiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LmV0aF9jb2luYmFzZT1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwiZXRoX2NvaW5iYXNlXCIsb3V0cHV0Rm9ybWF0dGVyOm8udG9BZGRyZXNzfSksdC5ldGhfbWluaW5nPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfbWluaW5nXCIsb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5ldGhfaGFzaHJhdGU9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcImV0aF9oYXNocmF0ZVwiLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX3N5bmNpbmc9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcImV0aF9zeW5jaW5nXCIsb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0U3luY2luZ0Zvcm1hdHRlcn0pLHQuZXRoX2dhc1ByaWNlPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfZ2FzUHJpY2VcIixvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRCaWdOdW1iZXJGb3JtYXR0ZXJ9KSx0LmV0aF9hY2NvdW50cz1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwiZXRoX2FjY291bnRzXCIsb3V0cHV0Rm9ybWF0dGVyOm8udG9BcnJheX0pLHQuZXRoX2Jsb2NrTnVtYmVyPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfYmxvY2tOdW1iZXJcIixvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9wcm90b2NvbFZlcnNpb249bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcImV0aF9wcm90b2NvbFZlcnNpb25cIixvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LndlYjNfY2xpZW50VmVyc2lvbj1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwid2ViM19jbGllbnRWZXJzaW9uXCIsb3V0cHV0Rm9ybWF0dGVyOm8udG9TdHJpbmd9KSx0Lm5ldF92ZXJzaW9uPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJuZXRfdmVyc2lvblwiLG91dHB1dEZvcm1hdHRlcjpvLnRvU3RyaW5nfSksdC5zaGhfdmVyc2lvbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX3ZlcnNpb25cIixwYXJhbXM6MCxvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LnNoaF9wb3N0PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfcG9zdFwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltudWxsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LnBlcnNvbmFsX25ld0FjY291bnQ9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInBlcnNvbmFsX25ld0FjY291bnRcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbnVsbF0sb3V0cHV0Rm9ybWF0dGVyOm8udG9BZGRyZXNzfSksdC5wZXJzb25hbF9pbXBvcnRSYXdLZXk9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInBlcnNvbmFsX2ltcG9ydFJhd0tleVwiLHBhcmFtczoyLG91dHB1dEZvcm1hdHRlcjpvLnRvQWRkcmVzc30pLHQucGVyc29uYWxfc2lnbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwicGVyc29uYWxfc2lnblwiLHBhcmFtczozLGlucHV0Rm9ybWF0dGVyOltudWxsLG4uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG51bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQucGVyc29uYWxfZWNSZWNvdmVyPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF9lY1JlY292ZXJcIixwYXJhbXM6MixvdXRwdXRGb3JtYXR0ZXI6by50b0FkZHJlc3N9KSx0LnBlcnNvbmFsX3VubG9ja0FjY291bnQ9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInBlcnNvbmFsX3VubG9ja0FjY291bnRcIixwYXJhbXM6MyxpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEFkZHJlc3NGb3JtYXR0ZXIsbnVsbCxvLnRvTnVsbERlY2ltYWxdLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQucGVyc29uYWxfc2VuZFRyYW5zYWN0aW9uPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF9zZW5kVHJhbnNhY3Rpb25cIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dFRyYW5zYWN0aW9uRm9ybWF0dGVyLG51bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQucGVyc29uYWxfbG9ja0FjY291bnQ9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInBlcnNvbmFsX2xvY2tBY2NvdW50XCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyXSxvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LnBlcnNvbmFsX2xpc3RBY2NvdW50cz1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwicGVyc29uYWxfbGlzdEFjY291bnRzXCIsb3V0cHV0Rm9ybWF0dGVyOm8udG9BcnJheX0pLHQubmV0X2xpc3RlbmluZz1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwibmV0X2xpc3RlbmluZ1wiLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQubmV0X3BlZXJDb3VudD1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwibmV0X3BlZXJDb3VudFwiLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX25ld0ZpbHRlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX25ld0ZpbHRlclwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvSGV4fSksdC5ldGhfZ2V0TG9ncz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldExvZ3NcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbby50b0hleF0sb3V0cHV0Rm9ybWF0dGVyOm8udG9BcnJheX0pLHQuZXRoX25ld0Jsb2NrRmlsdGVyPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfbmV3QmxvY2tGaWx0ZXJcIixwYXJhbXM6MCxvdXRwdXRGb3JtYXR0ZXI6by50b0hleH0pLHQuZXRoX25ld1BlbmRpbmdUcmFuc2FjdGlvbkZpbHRlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX25ld1BlbmRpbmdUcmFuc2FjdGlvbkZpbHRlclwiLHBhcmFtczowLG91dHB1dEZvcm1hdHRlcjpvLnRvSGV4fSksdC5ldGhfdW5pbnN0YWxsRmlsdGVyPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfdW5pbnN0YWxsRmlsdGVyXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W28udG9IZXhdLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQuZXRoX2dldEZpbHRlckxvZ3M9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRGaWx0ZXJMb2dzXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W28udG9IZXhdLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LmV0aF9nZXRGaWx0ZXJDaGFuZ2VzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0RmlsdGVyQ2hhbmdlc1wiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6by50b0FycmF5fSksdC5ldGhfc3VibWl0SGFzaHJhdGU9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9zdWJtaXRIYXNocmF0ZVwiLHBhcmFtczoyLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQuc2hoX25ld0lkZW50aXR5PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfbmV3SWRlbnRpdHlcIixwYXJhbXM6MCxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LnNoaF9oYXNJZGVudGl0eT1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX2hhc0lkZW50aXR5XCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5zaGhfbmV3R3JvdXA9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF9uZXdHcm91cFwiLHBhcmFtczowLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuc2hoX2FkZFRvR3JvdXA9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF9hZGRUb0dyb3VwXCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5zaGhfbmV3RmlsdGVyPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfbmV3RmlsdGVyXCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm8udG9IZXh9KSx0LnNoaF91bmluc3RhbGxGaWx0ZXI9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF91bmluc3RhbGxGaWx0ZXJcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LnNoaF9nZXRMb2dzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfZ2V0TG9nc1wiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LnNoaF9nZXRGaWx0ZXJNZXNzYWdlcz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX2dldEZpbHRlck1lc3NhZ2VzXCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm8udG9BcnJheX0pLHQuc2hoX2dldEZpbHRlckNoYW5nZXM9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF9nZXRGaWx0ZXJDaGFuZ2VzXCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm8udG9BcnJheX0pLHQuc2hoX2dldE1lc3NhZ2VzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfZ2V0TWVzc2FnZXNcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6by50b0FycmF5fSl9KGUuZXRofHwoZS5ldGg9e30pKX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigxMyk7ZS5NZXRob2Q9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5jYWxsTmFtZT10LmNhbGxOYW1lLHRoaXMucGFyYW1zPXQucGFyYW1zfHwwLHRoaXMuaW5wdXRGb3JtYXR0ZXI9dC5pbnB1dEZvcm1hdHRlcnx8bnVsbCx0aGlzLm91dHB1dEZvcm1hdHRlcj10Lm91dHB1dEZvcm1hdHRlcix0aGlzLnJlcXVlc3RNYW5hZ2VyPW51bGx9dmFsaWRhdGVBcmdzKHQpe2lmKHQubGVuZ3RoIT09dGhpcy5wYXJhbXMpdGhyb3cgbi5JbnZhbGlkTnVtYmVyT2ZSUENQYXJhbXModGhpcy5jYWxsTmFtZSx0Lmxlbmd0aCx0aGlzLnBhcmFtcyl9Zm9ybWF0SW5wdXQodCl7cmV0dXJuIHRoaXMuaW5wdXRGb3JtYXR0ZXI/dGhpcy5pbnB1dEZvcm1hdHRlci5tYXAoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZT9lKHRbcl0pOnRbcl19KTp0fWZvcm1hdE91dHB1dCh0KXtyZXR1cm4gbnVsbCE9PXQ/dGhpcy5vdXRwdXRGb3JtYXR0ZXIodCk6bnVsbH10b1BheWxvYWQodCl7bGV0IGU9dGhpcy5mb3JtYXRJbnB1dCh0KTtyZXR1cm4gdGhpcy52YWxpZGF0ZUFyZ3MoZSkse21ldGhvZDp0aGlzLmNhbGxOYW1lLHBhcmFtczplfX1hc3luYyBleGVjdXRlKHQsLi4uZSl7bGV0IHI9dGhpcy50b1BheWxvYWQoZSk7aWYoIXQpdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBSZXF1ZXN0TWFuYWdlciBpbiBtZXRob2QjZXhlY1wiKTtjb25zdCBuPWF3YWl0IHQuc2VuZEFzeW5jKHIpO3JldHVybiB0aGlzLmZvcm1hdE91dHB1dChuKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7ZS5Qcm9wZXJ0eT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmdldHRlcj10LmdldHRlcix0aGlzLm91dHB1dEZvcm1hdHRlcj10Lm91dHB1dEZvcm1hdHRlcn1mb3JtYXRPdXRwdXQodCl7cmV0dXJuIHRoaXMub3V0cHV0Rm9ybWF0dGVyKHQpfWFzeW5jIGV4ZWN1dGUodCl7Y29uc3QgZT1hd2FpdCB0LnNlbmRBc3luYyh7bWV0aG9kOnRoaXMuZ2V0dGVyLHBhcmFtczpbXX0pO3JldHVybiB0aGlzLmZvcm1hdE91dHB1dChlKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDYwKSxvPXIoMjYpLGk9cig3MCk7ZS5Db250cmFjdD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUscil7dmFyIHM7dGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMuYWJpPWUsdGhpcy5hZGRyZXNzPXIsdGhpcy5ldmVudHM9e30sdGhpcy50cmFuc2FjdGlvbkhhc2g9bnVsbCx0aGlzLnRyYW5zYWN0aW9uSGFzaD1udWxsLHRoaXMuYWRkcmVzcz1yLHRoaXMuYWJpPWUsKHM9dGhpcykuYWJpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10LnR5cGV9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBuLlNvbGlkaXR5RnVuY3Rpb24ocy5yZXF1ZXN0TWFuYWdlcix0LHMuYWRkcmVzcyl9KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuYXR0YWNoVG9Db250cmFjdChzKX0pLGZ1bmN0aW9uKHQpe2xldCBlPXQuYWJpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm5cImV2ZW50XCI9PT10LnR5cGV9KTtuZXcgaS5BbGxTb2xpZGl0eUV2ZW50cyh0LnJlcXVlc3RNYW5hZ2VyLGUsdC5hZGRyZXNzKS5hdHRhY2hUb0NvbnRyYWN0KHQpLGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgby5Tb2xpZGl0eUV2ZW50KHQucmVxdWVzdE1hbmFnZXIsZSx0LmFkZHJlc3MpfSkuZm9yRWFjaChmdW5jdGlvbihlKXtlLmF0dGFjaFRvQ29udHJhY3QodCl9KX0odGhpcyl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigzKTtlLlNvbGlkaXR5UGFyYW09Y2xhc3N7Y29uc3RydWN0b3IodCxlKXt0aGlzLm9mZnNldD12b2lkIDAsdGhpcy52YWx1ZT10fHxcIlwiLHRoaXMub2Zmc2V0PWV9aXNEeW5hbWljKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMub2Zmc2V0fW9mZnNldEFzQnl0ZXMoKXtyZXR1cm4gdGhpcy5pc0R5bmFtaWMoKT9uLnBhZExlZnQobi50b1R3b3NDb21wbGVtZW50KHRoaXMub2Zmc2V0KS50b1N0cmluZygxNiksNjQpOlwiXCJ9c3RhdGljUGFydCgpe3JldHVybiB0aGlzLmlzRHluYW1pYygpP3RoaXMub2Zmc2V0QXNCeXRlcygpOnRoaXMudmFsdWV9ZHluYW1pY1BhcnQoKXtyZXR1cm4gdGhpcy5pc0R5bmFtaWMoKT90aGlzLnZhbHVlOlwiXCJ9ZW5jb2RlKCl7cmV0dXJuIHRoaXMuc3RhdGljUGFydCgpK3RoaXMuZHluYW1pY1BhcnQoKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDMpLG89cig4KSxpPXIoMTUpLHM9cigyNyk7ZS5Tb2xpZGl0eUV2ZW50PWNsYXNze2NvbnN0cnVjdG9yKHQsZSxyKXt0aGlzLnJlcXVlc3RNYW5hZ2VyPXQsdGhpcy5hZGRyZXNzPXIsdGhpcy5fYW5vbnltb3VzPSExLHRoaXMuX3BhcmFtcz1lLmlucHV0cyx0aGlzLl9uYW1lPW4udHJhbnNmb3JtVG9GdWxsTmFtZShlKSx0aGlzLl9hbm9ueW1vdXM9ZS5hbm9ueW1vdXN9dHlwZXModCl7cmV0dXJuIHRoaXMuX3BhcmFtcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5kZXhlZD09PXR9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pfWRpc3BsYXlOYW1lKCl7cmV0dXJuIG4uZXh0cmFjdERpc3BsYXlOYW1lKHRoaXMuX25hbWUpfXR5cGVOYW1lKCl7cmV0dXJuIG4uZXh0cmFjdFR5cGVOYW1lKHRoaXMuX25hbWUpfHxcInZvaWRcIn1zaWduYXR1cmUoKXtyZXR1cm4gbi5zaGEzKHRoaXMuX25hbWUpfWVuY29kZSh0PXt9LGU9e30pe2xldCByPXt0b3BpY3M6W10sYWRkcmVzczp0aGlzLmFkZHJlc3N9O1tcImZyb21CbG9ja1wiLFwidG9CbG9ja1wiXS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PWVbdF19KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JbdF09by5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyKGVbdF0pfSksdGhpcy5fYW5vbnltb3VzfHxyLnRvcGljcy5wdXNoKFwiMHhcIit0aGlzLnNpZ25hdHVyZSgpKTtsZXQgcz10aGlzLl9wYXJhbXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiEwPT09dC5pbmRleGVkfSkubWFwKGZ1bmN0aW9uKGUpe2xldCByPXRbZS5uYW1lXTtyZXR1cm4gbnVsbD09cj9udWxsOm4uaXNBcnJheShyKT9yLm1hcChmdW5jdGlvbih0KXtyZXR1cm5cIjB4XCIraS5jb2Rlci5lbmNvZGVQYXJhbShlLnR5cGUsdCl9KTpcIjB4XCIraS5jb2Rlci5lbmNvZGVQYXJhbShlLnR5cGUscil9KTtyZXR1cm4gci50b3BpY3M9ci50b3BpY3MuY29uY2F0KHMpLHJ9ZGVjb2RlKHQpe3QuZGF0YT10LmRhdGF8fFwiXCIsdC50b3BpY3M9dC50b3BpY3N8fFtdO2xldCBlPSh0aGlzLl9hbm9ueW1vdXM/dC50b3BpY3M6dC50b3BpY3Muc2xpY2UoMSkpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5zbGljZSgyKX0pLmpvaW4oXCJcIikscj1pLmNvZGVyLmRlY29kZVBhcmFtcyh0aGlzLnR5cGVzKCEwKSxlKSxuPXQuZGF0YS5zbGljZSgyKSxzPWkuY29kZXIuZGVjb2RlUGFyYW1zKHRoaXMudHlwZXMoITEpLG4pLGE9by5vdXRwdXRMb2dGb3JtYXR0ZXIodCk7cmV0dXJuIGEuZXZlbnQ9dGhpcy5kaXNwbGF5TmFtZSgpLGEuYWRkcmVzcz10LmFkZHJlc3MsYS5hcmdzPXRoaXMuX3BhcmFtcy5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtlLm5hbWVdPWUuaW5kZXhlZD9yLnNoaWZ0KCk6cy5zaGlmdCgpLHR9LHt9KSxkZWxldGUgYS5kYXRhLGRlbGV0ZSBhLnRvcGljcyxhfWFzeW5jIGV4ZWN1dGUodCxlKXtsZXQgcj10aGlzLmVuY29kZSh0LGUpLG49dGhpcy5kZWNvZGUuYmluZCh0aGlzKTtyZXR1cm4gbmV3IHMuRXRoRmlsdGVyKHRoaXMucmVxdWVzdE1hbmFnZXIscixuKX1hdHRhY2hUb0NvbnRyYWN0KHQpe2xldCBlPXRoaXMuZXhlY3V0ZS5iaW5kKHRoaXMpLHI9dGhpcy5kaXNwbGF5TmFtZSgpO3QuZXZlbnRzW3JdfHwodC5ldmVudHNbcl09ZSksdC5ldmVudHNbcl1bdGhpcy50eXBlTmFtZSgpXT10aGlzLmV4ZWN1dGUuYmluZCh0aGlzLHQpfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMyksbz1yKDgpLGk9cigxNCkscz1yKDkpO2Z1bmN0aW9uIGEodCl7aWYobnVsbD09dClyZXR1cm4gbnVsbDtjb25zdCBlPVN0cmluZyh0KS50b1N0cmluZygpO3JldHVybiAwPT09ZS5pbmRleE9mKFwiMHhcIik/ZTpuLmZyb21VdGY4KGUpfWNsYXNzIGN7Y29uc3RydWN0b3IodCl7dGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMuaXNTdGFydGVkPSExLHRoaXMuaXNEaXNwb3NlZD0hMSx0aGlzLmZpbHRlcklkPXMuZnV0dXJlKCksdGhpcy5jYWxsYmFja3M9W10sdGhpcy5zdG9wU2VtYXBob3JlPXMuZnV0dXJlKCl9YXN5bmMgd2F0Y2godCl7aWYodGhpcy5pc0Rpc3Bvc2VkKXRocm93IG5ldyBFcnJvcihcIlRoZSBmaWx0ZXIgd2FzIGRpc3Bvc2VkXCIpO3QmJih0aGlzLmNhbGxiYWNrcy5wdXNoKHQpLHRoaXMuaXNTdGFydGVkfHxhd2FpdCB0aGlzLnN0YXJ0KCkpfWFzeW5jIHN0YXJ0KCl7aWYodGhpcy5pc0Rpc3Bvc2VkKXRocm93IG5ldyBFcnJvcihcIlRoZSBmaWx0ZXIgd2FzIGRpc3Bvc2VkXCIpO2lmKCF0aGlzLmlzU3RhcnRlZCl7dGhpcy5pc1N0YXJ0ZWQ9ITA7dHJ5e2NvbnN0IHQ9YXdhaXQgdGhpcy5nZXROZXdGaWx0ZXIoKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgY3JlYXRlIGEgZmlsdGVyLCByZXNwb25zZTogXCIrSlNPTi5zdHJpbmdpZnkodCkpO3RoaXMuZmlsdGVySWQucmVzb2x2ZSh0KX1jYXRjaCh0KXt0aHJvdyB0fXRoaXMuc3RvcFNlbWFwaG9yZT1zLmZ1dHVyZSgpLGF3YWl0IHRoaXMucG9sbCgpfX1hc3luYyBzdG9wKCl7aWYoIXRoaXMuaXNTdGFydGVkKXJldHVybjtpZih0aGlzLmlzRGlzcG9zZWQpcmV0dXJuO3RoaXMuaXNEaXNwb3NlZD0hMDtjb25zdCB0PWF3YWl0IHRoaXMuZmlsdGVySWQ7aWYodGhpcy5pc1N0YXJ0ZWQ9ITEsdGhpcy5zdG9wU2VtYXBob3JlJiZhd2FpdCB0aGlzLnN0b3BTZW1hcGhvcmUsITAhPT1hd2FpdCB0aGlzLnVuaW5zdGFsbCgpKXRocm93IG5ldyBFcnJvcihgQ291bGRuJ3Qgc3RvcCB0aGUgZXRoIGZpbHRlcjogJHt0fWApfWFzeW5jIHBvbGwoKXtpZih0aGlzLmlzU3RhcnRlZCl7aWYodGhpcy5jYWxsYmFja3MubGVuZ3RoKXtjb25zdCB0PWF3YWl0IHRoaXMuZ2V0Q2hhbmdlcygpO3RoaXMuY2FsbGJhY2tzLmZvckVhY2goZT0+e3RoaXMuZm9ybWF0dGVyP3QuZm9yRWFjaCh0PT57ZSh0aGlzLmZvcm1hdHRlcih0KSl9KTp0LmZvckVhY2godD0+ZSh0KSl9KX10aGlzLnN0b3BTZW1hcGhvcmUucmVzb2x2ZSgxKSx0aGlzLmlzU3RhcnRlZCYmKHRoaXMuc3RvcFNlbWFwaG9yZT1zLmZ1dHVyZSgpLHNldFRpbWVvdXQoKHQ9KCgpPT50aGlzLnBvbGwoKSksZnVuY3Rpb24oKXt0KCkuY2F0Y2godD0+Y29uc29sZS5lcnJvcih0KSl9KSxpLkVUSF9QT0xMSU5HX1RJTUVPVVQpKX1lbHNlIHRoaXMuc3RvcFNlbWFwaG9yZS5yZXNvbHZlKDEpO3ZhciB0fX1lLkFic3RyYWN0RmlsdGVyPWM7ZS5TSEhGaWx0ZXI9Y2xhc3MgZXh0ZW5kcyBje2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCksdGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMub3B0aW9ucz1lLHRoaXMub3B0aW9ucz10aGlzLm9wdGlvbnN8fHt0b3BpY3M6W119LHRoaXMub3B0aW9ucy50b3BpY3M9dGhpcy5vcHRpb25zLnRvcGljc3x8W10sdGhpcy5vcHRpb25zLnRvcGljcz10aGlzLm9wdGlvbnMudG9waWNzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYSh0KX0pLHRoaXMub3B0aW9ucz17dG9waWNzOnRoaXMub3B0aW9ucy50b3BpY3MsdG86dGhpcy5vcHRpb25zLnRvfX1hc3luYyBnZXRNZXNzYWdlcygpe2NvbnN0IHQ9YXdhaXQgdGhpcy5maWx0ZXJJZDtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5zaGhfZ2V0TWVzc2FnZXModCl9YXN5bmMgZ2V0TmV3RmlsdGVyKCl7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuc2hoX25ld0ZpbHRlcih0aGlzLm9wdGlvbnMpfWFzeW5jIGdldENoYW5nZXMoKXtjb25zdCB0PWF3YWl0IHRoaXMuZmlsdGVySWQ7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuc2hoX2dldEZpbHRlckNoYW5nZXModCl9YXN5bmMgdW5pbnN0YWxsKCl7Y29uc3QgdD1hd2FpdCB0aGlzLmZpbHRlcklkO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnNoaF91bmluc3RhbGxGaWx0ZXIodCl9fTtjbGFzcyB1IGV4dGVuZHMgY3tjb25zdHJ1Y3Rvcih0LGUscj0odD0+dCkpe3N1cGVyKHQpLHRoaXMucmVxdWVzdE1hbmFnZXI9dCx0aGlzLm9wdGlvbnM9ZSx0aGlzLmZvcm1hdHRlcj1yLHRoaXMub3B0aW9ucz10aGlzLm9wdGlvbnN8fHt9LHRoaXMub3B0aW9ucy50b3BpY3M9dGhpcy5vcHRpb25zLnRvcGljc3x8W10sdGhpcy5vcHRpb25zLnRvcGljcz10aGlzLm9wdGlvbnMudG9waWNzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYSh0KX0pLHRoaXMub3B0aW9ucz17dG9waWNzOnRoaXMub3B0aW9ucy50b3BpY3MsYWRkcmVzczp0aGlzLm9wdGlvbnMuYWRkcmVzcz90aGlzLm9wdGlvbnMuYWRkcmVzczp2b2lkIDAsZnJvbUJsb2NrOlwibnVtYmVyXCI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuZnJvbUJsb2NrfHxcInN0cmluZ1wiPT10eXBlb2YgdGhpcy5vcHRpb25zLmZyb21CbG9jaz9vLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIodGhpcy5vcHRpb25zLmZyb21CbG9jayk6XCJsYXRlc3RcIix0b0Jsb2NrOlwibnVtYmVyXCI9PXR5cGVvZiB0aGlzLm9wdGlvbnMudG9CbG9ja3x8XCJzdHJpbmdcIj09dHlwZW9mIHRoaXMub3B0aW9ucy50b0Jsb2NrP28uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcih0aGlzLm9wdGlvbnMudG9CbG9jayk6XCJsYXRlc3RcIn19YXN5bmMgZ2V0TG9ncygpe3RoaXMuaXNTdGFydGVkfHxhd2FpdCB0aGlzLnN0YXJ0KCk7Y29uc3QgdD1hd2FpdCB0aGlzLmZpbHRlcklkO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLmV0aF9nZXRGaWx0ZXJMb2dzKHQpfWFzeW5jIGdldE5ld0ZpbHRlcigpe3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLmV0aF9uZXdGaWx0ZXIodGhpcy5vcHRpb25zKX1hc3luYyBnZXRDaGFuZ2VzKCl7Y29uc3QgdD1hd2FpdCB0aGlzLmZpbHRlcklkO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLmV0aF9nZXRGaWx0ZXJDaGFuZ2VzKHQpfWFzeW5jIHVuaW5zdGFsbCgpe2NvbnN0IHQ9YXdhaXQgdGhpcy5maWx0ZXJJZDtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfdW5pbnN0YWxsRmlsdGVyKHQpfX1lLkV0aEZpbHRlcj11O2UuRXRoUGVuZGluZ1RyYW5zYWN0aW9uRmlsdGVyPWNsYXNzIGV4dGVuZHMgdXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LG51bGwsdD0+dCl9YXN5bmMgZ2V0TmV3RmlsdGVyKCl7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuZXRoX25ld1BlbmRpbmdUcmFuc2FjdGlvbkZpbHRlcigpfX07ZS5FdGhCbG9ja0ZpbHRlcj1jbGFzcyBleHRlbmRzIHV7Y29uc3RydWN0b3IodCl7c3VwZXIodCxudWxsLHQ9PnQpfWFzeW5jIGdldE5ld0ZpbHRlcigpe3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLmV0aF9uZXdCbG9ja0ZpbHRlcigpfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMjkpO2UuSFRUUFByb3ZpZGVyPW4uSFRUUFByb3ZpZGVyO2NvbnN0IG89cigzMCk7ZS5XZWJTb2NrZXRQcm92aWRlcj1vLldlYlNvY2tldFByb3ZpZGVyLGZ1bmN0aW9uKHQpe2Zvcih2YXIgciBpbiB0KWUuaGFzT3duUHJvcGVydHkocil8fChlW3JdPXRbcl0pfShyKDMpKTt2YXIgaT1yKDU1KTtlLlJlcXVlc3RNYW5hZ2VyPWkuUmVxdWVzdE1hbmFnZXI7dmFyIHM9cigyNCk7ZS5Db250cmFjdD1zLkNvbnRyYWN0O3ZhciBhPXIoNzEpO2UuQ29udHJhY3RGYWN0b3J5PWEuQ29udHJhY3RGYWN0b3J5O3ZhciBjPXIoMjIpO2UuTWV0aG9kPWMuTWV0aG9kO3ZhciB1PXIoMjMpO2UuUHJvcGVydHk9dS5Qcm9wZXJ0eTt2YXIgbD1yKDIxKTtlLmV0aD1sLmV0aH0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigxNik7ZS5IVFRQUHJvdmlkZXI9Y2xhc3N7Y29uc3RydWN0b3IodCxlPXt9KXt0aGlzLmhvc3Q9dCx0aGlzLm9wdGlvbnM9ZSx0aGlzLmRlYnVnPSExLHRoaXMuaG9zdD10fHxcImh0dHA6Ly9sb2NhbGhvc3Q6ODU0NVwifXNlbmQoKXt0aHJvdyBuZXcgRXJyb3IoXCJTeW5jIHJlcXVlc3RzIGFyZSBkZXByZWNhdGVkXCIpfXNlbmRBc3luYyh0LGUpe3RyeXtsZXQgcj1udWxsO2lmKHI9dCBpbnN0YW5jZW9mIEFycmF5P3QubWFwKHQ9Pm4udG9SUEModCkpOm4udG9SUEModCksXCJ1bmRlZmluZWRcIj09dHlwZW9mIGZldGNoKXRocm93IG5ldyBFcnJvcihcIlRoZXJlIGlzIG5vIGdsb2JhbCBmZXRjaCBvYmplY3QuIFBsZWFzZSBpbnN0YWxsIGFuZCBpbXBvcnQgaXNvbW9ycGhpYy1mZXRjaFwiKTtjb25zdCBvPXtib2R5OkpTT04uc3RyaW5naWZ5KHIpLG1ldGhvZDpcIlBPU1RcIixoZWFkZXJzOk9iamVjdC5hc3NpZ24oe30sdGhpcy5vcHRpb25zLmhlYWRlcnMse1wiQ29udGVudC1UeXBlXCI6XCJhcHBsaWNhdGlvbi9qc29uXCJ9KX07dGhpcy5kZWJ1ZyYmY29uc29sZS5sb2coXCJTRU5EID4+IFwiK28uYm9keSksZmV0Y2godGhpcy5ob3N0LG8pLnRoZW4oYXN5bmMgdD0+e2lmKHQub2spe2NvbnN0IHI9YXdhaXQgdC5qc29uKCk7dGhpcy5kZWJ1ZyYmY29uc29sZS5sb2coXCJSRUNWIDw8IFwiK0pTT04uc3RyaW5naWZ5KHIpKSxyLmVycm9yP2UoT2JqZWN0LmFzc2lnbihuZXcgRXJyb3Ioci5lcnJvci5qc29ufHxyLmVycm9yKSxyLmVycm9yKSk6ZShudWxsLHIpfWVsc2UgdGhpcy5kZWJ1ZyYmY29uc29sZS5sb2coXCJFUlIgPDwgXCIrSlNPTi5zdHJpbmdpZnkodCkpLGUobmV3IEVycm9yKFwiRXh0ZXJuYWwgZXJyb3IuIHJlc3BvbnNlIGNvZGU6IFwiK3Quc3RhdHVzKSl9LHQ9Pnt0aGlzLmRlYnVnJiZjb25zb2xlLmxvZyhcIkVSUiA8PCBcIitKU09OLnN0cmluZ2lmeSh0KSksZSh0KX0pfWNhdGNoKHQpe3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKFwiRVJSIDw8IFwiK0pTT04uc3RyaW5naWZ5KHQpKSxlKHQpfX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDE2KSxvPXIoOSk7Y2xhc3MgaXtjb25zdHJ1Y3Rvcih0LGU9e30pe3RoaXMudXJsPXQsdGhpcy5vcHRpb25zPWUsdGhpcy5pc0Rpc3Bvc2VkPSExLHRoaXMucmVzcG9uc2VDYWxsYmFja3M9bmV3IE1hcCx0aGlzLm5vdGlmaWNhdGlvbkNhbGxiYWNrcz1uZXcgU2V0LHRoaXMuZGVidWc9ITEsdGhpcy5sYXN0Q2h1bms9XCJcIix0aGlzLmNvbm5lY3QoKX1kaXNwb3NlKCl7dGhpcy5pc0Rpc3Bvc2VkPSEwO2NvbnN0IHQ9dGhpcy5jb25uZWN0aW9uO3RoaXMudGltZW91dChuZXcgRXJyb3IoXCJQcm92aWRlciBkaXNwb3NlZC5cIikpLHQudGhlbih0PT50LmNsb3NlKCkpfXNlbmQoKXt0aHJvdyBuZXcgRXJyb3IoXCJTeW5jIHJlcXVlc3RzIGFyZSBkZXByZWNhdGVkXCIpfXNlbmRBc3luYyh0LGUpe2NvbnN0IHI9W107bGV0IGk7aWYodCBpbnN0YW5jZW9mIEFycmF5KWk9UHJvbWlzZS5hbGwodC5tYXAodD0+e2NvbnN0IGU9by5mdXR1cmUoKTt0cnl7Y29uc3Qgbz1uLnRvUlBDKHQpO3IucHVzaChvKSx0aGlzLnJlc3BvbnNlQ2FsbGJhY2tzLnNldChvLmlkLGUpfWNhdGNoKHQpe2UucmVqZWN0KHQpfXJldHVybiBlfSkpO2Vsc2V7Y29uc3QgZT1vLmZ1dHVyZSgpO3RyeXtjb25zdCBvPW4udG9SUEModCk7ci5wdXNoKG8pLHRoaXMucmVzcG9uc2VDYWxsYmFja3Muc2V0KG8uaWQsZSl9Y2F0Y2godCl7ZS5yZWplY3QodCl9aT1lfWkudGhlbih0PT5lKG51bGwsdCksdD0+ZSh0KSksdGhpcy5jb25uZWN0aW9uLnRoZW4odD0+e3IuZm9yRWFjaChlPT57Y29uc3Qgcj1KU09OLnN0cmluZ2lmeShlKTt0aGlzLmRlYnVnJiZjb25zb2xlLmxvZyhcIlNFTkQgPj4gXCIrciksdC5zZW5kKHIpfSl9LHQ9PntlKHQpfSl9cGFyc2VSZXNwb25zZSh0KXtsZXQgZT1bXTtyZXR1cm4gdC5yZXBsYWNlKC9cXH1bXFxuXFxyXT9cXHsvZyxcIn18LS18e1wiKS5yZXBsYWNlKC9cXH1cXF1bXFxuXFxyXT9cXFtcXHsvZyxcIn1dfC0tfFt7XCIpLnJlcGxhY2UoL1xcfVtcXG5cXHJdP1xcW1xcey9nLFwifXwtLXxbe1wiKS5yZXBsYWNlKC9cXH1cXF1bXFxuXFxyXT9cXHsvZyxcIn1dfC0tfHtcIikuc3BsaXQoXCJ8LS18XCIpLmZvckVhY2godD0+e2xldCByPXQ7dGhpcy5sYXN0Q2h1bmsmJihyPXRoaXMubGFzdENodW5rK3IpO2xldCBuPW51bGw7dHJ5e249SlNPTi5wYXJzZShyKX1jYXRjaCh0KXtyZXR1cm4gdGhpcy5sYXN0Q2h1bms9cixjbGVhclRpbWVvdXQodGhpcy5sYXN0Q2h1bmtUaW1lb3V0KSx2b2lkKHRoaXMubGFzdENodW5rVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy50aW1lb3V0KCl9LDE1ZTMpKX1jbGVhclRpbWVvdXQodGhpcy5sYXN0Q2h1bmtUaW1lb3V0KSx0aGlzLmxhc3RDaHVuaz1udWxsLG4mJmUucHVzaChuKX0pLGV9cHJvY2Vzc01lc3NhZ2UodCl7aWYoXCJpZFwiaW4gdCl7Y29uc3QgZT10LmlkLHI9dGhpcy5yZXNwb25zZUNhbGxiYWNrcy5nZXQoZSk7aWYoIXIpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihcIkVycm9yOiBSZWNlaXZlZCBhIHJlc3BvbnNlIGZvciBhbiB1bmtub3duIHJlcXVlc3RcIix0KTt0aGlzLnJlc3BvbnNlQ2FsbGJhY2tzLmRlbGV0ZShlKSxcImVycm9yXCJpbiB0P3IucmVqZWN0KE9iamVjdC5hc3NpZ24obmV3IEVycm9yKHQuZXJyb3IubWVzc2FnZXx8dC5lcnJvciksdC5lcnJvcikpOlwicmVzdWx0XCJpbiB0JiZyLnJlc29sdmUodCl9ZWxzZSB0aGlzLm5vdGlmaWNhdGlvbkNhbGxiYWNrcy5mb3JFYWNoKGU9PmUobnVsbCx0KSl9dGltZW91dCh0KXt0aGlzLmNvbm5lY3Rpb24mJnRoaXMuY29ubmVjdGlvbi5pc1BlbmRpbmd8fCh0aGlzLmNvbm5lY3Rpb249by5mdXR1cmUoKSk7Y29uc3QgZT10fHxuZXcgRXJyb3IoXCJDb25uZWN0aW9uIHRpbWVvdXRcIik7dGhpcy5yZXNwb25zZUNhbGxiYWNrcy5mb3JFYWNoKHQ9PnQucmVqZWN0KGUpKSx0aGlzLnJlc3BvbnNlQ2FsbGJhY2tzLmNsZWFyKCksdGhpcy5pc0Rpc3Bvc2VkfHx0aGlzLmNvbm5lY3QoKX1jb25uZWN0KCl7dGhpcy5jb25uZWN0aW9uJiYhdGhpcy5jb25uZWN0aW9uLmlzUGVuZGluZyYmdGhpcy5jb25uZWN0aW9uLnRoZW4odD0+dC5jbG9zZSgpKSx0aGlzLmNvbm5lY3Rpb24mJnRoaXMuY29ubmVjdGlvbi5pc1BlbmRpbmd8fCh0aGlzLmNvbm5lY3Rpb249by5mdXR1cmUoKSksdGhpcy5sYXN0Q2h1bms9XCJcIjtsZXQgdD10aGlzLm9wdGlvbnMuV2ViU29ja2V0Q29uc3RydWN0b3J8fChcInVuZGVmaW5lZFwiIT10eXBlb2YgV2ViU29ja2V0P1dlYlNvY2tldDp2b2lkIDApO2lmKCF0KXRocm93IG5ldyBFcnJvcihcIlBsZWFzZSBwcm92aWRlIGEgV2ViU29ja2V0Q29uc3RydWN0b3JcIik7Y29uc3QgZT1uZXcgdCh0aGlzLnVybCx0aGlzLm9wdGlvbnMucHJvdG9jb2wpO2Uub25vcGVuPSgoKT0+e3RoaXMuY29ubmVjdGlvbi5yZXNvbHZlKGUpfSksZS5vbmVycm9yPSh0PT57dGhpcy50aW1lb3V0KHQpfSksZS5vbmNsb3NlPSh0PT57dGhpcy50aW1lb3V0KG5ldyBFcnJvcihgQ29ubmVjdGlvbiBjbG9zZWQgKCR7dCYmdC5yZWFzb258fFwiVW5rbm93biByZWFzb25cIn0pYCkpfSksZS5vbm1lc3NhZ2U9KHQ9PntsZXQgZT1cInN0cmluZ1wiPT10eXBlb2YgdC5kYXRhP3QuZGF0YTpcIlwiO3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKFwiUkVDViA8PCBcIit0LmRhdGEpLHRoaXMucGFyc2VSZXNwb25zZShlKS5mb3JFYWNoKHQ9Pnt0IGluc3RhbmNlb2YgQXJyYXk/dC5mb3JFYWNoKHQ9PnRoaXMucHJvY2Vzc01lc3NhZ2UodCkpOnRoaXMucHJvY2Vzc01lc3NhZ2UodCl9KX0pfX1lLldlYlNvY2tldFByb3ZpZGVyPWksZS5kZWZhdWx0PWl9LGZ1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24odCl7dmFyIGUscixuLG89U3RyaW5nLmZyb21DaGFyQ29kZTtmdW5jdGlvbiBpKHQpe2Zvcih2YXIgZSxyLG49W10sbz0wLGk9dC5sZW5ndGg7bzxpOykoZT10LmNoYXJDb2RlQXQobysrKSk+PTU1Mjk2JiZlPD01NjMxOSYmbzxpPzU2MzIwPT0oNjQ1MTImKHI9dC5jaGFyQ29kZUF0KG8rKykpKT9uLnB1c2goKCgxMDIzJmUpPDwxMCkrKDEwMjMmcikrNjU1MzYpOihuLnB1c2goZSksby0tKTpuLnB1c2goZSk7cmV0dXJuIG59ZnVuY3Rpb24gcyh0KXtpZih0Pj01NTI5NiYmdDw9NTczNDMpdGhyb3cgRXJyb3IoXCJMb25lIHN1cnJvZ2F0ZSBVK1wiK3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrXCIgaXMgbm90IGEgc2NhbGFyIHZhbHVlXCIpfWZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gbyh0Pj5lJjYzfDEyOCl9ZnVuY3Rpb24gYyh0KXtpZigwPT0oNDI5NDk2NzE2OCZ0KSlyZXR1cm4gbyh0KTt2YXIgZT1cIlwiO3JldHVybiAwPT0oNDI5NDk2NTI0OCZ0KT9lPW8odD4+NiYzMXwxOTIpOjA9PSg0Mjk0OTAxNzYwJnQpPyhzKHQpLGU9byh0Pj4xMiYxNXwyMjQpLGUrPWEodCw2KSk6MD09KDQyOTI4NzAxNDQmdCkmJihlPW8odD4+MTgmN3wyNDApLGUrPWEodCwxMiksZSs9YSh0LDYpKSxlKz1vKDYzJnR8MTI4KX1mdW5jdGlvbiB1KCl7aWYobj49cil0aHJvdyBFcnJvcihcIkludmFsaWQgYnl0ZSBpbmRleFwiKTt2YXIgdD0yNTUmZVtuXTtpZihuKyssMTI4PT0oMTkyJnQpKXJldHVybiA2MyZ0O3Rocm93IEVycm9yKFwiSW52YWxpZCBjb250aW51YXRpb24gYnl0ZVwiKX1mdW5jdGlvbiBsKCl7dmFyIHQsbztpZihuPnIpdGhyb3cgRXJyb3IoXCJJbnZhbGlkIGJ5dGUgaW5kZXhcIik7aWYobj09cilyZXR1cm4hMTtpZih0PTI1NSZlW25dLG4rKywwPT0oMTI4JnQpKXJldHVybiB0O2lmKDE5Mj09KDIyNCZ0KSl7aWYoKG89KDMxJnQpPDw2fHUoKSk+PTEyOClyZXR1cm4gbzt0aHJvdyBFcnJvcihcIkludmFsaWQgY29udGludWF0aW9uIGJ5dGVcIil9aWYoMjI0PT0oMjQwJnQpKXtpZigobz0oMTUmdCk8PDEyfHUoKTw8Nnx1KCkpPj0yMDQ4KXJldHVybiBzKG8pLG87dGhyb3cgRXJyb3IoXCJJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlXCIpfWlmKDI0MD09KDI0OCZ0KSYmKG89KDcmdCk8PDE4fHUoKTw8MTJ8dSgpPDw2fHUoKSk+PTY1NTM2JiZvPD0xMTE0MTExKXJldHVybiBvO3Rocm93IEVycm9yKFwiSW52YWxpZCBVVEYtOCBkZXRlY3RlZFwiKX10LnZlcnNpb249XCIzLjAuMFwiLHQuZW5jb2RlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1pKHQpLHI9ZS5sZW5ndGgsbj0tMSxvPVwiXCI7KytuPHI7KW8rPWMoZVtuXSk7cmV0dXJuIG99LHQuZGVjb2RlPWZ1bmN0aW9uKHQpe2U9aSh0KSxyPWUubGVuZ3RoLG49MDtmb3IodmFyIHMsYT1bXTshMSE9PShzPWwoKSk7KWEucHVzaChzKTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9dC5sZW5ndGgsbj0tMSxpPVwiXCI7KytuPHI7KShlPXRbbl0pPjY1NTM1JiYoaSs9bygoZS09NjU1MzYpPj4+MTAmMTAyM3w1NTI5NiksZT01NjMyMHwxMDIzJmUpLGkrPW8oZSk7cmV0dXJuIGl9KGEpfX0oZSl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDEwKSxyKDMzKSxyKDM0KSxyKDYpLHIoNykscigxMSkscigxOCkscigzNSkscigxOSkscigzNikscigyMCkscigzNykscigxMikscigzOCkscig1KSxyKDEpLHIoMzkpLHIoNDApLHIoNDEpLHIoNDIpLHIoNDMpLHIoNDQpLHIoNDUpLHIoNDYpLHIoNDcpLHIoNDgpLHIoNDkpLHIoNTApLHIoNTEpLHIoNTIpLHIoNTMpLHIoNTQpLG4pfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCksZnVuY3Rpb24oKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBBcnJheUJ1ZmZlcil7dmFyIHQ9bi5saWIuV29yZEFycmF5LGU9dC5pbml0Oyh0LmluaXQ9ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiYodD1uZXcgVWludDhBcnJheSh0KSksKHQgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fFwidW5kZWZpbmVkXCIhPXR5cGVvZiBVaW50OENsYW1wZWRBcnJheSYmdCBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5fHx0IGluc3RhbmNlb2YgSW50MTZBcnJheXx8dCBpbnN0YW5jZW9mIFVpbnQxNkFycmF5fHx0IGluc3RhbmNlb2YgSW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIFVpbnQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5KSYmKHQ9bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCkpLHQgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtmb3IodmFyIHI9dC5ieXRlTGVuZ3RoLG49W10sbz0wO288cjtvKyspbltvPj4+Ml18PXRbb108PDI0LW8lNCo4O2UuY2FsbCh0aGlzLG4scil9ZWxzZSBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLnByb3RvdHlwZT10fX0oKSxuLmxpYi5Xb3JkQXJyYXkpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCksZnVuY3Rpb24oKXt2YXIgdD1uLGU9dC5saWIuV29yZEFycmF5LHI9dC5lbmM7ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdDw8OCY0Mjc4MjU1MzYwfHQ+Pj44JjE2NzExOTM1fXIuVXRmMTY9ci5VdGYxNkJFPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQud29yZHMscj10LnNpZ0J5dGVzLG49W10sbz0wO288cjtvKz0yKXt2YXIgaT1lW28+Pj4yXT4+PjE2LW8lNCo4JjY1NTM1O24ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGkpKX1yZXR1cm4gbi5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsbj1bXSxvPTA7bzxyO28rKyluW28+Pj4xXXw9dC5jaGFyQ29kZUF0KG8pPDwxNi1vJTIqMTY7cmV0dXJuIGUuY3JlYXRlKG4sMipyKX19LHIuVXRmMTZMRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxuPVtdLGk9MDtpPHI7aSs9Mil7dmFyIHM9byhlW2k+Pj4yXT4+PjE2LWklNCo4JjY1NTM1KTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShzKSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQubGVuZ3RoLG49W10saT0wO2k8cjtpKyspbltpPj4+MV18PW8odC5jaGFyQ29kZUF0KGkpPDwxNi1pJTIqMTYpO3JldHVybiBlLmNyZWF0ZShuLDIqcil9fX0oKSxuLmVuYy5VdGYxNil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvLGkscyxhLGM7dC5leHBvcnRzPShuPXIoMCkscigxOCksaT0obz1uKS5saWIuV29yZEFycmF5LHM9by5hbGdvLGE9cy5TSEEyNTYsYz1zLlNIQTIyND1hLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBpLmluaXQoWzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD1hLl9kb0ZpbmFsaXplLmNhbGwodGhpcyk7cmV0dXJuIHQuc2lnQnl0ZXMtPTQsdH19KSxvLlNIQTIyND1hLl9jcmVhdGVIZWxwZXIoYyksby5IbWFjU0hBMjI0PWEuX2NyZWF0ZUhtYWNIZWxwZXIoYyksbi5TSEEyMjQpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjLHUsbDt0LmV4cG9ydHM9KG49cigwKSxyKDEwKSxyKDE5KSxpPShvPW4pLng2NCxzPWkuV29yZCxhPWkuV29yZEFycmF5LGM9by5hbGdvLHU9Yy5TSEE1MTIsbD1jLlNIQTM4ND11LmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBhLmluaXQoW25ldyBzLmluaXQoMzQxODA3MDM2NSwzMjM4MzcxMDMyKSxuZXcgcy5pbml0KDE2NTQyNzAyNTAsOTE0MTUwNjYzKSxuZXcgcy5pbml0KDI0Mzg1MjkzNzAsODEyNzAyOTk5KSxuZXcgcy5pbml0KDM1NTQ2MjM2MCw0MTQ0OTEyNjk3KSxuZXcgcy5pbml0KDE3MzE0MDU0MTUsNDI5MDc3NTg1NyksbmV3IHMuaW5pdCgyMzk0MTgwMjMxLDE3NTA2MDMwMjUpLG5ldyBzLmluaXQoMzY3NTAwODUyNSwxNjk0MDc2ODM5KSxuZXcgcy5pbml0KDEyMDMwNjI4MTMsMzIwNDA3NTQyOCldKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD11Ll9kb0ZpbmFsaXplLmNhbGwodGhpcyk7cmV0dXJuIHQuc2lnQnl0ZXMtPTE2LHR9fSksby5TSEEzODQ9dS5fY3JlYXRlSGVscGVyKGwpLG8uSG1hY1NIQTM4ND11Ll9jcmVhdGVIbWFjSGVscGVyKGwpLG4uU0hBMzg0KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLFxuLyoqIEBwcmVzZXJ2ZVxuXHQoYykgMjAxMiBieSBDw6lkcmljIE1lc25pbC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cblxuXHRSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6XG5cblx0ICAgIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuXHQgICAgLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG5cblx0VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuXHQqL1xuZnVuY3Rpb24odCl7dmFyIGU9bixyPWUubGliLG89ci5Xb3JkQXJyYXksaT1yLkhhc2hlcixzPWUuYWxnbyxhPW8uY3JlYXRlKFswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwyLDE0LDExLDgsMywxMCwxNCw0LDksMTUsOCwxLDIsNywwLDYsMTMsMTEsNSwxMiwxLDksMTEsMTAsMCw4LDEyLDQsMTMsMyw3LDE1LDE0LDUsNiwyLDQsMCw1LDksNywxMiwyLDEwLDE0LDEsMyw4LDExLDYsMTUsMTNdKSxjPW8uY3JlYXRlKFs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdKSx1PW8uY3JlYXRlKFsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSksbD1vLmNyZWF0ZShbOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV0pLGg9by5jcmVhdGUoWzAsMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMjg0MDg1MzgzOF0pLGY9by5jcmVhdGUoWzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF0pLHA9cy5SSVBFTUQxNjA9aS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1vLmNyZWF0ZShbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjwxNjtyKyspe3ZhciBuPWUrcixvPXRbbl07dFtuXT0xNjcxMTkzNSYobzw8OHxvPj4+MjQpfDQyNzgyNTUzNjAmKG88PDI0fG8+Pj44KX12YXIgaSxzLHAsdyxiLEIsRixOLGsseCxTLEE9dGhpcy5faGFzaC53b3JkcyxPPWgud29yZHMsVD1mLndvcmRzLFA9YS53b3JkcyxNPWMud29yZHMsQz11LndvcmRzLEU9bC53b3Jkcztmb3IoQj1pPUFbMF0sRj1zPUFbMV0sTj1wPUFbMl0saz13PUFbM10seD1iPUFbNF0scj0wO3I8ODA7cis9MSlTPWkrdFtlK1Bbcl1dfDAsUys9cjwxNj9kKHMscCx3KStPWzBdOnI8MzI/bShzLHAsdykrT1sxXTpyPDQ4P3kocyxwLHcpK09bMl06cjw2ND9nKHMscCx3KStPWzNdOl8ocyxwLHcpK09bNF0sUz0oUz12KFN8PTAsQ1tyXSkpK2J8MCxpPWIsYj13LHc9dihwLDEwKSxwPXMscz1TLFM9Qit0W2UrTVtyXV18MCxTKz1yPDE2P18oRixOLGspK1RbMF06cjwzMj9nKEYsTixrKStUWzFdOnI8NDg/eShGLE4saykrVFsyXTpyPDY0P20oRixOLGspK1RbM106ZChGLE4saykrVFs0XSxTPShTPXYoU3w9MCxFW3JdKSkreHwwLEI9eCx4PWssaz12KE4sMTApLE49RixGPVM7Uz1BWzFdK3Ara3wwLEFbMV09QVsyXSt3K3h8MCxBWzJdPUFbM10rYitCfDAsQVszXT1BWzRdK2krRnwwLEFbNF09QVswXStzK058MCxBWzBdPVN9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMscj04KnRoaXMuX25EYXRhQnl0ZXMsbj04KnQuc2lnQnl0ZXM7ZVtuPj4+NV18PTEyODw8MjQtbiUzMixlWzE0KyhuKzY0Pj4+OTw8NCldPTE2NzExOTM1JihyPDw4fHI+Pj4yNCl8NDI3ODI1NTM2MCYocjw8MjR8cj4+PjgpLHQuc2lnQnl0ZXM9NCooZS5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgbz10aGlzLl9oYXNoLGk9by53b3JkcyxzPTA7czw1O3MrKyl7dmFyIGE9aVtzXTtpW3NdPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpfXJldHVybiBvfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWkuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtmdW5jdGlvbiBkKHQsZSxyKXtyZXR1cm4gdF5lXnJ9ZnVuY3Rpb24gbSh0LGUscil7cmV0dXJuIHQmZXx+dCZyfWZ1bmN0aW9uIHkodCxlLHIpe3JldHVybih0fH5lKV5yfWZ1bmN0aW9uIGcodCxlLHIpe3JldHVybiB0JnJ8ZSZ+cn1mdW5jdGlvbiBfKHQsZSxyKXtyZXR1cm4gdF4oZXx+cil9ZnVuY3Rpb24gdih0LGUpe3JldHVybiB0PDxlfHQ+Pj4zMi1lfWUuUklQRU1EMTYwPWkuX2NyZWF0ZUhlbHBlcihwKSxlLkhtYWNSSVBFTUQxNjA9aS5fY3JlYXRlSG1hY0hlbHBlcihwKX0oTWF0aCksbi5SSVBFTUQxNjApfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjLHUsbCxoO3QuZXhwb3J0cz0obj1yKDApLHIoMTEpLHIoMTIpLGk9KG89bikubGliLHM9aS5CYXNlLGE9aS5Xb3JkQXJyYXksYz1vLmFsZ28sdT1jLlNIQTEsbD1jLkhNQUMsaD1jLlBCS0RGMj1zLmV4dGVuZCh7Y2ZnOnMuZXh0ZW5kKHtrZXlTaXplOjQsaGFzaGVyOnUsaXRlcmF0aW9uczoxfSksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCl9LGNvbXB1dGU6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5jZmcsbj1sLmNyZWF0ZShyLmhhc2hlcix0KSxvPWEuY3JlYXRlKCksaT1hLmNyZWF0ZShbMV0pLHM9by53b3JkcyxjPWkud29yZHMsdT1yLmtleVNpemUsaD1yLml0ZXJhdGlvbnM7cy5sZW5ndGg8dTspe3ZhciBmPW4udXBkYXRlKGUpLmZpbmFsaXplKGkpO24ucmVzZXQoKTtmb3IodmFyIHA9Zi53b3JkcyxkPXAubGVuZ3RoLG09Zix5PTE7eTxoO3krKyl7bT1uLmZpbmFsaXplKG0pLG4ucmVzZXQoKTtmb3IodmFyIGc9bS53b3JkcyxfPTA7XzxkO18rKylwW19dXj1nW19dfW8uY29uY2F0KGYpLGNbMF0rK31yZXR1cm4gby5zaWdCeXRlcz00KnUsb319KSxvLlBCS0RGMj1mdW5jdGlvbih0LGUscil7cmV0dXJuIGguY3JlYXRlKHIpLmNvbXB1dGUodCxlKX0sbi5QQktERjIpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLm1vZGUuQ0ZCPWZ1bmN0aW9uKCl7dmFyIHQ9bi5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpO2Z1bmN0aW9uIGUodCxlLHIsbil7dmFyIG89dGhpcy5faXY7aWYobyl7dmFyIGk9by5zbGljZSgwKTt0aGlzLl9pdj12b2lkIDB9ZWxzZSBpPXRoaXMuX3ByZXZCbG9jaztuLmVuY3J5cHRCbG9jayhpLDApO2Zvcih2YXIgcz0wO3M8cjtzKyspdFtlK3NdXj1pW3NdfXJldHVybiB0LkVuY3J5cHRvcj10LmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIG49dGhpcy5fY2lwaGVyLG89bi5ibG9ja1NpemU7ZS5jYWxsKHRoaXMsdCxyLG8sbiksdGhpcy5fcHJldkJsb2NrPXQuc2xpY2UocixyK28pfX0pLHQuRGVjcnlwdG9yPXQuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXt2YXIgbj10aGlzLl9jaXBoZXIsbz1uLmJsb2NrU2l6ZSxpPXQuc2xpY2UocixyK28pO2UuY2FsbCh0aGlzLHQscixvLG4pLHRoaXMuX3ByZXZCbG9jaz1pfX0pLHR9KCksbi5tb2RlLkNGQil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvLGk7dC5leHBvcnRzPShuPXIoMCkscigxKSxuLm1vZGUuQ1RSPShvPW4ubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKSxpPW8uRW5jcnlwdG9yPW8uZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9jaXBoZXIsbj1yLmJsb2NrU2l6ZSxvPXRoaXMuX2l2LGk9dGhpcy5fY291bnRlcjtvJiYoaT10aGlzLl9jb3VudGVyPW8uc2xpY2UoMCksdGhpcy5faXY9dm9pZCAwKTt2YXIgcz1pLnNsaWNlKDApO3IuZW5jcnlwdEJsb2NrKHMsMCksaVtuLTFdPWlbbi0xXSsxfDA7Zm9yKHZhciBhPTA7YTxuO2ErKyl0W2UrYV1ePXNbYV19fSksby5EZWNyeXB0b3I9aSxvKSxuLm1vZGUuQ1RSKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoMSksXG4vKiogQHByZXNlcnZlXG5cdCAqIENvdW50ZXIgYmxvY2sgbW9kZSBjb21wYXRpYmxlIHdpdGggIERyIEJyaWFuIEdsYWRtYW4gZmlsZWVuYy5jXG5cdCAqIGRlcml2ZWQgZnJvbSBDcnlwdG9KUy5tb2RlLkNUUlxuXHQgKiBKYW4gSHJ1YnkgamhydWJ5LndlYkBnbWFpbC5jb21cblx0ICovXG5uLm1vZGUuQ1RSR2xhZG1hbj1mdW5jdGlvbigpe3ZhciB0PW4ubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtmdW5jdGlvbiBlKHQpe2lmKDI1NT09KHQ+PjI0JjI1NSkpe3ZhciBlPXQ+PjE2JjI1NSxyPXQ+PjgmMjU1LG49MjU1JnQ7MjU1PT09ZT8oZT0wLDI1NT09PXI/KHI9MCwyNTU9PT1uP249MDorK24pOisrcik6KytlLHQ9MCx0Kz1lPDwxNix0Kz1yPDw4LHQrPW59ZWxzZSB0Kz0xPDwyNDtyZXR1cm4gdH12YXIgcj10LkVuY3J5cHRvcj10LmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIG49dGhpcy5fY2lwaGVyLG89bi5ibG9ja1NpemUsaT10aGlzLl9pdixzPXRoaXMuX2NvdW50ZXI7aSYmKHM9dGhpcy5fY291bnRlcj1pLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCksZnVuY3Rpb24odCl7MD09PSh0WzBdPWUodFswXSkpJiYodFsxXT1lKHRbMV0pKX0ocyk7dmFyIGE9cy5zbGljZSgwKTtuLmVuY3J5cHRCbG9jayhhLDApO2Zvcih2YXIgYz0wO2M8bztjKyspdFtyK2NdXj1hW2NdfX0pO3JldHVybiB0LkRlY3J5cHRvcj1yLHR9KCksbi5tb2RlLkNUUkdsYWRtYW4pfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5tb2RlLk9GQj0obz1uLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksaT1vLkVuY3J5cHRvcj1vLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fY2lwaGVyLG49ci5ibG9ja1NpemUsbz10aGlzLl9pdixpPXRoaXMuX2tleXN0cmVhbTtvJiYoaT10aGlzLl9rZXlzdHJlYW09by5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLHIuZW5jcnlwdEJsb2NrKGksMCk7Zm9yKHZhciBzPTA7czxuO3MrKyl0W2Urc11ePWlbc119fSksby5EZWNyeXB0b3I9aSxvKSxuLm1vZGUuT0ZCKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG87dC5leHBvcnRzPShuPXIoMCkscigxKSxuLm1vZGUuRUNCPSgobz1uLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCkpLkVuY3J5cHRvcj1vLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY2lwaGVyLmVuY3J5cHRCbG9jayh0LGUpfX0pLG8uRGVjcnlwdG9yPW8uZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9jaXBoZXIuZGVjcnlwdEJsb2NrKHQsZSl9fSksbyksbi5tb2RlLkVDQil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDEpLG4ucGFkLkFuc2lYOTIzPXtwYWQ6ZnVuY3Rpb24odCxlKXt2YXIgcj10LnNpZ0J5dGVzLG49NCplLG89bi1yJW4saT1yK28tMTt0LmNsYW1wKCksdC53b3Jkc1tpPj4+Ml18PW88PDI0LWklNCo4LHQuc2lnQnl0ZXMrPW99LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciBlPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPWV9fSxuLnBhZC5BbnNpeDkyMyl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDEpLG4ucGFkLklzbzEwMTI2PXtwYWQ6ZnVuY3Rpb24odCxlKXt2YXIgcj00KmUsbz1yLXQuc2lnQnl0ZXMlcjt0LmNvbmNhdChuLmxpYi5Xb3JkQXJyYXkucmFuZG9tKG8tMSkpLmNvbmNhdChuLmxpYi5Xb3JkQXJyYXkuY3JlYXRlKFtvPDwyNF0sMSkpfSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgZT0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1lfX0sbi5wYWQuSXNvMTAxMjYpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5Jc285Nzk3MT17cGFkOmZ1bmN0aW9uKHQsZSl7dC5jb25jYXQobi5saWIuV29yZEFycmF5LmNyZWF0ZShbMjE0NzQ4MzY0OF0sMSkpLG4ucGFkLlplcm9QYWRkaW5nLnBhZCh0LGUpfSx1bnBhZDpmdW5jdGlvbih0KXtuLnBhZC5aZXJvUGFkZGluZy51bnBhZCh0KSx0LnNpZ0J5dGVzLS19fSxuLnBhZC5Jc285Nzk3MSl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDEpLG4ucGFkLlplcm9QYWRkaW5nPXtwYWQ6ZnVuY3Rpb24odCxlKXt2YXIgcj00KmU7dC5jbGFtcCgpLHQuc2lnQnl0ZXMrPXItKHQuc2lnQnl0ZXMlcnx8cil9LHVucGFkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcy0xOyEoZVtyPj4+Ml0+Pj4yNC1yJTQqOCYyNTUpOylyLS07dC5zaWdCeXRlcz1yKzF9fSxuLnBhZC5aZXJvUGFkZGluZyl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDEpLG4ucGFkLk5vUGFkZGluZz17cGFkOmZ1bmN0aW9uKCl7fSx1bnBhZDpmdW5jdGlvbigpe319LG4ucGFkLk5vUGFkZGluZyl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvLGksczt0LmV4cG9ydHM9KG49cigwKSxyKDEpLGk9KG89bikubGliLkNpcGhlclBhcmFtcyxzPW8uZW5jLkhleCxvLmZvcm1hdC5IZXg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jaXBoZXJ0ZXh0LnRvU3RyaW5nKHMpfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1zLnBhcnNlKHQpO3JldHVybiBpLmNyZWF0ZSh7Y2lwaGVydGV4dDplfSl9fSxuLmZvcm1hdC5IZXgpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscig2KSxyKDcpLHIoNSkscigxKSxmdW5jdGlvbigpe3ZhciB0PW4sZT10LmxpYi5CbG9ja0NpcGhlcixyPXQuYWxnbyxvPVtdLGk9W10scz1bXSxhPVtdLGM9W10sdT1bXSxsPVtdLGg9W10sZj1bXSxwPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTwyNTY7ZSsrKXRbZV09ZTwxMjg/ZTw8MTplPDwxXjI4Mzt2YXIgcj0wLG49MDtmb3IoZT0wO2U8MjU2O2UrKyl7dmFyIGQ9bl5uPDwxXm48PDJebjw8M15uPDw0O2Q9ZD4+PjheMjU1JmReOTksb1tyXT1kLGlbZF09cjt2YXIgbT10W3JdLHk9dFttXSxnPXRbeV0sXz0yNTcqdFtkXV4xNjg0MzAwOCpkO3Nbcl09Xzw8MjR8Xz4+PjgsYVtyXT1fPDwxNnxfPj4+MTYsY1tyXT1fPDw4fF8+Pj4yNCx1W3JdPV8sXz0xNjg0MzAwOSpnXjY1NTM3KnleMjU3Km1eMTY4NDMwMDgqcixsW2RdPV88PDI0fF8+Pj44LGhbZF09Xzw8MTZ8Xz4+PjE2LGZbZF09Xzw8OHxfPj4+MjQscFtkXT1fLHI/KHI9bV50W3RbdFtnXm1dXV0sbl49dFt0W25dXSk6cj1uPTF9fSgpO3ZhciBkPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxtPXIuQUVTPWUuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2lmKCF0aGlzLl9uUm91bmRzfHx0aGlzLl9rZXlQcmlvclJlc2V0IT09dGhpcy5fa2V5KXtmb3IodmFyIHQ9dGhpcy5fa2V5UHJpb3JSZXNldD10aGlzLl9rZXksZT10LndvcmRzLHI9dC5zaWdCeXRlcy80LG49NCooKHRoaXMuX25Sb3VuZHM9cis2KSsxKSxpPXRoaXMuX2tleVNjaGVkdWxlPVtdLHM9MDtzPG47cysrKWlmKHM8cilpW3NdPWVbc107ZWxzZXt2YXIgYT1pW3MtMV07cyVyP3I+NiYmcyVyPT00JiYoYT1vW2E+Pj4yNF08PDI0fG9bYT4+PjE2JjI1NV08PDE2fG9bYT4+PjgmMjU1XTw8OHxvWzI1NSZhXSk6KGE9b1soYT1hPDw4fGE+Pj4yNCk+Pj4yNF08PDI0fG9bYT4+PjE2JjI1NV08PDE2fG9bYT4+PjgmMjU1XTw8OHxvWzI1NSZhXSxhXj1kW3MvcnwwXTw8MjQpLGlbc109aVtzLXJdXmF9Zm9yKHZhciBjPXRoaXMuX2ludktleVNjaGVkdWxlPVtdLHU9MDt1PG47dSsrKXM9bi11LGE9dSU0P2lbc106aVtzLTRdLGNbdV09dTw0fHxzPD00P2E6bFtvW2E+Pj4yNF1dXmhbb1thPj4+MTYmMjU1XV1eZltvW2E+Pj44JjI1NV1dXnBbb1syNTUmYV1dfX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQsZSl7dGhpcy5fZG9DcnlwdEJsb2NrKHQsZSx0aGlzLl9rZXlTY2hlZHVsZSxzLGEsYyx1LG8pfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgcj10W2UrMV07dFtlKzFdPXRbZSszXSx0W2UrM109cix0aGlzLl9kb0NyeXB0QmxvY2sodCxlLHRoaXMuX2ludktleVNjaGVkdWxlLGwsaCxmLHAsaSkscj10W2UrMV0sdFtlKzFdPXRbZSszXSx0W2UrM109cn0sX2RvQ3J5cHRCbG9jazpmdW5jdGlvbih0LGUscixuLG8saSxzLGEpe2Zvcih2YXIgYz10aGlzLl9uUm91bmRzLHU9dFtlXV5yWzBdLGw9dFtlKzFdXnJbMV0saD10W2UrMl1eclsyXSxmPXRbZSszXV5yWzNdLHA9NCxkPTE7ZDxjO2QrKyl7dmFyIG09blt1Pj4+MjRdXm9bbD4+PjE2JjI1NV1eaVtoPj4+OCYyNTVdXnNbMjU1JmZdXnJbcCsrXSx5PW5bbD4+PjI0XV5vW2g+Pj4xNiYyNTVdXmlbZj4+PjgmMjU1XV5zWzI1NSZ1XV5yW3ArK10sZz1uW2g+Pj4yNF1eb1tmPj4+MTYmMjU1XV5pW3U+Pj44JjI1NV1ec1syNTUmbF1ecltwKytdLF89bltmPj4+MjRdXm9bdT4+PjE2JjI1NV1eaVtsPj4+OCYyNTVdXnNbMjU1JmhdXnJbcCsrXTt1PW0sbD15LGg9ZyxmPV99bT0oYVt1Pj4+MjRdPDwyNHxhW2w+Pj4xNiYyNTVdPDwxNnxhW2g+Pj44JjI1NV08PDh8YVsyNTUmZl0pXnJbcCsrXSx5PShhW2w+Pj4yNF08PDI0fGFbaD4+PjE2JjI1NV08PDE2fGFbZj4+PjgmMjU1XTw8OHxhWzI1NSZ1XSlecltwKytdLGc9KGFbaD4+PjI0XTw8MjR8YVtmPj4+MTYmMjU1XTw8MTZ8YVt1Pj4+OCYyNTVdPDw4fGFbMjU1JmxdKV5yW3ArK10sXz0oYVtmPj4+MjRdPDwyNHxhW3U+Pj4xNiYyNTVdPDwxNnxhW2w+Pj44JjI1NV08PDh8YVsyNTUmaF0pXnJbcCsrXSx0W2VdPW0sdFtlKzFdPXksdFtlKzJdPWcsdFtlKzNdPV99LGtleVNpemU6OH0pO3QuQUVTPWUuX2NyZWF0ZUhlbHBlcihtKX0oKSxuLkFFUyl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDYpLHIoNykscig1KSxyKDEpLGZ1bmN0aW9uKCl7dmFyIHQ9bixlPXQubGliLHI9ZS5Xb3JkQXJyYXksbz1lLkJsb2NrQ2lwaGVyLGk9dC5hbGdvLHM9WzU3LDQ5LDQxLDMzLDI1LDE3LDksMSw1OCw1MCw0MiwzNCwyNiwxOCwxMCwyLDU5LDUxLDQzLDM1LDI3LDE5LDExLDMsNjAsNTIsNDQsMzYsNjMsNTUsNDcsMzksMzEsMjMsMTUsNyw2Miw1NCw0NiwzOCwzMCwyMiwxNCw2LDYxLDUzLDQ1LDM3LDI5LDIxLDEzLDUsMjgsMjAsMTIsNF0sYT1bMTQsMTcsMTEsMjQsMSw1LDMsMjgsMTUsNiwyMSwxMCwyMywxOSwxMiw0LDI2LDgsMTYsNywyNywyMCwxMywyLDQxLDUyLDMxLDM3LDQ3LDU1LDMwLDQwLDUxLDQ1LDMzLDQ4LDQ0LDQ5LDM5LDU2LDM0LDUzLDQ2LDQyLDUwLDM2LDI5LDMyXSxjPVsxLDIsNCw2LDgsMTAsMTIsMTQsMTUsMTcsMTksMjEsMjMsMjUsMjcsMjhdLHU9W3swOjg0MjE4ODgsMjY4NDM1NDU2OjMyNzY4LDUzNjg3MDkxMjo4NDIxMzc4LDgwNTMwNjM2ODoyLDEwNzM3NDE4MjQ6NTEyLDEzNDIxNzcyODA6ODQyMTg5MCwxNjEwNjEyNzM2OjgzODkxMjIsMTg3OTA0ODE5Mjo4Mzg4NjA4LDIxNDc0ODM2NDg6NTE0LDI0MTU5MTkxMDQ6ODM4OTEyMCwyNjg0MzU0NTYwOjMzMjgwLDI5NTI3OTAwMTY6ODQyMTM3NiwzMjIxMjI1NDcyOjMyNzcwLDM0ODk2NjA5Mjg6ODM4ODYxMCwzNzU4MDk2Mzg0OjAsNDAyNjUzMTg0MDozMzI4MiwxMzQyMTc3Mjg6MCw0MDI2NTMxODQ6ODQyMTg5MCw2NzEwODg2NDA6MzMyODIsOTM5NTI0MDk2OjMyNzY4LDEyMDc5NTk1NTI6ODQyMTg4OCwxNDc2Mzk1MDA4OjUxMiwxNzQ0ODMwNDY0Ojg0MjEzNzgsMjAxMzI2NTkyMDoyLDIyODE3MDEzNzY6ODM4OTEyMCwyNTUwMTM2ODMyOjMzMjgwLDI4MTg1NzIyODg6ODQyMTM3NiwzMDg3MDA3NzQ0OjgzODkxMjIsMzM1NTQ0MzIwMDo4Mzg4NjEwLDM2MjM4Nzg2NTY6MzI3NzAsMzg5MjMxNDExMjo1MTQsNDE2MDc0OTU2ODo4Mzg4NjA4LDE6MzI3NjgsMjY4NDM1NDU3OjIsNTM2ODcwOTEzOjg0MjE4ODgsODA1MzA2MzY5OjgzODg2MDgsMTA3Mzc0MTgyNTo4NDIxMzc4LDEzNDIxNzcyODE6MzMyODAsMTYxMDYxMjczNzo1MTIsMTg3OTA0ODE5Mzo4Mzg5MTIyLDIxNDc0ODM2NDk6ODQyMTg5MCwyNDE1OTE5MTA1Ojg0MjEzNzYsMjY4NDM1NDU2MTo4Mzg4NjEwLDI5NTI3OTAwMTc6MzMyODIsMzIyMTIyNTQ3Mzo1MTQsMzQ4OTY2MDkyOTo4Mzg5MTIwLDM3NTgwOTYzODU6MzI3NzAsNDAyNjUzMTg0MTowLDEzNDIxNzcyOTo4NDIxODkwLDQwMjY1MzE4NTo4NDIxMzc2LDY3MTA4ODY0MTo4Mzg4NjA4LDkzOTUyNDA5Nzo1MTIsMTIwNzk1OTU1MzozMjc2OCwxNDc2Mzk1MDA5OjgzODg2MTAsMTc0NDgzMDQ2NToyLDIwMTMyNjU5MjE6MzMyODIsMjI4MTcwMTM3NzozMjc3MCwyNTUwMTM2ODMzOjgzODkxMjIsMjgxODU3MjI4OTo1MTQsMzA4NzAwNzc0NTo4NDIxODg4LDMzNTU0NDMyMDE6ODM4OTEyMCwzNjIzODc4NjU3OjAsMzg5MjMxNDExMzozMzI4MCw0MTYwNzQ5NTY5Ojg0MjEzNzh9LHswOjEwNzQyODI1MTIsMTY3NzcyMTY6MTYzODQsMzM1NTQ0MzI6NTI0Mjg4LDUwMzMxNjQ4OjEwNzQyNjYxMjgsNjcxMDg4NjQ6MTA3Mzc0MTg0MCw4Mzg4NjA4MDoxMDc0MjgyNDk2LDEwMDY2MzI5NjoxMDczNzU4MjA4LDExNzQ0MDUxMjoxNiwxMzQyMTc3Mjg6NTQwNjcyLDE1MDk5NDk0NDoxMDczNzU4MjI0LDE2Nzc3MjE2MDoxMDczNzQxODI0LDE4NDU0OTM3Njo1NDA2ODgsMjAxMzI2NTkyOjUyNDMwNCwyMTgxMDM4MDg6MCwyMzQ4ODEwMjQ6MTY0MDAsMjUxNjU4MjQwOjEwNzQyNjYxMTIsODM4ODYwODoxMDczNzU4MjA4LDI1MTY1ODI0OjU0MDY4OCw0MTk0MzA0MDoxNiw1ODcyMDI1NjoxMDczNzU4MjI0LDc1NDk3NDcyOjEwNzQyODI1MTIsOTIyNzQ2ODg6MTA3Mzc0MTgyNCwxMDkwNTE5MDQ6NTI0Mjg4LDEyNTgyOTEyMDoxMDc0MjY2MTI4LDE0MjYwNjMzNjo1MjQzMDQsMTU5MzgzNTUyOjAsMTc2MTYwNzY4OjE2Mzg0LDE5MjkzNzk4NDoxMDc0MjY2MTEyLDIwOTcxNTIwMDoxMDczNzQxODQwLDIyNjQ5MjQxNjo1NDA2NzIsMjQzMjY5NjMyOjEwNzQyODI0OTYsMjYwMDQ2ODQ4OjE2NDAwLDI2ODQzNTQ1NjowLDI4NTIxMjY3MjoxMDc0MjY2MTI4LDMwMTk4OTg4ODoxMDczNzU4MjI0LDMxODc2NzEwNDoxMDc0MjgyNDk2LDMzNTU0NDMyMDoxMDc0MjY2MTEyLDM1MjMyMTUzNjoxNiwzNjkwOTg3NTI6NTQwNjg4LDM4NTg3NTk2ODoxNjM4NCw0MDI2NTMxODQ6MTY0MDAsNDE5NDMwNDAwOjUyNDI4OCw0MzYyMDc2MTY6NTI0MzA0LDQ1Mjk4NDgzMjoxMDczNzQxODQwLDQ2OTc2MjA0ODo1NDA2NzIsNDg2NTM5MjY0OjEwNzM3NTgyMDgsNTAzMzE2NDgwOjEwNzM3NDE4MjQsNTIwMDkzNjk2OjEwNzQyODI1MTIsMjc2ODI0MDY0OjU0MDY4OCwyOTM2MDEyODA6NTI0Mjg4LDMxMDM3ODQ5NjoxMDc0MjY2MTEyLDMyNzE1NTcxMjoxNjM4NCwzNDM5MzI5Mjg6MTA3Mzc1ODIwOCwzNjA3MTAxNDQ6MTA3NDI4MjUxMiwzNzc0ODczNjA6MTYsMzk0MjY0NTc2OjEwNzM3NDE4MjQsNDExMDQxNzkyOjEwNzQyODI0OTYsNDI3ODE5MDA4OjEwNzM3NDE4NDAsNDQ0NTk2MjI0OjEwNzM3NTgyMjQsNDYxMzczNDQwOjUyNDMwNCw0NzgxNTA2NTY6MCw0OTQ5Mjc4NzI6MTY0MDAsNTExNzA1MDg4OjEwNzQyNjYxMjgsNTI4NDgyMzA0OjU0MDY3Mn0sezA6MjYwLDEwNDg1NzY6MCwyMDk3MTUyOjY3MTA5MTIwLDMxNDU3Mjg6NjU3OTYsNDE5NDMwNDo2NTU0MCw1MjQyODgwOjY3MTA4ODY4LDYyOTE0NTY6NjcxNzQ2NjAsNzM0MDAzMjo2NzE3NDQwMCw4Mzg4NjA4OjY3MTA4ODY0LDk0MzcxODQ6NjcxNzQ2NTYsMTA0ODU3NjA6NjU3OTIsMTE1MzQzMzY6NjcxNzQ0MDQsMTI1ODI5MTI6NjcxMDkxMjQsMTM2MzE0ODg6NjU1MzYsMTQ2ODAwNjQ6NCwxNTcyODY0MDoyNTYsNTI0Mjg4OjY3MTc0NjU2LDE1NzI4NjQ6NjcxNzQ0MDQsMjYyMTQ0MDowLDM2NzAwMTY6NjcxMDkxMjAsNDcxODU5Mjo2NzEwODg2OCw1NzY3MTY4OjY1NTM2LDY4MTU3NDQ6NjU1NDAsNzg2NDMyMDoyNjAsODkxMjg5Njo0LDk5NjE0NzI6MjU2LDExMDEwMDQ4OjY3MTc0NDAwLDEyMDU4NjI0OjY1Nzk2LDEzMTA3MjAwOjY1NzkyLDE0MTU1Nzc2OjY3MTA5MTI0LDE1MjA0MzUyOjY3MTc0NjYwLDE2MjUyOTI4OjY3MTA4ODY0LDE2Nzc3MjE2OjY3MTc0NjU2LDE3ODI1NzkyOjY1NTQwLDE4ODc0MzY4OjY1NTM2LDE5OTIyOTQ0OjY3MTA5MTIwLDIwOTcxNTIwOjI1NiwyMjAyMDA5Njo2NzE3NDY2MCwyMzA2ODY3Mjo2NzEwODg2OCwyNDExNzI0ODowLDI1MTY1ODI0OjY3MTA5MTI0LDI2MjE0NDAwOjY3MTA4ODY0LDI3MjYyOTc2OjQsMjgzMTE1NTI6NjU3OTIsMjkzNjAxMjg6NjcxNzQ0MDAsMzA0MDg3MDQ6MjYwLDMxNDU3MjgwOjY1Nzk2LDMyNTA1ODU2OjY3MTc0NDA0LDE3MzAxNTA0OjY3MTA4ODY0LDE4MzUwMDgwOjI2MCwxOTM5ODY1Njo2NzE3NDY1NiwyMDQ0NzIzMjowLDIxNDk1ODA4OjY1NTQwLDIyNTQ0Mzg0OjY3MTA5MTIwLDIzNTkyOTYwOjI1NiwyNDY0MTUzNjo2NzE3NDQwNCwyNTY5MDExMjo2NTUzNiwyNjczODY4ODo2NzE3NDY2MCwyNzc4NzI2NDo2NTc5NiwyODgzNTg0MDo2NzEwODg2OCwyOTg4NDQxNjo2NzEwOTEyNCwzMDkzMjk5Mjo2NzE3NDQwMCwzMTk4MTU2ODo0LDMzMDMwMTQ0OjY1NzkyfSx7MDoyMTUxNjgyMDQ4LDY1NTM2OjIxNDc0ODc4MDgsMTMxMDcyOjQxOTg0NjQsMTk2NjA4OjIxNTE2Nzc5NTIsMjYyMTQ0OjAsMzI3NjgwOjQxOTg0MDAsMzkzMjE2OjIxNDc0ODM3MTIsNDU4NzUyOjQxOTQzNjgsNTI0Mjg4OjIxNDc0ODM2NDgsNTg5ODI0OjQxOTQzMDQsNjU1MzYwOjY0LDcyMDg5NjoyMTQ3NDg3NzQ0LDc4NjQzMjoyMTUxNjc4MDE2LDg1MTk2ODo0MTYwLDkxNzUwNDo0MDk2LDk4MzA0MDoyMTUxNjgyMTEyLDMyNzY4OjIxNDc0ODc4MDgsOTgzMDQ6NjQsMTYzODQwOjIxNTE2NzgwMTYsMjI5Mzc2OjIxNDc0ODc3NDQsMjk0OTEyOjQxOTg0MDAsMzYwNDQ4OjIxNTE2ODIxMTIsNDI1OTg0OjAsNDkxNTIwOjIxNTE2Nzc5NTIsNTU3MDU2OjQwOTYsNjIyNTkyOjIxNTE2ODIwNDgsNjg4MTI4OjQxOTQzMDQsNzUzNjY0OjQxNjAsODE5MjAwOjIxNDc0ODM2NDgsODg0NzM2OjQxOTQzNjgsOTUwMjcyOjQxOTg0NjQsMTAxNTgwODoyMTQ3NDgzNzEyLDEwNDg1NzY6NDE5NDM2OCwxMTE0MTEyOjQxOTg0MDAsMTE3OTY0ODoyMTQ3NDgzNzEyLDEyNDUxODQ6MCwxMzEwNzIwOjQxNjAsMTM3NjI1NjoyMTUxNjc4MDE2LDE0NDE3OTI6MjE1MTY4MjA0OCwxNTA3MzI4OjIxNDc0ODc4MDgsMTU3Mjg2NDoyMTUxNjgyMTEyLDE2Mzg0MDA6MjE0NzQ4MzY0OCwxNzAzOTM2OjIxNTE2Nzc5NTIsMTc2OTQ3Mjo0MTk4NDY0LDE4MzUwMDg6MjE0NzQ4Nzc0NCwxOTAwNTQ0OjQxOTQzMDQsMTk2NjA4MDo2NCwyMDMxNjE2OjQwOTYsMTA4MTM0NDoyMTUxNjc3OTUyLDExNDY4ODA6MjE1MTY4MjExMiwxMjEyNDE2OjAsMTI3Nzk1Mjo0MTk4NDAwLDEzNDM0ODg6NDE5NDM2OCwxNDA5MDI0OjIxNDc0ODM2NDgsMTQ3NDU2MDoyMTQ3NDg3ODA4LDE1NDAwOTY6NjQsMTYwNTYzMjoyMTQ3NDgzNzEyLDE2NzExNjg6NDA5NiwxNzM2NzA0OjIxNDc0ODc3NDQsMTgwMjI0MDoyMTUxNjc4MDE2LDE4Njc3NzY6NDE2MCwxOTMzMzEyOjIxNTE2ODIwNDgsMTk5ODg0ODo0MTk0MzA0LDIwNjQzODQ6NDE5ODQ2NH0sezA6MTI4LDQwOTY6MTcwMzkzNjAsODE5MjoyNjIxNDQsMTIyODg6NTM2ODcwOTEyLDE2Mzg0OjUzNzEzMzE4NCwyMDQ4MDoxNjc3NzM0NCwyNDU3Njo1NTM2NDgyNTYsMjg2NzI6MjYyMjcyLDMyNzY4OjE2Nzc3MjE2LDM2ODY0OjUzNzEzMzA1Niw0MDk2MDo1MzY4NzEwNDAsNDUwNTY6NTUzOTEwNDAwLDQ5MTUyOjU1MzkxMDI3Miw1MzI0ODowLDU3MzQ0OjE3MDM5NDg4LDYxNDQwOjU1MzY0ODEyOCwyMDQ4OjE3MDM5NDg4LDYxNDQ6NTUzNjQ4MjU2LDEwMjQwOjEyOCwxNDMzNjoxNzAzOTM2MCwxODQzMjoyNjIxNDQsMjI1Mjg6NTM3MTMzMTg0LDI2NjI0OjU1MzkxMDI3MiwzMDcyMDo1MzY4NzA5MTIsMzQ4MTY6NTM3MTMzMDU2LDM4OTEyOjAsNDMwMDg6NTUzOTEwNDAwLDQ3MTA0OjE2Nzc3MzQ0LDUxMjAwOjUzNjg3MTA0MCw1NTI5Njo1NTM2NDgxMjgsNTkzOTI6MTY3NzcyMTYsNjM0ODg6MjYyMjcyLDY1NTM2OjI2MjE0NCw2OTYzMjoxMjgsNzM3Mjg6NTM2ODcwOTEyLDc3ODI0OjU1MzY0ODI1Niw4MTkyMDoxNjc3NzM0NCw4NjAxNjo1NTM5MTAyNzIsOTAxMTI6NTM3MTMzMTg0LDk0MjA4OjE2Nzc3MjE2LDk4MzA0OjU1MzkxMDQwMCwxMDI0MDA6NTUzNjQ4MTI4LDEwNjQ5NjoxNzAzOTM2MCwxMTA1OTI6NTM3MTMzMDU2LDExNDY4ODoyNjIyNzIsMTE4Nzg0OjUzNjg3MTA0MCwxMjI4ODA6MCwxMjY5NzY6MTcwMzk0ODgsNjc1ODQ6NTUzNjQ4MjU2LDcxNjgwOjE2Nzc3MjE2LDc1Nzc2OjE3MDM5MzYwLDc5ODcyOjUzNzEzMzE4NCw4Mzk2ODo1MzY4NzA5MTIsODgwNjQ6MTcwMzk0ODgsOTIxNjA6MTI4LDk2MjU2OjU1MzkxMDI3MiwxMDAzNTI6MjYyMjcyLDEwNDQ0ODo1NTM5MTA0MDAsMTA4NTQ0OjAsMTEyNjQwOjU1MzY0ODEyOCwxMTY3MzY6MTY3NzczNDQsMTIwODMyOjI2MjE0NCwxMjQ5Mjg6NTM3MTMzMDU2LDEyOTAyNDo1MzY4NzEwNDB9LHswOjI2ODQzNTQ2NCwyNTY6ODE5Miw1MTI6MjcwNTMyNjA4LDc2ODoyNzA1NDA4MDgsMTAyNDoyNjg0NDM2NDgsMTI4MDoyMDk3MTUyLDE1MzY6MjA5NzE2MCwxNzkyOjI2ODQzNTQ1NiwyMDQ4OjAsMjMwNDoyNjg0NDM2NTYsMjU2MDoyMTA1MzQ0LDI4MTY6OCwzMDcyOjI3MDUzMjYxNiwzMzI4OjIxMDUzNTIsMzU4NDo4MjAwLDM4NDA6MjcwNTQwODAwLDEyODoyNzA1MzI2MDgsMzg0OjI3MDU0MDgwOCw2NDA6OCw4OTY6MjA5NzE1MiwxMTUyOjIxMDUzNTIsMTQwODoyNjg0MzU0NjQsMTY2NDoyNjg0NDM2NDgsMTkyMDo4MjAwLDIxNzY6MjA5NzE2MCwyNDMyOjgxOTIsMjY4ODoyNjg0NDM2NTYsMjk0NDoyNzA1MzI2MTYsMzIwMDowLDM0NTY6MjcwNTQwODAwLDM3MTI6MjEwNTM0NCwzOTY4OjI2ODQzNTQ1Niw0MDk2OjI2ODQ0MzY0OCw0MzUyOjI3MDUzMjYxNiw0NjA4OjI3MDU0MDgwOCw0ODY0OjgyMDAsNTEyMDoyMDk3MTUyLDUzNzY6MjY4NDM1NDU2LDU2MzI6MjY4NDM1NDY0LDU4ODg6MjEwNTM0NCw2MTQ0OjIxMDUzNTIsNjQwMDowLDY2NTY6OCw2OTEyOjI3MDUzMjYwOCw3MTY4OjgxOTIsNzQyNDoyNjg0NDM2NTYsNzY4MDoyNzA1NDA4MDAsNzkzNjoyMDk3MTYwLDQyMjQ6OCw0NDgwOjIxMDUzNDQsNDczNjoyMDk3MTUyLDQ5OTI6MjY4NDM1NDY0LDUyNDg6MjY4NDQzNjQ4LDU1MDQ6ODIwMCw1NzYwOjI3MDU0MDgwOCw2MDE2OjI3MDUzMjYwOCw2MjcyOjI3MDU0MDgwMCw2NTI4OjI3MDUzMjYxNiw2Nzg0OjgxOTIsNzA0MDoyMTA1MzUyLDcyOTY6MjA5NzE2MCw3NTUyOjAsNzgwODoyNjg0MzU0NTYsODA2NDoyNjg0NDM2NTZ9LHswOjEwNDg1NzYsMTY6MzM1NTU0NTcsMzI6MTAyNCw0ODoxMDQ5NjAxLDY0OjM0NjA0MDMzLDgwOjAsOTY6MSwxMTI6MzQ2MDMwMDksMTI4OjMzNTU1NDU2LDE0NDoxMDQ4NTc3LDE2MDozMzU1NDQzMywxNzY6MzQ2MDQwMzIsMTkyOjM0NjAzMDA4LDIwODoxMDI1LDIyNDoxMDQ5NjAwLDI0MDozMzU1NDQzMiw4OjM0NjAzMDA5LDI0OjAsNDA6MzM1NTU0NTcsNTY6MzQ2MDQwMzIsNzI6MTA0ODU3Niw4ODozMzU1NDQzMywxMDQ6MzM1NTQ0MzIsMTIwOjEwMjUsMTM2OjEwNDk2MDEsMTUyOjMzNTU1NDU2LDE2ODozNDYwMzAwOCwxODQ6MTA0ODU3NywyMDA6MTAyNCwyMTY6MzQ2MDQwMzMsMjMyOjEsMjQ4OjEwNDk2MDAsMjU2OjMzNTU0NDMyLDI3MjoxMDQ4NTc2LDI4ODozMzU1NTQ1NywzMDQ6MzQ2MDMwMDksMzIwOjEwNDg1NzcsMzM2OjMzNTU1NDU2LDM1MjozNDYwNDAzMiwzNjg6MTA0OTYwMSwzODQ6MTAyNSw0MDA6MzQ2MDQwMzMsNDE2OjEwNDk2MDAsNDMyOjEsNDQ4OjAsNDY0OjM0NjAzMDA4LDQ4MDozMzU1NDQzMyw0OTY6MTAyNCwyNjQ6MTA0OTYwMCwyODA6MzM1NTU0NTcsMjk2OjM0NjAzMDA5LDMxMjoxLDMyODozMzU1NDQzMiwzNDQ6MTA0ODU3NiwzNjA6MTAyNSwzNzY6MzQ2MDQwMzIsMzkyOjMzNTU0NDMzLDQwODozNDYwMzAwOCw0MjQ6MCw0NDA6MzQ2MDQwMzMsNDU2OjEwNDk2MDEsNDcyOjEwMjQsNDg4OjMzNTU1NDU2LDUwNDoxMDQ4NTc3fSx7MDoxMzQyMTk4MDgsMToxMzEwNzIsMjoxMzQyMTc3MjgsMzozMiw0OjEzMTEwNCw1OjEzNDM1MDg4MCw2OjEzNDM1MDg0OCw3OjIwNDgsODoxMzQzNDg4MDAsOToxMzQyMTk3NzYsMTA6MTMzMTIwLDExOjEzNDM0ODgzMiwxMjoyMDgwLDEzOjAsMTQ6MTM0MjE3NzYwLDE1OjEzMzE1MiwyMTQ3NDgzNjQ4OjIwNDgsMjE0NzQ4MzY0OToxMzQzNTA4ODAsMjE0NzQ4MzY1MDoxMzQyMTk4MDgsMjE0NzQ4MzY1MToxMzQyMTc3MjgsMjE0NzQ4MzY1MjoxMzQzNDg4MDAsMjE0NzQ4MzY1MzoxMzMxMjAsMjE0NzQ4MzY1NDoxMzMxNTIsMjE0NzQ4MzY1NTozMiwyMTQ3NDgzNjU2OjEzNDIxNzc2MCwyMTQ3NDgzNjU3OjIwODAsMjE0NzQ4MzY1ODoxMzExMDQsMjE0NzQ4MzY1OToxMzQzNTA4NDgsMjE0NzQ4MzY2MDowLDIxNDc0ODM2NjE6MTM0MzQ4ODMyLDIxNDc0ODM2NjI6MTM0MjE5Nzc2LDIxNDc0ODM2NjM6MTMxMDcyLDE2OjEzMzE1MiwxNzoxMzQzNTA4NDgsMTg6MzIsMTk6MjA0OCwyMDoxMzQyMTk3NzYsMjE6MTM0MjE3NzYwLDIyOjEzNDM0ODgzMiwyMzoxMzEwNzIsMjQ6MCwyNToxMzExMDQsMjY6MTM0MzQ4ODAwLDI3OjEzNDIxOTgwOCwyODoxMzQzNTA4ODAsMjk6MTMzMTIwLDMwOjIwODAsMzE6MTM0MjE3NzI4LDIxNDc0ODM2NjQ6MTMxMDcyLDIxNDc0ODM2NjU6MjA0OCwyMTQ3NDgzNjY2OjEzNDM0ODgzMiwyMTQ3NDgzNjY3OjEzMzE1MiwyMTQ3NDgzNjY4OjMyLDIxNDc0ODM2Njk6MTM0MzQ4ODAwLDIxNDc0ODM2NzA6MTM0MjE3NzI4LDIxNDc0ODM2NzE6MTM0MjE5ODA4LDIxNDc0ODM2NzI6MTM0MzUwODgwLDIxNDc0ODM2NzM6MTM0MjE3NzYwLDIxNDc0ODM2NzQ6MTM0MjE5Nzc2LDIxNDc0ODM2NzU6MCwyMTQ3NDgzNjc2OjEzMzEyMCwyMTQ3NDgzNjc3OjIwODAsMjE0NzQ4MzY3ODoxMzExMDQsMjE0NzQ4MzY3OToxMzQzNTA4NDh9XSxsPVs0MTYwNzQ5NTY5LDUyODQ4MjMwNCwzMzAzMDE0NCwyMDY0Mzg0LDEyOTAyNCw4MDY0LDUwNCwyMTQ3NDgzNjc5XSxoPWkuREVTPW8uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkud29yZHMsZT1bXSxyPTA7cjw1NjtyKyspe3ZhciBuPXNbcl0tMTtlW3JdPXRbbj4+PjVdPj4+MzEtbiUzMiYxfWZvcih2YXIgbz10aGlzLl9zdWJLZXlzPVtdLGk9MDtpPDE2O2krKyl7dmFyIHU9b1tpXT1bXSxsPWNbaV07Zm9yKHI9MDtyPDI0O3IrKyl1W3IvNnwwXXw9ZVsoYVtyXS0xK2wpJTI4XTw8MzEtciU2LHVbNCsoci82fDApXXw9ZVsyOCsoYVtyKzI0XS0xK2wpJTI4XTw8MzEtciU2O2Zvcih1WzBdPXVbMF08PDF8dVswXT4+PjMxLHI9MTtyPDc7cisrKXVbcl09dVtyXT4+PjQqKHItMSkrMzt1WzddPXVbN108PDV8dVs3XT4+PjI3fXZhciBoPXRoaXMuX2ludlN1YktleXM9W107Zm9yKHI9MDtyPDE2O3IrKyloW3JdPW9bMTUtcl19LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LGUsdGhpcy5fc3ViS2V5cyl9LGRlY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LGUsdGhpcy5faW52U3ViS2V5cyl9LF9kb0NyeXB0QmxvY2s6ZnVuY3Rpb24odCxlLHIpe3RoaXMuX2xCbG9jaz10W2VdLHRoaXMuX3JCbG9jaz10W2UrMV0sZi5jYWxsKHRoaXMsNCwyNTI2NDUxMzUpLGYuY2FsbCh0aGlzLDE2LDY1NTM1KSxwLmNhbGwodGhpcywyLDg1ODk5MzQ1OSkscC5jYWxsKHRoaXMsOCwxNjcxMTkzNSksZi5jYWxsKHRoaXMsMSwxNDMxNjU1NzY1KTtmb3IodmFyIG49MDtuPDE2O24rKyl7Zm9yKHZhciBvPXJbbl0saT10aGlzLl9sQmxvY2sscz10aGlzLl9yQmxvY2ssYT0wLGM9MDtjPDg7YysrKWF8PXVbY11bKChzXm9bY10pJmxbY10pPj4+MF07dGhpcy5fbEJsb2NrPXMsdGhpcy5fckJsb2NrPWleYX12YXIgaD10aGlzLl9sQmxvY2s7dGhpcy5fbEJsb2NrPXRoaXMuX3JCbG9jayx0aGlzLl9yQmxvY2s9aCxmLmNhbGwodGhpcywxLDE0MzE2NTU3NjUpLHAuY2FsbCh0aGlzLDgsMTY3MTE5MzUpLHAuY2FsbCh0aGlzLDIsODU4OTkzNDU5KSxmLmNhbGwodGhpcywxNiw2NTUzNSksZi5jYWxsKHRoaXMsNCwyNTI2NDUxMzUpLHRbZV09dGhpcy5fbEJsb2NrLHRbZSsxXT10aGlzLl9yQmxvY2t9LGtleVNpemU6MixpdlNpemU6MixibG9ja1NpemU6Mn0pO2Z1bmN0aW9uIGYodCxlKXt2YXIgcj0odGhpcy5fbEJsb2NrPj4+dF50aGlzLl9yQmxvY2spJmU7dGhpcy5fckJsb2NrXj1yLHRoaXMuX2xCbG9ja149cjw8dH1mdW5jdGlvbiBwKHQsZSl7dmFyIHI9KHRoaXMuX3JCbG9jaz4+PnRedGhpcy5fbEJsb2NrKSZlO3RoaXMuX2xCbG9ja149cix0aGlzLl9yQmxvY2tePXI8PHR9dC5ERVM9by5fY3JlYXRlSGVscGVyKGgpO3ZhciBkPWkuVHJpcGxlREVTPW8uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleS53b3Jkczt0aGlzLl9kZXMxPWguY3JlYXRlRW5jcnlwdG9yKHIuY3JlYXRlKHQuc2xpY2UoMCwyKSkpLHRoaXMuX2RlczI9aC5jcmVhdGVFbmNyeXB0b3Ioci5jcmVhdGUodC5zbGljZSgyLDQpKSksdGhpcy5fZGVzMz1oLmNyZWF0ZUVuY3J5cHRvcihyLmNyZWF0ZSh0LnNsaWNlKDQsNikpKX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQsZSl7dGhpcy5fZGVzMS5lbmNyeXB0QmxvY2sodCxlKSx0aGlzLl9kZXMyLmRlY3J5cHRCbG9jayh0LGUpLHRoaXMuX2RlczMuZW5jcnlwdEJsb2NrKHQsZSl9LGRlY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2RlczMuZGVjcnlwdEJsb2NrKHQsZSksdGhpcy5fZGVzMi5lbmNyeXB0QmxvY2sodCxlKSx0aGlzLl9kZXMxLmRlY3J5cHRCbG9jayh0LGUpfSxrZXlTaXplOjYsaXZTaXplOjIsYmxvY2tTaXplOjJ9KTt0LlRyaXBsZURFUz1vLl9jcmVhdGVIZWxwZXIoZCl9KCksbi5UcmlwbGVERVMpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscig2KSxyKDcpLHIoNSkscigxKSxmdW5jdGlvbigpe3ZhciB0PW4sZT10LmxpYi5TdHJlYW1DaXBoZXIscj10LmFsZ28sbz1yLlJDND1lLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMsbj10aGlzLl9TPVtdLG89MDtvPDI1NjtvKyspbltvXT1vO289MDtmb3IodmFyIGk9MDtvPDI1NjtvKyspe3ZhciBzPW8lcixhPWVbcz4+PjJdPj4+MjQtcyU0KjgmMjU1O2k9KGkrbltvXSthKSUyNTY7dmFyIGM9bltvXTtuW29dPW5baV0sbltpXT1jfXRoaXMuX2k9dGhpcy5faj0wfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt0W2VdXj1pLmNhbGwodGhpcyl9LGtleVNpemU6OCxpdlNpemU6MH0pO2Z1bmN0aW9uIGkoKXtmb3IodmFyIHQ9dGhpcy5fUyxlPXRoaXMuX2kscj10aGlzLl9qLG49MCxvPTA7bzw0O28rKyl7cj0ocit0W2U9KGUrMSklMjU2XSklMjU2O3ZhciBpPXRbZV07dFtlXT10W3JdLHRbcl09aSxufD10Wyh0W2VdK3Rbcl0pJTI1Nl08PDI0LTgqb31yZXR1cm4gdGhpcy5faT1lLHRoaXMuX2o9cixufXQuUkM0PWUuX2NyZWF0ZUhlbHBlcihvKTt2YXIgcz1yLlJDNERyb3A9by5leHRlbmQoe2NmZzpvLmNmZy5leHRlbmQoe2Ryb3A6MTkyfSksX2RvUmVzZXQ6ZnVuY3Rpb24oKXtvLl9kb1Jlc2V0LmNhbGwodGhpcyk7Zm9yKHZhciB0PXRoaXMuY2ZnLmRyb3A7dD4wO3QtLSlpLmNhbGwodGhpcyl9fSk7dC5SQzREcm9wPWUuX2NyZWF0ZUhlbHBlcihzKX0oKSxuLlJDNCl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDYpLHIoNykscig1KSxyKDEpLGZ1bmN0aW9uKCl7dmFyIHQ9bixlPXQubGliLlN0cmVhbUNpcGhlcixyPXQuYWxnbyxvPVtdLGk9W10scz1bXSxhPXIuUmFiYml0PWUuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkud29yZHMsZT10aGlzLmNmZy5pdixyPTA7cjw0O3IrKyl0W3JdPTE2NzExOTM1Jih0W3JdPDw4fHRbcl0+Pj4yNCl8NDI3ODI1NTM2MCYodFtyXTw8MjR8dFtyXT4+PjgpO3ZhciBuPXRoaXMuX1g9W3RbMF0sdFszXTw8MTZ8dFsyXT4+PjE2LHRbMV0sdFswXTw8MTZ8dFszXT4+PjE2LHRbMl0sdFsxXTw8MTZ8dFswXT4+PjE2LHRbM10sdFsyXTw8MTZ8dFsxXT4+PjE2XSxvPXRoaXMuX0M9W3RbMl08PDE2fHRbMl0+Pj4xNiw0Mjk0OTAxNzYwJnRbMF18NjU1MzUmdFsxXSx0WzNdPDwxNnx0WzNdPj4+MTYsNDI5NDkwMTc2MCZ0WzFdfDY1NTM1JnRbMl0sdFswXTw8MTZ8dFswXT4+PjE2LDQyOTQ5MDE3NjAmdFsyXXw2NTUzNSZ0WzNdLHRbMV08PDE2fHRbMV0+Pj4xNiw0Mjk0OTAxNzYwJnRbM118NjU1MzUmdFswXV07Zm9yKHRoaXMuX2I9MCxyPTA7cjw0O3IrKyljLmNhbGwodGhpcyk7Zm9yKHI9MDtyPDg7cisrKW9bcl1ePW5bcis0JjddO2lmKGUpe3ZhciBpPWUud29yZHMscz1pWzBdLGE9aVsxXSx1PTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLGw9MTY3MTE5MzUmKGE8PDh8YT4+PjI0KXw0Mjc4MjU1MzYwJihhPDwyNHxhPj4+OCksaD11Pj4+MTZ8NDI5NDkwMTc2MCZsLGY9bDw8MTZ8NjU1MzUmdTtmb3Iob1swXV49dSxvWzFdXj1oLG9bMl1ePWwsb1szXV49ZixvWzRdXj11LG9bNV1ePWgsb1s2XV49bCxvWzddXj1mLHI9MDtyPDQ7cisrKWMuY2FsbCh0aGlzKX19LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX1g7Yy5jYWxsKHRoaXMpLG9bMF09clswXV5yWzVdPj4+MTZeclszXTw8MTYsb1sxXT1yWzJdXnJbN10+Pj4xNl5yWzVdPDwxNixvWzJdPXJbNF1eclsxXT4+PjE2XnJbN108PDE2LG9bM109cls2XV5yWzNdPj4+MTZeclsxXTw8MTY7Zm9yKHZhciBuPTA7bjw0O24rKylvW25dPTE2NzExOTM1JihvW25dPDw4fG9bbl0+Pj4yNCl8NDI3ODI1NTM2MCYob1tuXTw8MjR8b1tuXT4+PjgpLHRbZStuXV49b1tuXX0sYmxvY2tTaXplOjQsaXZTaXplOjJ9KTtmdW5jdGlvbiBjKCl7Zm9yKHZhciB0PXRoaXMuX1gsZT10aGlzLl9DLHI9MDtyPDg7cisrKWlbcl09ZVtyXTtmb3IoZVswXT1lWzBdKzEyOTUzMDc1OTcrdGhpcy5fYnwwLGVbMV09ZVsxXSszNTQ1MDUyMzcxKyhlWzBdPj4+MDxpWzBdPj4+MD8xOjApfDAsZVsyXT1lWzJdKzg4NjI2MzA5MisoZVsxXT4+PjA8aVsxXT4+PjA/MTowKXwwLGVbM109ZVszXSsxMjk1MzA3NTk3KyhlWzJdPj4+MDxpWzJdPj4+MD8xOjApfDAsZVs0XT1lWzRdKzM1NDUwNTIzNzErKGVbM10+Pj4wPGlbM10+Pj4wPzE6MCl8MCxlWzVdPWVbNV0rODg2MjYzMDkyKyhlWzRdPj4+MDxpWzRdPj4+MD8xOjApfDAsZVs2XT1lWzZdKzEyOTUzMDc1OTcrKGVbNV0+Pj4wPGlbNV0+Pj4wPzE6MCl8MCxlWzddPWVbN10rMzU0NTA1MjM3MSsoZVs2XT4+PjA8aVs2XT4+PjA/MTowKXwwLHRoaXMuX2I9ZVs3XT4+PjA8aVs3XT4+PjA/MTowLHI9MDtyPDg7cisrKXt2YXIgbj10W3JdK2Vbcl0sbz02NTUzNSZuLGE9bj4+PjE2LGM9KChvKm8+Pj4xNykrbyphPj4+MTUpK2EqYSx1PSgoNDI5NDkwMTc2MCZuKSpufDApKygoNjU1MzUmbikqbnwwKTtzW3JdPWNedX10WzBdPXNbMF0rKHNbN108PDE2fHNbN10+Pj4xNikrKHNbNl08PDE2fHNbNl0+Pj4xNil8MCx0WzFdPXNbMV0rKHNbMF08PDh8c1swXT4+PjI0KStzWzddfDAsdFsyXT1zWzJdKyhzWzFdPDwxNnxzWzFdPj4+MTYpKyhzWzBdPDwxNnxzWzBdPj4+MTYpfDAsdFszXT1zWzNdKyhzWzJdPDw4fHNbMl0+Pj4yNCkrc1sxXXwwLHRbNF09c1s0XSsoc1szXTw8MTZ8c1szXT4+PjE2KSsoc1syXTw8MTZ8c1syXT4+PjE2KXwwLHRbNV09c1s1XSsoc1s0XTw8OHxzWzRdPj4+MjQpK3NbM118MCx0WzZdPXNbNl0rKHNbNV08PDE2fHNbNV0+Pj4xNikrKHNbNF08PDE2fHNbNF0+Pj4xNil8MCx0WzddPXNbN10rKHNbNl08PDh8c1s2XT4+PjI0KStzWzVdfDB9dC5SYWJiaXQ9ZS5fY3JlYXRlSGVscGVyKGEpfSgpLG4uUmFiYml0KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoNikscig3KSxyKDUpLHIoMSksZnVuY3Rpb24oKXt2YXIgdD1uLGU9dC5saWIuU3RyZWFtQ2lwaGVyLHI9dC5hbGdvLG89W10saT1bXSxzPVtdLGE9ci5SYWJiaXRMZWdhY3k9ZS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYscj10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbj10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIG89MDtvPDQ7bysrKWMuY2FsbCh0aGlzKTtmb3Iobz0wO288ODtvKyspbltvXV49cltvKzQmN107aWYoZSl7dmFyIGk9ZS53b3JkcyxzPWlbMF0sYT1pWzFdLHU9MTY3MTE5MzUmKHM8PDh8cz4+PjI0KXw0Mjc4MjU1MzYwJihzPDwyNHxzPj4+OCksbD0xNjcxMTkzNSYoYTw8OHxhPj4+MjQpfDQyNzgyNTUzNjAmKGE8PDI0fGE+Pj44KSxoPXU+Pj4xNnw0Mjk0OTAxNzYwJmwsZj1sPDwxNnw2NTUzNSZ1O2ZvcihuWzBdXj11LG5bMV1ePWgsblsyXV49bCxuWzNdXj1mLG5bNF1ePXUsbls1XV49aCxuWzZdXj1sLG5bN11ePWYsbz0wO288NDtvKyspYy5jYWxsKHRoaXMpfX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fWDtjLmNhbGwodGhpcyksb1swXT1yWzBdXnJbNV0+Pj4xNl5yWzNdPDwxNixvWzFdPXJbMl1ecls3XT4+PjE2XnJbNV08PDE2LG9bMl09cls0XV5yWzFdPj4+MTZecls3XTw8MTYsb1szXT1yWzZdXnJbM10+Pj4xNl5yWzFdPDwxNjtmb3IodmFyIG49MDtuPDQ7bisrKW9bbl09MTY3MTE5MzUmKG9bbl08PDh8b1tuXT4+PjI0KXw0Mjc4MjU1MzYwJihvW25dPDwyNHxvW25dPj4+OCksdFtlK25dXj1vW25dfSxibG9ja1NpemU6NCxpdlNpemU6Mn0pO2Z1bmN0aW9uIGMoKXtmb3IodmFyIHQ9dGhpcy5fWCxlPXRoaXMuX0Mscj0wO3I8ODtyKyspaVtyXT1lW3JdO2ZvcihlWzBdPWVbMF0rMTI5NTMwNzU5Nyt0aGlzLl9ifDAsZVsxXT1lWzFdKzM1NDUwNTIzNzErKGVbMF0+Pj4wPGlbMF0+Pj4wPzE6MCl8MCxlWzJdPWVbMl0rODg2MjYzMDkyKyhlWzFdPj4+MDxpWzFdPj4+MD8xOjApfDAsZVszXT1lWzNdKzEyOTUzMDc1OTcrKGVbMl0+Pj4wPGlbMl0+Pj4wPzE6MCl8MCxlWzRdPWVbNF0rMzU0NTA1MjM3MSsoZVszXT4+PjA8aVszXT4+PjA/MTowKXwwLGVbNV09ZVs1XSs4ODYyNjMwOTIrKGVbNF0+Pj4wPGlbNF0+Pj4wPzE6MCl8MCxlWzZdPWVbNl0rMTI5NTMwNzU5NysoZVs1XT4+PjA8aVs1XT4+PjA/MTowKXwwLGVbN109ZVs3XSszNTQ1MDUyMzcxKyhlWzZdPj4+MDxpWzZdPj4+MD8xOjApfDAsdGhpcy5fYj1lWzddPj4+MDxpWzddPj4+MD8xOjAscj0wO3I8ODtyKyspe3ZhciBuPXRbcl0rZVtyXSxvPTY1NTM1Jm4sYT1uPj4+MTYsYz0oKG8qbz4+PjE3KStvKmE+Pj4xNSkrYSphLHU9KCg0Mjk0OTAxNzYwJm4pKm58MCkrKCg2NTUzNSZuKSpufDApO3Nbcl09Y151fXRbMF09c1swXSsoc1s3XTw8MTZ8c1s3XT4+PjE2KSsoc1s2XTw8MTZ8c1s2XT4+PjE2KXwwLHRbMV09c1sxXSsoc1swXTw8OHxzWzBdPj4+MjQpK3NbN118MCx0WzJdPXNbMl0rKHNbMV08PDE2fHNbMV0+Pj4xNikrKHNbMF08PDE2fHNbMF0+Pj4xNil8MCx0WzNdPXNbM10rKHNbMl08PDh8c1syXT4+PjI0KStzWzFdfDAsdFs0XT1zWzRdKyhzWzNdPDwxNnxzWzNdPj4+MTYpKyhzWzJdPDwxNnxzWzJdPj4+MTYpfDAsdFs1XT1zWzVdKyhzWzRdPDw4fHNbNF0+Pj4yNCkrc1szXXwwLHRbNl09c1s2XSsoc1s1XTw8MTZ8c1s1XT4+PjE2KSsoc1s0XTw8MTZ8c1s0XT4+PjE2KXwwLHRbN109c1s3XSsoc1s2XTw8OHxzWzZdPj4+MjQpK3NbNV18MH10LlJhYmJpdExlZ2FjeT1lLl9jcmVhdGVIZWxwZXIoYSl9KCksbi5SYWJiaXRMZWdhY3kpfSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49dGhpcyYmdGhpcy5fX2RlY29yYXRlfHxmdW5jdGlvbih0LGUscixuKXt2YXIgbyxpPWFyZ3VtZW50cy5sZW5ndGgscz1pPDM/ZTpudWxsPT09bj9uPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKTpuO2lmKFwib2JqZWN0XCI9PXR5cGVvZiBSZWZsZWN0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKXM9UmVmbGVjdC5kZWNvcmF0ZSh0LGUscixuKTtlbHNlIGZvcih2YXIgYT10Lmxlbmd0aC0xO2E+PTA7YS0tKShvPXRbYV0pJiYocz0oaTwzP28ocyk6aT4zP28oZSxyLHMpOm8oZSxyKSl8fHMpO3JldHVybiBpPjMmJnMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIscyksc30sbz10aGlzJiZ0aGlzLl9fbWV0YWRhdGF8fGZ1bmN0aW9uKHQsZSl7aWYoXCJvYmplY3RcIj09dHlwZW9mIFJlZmxlY3QmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFJlZmxlY3QubWV0YWRhdGEpcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEodCxlKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3QgaT1yKDU2KSxzPXIoMTMpLGE9cig5KSxjPXIoMjEpLHU9cig1OCksbD1yKDU5KTtmdW5jdGlvbiBoKHQsZSl7Y29uc3Qgcj1jLmV0aFtlXTtpZighcil0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIHRoZSBtZXRob2QvcHJvcGVydHkgbmFtZWQgJHtlLnRvU3RyaW5nKCl9YCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gci5leGVjdXRlLmNhbGwocix0aGlzLC4uLmFyZ3VtZW50cyl9fSl9ZS5UUkFOU0FDVElPTl9GRVRDSF9ERUxBWT0yZTMsZS5pbmplY3Q9aDtjbGFzcyBme2NvbnN0cnVjdG9yKHQpe3RoaXMucHJvdmlkZXI9dCx0aGlzLnJlcXVlc3RzPW5ldyBNYXB9YXN5bmMgc2VuZEFzeW5jKHQpe2lmKCF0aGlzLnByb3ZpZGVyKXRocm93IHMuSW52YWxpZFByb3ZpZGVyKCk7bGV0IGU9aS50b1BheWxvYWQodC5tZXRob2QsdC5wYXJhbXMpO2NvbnN0IHI9YS5mdXR1cmUoKTtyZXR1cm4gdGhpcy5yZXF1ZXN0cy5zZXQoZS5pZCxyKSx0aGlzLnByb3ZpZGVyLnNlbmRBc3luYyhlLCh0LG4pPT57dGhpcy5yZXF1ZXN0cy5kZWxldGUoZS5pZCksdD9yLnJlamVjdCh0KTppLmlzVmFsaWRSZXNwb25zZShuKT9yLnJlc29sdmUobi5yZXN1bHQpOnIucmVqZWN0KHMuSW52YWxpZFJlc3BvbnNlKG4pKX0pLHJ9c2V0UHJvdmlkZXIodCl7dGhpcy5wcm92aWRlcj10fWFzeW5jIGdldENvbmZpcm1lZFRyYW5zYWN0aW9uKHQpe2NvbnN0IGU9YXdhaXQgdGhpcy53YWl0Rm9yQ29tcGxldGlvbih0KTtpZih0aGlzLmlzRmFpbHVyZShlKSl0aHJvdyBuZXcgRXJyb3IoYFRyYW5zYWN0aW9uIFwiJHt0fVwiIGZhaWxlZGApO3JldHVybiBlfWFzeW5jIHdhaXRGb3JDb21wbGV0aW9uKHQscil7aWYoYXdhaXQgdGhpcy5pc1R4RHJvcHBlZCh0LHIpKXtjb25zdCBlPWF3YWl0IHRoaXMuZ2V0VHJhbnNhY3Rpb25BbmRSZWNlaXB0KHQpO3JldHVybiBPYmplY3QuYXNzaWduKHt9LGUse3N0YXR1czp1LlRyYW5zYWN0aW9uU3RhdHVzLmZhaWxlZH0pfWZvcig7Oyl7Y29uc3Qgcj1hd2FpdCB0aGlzLmdldFRyYW5zYWN0aW9uQW5kUmVjZWlwdCh0KTtpZighdGhpcy5pc1BlbmRpbmcocikmJnIucmVjZWlwdClyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxyLHtzdGF0dXM6dGhpcy5pc0ZhaWx1cmUocik/dS5UcmFuc2FjdGlvblN0YXR1cy5mYWlsZWQ6dS5UcmFuc2FjdGlvblN0YXR1cy5jb25maXJtZWR9KTthd2FpdCBsLnNsZWVwKGUuVFJBTlNBQ1RJT05fRkVUQ0hfREVMQVkpfX1hc3luYyBnZXRUcmFuc2FjdGlvbih0KXtsZXQgZSxyLG47dHJ5e2NvbnN0IHQ9KGF3YWl0IHRoaXMuZXRoX2FjY291bnRzKCkpWzBdO3QmJihlPWF3YWl0IHRoaXMuZXRoX2dldFRyYW5zYWN0aW9uQ291bnQodCxcImxhdGVzdFwiKSl9Y2F0Y2godCl7ZT1udWxsfXRyeXtpZihudWxsPT0ocj1hd2FpdCB0aGlzLmV0aF9nZXRUcmFuc2FjdGlvbkJ5SGFzaCh0KSkpcmV0dXJuIG51bGx9Y2F0Y2godCl7cmV0dXJuIG51bGx9aWYobnVsbD09ci5ibG9ja051bWJlcil7aWYobnVsbCE9ZSl7aWYoci5ub25jZTxlKXtyZXR1cm57aGFzaDp0LHR5cGU6dS5UcmFuc2FjdGlvblR5cGUucmVwbGFjZWQsbm9uY2U6ci5ub25jZX19aWYoci5ub25jZT5lKXtyZXR1cm57aGFzaDp0LHR5cGU6dS5UcmFuc2FjdGlvblR5cGUucXVldWVkLG5vbmNlOnIubm9uY2V9fX1yZXR1cm4gT2JqZWN0LmFzc2lnbih7dHlwZTp1LlRyYW5zYWN0aW9uVHlwZS5wZW5kaW5nfSxyKX10cnl7aWYobnVsbD09KG49YXdhaXQgdGhpcy5ldGhfZ2V0VHJhbnNhY3Rpb25SZWNlaXB0KHQpKXx8MD09PW4uc3RhdHVzKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7dHlwZTp1LlRyYW5zYWN0aW9uVHlwZS5yZXZlcnRlZH0scil9fWNhdGNoKHQpe3JldHVybiBudWxsfXJldHVybiBPYmplY3QuYXNzaWduKHt0eXBlOnUuVHJhbnNhY3Rpb25UeXBlLmNvbmZpcm1lZH0scix7cmVjZWlwdDpufSl9YXN5bmMgaXNUeERyb3BwZWQodCxyPTE1KXtsZXQgbj1yO2Zvcig7bj4wOyl7aWYobnVsbCE9PWF3YWl0IHRoaXMuZ2V0VHJhbnNhY3Rpb25BbmRSZWNlaXB0KHQpKXJldHVybiExO24tPTEsYXdhaXQgbC5zbGVlcChlLlRSQU5TQUNUSU9OX0ZFVENIX0RFTEFZKX1yZXR1cm4hMH1hc3luYyBnZXRUcmFuc2FjdGlvbkFuZFJlY2VpcHQodCl7Y29uc3RbZSxyXT1hd2FpdCBQcm9taXNlLmFsbChbdGhpcy5ldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2godCksdGhpcy5ldGhfZ2V0VHJhbnNhY3Rpb25SZWNlaXB0KHQpXSk7cmV0dXJuIGU/T2JqZWN0LmFzc2lnbih7fSxlLHtyZWNlaXB0OnJ9KTpudWxsfWlzUGVuZGluZyh0KXtyZXR1cm4gdCYmbnVsbD09PXQuYmxvY2tOdW1iZXJ9aXNGYWlsdXJlKHQpe3JldHVybiB0JiYoIXQucmVjZWlwdHx8MD09PXQucmVjZWlwdC5zdGF0dXMpfX1uKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJ3ZWIzX2NsaWVudFZlcnNpb25cIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcIndlYjNfc2hhM1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwibmV0X3ZlcnNpb25cIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcIm5ldF9wZWVyQ291bnRcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcIm5ldF9saXN0ZW5pbmdcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9wcm90b2NvbFZlcnNpb25cIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9zeW5jaW5nXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfY29pbmJhc2VcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9taW5pbmdcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9oYXNocmF0ZVwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dhc1ByaWNlXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfYWNjb3VudHNcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9ibG9ja051bWJlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEJhbGFuY2VcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRTdG9yYWdlQXRcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRUcmFuc2FjdGlvbkNvdW50XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0QmxvY2tUcmFuc2FjdGlvbkNvdW50QnlIYXNoXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0QmxvY2tUcmFuc2FjdGlvbkNvdW50QnlOdW1iZXJcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRVbmNsZUNvdW50QnlCbG9ja0hhc2hcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRVbmNsZUNvdW50QnlCbG9ja051bWJlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldENvZGVcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9zaWduXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfc2VuZFRyYW5zYWN0aW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfc2VuZFJhd1RyYW5zYWN0aW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfY2FsbFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2VzdGltYXRlR2FzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0QmxvY2tCeUhhc2hcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRCbG9ja0J5TnVtYmVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2hcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRUcmFuc2FjdGlvbkJ5QmxvY2tIYXNoQW5kSW5kZXhcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRUcmFuc2FjdGlvbkJ5QmxvY2tOdW1iZXJBbmRJbmRleFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldFVuY2xlQnlCbG9ja0hhc2hBbmRJbmRleFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldFVuY2xlQnlCbG9ja051bWJlckFuZEluZGV4XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfbmV3RmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfbmV3QmxvY2tGaWx0ZXJcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9uZXdQZW5kaW5nVHJhbnNhY3Rpb25GaWx0ZXJcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF91bmluc3RhbGxGaWx0ZXJcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRGaWx0ZXJDaGFuZ2VzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0RmlsdGVyTG9nc1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldExvZ3NcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRXb3JrXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfc3VibWl0V29ya1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX3N1Ym1pdEhhc2hyYXRlXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJzaGhfcG9zdFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX3ZlcnNpb25cIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInNoaF9uZXdJZGVudGl0eVwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX2hhc0lkZW50aXR5XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJzaGhfbmV3R3JvdXBcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInNoaF9hZGRUb0dyb3VwXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJzaGhfbmV3RmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJzaGhfdW5pbnN0YWxsRmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJzaGhfZ2V0RmlsdGVyQ2hhbmdlc1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX2dldE1lc3NhZ2VzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJwZXJzb25hbF91bmxvY2tBY2NvdW50XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJwZXJzb25hbF9uZXdBY2NvdW50XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJwZXJzb25hbF9saXN0QWNjb3VudHNcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInBlcnNvbmFsX2xvY2tBY2NvdW50XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJwZXJzb25hbF9pbXBvcnRSYXdLZXlcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInBlcnNvbmFsX3NlbmRUcmFuc2FjdGlvblwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfc2lnblwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfZWNSZWNvdmVyXCIsdm9pZCAwKSxlLlJlcXVlc3RNYW5hZ2VyPWZ9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBuKHQscil7aWYoIXQpdGhyb3cgbmV3IEVycm9yKFwianNvbnJwYyBtZXRob2Qgc2hvdWxkIGJlIHNwZWNpZmllZCFcIik7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKGBqc29ucnBjIG11c3QgYmUgYSBzdHJpbmcsIGdvdCAke3R5cGVvZiB0fSFgKTtyZXR1cm4gZS5tZXNzYWdlSWQrKyx7anNvbnJwYzpcIjIuMFwiLGlkOmUubWVzc2FnZUlkLG1ldGhvZDp0LHBhcmFtczpyfHxbXX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksZS5tZXNzYWdlSWQ9MCxlLnRvUGF5bG9hZD1uLGUuaXNWYWxpZFJlc3BvbnNlPWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QuZXZlcnkoZSk6ZSh0KTtmdW5jdGlvbiBlKHQpe3JldHVybiEoIXR8fHQuZXJyb3J8fFwiMi4wXCIhPT10Lmpzb25ycGN8fFwibnVtYmVyXCIhPXR5cGVvZiB0LmlkfHxudWxsPT10LnJlc3VsdCYmdm9pZCAwPT09dC5yZXN1bHQpfX0sZS50b0JhdGNoUGF5bG9hZD1mdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG4odC5tZXRob2QsdC5wYXJhbXMpfSl9fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7dFt0LlJPVU5EX1VQPTBdPVwiUk9VTkRfVVBcIix0W3QuUk9VTkRfRE9XTj0xXT1cIlJPVU5EX0RPV05cIix0W3QuUk9VTkRfQ0U9Ml09XCJST1VORF9DRVwiLHRbdC5ST1VORF9GTE9PUj0zXT1cIlJPVU5EX0ZMT09SXCIsdFt0LlJPVU5EX0hBTEZfVVA9NF09XCJST1VORF9IQUxGX1VQXCIsdFt0LlJPVU5EX0hBTEZfRE9XTj01XT1cIlJPVU5EX0hBTEZfRE9XTlwiLHRbdC5ST1VORF9IQUxGX0VWRU49Nl09XCJST1VORF9IQUxGX0VWRU5cIix0W3QuUk9VTkRfSEFMRl9DRUlMPTddPVwiUk9VTkRfSEFMRl9DRUlMXCIsdFt0LlJPVU5EX0hBTEZfRkxPT1I9OF09XCJST1VORF9IQUxGX0ZMT09SXCJ9KGUuQmlnTnVtYmVyUm91bmRpbmdNb2RlfHwoZS5CaWdOdW1iZXJSb3VuZGluZ01vZGU9e30pKX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGZ1bmN0aW9uKHQpe3QucGVuZGluZz1cInBlbmRpbmdcIix0LmNvbmZpcm1lZD1cImNvbmZpcm1lZFwiLHQuZmFpbGVkPVwiZmFpbGVkXCJ9KGUuVHJhbnNhY3Rpb25TdGF0dXN8fChlLlRyYW5zYWN0aW9uU3RhdHVzPXt9KSksZnVuY3Rpb24odCl7dC5xdWV1ZWQ9XCJxdWV1ZWRcIix0LmRyb3BwZWQ9XCJkcm9wcGVkXCIsdC5yZXBsYWNlZD1cInJlcGxhY2VkXCIsdC5wZW5kaW5nPVwicGVuZGluZ1wiLHQucmV2ZXJ0ZWQ9XCJyZXZlcnRlZFwiLHQuY29uZmlybWVkPVwiY29uZmlybWVkXCJ9KGUuVHJhbnNhY3Rpb25UeXBlfHwoZS5UcmFuc2FjdGlvblR5cGU9e30pKX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGUuc2xlZXA9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PnNldFRpbWVvdXQoZSx0KSl9fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDMpLG89cig4KSxpPXIoMTMpLHM9cigxNSk7ZS5Tb2xpZGl0eUZ1bmN0aW9uPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxyKXt0aGlzLnJlcXVlc3RNYW5hZ2VyPXQsdGhpcy5qc29uPWUsdGhpcy5faW5wdXRUeXBlcz1lLmlucHV0cy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pLHRoaXMuX291dHB1dFR5cGVzPWUub3V0cHV0cy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pLHRoaXMuX2NvbnN0YW50PWUuY29uc3RhbnQsdGhpcy5fcGF5YWJsZT1lLnBheWFibGUsdGhpcy5uZWVkc1RvQmVUcmFuc2FjdGlvbj1cInBheWFibGVcImluIGUmJmUucGF5YWJsZXx8XCJjb25zdGFudFwiaW4gZSYmIWUuY29uc3RhbnR8fFwic3RhdGVNdXRhYmlsaXR5XCJpbiBlJiZcIm5vbnBheWFibGVcIj09PWUuc3RhdGVNdXRhYmlsaXR5LHRoaXMuX25hbWU9bi50cmFuc2Zvcm1Ub0Z1bGxOYW1lKGUpLHRoaXMuX2FkZHJlc3M9cn1leHRyYWN0RGVmYXVsdEJsb2NrKHQpe2lmKHQubGVuZ3RoPnRoaXMuX2lucHV0VHlwZXMubGVuZ3RoJiYhbi5pc09iamVjdCh0W3QubGVuZ3RoLTFdKSlyZXR1cm4gby5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcih0LnBvcCgpKX12YWxpZGF0ZUFyZ3ModCl7aWYodC5zb21lKHQ9PnZvaWQgMD09PXQpKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgY2FsbCwgc29tZSBhcmd1bWVudHMgYXJlIHVuZGVmaW5lZFwiKTtsZXQgZT10LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hKCEwPT09bi5pc09iamVjdCh0KSYmITE9PT1uLmlzQXJyYXkodCkmJiExPT09bi5pc0JpZ051bWJlcih0KSl9KTtpZihlLmxlbmd0aCE9PXRoaXMuX2lucHV0VHlwZXMubGVuZ3RoKXRocm93IGkuSW52YWxpZE51bWJlck9mU29saWRpdHlBcmdzKGUubGVuZ3RoLHRoaXMuX2lucHV0VHlwZXMubGVuZ3RoKX10b1BheWxvYWQodCl7bGV0IGU9e3RvOnZvaWQgMCxkYXRhOnZvaWQgMCx2YWx1ZTp2b2lkIDAsZnJvbTp2b2lkIDB9O3JldHVybiB0Lmxlbmd0aD50aGlzLl9pbnB1dFR5cGVzLmxlbmd0aCYmbi5pc09iamVjdCh0W3QubGVuZ3RoLTFdKSYmKGU9dFt0Lmxlbmd0aC0xXSksdGhpcy52YWxpZGF0ZUFyZ3ModCksZS50bz10aGlzLl9hZGRyZXNzLGUuZGF0YT1cIjB4XCIrdGhpcy5zaWduYXR1cmUoKStzLmNvZGVyLmVuY29kZVBhcmFtcyh0aGlzLl9pbnB1dFR5cGVzLHQpLGV9c2lnbmF0dXJlKCl7cmV0dXJuIG4uc2hhMyh0aGlzLl9uYW1lKS5zbGljZSgwLDgpfXVucGFja091dHB1dCh0KXtpZighdClyZXR1cm47Y29uc3QgZT10Lmxlbmd0aD49Mj90LnNsaWNlKDIpOnQ7bGV0IHI9cy5jb2Rlci5kZWNvZGVQYXJhbXModGhpcy5fb3V0cHV0VHlwZXMsZSk7cmV0dXJuIDE9PT1yLmxlbmd0aD9yWzBdOnJ9YXN5bmMgZXhlY3V0ZSh0LC4uLmUpe2lmKCF0KXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGNhbGwgZnVuY3Rpb24gJHt0aGlzLmRpc3BsYXlOYW1lKCl9IGJlY2F1c2UgdGhlcmUgaXMgbm8gcmVxdWVzdE1hbmFnZXJgKTtpZih0aGlzLm5lZWRzVG9CZVRyYW5zYWN0aW9uKXtjb25zdCByPXRoaXMudG9QYXlsb2FkKGUpO2lmKHIudmFsdWU+MCYmIXRoaXMuX3BheWFibGUpdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHNlbmQgdmFsdWUgdG8gbm9uLXBheWFibGUgZnVuY3Rpb25cIik7aWYoIXIuZnJvbSl0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgXCJmcm9tXCIgaW4gdHJhbnNhY3Rpb24gb3B0aW9ucycpO3JldHVybiBhd2FpdCB0LmV0aF9zZW5kVHJhbnNhY3Rpb24ocil9e2NvbnN0IHI9dGhpcy5leHRyYWN0RGVmYXVsdEJsb2NrKGUpLG49dGhpcy50b1BheWxvYWQoZSksbz1hd2FpdCB0LmV0aF9jYWxsKG4scik7cmV0dXJuIHRoaXMudW5wYWNrT3V0cHV0KG8pfX1lc3RpbWF0ZUdhcyguLi50KXtsZXQgZT10aGlzLnRvUGF5bG9hZCh0KTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfZXN0aW1hdGVHYXMoZSl9Z2V0RGF0YSguLi50KXtyZXR1cm4gdGhpcy50b1BheWxvYWQodCkuZGF0YX1kaXNwbGF5TmFtZSgpe3JldHVybiBuLmV4dHJhY3REaXNwbGF5TmFtZSh0aGlzLl9uYW1lKX10eXBlTmFtZSgpe3JldHVybiBuLmV4dHJhY3RUeXBlTmFtZSh0aGlzLl9uYW1lKXx8XCJ2b2lkXCJ9YXR0YWNoVG9Db250cmFjdCh0KXtsZXQgZT10aGlzLmRpc3BsYXlOYW1lKCk7Y29uc3Qgcj10aGlzLG49T2JqZWN0LmFzc2lnbihmdW5jdGlvbiguLi50KXtjb25zdCBlPXRoaXMucmVxdWVzdE1hbmFnZXJ8fHIucmVxdWVzdE1hbmFnZXI7cmV0dXJuIHIuZXhlY3V0ZShlLC4uLnQpfSx7ZXN0aW1hdGVHYXM6dGhpcy5lc3RpbWF0ZUdhcy5iaW5kKHRoaXMpfSk7dFtlXXx8KHRbZV09biksdFtlXVt0aGlzLnR5cGVOYW1lKCldPW59fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigyKSxvPXIoNCk7ZS5Tb2xpZGl0eVR5cGVBZGRyZXNzPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dEludCxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXRBZGRyZXNzfSl9aXNUeXBlKHQpe3JldHVybiEhdC5tYXRjaCgvYWRkcmVzcyhcXFsoWzAtOV0qKVxcXSk/Lyl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigyKSxvPXIoNCk7ZS5Tb2xpZGl0eVR5cGVCb29sPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dEJvb2wsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0Qm9vbH0pfWlzVHlwZSh0KXtyZXR1cm4hIXQubWF0Y2goL15ib29sKFxcWyhbMC05XSopXFxdKSokLyl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigyKSxvPXIoNCk7ZS5Tb2xpZGl0eVR5cGVJbnQ9Y2xhc3MgZXh0ZW5kcyBvLlNvbGlkaXR5VHlwZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKHtpbnB1dEZvcm1hdHRlcjpuLmZvcm1hdElucHV0SW50LG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dEludH0pfWlzVHlwZSh0KXtyZXR1cm4hIXQubWF0Y2goL15pbnQoWzAtOV0qKT8oXFxbKFswLTldKilcXF0pKiQvKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cig0KTtlLlNvbGlkaXR5VHlwZVVJbnQ9Y2xhc3MgZXh0ZW5kcyBvLlNvbGlkaXR5VHlwZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKHtpbnB1dEZvcm1hdHRlcjpuLmZvcm1hdElucHV0SW50LG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dFVJbnR9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9edWludChbMC05XSopPyhcXFsoWzAtOV0qKVxcXSkqJC8pfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlRHluYW1pY0J5dGVzPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dER5bmFtaWNCeXRlcyxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXREeW5hbWljQnl0ZXN9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9eYnl0ZXMoXFxbKFswLTldKilcXF0pKiQvKX1pc0R5bmFtaWNUeXBlKCl7cmV0dXJuITB9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigyKSxvPXIoNCk7ZS5Tb2xpZGl0eVR5cGVTdHJpbmc9Y2xhc3MgZXh0ZW5kcyBvLlNvbGlkaXR5VHlwZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKHtpbnB1dEZvcm1hdHRlcjpuLmZvcm1hdElucHV0U3RyaW5nLG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dFN0cmluZ30pfWlzVHlwZSh0KXtyZXR1cm4hIXQubWF0Y2goL15zdHJpbmcoXFxbKFswLTldKilcXF0pKiQvKX1pc0R5bmFtaWNUeXBlKCl7cmV0dXJuITB9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigyKSxvPXIoNCk7ZS5Tb2xpZGl0eVR5cGVSZWFsPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dFJlYWwsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0UmVhbH0pfWlzVHlwZSh0KXtyZXR1cm4hIXQubWF0Y2goL3JlYWwoWzAtOV0qKT8oXFxbKFswLTldKilcXF0pPy8pfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlVVJlYWw9Y2xhc3MgZXh0ZW5kcyBvLlNvbGlkaXR5VHlwZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKHtpbnB1dEZvcm1hdHRlcjpuLmZvcm1hdElucHV0UmVhbCxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXRVUmVhbH0pfWlzVHlwZSh0KXtyZXR1cm4hIXQubWF0Y2goL151cmVhbChbMC05XSopPyhcXFsoWzAtOV0qKVxcXSkqJC8pfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlQnl0ZXM9Y2xhc3MgZXh0ZW5kcyBvLlNvbGlkaXR5VHlwZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKHtpbnB1dEZvcm1hdHRlcjpuLmZvcm1hdElucHV0Qnl0ZXMsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0Qnl0ZXN9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9eYnl0ZXMoWzAtOV17MSx9KShcXFsoWzAtOV0qKVxcXSkqJC8pfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMyksbz1yKDgpLGk9cigyNikscz1yKDI3KTtlLkFsbFNvbGlkaXR5RXZlbnRzPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxyKXt0aGlzLl9yZXF1ZXN0TWFuYWdlcj10LHRoaXMuX2pzb249ZSx0aGlzLl9hZGRyZXNzPXJ9ZW5jb2RlKHQ9e30pe2xldCBlPXthZGRyZXNzOnRoaXMuX2FkZHJlc3N9O3JldHVybltcImZyb21CbG9ja1wiLFwidG9CbG9ja1wiXS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PXRbZV19KS5mb3JFYWNoKGZ1bmN0aW9uKHIpe2Vbcl09by5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyKHRbcl0pfSksZX1kZWNvZGUodCl7dC5kYXRhPXQuZGF0YXx8XCJcIjtsZXQgZT1uLmlzQXJyYXkodC50b3BpY3MpJiZuLmlzU3RyaW5nKHQudG9waWNzWzBdKT90LnRvcGljc1swXS5zbGljZSgyKTpcIlwiLHI9dGhpcy5fanNvbi5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGU9PT1uLnNoYTMobi50cmFuc2Zvcm1Ub0Z1bGxOYW1lKHQpKX0pWzBdO3JldHVybiByP25ldyBpLlNvbGlkaXR5RXZlbnQodGhpcy5fcmVxdWVzdE1hbmFnZXIscix0aGlzLl9hZGRyZXNzKS5kZWNvZGUodCk6by5vdXRwdXRMb2dGb3JtYXR0ZXIodCl9YXN5bmMgZXhlY3V0ZSh0KXtsZXQgZT10aGlzLmVuY29kZSh0KSxyPXRoaXMuZGVjb2RlLmJpbmQodGhpcyk7cmV0dXJuIG5ldyBzLkV0aEZpbHRlcih0aGlzLl9yZXF1ZXN0TWFuYWdlcixlLHIpfWF0dGFjaFRvQ29udHJhY3QodCl7bGV0IGU9dGhpcy5leGVjdXRlLmJpbmQodGhpcyk7dC5hbGxFdmVudHM9ZX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDMpLG89cigxNSksaT1yKDI0KSxzPXIoOSk7ZnVuY3Rpb24gYSh0LGUpe3JldHVybiB0LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm5cImNvbnN0cnVjdG9yXCI9PT10LnR5cGUmJnQuaW5wdXRzLmxlbmd0aD09PWUubGVuZ3RofSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlucHV0cy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBvLmNvZGVyLmVuY29kZVBhcmFtcyh0LGUpfSlbMF18fFwiXCJ9ZS5Db250cmFjdEZhY3Rvcnk9Y2xhc3N7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlcXVlc3RNYW5hZ2VyPXQsdGhpcy5hYmk9ZX1hc3luYyBkZXBsb3koLi4udCl7bGV0IGUscj10W3QubGVuZ3RoLTFdO2lmKG4uaXNPYmplY3QocikmJiFuLmlzQXJyYXkocikmJihlPXQucG9wKCkpLCFlKXRocm93IG5ldyBFcnJvcihcIk1pc3Npbmcgb3B0aW9ucyBvYmplY3RcIik7aWYoIWUuZGF0YXx8XCJzdHJpbmdcIiE9dHlwZW9mIGUuZGF0YSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIG9wdGlvbnMuZGF0YVwiKTtpZihlLnZhbHVlPjAmJiEodGhpcy5hYmkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVyblwiY29uc3RydWN0b3JcIj09PWUudHlwZSYmZS5pbnB1dHMubGVuZ3RoPT09dC5sZW5ndGh9KVswXXx8e30pLnBheWFibGUpdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHNlbmQgdmFsdWUgdG8gbm9uLXBheWFibGUgY29uc3RydWN0b3JcIik7bGV0IG89YSh0aGlzLmFiaSx0KTtlLmRhdGErPW8sZS5nYXN8fChlLmdhcz1hd2FpdCB0aGlzLnJlcXVlc3RNYW5hZ2VyLmV0aF9lc3RpbWF0ZUdhcyhlKSk7Y29uc3QgaT1hd2FpdCB0aGlzLnJlcXVlc3RNYW5hZ2VyLmV0aF9zZW5kVHJhbnNhY3Rpb24oZSksYz1hd2FpdCBhc3luYyBmdW5jdGlvbih0LGUpe2NvbnN0IHI9cy5mdXR1cmUoKTtsZXQgbj0wO2NvbnN0IG89KCk9PnsrK24+NTA/ci5yZWplY3QobmV3IEVycm9yKFwiQ29udHJhY3QgdHJhbnNhY3Rpb24gY291bGRuJ3QgYmUgZm91bmQgYWZ0ZXIgNTAgYmxvY2tzXCIpKTp0LmV0aF9nZXRUcmFuc2FjdGlvblJlY2VpcHQoZSkudGhlbih0PT57dCYmdC5ibG9ja0hhc2g/ci5yZXNvbHZlKHQpOnNldFRpbWVvdXQobywxZTMpfSx0PT5yLnJlamVjdCh0KSl9O28oKTtjb25zdCBpPWF3YWl0IHIsYT1hd2FpdCB0LmV0aF9nZXRDb2RlKGkuY29udHJhY3RBZGRyZXNzLFwibGF0ZXN0XCIpO2lmKGEubGVuZ3RoPjMpcmV0dXJuIGkuY29udHJhY3RBZGRyZXNzO3Rocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKFwiVGhlIGNvbnRyYWN0IGNvZGUgY291bGRuJ3QgYmUgc3RvcmVkLCBwbGVhc2UgY2hlY2sgeW91ciBnYXMgYW1vdW50LlwiKSx7cmVzcG9uc2U6YSxyZWNlaXB0Oml9KX0odGhpcy5yZXF1ZXN0TWFuYWdlcixpKSx1PWF3YWl0IHRoaXMuYXQoYyk7cmV0dXJuIHUudHJhbnNhY3Rpb25IYXNoPWksdX1hc3luYyBhdCh0KXtpZighbi5pc0FkZHJlc3ModCkpdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhZGRyZXNzICR7SlNPTi5zdHJpbmdpZnkodCl9YCk7cmV0dXJuIG5ldyBpLkNvbnRyYWN0KHRoaXMucmVxdWVzdE1hbmFnZXIsdGhpcy5hYmksdCl9YXN5bmMgZ2V0RGF0YSguLi50KXtsZXQgZT17ZGF0YTp2b2lkIDB9O2NvbnN0IHI9dFt0Lmxlbmd0aC0xXTtpZihuLmlzT2JqZWN0KHIpJiYhbi5pc0FycmF5KHIpJiYoZT10LnBvcCgpKSwhZSl0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIG9wdGlvbnMgb2JqZWN0XCIpO2lmKCFlLmRhdGF8fFwic3RyaW5nXCIhPXR5cGVvZiBlLmRhdGEpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBvcHRpb25zLmRhdGFcIik7Y29uc3Qgbz1hKHRoaXMuYWJpLHQpO3JldHVybiBlLmRhdGErPW8sZS5kYXRhfX19XSk7XG5leHBvcnQgZGVmYXVsdCBldGhjb25uZWN0OyIsIi8vIHRzbGludDpkaXNhYmxlXG5cbmltcG9ydCBYIGZyb20gJy4vZXRoLWNvbm5lY3QuZXNtJ1xudHlwZSBFVEhDID0gdHlwZW9mIGltcG9ydCgnLi9ldGgtY29ubmVjdCcpXG5jb25zdCBFdGhDb25uZWN0OiBFVEhDID0gWFxuZXhwb3J0ID0gRXRoQ29ubmVjdFxuIiwiZXhwb3J0IGRlZmF1bHQgW1xuXHR7XG5cdFx0aW5wdXRzOiBbXG5cdFx0XHR7XG5cdFx0XHRcdGludGVybmFsVHlwZTogJ2FkZHJlc3MnLFxuXHRcdFx0XHRuYW1lOiAnX3BvYXBDb250cmFjdEFkZHJlc3MnLFxuXHRcdFx0XHR0eXBlOiAnYWRkcmVzcycsXG5cdFx0XHR9LFxuXHRcdFx0eyBpbnRlcm5hbFR5cGU6ICdhZGRyZXNzJywgbmFtZTogJ192YWxpZFNpZ25lcicsIHR5cGU6ICdhZGRyZXNzJyB9LFxuXHRcdF0sXG5cdFx0cGF5YWJsZTogZmFsc2UsXG5cdFx0c3RhdGVNdXRhYmlsaXR5OiAnbm9ucGF5YWJsZScsXG5cdFx0dHlwZTogJ2NvbnN0cnVjdG9yJyxcblx0fSxcblx0e1xuXHRcdGFub255bW91czogZmFsc2UsXG5cdFx0aW5wdXRzOiBbXG5cdFx0XHR7XG5cdFx0XHRcdGluZGV4ZWQ6IGZhbHNlLFxuXHRcdFx0XHRpbnRlcm5hbFR5cGU6ICdieXRlcycsXG5cdFx0XHRcdG5hbWU6ICdfc2lnbmVkTWVzc2FnZScsXG5cdFx0XHRcdHR5cGU6ICdieXRlcycsXG5cdFx0XHR9LFxuXHRcdF0sXG5cdFx0bmFtZTogJ1ZlcmlmaWVkU2lnbmF0dXJlJyxcblx0XHR0eXBlOiAnZXZlbnQnLFxuXHR9LFxuXHR7XG5cdFx0Y29uc3RhbnQ6IGZhbHNlLFxuXHRcdGlucHV0czogW1xuXHRcdFx0eyBpbnRlcm5hbFR5cGU6ICd1aW50MjU2JywgbmFtZTogJ2V2ZW50X2lkJywgdHlwZTogJ3VpbnQyNTYnIH0sXG5cdFx0XHR7IGludGVybmFsVHlwZTogJ2FkZHJlc3MnLCBuYW1lOiAncmVjZWl2ZXInLCB0eXBlOiAnYWRkcmVzcycgfSxcblx0XHRcdHsgaW50ZXJuYWxUeXBlOiAnYnl0ZXMnLCBuYW1lOiAnc2lnbmVkTWVzc2FnZScsIHR5cGU6ICdieXRlcycgfSxcblx0XHRdLFxuXHRcdG5hbWU6ICdtaW50VG9rZW4nLFxuXHRcdG91dHB1dHM6IFt7IGludGVybmFsVHlwZTogJ2Jvb2wnLCBuYW1lOiAnJywgdHlwZTogJ2Jvb2wnIH1dLFxuXHRcdHBheWFibGU6IGZhbHNlLFxuXHRcdHN0YXRlTXV0YWJpbGl0eTogJ25vbnBheWFibGUnLFxuXHRcdHR5cGU6ICdmdW5jdGlvbicsXG5cdH0sXG5cdHtcblx0XHRjb25zdGFudDogdHJ1ZSxcblx0XHRpbnB1dHM6IFtdLFxuXHRcdG5hbWU6ICduYW1lJyxcblx0XHRvdXRwdXRzOiBbeyBpbnRlcm5hbFR5cGU6ICdzdHJpbmcnLCBuYW1lOiAnJywgdHlwZTogJ3N0cmluZycgfV0sXG5cdFx0cGF5YWJsZTogZmFsc2UsXG5cdFx0c3RhdGVNdXRhYmlsaXR5OiAndmlldycsXG5cdFx0dHlwZTogJ2Z1bmN0aW9uJyxcblx0fSxcblx0e1xuXHRcdGNvbnN0YW50OiB0cnVlLFxuXHRcdGlucHV0czogW10sXG5cdFx0bmFtZTogJ293bmVyJyxcblx0XHRvdXRwdXRzOiBbeyBpbnRlcm5hbFR5cGU6ICdhZGRyZXNzJywgbmFtZTogJycsIHR5cGU6ICdhZGRyZXNzJyB9XSxcblx0XHRwYXlhYmxlOiBmYWxzZSxcblx0XHRzdGF0ZU11dGFiaWxpdHk6ICd2aWV3Jyxcblx0XHR0eXBlOiAnZnVuY3Rpb24nLFxuXHR9LFxuXHR7XG5cdFx0Y29uc3RhbnQ6IHRydWUsXG5cdFx0aW5wdXRzOiBbeyBpbnRlcm5hbFR5cGU6ICdieXRlcycsIG5hbWU6ICcnLCB0eXBlOiAnYnl0ZXMnIH1dLFxuXHRcdG5hbWU6ICdwcm9jZXNzZWQnLFxuXHRcdG91dHB1dHM6IFt7IGludGVybmFsVHlwZTogJ2Jvb2wnLCBuYW1lOiAnJywgdHlwZTogJ2Jvb2wnIH1dLFxuXHRcdHBheWFibGU6IGZhbHNlLFxuXHRcdHN0YXRlTXV0YWJpbGl0eTogJ3ZpZXcnLFxuXHRcdHR5cGU6ICdmdW5jdGlvbicsXG5cdH0sXG5cdHtcblx0XHRjb25zdGFudDogdHJ1ZSxcblx0XHRpbnB1dHM6IFtdLFxuXHRcdG5hbWU6ICd2YWxpZFNpZ25lcicsXG5cdFx0b3V0cHV0czogW3sgaW50ZXJuYWxUeXBlOiAnYWRkcmVzcycsIG5hbWU6ICcnLCB0eXBlOiAnYWRkcmVzcycgfV0sXG5cdFx0cGF5YWJsZTogZmFsc2UsXG5cdFx0c3RhdGVNdXRhYmlsaXR5OiAndmlldycsXG5cdFx0dHlwZTogJ2Z1bmN0aW9uJyxcblx0fSxcbl1cbiIsImltcG9ydCB7IHNpZ25HdWVzdEJvb2ssIGdldEd1ZXN0Qm9vayB9IGZyb20gJy4vZ3Vlc3Rib29rJ1xuXG5leHBvcnQgY29uc3Qgc2NyZWVuU3BhY2VVSSA9IG5ldyBVSUNhbnZhcygpXG5zY3JlZW5TcGFjZVVJLnZpc2libGUgPSB0cnVlXG5cbmxldCBVSU9wZW5UaW1lXG5cbmNvbnN0IGltYWdlVGV4dHVyZSA9IG5ldyBUZXh0dXJlKCdpbWFnZXMvVUlfR3Vlc3Rib29rLnBuZycpXG5jb25zdCBzY2FsZU11bHRpcGxpZXIgPSAwLjdcblxudmFyIGxpbmVzUGVyR3Vlc3RCb29rUGFnZSA9IDE0XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvcGVuVUkoZXZlbnQ6IHN0cmluZykge1xuICBVSU9wZW5UaW1lID0gK0RhdGUubm93KClcbiAgYmFja2dyb3VuZC52aXNpYmxlID0gdHJ1ZVxuICBiYWNrZ3JvdW5kLmlzUG9pbnRlckJsb2NrZXIgPSB0cnVlXG4gIGxldCBndWVzdEJvb2tQYWdlID0gMVxuXG4gIGxldCBhbGxTaWduYXR1cmVzID0gYXdhaXQgZ2V0R3Vlc3RCb29rKGV2ZW50KVxuICBsZXQgdG90YWxQYWdlcyA9IGRpc3BsYXlTaWduYXR1cmVzKGFsbFNpZ25hdHVyZXMsIGd1ZXN0Qm9va1BhZ2UpXG5cbiAgU2lnbkJ1dHRvbi5vbkNsaWNrID0gbmV3IE9uQ2xpY2soKCkgPT4ge1xuICAgIHNpZ25HdWVzdEJvb2soZXZlbnQpXG4gICAgY2xvc2VVSSgpXG4gICAgbG9nKCdzaWduZWQgZ3Vlc3Rib29rJylcbiAgfSlcblxuICBsb2coJ09uIHBhZ2UgJywgZ3Vlc3RCb29rUGFnZSwgJyBvZiAnLCB0b3RhbFBhZ2VzKVxuXG4gIGlmICh0b3RhbFBhZ2VzIDwgMikge1xuICAgIExhc3RCdXR0b24udmlzaWJsZSA9IGZhbHNlXG4gICAgTmV4dEJ1dHRvbi52aXNpYmxlID0gZmFsc2VcbiAgfSBlbHNlIHtcbiAgICBMYXN0QnV0dG9uLnZpc2libGUgPSBmYWxzZVxuICAgIE5leHRCdXR0b24udmlzaWJsZSA9IHRydWVcbiAgfVxuXG4gIE5leHRCdXR0b24ub25DbGljayA9IG5ldyBPbkNsaWNrKGFzeW5jICgpID0+IHtcbiAgICBndWVzdEJvb2tQYWdlICs9IDFcblxuICAgIGFsbFNpZ25hdHVyZXMgPSBhd2FpdCBnZXRHdWVzdEJvb2soZXZlbnQpXG4gICAgZGlzcGxheVNpZ25hdHVyZXMoYWxsU2lnbmF0dXJlcywgZ3Vlc3RCb29rUGFnZSlcbiAgICBMYXN0QnV0dG9uLnZpc2libGUgPSB0cnVlXG4gICAgaWYgKGd1ZXN0Qm9va1BhZ2UgPj0gdG90YWxQYWdlcykge1xuICAgICAgTmV4dEJ1dHRvbi52aXNpYmxlID0gZmFsc2VcbiAgICB9XG4gIH0pXG5cbiAgTGFzdEJ1dHRvbi5vbkNsaWNrID0gbmV3IE9uQ2xpY2soYXN5bmMgKCkgPT4ge1xuICAgIGd1ZXN0Qm9va1BhZ2UgLT0gMVxuICAgIGlmIChndWVzdEJvb2tQYWdlIDwgMSkge1xuICAgICAgZ3Vlc3RCb29rUGFnZSA9IDFcbiAgICB9XG4gICAgYWxsU2lnbmF0dXJlcyA9IGF3YWl0IGdldEd1ZXN0Qm9vayhldmVudClcbiAgICBkaXNwbGF5U2lnbmF0dXJlcyhhbGxTaWduYXR1cmVzLCBndWVzdEJvb2tQYWdlKVxuICAgIE5leHRCdXR0b24udmlzaWJsZSA9IHRydWVcbiAgICBpZiAoZ3Vlc3RCb29rUGFnZSA9PSAxKSB7XG4gICAgICBMYXN0QnV0dG9uLnZpc2libGUgPSBmYWxzZVxuICAgIH1cbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsb3NlVUkoKSB7XG4gIGJhY2tncm91bmQudmlzaWJsZSA9IGZhbHNlXG4gIGJhY2tncm91bmQuaXNQb2ludGVyQmxvY2tlciA9IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBiYWNrZ3JvdW5kID0gbmV3IFVJSW1hZ2Uoc2NyZWVuU3BhY2VVSSwgaW1hZ2VUZXh0dXJlKVxuYmFja2dyb3VuZC5uYW1lID0gJ2JhY2tncm91bmQnXG5iYWNrZ3JvdW5kLndpZHRoID0gMTAyNCAqIHNjYWxlTXVsdGlwbGllclxuYmFja2dyb3VuZC5oZWlnaHQgPSA5MjEgKiBzY2FsZU11bHRpcGxpZXJcbmJhY2tncm91bmQuaEFsaWduID0gJ2NlbnRlcidcbmJhY2tncm91bmQudkFsaWduID0gJ2NlbnRlcidcbmJhY2tncm91bmQuc291cmNlTGVmdCA9IDBcbmJhY2tncm91bmQuc291cmNlVG9wID0gNzZcbmJhY2tncm91bmQuc291cmNlV2lkdGggPSAxMDI0XG5iYWNrZ3JvdW5kLnNvdXJjZUhlaWdodCA9IDkyMVxuYmFja2dyb3VuZC52aXNpYmxlID0gZmFsc2VcbmJhY2tncm91bmQuaXNQb2ludGVyQmxvY2tlciA9IGZhbHNlXG5cbmV4cG9ydCBjb25zdCBzaWduYXR1cmVzVUkgPSBuZXcgVUlUZXh0KGJhY2tncm91bmQpXG5zaWduYXR1cmVzVUkudmFsdWUgPSAnRmV0Y2hpbmcgc2lnbmF0dXJlcydcbnNpZ25hdHVyZXNVSS5uYW1lID0gJ3NpZ25hdHVyZXMnXG5zaWduYXR1cmVzVUkud2lkdGggPSAnNjUwcHgnXG5zaWduYXR1cmVzVUkuaGVpZ2h0ID0gJzgwMHB4J1xuc2lnbmF0dXJlc1VJLmhBbGlnbiA9ICdjZW50ZXInXG5zaWduYXR1cmVzVUkudkFsaWduID0gJ2NlbnRlcidcbnNpZ25hdHVyZXNVSS5wb3NpdGlvblkgPSAwXG5zaWduYXR1cmVzVUkucG9zaXRpb25YID0gMFxuc2lnbmF0dXJlc1VJLmZvbnRTaXplID0gMjVcbnNpZ25hdHVyZXNVSS52VGV4dEFsaWduID0gJ2NlbnRlcidcbnNpZ25hdHVyZXNVSS5oVGV4dEFsaWduID0gJ2NlbnRlcidcbnNpZ25hdHVyZXNVSS5jb2xvciA9IENvbG9yNC5Gcm9tSGV4U3RyaW5nKCcjNTM1MDhGODgnKVxuXG5leHBvcnQgY29uc3QgU2lnbkJ1dHRvbiA9IG5ldyBVSUltYWdlKGJhY2tncm91bmQsIGltYWdlVGV4dHVyZSlcblNpZ25CdXR0b24ubmFtZSA9ICdTaWduQnV0dG9uJ1xuU2lnbkJ1dHRvbi53aWR0aCA9IDQ2MCAqIHNjYWxlTXVsdGlwbGllclxuU2lnbkJ1dHRvbi5oZWlnaHQgPSA3NSAqIHNjYWxlTXVsdGlwbGllclxuU2lnbkJ1dHRvbi5oQWxpZ24gPSAnY2VudGVyJ1xuU2lnbkJ1dHRvbi52QWxpZ24gPSAnY2VudGVyJ1xuU2lnbkJ1dHRvbi5wb3NpdGlvblkgPSAoLTgzOSArIDkyMSAvIDIpICogc2NhbGVNdWx0aXBsaWVyXG5TaWduQnV0dG9uLnBvc2l0aW9uWCA9IDBcblNpZ25CdXR0b24uc291cmNlTGVmdCA9IDc2XG5TaWduQnV0dG9uLnNvdXJjZVRvcCA9IDBcblNpZ25CdXR0b24uc291cmNlV2lkdGggPSA0NjBcblNpZ25CdXR0b24uc291cmNlSGVpZ2h0ID0gNzVcblxuZXhwb3J0IGNvbnN0IE5leHRCdXR0b24gPSBuZXcgVUlJbWFnZShiYWNrZ3JvdW5kLCBpbWFnZVRleHR1cmUpXG5OZXh0QnV0dG9uLm5hbWUgPSAnTmV4dEJ1dHRvbidcbk5leHRCdXR0b24ud2lkdGggPSA3NiAqIHNjYWxlTXVsdGlwbGllclxuTmV4dEJ1dHRvbi5oZWlnaHQgPSA3NiAqIHNjYWxlTXVsdGlwbGllclxuTmV4dEJ1dHRvbi5oQWxpZ24gPSAnY2VudGVyJ1xuTmV4dEJ1dHRvbi52QWxpZ24gPSAnY2VudGVyJ1xuTmV4dEJ1dHRvbi5wb3NpdGlvblkgPSAwXG5OZXh0QnV0dG9uLnBvc2l0aW9uWCA9IDMwMFxuTmV4dEJ1dHRvbi5zb3VyY2VMZWZ0ID0gNTM3XG5OZXh0QnV0dG9uLnNvdXJjZVRvcCA9IDBcbk5leHRCdXR0b24uc291cmNlV2lkdGggPSA3NVxuTmV4dEJ1dHRvbi5zb3VyY2VIZWlnaHQgPSA3NVxuXG5leHBvcnQgY29uc3QgTGFzdEJ1dHRvbiA9IG5ldyBVSUltYWdlKGJhY2tncm91bmQsIGltYWdlVGV4dHVyZSlcbkxhc3RCdXR0b24ubmFtZSA9ICdMYXN0QnV0dG9uJ1xuTGFzdEJ1dHRvbi53aWR0aCA9IDc2ICogc2NhbGVNdWx0aXBsaWVyXG5MYXN0QnV0dG9uLmhlaWdodCA9IDc2ICogc2NhbGVNdWx0aXBsaWVyXG5MYXN0QnV0dG9uLmhBbGlnbiA9ICdjZW50ZXInXG5MYXN0QnV0dG9uLnZBbGlnbiA9ICdjZW50ZXInXG5MYXN0QnV0dG9uLnBvc2l0aW9uWSA9IDBcbkxhc3RCdXR0b24ucG9zaXRpb25YID0gLTMwMFxuTGFzdEJ1dHRvbi5zb3VyY2VMZWZ0ID0gMFxuTGFzdEJ1dHRvbi5zb3VyY2VUb3AgPSAwXG5MYXN0QnV0dG9uLnNvdXJjZVdpZHRoID0gNzVcbkxhc3RCdXR0b24uc291cmNlSGVpZ2h0ID0gNzVcblxuLy8gYXJyYW5nZSBhbGwgc2lnbmF0dXJlcyBpbnRvIHBhZ2VzXG5mdW5jdGlvbiBkaXNwbGF5U2lnbmF0dXJlcyhhbGxTaWduYXR1cmVzOiBhbnlbXSwgZ3Vlc3RCb29rUGFnZTogbnVtYmVyKSB7XG4gIGxldCBzaWduYXR1cmVQYWdlID0gMFxuICBsZXQgc2lnbmF0dXJlTGlzdCA9IFsnJ11cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxTaWduYXR1cmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgc2lnbmF0dXJlTGlzdFtzaWduYXR1cmVQYWdlXSA9IHNpZ25hdHVyZUxpc3Rbc2lnbmF0dXJlUGFnZV0uY29uY2F0KFxuICAgICAgYWxsU2lnbmF0dXJlc1tpXS5uYW1lXG4gICAgKVxuICAgIHNpZ25hdHVyZUxpc3Rbc2lnbmF0dXJlUGFnZV0gPSBzaWduYXR1cmVMaXN0W3NpZ25hdHVyZVBhZ2VdLmNvbmNhdCgnIC0gJylcbiAgICBsZXQgbGluZXMgPSBzaWduYXR1cmVMaXN0W3NpZ25hdHVyZVBhZ2VdLnNwbGl0KCdcXG4nKVxuICAgIGlmIChsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGggPiAyNSkge1xuICAgICAgc2lnbmF0dXJlTGlzdFtzaWduYXR1cmVQYWdlXSA9IHNpZ25hdHVyZUxpc3Rbc2lnbmF0dXJlUGFnZV0uY29uY2F0KCdcXG4nKVxuICAgIH1cblxuICAgIGlmIChsaW5lcy5sZW5ndGggPj0gbGluZXNQZXJHdWVzdEJvb2tQYWdlKSB7XG4gICAgICBzaWduYXR1cmVQYWdlICs9IDFcbiAgICAgIHNpZ25hdHVyZUxpc3QucHVzaCgnJylcbiAgICAgIC8vZ3Vlc3RCb29rUGFnZVxuICAgIH1cbiAgfVxuICBzaWduYXR1cmVzVUkudmFsdWUgPSBzaWduYXR1cmVMaXN0W2d1ZXN0Qm9va1BhZ2UgLSAxXVxuICBsb2coXG4gICAgJ3NpZ25hdHVyZSB0byBzaG93IGZyb20gcGFnZSAnLFxuICAgIGd1ZXN0Qm9va1BhZ2UsXG4gICAgJyA6JyxcbiAgICBzaWduYXR1cmVMaXN0W2d1ZXN0Qm9va1BhZ2UgLSAxXVxuICApXG5cbiAgcmV0dXJuIHNpZ25hdHVyZUxpc3QubGVuZ3RoXG59XG5cbi8vIEluc3RhbmNlIHRoZSBpbnB1dCBvYmplY3RcbmNvbnN0IGlucHV0ID0gSW5wdXQuaW5zdGFuY2VcblxuLy9idXR0b24gZG93biBldmVudFxuaW5wdXQuc3Vic2NyaWJlKCdCVVRUT05fRE9XTicsIEFjdGlvbkJ1dHRvbi5QT0lOVEVSLCBmYWxzZSwgKGUpID0+IHtcbiAgY29uc3QgY3VycmVudFRpbWUgPSArRGF0ZS5ub3coKVxuICBsZXQgaXNPcGVuOiBib29sZWFuXG4gIGlmIChiYWNrZ3JvdW5kLnZpc2libGUpIHtcbiAgICBpc09wZW4gPSB0cnVlXG4gIH0gZWxzZSB7XG4gICAgaXNPcGVuID0gZmFsc2VcbiAgfVxuXG4gIGlmIChpc09wZW4gJiYgY3VycmVudFRpbWUgLSBVSU9wZW5UaW1lID4gMTAwKSB7XG4gICAgY2xvc2VVSSgpXG4gIH1cbn0pXG4iLCJpbXBvcnQgeyBvcGVuVUkgfSBmcm9tICcuL3VpJ1xuaW1wb3J0IHsgdXNlckRhdGEsIHNldFVzZXJEYXRhIH0gZnJvbSAnLi9wb2FwSGFuZGxlcidcblxuLy8gZXh0ZXJuYWwgc2VydmVycyBiZWluZyB1c2VkIGJ5IHRoZSBwcm9qZWN0IC0gUGxlYXNlIGNoYW5nZSB0aGVzZSB0byB5b3VyIG93biBpZiB3b3JraW5nIG9uIHNvbWV0aGluZyBlbHNlIVxuZXhwb3J0IGxldCBmaXJlQmFzZVNlcnZlciA9XG4gICdodHRwczovL3VzLWNlbnRyYWwxLWRlY2VudHJhbGFuZC1ldmVudHMuY2xvdWRmdW5jdGlvbnMubmV0L2FwcC8nXG5cbi8vIGdldCBwbGF5ZXIgZGF0YVxuXG5leHBvcnQgY2xhc3MgR3Vlc3RCb29rIGV4dGVuZHMgRW50aXR5IHtcbiAgZXZlbnROYW1lOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoXG4gICAgdHJhbnNmb3JtOiBUcmFuZm9ybUNvbnN0cnVjdG9yQXJncyxcbiAgICBldmVudE5hbWU6IHN0cmluZ1xuXG4gICAgLy8sc291bmQ6IEF1ZGlvQ2xpcFxuICApIHtcbiAgICBzdXBlcigpXG4gICAgZW5naW5lLmFkZEVudGl0eSh0aGlzKVxuXG4gICAgdGhpcy5hZGRDb21wb25lbnQobmV3IEdMVEZTaGFwZSgnbW9kZWxzL2d1ZXN0Ym9vay9ndWVzdGJvb2suZ2xiJykpXG4gICAgdGhpcy5hZGRDb21wb25lbnQobmV3IFRyYW5zZm9ybSh0cmFuc2Zvcm0pKVxuXG4gICAgdGhpcy5ldmVudE5hbWUgPSBldmVudE5hbWVcblxuICAgIHRoaXMuYWRkQ29tcG9uZW50KFxuICAgICAgbmV3IE9uUG9pbnRlckRvd24oXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBvcGVuVUkoZXZlbnROYW1lKVxuICAgICAgICAgIGxvZygnT1BFTkVEIEdVRVNUQk9PSycpXG4gICAgICAgIH0sXG4gICAgICAgIHsgaG92ZXJUZXh0OiAnT3BlbicgfVxuICAgICAgKVxuICAgIClcblxuICAgIGxldCBndWVzdEJvb2tCYXNlID0gbmV3IEVudGl0eSgpXG4gICAgZ3Vlc3RCb29rQmFzZS5hZGRDb21wb25lbnQobmV3IFRyYW5zZm9ybSgpKVxuICAgIGd1ZXN0Qm9va0Jhc2UuYWRkQ29tcG9uZW50KFxuICAgICAgbmV3IEdMVEZTaGFwZSgnbW9kZWxzL2d1ZXN0Ym9vay9ndWVzdGJvb2tfYmFzZS5nbGInKVxuICAgIClcbiAgICBndWVzdEJvb2tCYXNlLnNldFBhcmVudCh0aGlzKVxuICB9XG59XG5cbi8vIGdldCBsYXRlc3Qgc2NvcmVib2FyZCBkYXRhIGZyb20gc2VydmVyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0R3Vlc3RCb29rKGV2ZW50OiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBsZXQgdXJsID0gZmlyZUJhc2VTZXJ2ZXIgKyAnZ2V0LXNpZ25hdHVyZXMvP2V2ZW50PScgKyBldmVudFxuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybClcbiAgICBsZXQganNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgIGxvZyhqc29uKVxuICAgIHJldHVybiBqc29uXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2coJ2Vycm9yIGZldGNoaW5nIHNjb3JlcyBmcm9tIHNlcnZlciAnLCBlKVxuICB9XG59XG5cbi8vIGNoYW5nZSBkYXRhIGluIHNjb3JlYm9hcmRcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduR3Vlc3RCb29rKGV2ZW50OiBzdHJpbmcpIHtcbiAgaWYgKCF1c2VyRGF0YSkge1xuICAgIGF3YWl0IHNldFVzZXJEYXRhKClcbiAgfVxuICB0cnkge1xuICAgIGxldCB1cmwgPSBmaXJlQmFzZVNlcnZlciArICdhZGQtc2lnbmF0dXJlLz9ldmVudD0nICsgZXZlbnRcbiAgICBsZXQgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGlkOiAoYXdhaXQgdXNlckRhdGEpLnVzZXJJZCxcbiAgICAgIG5hbWU6IChhd2FpdCB1c2VyRGF0YSkuZGlzcGxheU5hbWUsXG4gICAgfSlcbiAgICBsb2coYm9keSlcbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICBib2R5OiBib2R5LFxuICAgIH0pXG4gICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKVxuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nKCdlcnJvciBwb3N0aW5nIHRvIHNlcnZlciAnLCBlKVxuICB9XG59XG4iLCIvL2ltcG9ydCB7IGNhbGxBUEksIG1ha2VUcmFuc2FjdGlvbiB9IGZyb20gJy4vcG9hcEhhbmRsZXInXG5pbXBvcnQgeyBEaXNwZW5zZXIgfSBmcm9tICcuL2Rpc3BlbnNlcidcbmltcG9ydCB7IEd1ZXN0Qm9vayB9IGZyb20gJy4vZ3Vlc3Rib29rJ1xuXG4vLyBHVUVTVEJPT0tcblxubGV0IGd1ZXN0Qm9vayA9IG5ldyBHdWVzdEJvb2soXG4gIHtcbiAgICBwb3NpdGlvbjogbmV3IFZlY3RvcjMoMTAsIDAsIDYpLFxuICB9LFxuICAndGVzdCdcbilcblxuLy8gUE9BUCBCT09USFxuXG5sZXQgUE9BUEJvb3RoID0gbmV3IERpc3BlbnNlcihcbiAge1xuICAgIHBvc2l0aW9uOiBuZXcgVmVjdG9yMyg4LCAwLCA4KSxcbiAgfSxcbiAgJ2dlbmVzaXMnXG4pXG5cbi8vIE1BS0UgUE9BUCBCT09USCBNVUxUSVBMQVlFUlxuXG5leHBvcnQgbGV0IHNjZW5lTWVzc2FnZUJ1cyA9IG5ldyBNZXNzYWdlQnVzKClcblxuc2NlbmVNZXNzYWdlQnVzLm9uKCdhY3RpdmF0ZVBvYXAnLCAoKSA9PiB7XG4gIFBPQVBCb290aC5hY3RpdmF0ZSgpXG59KVxuXG4vLyBQT0FQIEJBTk5FUlxuXG5sZXQgUE9BUEJhbm5lciA9IG5ldyBFbnRpdHkoKVxuUE9BUEJhbm5lci5hZGRDb21wb25lbnQoXG4gIG5ldyBUcmFuc2Zvcm0oe1xuICAgIHBvc2l0aW9uOiBuZXcgVmVjdG9yMyg2LCAwLCA4KSxcbiAgfSlcbilcblBPQVBCYW5uZXIuYWRkQ29tcG9uZW50KG5ldyBHTFRGU2hhcGUoJ21vZGVscy9wb2FwL1BPQVBfQmFubmVyLmdsYicpKVxuZW5naW5lLmFkZEVudGl0eShQT0FQQmFubmVyKVxuXG5QT0FQQmFubmVyLmFkZENvbXBvbmVudChcbiAgbmV3IE9uUG9pbnRlckRvd24oXG4gICAgKGUpID0+IHtcbiAgICAgIG9wZW5FeHRlcm5hbFVSTCgnaHR0cHM6Ly93d3cucG9hcC54eXovJylcbiAgICB9LFxuICAgIHsgaG92ZXJUZXh0OiAnTGVhcm4gTW9yZScgfVxuICApXG4pXG5cbi8vIEZMT09SXG5cbmNvbnN0IGVudGl0eSA9IG5ldyBFbnRpdHkoJ2VudGl0eScpXG5lbmdpbmUuYWRkRW50aXR5KGVudGl0eSlcbmVudGl0eS5hZGRDb21wb25lbnRPclJlcGxhY2UoXG4gIG5ldyBHTFRGU2hhcGUoJ21vZGVscy9GbG9vckJhc2VHcmFzc18wMS9GbG9vckJhc2VHcmFzc18wMS5nbGInKVxuKVxuZW50aXR5LmFkZENvbXBvbmVudE9yUmVwbGFjZShcbiAgbmV3IFRyYW5zZm9ybSh7XG4gICAgcG9zaXRpb246IG5ldyBWZWN0b3IzKDgsIDAsIDgpLFxuICAgIHJvdGF0aW9uOiBuZXcgUXVhdGVybmlvbigwLCAwLCAwLCAxKSxcbiAgICBzY2FsZTogbmV3IFZlY3RvcjMoMSwgMSwgMSksXG4gIH0pXG4pXG4iLCJpbXBvcnQgeyBnZXRVc2VyRGF0YSwgVXNlckRhdGEgfSBmcm9tICdAZGVjZW50cmFsYW5kL0lkZW50aXR5J1xuaW1wb3J0ICogYXMgZXRoIGZyb20gJy4uL25vZGVfbW9kdWxlcy9ldGgtY29ubmVjdC9lc20nXG5pbXBvcnQgKiBhcyBFdGhlcmV1bUNvbnRyb2xsZXIgZnJvbSAnQGRlY2VudHJhbGFuZC9FdGhlcmV1bUNvbnRyb2xsZXInXG5pbXBvcnQgeyBnZXRQcm92aWRlciB9IGZyb20gJ0BkZWNlbnRyYWxhbmQvd2ViMy1wcm92aWRlcidcbmltcG9ydCBwb2FwQ29udHJhY3QgZnJvbSAnLi9hYmlzL1BvYXBEZWxlZ2F0ZU1pbnQnXG5pbXBvcnQgeyBzY2VuZU1lc3NhZ2VCdXMgfSBmcm9tICcuL2dhbWUnXG5cbmV4cG9ydCBsZXQgZXRoQ29udHJvbGxlciA9IEV0aGVyZXVtQ29udHJvbGxlclxuXG5leHBvcnQgbGV0IGZpcmVCYXNlU2VydmVyID1cbiAgJ2h0dHBzOi8vdXMtY2VudHJhbDEtZGVjZW50cmFsYW5kLWV2ZW50cy5jbG91ZGZ1bmN0aW9ucy5uZXQvYXBwLydcblxuZXhwb3J0IGxldCB1c2VyRGF0YTogVXNlckRhdGFcblxudHlwZSBldmVudERhdGEgPSB7XG4gIHNlY3JldDogc3RyaW5nXG4gIGV2ZW50X2lkOiBzdHJpbmdcbn1cblxudHlwZSBzaWduZWRFdmVudERhdGEgPSB7XG4gIHNpZ25lZF9tZXNzYWdlOiBzdHJpbmdcbiAgZXZlbnRfaWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hVc2VyRGF0YSgpIHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGdldFVzZXJEYXRhKClcbiAgbG9nKGRhdGEuZGlzcGxheU5hbWUpXG4gIHJldHVybiBkYXRhXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRVc2VyRGF0YSgpIHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGdldFVzZXJEYXRhKClcbiAgbG9nKGRhdGEuZGlzcGxheU5hbWUpXG4gIHVzZXJEYXRhID0gZGF0YVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FsbFFSQVBJKGV2ZW50OiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsID0gZmlyZUJhc2VTZXJ2ZXIgKyAnZ2V0LXBvYXAtY29kZS8/ZXZlbnQ9JyArIGV2ZW50XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGxldCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgbG9nKCdUT0tFTjogJywgZGF0YS50b2tlbilcbiAgICByZXR1cm4gZGF0YS50b2tlbi50b1N0cmluZygpXG4gIH0gY2F0Y2gge1xuICAgIGxvZygnZXJyb3IgZmV0Y2hpbmcgZnJvbSB0b2tlbiBzZXJ2ZXIgJywgdXJsKVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTZWNyZXQocXJIZXg6IHN0cmluZykge1xuICBjb25zdCB1cmwgPSAnaHR0cHM6Ly9hcGkucG9hcC54eXovYWN0aW9ucy9jbGFpbS1xcj9xcl9oYXNoPScgKyBxckhleFxuXG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGxldCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgbGV0IGpzb246IGV2ZW50RGF0YSA9IHsgc2VjcmV0OiBkYXRhLnNlY3JldCwgZXZlbnRfaWQ6IGRhdGEuZXZlbnRfaWQgfVxuICAgIGxvZygnc2VjcmV0IDonLCBqc29uKVxuICAgIHJldHVybiBqc29uXG4gIH0gY2F0Y2gge1xuICAgIGxvZygnZXJyb3IgZmV0Y2hpbmcgZnJvbSBQT0FQIHNlcnZlciAnLCB1cmwpXG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNpZ25lZE1lc3NhZ2UoZGF0YTogZXZlbnREYXRhLCBxckhleDogc3RyaW5nKSB7XG4gIGNvbnN0IHVybCA9ICdodHRwczovL2FwaS5wb2FwLnh5ei9hY3Rpb25zL2NsYWltLXFyJ1xuICBsZXQgbWV0aG9kID0gJ1BPU1QnXG4gIGxldCBoZWFkZXJzID0geyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH1cbiAgbGV0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgYWRkcmVzczogdXNlckRhdGEucHVibGljS2V5LFxuICAgIGRlbGVnYXRlZDogdHJ1ZSxcbiAgICBxcl9oYXNoOiBxckhleCxcbiAgICBzZWNyZXQ6IGRhdGEuc2VjcmV0LFxuICB9KVxuICBsb2coJ3NlbmRpbmcgJywgYm9keSlcblxuICB0cnkge1xuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgYm9keTogYm9keSxcbiAgICB9KVxuICAgIGxldCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgbGV0IGpzb246IHNpZ25lZEV2ZW50RGF0YSA9IHtcbiAgICAgIHNpZ25lZF9tZXNzYWdlOiBkYXRhLmRlbGVnYXRlZF9zaWduZWRfbWVzc2FnZSxcbiAgICAgIGV2ZW50X2lkOiBkYXRhLmV2ZW50X2lkLFxuICAgIH1cbiAgICByZXR1cm4ganNvblxuICB9IGNhdGNoIHtcbiAgICBsb2coJ2Vycm9yIGZldGNoaW5nIGZyb20gUE9BUCBzZXJ2ZXIgJywgdXJsKVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWtlVHJhbnNhY3Rpb24oZXZlbnQ6IHN0cmluZykge1xuICBpZiAoIXVzZXJEYXRhKSB7XG4gICAgdXNlckRhdGEgPSBhd2FpdCBmZXRjaFVzZXJEYXRhKClcbiAgfVxuICBpZiAoIXVzZXJEYXRhLmhhc0Nvbm5lY3RlZFdlYjMpIHtcbiAgICBsb2coJ25vIHdhbGxldCcpXG4gICAgcmV0dXJuXG4gIH1cbiAgbGV0IHFySGV4OiBzdHJpbmcgPSBhd2FpdCBjYWxsUVJBUEkoZXZlbnQpXG5cbiAgbGV0IHNlY3JldDogZXZlbnREYXRhID0gYXdhaXQgZ2V0U2VjcmV0KHFySGV4KVxuXG4gIGxldCBzaWduYXR1cmU6IHNpZ25lZEV2ZW50RGF0YSA9IGF3YWl0IGdldFNpZ25lZE1lc3NhZ2Uoc2VjcmV0LCBxckhleClcblxuICBsb2coJ3NpZ25hdHVyZSBmb3IgcmVxdWVzdCAnLCBzaWduYXR1cmUpXG5cbiAgY29uc3QgcHJvdmlkZXIgPSBhd2FpdCBnZXRQcm92aWRlcigpXG4gIGNvbnN0IHJtID0gbmV3IGV0aC5SZXF1ZXN0TWFuYWdlcihwcm92aWRlcilcblxuICBjb25zdCBwb2FwVG9rZW5GYWN0b3J5ID0gYXdhaXQgbmV3IGV0aC5Db250cmFjdEZhY3Rvcnkocm0sIHBvYXBDb250cmFjdClcbiAgY29uc3QgUG9hcERlbGVnYXRlZE1pbnQgPSAoYXdhaXQgcG9hcFRva2VuRmFjdG9yeS5hdChcbiAgICAvL3JvcHN0ZW5cbiAgICAvLycweDJmM2MyM2I1MDM5NkVjQjU1QzczOTU2QjA2OUNGMDRlNDkzYmRFZjknXG4gICAgLy9tYWlubmV0XG4gICAgJzB4QWFjMjQ5NzE3NGYyRWM0MDY5QTk4Mzc1QTY3RDc5OGRiOGEwNTMzNydcbiAgKSkgYXMgYW55XG5cbiAgYXdhaXQgUG9hcERlbGVnYXRlZE1pbnQubWludFRva2VuKFxuICAgIHNpZ25hdHVyZS5ldmVudF9pZCxcbiAgICB1c2VyRGF0YS5wdWJsaWNLZXksXG4gICAgc2lnbmF0dXJlLnNpZ25lZF9tZXNzYWdlLFxuICAgIHtcbiAgICAgIGZyb206IHVzZXJEYXRhLnB1YmxpY0tleSxcbiAgICB9XG4gICkudGhlbihzY2VuZU1lc3NhZ2VCdXMuZW1pdCgnYWN0aXZhdGVQb2FwJywge30pKVxuXG4gIHJldHVyblxufVxuIiwiLy8gaW1wb3J0IHsgb3BlblVJMSB9IGZyb20gJy4vdWknXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvaW5kZXgnXG5pbXBvcnQgeyBtYWtlVHJhbnNhY3Rpb24gfSBmcm9tICcuL3BvYXBIYW5kbGVyJ1xuaW1wb3J0IHsgc2NlbmVNZXNzYWdlQnVzIH0gZnJvbSAnLi9nYW1lJ1xuXG5leHBvcnQgY2xhc3MgRGlzcGVuc2VyIGV4dGVuZHMgRW50aXR5IHtcbiAgaWRsZUFuaW0gPSBuZXcgQW5pbWF0aW9uU3RhdGUoJ0lkbGVfUE9BUCcsIHsgbG9vcGluZzogdHJ1ZSB9KVxuICBidXlBbmltID0gbmV3IEFuaW1hdGlvblN0YXRlKCdBY3Rpb25fUE9BUCcsIHsgbG9vcGluZzogZmFsc2UgfSlcbiAgYnV0dG9uQW5pbSA9IG5ldyBBbmltYXRpb25TdGF0ZSgnQnV0dG9uX0FjdGlvbicsIHsgbG9vcGluZzogZmFsc2UgfSlcbiAgZXZlbnROYW1lOiBzdHJpbmdcbiAgY29uc3RydWN0b3IodHJhbnNmb3JtOiBUcmFuZm9ybUNvbnN0cnVjdG9yQXJncywgZXZlbnROYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpXG4gICAgZW5naW5lLmFkZEVudGl0eSh0aGlzKVxuXG4gICAgdGhpcy5hZGRDb21wb25lbnQobmV3IEdMVEZTaGFwZSgnbW9kZWxzL3BvYXAvUE9BUF9kaXNwZW5zZXIuZ2xiJykpXG4gICAgdGhpcy5hZGRDb21wb25lbnQobmV3IFRyYW5zZm9ybSh0cmFuc2Zvcm0pKVxuXG4gICAgdGhpcy5hZGRDb21wb25lbnQobmV3IEFuaW1hdG9yKCkpXG4gICAgdGhpcy5nZXRDb21wb25lbnQoQW5pbWF0b3IpLmFkZENsaXAodGhpcy5pZGxlQW5pbSlcbiAgICB0aGlzLmdldENvbXBvbmVudChBbmltYXRvcikuYWRkQ2xpcCh0aGlzLmJ1eUFuaW0pXG4gICAgdGhpcy5pZGxlQW5pbS5wbGF5KClcblxuICAgIHRoaXMuZXZlbnROYW1lID0gZXZlbnROYW1lXG5cbiAgICBsZXQgYnV0dG9uID0gbmV3IEVudGl0eSgpXG4gICAgYnV0dG9uLmFkZENvbXBvbmVudChuZXcgR0xURlNoYXBlKCdtb2RlbHMvcG9hcC9QT0FQX2J1dHRvbi5nbGInKSlcbiAgICBidXR0b24uYWRkQ29tcG9uZW50KG5ldyBBbmltYXRvcigpKVxuICAgIGJ1dHRvbi5nZXRDb21wb25lbnQoQW5pbWF0b3IpLmFkZENsaXAodGhpcy5idXR0b25BbmltKVxuICAgIGJ1dHRvbi5zZXRQYXJlbnQodGhpcylcbiAgICBidXR0b24uYWRkQ29tcG9uZW50KFxuICAgICAgbmV3IE9uUG9pbnRlckRvd24oXG4gICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgYnV0dG9uLmdldENvbXBvbmVudChBbmltYXRvcikuZ2V0Q2xpcCgnQWN0aW9uJykuc3RvcCgpXG4gICAgICAgICAgYnV0dG9uLmdldENvbXBvbmVudChBbmltYXRvcikuZ2V0Q2xpcCgnQWN0aW9uJykucGxheSgpXG4gICAgICAgICAgc2NlbmVNZXNzYWdlQnVzLmVtaXQoJ2FjdGl2YXRlUG9hcCcsIHt9KVxuICAgICAgICAgIG1ha2VUcmFuc2FjdGlvbihldmVudE5hbWUpXG4gICAgICAgIH0sXG4gICAgICAgIHsgaG92ZXJUZXh0OiAnR2V0IEF0dGVuZGFuY2UgVG9rZW4nIH1cbiAgICAgIClcbiAgICApXG4gICAgZW5naW5lLmFkZEVudGl0eShidXR0b24pXG4gIH1cblxuICBwdWJsaWMgYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgbGV0IGFuaW0gPSB0aGlzLmdldENvbXBvbmVudChBbmltYXRvcilcblxuICAgIGFuaW0uZ2V0Q2xpcCgnSWRsZV9QT0FQJykuc3RvcCgpXG4gICAgYW5pbS5nZXRDbGlwKCdBY3Rpb25fUE9BUCcpLnN0b3AoKVxuXG4gICAgYW5pbS5nZXRDbGlwKCdBY3Rpb25fUE9BUCcpLnBsYXkoKVxuXG4gICAgdGhpcy5hZGRDb21wb25lbnRPclJlcGxhY2UoXG4gICAgICBuZXcgdXRpbHMuRGVsYXkoNDAwMCwgKCkgPT4ge1xuICAgICAgICBhbmltLmdldENsaXAoJ0FjdGlvbl9QT0FQJykuc3RvcCgpXG5cbiAgICAgICAgYW5pbS5nZXRDbGlwKCdJZGxlX1BPQVAnKS5wbGF5KClcbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0="); \ No newline at end of file +eval("var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __metadata = (this && this.__metadata) || function (k, v) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n};\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __spread = (this && this.__spread) || function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n};\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/itransformcomponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/math/interpolation\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Interpolate = exports.InterpolationType = void 0;\r\n var InterpolationType;\r\n (function (InterpolationType) {\r\n InterpolationType[InterpolationType[\"LINEAR\"] = 0] = \"LINEAR\";\r\n InterpolationType[InterpolationType[\"EASEINQUAD\"] = 1] = \"EASEINQUAD\";\r\n InterpolationType[InterpolationType[\"EASEOUTQUAD\"] = 2] = \"EASEOUTQUAD\";\r\n InterpolationType[InterpolationType[\"EASEQUAD\"] = 3] = \"EASEQUAD\";\r\n })(InterpolationType = exports.InterpolationType || (exports.InterpolationType = {}));\r\n function Interpolate(type, t) {\r\n switch (type) {\r\n case InterpolationType.LINEAR:\r\n return InterpolateLinear(t);\r\n case InterpolationType.EASEINQUAD:\r\n return InterpolateEaseInQuad(t);\r\n case InterpolationType.EASEOUTQUAD:\r\n return InterpolateEaseOutQuad(t);\r\n case InterpolationType.EASEQUAD:\r\n return InterpolateEaseQuad(t);\r\n default:\r\n return InterpolateLinear(t);\r\n }\r\n }\r\n exports.Interpolate = Interpolate;\r\n function InterpolateLinear(t) {\r\n return t;\r\n }\r\n function InterpolateEaseInQuad(t) {\r\n return t * t;\r\n }\r\n function InterpolateEaseOutQuad(t) {\r\n return t * (2 - t);\r\n }\r\n function InterpolateEaseQuad(t) {\r\n return (t * t) / (2.0 * (t * t - t) + 1.0);\r\n }\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/rotate\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_1, interpolation_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.RotateTransformComponent = void 0;\r\n /**\r\n * Component to rotate entity from one rotation (start) to another (end) in an amount of time\r\n */\r\n var RotateTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a RotateTransformComponent instance to add as a component to a Entity\r\n * @param start starting rotation\r\n * @param end ending rotation\r\n * @param duration duration (in seconds) of start to end rotation\r\n * @param onFinishCallback called when rotation ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function RotateTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_1.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_1.TransformSystem.createAndAddToEngine();\r\n }\r\n RotateTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_1.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n RotateTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n RotateTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.rotation = Quaternion.Slerp(this.start, this.end, this.lerpTime);\r\n };\r\n RotateTransformComponent = __decorate([\r\n Component('rotateTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], RotateTransformComponent);\r\n return RotateTransformComponent;\r\n }());\r\n exports.RotateTransformComponent = RotateTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/scale\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_2, interpolation_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ScaleTransformComponent = void 0;\r\n /**\r\n * Component to scale entity from one value (start) to another (end) in an amount of time\r\n */\r\n var ScaleTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a ScaleTransformComponent instance to add as a component to a Entity\r\n * @param start starting scale\r\n * @param end ending scale\r\n * @param duration duration (in seconds) of start to end scaling\r\n * @param onFinishCallback called when scaling ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function ScaleTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_2.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_2.TransformSystem.createAndAddToEngine();\r\n }\r\n ScaleTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_2.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n ScaleTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n ScaleTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.scale = Vector3.Lerp(this.start, this.end, this.lerpTime);\r\n };\r\n ScaleTransformComponent = __decorate([\r\n Component('scaleTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], ScaleTransformComponent);\r\n return ScaleTransformComponent;\r\n }());\r\n exports.ScaleTransformComponent = ScaleTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/followpath\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\"], function (require, exports, transfromSystem_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.FollowPathComponent = void 0;\r\n /**\r\n * Component to move a entity down a fixed path in an amount of time\r\n */\r\n var FollowPathComponent = /** @class */ (function () {\r\n /**\r\n * Create a FollowPathComponent instance to add as a component to a Entity\r\n * @param points array of points for the path\r\n * @param duration duration of the movement through the path\r\n * @param onFinishCallback called when movement ends\r\n * @param onPointReachedCallback called everytime an entity reaches a point of the path\r\n */\r\n function FollowPathComponent(points, duration, onFinishCallback, onPointReachedCallback) {\r\n this.speed = [];\r\n this.normalizedTime = 0;\r\n this.currentIndex = 0;\r\n this.points = points;\r\n this.onFinishCallback = onFinishCallback;\r\n this.onPointReachedCallback = onPointReachedCallback;\r\n if (points.length < 2) {\r\n throw new Error('At least 2 points are needed for FollowPathComponent.');\r\n }\r\n if (duration > 0) {\r\n var sqTotalDist = 0;\r\n var sqPointsDist = [];\r\n for (var i = 0; i < points.length - 1; i++) {\r\n var sqDist = Vector3.DistanceSquared(points[i], points[i + 1]);\r\n sqTotalDist += sqDist;\r\n sqPointsDist.push(sqDist);\r\n }\r\n for (var i = 0; i < sqPointsDist.length; i++) {\r\n this.speed.push(1 / ((sqPointsDist[i] / sqTotalDist) * duration));\r\n }\r\n }\r\n else {\r\n this.normalizedTime = 1;\r\n this.currentIndex = points.length - 2;\r\n }\r\n transfromSystem_3.TransformSystem.createAndAddToEngine();\r\n }\r\n FollowPathComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed[this.currentIndex], 0, 1);\r\n if (this.normalizedTime >= 1 &&\r\n this.currentIndex < this.points.length - 2) {\r\n this.currentIndex++;\r\n this.normalizedTime = 0;\r\n if (this.onPointReachedCallback &&\r\n this.currentIndex < this.points.length - 1)\r\n this.onPointReachedCallback(this.points[this.currentIndex], this.points[this.currentIndex + 1]);\r\n }\r\n };\r\n FollowPathComponent.prototype.hasFinished = function () {\r\n return (this.currentIndex >= this.points.length - 2 && this.normalizedTime >= 1);\r\n };\r\n FollowPathComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.position = Vector3.Lerp(this.points[this.currentIndex], this.points[this.currentIndex + 1], this.normalizedTime);\r\n };\r\n FollowPathComponent = __decorate([\r\n Component('followPathComponent'),\r\n __metadata(\"design:paramtypes\", [Array, Number, Function, Function])\r\n ], FollowPathComponent);\r\n return FollowPathComponent;\r\n }());\r\n exports.FollowPathComponent = FollowPathComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/keeprotating\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\"], function (require, exports, transfromSystem_4) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.KeepRotatingComponent = void 0;\r\n /**\r\n * Component to rotate entity indefinitely until stop is called\r\n */\r\n var KeepRotatingComponent = /** @class */ (function () {\r\n /**\r\n * Rotates an entity continuously. The entity will keep rotating forever until it's explicitly stopped or the component is removed.\r\n * @param rotationVelocity a quaternion describing the desired rotation to perform each second second\r\n * @param onFinishCallback called when rotation ends\r\n */\r\n function KeepRotatingComponent(rotationVelocity, onFinishCallback) {\r\n this.rotationVelocity = rotationVelocity;\r\n this.onFinishCallback = onFinishCallback;\r\n this.rotation = Quaternion.Identity;\r\n this.finished = false;\r\n transfromSystem_4.TransformSystem.createAndAddToEngine();\r\n }\r\n KeepRotatingComponent.prototype.update = function (dt) {\r\n this.rotation = Quaternion.Slerp(Quaternion.Identity, this.rotationVelocity, dt);\r\n };\r\n KeepRotatingComponent.prototype.hasFinished = function () {\r\n return this.finished;\r\n };\r\n KeepRotatingComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.rotation = transform.rotation.multiply(this.rotation);\r\n };\r\n KeepRotatingComponent.prototype.stop = function () {\r\n this.finished = true;\r\n };\r\n KeepRotatingComponent = __decorate([\r\n Component('keepRotatingComponent'),\r\n __metadata(\"design:paramtypes\", [Quaternion, Function])\r\n ], KeepRotatingComponent);\r\n return KeepRotatingComponent;\r\n }());\r\n exports.KeepRotatingComponent = KeepRotatingComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/component/move\", \"node_modules/decentraland-ecs-utils/transform/component/rotate\", \"node_modules/decentraland-ecs-utils/transform/component/scale\", \"node_modules/decentraland-ecs-utils/transform/component/followpath\", \"node_modules/decentraland-ecs-utils/transform/component/keeprotating\"], function (require, exports, move_1, rotate_1, scale_1, followpath_1, keeprotating_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TransformSystem = void 0;\r\n var TransformSystem = /** @class */ (function () {\r\n function TransformSystem() {\r\n this._components = [];\r\n TransformSystem._instance = this;\r\n this._components.push(move_1.MoveTransformComponent);\r\n this._components.push(rotate_1.RotateTransformComponent);\r\n this._components.push(scale_1.ScaleTransformComponent);\r\n this._components.push(followpath_1.FollowPathComponent);\r\n this._components.push(keeprotating_1.KeepRotatingComponent);\r\n }\r\n TransformSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TransformSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n TransformSystem.registerCustomComponent = function (component) {\r\n this.createAndAddToEngine()._components.push(component);\r\n };\r\n TransformSystem.prototype.update = function (dt) {\r\n var _this = this;\r\n this._components.forEach(function (component) {\r\n _this.updateComponent(dt, component);\r\n });\r\n };\r\n TransformSystem.prototype.updateComponent = function (dt, component) {\r\n var group = engine.getComponentGroup(component, Transform);\r\n group.entities.forEach(function (entity) {\r\n var transform = entity.getComponent(Transform);\r\n var comp = entity.getComponent(component);\r\n comp.update(dt);\r\n comp.assignValueToTransform(transform);\r\n if (comp.hasFinished()) {\r\n entity.removeComponent(comp);\r\n if (comp.onFinishCallback != null)\r\n comp.onFinishCallback();\r\n }\r\n });\r\n };\r\n TransformSystem._instance = null;\r\n return TransformSystem;\r\n }());\r\n exports.TransformSystem = TransformSystem;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/move\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_5, interpolation_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.MoveTransformComponent = void 0;\r\n /**\r\n * Component to translate entity from one position (start) to another (end) in an amount of time\r\n */\r\n var MoveTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a MoveTransformComponent instance to add as a component to a Entity\r\n * @param start starting position\r\n * @param end ending position\r\n * @param duration duration (in seconds) of start to end translation\r\n * @param onFinishCallback called when translation ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function MoveTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_3.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_5.TransformSystem.createAndAddToEngine();\r\n }\r\n MoveTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_3.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n MoveTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n MoveTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.position = Vector3.Lerp(this.start, this.end, this.lerpTime);\r\n };\r\n MoveTransformComponent = __decorate([\r\n Component('moveTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], MoveTransformComponent);\r\n return MoveTransformComponent;\r\n }());\r\n exports.MoveTransformComponent = MoveTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/toggle/toggleComponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ToggleComponent = exports.ToggleState = void 0;\r\n var ToggleState;\r\n (function (ToggleState) {\r\n ToggleState[ToggleState[\"Off\"] = 0] = \"Off\";\r\n ToggleState[ToggleState[\"On\"] = 1] = \"On\";\r\n })(ToggleState = exports.ToggleState || (exports.ToggleState = {}));\r\n /**\r\n * Toggle component for entities with two states (ON or OFF)\r\n */\r\n var ToggleComponent = /** @class */ (function () {\r\n /**\r\n * Create an instance of a ToggleComponent\r\n * @param startingState starting state of the toggle (ON or OFF)\r\n * @param onValueChangedCallback called when toggle state changed\r\n */\r\n function ToggleComponent(startingState, onValueChangedCallback) {\r\n if (startingState === void 0) { startingState = ToggleState.On; }\r\n this.enabled = true;\r\n this.state = ToggleState.Off;\r\n this.set(startingState);\r\n if (onValueChangedCallback)\r\n this.setCallback(onValueChangedCallback);\r\n }\r\n /**\r\n * Set trigger to a state\r\n * @param state new state\r\n */\r\n ToggleComponent.prototype.set = function (state) {\r\n this.state = state;\r\n if (this.onValueChangedCallback)\r\n this.onValueChangedCallback(state);\r\n };\r\n /**\r\n * Toggle state of ToggleComponent\r\n */\r\n ToggleComponent.prototype.toggle = function () {\r\n if (this.enabled) {\r\n this.set(1 - this.state);\r\n }\r\n };\r\n /**\r\n * Get if current toggle state is ON\r\n */\r\n ToggleComponent.prototype.isOn = function () {\r\n return this.state == ToggleState.On;\r\n };\r\n /**\r\n * Set callback for when ToggleComponent state changed\r\n * @param onValueChangedCallback callback\r\n */\r\n ToggleComponent.prototype.setCallback = function (onValueChangedCallback) {\r\n this.onValueChangedCallback = onValueChangedCallback;\r\n };\r\n ToggleComponent = __decorate([\r\n Component('toggle'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], ToggleComponent);\r\n return ToggleComponent;\r\n }());\r\n exports.ToggleComponent = ToggleComponent;\r\n exports.default = {\r\n ToggleComponent: ToggleComponent,\r\n ToggleState: ToggleState\r\n };\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/itimercomponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/interval\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Interval = void 0;\r\n /**\r\n * Execute every X milliseconds\r\n */\r\n var Interval = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function Interval(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_1.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function () {\r\n _this.elapsedTime = 0;\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n };\r\n }\r\n Interval.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n Interval = __decorate([\r\n Component('timerInterval'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], Interval);\r\n return Interval;\r\n }());\r\n exports.Interval = Interval;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/expire\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ExpireIn = void 0;\r\n /**\r\n * Remove entity after X milliseconds\r\n */\r\n var ExpireIn = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function ExpireIn(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_2.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function (entity) {\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n entity.removeComponent(_this);\r\n engine.removeEntity(entity);\r\n };\r\n }\r\n ExpireIn.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n ExpireIn = __decorate([\r\n Component('timerExpireIn'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], ExpireIn);\r\n return ExpireIn;\r\n }());\r\n exports.ExpireIn = ExpireIn;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/system/timerSystem\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/component/interval\", \"node_modules/decentraland-ecs-utils/timer/component/delay\", \"node_modules/decentraland-ecs-utils/timer/component/expire\"], function (require, exports, interval_1, delay_1, expire_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TimerSystem = void 0;\r\n var TimerSystem = /** @class */ (function () {\r\n function TimerSystem() {\r\n this._components = [];\r\n TimerSystem._instance = this;\r\n this._components.push(interval_1.Interval);\r\n this._components.push(delay_1.Delay);\r\n this._components.push(expire_1.ExpireIn);\r\n }\r\n TimerSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TimerSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n TimerSystem.registerCustomComponent = function (component) {\r\n this.createAndAddToEngine()._components.push(component);\r\n };\r\n TimerSystem.prototype.update = function (dt) {\r\n var _this = this;\r\n this._components.forEach(function (component) {\r\n _this.updateComponent(dt, component);\r\n });\r\n };\r\n TimerSystem.prototype.updateComponent = function (dt, component) {\r\n var record = engine.getEntitiesWithComponent(component);\r\n for (var key in record) {\r\n if (record.hasOwnProperty(key)) {\r\n var entity = record[key];\r\n var timerComponent = entity.getComponent(component);\r\n timerComponent.elapsedTime += dt;\r\n if (timerComponent.elapsedTime >= timerComponent.targetTime) {\r\n timerComponent.onTargetTimeReached(entity);\r\n }\r\n }\r\n }\r\n };\r\n TimerSystem._instance = null;\r\n return TimerSystem;\r\n }());\r\n exports.TimerSystem = TimerSystem;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/delay\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Delay = void 0;\r\n /**\r\n * Execute once after X milliseconds\r\n */\r\n var Delay = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function Delay(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_3.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function (entity) {\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n entity.removeComponent(_this);\r\n };\r\n }\r\n Delay.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n Delay = __decorate([\r\n Component('timerDelay'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], Delay);\r\n return Delay;\r\n }());\r\n exports.Delay = Delay;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/triggers/triggerSystem\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TriggerSphereShape = exports.TriggerBoxShape = exports.TriggerComponent = exports.TriggerSystem = void 0;\r\n var TriggerSystem = /** @class */ (function () {\r\n function TriggerSystem() {\r\n this._triggers = {};\r\n TriggerSystem._instance = this;\r\n this._cameraTriggerWrapper = new CameraTrigger(new TriggerBoxShape(new Vector3(0.5, 1.8, 0.5), new Vector3(0, 0.91, 0)));\r\n }\r\n Object.defineProperty(TriggerSystem, \"instance\", {\r\n get: function () {\r\n return this.createAndAddToEngine();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TriggerSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n /**\r\n * set a custom trigger's shape for the camera\r\n * @param shape custom trigger's shape\r\n */\r\n TriggerSystem.prototype.setCameraTriggerShape = function (shape) {\r\n this._cameraTriggerWrapper.setShape(shape);\r\n };\r\n TriggerSystem.prototype.update = function () {\r\n var _this = this;\r\n //get entities with trigger component\r\n var entitiesWithTriggers = engine.getComponentGroup(TriggerComponent)\r\n .entities;\r\n //iterate through all entities with triggers and wrap entities that weren't wrapped yet\r\n entitiesWithTriggers.forEach(function (entity) {\r\n if (_this.shouldWrapTriggerEntity(entity)) {\r\n _this.wrapTriggerEntity(entity);\r\n }\r\n });\r\n //iterate through wrapped entities\r\n for (var key in this._triggers) {\r\n if (this._triggers.hasOwnProperty(key)) {\r\n var wrapper = this._triggers[key];\r\n //update debug entity\r\n if (wrapper.isDebugging()) {\r\n wrapper.updateDebugEntity();\r\n }\r\n if (!wrapper.isInEngine()) {\r\n //remove debugging\r\n if (wrapper.isDebugging()) {\r\n wrapper.removeDebugEntity();\r\n }\r\n //remove old collisions\r\n TriggerSystem.removeTriggerFromSystem(wrapper);\r\n //remove from record\r\n delete this._triggers[key];\r\n }\r\n else if (wrapper.trigger != null && wrapper.trigger.enabled) {\r\n //if was set as enabled in last frame\r\n if (!wrapper.wasEnabled) {\r\n if (wrapper.isDebugging()) {\r\n wrapper.addDebugEntity();\r\n }\r\n }\r\n //set as enabled\r\n wrapper.wasEnabled = true;\r\n //check collision camera\r\n if (wrapper.trigger.onCameraEnter || wrapper.trigger.onCameraExit) {\r\n this.checkCollisionAgainstCamera(wrapper);\r\n }\r\n //check collision with others\r\n if (wrapper.trigger.onTriggerEnter || wrapper.trigger.onTriggerExit) {\r\n this.checkCollisionAgainstOtherTriggers(wrapper);\r\n }\r\n }\r\n else if (wrapper.wasEnabled) {\r\n wrapper.wasEnabled = false;\r\n //remove debugging\r\n if (wrapper.isDebugging()) {\r\n wrapper.removeDebugEntity();\r\n }\r\n TriggerSystem.removeTriggerFromSystem(wrapper);\r\n }\r\n }\r\n }\r\n };\r\n TriggerSystem.prototype.shouldWrapTriggerEntity = function (entity) {\r\n return (this._triggers[entity.uuid] == undefined ||\r\n this._triggers[entity.uuid] == null);\r\n };\r\n TriggerSystem.prototype.wrapTriggerEntity = function (entity) {\r\n this._triggers[entity.uuid] = new TriggerWrapper(entity);\r\n };\r\n TriggerSystem.removeTriggerFromSystem = function (wrapper) {\r\n var activeCollisions = wrapper.getActiveCollisions();\r\n for (var i = 0; i < activeCollisions.length; i++) {\r\n if (activeCollisions[i].trigger.onTriggerExit && wrapper.entity)\r\n activeCollisions[i].trigger.onTriggerExit(wrapper.entity);\r\n activeCollisions[i].disengageActiveCollision(wrapper);\r\n wrapper.disengageActiveCollision(activeCollisions[i]);\r\n }\r\n };\r\n TriggerSystem.disengageCollision = function (t1, t2) {\r\n t1.disengageActiveCollision(t2);\r\n t2.disengageActiveCollision(t1);\r\n if (t1.trigger.onTriggerExit && t2.entity)\r\n t1.trigger.onTriggerExit(t2.entity);\r\n if (t2.trigger.onTriggerExit && t1.entity)\r\n t2.trigger.onTriggerExit(t1.entity);\r\n };\r\n TriggerSystem.engageCollision = function (t1, t2) {\r\n t1.engageCollision(t2);\r\n t2.engageCollision(t1);\r\n if (t1.trigger.onTriggerEnter && t2.entity)\r\n t1.trigger.onTriggerEnter(t2.entity);\r\n if (t2.trigger.onTriggerEnter && t1.entity)\r\n t2.trigger.onTriggerEnter(t1.entity);\r\n };\r\n TriggerSystem.prototype.checkCollisionAgainstCamera = function (wrapper) {\r\n var wereColliding = wrapper.hasActiveCollision(this._cameraTriggerWrapper);\r\n var areColliding = TriggerSystem.areColliding(wrapper, this._cameraTriggerWrapper);\r\n if (wereColliding && !areColliding) {\r\n wrapper.disengageActiveCollision(this._cameraTriggerWrapper);\r\n if (wrapper.trigger.onCameraExit)\r\n wrapper.trigger.onCameraExit();\r\n }\r\n else if (!wereColliding && areColliding) {\r\n wrapper.engageCollision(this._cameraTriggerWrapper);\r\n if (wrapper.trigger.onCameraEnter)\r\n wrapper.trigger.onCameraEnter();\r\n }\r\n };\r\n TriggerSystem.prototype.checkCollisionAgainstOtherTriggers = function (wrapper) {\r\n for (var key in this._triggers) {\r\n if (this._triggers.hasOwnProperty(key)) {\r\n if (key != wrapper.uuid && this._triggers[key].trigger.enabled) {\r\n if (TriggerSystem.canTriggersCollide(wrapper, this._triggers[key])) {\r\n var wereColliding = wrapper.hasActiveCollision(this._triggers[key]);\r\n var areColliding = TriggerSystem.areColliding(wrapper, this._triggers[key]);\r\n if (wereColliding && !areColliding)\r\n TriggerSystem.disengageCollision(wrapper, this._triggers[key]);\r\n else if (!wereColliding && areColliding)\r\n TriggerSystem.engageCollision(wrapper, this._triggers[key]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n TriggerSystem.canTriggersCollide = function (t1, t2) {\r\n if (t1.trigger.triggeredByLayer == 0)\r\n return true;\r\n return (t2.trigger.layer & t1.trigger.triggeredByLayer) != 0;\r\n };\r\n TriggerSystem.areColliding = function (t1, t2) {\r\n if (t1.getShape() instanceof TriggerBoxShape &&\r\n t2.getShape() instanceof TriggerBoxShape) {\r\n return TriggerSystem.areCollidingAABB(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerSphereShape &&\r\n t2.getShape() instanceof TriggerSphereShape) {\r\n return TriggerSystem.areCollidingSphere(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerBoxShape &&\r\n t2.getShape() instanceof TriggerSphereShape) {\r\n return TriggerSystem.areCollidingAABBSphere(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerSphereShape &&\r\n t2.getShape() instanceof TriggerBoxShape) {\r\n return TriggerSystem.areCollidingAABBSphere(t2.getGlobalPosition(), t2.getShape(), t1.getGlobalPosition(), t1.getShape());\r\n }\r\n return false;\r\n };\r\n TriggerSystem.areCollidingAABB = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var t1 = TriggerSystem.getBoxShapeValues(t1GlobalPosition, t1Shape);\r\n var t2 = TriggerSystem.getBoxShapeValues(t2GlobalPosition, t2Shape);\r\n return (t1.min.x <= t2.max.x &&\r\n t1.max.x >= t2.min.x &&\r\n t1.min.y <= t2.max.y && t1.max.y >= t2.min.y &&\r\n t1.min.z <= t2.max.z && t1.max.z >= t2.min.z);\r\n };\r\n TriggerSystem.areCollidingSphere = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var sqDist = Vector3.DistanceSquared(t1GlobalPosition.add(t1Shape.position), t2GlobalPosition.add(t2Shape.position));\r\n return (sqDist < t1Shape.radius * t1Shape.radius + t2Shape.radius * t2Shape.radius);\r\n };\r\n TriggerSystem.areCollidingAABBSphere = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var box = TriggerSystem.getBoxShapeValues(t1GlobalPosition, t1Shape);\r\n var sphere = {\r\n center: t2GlobalPosition.add(t2Shape.position),\r\n radius: t2Shape.radius\r\n };\r\n var dmin = 0;\r\n if (sphere.center.x < box.min.x)\r\n dmin += (box.min.x - sphere.center.x) * (box.min.x - sphere.center.x);\r\n if (sphere.center.x > box.max.x)\r\n dmin += (sphere.center.x - box.max.x) * (sphere.center.x - box.max.x);\r\n if (sphere.center.y < box.min.y)\r\n dmin += (box.min.y - sphere.center.y) * (box.min.y - sphere.center.y);\r\n if (sphere.center.y > box.max.y)\r\n dmin += (sphere.center.y - box.max.y) * (sphere.center.y - box.max.y);\r\n if (sphere.center.z < box.min.z)\r\n dmin += (box.min.z - sphere.center.z) * (box.min.z - sphere.center.z);\r\n if (sphere.center.z > box.max.z)\r\n dmin += (sphere.center.z - box.max.z) * (sphere.center.z - box.max.z);\r\n return dmin < sphere.radius * sphere.radius;\r\n };\r\n TriggerSystem.getBoxShapeValues = function (entityGlobalPosition, shape) {\r\n var center = entityGlobalPosition.add(shape.position);\r\n return {\r\n center: center,\r\n min: center.subtract(shape.size.scale(0.5)),\r\n max: center.add(shape.size.scale(0.5))\r\n };\r\n };\r\n TriggerSystem._instance = null;\r\n return TriggerSystem;\r\n }());\r\n exports.TriggerSystem = TriggerSystem;\r\n var TriggerWrapper = /** @class */ (function () {\r\n function TriggerWrapper(entity) {\r\n this.wasEnabled = true;\r\n this._uuid = '';\r\n this._collidingWith = {};\r\n this._isDebug = false;\r\n this._debugEntity = null;\r\n this._entity = entity;\r\n if (entity) {\r\n this._trigger = entity.getComponent(TriggerComponent);\r\n this._uuid = entity.uuid;\r\n this._isDebug = this._trigger.debugEnabled;\r\n if (this._isDebug) {\r\n this.addDebugEntity();\r\n }\r\n }\r\n }\r\n Object.defineProperty(TriggerWrapper.prototype, \"entity\", {\r\n get: function () {\r\n return this._entity;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TriggerWrapper.prototype, \"trigger\", {\r\n get: function () {\r\n return this._trigger;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TriggerWrapper.prototype, \"uuid\", {\r\n get: function () {\r\n return this._uuid;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerWrapper.prototype.getGlobalPosition = function () {\r\n if (this._entity)\r\n return TriggerWrapper.getEntityWorldPosition(this._entity);\r\n return Vector3.Zero();\r\n };\r\n TriggerWrapper.prototype.getShape = function () {\r\n return this._trigger.shape;\r\n };\r\n TriggerWrapper.prototype.isInEngine = function () {\r\n return this._entity != null && this._entity.isAddedToEngine();\r\n };\r\n TriggerWrapper.prototype.getActiveCollisions = function () {\r\n var ret = [];\r\n for (var key in this._collidingWith) {\r\n if (this._collidingWith.hasOwnProperty(key)) {\r\n ret.push(this._collidingWith[key]);\r\n }\r\n }\r\n return ret;\r\n };\r\n TriggerWrapper.prototype.hasActiveCollision = function (other) {\r\n return (this._collidingWith[other.uuid] != undefined &&\r\n this._collidingWith[other.uuid] != null);\r\n };\r\n TriggerWrapper.prototype.disengageActiveCollision = function (other) {\r\n delete this._collidingWith[other.uuid];\r\n };\r\n TriggerWrapper.prototype.engageCollision = function (other) {\r\n this._collidingWith[other.uuid] = other;\r\n };\r\n TriggerWrapper.prototype.isDebugging = function () {\r\n return this._isDebug;\r\n };\r\n TriggerWrapper.prototype.addDebugEntity = function () {\r\n if (!TriggerWrapper._debugMaterial) {\r\n TriggerWrapper._debugMaterial = new Material();\r\n TriggerWrapper._debugMaterial.alphaTest = 0.5;\r\n }\r\n if (this._debugEntity == null) {\r\n this._debugEntity = new Entity();\r\n var transform = new Transform();\r\n this._debugEntity.addComponent(transform);\r\n this._debugEntity.addComponent(TriggerWrapper._debugMaterial);\r\n if (this.getShape() instanceof TriggerBoxShape) {\r\n var shape = new BoxShape();\r\n shape.withCollisions = false;\r\n this._debugEntity.addComponent(shape);\r\n transform.scale = this.getShape().size;\r\n }\r\n if (this.getShape() instanceof TriggerSphereShape) {\r\n var shape = new SphereShape();\r\n shape.withCollisions = false;\r\n this._debugEntity.addComponent(shape);\r\n var rad = this.getShape().radius;\r\n transform.scale = new Vector3(rad, rad, rad);\r\n }\r\n }\r\n engine.addEntity(this._debugEntity);\r\n };\r\n TriggerWrapper.prototype.removeDebugEntity = function () {\r\n if (this._debugEntity != null)\r\n engine.removeEntity(this._debugEntity);\r\n };\r\n TriggerWrapper.prototype.updateDebugEntity = function () {\r\n if (this._debugEntity) {\r\n this._debugEntity.getComponent(Transform).position = this.getGlobalPosition().add(this.getShape().position);\r\n }\r\n };\r\n TriggerWrapper.getEntityWorldPosition = function (entity) {\r\n var entityPosition = entity.hasComponent(Transform)\r\n ? entity.getComponent(Transform).position\r\n : Vector3.Zero();\r\n var parentEntity = entity.getParent();\r\n if (parentEntity != null) {\r\n var parentRotation = parentEntity.hasComponent(Transform)\r\n ? parentEntity.getComponent(Transform).rotation\r\n : Quaternion.Identity;\r\n return this.getEntityWorldPosition(parentEntity).add(entityPosition.rotate(parentRotation));\r\n }\r\n return entityPosition;\r\n };\r\n TriggerWrapper._debugMaterial = null;\r\n return TriggerWrapper;\r\n }());\r\n var CameraTrigger = /** @class */ (function (_super) {\r\n __extends(CameraTrigger, _super);\r\n function CameraTrigger(shape) {\r\n var _this = _super.call(this) || this;\r\n _this._shape = shape;\r\n _this._uuid = 'cameraTrigger';\r\n return _this;\r\n }\r\n CameraTrigger.prototype.getGlobalPosition = function () {\r\n return Camera.instance.position;\r\n };\r\n CameraTrigger.prototype.getShape = function () {\r\n return this._shape;\r\n };\r\n CameraTrigger.prototype.setShape = function (shape) {\r\n this._shape = shape;\r\n };\r\n CameraTrigger.prototype.isInEngine = function () {\r\n return false;\r\n };\r\n CameraTrigger.prototype.hasActiveCollision = function (other) {\r\n return false;\r\n };\r\n CameraTrigger.prototype.disengageActiveCollision = function (other) { };\r\n CameraTrigger.prototype.engageCollision = function (other) { };\r\n CameraTrigger.prototype.isDebugging = function () {\r\n return false;\r\n };\r\n return CameraTrigger;\r\n }(TriggerWrapper));\r\n var TriggerComponent = /** @class */ (function () {\r\n /**\r\n *\r\n * @param shape shape of the triggering collider area\r\n * @param layer layer of the Trigger, useful to discriminate between trigger events. You can set multiple layers by using a | symbol.\r\n * @param triggeredByLayer against which layers to check collisions\r\n * @param onTriggerEnter callback when an entity of a valid layer enters the trigger area\r\n * @param onTriggerExit callback when an entity of a valid layer leaves the trigger area\r\n * @param onCameraEnter callback when the player enters the trigger area\r\n * @param onCameraExit callback when the player leaves the trigger area\r\n * @param enableDebug when true makes the trigger area visible for debug purposes.\r\n */\r\n function TriggerComponent(shape, layer, triggeredByLayer, onTriggerEnter, onTriggerExit, onCameraEnter, onCameraExit, enableDebug) {\r\n if (layer === void 0) { layer = 0; }\r\n if (triggeredByLayer === void 0) { triggeredByLayer = 0; }\r\n if (enableDebug === void 0) { enableDebug = false; }\r\n /**\r\n * is trigger enable?\r\n */\r\n this.enabled = true;\r\n /**\r\n * bit layer of the Tigger (usefull to discriminate between trigger events)\r\n */\r\n this.layer = 0;\r\n /**\r\n * against which layer are we going to check trigger's collisions\r\n */\r\n this.triggeredByLayer = 0;\r\n TriggerSystem.createAndAddToEngine();\r\n this.shape = shape;\r\n this.layer = layer;\r\n this.triggeredByLayer = triggeredByLayer;\r\n this.onTriggerEnter = onTriggerEnter;\r\n this.onTriggerExit = onTriggerExit;\r\n this.onCameraEnter = onCameraEnter;\r\n this.onCameraExit = onCameraExit;\r\n this._debugEnabled = enableDebug;\r\n }\r\n Object.defineProperty(TriggerComponent.prototype, \"debugEnabled\", {\r\n /**\r\n * get if debug is enabled\r\n */\r\n get: function () {\r\n return this._debugEnabled;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerComponent = __decorate([\r\n Component('triggerComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Number, Number, Function, Function, Function, Function, Boolean])\r\n ], TriggerComponent);\r\n return TriggerComponent;\r\n }());\r\n exports.TriggerComponent = TriggerComponent;\r\n var TriggerBoxShape = /** @class */ (function () {\r\n function TriggerBoxShape(size, position) {\r\n this.size = size;\r\n this.position = position;\r\n }\r\n return TriggerBoxShape;\r\n }());\r\n exports.TriggerBoxShape = TriggerBoxShape;\r\n var TriggerSphereShape = /** @class */ (function () {\r\n function TriggerSphereShape(radius, position) {\r\n this.radius = radius;\r\n this.position = position;\r\n }\r\n return TriggerSphereShape;\r\n }());\r\n exports.TriggerSphereShape = TriggerSphereShape;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/actionsSequenceSystem/actionsSequenceSystem\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ActionsSequenceSystem = void 0;\r\n var ActionsSequenceSystem = /** @class */ (function () {\r\n function ActionsSequenceSystem(sequenceBuilt) {\r\n this.beginSequenceNode = null;\r\n this.currentSequenceNode = null;\r\n this.running = false;\r\n this.started = false;\r\n if (sequenceBuilt) {\r\n this.startSequence(sequenceBuilt);\r\n }\r\n }\r\n ActionsSequenceSystem.prototype.startSequence = function (sequenceBuilt) {\r\n this.beginSequenceNode = sequenceBuilt.beginSequenceNode;\r\n this.currentSequenceNode = this.beginSequenceNode;\r\n this.running = true;\r\n this.started = false;\r\n };\r\n ActionsSequenceSystem.prototype.setOnFinishCallback = function (onFinishCallback) {\r\n this.onFinishCallback = onFinishCallback;\r\n };\r\n ActionsSequenceSystem.prototype.isRunning = function () {\r\n return this.running;\r\n };\r\n ActionsSequenceSystem.prototype.stop = function () {\r\n this.running = false;\r\n };\r\n ActionsSequenceSystem.prototype.resume = function () {\r\n if (this.beginSequenceNode != null) {\r\n this.running = true;\r\n }\r\n };\r\n ActionsSequenceSystem.prototype.reset = function () {\r\n this.currentSequenceNode = this.beginSequenceNode;\r\n this.running = true;\r\n this.started = false;\r\n };\r\n ActionsSequenceSystem.prototype.getRunningAction = function () {\r\n var currentNode = this.currentSequenceNode;\r\n if (this.currentSequenceNode instanceof SubSequenceNode) {\r\n do {\r\n currentNode = currentNode.currentInnerSequence;\r\n } while (currentNode instanceof SubSequenceNode);\r\n }\r\n return currentNode.action;\r\n };\r\n ActionsSequenceSystem.prototype.update = function (dt) {\r\n if (this.running) {\r\n if (!this.started) {\r\n ;\r\n this.currentSequenceNode.onStart();\r\n this.started = true;\r\n }\r\n else {\r\n if (!this.currentSequenceNode.hasFinish()) {\r\n ;\r\n this.currentSequenceNode.update(dt);\r\n }\r\n else {\r\n ;\r\n this.currentSequenceNode.onFinish();\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.next;\r\n if (this.currentSequenceNode) {\r\n this.currentSequenceNode.onStart();\r\n }\r\n else {\r\n this.running = false;\r\n if (this.onFinishCallback)\r\n this.onFinishCallback();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n return ActionsSequenceSystem;\r\n }());\r\n exports.ActionsSequenceSystem = ActionsSequenceSystem;\r\n (function (ActionsSequenceSystem) {\r\n var SequenceBuilder = /** @class */ (function () {\r\n function SequenceBuilder() {\r\n this.currentSequenceNode = null;\r\n this.beginSequenceNode = null;\r\n this.whileNodeStack = [];\r\n }\r\n SequenceBuilder.prototype.then = function (action) {\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = new SequenceNode();\r\n this.currentSequenceNode.action = action;\r\n this.beginSequenceNode = this.currentSequenceNode;\r\n }\r\n else {\r\n var next = new SequenceNode();\r\n next.action = action;\r\n this.currentSequenceNode = this.currentSequenceNode.then(next);\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.if = function (condition) {\r\n var ifSeq = new IfSequenceNode(condition);\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = ifSeq;\r\n this.beginSequenceNode = ifSeq;\r\n }\r\n else {\r\n this.currentSequenceNode = this.currentSequenceNode.then(ifSeq);\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.else = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof IfSequenceNode) {\r\n seq.closed = true;\r\n var elseSeq = new ElseSequenceNode(seq);\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.then(elseSeq);\r\n }\r\n else {\r\n throw new Error('IF statement is needed to be called before ELSE statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.endIf = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof IfSequenceNode || seq instanceof ElseSequenceNode) {\r\n seq.closed = true;\r\n }\r\n else {\r\n throw new Error('IF statement is needed to be called before ENDIF statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.while = function (condition) {\r\n var whileSeq = new WhileSequenceNode(condition);\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = whileSeq;\r\n this.beginSequenceNode = whileSeq;\r\n }\r\n else {\r\n this.currentSequenceNode = this.currentSequenceNode.then(whileSeq);\r\n }\r\n this.whileNodeStack.push(whileSeq);\r\n return this;\r\n };\r\n SequenceBuilder.prototype.endWhile = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof WhileSequenceNode) {\r\n seq.closed = true;\r\n if (this.whileNodeStack.length > 0) {\r\n this.whileNodeStack.splice(this.whileNodeStack.length - 1, 1);\r\n }\r\n }\r\n else {\r\n throw new Error('WHILE statement is needed to be called before ENDWHILE statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.breakWhile = function () {\r\n if (this.whileNodeStack.length > 0) {\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.then(new BreakWhileSequenceNode(this.whileNodeStack[this.whileNodeStack.length - 1]));\r\n }\r\n else {\r\n throw new Error('WHILE statement is needed to be called before BREAKWHILE statement.');\r\n }\r\n return this;\r\n };\r\n return SequenceBuilder;\r\n }());\r\n ActionsSequenceSystem.SequenceBuilder = SequenceBuilder;\r\n })(ActionsSequenceSystem = exports.ActionsSequenceSystem || (exports.ActionsSequenceSystem = {}));\r\n exports.ActionsSequenceSystem = ActionsSequenceSystem;\r\n var SequenceNode = /** @class */ (function () {\r\n function SequenceNode() {\r\n this.action = null;\r\n this.next = null;\r\n }\r\n SequenceNode.prototype.then = function (next) {\r\n this.next = next;\r\n return next;\r\n };\r\n SequenceNode.prototype.onStart = function () {\r\n if (this.action)\r\n this.action.onStart();\r\n };\r\n SequenceNode.prototype.update = function (dt) {\r\n if (this.action)\r\n this.action.update(dt);\r\n };\r\n SequenceNode.prototype.onFinish = function () {\r\n if (this.action)\r\n this.action.onFinish();\r\n };\r\n SequenceNode.prototype.hasFinish = function () {\r\n if (this.action)\r\n return this.action.hasFinished;\r\n else\r\n return true;\r\n };\r\n SequenceNode.prototype.getSequence = function () {\r\n return this;\r\n };\r\n return SequenceNode;\r\n }());\r\n var SubSequenceNode = /** @class */ (function (_super) {\r\n __extends(SubSequenceNode, _super);\r\n function SubSequenceNode() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.currentInnerSequence = null;\r\n _this.startingInnerSequence = null;\r\n _this.closed = false;\r\n return _this;\r\n }\r\n SubSequenceNode.prototype.then = function (next) {\r\n if (this.currentInnerSequence == null) {\r\n this.currentInnerSequence = next;\r\n this.startingInnerSequence = next;\r\n }\r\n else {\r\n if (this.closed) {\r\n this.next = next;\r\n return next;\r\n }\r\n else {\r\n this.currentInnerSequence = this.currentInnerSequence.then(next);\r\n }\r\n }\r\n return this;\r\n };\r\n SubSequenceNode.prototype.onStart = function () {\r\n this.currentInnerSequence = this.startingInnerSequence;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n };\r\n SubSequenceNode.prototype.update = function (dt) {\r\n if (this.currentInnerSequence) {\r\n if (!this.currentInnerSequence.hasFinish()) {\r\n this.currentInnerSequence.update(dt);\r\n }\r\n else {\r\n this.currentInnerSequence.onFinish();\r\n this.currentInnerSequence = this.currentInnerSequence.next;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n }\r\n }\r\n };\r\n SubSequenceNode.prototype.onFinish = function () {\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onFinish();\r\n };\r\n SubSequenceNode.prototype.hasFinish = function () {\r\n return this.currentInnerSequence == null;\r\n };\r\n SubSequenceNode.prototype.getSequence = function () {\r\n if (this.currentInnerSequence) {\r\n var innerSeq = this.currentInnerSequence.getSequence();\r\n if (innerSeq instanceof SubSequenceNode) {\r\n if (!innerSeq.closed) {\r\n return innerSeq;\r\n }\r\n }\r\n }\r\n return this;\r\n };\r\n return SubSequenceNode;\r\n }(SequenceNode));\r\n var IfSequenceNode = /** @class */ (function (_super) {\r\n __extends(IfSequenceNode, _super);\r\n function IfSequenceNode(condition) {\r\n var _this = _super.call(this) || this;\r\n _this.result = false;\r\n _this.condition = condition;\r\n return _this;\r\n }\r\n IfSequenceNode.prototype.onStart = function () {\r\n this.result = this.condition();\r\n if (this.result)\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n return IfSequenceNode;\r\n }(SubSequenceNode));\r\n var ElseSequenceNode = /** @class */ (function (_super) {\r\n __extends(ElseSequenceNode, _super);\r\n function ElseSequenceNode(ifSequence) {\r\n var _this = _super.call(this) || this;\r\n _this.ifSequence = null;\r\n _this.ifSequence = ifSequence;\r\n return _this;\r\n }\r\n ElseSequenceNode.prototype.onStart = function () {\r\n if (this.ifSequence && !this.ifSequence.result)\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n return ElseSequenceNode;\r\n }(SubSequenceNode));\r\n var WhileSequenceNode = /** @class */ (function (_super) {\r\n __extends(WhileSequenceNode, _super);\r\n function WhileSequenceNode(condition) {\r\n var _this = _super.call(this) || this;\r\n _this.breakWhile = false;\r\n _this.condition = condition;\r\n return _this;\r\n }\r\n WhileSequenceNode.prototype.onStart = function () {\r\n this.breakWhile = false;\r\n if (this.condition())\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n WhileSequenceNode.prototype.update = function (dt) {\r\n if (this.currentInnerSequence) {\r\n if (!this.currentInnerSequence.hasFinish()) {\r\n this.currentInnerSequence.update(dt);\r\n }\r\n else {\r\n this.currentInnerSequence.onFinish();\r\n this.currentInnerSequence = this.currentInnerSequence.next;\r\n if (this.currentInnerSequence == null)\r\n this.currentInnerSequence = this.startingInnerSequence;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n }\r\n }\r\n };\r\n WhileSequenceNode.prototype.hasFinish = function () {\r\n return this.breakWhile || !this.condition();\r\n };\r\n return WhileSequenceNode;\r\n }(SubSequenceNode));\r\n var BreakWhileSequenceNode = /** @class */ (function (_super) {\r\n __extends(BreakWhileSequenceNode, _super);\r\n function BreakWhileSequenceNode(whileNode) {\r\n var _this = _super.call(this) || this;\r\n _this.whileNode = whileNode;\r\n return _this;\r\n }\r\n BreakWhileSequenceNode.prototype.onStart = function () {\r\n this.whileNode.breakWhile = true;\r\n };\r\n return BreakWhileSequenceNode;\r\n }(SequenceNode));\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/index\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/component/move\", \"node_modules/decentraland-ecs-utils/transform/component/rotate\", \"node_modules/decentraland-ecs-utils/transform/component/scale\", \"node_modules/decentraland-ecs-utils/transform/component/followpath\", \"node_modules/decentraland-ecs-utils/transform/component/keeprotating\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\", \"node_modules/decentraland-ecs-utils/toggle/toggleComponent\", \"node_modules/decentraland-ecs-utils/timer/component/delay\", \"node_modules/decentraland-ecs-utils/timer/component/expire\", \"node_modules/decentraland-ecs-utils/timer/component/interval\", \"node_modules/decentraland-ecs-utils/triggers/triggerSystem\", \"node_modules/decentraland-ecs-utils/actionsSequenceSystem/actionsSequenceSystem\"], function (require, exports, move_2, rotate_2, scale_2, followpath_2, keeprotating_2, transfromSystem_6, interpolation_4, toggleComponent_1, delay_2, expire_2, interval_2, triggerSystem_1, actionsSequenceSystem_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = {\r\n TransformSystem: transfromSystem_6.TransformSystem,\r\n MoveTransformComponent: move_2.MoveTransformComponent,\r\n RotateTransformComponent: rotate_2.RotateTransformComponent,\r\n ScaleTransformComponent: scale_2.ScaleTransformComponent,\r\n FollowPathComponent: followpath_2.FollowPathComponent,\r\n KeepRotatingComponent: keeprotating_2.KeepRotatingComponent,\r\n Interpolate: interpolation_4.Interpolate,\r\n InterpolationType: interpolation_4.InterpolationType,\r\n ToggleComponent: toggleComponent_1.ToggleComponent,\r\n ToggleState: toggleComponent_1.ToggleState,\r\n Delay: delay_2.Delay,\r\n ExpireIn: expire_2.ExpireIn,\r\n Interval: interval_2.Interval,\r\n TriggerComponent: triggerSystem_1.TriggerComponent,\r\n TriggerSystem: triggerSystem_1.TriggerSystem,\r\n TriggerSphereShape: triggerSystem_1.TriggerSphereShape,\r\n TriggerBoxShape: triggerSystem_1.TriggerBoxShape,\r\n ActionsSequenceSystem: actionsSequenceSystem_1.ActionsSequenceSystem\r\n };\r\n});\r\ndefine(\"node_modules/eth-connect/eth-connect.esm\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n var ethconnect = function (t) { var e = {}; function r(n) { if (e[n])\r\n return e[n].exports; var o = e[n] = { i: n, l: !1, exports: {} }; return t[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports; } return r.m = t, r.c = e, r.d = function (t, e, n) { r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }); }, r.r = function (t) { \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: \"Module\" }), Object.defineProperty(t, \"__esModule\", { value: !0 }); }, r.t = function (t, e) { if (1 & e && (t = r(t)), 8 & e)\r\n return t; if (4 & e && \"object\" == typeof t && t && t.__esModule)\r\n return t; var n = Object.create(null); if (r.r(n), Object.defineProperty(n, \"default\", { enumerable: !0, value: t }), 2 & e && \"string\" != typeof t)\r\n for (var o in t)\r\n r.d(n, o, function (e) { return t[e]; }.bind(null, o)); return n; }, r.n = function (t) { var e = t && t.__esModule ? function () { return t.default; } : function () { return t; }; return r.d(e, \"a\", e), e; }, r.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e); }, r.p = \"\", r(r.s = 28); }([function (t, e, r) { var n; t.exports = (n = n || function (t, e) { var r = Object.create || function () { function t() { } return function (e) { var r; return t.prototype = e, r = new t, t.prototype = null, r; }; }(), n = {}, o = n.lib = {}, i = o.Base = { extend: function (t) { var e = r(this); return t && e.mixIn(t), e.hasOwnProperty(\"init\") && this.init !== e.init || (e.init = function () { e.$super.init.apply(this, arguments); }), e.init.prototype = e, e.$super = this, e; }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t; }, init: function () { }, mixIn: function (t) { for (var e in t)\r\n t.hasOwnProperty(e) && (this[e] = t[e]); t.hasOwnProperty(\"toString\") && (this.toString = t.toString); }, clone: function () { return this.init.prototype.extend(this); } }, s = o.WordArray = i.extend({ init: function (t, e) { t = this.words = t || [], this.sigBytes = null != e ? e : 4 * t.length; }, toString: function (t) { return (t || c).stringify(this); }, concat: function (t) { var e = this.words, r = t.words, n = this.sigBytes, o = t.sigBytes; if (this.clamp(), n % 4)\r\n for (var i = 0; i < o; i++) {\r\n var s = r[i >>> 2] >>> 24 - i % 4 * 8 & 255;\r\n e[n + i >>> 2] |= s << 24 - (n + i) % 4 * 8;\r\n }\r\n else\r\n for (var i = 0; i < o; i += 4)\r\n e[n + i >>> 2] = r[i >>> 2]; return this.sigBytes += o, this; }, clamp: function () { var e = this.words, r = this.sigBytes; e[r >>> 2] &= 4294967295 << 32 - r % 4 * 8, e.length = t.ceil(r / 4); }, clone: function () { var t = i.clone.call(this); return t.words = this.words.slice(0), t; }, random: function (e) { for (var r, n = [], o = function (e) { var e = e, r = 987654321, n = 4294967295; return function () { var o = ((r = 36969 * (65535 & r) + (r >> 16) & n) << 16) + (e = 18e3 * (65535 & e) + (e >> 16) & n) & n; return o /= 4294967296, (o += .5) * (t.random() > .5 ? 1 : -1); }; }, i = 0; i < e; i += 4) {\r\n var a = o(4294967296 * (r || t.random()));\r\n r = 987654071 * a(), n.push(4294967296 * a() | 0);\r\n } return new s.init(n, e); } }), a = n.enc = {}, c = a.Hex = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o++) {\r\n var i = e[o >>> 2] >>> 24 - o % 4 * 8 & 255;\r\n n.push((i >>> 4).toString(16)), n.push((15 & i).toString(16));\r\n } return n.join(\"\"); }, parse: function (t) { for (var e = t.length, r = [], n = 0; n < e; n += 2)\r\n r[n >>> 3] |= parseInt(t.substr(n, 2), 16) << 24 - n % 8 * 4; return new s.init(r, e / 2); } }, u = a.Latin1 = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o++) {\r\n var i = e[o >>> 2] >>> 24 - o % 4 * 8 & 255;\r\n n.push(String.fromCharCode(i));\r\n } return n.join(\"\"); }, parse: function (t) { for (var e = t.length, r = [], n = 0; n < e; n++)\r\n r[n >>> 2] |= (255 & t.charCodeAt(n)) << 24 - n % 4 * 8; return new s.init(r, e); } }, l = a.Utf8 = { stringify: function (t) { try {\r\n return decodeURIComponent(escape(u.stringify(t)));\r\n }\r\n catch (t) {\r\n throw new Error(\"Malformed UTF-8 data\");\r\n } }, parse: function (t) { return u.parse(unescape(encodeURIComponent(t))); } }, h = o.BufferedBlockAlgorithm = i.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0; }, _append: function (t) { \"string\" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; }, _process: function (e) { var r = this._data, n = r.words, o = r.sigBytes, i = this.blockSize, a = 4 * i, c = o / a, u = (c = e ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0)) * i, l = t.min(4 * u, o); if (u) {\r\n for (var h = 0; h < u; h += i)\r\n this._doProcessBlock(n, h);\r\n var f = n.splice(0, u);\r\n r.sigBytes -= l;\r\n } return new s.init(f, l); }, clone: function () { var t = i.clone.call(this); return t._data = this._data.clone(), t; }, _minBufferSize: 0 }), f = (o.Hasher = h.extend({ cfg: i.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset(); }, reset: function () { h.reset.call(this), this._doReset(); }, update: function (t) { return this._append(t), this._process(), this; }, finalize: function (t) { t && this._append(t); var e = this._doFinalize(); return e; }, blockSize: 16, _createHelper: function (t) { return function (e, r) { return new t.init(r).finalize(e); }; }, _createHmacHelper: function (t) { return function (e, r) { return new f.HMAC.init(t, r).finalize(e); }; } }), n.algo = {}); return n; }(Math), n); }, function (t, e, r) { var n; t.exports = (n = r(0), r(5), void (n.lib.Cipher || function (t) { var e = n, r = e.lib, o = r.Base, i = r.WordArray, s = r.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), u = e.algo, l = u.EvpKDF, h = r.Cipher = s.extend({ cfg: o.extend(), createEncryptor: function (t, e) { return this.create(this._ENC_XFORM_MODE, t, e); }, createDecryptor: function (t, e) { return this.create(this._DEC_XFORM_MODE, t, e); }, init: function (t, e, r) { this.cfg = this.cfg.extend(r), this._xformMode = t, this._key = e, this.reset(); }, reset: function () { s.reset.call(this), this._doReset(); }, process: function (t) { return this._append(t), this._process(); }, finalize: function (t) { t && this._append(t); var e = this._doFinalize(); return e; }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return \"string\" == typeof t ? F : w; } return function (e) { return { encrypt: function (r, n, o) { return t(n).encrypt(e, r, n, o); }, decrypt: function (r, n, o) { return t(n).decrypt(e, r, n, o); } }; }; }() }), f = (r.StreamCipher = h.extend({ _doFinalize: function () { var t = this._process(!0); return t; }, blockSize: 1 }), e.mode = {}), p = r.BlockCipherMode = o.extend({ createEncryptor: function (t, e) { return this.Encryptor.create(t, e); }, createDecryptor: function (t, e) { return this.Decryptor.create(t, e); }, init: function (t, e) { this._cipher = t, this._iv = e; } }), d = f.CBC = function () { var e = p.extend(); function r(e, r, n) { var o = this._iv; if (o) {\r\n var i = o;\r\n this._iv = t;\r\n }\r\n else\r\n var i = this._prevBlock; for (var s = 0; s < n; s++)\r\n e[r + s] ^= i[s]; } return e.Encryptor = e.extend({ processBlock: function (t, e) { var n = this._cipher, o = n.blockSize; r.call(this, t, e, o), n.encryptBlock(t, e), this._prevBlock = t.slice(e, e + o); } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var n = this._cipher, o = n.blockSize, i = t.slice(e, e + o); n.decryptBlock(t, e), r.call(this, t, e, o), this._prevBlock = i; } }), e; }(), m = e.pad = {}, y = m.Pkcs7 = { pad: function (t, e) { for (var r = 4 * e, n = r - t.sigBytes % r, o = n << 24 | n << 16 | n << 8 | n, s = [], a = 0; a < n; a += 4)\r\n s.push(o); var c = i.create(s, n); t.concat(c); }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, g = (r.BlockCipher = h.extend({ cfg: h.cfg.extend({ mode: d, padding: y }), reset: function () { h.reset.call(this); var t = this.cfg, e = t.iv, r = t.mode; if (this._xformMode == this._ENC_XFORM_MODE)\r\n var n = r.createEncryptor;\r\n else {\r\n var n = r.createDecryptor;\r\n this._minBufferSize = 1;\r\n } this._mode && this._mode.__creator == n ? this._mode.init(this, e && e.words) : (this._mode = n.call(r, this, e && e.words), this._mode.__creator = n); }, _doProcessBlock: function (t, e) { this._mode.processBlock(t, e); }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) {\r\n t.pad(this._data, this.blockSize);\r\n var e = this._process(!0);\r\n }\r\n else {\r\n var e = this._process(!0);\r\n t.unpad(e);\r\n } return e; }, blockSize: 4 }), r.CipherParams = o.extend({ init: function (t) { this.mixIn(t); }, toString: function (t) { return (t || this.formatter).stringify(this); } })), _ = e.format = {}, v = _.OpenSSL = { stringify: function (t) { var e = t.ciphertext, r = t.salt; if (r)\r\n var n = i.create([1398893684, 1701076831]).concat(r).concat(e);\r\n else\r\n var n = e; return n.toString(c); }, parse: function (t) { var e = c.parse(t), r = e.words; if (1398893684 == r[0] && 1701076831 == r[1]) {\r\n var n = i.create(r.slice(2, 4));\r\n r.splice(0, 4), e.sigBytes -= 16;\r\n } return g.create({ ciphertext: e, salt: n }); } }, w = r.SerializableCipher = o.extend({ cfg: o.extend({ format: v }), encrypt: function (t, e, r, n) { n = this.cfg.extend(n); var o = t.createEncryptor(r, n), i = o.finalize(e), s = o.cfg; return g.create({ ciphertext: i, key: r, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: n.format }); }, decrypt: function (t, e, r, n) { n = this.cfg.extend(n), e = this._parse(e, n.format); var o = t.createDecryptor(r, n).finalize(e.ciphertext); return o; }, _parse: function (t, e) { return \"string\" == typeof t ? e.parse(t, this) : t; } }), b = e.kdf = {}, B = b.OpenSSL = { execute: function (t, e, r, n) { n || (n = i.random(8)); var o = l.create({ keySize: e + r }).compute(t, n), s = i.create(o.words.slice(e), 4 * r); return o.sigBytes = 4 * e, g.create({ key: o, iv: s, salt: n }); } }, F = r.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: B }), encrypt: function (t, e, r, n) { var o = (n = this.cfg.extend(n)).kdf.execute(r, t.keySize, t.ivSize); n.iv = o.iv; var i = w.encrypt.call(this, t, e, o.key, n); return i.mixIn(o), i; }, decrypt: function (t, e, r, n) { n = this.cfg.extend(n), e = this._parse(e, n.format); var o = n.kdf.execute(r, t.keySize, t.ivSize, e.salt); n.iv = o.iv; var i = w.decrypt.call(this, t, e, o.key, n); return i; } }); }())); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(17), o = r(3), i = r(14), s = r(25);\r\n function a(t) { n.BigNumber.config(i.ETH_BIGNUMBER_ROUNDING_MODE); var e = o.padLeft(o.toTwosComplement(t).toString(16), 64); return new s.SolidityParam(e); }\r\n function c(t) { return \"1\" === new n.BigNumber(t.substr(0, 1), 16).toString(2).substr(0, 1); }\r\n function u(t) { var e = t.staticPart() || \"0\"; return c(e) ? new n.BigNumber(e, 16).minus(new n.BigNumber(\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 16)).minus(1) : new n.BigNumber(e, 16); }\r\n function l(t) { var e = t.staticPart() || \"0\"; return new n.BigNumber(e, 16); }\r\n e.formatInputInt = a, e.formatInputBytes = function (t) { var e = o.toHex(t).substr(2), r = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * r), new s.SolidityParam(e); }, e.formatInputDynamicBytes = function (t) { var e = o.toHex(t).substr(2), r = e.length / 2, n = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * n), new s.SolidityParam(a(r).value + e); }, e.formatInputString = function (t) { var e = o.fromUtf8(t).substr(2), r = e.length / 2, n = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * n), new s.SolidityParam(a(r).value + e); }, e.formatInputBool = function (t) { var e = \"000000000000000000000000000000000000000000000000000000000000000\" + (t ? \"1\" : \"0\"); return new s.SolidityParam(e); }, e.formatInputReal = function (t) { return a(new n.BigNumber(t).times(new n.BigNumber(2).pow(128))); }, e.signedIsNegative = c, e.formatOutputInt = u, e.formatOutputUInt = l, e.formatOutputReal = function (t) { return u(t).dividedBy(new n.BigNumber(2).pow(128)); }, e.formatOutputUReal = function (t) { return l(t).dividedBy(new n.BigNumber(2).pow(128)); }, e.formatOutputBool = function (t) { return \"0000000000000000000000000000000000000000000000000000000000000001\" === t.staticPart(); }, e.formatOutputBytes = function (t, e) { var r = e.match(/^bytes([0-9]*)/), n = parseInt(r[1], 10); return \"0x\" + t.staticPart().slice(0, 2 * n); }, e.formatOutputDynamicBytes = function (t) { var e = 2 * new n.BigNumber(t.dynamicPart().slice(0, 64), 16).toNumber(); return \"0x\" + t.dynamicPart().substr(64, e); }, e.formatOutputString = function (t) { var e = 2 * new n.BigNumber(t.dynamicPart().slice(0, 64), 16).toNumber(); return o.toUtf8(t.dynamicPart().substr(64, e)); }, e.formatOutputAddress = function (t) { var e = t.staticPart(); return \"0x\" + e.slice(e.length - 40, e.length); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(17), o = r(31), i = r(32), s = r(20);\r\n function a(t, e) { var r = t; return e && \"hex\" === e.encoding && (r.length > 2 && \"0x\" === r.substr(0, 2) && (r = r.substr(2)), r = i.enc.Hex.parse(r)), s(r, { outputLength: 256 }).toString(); }\r\n e.sha3 = a;\r\n var c = { noether: \"0\", wei: \"1\", kwei: \"1000\", Kwei: \"1000\", babbage: \"1000\", femtoether: \"1000\", mwei: \"1000000\", Mwei: \"1000000\", lovelace: \"1000000\", picoether: \"1000000\", gwei: \"1000000000\", Gwei: \"1000000000\", shannon: \"1000000000\", nanoether: \"1000000000\", nano: \"1000000000\", szabo: \"1000000000000\", microether: \"1000000000000\", micro: \"1000000000000\", finney: \"1000000000000000\", milliether: \"1000000000000000\", milli: \"1000000000000000\", ether: \"1000000000000000000\", kether: \"1000000000000000000000\", grand: \"1000000000000000000000\", mether: \"1000000000000000000000000\", gether: \"1000000000000000000000000000\", tether: \"1000000000000000000000000000000\" };\r\n function u(t, e, r) { return new Array(e - t.length + 1).join(r || \"0\") + t; }\r\n function l(t, e) {\r\n if (e === void 0) { e = !1; }\r\n var r = o.encode(t), n = \"\";\r\n for (var t_1 = 0; t_1 < r.length; t_1++) {\r\n var o_1 = r.charCodeAt(t_1);\r\n if (0 === o_1) {\r\n if (!e)\r\n break;\r\n n += \"00\";\r\n }\r\n else {\r\n var t_2 = o_1.toString(16);\r\n n += t_2.length < 2 ? \"0\" + t_2 : t_2;\r\n }\r\n }\r\n return \"0x\" + n;\r\n }\r\n function h(t) { var e = d(t), r = e.toString(16); return e.isLessThan(0) ? \"-0x\" + r.substr(1) : \"0x\" + r; }\r\n function f(t) { if (v(t))\r\n return h(+t); if (g(t))\r\n return h(t); if (\"object\" == typeof t)\r\n return l(JSON.stringify(t)); if (_(t)) {\r\n var e_1 = t;\r\n if (0 === e_1.indexOf(\"-0x\"))\r\n return h(e_1);\r\n if (0 === e_1.indexOf(\"0x\"))\r\n return e_1;\r\n if (!isFinite(e_1))\r\n return l(e_1, !0);\r\n } return h(t); }\r\n function p(t) { var e = t ? t.toLowerCase() : \"ether\", r = c[e]; if (void 0 === r)\r\n throw new Error(\"This unit doesn't exists, please use the one of the following units\" + JSON.stringify(c, null, 2)); return new n.BigNumber(r, 10); }\r\n function d(t) { var e = t || 0; return g(e) ? e : \"string\" != typeof e || 0 !== e.indexOf(\"0x\") && 0 !== e.indexOf(\"-0x\") ? new n.BigNumber(e.toString(10), 10) : new n.BigNumber(e.replace(\"0x\", \"\"), 16); }\r\n function m(t) { return /^0x[0-9a-f]{40}$/i.test(t); }\r\n function y(t) { var e = t.replace(\"0x\", \"\"); var r = a(e.toLowerCase()); for (var t_3 = 0; t_3 < 40; t_3++)\r\n if (parseInt(r[t_3], 16) > 7 && e[t_3].toUpperCase() !== e[t_3] || parseInt(r[t_3], 16) <= 7 && e[t_3].toLowerCase() !== e[t_3])\r\n return !1; return !0; }\r\n function g(t) { return t instanceof n.BigNumber; }\r\n function _(t) { return \"string\" == typeof t || t && t.constructor && \"String\" === t.constructor.name; }\r\n function v(t) { return \"boolean\" == typeof t; }\r\n e.padLeft = u, e.padRight = function (t, e, r) { return t + new Array(e - t.length + 1).join(r || \"0\"); }, e.toUtf8 = function (t) { var e = \"\", r = 0, n = t.length; for (\"0x\" === t.substring(0, 2) && (r = 2); r < n; r += 2) {\r\n var n_1 = parseInt(t.substr(r, 2), 16);\r\n if (0 === n_1)\r\n break;\r\n e += String.fromCharCode(n_1);\r\n } return o.decode(e); }, e.toAscii = function (t) { var e = \"\", r = 0, n = t.length; for (\"0x\" === t.substring(0, 2) && (r = 2); r < n; r += 2) {\r\n var n_2 = parseInt(t.substr(r, 2), 16);\r\n e += String.fromCharCode(n_2);\r\n } return e; }, e.fromUtf8 = l, e.fromAscii = function (t, e) {\r\n if (e === void 0) { e = 0; }\r\n var r = \"\";\r\n for (var e_2 = 0; e_2 < t.length; e_2++) {\r\n var n_3 = t.charCodeAt(e_2).toString(16);\r\n r += n_3.length < 2 ? \"0\" + n_3 : n_3;\r\n }\r\n return \"0x\" + r.padEnd(e, \"0\");\r\n }, e.transformToFullName = function (t) { if (-1 !== t.name.indexOf(\"(\"))\r\n return t.name; var e = t.inputs.map(function (t) { return t.type; }).join(); return t.name + \"(\" + e + \")\"; }, e.extractDisplayName = function (t) { var e = t.indexOf(\"(\"), r = t.indexOf(\")\"); return -1 !== e && -1 !== r ? t.substr(0, e) : t; }, e.extractTypeName = function (t) { var e = t.indexOf(\"(\"), r = t.indexOf(\")\"); return -1 !== e && -1 !== r ? t.substr(e + 1, r - e - 1).replace(\" \", \"\") : \"\"; }, e.isHex = function (t) { return \"string\" == typeof t && /^0x[0-9a-fA-F]+$/.test(t); }, e.toNullDecimal = function (t) { return null == t ? t : d(t).toNumber(); }, e.toDecimal = function (t) { return d(t).toNumber(); }, e.toString = function (t) { return g(t) ? t.toString(10) : \"\" + t; }, e.toData = function (t) { return \"string\" == typeof t && !t.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t) ? \"0x\" + t : f(t); }, e.toBoolean = function (t) { return \"boolean\" == typeof t ? t : 0 !== d(t).toNumber(); }, e.fromDecimal = h, e.toHex = f, e.getValueOfUnit = p, e.fromWei = function (t, e) { var r = d(t).dividedBy(p(e)); return g(t) ? r : r.toString(10); }, e.toWei = function (t, e) { var r = d(t).times(p(e)); return g(t) ? r : r.toString(10); }, e.toBigNumber = d, e.toTwosComplement = function (t) { var e = d(t).integerValue(); return e.isLessThan(0) ? new n.BigNumber(\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 16).plus(e).plus(1) : e; }, e.isStrictAddress = m, e.isAddress = function (t) { return !!/^(0x)?[0-9a-f]{40}$/i.test(t) && (!(!/^(0x)?[0-9a-f]{40}$/.test(t) && !/^(0x)?[0-9A-F]{40}$/.test(t)) || y(t)); }, e.isChecksumAddress = y, e.toChecksumAddress = function (t) { if (void 0 === t)\r\n return \"\"; var e = t.toLowerCase().replace(\"0x\", \"\"), r = a(e); var n = \"0x\"; for (var t_4 = 0; t_4 < e.length; t_4++)\r\n parseInt(r[t_4], 16) > 7 ? n += e[t_4].toUpperCase() : n += e[t_4]; return n; }, e.toArray = function (t) { if (!Array.isArray(t))\r\n throw new Error(\"Value was not an array: \" + JSON.stringify(t)); return t; }, e.toAddress = function (t) { return m(t) ? t : /^[0-9a-f]{40}$/.test(t) ? \"0x\" + t : \"0x\" + u(f(t).substr(2), 40); }, e.isBigNumber = g, e.isString = _, e.isFunction = function (t) { return \"function\" == typeof t; }, e.isObject = function (t) { return null !== t && !Array.isArray(t) && \"object\" == typeof t; }, e.isBoolean = v, e.isArray = function (t) { return Array.isArray(t); }, e.isJson = function (t) { try {\r\n return !!JSON.parse(t);\r\n }\r\n catch (t) {\r\n return !1;\r\n } }, e.isBloom = function (t) { return !(!/^(0x)?[0-9a-f]{512}$/i.test(t) || !/^(0x)?[0-9a-f]{512}$/.test(t) && !/^(0x)?[0-9A-F]{512}$/.test(t)); }, e.isTopic = function (t) { return !(!/^(0x)?[0-9a-f]{64}$/i.test(t) || !/^(0x)?[0-9a-f]{64}$/.test(t) && !/^(0x)?[0-9A-F]{64}$/.test(t)); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(25);\r\n e.SolidityType = /** @class */ (function () {\r\n function SolidityType(t) {\r\n this._inputFormatter = t.inputFormatter, this._outputFormatter = t.outputFormatter;\r\n }\r\n SolidityType.prototype.isType = function (t) { throw new Error(\"this method should be overrwritten for type \" + t); };\r\n SolidityType.prototype.staticPartLength = function (t) { return (this.nestedTypes(t) || [\"[1]\"]).map(function (t) { return parseInt(t.slice(1, -1), 10) || 1; }).reduce(function (t, e) { return t * e; }, 32); };\r\n SolidityType.prototype.isDynamicArray = function (t) { var e = this.nestedTypes(t); return !!e && !e[e.length - 1].match(/[0-9]{1,}/g); };\r\n SolidityType.prototype.isStaticArray = function (t) { var e = this.nestedTypes(t); return !!e && !!e[e.length - 1].match(/[0-9]{1,}/g); };\r\n SolidityType.prototype.staticArrayLength = function (t) { var e = this.nestedTypes(t); if (e) {\r\n var t_5 = e[e.length - 1].match(/[0-9]{1,}/g);\r\n return parseInt(t_5[t_5.length - 1] || \"1\", 10);\r\n } return 1; };\r\n SolidityType.prototype.nestedName = function (t) { var e = this.nestedTypes(t); return e ? t.substr(0, t.length - e[e.length - 1].length) : t; };\r\n SolidityType.prototype.isDynamicType = function (t) { return !1; };\r\n SolidityType.prototype.nestedTypes = function (t) { return t.match(/(\\[[0-9]*\\])/g); };\r\n SolidityType.prototype.encode = function (t, e) {\r\n var _this = this;\r\n if (this.isDynamicArray(e)) {\r\n var r_1 = t.length, o_2 = this.nestedName(e), i_1 = [];\r\n return i_1.push(n.formatInputInt(r_1).encode()), t.forEach(function (t) { i_1.push(_this.encode(t, o_2)); }), i_1;\r\n }\r\n if (this.isStaticArray(e)) {\r\n var r_2 = this.staticArrayLength(e), n_4 = this.nestedName(e), o_3 = [];\r\n for (var e_3 = 0; e_3 < r_2; e_3++)\r\n o_3.push(this.encode(t[e_3], n_4));\r\n return o_3;\r\n }\r\n return this._inputFormatter(t, e).encode();\r\n };\r\n SolidityType.prototype.decode = function (t, e, r) { if (this.isDynamicArray(r)) {\r\n var n_5 = parseInt(\"0x\" + t.substr(2 * e, 64), 16), o_4 = parseInt(\"0x\" + t.substr(2 * n_5, 64), 16), i_2 = n_5 + 32, s = this.nestedName(r), a = this.staticPartLength(s), c = 32 * Math.floor((a + 31) / 32), u = [];\r\n for (var e_4 = 0; e_4 < o_4 * c; e_4 += c)\r\n u.push(this.decode(t, i_2 + e_4, s));\r\n return u;\r\n } if (this.isStaticArray(r)) {\r\n var n_6 = this.staticArrayLength(r), o_5 = e, i_3 = this.nestedName(r), s = this.staticPartLength(i_3), a = 32 * Math.floor((s + 31) / 32), c = [];\r\n for (var e_5 = 0; e_5 < n_6 * a; e_5 += a)\r\n c.push(this.decode(t, o_5 + e_5, i_3));\r\n return c;\r\n } if (this.isDynamicType(r)) {\r\n var n_7 = parseInt(\"0x\" + t.substr(2 * e, 64), 16), i_4 = parseInt(\"0x\" + t.substr(2 * n_7, 64), 16), s = Math.floor((i_4 + 31) / 32), a = new o.SolidityParam(t.substr(2 * n_7, 64 * (1 + s)), 0);\r\n return this._outputFormatter(a, r);\r\n } var n = this.staticPartLength(r), i = new o.SolidityParam(t.substr(2 * e, 2 * n)); return this._outputFormatter(i, r); };\r\n return SolidityType;\r\n }());\r\n }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), r(11), r(12), i = (o = n).lib, s = i.Base, a = i.WordArray, c = o.algo, u = c.MD5, l = c.EvpKDF = s.extend({ cfg: s.extend({ keySize: 4, hasher: u, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t); }, compute: function (t, e) { for (var r = this.cfg, n = r.hasher.create(), o = a.create(), i = o.words, s = r.keySize, c = r.iterations; i.length < s;) {\r\n u && n.update(u);\r\n var u = n.update(t).finalize(e);\r\n n.reset();\r\n for (var l = 1; l < c; l++)\r\n u = n.finalize(u), n.reset();\r\n o.concat(u);\r\n } return o.sigBytes = 4 * s, o; } }), o.EvpKDF = function (t, e, r) { return l.create(r).compute(t, e); }, n.EvpKDF); }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), i = (o = n).lib.WordArray, o.enc.Base64 = { stringify: function (t) { var e = t.words, r = t.sigBytes, n = this._map; t.clamp(); for (var o = [], i = 0; i < r; i += 3)\r\n for (var s = (e[i >>> 2] >>> 24 - i % 4 * 8 & 255) << 16 | (e[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255) << 8 | e[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, a = 0; a < 4 && i + .75 * a < r; a++)\r\n o.push(n.charAt(s >>> 6 * (3 - a) & 63)); var c = n.charAt(64); if (c)\r\n for (; o.length % 4;)\r\n o.push(c); return o.join(\"\"); }, parse: function (t) { var e = t.length, r = this._map, n = this._reverseMap; if (!n) {\r\n n = this._reverseMap = [];\r\n for (var o = 0; o < r.length; o++)\r\n n[r.charCodeAt(o)] = o;\r\n } var s = r.charAt(64); if (s) {\r\n var a = t.indexOf(s);\r\n -1 !== a && (e = a);\r\n } return function (t, e, r) { for (var n = [], o = 0, s = 0; s < e; s++)\r\n if (s % 4) {\r\n var a = r[t.charCodeAt(s - 1)] << s % 4 * 2, c = r[t.charCodeAt(s)] >>> 6 - s % 4 * 2;\r\n n[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++;\r\n } return i.create(n, o); }(t, e, n); }, _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\" }, n.enc.Base64); }, function (t, e, r) { var n; t.exports = (n = r(0), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = []; !function () { for (var e = 0; e < 64; e++)\r\n a[e] = 4294967296 * t.abs(t.sin(e + 1)) | 0; }(); var c = s.MD5 = i.extend({ _doReset: function () { this._hash = new o.init([1732584193, 4023233417, 2562383102, 271733878]); }, _doProcessBlock: function (t, e) { for (var r = 0; r < 16; r++) {\r\n var n = e + r, o = t[n];\r\n t[n] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);\r\n } var i = this._hash.words, s = t[e + 0], c = t[e + 1], p = t[e + 2], d = t[e + 3], m = t[e + 4], y = t[e + 5], g = t[e + 6], _ = t[e + 7], v = t[e + 8], w = t[e + 9], b = t[e + 10], B = t[e + 11], F = t[e + 12], N = t[e + 13], k = t[e + 14], x = t[e + 15], S = i[0], A = i[1], O = i[2], T = i[3]; S = u(S, A, O, T, s, 7, a[0]), T = u(T, S, A, O, c, 12, a[1]), O = u(O, T, S, A, p, 17, a[2]), A = u(A, O, T, S, d, 22, a[3]), S = u(S, A, O, T, m, 7, a[4]), T = u(T, S, A, O, y, 12, a[5]), O = u(O, T, S, A, g, 17, a[6]), A = u(A, O, T, S, _, 22, a[7]), S = u(S, A, O, T, v, 7, a[8]), T = u(T, S, A, O, w, 12, a[9]), O = u(O, T, S, A, b, 17, a[10]), A = u(A, O, T, S, B, 22, a[11]), S = u(S, A, O, T, F, 7, a[12]), T = u(T, S, A, O, N, 12, a[13]), O = u(O, T, S, A, k, 17, a[14]), S = l(S, A = u(A, O, T, S, x, 22, a[15]), O, T, c, 5, a[16]), T = l(T, S, A, O, g, 9, a[17]), O = l(O, T, S, A, B, 14, a[18]), A = l(A, O, T, S, s, 20, a[19]), S = l(S, A, O, T, y, 5, a[20]), T = l(T, S, A, O, b, 9, a[21]), O = l(O, T, S, A, x, 14, a[22]), A = l(A, O, T, S, m, 20, a[23]), S = l(S, A, O, T, w, 5, a[24]), T = l(T, S, A, O, k, 9, a[25]), O = l(O, T, S, A, d, 14, a[26]), A = l(A, O, T, S, v, 20, a[27]), S = l(S, A, O, T, N, 5, a[28]), T = l(T, S, A, O, p, 9, a[29]), O = l(O, T, S, A, _, 14, a[30]), S = h(S, A = l(A, O, T, S, F, 20, a[31]), O, T, y, 4, a[32]), T = h(T, S, A, O, v, 11, a[33]), O = h(O, T, S, A, B, 16, a[34]), A = h(A, O, T, S, k, 23, a[35]), S = h(S, A, O, T, c, 4, a[36]), T = h(T, S, A, O, m, 11, a[37]), O = h(O, T, S, A, _, 16, a[38]), A = h(A, O, T, S, b, 23, a[39]), S = h(S, A, O, T, N, 4, a[40]), T = h(T, S, A, O, s, 11, a[41]), O = h(O, T, S, A, d, 16, a[42]), A = h(A, O, T, S, g, 23, a[43]), S = h(S, A, O, T, w, 4, a[44]), T = h(T, S, A, O, F, 11, a[45]), O = h(O, T, S, A, x, 16, a[46]), S = f(S, A = h(A, O, T, S, p, 23, a[47]), O, T, s, 6, a[48]), T = f(T, S, A, O, _, 10, a[49]), O = f(O, T, S, A, k, 15, a[50]), A = f(A, O, T, S, y, 21, a[51]), S = f(S, A, O, T, F, 6, a[52]), T = f(T, S, A, O, d, 10, a[53]), O = f(O, T, S, A, b, 15, a[54]), A = f(A, O, T, S, c, 21, a[55]), S = f(S, A, O, T, v, 6, a[56]), T = f(T, S, A, O, x, 10, a[57]), O = f(O, T, S, A, g, 15, a[58]), A = f(A, O, T, S, N, 21, a[59]), S = f(S, A, O, T, m, 6, a[60]), T = f(T, S, A, O, B, 10, a[61]), O = f(O, T, S, A, p, 15, a[62]), A = f(A, O, T, S, w, 21, a[63]), i[0] = i[0] + S | 0, i[1] = i[1] + A | 0, i[2] = i[2] + O | 0, i[3] = i[3] + T | 0; }, _doFinalize: function () { var e = this._data, r = e.words, n = 8 * this._nDataBytes, o = 8 * e.sigBytes; r[o >>> 5] |= 128 << 24 - o % 32; var i = t.floor(n / 4294967296), s = n; r[15 + (o + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), r[14 + (o + 64 >>> 9 << 4)] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), e.sigBytes = 4 * (r.length + 1), this._process(); for (var a = this._hash, c = a.words, u = 0; u < 4; u++) {\r\n var l = c[u];\r\n c[u] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8);\r\n } return a; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); function u(t, e, r, n, o, i, s) { var a = t + (e & r | ~e & n) + o + s; return (a << i | a >>> 32 - i) + e; } function l(t, e, r, n, o, i, s) { var a = t + (e & n | r & ~n) + o + s; return (a << i | a >>> 32 - i) + e; } function h(t, e, r, n, o, i, s) { var a = t + (e ^ r ^ n) + o + s; return (a << i | a >>> 32 - i) + e; } function f(t, e, r, n, o, i, s) { var a = t + (r ^ (e | ~n)) + o + s; return (a << i | a >>> 32 - i) + e; } e.MD5 = i._createHelper(c), e.HmacMD5 = i._createHmacHelper(c); }(Math), n.MD5); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(14);\r\n function i(t) { return \"latest\" === t || \"pending\" === t || \"earliest\" === t; }\r\n function s(t) { if (void 0 !== t && null != t)\r\n return i(t) ? t : n.toHex(t); }\r\n function a(t) { return t ? (null !== t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), null !== t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.nonce = n.toDecimal(t.nonce), t.gas = n.toDecimal(t.gas), t.gasPrice = n.toBigNumber(t.gasPrice), t.value = n.toBigNumber(t.value), t) : null; }\r\n function c(t) { return t ? (t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.logIndex && (t.logIndex = n.toDecimal(t.logIndex)), t) : null; }\r\n function u(t) { if (n.isStrictAddress(t))\r\n return t; if (n.isAddress(t))\r\n return \"0x\" + t; throw new Error(\"Invalid address: \" + JSON.stringify(t)); }\r\n e.outputBigNumberFormatter = function (t) { return n.toBigNumber(t); }, e.isPredefinedBlockNumber = i, e.inputDefaultBlockNumberFormatter = function (t) { return void 0 === t ? o.defaultBlock : s(t); }, e.inputBlockNumberFormatter = s, e.inputCallFormatter = function (t) { return t.from = t.from, t.from && (t.from = u(t.from)), t.to && (t.to = u(t.to)), [\"gasPrice\", \"gas\", \"value\", \"nonce\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (e) { t[e] = n.fromDecimal(t[e]); }), t.data && !t.data.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t.data) && (t.data = \"0x\" + t.data), t; }, e.inputTransactionFormatter = function (t) { if (\"object\" != typeof t)\r\n throw new Error(\"Did not provide transaction options\"); if (!t.from)\r\n throw new Error('Missing \"from\" in transaction options'); return t.from = u(t.from), t.to && (t.to = u(t.to)), [\"gasPrice\", \"gas\", \"value\", \"nonce\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (e) { t[e] = n.fromDecimal(t[e]); }), t.data && !t.data.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t.data) && (t.data = \"0x\" + t.data), t; }, e.outputTransactionFormatter = a, e.outputTransactionReceiptFormatter = function (t) { return t ? (null !== t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), null !== t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.cumulativeGasUsed = n.toDecimal(t.cumulativeGasUsed), t.gasUsed = n.toDecimal(t.gasUsed), n.isArray(t.logs) && (t.logs = t.logs.map(function (t) { return c(t); })), t.status = n.toDecimal(t.status), t) : null; }, e.outputBlockFormatter = function (t) { return t ? (t.gasLimit = n.toDecimal(t.gasLimit), t.gasUsed = n.toDecimal(t.gasUsed), t.size = n.toDecimal(t.size), t.timestamp = n.toDecimal(t.timestamp), null !== t.number && (t.number = n.toDecimal(t.number)), t.difficulty = n.toBigNumber(t.difficulty), t.totalDifficulty = n.toBigNumber(t.totalDifficulty), n.isArray(t.transactions) && t.transactions.forEach(function (t) { if (!n.isString(t))\r\n return a(t); }), t) : null; }, e.outputLogFormatter = c, e.inputPostFormatter = function (t) { return t ? (t.ttl = n.fromDecimal(t.ttl), t.workToProve = n.fromDecimal(t.workToProve), t.priority = n.fromDecimal(t.priority), n.isArray(t.topics) || (t.topics = t.topics ? [t.topics] : []), t.topics = t.topics.map(function (t) { return 0 === t.indexOf(\"0x\") ? t : n.fromUtf8(t); }), t) : null; }, e.outputPostFormatter = function (t) { return t ? (t.expiry = n.toDecimal(t.expiry), t.sent = n.toDecimal(t.sent), t.ttl = n.toDecimal(t.ttl), t.workProved = n.toDecimal(t.workProved), t.topics || (t.topics = []), t.topics = t.topics.map(function (t) { return n.toAscii(t); }), t) : null; }, e.inputAddressFormatter = u, e.outputSyncingFormatter = function (t) { return t ? (t.startingBlock = n.toDecimal(t.startingBlock), t.currentBlock = n.toDecimal(t.currentBlock), t.highestBlock = n.toDecimal(t.highestBlock), t.knownStates && (t.knownStates = n.toDecimal(t.knownStates), t.pulledStates = n.toDecimal(t.pulledStates)), t) : t; };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n function n() { var t, e; var r = new Promise(function (n, o) { t = (function (t) { n(t), r.isPending = !1; }), e = (function (t) { o(t), r.isPending = !1; }); }).catch(function (t) { return Promise.reject(t); }); return r.resolve = t, r.reject = e, \"finally\" in r || (r.finally = (function (t) { r.then(t), r.catch(t); })), r.isPending = !0, r; }\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.future = n, e.default = n;\r\n }, function (t, e, r) { var n, o, i, s, a, c; t.exports = (n = r(0), i = (o = n).lib, s = i.Base, a = i.WordArray, (c = o.x64 = {}).Word = s.extend({ init: function (t, e) { this.high = t, this.low = e; } }), c.WordArray = s.extend({ init: function (t, e) { t = this.words = t || [], this.sigBytes = null != e ? e : 8 * t.length; }, toX32: function () { for (var t = this.words, e = t.length, r = [], n = 0; n < e; n++) {\r\n var o = t[n];\r\n r.push(o.high), r.push(o.low);\r\n } return a.create(r, this.sigBytes); }, clone: function () { for (var t = s.clone.call(this), e = t.words = this.words.slice(0), r = e.length, n = 0; n < r; n++)\r\n e[n] = e[n].clone(); return t; } }), n); }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), i = (o = n).lib, s = i.WordArray, a = i.Hasher, c = o.algo, u = [], l = c.SHA1 = a.extend({ _doReset: function () { this._hash = new s.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], c = 0; c < 80; c++) {\r\n if (c < 16)\r\n u[c] = 0 | t[e + c];\r\n else {\r\n var l = u[c - 3] ^ u[c - 8] ^ u[c - 14] ^ u[c - 16];\r\n u[c] = l << 1 | l >>> 31;\r\n }\r\n var h = (n << 5 | n >>> 27) + a + u[c];\r\n h += c < 20 ? 1518500249 + (o & i | ~o & s) : c < 40 ? 1859775393 + (o ^ i ^ s) : c < 60 ? (o & i | o & s | i & s) - 1894007588 : (o ^ i ^ s) - 899497514, a = s, s = i, i = o << 30 | o >>> 2, o = n, n = h;\r\n } r[0] = r[0] + n | 0, r[1] = r[1] + o | 0, r[2] = r[2] + i | 0, r[3] = r[3] + s | 0, r[4] = r[4] + a | 0; }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[14 + (n + 64 >>> 9 << 4)] = Math.floor(r / 4294967296), e[15 + (n + 64 >>> 9 << 4)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash; }, clone: function () { var t = a.clone.call(this); return t._hash = this._hash.clone(), t; } }), o.SHA1 = a._createHelper(l), o.HmacSHA1 = a._createHmacHelper(l), n.SHA1); }, function (t, e, r) { var n, o, i, s, a, c, u; t.exports = (n = r(0), i = (o = n).lib, s = i.Base, a = o.enc, c = a.Utf8, u = o.algo, void (u.HMAC = s.extend({ init: function (t, e) { t = this._hasher = new t.init, \"string\" == typeof e && (e = c.parse(e)); var r = t.blockSize, n = 4 * r; e.sigBytes > n && (e = t.finalize(e)), e.clamp(); for (var o = this._oKey = e.clone(), i = this._iKey = e.clone(), s = o.words, a = i.words, u = 0; u < r; u++)\r\n s[u] ^= 1549556828, a[u] ^= 909522486; o.sigBytes = i.sigBytes = n, this.reset(); }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey); }, update: function (t) { return this._hasher.update(t), this; }, finalize: function (t) { var e = this._hasher, r = e.finalize(t); e.reset(); var n = e.finalize(this._oKey.clone().concat(r)); return n; } }))); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.InvalidNumberOfSolidityArgs = function (t, e) { return new Error(\"Invalid number of arguments to Solidity function. given: \" + t + \", expected: \" + e); }, e.InvalidNumberOfRPCParams = function (t, e, r) { return new Error(\"Invalid number of input parameters to RPC method \\\"\" + t + \"\\\" given: \" + e + \", expected: \" + r); }, e.InvalidConnection = function (t) { return new Error(\"CONNECTION ERROR: Couldn't connect to node \" + t + \".\"); }, e.InvalidProvider = function () { return new Error(\"Provider not set or invalid\"); }, e.InvalidResponse = function (t) { var e = t && t.error && t.error.message ? t.error.message : \"Invalid JSON RPC response: \" + JSON.stringify(t); return new Error(e); }, e.ConnectionTimeout = function (t) { return new Error(\"CONNECTION TIMEOUT: timeout of \" + t + \" ms achived\"); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(57);\r\n e.ETH_UNITS = [\"wei\", \"kwei\", \"Mwei\", \"Gwei\", \"szabo\", \"finney\", \"femtoether\", \"picoether\", \"nanoether\", \"microether\", \"milliether\", \"nano\", \"micro\", \"milli\", \"ether\", \"grand\", \"Mether\", \"Gether\", \"Tether\", \"Pether\", \"Eether\", \"Zether\", \"Yether\", \"Nether\", \"Dether\", \"Vether\", \"Uether\"], e.ETH_PADDING = 32, e.ETH_SIGNATURE_LENGTH = 4, e.ETH_BIGNUMBER_ROUNDING_MODE = { ROUNDING_MODE: n.BigNumberRoundingMode.ROUND_DOWN }, e.ETH_POLLING_TIMEOUT = 500, e.defaultBlock = \"latest\";\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(61), i = r(62), s = r(63), a = r(64), c = r(65), u = r(66), l = r(67), h = r(68), f = r(69);\r\n function p(t, e) { return t.isDynamicType(e) || t.isDynamicArray(e); }\r\n var d = /** @class */ (function () {\r\n function d(t) {\r\n this._types = t;\r\n }\r\n d.prototype._requireType = function (t) { var e = this._types.filter(function (e) { return e.isType(t); })[0]; if (!e)\r\n throw Error(\"invalid solidity type!: \" + t); return e; };\r\n d.prototype.encodeParam = function (t, e) { return this.encodeParams([t], [e]); };\r\n d.prototype.encodeParams = function (t, e) { var r = this.getSolidityTypes(t), n = r.map(function (r, n) { return r.encode(e[n], t[n]); }), o = r.reduce(function (e, n, o) { var i = n.staticPartLength(t[o]), s = 32 * Math.floor((i + 31) / 32); return e + (p(r[o], t[o]) ? 32 : s); }, 0); return this.encodeMultiWithOffset(t, r, n, o); };\r\n d.prototype.encodeMultiWithOffset = function (t, e, r, o) {\r\n var _this = this;\r\n var i = o, s = \"\";\r\n return t.forEach(function (o, a) { if (p(e[a], t[a])) {\r\n s += n.formatInputInt(i).encode();\r\n var o_6 = _this.encodeWithOffset(t[a], e[a], r[a], i);\r\n i += o_6.length / 2;\r\n }\r\n else\r\n s += _this.encodeWithOffset(t[a], e[a], r[a], i); }), t.forEach(function (n, o) { if (p(e[o], t[o])) {\r\n var n_8 = _this.encodeWithOffset(t[o], e[o], r[o], i);\r\n i += n_8.length / 2, s += n_8;\r\n } }), s;\r\n };\r\n d.prototype.encodeWithOffset = function (t, e, r, o) { var i = 1, s = 2, a = 3, c = e.isDynamicArray(t) ? i : e.isStaticArray(t) ? s : a; if (c !== a) {\r\n var a_1 = e.nestedName(t), u_1 = e.staticPartLength(a_1), l_1 = c === i ? r[0] : \"\";\r\n if (e.isDynamicArray(a_1)) {\r\n var t_6 = c === i ? 2 : 0;\r\n for (var e_6 = 0; e_6 < r.length; e_6++)\r\n c === i ? t_6 += +r[e_6 - 1][0] || 0 : c === s && (t_6 += +(r[e_6 - 1] || [])[0] || 0), l_1 += n.formatInputInt(o + e_6 * u_1 + 32 * t_6).encode();\r\n }\r\n var h_1 = c === i ? r.length - 1 : r.length;\r\n for (var t_7 = 0; t_7 < h_1; t_7++) {\r\n var n_9 = l_1 / 2;\r\n c === i ? l_1 += this.encodeWithOffset(a_1, e, r[t_7 + 1], o + n_9) : c === s && (l_1 += this.encodeWithOffset(a_1, e, r[t_7], o + n_9));\r\n }\r\n return l_1;\r\n } return r; };\r\n d.prototype.decodeParam = function (t, e) { return this.decodeParams([t], e)[0]; };\r\n d.prototype.decodeParams = function (t, e) { var r = this.getSolidityTypes(t), n = this.getOffsets(t, r); return r.map(function (r, o) { return r.decode(e, n[o], t[o]); }); };\r\n d.prototype.getOffsets = function (t, e) { var r = e.map(function (e, r) { return e.staticPartLength(t[r]); }); for (var t_8 = 1; t_8 < r.length; t_8++)\r\n r[t_8] += r[t_8 - 1]; return r.map(function (r, n) { return r - e[n].staticPartLength(t[n]); }); };\r\n d.prototype.getSolidityTypes = function (t) {\r\n var _this = this;\r\n return t.map(function (t) { return _this._requireType(t); });\r\n };\r\n return d;\r\n }());\r\n e.SolidityCoder = d, e.coder = new d([new o.SolidityTypeAddress, new i.SolidityTypeBool, new s.SolidityTypeInt, new a.SolidityTypeUInt, new c.SolidityTypeDynamicBytes, new f.SolidityTypeBytes, new u.SolidityTypeString, new l.SolidityTypeReal, new h.SolidityTypeUReal]);\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.toRPC = function (t) { if (t.jsonrpc = \"2.0\", !t.id || \"number\" != typeof t.id || Math.floor(t.id) !== t.id)\r\n throw new Error(\"Invalid RPC message(invalid id) message: \" + JSON.stringify(t)); if (!t.method || \"string\" != typeof t.method || 0 === t.method.trim().length)\r\n throw new Error(\"Invalid RPC message(invalid method) message: \" + JSON.stringify(t)); if (!t.params || \"object\" != typeof t.params)\r\n throw new Error(\"Invalid RPC message(invalid params) message: \" + JSON.stringify(t)); return t; };\r\n }, function (t, e, r) { var n; !function (o) {\r\n \"use strict\";\r\n var i, s = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i, a = Math.ceil, c = Math.floor, u = \"[BigNumber Error] \", l = u + \"Number primitive has more than 15 significant digits: \", h = 1e14, f = 14, p = 9007199254740991, d = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], m = 1e7, y = 1e9;\r\n function g(t) { var e = 0 | t; return t > 0 || t === e ? e : e - 1; }\r\n function _(t) { for (var e, r, n = 1, o = t.length, i = t[0] + \"\"; n < o;) {\r\n for (e = t[n++] + \"\", r = f - e.length; r--; e = \"0\" + e)\r\n ;\r\n i += e;\r\n } for (o = i.length; 48 === i.charCodeAt(--o);)\r\n ; return i.slice(0, o + 1 || 1); }\r\n function v(t, e) { var r, n, o = t.c, i = e.c, s = t.s, a = e.s, c = t.e, u = e.e; if (!s || !a)\r\n return null; if (r = o && !o[0], n = i && !i[0], r || n)\r\n return r ? n ? 0 : -a : s; if (s != a)\r\n return s; if (r = s < 0, n = c == u, !o || !i)\r\n return n ? 0 : !o ^ r ? 1 : -1; if (!n)\r\n return c > u ^ r ? 1 : -1; for (a = (c = o.length) < (u = i.length) ? c : u, s = 0; s < a; s++)\r\n if (o[s] != i[s])\r\n return o[s] > i[s] ^ r ? 1 : -1; return c == u ? 0 : c > u ^ r ? 1 : -1; }\r\n function w(t, e, r, n) { if (t < e || t > r || t !== (t < 0 ? a(t) : c(t)))\r\n throw Error(u + (n || \"Argument\") + (\"number\" == typeof t ? t < e || t > r ? \" out of range: \" : \" not an integer: \" : \" not a primitive number: \") + t); }\r\n function b(t) { return \"[object Array]\" == Object.prototype.toString.call(t); }\r\n function B(t) { var e = t.c.length - 1; return g(t.e / f) == e && t.c[e] % 2 != 0; }\r\n function F(t, e) { return (t.length > 1 ? t.charAt(0) + \".\" + t.slice(1) : t) + (e < 0 ? \"e\" : \"e+\") + e; }\r\n function N(t, e, r) { var n, o; if (e < 0) {\r\n for (o = r + \".\"; ++e; o += r)\r\n ;\r\n t = o + t;\r\n }\r\n else if (++e > (n = t.length)) {\r\n for (o = r, e -= n; --e; o += r)\r\n ;\r\n t += o;\r\n }\r\n else\r\n e < n && (t = t.slice(0, e) + \".\" + t.slice(e)); return t; }\r\n (i = function t(e) { var r, n, o, i, k, x, S, A, O, T = W.prototype = { constructor: W, toString: null, valueOf: null }, P = new W(1), M = 20, C = 4, E = -7, D = 21, R = -1e7, I = 1e7, H = !1, j = 1, U = 0, L = { decimalSeparator: \".\", groupSeparator: \",\", groupSize: 3, secondaryGroupSize: 0, fractionGroupSeparator: \" \", fractionGroupSize: 0 }, z = \"0123456789abcdefghijklmnopqrstuvwxyz\"; function W(t, e) { var r, i, a, u, h, d, m, y = this; if (!(y instanceof W))\r\n return new W(t, e); if (null == e) {\r\n if (t instanceof W)\r\n return y.s = t.s, y.e = t.e, void (y.c = (t = t.c) ? t.slice() : t);\r\n if ((h = \"number\" == typeof t) && 0 * t == 0) {\r\n if (y.s = 1 / t < 0 ? (t = -t, -1) : 1, t === ~~t) {\r\n for (a = 0, u = t; u >= 10; u /= 10, a++)\r\n ;\r\n return y.e = a, void (y.c = [t]);\r\n }\r\n m = t + \"\";\r\n }\r\n else {\r\n if (!s.test(m = t + \"\"))\r\n return o(y, m, h);\r\n y.s = 45 == m.charCodeAt(0) ? (m = m.slice(1), -1) : 1;\r\n }\r\n }\r\n else {\r\n if (w(e, 2, z.length, \"Base\"), m = t + \"\", 10 == e)\r\n return V(y = new W(t instanceof W ? t : m), M + y.e + 1, C);\r\n if (h = \"number\" == typeof t) {\r\n if (0 * t != 0)\r\n return o(y, m, h, e);\r\n if (y.s = 1 / t < 0 ? (m = m.slice(1), -1) : 1, W.DEBUG && m.replace(/^0\\.0*|\\./, \"\").length > 15)\r\n throw Error(l + t);\r\n h = !1;\r\n }\r\n else\r\n y.s = 45 === m.charCodeAt(0) ? (m = m.slice(1), -1) : 1, e > 10 && e < 37 && (m = m.toLowerCase());\r\n for (r = z.slice(0, e), a = u = 0, d = m.length; u < d; u++)\r\n if (r.indexOf(i = m.charAt(u)) < 0) {\r\n if (\".\" == i && u > a) {\r\n a = d;\r\n continue;\r\n }\r\n return o(y, t + \"\", h, e);\r\n }\r\n m = n(m, e, 10, y.s);\r\n } for ((a = m.indexOf(\".\")) > -1 && (m = m.replace(\".\", \"\")), (u = m.search(/e/i)) > 0 ? (a < 0 && (a = u), a += +m.slice(u + 1), m = m.substring(0, u)) : a < 0 && (a = m.length), u = 0; 48 === m.charCodeAt(u); u++)\r\n ; for (d = m.length; 48 === m.charCodeAt(--d);)\r\n ; if (m = m.slice(u, ++d)) {\r\n if (d -= u, h && W.DEBUG && d > 15 && (t > p || t !== c(t)))\r\n throw Error(l + y.s * t);\r\n if ((a = a - u - 1) > I)\r\n y.c = y.e = null;\r\n else if (a < R)\r\n y.c = [y.e = 0];\r\n else {\r\n if (y.e = a, y.c = [], u = (a + 1) % f, a < 0 && (u += f), u < d) {\r\n for (u && y.c.push(+m.slice(0, u)), d -= f; u < d;)\r\n y.c.push(+m.slice(u, u += f));\r\n m = m.slice(u), u = f - m.length;\r\n }\r\n else\r\n u -= d;\r\n for (; u--; m += \"0\")\r\n ;\r\n y.c.push(+m);\r\n }\r\n }\r\n else\r\n y.c = [y.e = 0]; } function q(t, e, r, n) { var o, i, s, a, c; if (null == r ? r = C : w(r, 0, 8), !t.c)\r\n return t.toString(); if (o = t.c[0], s = t.e, null == e)\r\n c = _(t.c), c = 1 == n || 2 == n && s <= E ? F(c, s) : N(c, s, \"0\");\r\n else if (i = (t = V(new W(t), e, r)).e, a = (c = _(t.c)).length, 1 == n || 2 == n && (e <= i || i <= E)) {\r\n for (; a < e; c += \"0\", a++)\r\n ;\r\n c = F(c, i);\r\n }\r\n else if (e -= s, c = N(c, i, \"0\"), i + 1 > a) {\r\n if (--e > 0)\r\n for (c += \".\"; e--; c += \"0\")\r\n ;\r\n }\r\n else if ((e += i - a) > 0)\r\n for (i + 1 == a && (c += \".\"); e--; c += \"0\")\r\n ; return t.s < 0 && o ? \"-\" + c : c; } function $(t, e) { var r, n, o = 0; for (b(t[0]) && (t = t[0]), r = new W(t[0]); ++o < t.length;) {\r\n if (!(n = new W(t[o])).s) {\r\n r = n;\r\n break;\r\n }\r\n e.call(r, n) && (r = n);\r\n } return r; } function G(t, e, r) { for (var n = 1, o = e.length; !e[--o]; e.pop())\r\n ; for (o = e[0]; o >= 10; o /= 10, n++)\r\n ; return (r = n + r * f - 1) > I ? t.c = t.e = null : r < R ? t.c = [t.e = 0] : (t.e = r, t.c = e), t; } function V(t, e, r, n) { var o, i, s, u, l, p, m, y = t.c, g = d; if (y) {\r\n t: {\r\n for (o = 1, u = y[0]; u >= 10; u /= 10, o++)\r\n ;\r\n if ((i = e - o) < 0)\r\n i += f, s = e, m = (l = y[p = 0]) / g[o - s - 1] % 10 | 0;\r\n else if ((p = a((i + 1) / f)) >= y.length) {\r\n if (!n)\r\n break t;\r\n for (; y.length <= p; y.push(0))\r\n ;\r\n l = m = 0, o = 1, s = (i %= f) - f + 1;\r\n }\r\n else {\r\n for (l = u = y[p], o = 1; u >= 10; u /= 10, o++)\r\n ;\r\n m = (s = (i %= f) - f + o) < 0 ? 0 : l / g[o - s - 1] % 10 | 0;\r\n }\r\n if (n = n || e < 0 || null != y[p + 1] || (s < 0 ? l : l % g[o - s - 1]), n = r < 4 ? (m || n) && (0 == r || r == (t.s < 0 ? 3 : 2)) : m > 5 || 5 == m && (4 == r || n || 6 == r && (i > 0 ? s > 0 ? l / g[o - s] : 0 : y[p - 1]) % 10 & 1 || r == (t.s < 0 ? 8 : 7)), e < 1 || !y[0])\r\n return y.length = 0, n ? (e -= t.e + 1, y[0] = g[(f - e % f) % f], t.e = -e || 0) : y[0] = t.e = 0, t;\r\n if (0 == i ? (y.length = p, u = 1, p--) : (y.length = p + 1, u = g[f - i], y[p] = s > 0 ? c(l / g[o - s] % g[s]) * u : 0), n)\r\n for (;;) {\r\n if (0 == p) {\r\n for (i = 1, s = y[0]; s >= 10; s /= 10, i++)\r\n ;\r\n for (s = y[0] += u, u = 1; s >= 10; s /= 10, u++)\r\n ;\r\n i != u && (t.e++, y[0] == h && (y[0] = 1));\r\n break;\r\n }\r\n if (y[p] += u, y[p] != h)\r\n break;\r\n y[p--] = 0, u = 1;\r\n }\r\n for (i = y.length; 0 === y[--i]; y.pop())\r\n ;\r\n }\r\n t.e > I ? t.c = t.e = null : t.e < R && (t.c = [t.e = 0]);\r\n } return t; } return W.clone = t, W.ROUND_UP = 0, W.ROUND_DOWN = 1, W.ROUND_CEIL = 2, W.ROUND_FLOOR = 3, W.ROUND_HALF_UP = 4, W.ROUND_HALF_DOWN = 5, W.ROUND_HALF_EVEN = 6, W.ROUND_HALF_CEIL = 7, W.ROUND_HALF_FLOOR = 8, W.EUCLID = 9, W.config = W.set = function (t) { var e, r; if (null != t) {\r\n if (\"object\" != typeof t)\r\n throw Error(u + \"Object expected: \" + t);\r\n if (t.hasOwnProperty(e = \"DECIMAL_PLACES\") && (w(r = t[e], 0, y, e), M = r), t.hasOwnProperty(e = \"ROUNDING_MODE\") && (w(r = t[e], 0, 8, e), C = r), t.hasOwnProperty(e = \"EXPONENTIAL_AT\") && (b(r = t[e]) ? (w(r[0], -y, 0, e), w(r[1], 0, y, e), E = r[0], D = r[1]) : (w(r, -y, y, e), E = -(D = r < 0 ? -r : r))), t.hasOwnProperty(e = \"RANGE\"))\r\n if (b(r = t[e]))\r\n w(r[0], -y, -1, e), w(r[1], 1, y, e), R = r[0], I = r[1];\r\n else {\r\n if (w(r, -y, y, e), !r)\r\n throw Error(u + e + \" cannot be zero: \" + r);\r\n R = -(I = r < 0 ? -r : r);\r\n }\r\n if (t.hasOwnProperty(e = \"CRYPTO\")) {\r\n if ((r = t[e]) !== !!r)\r\n throw Error(u + e + \" not true or false: \" + r);\r\n if (r) {\r\n if (\"undefined\" == typeof crypto || !crypto || !crypto.getRandomValues && !crypto.randomBytes)\r\n throw H = !r, Error(u + \"crypto unavailable\");\r\n H = r;\r\n }\r\n else\r\n H = r;\r\n }\r\n if (t.hasOwnProperty(e = \"MODULO_MODE\") && (w(r = t[e], 0, 9, e), j = r), t.hasOwnProperty(e = \"POW_PRECISION\") && (w(r = t[e], 0, y, e), U = r), t.hasOwnProperty(e = \"FORMAT\")) {\r\n if (\"object\" != typeof (r = t[e]))\r\n throw Error(u + e + \" not an object: \" + r);\r\n L = r;\r\n }\r\n if (t.hasOwnProperty(e = \"ALPHABET\")) {\r\n if (\"string\" != typeof (r = t[e]) || /^.$|\\.|(.).*\\1/.test(r))\r\n throw Error(u + e + \" invalid: \" + r);\r\n z = r;\r\n }\r\n } return { DECIMAL_PLACES: M, ROUNDING_MODE: C, EXPONENTIAL_AT: [E, D], RANGE: [R, I], CRYPTO: H, MODULO_MODE: j, POW_PRECISION: U, FORMAT: L, ALPHABET: z }; }, W.isBigNumber = function (t) { return t instanceof W || t && !0 === t._isBigNumber || !1; }, W.maximum = W.max = function () { return $(arguments, T.lt); }, W.minimum = W.min = function () { return $(arguments, T.gt); }, W.random = (i = 9007199254740992 * Math.random() & 2097151 ? function () { return c(9007199254740992 * Math.random()); } : function () { return 8388608 * (1073741824 * Math.random() | 0) + (8388608 * Math.random() | 0); }, function (t) { var e, r, n, o, s, l = 0, h = [], p = new W(P); if (null == t ? t = M : w(t, 0, y), o = a(t / f), H)\r\n if (crypto.getRandomValues) {\r\n for (e = crypto.getRandomValues(new Uint32Array(o *= 2)); l < o;)\r\n (s = 131072 * e[l] + (e[l + 1] >>> 11)) >= 9e15 ? (r = crypto.getRandomValues(new Uint32Array(2)), e[l] = r[0], e[l + 1] = r[1]) : (h.push(s % 1e14), l += 2);\r\n l = o / 2;\r\n }\r\n else {\r\n if (!crypto.randomBytes)\r\n throw H = !1, Error(u + \"crypto unavailable\");\r\n for (e = crypto.randomBytes(o *= 7); l < o;)\r\n (s = 281474976710656 * (31 & e[l]) + 1099511627776 * e[l + 1] + 4294967296 * e[l + 2] + 16777216 * e[l + 3] + (e[l + 4] << 16) + (e[l + 5] << 8) + e[l + 6]) >= 9e15 ? crypto.randomBytes(7).copy(e, l) : (h.push(s % 1e14), l += 7);\r\n l = o / 7;\r\n } if (!H)\r\n for (; l < o;)\r\n (s = i()) < 9e15 && (h[l++] = s % 1e14); for (o = h[--l], t %= f, o && t && (s = d[f - t], h[l] = c(o / s) * s); 0 === h[l]; h.pop(), l--)\r\n ; if (l < 0)\r\n h = [n = 0];\r\n else {\r\n for (n = -1; 0 === h[0]; h.splice(0, 1), n -= f)\r\n ;\r\n for (l = 1, s = h[0]; s >= 10; s /= 10, l++)\r\n ;\r\n l < f && (n -= f - l);\r\n } return p.e = n, p.c = h, p; }), n = function () { function t(t, e, r, n) { for (var o, i, s = [0], a = 0, c = t.length; a < c;) {\r\n for (i = s.length; i--; s[i] *= e)\r\n ;\r\n for (s[0] += n.indexOf(t.charAt(a++)), o = 0; o < s.length; o++)\r\n s[o] > r - 1 && (null == s[o + 1] && (s[o + 1] = 0), s[o + 1] += s[o] / r | 0, s[o] %= r);\r\n } return s.reverse(); } return function (e, n, o, i, s) { var a, c, u, l, h, f, p, d, m = e.indexOf(\".\"), y = M, g = C; for (m >= 0 && (l = U, U = 0, e = e.replace(\".\", \"\"), f = (d = new W(n)).pow(e.length - m), U = l, d.c = t(N(_(f.c), f.e, \"0\"), 10, o, \"0123456789\"), d.e = d.c.length), u = l = (p = t(e, n, o, s ? (a = z, \"0123456789\") : (a = \"0123456789\", z))).length; 0 == p[--l]; p.pop())\r\n ; if (!p[0])\r\n return a.charAt(0); if (m < 0 ? --u : (f.c = p, f.e = u, f.s = i, p = (f = r(f, d, y, g, o)).c, h = f.r, u = f.e), m = p[c = u + y + 1], l = o / 2, h = h || c < 0 || null != p[c + 1], h = g < 4 ? (null != m || h) && (0 == g || g == (f.s < 0 ? 3 : 2)) : m > l || m == l && (4 == g || h || 6 == g && 1 & p[c - 1] || g == (f.s < 0 ? 8 : 7)), c < 1 || !p[0])\r\n e = h ? N(a.charAt(1), -y, a.charAt(0)) : a.charAt(0);\r\n else {\r\n if (p.length = c, h)\r\n for (--o; ++p[--c] > o;)\r\n p[c] = 0, c || (++u, p = [1].concat(p));\r\n for (l = p.length; !p[--l];)\r\n ;\r\n for (m = 0, e = \"\"; m <= l; e += a.charAt(p[m++]))\r\n ;\r\n e = N(e, u, a.charAt(0));\r\n } return e; }; }(), r = function () { function t(t, e, r) { var n, o, i, s, a = 0, c = t.length, u = e % m, l = e / m | 0; for (t = t.slice(); c--;)\r\n a = ((o = u * (i = t[c] % m) + (n = l * i + (s = t[c] / m | 0) * u) % m * m + a) / r | 0) + (n / m | 0) + l * s, t[c] = o % r; return a && (t = [a].concat(t)), t; } function e(t, e, r, n) { var o, i; if (r != n)\r\n i = r > n ? 1 : -1;\r\n else\r\n for (o = i = 0; o < r; o++)\r\n if (t[o] != e[o]) {\r\n i = t[o] > e[o] ? 1 : -1;\r\n break;\r\n } return i; } function r(t, e, r, n) { for (var o = 0; r--;)\r\n t[r] -= o, o = t[r] < e[r] ? 1 : 0, t[r] = o * n + t[r] - e[r]; for (; !t[0] && t.length > 1; t.splice(0, 1))\r\n ; } return function (n, o, i, s, a) { var u, l, p, d, m, y, _, v, w, b, B, F, N, k, x, S, A, O = n.s == o.s ? 1 : -1, T = n.c, P = o.c; if (!(T && T[0] && P && P[0]))\r\n return new W(n.s && o.s && (T ? !P || T[0] != P[0] : P) ? T && 0 == T[0] || !P ? 0 * O : O / 0 : NaN); for (w = (v = new W(O)).c = [], O = i + (l = n.e - o.e) + 1, a || (a = h, l = g(n.e / f) - g(o.e / f), O = O / f | 0), p = 0; P[p] == (T[p] || 0); p++)\r\n ; if (P[p] > (T[p] || 0) && l--, O < 0)\r\n w.push(1), d = !0;\r\n else {\r\n for (k = T.length, S = P.length, p = 0, O += 2, (m = c(a / (P[0] + 1))) > 1 && (P = t(P, m, a), T = t(T, m, a), S = P.length, k = T.length), N = S, B = (b = T.slice(0, S)).length; B < S; b[B++] = 0)\r\n ;\r\n A = P.slice(), A = [0].concat(A), x = P[0], P[1] >= a / 2 && x++;\r\n do {\r\n if (m = 0, (u = e(P, b, S, B)) < 0) {\r\n if (F = b[0], S != B && (F = F * a + (b[1] || 0)), (m = c(F / x)) > 1)\r\n for (m >= a && (m = a - 1), _ = (y = t(P, m, a)).length, B = b.length; 1 == e(y, b, _, B);)\r\n m--, r(y, S < _ ? A : P, _, a), _ = y.length, u = 1;\r\n else\r\n 0 == m && (u = m = 1), _ = (y = P.slice()).length;\r\n if (_ < B && (y = [0].concat(y)), r(b, y, B, a), B = b.length, -1 == u)\r\n for (; e(P, b, S, B) < 1;)\r\n m++, r(b, S < B ? A : P, B, a), B = b.length;\r\n }\r\n else\r\n 0 === u && (m++, b = [0]);\r\n w[p++] = m, b[0] ? b[B++] = T[N] || 0 : (b = [T[N]], B = 1);\r\n } while ((N++ < k || null != b[0]) && O--);\r\n d = null != b[0], w[0] || w.splice(0, 1);\r\n } if (a == h) {\r\n for (p = 1, O = w[0]; O >= 10; O /= 10, p++)\r\n ;\r\n V(v, i + (v.e = p + l * f - 1) + 1, s, d);\r\n }\r\n else\r\n v.e = l, v.r = +d; return v; }; }(), k = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i, x = /^([^.]+)\\.$/, S = /^\\.([^.]+)$/, A = /^-?(Infinity|NaN)$/, O = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g, o = function (t, e, r, n) { var o, i = r ? e : e.replace(O, \"\"); if (A.test(i))\r\n t.s = isNaN(i) ? null : i < 0 ? -1 : 1, t.c = t.e = null;\r\n else {\r\n if (!r && (i = i.replace(k, function (t, e, r) { return o = \"x\" == (r = r.toLowerCase()) ? 16 : \"b\" == r ? 2 : 8, n && n != o ? t : e; }), n && (o = n, i = i.replace(x, \"$1\").replace(S, \"0.$1\")), e != i))\r\n return new W(i, o);\r\n if (W.DEBUG)\r\n throw Error(u + \"Not a\" + (n ? \" base \" + n : \"\") + \" number: \" + e);\r\n t.c = t.e = t.s = null;\r\n } }, T.absoluteValue = T.abs = function () { var t = new W(this); return t.s < 0 && (t.s = 1), t; }, T.comparedTo = function (t, e) { return v(this, new W(t, e)); }, T.decimalPlaces = T.dp = function (t, e) { var r, n, o, i = this; if (null != t)\r\n return w(t, 0, y), null == e ? e = C : w(e, 0, 8), V(new W(i), t + i.e + 1, e); if (!(r = i.c))\r\n return null; if (n = ((o = r.length - 1) - g(this.e / f)) * f, o = r[o])\r\n for (; o % 10 == 0; o /= 10, n--)\r\n ; return n < 0 && (n = 0), n; }, T.dividedBy = T.div = function (t, e) { return r(this, new W(t, e), M, C); }, T.dividedToIntegerBy = T.idiv = function (t, e) { return r(this, new W(t, e), 0, 1); }, T.exponentiatedBy = T.pow = function (t, e) { var r, n, o, i, s, l, h, p = this; if ((t = new W(t)).c && !t.isInteger())\r\n throw Error(u + \"Exponent not an integer: \" + t); if (null != e && (e = new W(e)), i = t.e > 14, !p.c || !p.c[0] || 1 == p.c[0] && !p.e && 1 == p.c.length || !t.c || !t.c[0])\r\n return h = new W(Math.pow(+p.valueOf(), i ? 2 - B(t) : +t)), e ? h.mod(e) : h; if (s = t.s < 0, e) {\r\n if (e.c ? !e.c[0] : !e.s)\r\n return new W(NaN);\r\n (n = !s && p.isInteger() && e.isInteger()) && (p = p.mod(e));\r\n }\r\n else {\r\n if (t.e > 9 && (p.e > 0 || p.e < -1 || (0 == p.e ? p.c[0] > 1 || i && p.c[1] >= 24e7 : p.c[0] < 8e13 || i && p.c[0] <= 9999975e7)))\r\n return o = p.s < 0 && B(t) ? -0 : 0, p.e > -1 && (o = 1 / o), new W(s ? 1 / o : o);\r\n U && (o = a(U / f + 2));\r\n } for (i ? (r = new W(.5), l = B(t)) : l = t % 2, s && (t.s = 1), h = new W(P);;) {\r\n if (l) {\r\n if (!(h = h.times(p)).c)\r\n break;\r\n o ? h.c.length > o && (h.c.length = o) : n && (h = h.mod(e));\r\n }\r\n if (i) {\r\n if (V(t = t.times(r), t.e + 1, 1), !t.c[0])\r\n break;\r\n i = t.e > 14, l = B(t);\r\n }\r\n else {\r\n if (!(t = c(t / 2)))\r\n break;\r\n l = t % 2;\r\n }\r\n p = p.times(p), o ? p.c && p.c.length > o && (p.c.length = o) : n && (p = p.mod(e));\r\n } return n ? h : (s && (h = P.div(h)), e ? h.mod(e) : o ? V(h, U, C, void 0) : h); }, T.integerValue = function (t) { var e = new W(this); return null == t ? t = C : w(t, 0, 8), V(e, e.e + 1, t); }, T.isEqualTo = T.eq = function (t, e) { return 0 === v(this, new W(t, e)); }, T.isFinite = function () { return !!this.c; }, T.isGreaterThan = T.gt = function (t, e) { return v(this, new W(t, e)) > 0; }, T.isGreaterThanOrEqualTo = T.gte = function (t, e) { return 1 === (e = v(this, new W(t, e))) || 0 === e; }, T.isInteger = function () { return !!this.c && g(this.e / f) > this.c.length - 2; }, T.isLessThan = T.lt = function (t, e) { return v(this, new W(t, e)) < 0; }, T.isLessThanOrEqualTo = T.lte = function (t, e) { return -1 === (e = v(this, new W(t, e))) || 0 === e; }, T.isNaN = function () { return !this.s; }, T.isNegative = function () { return this.s < 0; }, T.isPositive = function () { return this.s > 0; }, T.isZero = function () { return !!this.c && 0 == this.c[0]; }, T.minus = function (t, e) { var r, n, o, i, s = this, a = s.s; if (e = (t = new W(t, e)).s, !a || !e)\r\n return new W(NaN); if (a != e)\r\n return t.s = -e, s.plus(t); var c = s.e / f, u = t.e / f, l = s.c, p = t.c; if (!c || !u) {\r\n if (!l || !p)\r\n return l ? (t.s = -e, t) : new W(p ? s : NaN);\r\n if (!l[0] || !p[0])\r\n return p[0] ? (t.s = -e, t) : new W(l[0] ? s : 3 == C ? -0 : 0);\r\n } if (c = g(c), u = g(u), l = l.slice(), a = c - u) {\r\n for ((i = a < 0) ? (a = -a, o = l) : (u = c, o = p), o.reverse(), e = a; e--; o.push(0))\r\n ;\r\n o.reverse();\r\n }\r\n else\r\n for (n = (i = (a = l.length) < (e = p.length)) ? a : e, a = e = 0; e < n; e++)\r\n if (l[e] != p[e]) {\r\n i = l[e] < p[e];\r\n break;\r\n } if (i && (o = l, l = p, p = o, t.s = -t.s), (e = (n = p.length) - (r = l.length)) > 0)\r\n for (; e--; l[r++] = 0)\r\n ; for (e = h - 1; n > a;) {\r\n if (l[--n] < p[n]) {\r\n for (r = n; r && !l[--r]; l[r] = e)\r\n ;\r\n --l[r], l[n] += h;\r\n }\r\n l[n] -= p[n];\r\n } for (; 0 == l[0]; l.splice(0, 1), --u)\r\n ; return l[0] ? G(t, l, u) : (t.s = 3 == C ? -1 : 1, t.c = [t.e = 0], t); }, T.modulo = T.mod = function (t, e) { var n, o, i = this; return t = new W(t, e), !i.c || !t.s || t.c && !t.c[0] ? new W(NaN) : !t.c || i.c && !i.c[0] ? new W(i) : (9 == j ? (o = t.s, t.s = 1, n = r(i, t, 0, 3), t.s = o, n.s *= o) : n = r(i, t, 0, j), (t = i.minus(n.times(t))).c[0] || 1 != j || (t.s = i.s), t); }, T.multipliedBy = T.times = function (t, e) { var r, n, o, i, s, a, c, u, l, p, d, y, _, v, w, b = this, B = b.c, F = (t = new W(t, e)).c; if (!(B && F && B[0] && F[0]))\r\n return !b.s || !t.s || B && !B[0] && !F || F && !F[0] && !B ? t.c = t.e = t.s = null : (t.s *= b.s, B && F ? (t.c = [0], t.e = 0) : t.c = t.e = null), t; for (n = g(b.e / f) + g(t.e / f), t.s *= b.s, (c = B.length) < (p = F.length) && (_ = B, B = F, F = _, o = c, c = p, p = o), o = c + p, _ = []; o--; _.push(0))\r\n ; for (v = h, w = m, o = p; --o >= 0;) {\r\n for (r = 0, d = F[o] % w, y = F[o] / w | 0, i = o + (s = c); i > o;)\r\n r = ((u = d * (u = B[--s] % w) + (a = y * u + (l = B[s] / w | 0) * d) % w * w + _[i] + r) / v | 0) + (a / w | 0) + y * l, _[i--] = u % v;\r\n _[i] = r;\r\n } return r ? ++n : _.splice(0, 1), G(t, _, n); }, T.negated = function () { var t = new W(this); return t.s = -t.s || null, t; }, T.plus = function (t, e) { var r, n = this, o = n.s; if (e = (t = new W(t, e)).s, !o || !e)\r\n return new W(NaN); if (o != e)\r\n return t.s = -e, n.minus(t); var i = n.e / f, s = t.e / f, a = n.c, c = t.c; if (!i || !s) {\r\n if (!a || !c)\r\n return new W(o / 0);\r\n if (!a[0] || !c[0])\r\n return c[0] ? t : new W(a[0] ? n : 0 * o);\r\n } if (i = g(i), s = g(s), a = a.slice(), o = i - s) {\r\n for (o > 0 ? (s = i, r = c) : (o = -o, r = a), r.reverse(); o--; r.push(0))\r\n ;\r\n r.reverse();\r\n } for ((o = a.length) - (e = c.length) < 0 && (r = c, c = a, a = r, e = o), o = 0; e;)\r\n o = (a[--e] = a[e] + c[e] + o) / h | 0, a[e] = h === a[e] ? 0 : a[e] % h; return o && (a = [o].concat(a), ++s), G(t, a, s); }, T.precision = T.sd = function (t, e) { var r, n, o, i = this; if (null != t && t !== !!t)\r\n return w(t, 1, y), null == e ? e = C : w(e, 0, 8), V(new W(i), t, e); if (!(r = i.c))\r\n return null; if (n = (o = r.length - 1) * f + 1, o = r[o]) {\r\n for (; o % 10 == 0; o /= 10, n--)\r\n ;\r\n for (o = r[0]; o >= 10; o /= 10, n++)\r\n ;\r\n } return t && i.e + 1 > n && (n = i.e + 1), n; }, T.shiftedBy = function (t) { return w(t, -p, p), this.times(\"1e\" + t); }, T.squareRoot = T.sqrt = function () { var t, e, n, o, i, s = this, a = s.c, c = s.s, u = s.e, l = M + 4, h = new W(\"0.5\"); if (1 !== c || !a || !a[0])\r\n return new W(!c || c < 0 && (!a || a[0]) ? NaN : a ? s : 1 / 0); if (0 == (c = Math.sqrt(+s)) || c == 1 / 0 ? (((e = _(a)).length + u) % 2 == 0 && (e += \"0\"), c = Math.sqrt(e), u = g((u + 1) / 2) - (u < 0 || u % 2), n = new W(e = c == 1 / 0 ? \"1e\" + u : (e = c.toExponential()).slice(0, e.indexOf(\"e\") + 1) + u)) : n = new W(c + \"\"), n.c[0])\r\n for ((c = (u = n.e) + l) < 3 && (c = 0);;)\r\n if (i = n, n = h.times(i.plus(r(s, i, l, 1))), _(i.c).slice(0, c) === (e = _(n.c)).slice(0, c)) {\r\n if (n.e < u && --c, \"9999\" != (e = e.slice(c - 3, c + 1)) && (o || \"4999\" != e)) {\r\n +e && (+e.slice(1) || \"5\" != e.charAt(0)) || (V(n, n.e + M + 2, 1), t = !n.times(n).eq(s));\r\n break;\r\n }\r\n if (!o && (V(i, i.e + M + 2, 0), i.times(i).eq(s))) {\r\n n = i;\r\n break;\r\n }\r\n l += 4, c += 4, o = 1;\r\n } return V(n, n.e + M + 1, C, t); }, T.toExponential = function (t, e) { return null != t && (w(t, 0, y), t++), q(this, t, e, 1); }, T.toFixed = function (t, e) { return null != t && (w(t, 0, y), t = t + this.e + 1), q(this, t, e); }, T.toFormat = function (t, e) { var r = this.toFixed(t, e); if (this.c) {\r\n var n, o = r.split(\".\"), i = +L.groupSize, s = +L.secondaryGroupSize, a = L.groupSeparator, c = o[0], u = o[1], l = this.s < 0, h = l ? c.slice(1) : c, f = h.length;\r\n if (s && (n = i, i = s, s = n, f -= n), i > 0 && f > 0) {\r\n for (n = f % i || i, c = h.substr(0, n); n < f; n += i)\r\n c += a + h.substr(n, i);\r\n s > 0 && (c += a + h.slice(n)), l && (c = \"-\" + c);\r\n }\r\n r = u ? c + L.decimalSeparator + ((s = +L.fractionGroupSize) ? u.replace(new RegExp(\"\\\\d{\" + s + \"}\\\\B\", \"g\"), \"$&\" + L.fractionGroupSeparator) : u) : c;\r\n } return r; }, T.toFraction = function (t) { var e, n, o, i, s, a, c, l, h, p, m, y, g = this, v = g.c; if (null != t && (!(l = new W(t)).isInteger() && (l.c || 1 !== l.s) || l.lt(P)))\r\n throw Error(u + \"Argument \" + (l.isInteger() ? \"out of range: \" : \"not an integer: \") + t); if (!v)\r\n return g.toString(); for (n = new W(P), p = o = new W(P), i = h = new W(P), y = _(v), a = n.e = y.length - g.e - 1, n.c[0] = d[(c = a % f) < 0 ? f + c : c], t = !t || l.comparedTo(n) > 0 ? a > 0 ? n : p : l, c = I, I = 1 / 0, l = new W(y), h.c[0] = 0; m = r(l, n, 0, 1), 1 != (s = o.plus(m.times(i))).comparedTo(t);)\r\n o = i, i = s, p = h.plus(m.times(s = p)), h = s, n = l.minus(m.times(s = n)), l = s; return s = r(t.minus(o), i, 0, 1), h = h.plus(s.times(p)), o = o.plus(s.times(i)), h.s = p.s = g.s, e = r(p, i, a *= 2, C).minus(g).abs().comparedTo(r(h, o, a, C).minus(g).abs()) < 1 ? [p.toString(), i.toString()] : [h.toString(), o.toString()], I = c, e; }, T.toNumber = function () { return +this; }, T.toPrecision = function (t, e) { return null != t && w(t, 1, y), q(this, t, e, 2); }, T.toString = function (t) { var e, r = this, o = r.s, i = r.e; return null === i ? o ? (e = \"Infinity\", o < 0 && (e = \"-\" + e)) : e = \"NaN\" : (e = _(r.c), null == t ? e = i <= E || i >= D ? F(e, i) : N(e, i, \"0\") : (w(t, 2, z.length, \"Base\"), e = n(N(e, i, \"0\"), 10, t, o, !0)), o < 0 && r.c[0] && (e = \"-\" + e)), e; }, T.valueOf = T.toJSON = function () { var t, e = this, r = e.e; return null === r ? e.toString() : (t = _(e.c), t = r <= E || r >= D ? F(t, r) : N(t, r, \"0\"), e.s < 0 ? \"-\" + t : t); }, T._isBigNumber = !0, null != e && W.set(e), W; }()).default = i.BigNumber = i, void 0 === (n = function () { return i; }.call(e, r, e, t)) || (t.exports = n);\r\n }(); }, function (t, e, r) { var n; t.exports = (n = r(0), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = [], c = []; !function () { function e(e) { for (var r = t.sqrt(e), n = 2; n <= r; n++)\r\n if (!(e % n))\r\n return !1; return !0; } function r(t) { return 4294967296 * (t - (0 | t)) | 0; } for (var n = 2, o = 0; o < 64;)\r\n e(n) && (o < 8 && (a[o] = r(t.pow(n, .5))), c[o] = r(t.pow(n, 1 / 3)), o++), n++; }(); var u = [], l = s.SHA256 = i.extend({ _doReset: function () { this._hash = new o.init(a.slice(0)); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], l = r[5], h = r[6], f = r[7], p = 0; p < 64; p++) {\r\n if (p < 16)\r\n u[p] = 0 | t[e + p];\r\n else {\r\n var d = u[p - 15], m = (d << 25 | d >>> 7) ^ (d << 14 | d >>> 18) ^ d >>> 3, y = u[p - 2], g = (y << 15 | y >>> 17) ^ (y << 13 | y >>> 19) ^ y >>> 10;\r\n u[p] = m + u[p - 7] + g + u[p - 16];\r\n }\r\n var _ = n & o ^ n & i ^ o & i, v = (n << 30 | n >>> 2) ^ (n << 19 | n >>> 13) ^ (n << 10 | n >>> 22), w = f + ((a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25)) + (a & l ^ ~a & h) + c[p] + u[p];\r\n f = h, h = l, l = a, a = s + w | 0, s = i, i = o, o = n, n = w + (v + _) | 0;\r\n } r[0] = r[0] + n | 0, r[1] = r[1] + o | 0, r[2] = r[2] + i | 0, r[3] = r[3] + s | 0, r[4] = r[4] + a | 0, r[5] = r[5] + l | 0, r[6] = r[6] + h | 0, r[7] = r[7] + f | 0; }, _doFinalize: function () { var e = this._data, r = e.words, n = 8 * this._nDataBytes, o = 8 * e.sigBytes; return r[o >>> 5] |= 128 << 24 - o % 32, r[14 + (o + 64 >>> 9 << 4)] = t.floor(n / 4294967296), r[15 + (o + 64 >>> 9 << 4)] = n, e.sigBytes = 4 * r.length, this._process(), this._hash; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); e.SHA256 = i._createHelper(l), e.HmacSHA256 = i._createHmacHelper(l); }(Math), n.SHA256); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), function () { var t = n, e = t.lib.Hasher, r = t.x64, o = r.Word, i = r.WordArray, s = t.algo; function a() { return o.create.apply(o, arguments); } var c = [a(1116352408, 3609767458), a(1899447441, 602891725), a(3049323471, 3964484399), a(3921009573, 2173295548), a(961987163, 4081628472), a(1508970993, 3053834265), a(2453635748, 2937671579), a(2870763221, 3664609560), a(3624381080, 2734883394), a(310598401, 1164996542), a(607225278, 1323610764), a(1426881987, 3590304994), a(1925078388, 4068182383), a(2162078206, 991336113), a(2614888103, 633803317), a(3248222580, 3479774868), a(3835390401, 2666613458), a(4022224774, 944711139), a(264347078, 2341262773), a(604807628, 2007800933), a(770255983, 1495990901), a(1249150122, 1856431235), a(1555081692, 3175218132), a(1996064986, 2198950837), a(2554220882, 3999719339), a(2821834349, 766784016), a(2952996808, 2566594879), a(3210313671, 3203337956), a(3336571891, 1034457026), a(3584528711, 2466948901), a(113926993, 3758326383), a(338241895, 168717936), a(666307205, 1188179964), a(773529912, 1546045734), a(1294757372, 1522805485), a(1396182291, 2643833823), a(1695183700, 2343527390), a(1986661051, 1014477480), a(2177026350, 1206759142), a(2456956037, 344077627), a(2730485921, 1290863460), a(2820302411, 3158454273), a(3259730800, 3505952657), a(3345764771, 106217008), a(3516065817, 3606008344), a(3600352804, 1432725776), a(4094571909, 1467031594), a(275423344, 851169720), a(430227734, 3100823752), a(506948616, 1363258195), a(659060556, 3750685593), a(883997877, 3785050280), a(958139571, 3318307427), a(1322822218, 3812723403), a(1537002063, 2003034995), a(1747873779, 3602036899), a(1955562222, 1575990012), a(2024104815, 1125592928), a(2227730452, 2716904306), a(2361852424, 442776044), a(2428436474, 593698344), a(2756734187, 3733110249), a(3204031479, 2999351573), a(3329325298, 3815920427), a(3391569614, 3928383900), a(3515267271, 566280711), a(3940187606, 3454069534), a(4118630271, 4000239992), a(116418474, 1914138554), a(174292421, 2731055270), a(289380356, 3203993006), a(460393269, 320620315), a(685471733, 587496836), a(852142971, 1086792851), a(1017036298, 365543100), a(1126000580, 2618297676), a(1288033470, 3409855158), a(1501505948, 4234509866), a(1607167915, 987167468), a(1816402316, 1246189591)], u = []; !function () { for (var t = 0; t < 80; t++)\r\n u[t] = a(); }(); var l = s.SHA512 = e.extend({ _doReset: function () { this._hash = new i.init([new o.init(1779033703, 4089235720), new o.init(3144134277, 2227873595), new o.init(1013904242, 4271175723), new o.init(2773480762, 1595750129), new o.init(1359893119, 2917565137), new o.init(2600822924, 725511199), new o.init(528734635, 4215389547), new o.init(1541459225, 327033209)]); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], l = r[5], h = r[6], f = r[7], p = n.high, d = n.low, m = o.high, y = o.low, g = i.high, _ = i.low, v = s.high, w = s.low, b = a.high, B = a.low, F = l.high, N = l.low, k = h.high, x = h.low, S = f.high, A = f.low, O = p, T = d, P = m, M = y, C = g, E = _, D = v, R = w, I = b, H = B, j = F, U = N, L = k, z = x, W = S, q = A, $ = 0; $ < 80; $++) {\r\n var G = u[$];\r\n if ($ < 16)\r\n var V = G.high = 0 | t[e + 2 * $], J = G.low = 0 | t[e + 2 * $ + 1];\r\n else {\r\n var K = u[$ - 15], X = K.high, Z = K.low, Y = (X >>> 1 | Z << 31) ^ (X >>> 8 | Z << 24) ^ X >>> 7, Q = (Z >>> 1 | X << 31) ^ (Z >>> 8 | X << 24) ^ (Z >>> 7 | X << 25), tt = u[$ - 2], et = tt.high, rt = tt.low, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ et >>> 6, ot = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ (rt >>> 6 | et << 26), it = u[$ - 7], st = it.high, at = it.low, ct = u[$ - 16], ut = ct.high, lt = ct.low;\r\n V = (V = (V = Y + st + ((J = Q + at) >>> 0 < Q >>> 0 ? 1 : 0)) + nt + ((J += ot) >>> 0 < ot >>> 0 ? 1 : 0)) + ut + ((J += lt) >>> 0 < lt >>> 0 ? 1 : 0), G.high = V, G.low = J;\r\n }\r\n var ht, ft = I & j ^ ~I & L, pt = H & U ^ ~H & z, dt = O & P ^ O & C ^ P & C, mt = T & M ^ T & E ^ M & E, yt = (O >>> 28 | T << 4) ^ (O << 30 | T >>> 2) ^ (O << 25 | T >>> 7), gt = (T >>> 28 | O << 4) ^ (T << 30 | O >>> 2) ^ (T << 25 | O >>> 7), _t = (I >>> 14 | H << 18) ^ (I >>> 18 | H << 14) ^ (I << 23 | H >>> 9), vt = (H >>> 14 | I << 18) ^ (H >>> 18 | I << 14) ^ (H << 23 | I >>> 9), wt = c[$], bt = wt.high, Bt = wt.low, Ft = W + _t + ((ht = q + vt) >>> 0 < q >>> 0 ? 1 : 0), Nt = gt + mt;\r\n W = L, q = z, L = j, z = U, j = I, U = H, I = D + (Ft = (Ft = (Ft = Ft + ft + ((ht += pt) >>> 0 < pt >>> 0 ? 1 : 0)) + bt + ((ht += Bt) >>> 0 < Bt >>> 0 ? 1 : 0)) + V + ((ht += J) >>> 0 < J >>> 0 ? 1 : 0)) + ((H = R + ht | 0) >>> 0 < R >>> 0 ? 1 : 0) | 0, D = C, R = E, C = P, E = M, P = O, M = T, O = Ft + (yt + dt + (Nt >>> 0 < gt >>> 0 ? 1 : 0)) + ((T = ht + Nt | 0) >>> 0 < ht >>> 0 ? 1 : 0) | 0;\r\n } d = n.low = d + T, n.high = p + O + (d >>> 0 < T >>> 0 ? 1 : 0), y = o.low = y + M, o.high = m + P + (y >>> 0 < M >>> 0 ? 1 : 0), _ = i.low = _ + E, i.high = g + C + (_ >>> 0 < E >>> 0 ? 1 : 0), w = s.low = w + R, s.high = v + D + (w >>> 0 < R >>> 0 ? 1 : 0), B = a.low = B + H, a.high = b + I + (B >>> 0 < H >>> 0 ? 1 : 0), N = l.low = N + U, l.high = F + j + (N >>> 0 < U >>> 0 ? 1 : 0), x = h.low = x + z, h.high = k + L + (x >>> 0 < z >>> 0 ? 1 : 0), A = f.low = A + q, f.high = S + W + (A >>> 0 < q >>> 0 ? 1 : 0); }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[30 + (n + 128 >>> 10 << 5)] = Math.floor(r / 4294967296), e[31 + (n + 128 >>> 10 << 5)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash.toX32(); }, clone: function () { var t = e.clone.call(this); return t._hash = this._hash.clone(), t; }, blockSize: 32 }); t.SHA512 = e._createHelper(l), t.HmacSHA512 = e._createHmacHelper(l); }(), n.SHA512); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.x64.Word, a = e.algo, c = [], u = [], l = []; !function () { for (var t = 1, e = 0, r = 0; r < 24; r++) {\r\n c[t + 5 * e] = (r + 1) * (r + 2) / 2 % 64;\r\n var n = (2 * t + 3 * e) % 5;\r\n t = e % 5, e = n;\r\n } for (t = 0; t < 5; t++)\r\n for (e = 0; e < 5; e++)\r\n u[t + 5 * e] = e + (2 * t + 3 * e) % 5 * 5; for (var o = 1, i = 0; i < 24; i++) {\r\n for (var a = 0, h = 0, f = 0; f < 7; f++) {\r\n if (1 & o) {\r\n var p = (1 << f) - 1;\r\n p < 32 ? h ^= 1 << p : a ^= 1 << p - 32;\r\n }\r\n 128 & o ? o = o << 1 ^ 113 : o <<= 1;\r\n }\r\n l[i] = s.create(a, h);\r\n } }(); var h = []; !function () { for (var t = 0; t < 25; t++)\r\n h[t] = s.create(); }(); var f = a.SHA3 = i.extend({ cfg: i.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], e = 0; e < 25; e++)\r\n t[e] = new s.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; }, _doProcessBlock: function (t, e) { for (var r = this._state, n = this.blockSize / 2, o = 0; o < n; o++) {\r\n var i = t[e + 2 * o], s = t[e + 2 * o + 1];\r\n i = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), (A = r[o]).high ^= s, A.low ^= i;\r\n } for (var a = 0; a < 24; a++) {\r\n for (var f = 0; f < 5; f++) {\r\n for (var p = 0, d = 0, m = 0; m < 5; m++)\r\n p ^= (A = r[f + 5 * m]).high, d ^= A.low;\r\n var y = h[f];\r\n y.high = p, y.low = d;\r\n }\r\n for (f = 0; f < 5; f++) {\r\n var g = h[(f + 4) % 5], _ = h[(f + 1) % 5], v = _.high, w = _.low;\r\n for (p = g.high ^ (v << 1 | w >>> 31), d = g.low ^ (w << 1 | v >>> 31), m = 0; m < 5; m++)\r\n (A = r[f + 5 * m]).high ^= p, A.low ^= d;\r\n }\r\n for (var b = 1; b < 25; b++) {\r\n var B = (A = r[b]).high, F = A.low, N = c[b];\r\n N < 32 ? (p = B << N | F >>> 32 - N, d = F << N | B >>> 32 - N) : (p = F << N - 32 | B >>> 64 - N, d = B << N - 32 | F >>> 64 - N);\r\n var k = h[u[b]];\r\n k.high = p, k.low = d;\r\n }\r\n var x = h[0], S = r[0];\r\n for (x.high = S.high, x.low = S.low, f = 0; f < 5; f++)\r\n for (m = 0; m < 5; m++) {\r\n var A = r[b = f + 5 * m], O = h[b], T = h[(f + 1) % 5 + 5 * m], P = h[(f + 2) % 5 + 5 * m];\r\n A.high = O.high ^ ~T.high & P.high, A.low = O.low ^ ~T.low & P.low;\r\n }\r\n A = r[0];\r\n var M = l[a];\r\n A.high ^= M.high, A.low ^= M.low;\r\n } }, _doFinalize: function () { var e = this._data, r = e.words, n = (this._nDataBytes, 8 * e.sigBytes), i = 32 * this.blockSize; r[n >>> 5] |= 1 << 24 - n % 32, r[(t.ceil((n + 1) / i) * i >>> 5) - 1] |= 128, e.sigBytes = 4 * r.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, u = [], l = 0; l < c; l++) {\r\n var h = s[l], f = h.high, p = h.low;\r\n f = 16711935 & (f << 8 | f >>> 24) | 4278255360 & (f << 24 | f >>> 8), p = 16711935 & (p << 8 | p >>> 24) | 4278255360 & (p << 24 | p >>> 8), u.push(p), u.push(f);\r\n } return new o.init(u, a); }, clone: function () { for (var t = i.clone.call(this), e = t._state = this._state.slice(0), r = 0; r < 25; r++)\r\n e[r] = e[r].clone(); return t; } }); e.SHA3 = i._createHelper(f), e.HmacSHA3 = i._createHmacHelper(f); }(Math), n.SHA3); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(8), o = r(3), i = r(22), s = r(23);\r\n !function (t) { t.eth_getBalance = new i.Method({ callName: \"eth_getBalance\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: n.outputBigNumberFormatter }), t.eth_getStorageAt = new i.Method({ callName: \"eth_getStorageAt\", params: 3, inputFormatter: [n.inputAddressFormatter, o.toHex, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_getCode = new i.Method({ callName: \"eth_getCode\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_getBlockByHash = new i.Method({ callName: \"eth_getBlockByHash\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, function (t) { return !!t; }], outputFormatter: n.outputBlockFormatter }), t.eth_getBlockByNumber = new i.Method({ callName: \"eth_getBlockByNumber\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, function (t) { return !!t; }], outputFormatter: n.outputBlockFormatter }), t.eth_getUncleByBlockHashAndIndex = new i.Method({ callName: \"eth_getUncleByBlockHashAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputBlockFormatter }), t.eth_getUncleByBlockNumberAndIndex = new i.Method({ callName: \"eth_getUncleByBlockNumberAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputBlockFormatter }), t.eth_getBlockTransactionCountByHash = new i.Method({ callName: \"eth_getBlockTransactionCountByHash\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getBlockTransactionCountByNumber = new i.Method({ callName: \"eth_getBlockTransactionCountByNumber\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getUncleCountByBlockHash = new i.Method({ callName: \"eth_getUncleCountByBlockHash\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getUncleCountByBlockNumber = new i.Method({ callName: \"eth_getUncleCountByBlockNumber\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getTransactionByHash = new i.Method({ callName: \"eth_getTransactionByHash\", params: 1, outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionByBlockHashAndIndex = new i.Method({ callName: \"eth_getTransactionByBlockHashAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionByBlockNumberAndIndex = new i.Method({ callName: \"eth_getTransactionByBlockNumberAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionReceipt = new i.Method({ callName: \"eth_getTransactionReceipt\", params: 1, outputFormatter: n.outputTransactionReceiptFormatter }), t.eth_getTransactionCount = new i.Method({ callName: \"eth_getTransactionCount\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_sendRawTransaction = new i.Method({ callName: \"eth_sendRawTransaction\", params: 1, inputFormatter: [null], outputFormatter: o.toData }), t.web3_sha3 = new i.Method({ callName: \"web3_sha3\", params: 1, inputFormatter: [null], outputFormatter: o.toData }), t.eth_sendTransaction = new i.Method({ callName: \"eth_sendTransaction\", params: 1, inputFormatter: [n.inputTransactionFormatter], outputFormatter: o.toData }), t.eth_sign = new i.Method({ callName: \"eth_sign\", params: 2, inputFormatter: [n.inputAddressFormatter, null], outputFormatter: o.toData }), t.eth_call = new i.Method({ callName: \"eth_call\", params: 2, inputFormatter: [n.inputCallFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_estimateGas = new i.Method({ callName: \"eth_estimateGas\", params: 1, inputFormatter: [n.inputCallFormatter], outputFormatter: o.toDecimal }), t.eth_submitWork = new i.Method({ callName: \"eth_submitWork\", params: 3, outputFormatter: o.toBoolean }), t.eth_getWork = new i.Method({ callName: \"eth_getWork\", params: 1, outputFormatter: o.toArray }), t.eth_coinbase = new s.Property({ getter: \"eth_coinbase\", outputFormatter: o.toAddress }), t.eth_mining = new s.Property({ getter: \"eth_mining\", outputFormatter: o.toBoolean }), t.eth_hashrate = new s.Property({ getter: \"eth_hashrate\", outputFormatter: o.toDecimal }), t.eth_syncing = new s.Property({ getter: \"eth_syncing\", outputFormatter: n.outputSyncingFormatter }), t.eth_gasPrice = new s.Property({ getter: \"eth_gasPrice\", outputFormatter: n.outputBigNumberFormatter }), t.eth_accounts = new s.Property({ getter: \"eth_accounts\", outputFormatter: o.toArray }), t.eth_blockNumber = new s.Property({ getter: \"eth_blockNumber\", outputFormatter: o.toDecimal }), t.eth_protocolVersion = new s.Property({ getter: \"eth_protocolVersion\", outputFormatter: o.toDecimal }), t.web3_clientVersion = new s.Property({ getter: \"web3_clientVersion\", outputFormatter: o.toString }), t.net_version = new s.Property({ getter: \"net_version\", outputFormatter: o.toString }), t.shh_version = new i.Method({ callName: \"shh_version\", params: 0, outputFormatter: o.toDecimal }), t.shh_post = new i.Method({ callName: \"shh_post\", params: 1, inputFormatter: [null], outputFormatter: o.toBoolean }), t.personal_newAccount = new i.Method({ callName: \"personal_newAccount\", params: 1, inputFormatter: [null], outputFormatter: o.toAddress }), t.personal_importRawKey = new i.Method({ callName: \"personal_importRawKey\", params: 2, outputFormatter: o.toAddress }), t.personal_sign = new i.Method({ callName: \"personal_sign\", params: 3, inputFormatter: [null, n.inputAddressFormatter, null], outputFormatter: o.toData }), t.personal_ecRecover = new i.Method({ callName: \"personal_ecRecover\", params: 2, outputFormatter: o.toAddress }), t.personal_unlockAccount = new i.Method({ callName: \"personal_unlockAccount\", params: 3, inputFormatter: [n.inputAddressFormatter, null, o.toNullDecimal], outputFormatter: o.toBoolean }), t.personal_sendTransaction = new i.Method({ callName: \"personal_sendTransaction\", params: 2, inputFormatter: [n.inputTransactionFormatter, null], outputFormatter: o.toData }), t.personal_lockAccount = new i.Method({ callName: \"personal_lockAccount\", params: 1, inputFormatter: [n.inputAddressFormatter], outputFormatter: o.toBoolean }), t.personal_listAccounts = new s.Property({ getter: \"personal_listAccounts\", outputFormatter: o.toArray }), t.net_listening = new s.Property({ getter: \"net_listening\", outputFormatter: o.toBoolean }), t.net_peerCount = new s.Property({ getter: \"net_peerCount\", outputFormatter: o.toDecimal }), t.eth_newFilter = new i.Method({ callName: \"eth_newFilter\", params: 1, outputFormatter: o.toHex }), t.eth_getLogs = new i.Method({ callName: \"eth_getLogs\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_newBlockFilter = new i.Method({ callName: \"eth_newBlockFilter\", params: 0, outputFormatter: o.toHex }), t.eth_newPendingTransactionFilter = new i.Method({ callName: \"eth_newPendingTransactionFilter\", params: 0, outputFormatter: o.toHex }), t.eth_uninstallFilter = new i.Method({ callName: \"eth_uninstallFilter\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toBoolean }), t.eth_getFilterLogs = new i.Method({ callName: \"eth_getFilterLogs\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_getFilterChanges = new i.Method({ callName: \"eth_getFilterChanges\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_submitHashrate = new i.Method({ callName: \"eth_submitHashrate\", params: 2, outputFormatter: o.toBoolean }), t.shh_newIdentity = new i.Method({ callName: \"shh_newIdentity\", params: 0, outputFormatter: o.toData }), t.shh_hasIdentity = new i.Method({ callName: \"shh_hasIdentity\", params: 1, outputFormatter: o.toBoolean }), t.shh_newGroup = new i.Method({ callName: \"shh_newGroup\", params: 0, outputFormatter: o.toData }), t.shh_addToGroup = new i.Method({ callName: \"shh_addToGroup\", params: 1, outputFormatter: o.toBoolean }), t.shh_newFilter = new i.Method({ callName: \"shh_newFilter\", params: 1, outputFormatter: o.toHex }), t.shh_uninstallFilter = new i.Method({ callName: \"shh_uninstallFilter\", params: 1, outputFormatter: o.toBoolean }), t.shh_getLogs = new i.Method({ callName: \"shh_getLogs\", params: 1, outputFormatter: o.toArray }), t.shh_getFilterMessages = new i.Method({ callName: \"shh_getFilterMessages\", params: 1, outputFormatter: o.toArray }), t.shh_getFilterChanges = new i.Method({ callName: \"shh_getFilterChanges\", params: 1, outputFormatter: o.toArray }), t.shh_getMessages = new i.Method({ callName: \"shh_getMessages\", params: 1, outputFormatter: o.toArray }); }(e.eth || (e.eth = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(13);\r\n e.Method = /** @class */ (function () {\r\n function class_1(t) {\r\n this.callName = t.callName, this.params = t.params || 0, this.inputFormatter = t.inputFormatter || null, this.outputFormatter = t.outputFormatter, this.requestManager = null;\r\n }\r\n class_1.prototype.validateArgs = function (t) { if (t.length !== this.params)\r\n throw n.InvalidNumberOfRPCParams(this.callName, t.length, this.params); };\r\n class_1.prototype.formatInput = function (t) { return this.inputFormatter ? this.inputFormatter.map(function (e, r) { return e ? e(t[r]) : t[r]; }) : t; };\r\n class_1.prototype.formatOutput = function (t) { return null !== t ? this.outputFormatter(t) : null; };\r\n class_1.prototype.toPayload = function (t) { var e = this.formatInput(t); return this.validateArgs(e), { method: this.callName, params: e }; };\r\n class_1.prototype.execute = function (t) {\r\n var e = [];\r\n for (var _a = 1; _a < arguments.length; _a++) {\r\n e[_a - 1] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var r, n; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n r = this.toPayload(e);\r\n if (!t)\r\n throw new Error(\"Missing RequestManager in method#exec\");\r\n return [4 /*yield*/, t.sendAsync(r)];\r\n case 1:\r\n n = _c.sent();\r\n return [2 /*return*/, this.formatOutput(n)];\r\n }\r\n }); });\r\n };\r\n return class_1;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n e.Property = /** @class */ (function () {\r\n function class_2(t) {\r\n this.getter = t.getter, this.outputFormatter = t.outputFormatter;\r\n }\r\n class_2.prototype.formatOutput = function (t) { return this.outputFormatter(t); };\r\n class_2.prototype.execute = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, t.sendAsync({ method: this.getter, params: [] })];\r\n case 1:\r\n e = _a.sent();\r\n return [2 /*return*/, this.formatOutput(e)];\r\n }\r\n }); });\r\n };\r\n return class_2;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(60), o = r(26), i = r(70);\r\n e.Contract = /** @class */ (function () {\r\n function Contract(t, e, r) {\r\n var s;\r\n this.requestManager = t, this.abi = e, this.address = r, this.events = {}, this.transactionHash = null, this.transactionHash = null, this.address = r, this.abi = e, (s = this).abi.filter(function (t) { return \"function\" === t.type; }).map(function (t) { return new n.SolidityFunction(s.requestManager, t, s.address); }).forEach(function (t) { t.attachToContract(s); }), function (t) { var e = t.abi.filter(function (t) { return \"event\" === t.type; }); new i.AllSolidityEvents(t.requestManager, e, t.address).attachToContract(t), e.map(function (e) { return new o.SolidityEvent(t.requestManager, e, t.address); }).forEach(function (e) { e.attachToContract(t); }); }(this);\r\n }\r\n return Contract;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3);\r\n e.SolidityParam = /** @class */ (function () {\r\n function SolidityParam(t, e) {\r\n this.offset = void 0, this.value = t || \"\", this.offset = e;\r\n }\r\n SolidityParam.prototype.isDynamic = function () { return void 0 !== this.offset; };\r\n SolidityParam.prototype.offsetAsBytes = function () { return this.isDynamic() ? n.padLeft(n.toTwosComplement(this.offset).toString(16), 64) : \"\"; };\r\n SolidityParam.prototype.staticPart = function () { return this.isDynamic() ? this.offsetAsBytes() : this.value; };\r\n SolidityParam.prototype.dynamicPart = function () { return this.isDynamic() ? this.value : \"\"; };\r\n SolidityParam.prototype.encode = function () { return this.staticPart() + this.dynamicPart(); };\r\n return SolidityParam;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(15), s = r(27);\r\n e.SolidityEvent = /** @class */ (function () {\r\n function class_3(t, e, r) {\r\n this.requestManager = t, this.address = r, this._anonymous = !1, this._params = e.inputs, this._name = n.transformToFullName(e), this._anonymous = e.anonymous;\r\n }\r\n class_3.prototype.types = function (t) { return this._params.filter(function (e) { return e.indexed === t; }).map(function (t) { return t.type; }); };\r\n class_3.prototype.displayName = function () { return n.extractDisplayName(this._name); };\r\n class_3.prototype.typeName = function () { return n.extractTypeName(this._name) || \"void\"; };\r\n class_3.prototype.signature = function () { return n.sha3(this._name); };\r\n class_3.prototype.encode = function (t, e) {\r\n if (t === void 0) { t = {}; }\r\n if (e === void 0) { e = {}; }\r\n var r = { topics: [], address: this.address };\r\n [\"fromBlock\", \"toBlock\"].filter(function (t) { return void 0 !== e[t]; }).forEach(function (t) { r[t] = o.inputBlockNumberFormatter(e[t]); }), this._anonymous || r.topics.push(\"0x\" + this.signature());\r\n var s = this._params.filter(function (t) { return !0 === t.indexed; }).map(function (e) { var r = t[e.name]; return null == r ? null : n.isArray(r) ? r.map(function (t) { return \"0x\" + i.coder.encodeParam(e.type, t); }) : \"0x\" + i.coder.encodeParam(e.type, r); });\r\n return r.topics = r.topics.concat(s), r;\r\n };\r\n class_3.prototype.decode = function (t) { t.data = t.data || \"\", t.topics = t.topics || []; var e = (this._anonymous ? t.topics : t.topics.slice(1)).map(function (t) { return t.slice(2); }).join(\"\"), r = i.coder.decodeParams(this.types(!0), e), n = t.data.slice(2), s = i.coder.decodeParams(this.types(!1), n), a = o.outputLogFormatter(t); return a.event = this.displayName(), a.address = t.address, a.args = this._params.reduce(function (t, e) { return t[e.name] = e.indexed ? r.shift() : s.shift(), t; }, {}), delete a.data, delete a.topics, a; };\r\n class_3.prototype.execute = function (t, e) {\r\n return __awaiter(this, void 0, void 0, function () { var r, n; return __generator(this, function (_a) {\r\n r = this.encode(t, e), n = this.decode.bind(this);\r\n return [2 /*return*/, new s.EthFilter(this.requestManager, r, n)];\r\n }); });\r\n };\r\n class_3.prototype.attachToContract = function (t) { var e = this.execute.bind(this), r = this.displayName(); t.events[r] || (t.events[r] = e), t.events[r][this.typeName()] = this.execute.bind(this, t); };\r\n return class_3;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(14), s = r(9);\r\n function a(t) { if (null == t)\r\n return null; var e = String(t).toString(); return 0 === e.indexOf(\"0x\") ? e : n.fromUtf8(e); }\r\n var c = /** @class */ (function () {\r\n function c(t) {\r\n this.requestManager = t, this.isStarted = !1, this.isDisposed = !1, this.filterId = s.future(), this.callbacks = [], this.stopSemaphore = s.future();\r\n }\r\n c.prototype.watch = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var _a, _c; return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (this.isDisposed)\r\n throw new Error(\"The filter was disposed\");\r\n _a = t;\r\n if (!_a) return [3 /*break*/, 3];\r\n this.callbacks.push(t);\r\n _c = this.isStarted;\r\n if (_c) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.start()];\r\n case 1:\r\n _c = (_d.sent());\r\n _d.label = 2;\r\n case 2:\r\n _a = (_c);\r\n _d.label = 3;\r\n case 3:\r\n _a;\r\n return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.start = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t_10, t_9; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (this.isDisposed)\r\n throw new Error(\"The filter was disposed\");\r\n if (!!this.isStarted) return [3 /*break*/, 6];\r\n this.isStarted = !0;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.getNewFilter()];\r\n case 2:\r\n t_10 = _a.sent();\r\n if (!t_10)\r\n throw new Error(\"Could not create a filter, response: \" + JSON.stringify(t_10));\r\n this.filterId.resolve(t_10);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n t_9 = _a.sent();\r\n throw t_9;\r\n case 4:\r\n this.stopSemaphore = s.future();\r\n return [4 /*yield*/, this.poll()];\r\n case 5:\r\n _a.sent();\r\n _a.label = 6;\r\n case 6: return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.stop = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t, _a, _c; return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (!this.isStarted)\r\n return [2 /*return*/];\r\n if (this.isDisposed)\r\n return [2 /*return*/];\r\n this.isDisposed = !0;\r\n return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _d.sent();\r\n this.isStarted = !1;\r\n _a = this.stopSemaphore;\r\n if (!_a) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.stopSemaphore];\r\n case 2:\r\n _a = (_d.sent());\r\n _d.label = 3;\r\n case 3:\r\n _a;\r\n _c = !0;\r\n return [4 /*yield*/, this.uninstall()];\r\n case 4:\r\n if (_c !== (_d.sent()))\r\n throw new Error(\"Couldn't stop the eth filter: \" + t);\r\n return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.poll = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var t_11, t;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.isStarted) return [3 /*break*/, 3];\r\n if (!this.callbacks.length) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.getChanges()];\r\n case 1:\r\n t_11 = _a.sent();\r\n this.callbacks.forEach(function (e) { _this.formatter ? t_11.forEach(function (t) { e(_this.formatter(t)); }) : t_11.forEach(function (t) { return e(t); }); });\r\n _a.label = 2;\r\n case 2:\r\n this.stopSemaphore.resolve(1), this.isStarted && (this.stopSemaphore = s.future(), setTimeout((t = (function () { return _this.poll(); }), function () { t().catch(function (t) { return console.error(t); }); }), i.ETH_POLLING_TIMEOUT));\r\n return [3 /*break*/, 4];\r\n case 3:\r\n this.stopSemaphore.resolve(1);\r\n _a.label = 4;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return c;\r\n }());\r\n e.AbstractFilter = c;\r\n e.SHHFilter = /** @class */ (function (_super) {\r\n __extends(class_4, _super);\r\n function class_4(t, e) {\r\n var _this = this;\r\n _this = _super.call(this, t) || this, _this.requestManager = t, _this.options = e, _this.options = _this.options || { topics: [] }, _this.options.topics = _this.options.topics || [], _this.options.topics = _this.options.topics.map(function (t) { return a(t); }), _this.options = { topics: _this.options.topics, to: _this.options.to };\r\n return _this;\r\n }\r\n class_4.prototype.getMessages = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_getMessages(t)];\r\n }\r\n }); });\r\n };\r\n class_4.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.shh_newFilter(this.options)];\r\n }); });\r\n };\r\n class_4.prototype.getChanges = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_getFilterChanges(t)];\r\n }\r\n }); });\r\n };\r\n class_4.prototype.uninstall = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_uninstallFilter(t)];\r\n }\r\n }); });\r\n };\r\n return class_4;\r\n }(c));\r\n var u = /** @class */ (function (_super) {\r\n __extends(u, _super);\r\n function u(t, e, r) {\r\n if (r === void 0) { r = (function (t) { return t; }); }\r\n var _this = this;\r\n _this = _super.call(this, t) || this, _this.requestManager = t, _this.options = e, _this.formatter = r, _this.options = _this.options || {}, _this.options.topics = _this.options.topics || [], _this.options.topics = _this.options.topics.map(function (t) { return a(t); }), _this.options = { topics: _this.options.topics, address: _this.options.address ? _this.options.address : void 0, fromBlock: \"number\" == typeof _this.options.fromBlock || \"string\" == typeof _this.options.fromBlock ? o.inputBlockNumberFormatter(_this.options.fromBlock) : \"latest\", toBlock: \"number\" == typeof _this.options.toBlock || \"string\" == typeof _this.options.toBlock ? o.inputBlockNumberFormatter(_this.options.toBlock) : \"latest\" };\r\n return _this;\r\n }\r\n u.prototype.getLogs = function () {\r\n return __awaiter(this, void 0, void 0, function () { var _a, t; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _a = this.isStarted;\r\n if (_a) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.start()];\r\n case 1:\r\n _a = (_c.sent());\r\n _c.label = 2;\r\n case 2:\r\n _a;\r\n return [4 /*yield*/, this.filterId];\r\n case 3:\r\n t = _c.sent();\r\n return [2 /*return*/, this.requestManager.eth_getFilterLogs(t)];\r\n }\r\n }); });\r\n };\r\n u.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newFilter(this.options)];\r\n }); });\r\n };\r\n u.prototype.getChanges = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.eth_getFilterChanges(t)];\r\n }\r\n }); });\r\n };\r\n u.prototype.uninstall = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.eth_uninstallFilter(t)];\r\n }\r\n }); });\r\n };\r\n return u;\r\n }(c));\r\n e.EthFilter = u;\r\n e.EthPendingTransactionFilter = /** @class */ (function (_super) {\r\n __extends(class_5, _super);\r\n function class_5(t) {\r\n return _super.call(this, t, null, function (t) { return t; }) || this;\r\n }\r\n class_5.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newPendingTransactionFilter()];\r\n }); });\r\n };\r\n return class_5;\r\n }(u));\r\n e.EthBlockFilter = /** @class */ (function (_super) {\r\n __extends(class_6, _super);\r\n function class_6(t) {\r\n return _super.call(this, t, null, function (t) { return t; }) || this;\r\n }\r\n class_6.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newBlockFilter()];\r\n }); });\r\n };\r\n return class_6;\r\n }(u));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(29);\r\n e.HTTPProvider = n.HTTPProvider;\r\n var o = r(30);\r\n e.WebSocketProvider = o.WebSocketProvider, function (t) { for (var r in t)\r\n e.hasOwnProperty(r) || (e[r] = t[r]); }(r(3));\r\n var i = r(55);\r\n e.RequestManager = i.RequestManager;\r\n var s = r(24);\r\n e.Contract = s.Contract;\r\n var a = r(71);\r\n e.ContractFactory = a.ContractFactory;\r\n var c = r(22);\r\n e.Method = c.Method;\r\n var u = r(23);\r\n e.Property = u.Property;\r\n var l = r(21);\r\n e.eth = l.eth;\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(16);\r\n e.HTTPProvider = /** @class */ (function () {\r\n function class_7(t, e) {\r\n if (e === void 0) { e = {}; }\r\n this.host = t, this.options = e, this.debug = !1, this.host = t || \"http://localhost:8545\";\r\n }\r\n class_7.prototype.send = function () { throw new Error(\"Sync requests are deprecated\"); };\r\n class_7.prototype.sendAsync = function (t, e) {\r\n var _this = this;\r\n try {\r\n var r_3 = null;\r\n if (r_3 = t instanceof Array ? t.map(function (t) { return n.toRPC(t); }) : n.toRPC(t), \"undefined\" == typeof fetch)\r\n throw new Error(\"There is no global fetch object. Please install and import isomorphic-fetch\");\r\n var o = { body: JSON.stringify(r_3), method: \"POST\", headers: Object.assign({}, this.options.headers, { \"Content-Type\": \"application/json\" }) };\r\n this.debug && console.log(\"SEND >> \" + o.body), fetch(this.host, o).then(function (t) { return __awaiter(_this, void 0, void 0, function () { var r_4; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!t.ok) return [3 /*break*/, 2];\r\n return [4 /*yield*/, t.json()];\r\n case 1:\r\n r_4 = _a.sent();\r\n this.debug && console.log(\"RECV << \" + JSON.stringify(r_4)), r_4.error ? e(Object.assign(new Error(r_4.error.json || r_4.error), r_4.error)) : e(null, r_4);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(new Error(\"External error. response code: \" + t.status));\r\n _a.label = 3;\r\n case 3: return [2 /*return*/];\r\n }\r\n }); }); }, function (t) { _this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(t); });\r\n }\r\n catch (t) {\r\n this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(t);\r\n }\r\n };\r\n return class_7;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(16), o = r(9);\r\n var i = /** @class */ (function () {\r\n function i(t, e) {\r\n if (e === void 0) { e = {}; }\r\n this.url = t, this.options = e, this.isDisposed = !1, this.responseCallbacks = new Map, this.notificationCallbacks = new Set, this.debug = !1, this.lastChunk = \"\", this.connect();\r\n }\r\n i.prototype.dispose = function () { this.isDisposed = !0; var t = this.connection; this.timeout(new Error(\"Provider disposed.\")), t.then(function (t) { return t.close(); }); };\r\n i.prototype.send = function () { throw new Error(\"Sync requests are deprecated\"); };\r\n i.prototype.sendAsync = function (t, e) {\r\n var _this = this;\r\n var r = [];\r\n var i;\r\n if (t instanceof Array)\r\n i = Promise.all(t.map(function (t) { var e = o.future(); try {\r\n var o_7 = n.toRPC(t);\r\n r.push(o_7), _this.responseCallbacks.set(o_7.id, e);\r\n }\r\n catch (t) {\r\n e.reject(t);\r\n } return e; }));\r\n else {\r\n var e_7 = o.future();\r\n try {\r\n var o_8 = n.toRPC(t);\r\n r.push(o_8), this.responseCallbacks.set(o_8.id, e_7);\r\n }\r\n catch (t) {\r\n e_7.reject(t);\r\n }\r\n i = e_7;\r\n }\r\n i.then(function (t) { return e(null, t); }, function (t) { return e(t); }), this.connection.then(function (t) { r.forEach(function (e) { var r = JSON.stringify(e); _this.debug && console.log(\"SEND >> \" + r), t.send(r); }); }, function (t) { e(t); });\r\n };\r\n i.prototype.parseResponse = function (t) {\r\n var _this = this;\r\n var e = [];\r\n return t.replace(/\\}[\\n\\r]?\\{/g, \"}|--|{\").replace(/\\}\\][\\n\\r]?\\[\\{/g, \"}]|--|[{\").replace(/\\}[\\n\\r]?\\[\\{/g, \"}|--|[{\").replace(/\\}\\][\\n\\r]?\\{/g, \"}]|--|{\").split(\"|--|\").forEach(function (t) { var r = t; _this.lastChunk && (r = _this.lastChunk + r); var n = null; try {\r\n n = JSON.parse(r);\r\n }\r\n catch (t) {\r\n return _this.lastChunk = r, clearTimeout(_this.lastChunkTimeout), void (_this.lastChunkTimeout = setTimeout(function () { _this.timeout(); }, 15e3));\r\n } clearTimeout(_this.lastChunkTimeout), _this.lastChunk = null, n && e.push(n); }), e;\r\n };\r\n i.prototype.processMessage = function (t) { if (\"id\" in t) {\r\n var e_8 = t.id, r_5 = this.responseCallbacks.get(e_8);\r\n if (!r_5)\r\n return void console.error(\"Error: Received a response for an unknown request\", t);\r\n this.responseCallbacks.delete(e_8), \"error\" in t ? r_5.reject(Object.assign(new Error(t.error.message || t.error), t.error)) : \"result\" in t && r_5.resolve(t);\r\n }\r\n else\r\n this.notificationCallbacks.forEach(function (e) { return e(null, t); }); };\r\n i.prototype.timeout = function (t) { this.connection && this.connection.isPending || (this.connection = o.future()); var e = t || new Error(\"Connection timeout\"); this.responseCallbacks.forEach(function (t) { return t.reject(e); }), this.responseCallbacks.clear(), this.isDisposed || this.connect(); };\r\n i.prototype.connect = function () {\r\n var _this = this;\r\n this.connection && !this.connection.isPending && this.connection.then(function (t) { return t.close(); }), this.connection && this.connection.isPending || (this.connection = o.future()), this.lastChunk = \"\";\r\n var t = this.options.WebSocketConstructor || (\"undefined\" != typeof WebSocket ? WebSocket : void 0);\r\n if (!t)\r\n throw new Error(\"Please provide a WebSocketConstructor\");\r\n var e = new t(this.url, this.options.protocol);\r\n e.onopen = (function () { _this.connection.resolve(e); }), e.onerror = (function (t) { _this.timeout(t); }), e.onclose = (function (t) { _this.timeout(new Error(\"Connection closed (\" + (t && t.reason || \"Unknown reason\") + \")\")); }), e.onmessage = (function (t) { var e = \"string\" == typeof t.data ? t.data : \"\"; _this.debug && console.log(\"RECV << \" + t.data), _this.parseResponse(e).forEach(function (t) { t instanceof Array ? t.forEach(function (t) { return _this.processMessage(t); }) : _this.processMessage(t); }); });\r\n };\r\n return i;\r\n }());\r\n e.WebSocketProvider = i, e.default = i;\r\n }, function (t, e, r) { !function (t) { var e, r, n, o = String.fromCharCode; function i(t) { for (var e, r, n = [], o = 0, i = t.length; o < i;)\r\n (e = t.charCodeAt(o++)) >= 55296 && e <= 56319 && o < i ? 56320 == (64512 & (r = t.charCodeAt(o++))) ? n.push(((1023 & e) << 10) + (1023 & r) + 65536) : (n.push(e), o--) : n.push(e); return n; } function s(t) { if (t >= 55296 && t <= 57343)\r\n throw Error(\"Lone surrogate U+\" + t.toString(16).toUpperCase() + \" is not a scalar value\"); } function a(t, e) { return o(t >> e & 63 | 128); } function c(t) { if (0 == (4294967168 & t))\r\n return o(t); var e = \"\"; return 0 == (4294965248 & t) ? e = o(t >> 6 & 31 | 192) : 0 == (4294901760 & t) ? (s(t), e = o(t >> 12 & 15 | 224), e += a(t, 6)) : 0 == (4292870144 & t) && (e = o(t >> 18 & 7 | 240), e += a(t, 12), e += a(t, 6)), e += o(63 & t | 128); } function u() { if (n >= r)\r\n throw Error(\"Invalid byte index\"); var t = 255 & e[n]; if (n++, 128 == (192 & t))\r\n return 63 & t; throw Error(\"Invalid continuation byte\"); } function l() { var t, o; if (n > r)\r\n throw Error(\"Invalid byte index\"); if (n == r)\r\n return !1; if (t = 255 & e[n], n++, 0 == (128 & t))\r\n return t; if (192 == (224 & t)) {\r\n if ((o = (31 & t) << 6 | u()) >= 128)\r\n return o;\r\n throw Error(\"Invalid continuation byte\");\r\n } if (224 == (240 & t)) {\r\n if ((o = (15 & t) << 12 | u() << 6 | u()) >= 2048)\r\n return s(o), o;\r\n throw Error(\"Invalid continuation byte\");\r\n } if (240 == (248 & t) && (o = (7 & t) << 18 | u() << 12 | u() << 6 | u()) >= 65536 && o <= 1114111)\r\n return o; throw Error(\"Invalid UTF-8 detected\"); } t.version = \"3.0.0\", t.encode = function (t) { for (var e = i(t), r = e.length, n = -1, o = \"\"; ++n < r;)\r\n o += c(e[n]); return o; }, t.decode = function (t) { e = i(t), r = e.length, n = 0; for (var s, a = []; !1 !== (s = l());)\r\n a.push(s); return function (t) { for (var e, r = t.length, n = -1, i = \"\"; ++n < r;)\r\n (e = t[n]) > 65535 && (i += o((e -= 65536) >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), i += o(e); return i; }(a); }; }(e); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), r(33), r(34), r(6), r(7), r(11), r(18), r(35), r(19), r(36), r(20), r(37), r(12), r(38), r(5), r(1), r(39), r(40), r(41), r(42), r(43), r(44), r(45), r(46), r(47), r(48), r(49), r(50), r(51), r(52), r(53), r(54), n); }, function (t, e, r) { var n; t.exports = (n = r(0), function () { if (\"function\" == typeof ArrayBuffer) {\r\n var t = n.lib.WordArray, e = t.init;\r\n (t.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || \"undefined\" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) {\r\n for (var r = t.byteLength, n = [], o = 0; o < r; o++)\r\n n[o >>> 2] |= t[o] << 24 - o % 4 * 8;\r\n e.call(this, n, r);\r\n }\r\n else\r\n e.apply(this, arguments); }).prototype = t;\r\n } }(), n.lib.WordArray); }, function (t, e, r) { var n; t.exports = (n = r(0), function () { var t = n, e = t.lib.WordArray, r = t.enc; function o(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935; } r.Utf16 = r.Utf16BE = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o += 2) {\r\n var i = e[o >>> 2] >>> 16 - o % 4 * 8 & 65535;\r\n n.push(String.fromCharCode(i));\r\n } return n.join(\"\"); }, parse: function (t) { for (var r = t.length, n = [], o = 0; o < r; o++)\r\n n[o >>> 1] |= t.charCodeAt(o) << 16 - o % 2 * 16; return e.create(n, 2 * r); } }, r.Utf16LE = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], i = 0; i < r; i += 2) {\r\n var s = o(e[i >>> 2] >>> 16 - i % 4 * 8 & 65535);\r\n n.push(String.fromCharCode(s));\r\n } return n.join(\"\"); }, parse: function (t) { for (var r = t.length, n = [], i = 0; i < r; i++)\r\n n[i >>> 1] |= o(t.charCodeAt(i) << 16 - i % 2 * 16); return e.create(n, 2 * r); } }; }(), n.enc.Utf16); }, function (t, e, r) { var n, o, i, s, a, c; t.exports = (n = r(0), r(18), i = (o = n).lib.WordArray, s = o.algo, a = s.SHA256, c = s.SHA224 = a.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); }, _doFinalize: function () { var t = a._doFinalize.call(this); return t.sigBytes -= 4, t; } }), o.SHA224 = a._createHelper(c), o.HmacSHA224 = a._createHmacHelper(c), n.SHA224); }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), r(10), r(19), i = (o = n).x64, s = i.Word, a = i.WordArray, c = o.algo, u = c.SHA512, l = c.SHA384 = u.extend({ _doReset: function () { this._hash = new a.init([new s.init(3418070365, 3238371032), new s.init(1654270250, 914150663), new s.init(2438529370, 812702999), new s.init(355462360, 4144912697), new s.init(1731405415, 4290775857), new s.init(2394180231, 1750603025), new s.init(3675008525, 1694076839), new s.init(1203062813, 3204075428)]); }, _doFinalize: function () { var t = u._doFinalize.call(this); return t.sigBytes -= 16, t; } }), o.SHA384 = u._createHelper(l), o.HmacSHA384 = u._createHmacHelper(l), n.SHA384); }, function (t, e, r) {\r\n var n;\r\n t.exports = (n = r(0),\r\n /** @preserve\r\n (c) 2012 by Cédric Mesnil. All rights reserved.\r\n \n Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\r\n \n - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\r\n - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\r\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n */\r\n function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = o.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), c = o.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), u = o.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), l = o.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), h = o.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), f = o.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), p = s.RIPEMD160 = i.extend({ _doReset: function () { this._hash = o.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); }, _doProcessBlock: function (t, e) { for (var r = 0; r < 16; r++) {\r\n var n = e + r, o = t[n];\r\n t[n] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);\r\n } var i, s, p, w, b, B, F, N, k, x, S, A = this._hash.words, O = h.words, T = f.words, P = a.words, M = c.words, C = u.words, E = l.words; for (B = i = A[0], F = s = A[1], N = p = A[2], k = w = A[3], x = b = A[4], r = 0; r < 80; r += 1)\r\n S = i + t[e + P[r]] | 0, S += r < 16 ? d(s, p, w) + O[0] : r < 32 ? m(s, p, w) + O[1] : r < 48 ? y(s, p, w) + O[2] : r < 64 ? g(s, p, w) + O[3] : _(s, p, w) + O[4], S = (S = v(S |= 0, C[r])) + b | 0, i = b, b = w, w = v(p, 10), p = s, s = S, S = B + t[e + M[r]] | 0, S += r < 16 ? _(F, N, k) + T[0] : r < 32 ? g(F, N, k) + T[1] : r < 48 ? y(F, N, k) + T[2] : r < 64 ? m(F, N, k) + T[3] : d(F, N, k) + T[4], S = (S = v(S |= 0, E[r])) + x | 0, B = x, x = k, k = v(N, 10), N = F, F = S; S = A[1] + p + k | 0, A[1] = A[2] + w + x | 0, A[2] = A[3] + b + B | 0, A[3] = A[4] + i + F | 0, A[4] = A[0] + s + N | 0, A[0] = S; }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32, e[14 + (n + 64 >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var o = this._hash, i = o.words, s = 0; s < 5; s++) {\r\n var a = i[s];\r\n i[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8);\r\n } return o; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); function d(t, e, r) { return t ^ e ^ r; } function m(t, e, r) { return t & e | ~t & r; } function y(t, e, r) { return (t | ~e) ^ r; } function g(t, e, r) { return t & r | e & ~r; } function _(t, e, r) { return t ^ (e | ~r); } function v(t, e) { return t << e | t >>> 32 - e; } e.RIPEMD160 = i._createHelper(p), e.HmacRIPEMD160 = i._createHmacHelper(p); }(Math), n.RIPEMD160);\r\n }, function (t, e, r) { var n, o, i, s, a, c, u, l, h; t.exports = (n = r(0), r(11), r(12), i = (o = n).lib, s = i.Base, a = i.WordArray, c = o.algo, u = c.SHA1, l = c.HMAC, h = c.PBKDF2 = s.extend({ cfg: s.extend({ keySize: 4, hasher: u, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t); }, compute: function (t, e) { for (var r = this.cfg, n = l.create(r.hasher, t), o = a.create(), i = a.create([1]), s = o.words, c = i.words, u = r.keySize, h = r.iterations; s.length < u;) {\r\n var f = n.update(e).finalize(i);\r\n n.reset();\r\n for (var p = f.words, d = p.length, m = f, y = 1; y < h; y++) {\r\n m = n.finalize(m), n.reset();\r\n for (var g = m.words, _ = 0; _ < d; _++)\r\n p[_] ^= g[_];\r\n }\r\n o.concat(f), c[0]++;\r\n } return o.sigBytes = 4 * u, o; } }), o.PBKDF2 = function (t, e, r) { return h.create(r).compute(t, e); }, n.PBKDF2); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.mode.CFB = function () { var t = n.lib.BlockCipherMode.extend(); function e(t, e, r, n) { var o = this._iv; if (o) {\r\n var i = o.slice(0);\r\n this._iv = void 0;\r\n }\r\n else\r\n i = this._prevBlock; n.encryptBlock(i, 0); for (var s = 0; s < r; s++)\r\n t[e + s] ^= i[s]; } return t.Encryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize; e.call(this, t, r, o, n), this._prevBlock = t.slice(r, r + o); } }), t.Decryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize, i = t.slice(r, r + o); e.call(this, t, r, o, n), this._prevBlock = i; } }), t; }(), n.mode.CFB); }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), r(1), n.mode.CTR = (o = n.lib.BlockCipherMode.extend(), i = o.Encryptor = o.extend({ processBlock: function (t, e) { var r = this._cipher, n = r.blockSize, o = this._iv, i = this._counter; o && (i = this._counter = o.slice(0), this._iv = void 0); var s = i.slice(0); r.encryptBlock(s, 0), i[n - 1] = i[n - 1] + 1 | 0; for (var a = 0; a < n; a++)\r\n t[e + a] ^= s[a]; } }), o.Decryptor = i, o), n.mode.CTR); }, function (t, e, r) {\r\n var n;\r\n t.exports = (n = r(0), r(1),\r\n /** @preserve\r\n * Counter block mode compatible with Dr Brian Gladman fileenc.c\r\n * derived from CryptoJS.mode.CTR\r\n * Jan Hruby jhruby.web@gmail.com\r\n */\r\n n.mode.CTRGladman = function () { var t = n.lib.BlockCipherMode.extend(); function e(t) { if (255 == (t >> 24 & 255)) {\r\n var e = t >> 16 & 255, r = t >> 8 & 255, n = 255 & t;\r\n 255 === e ? (e = 0, 255 === r ? (r = 0, 255 === n ? n = 0 : ++n) : ++r) : ++e, t = 0, t += e << 16, t += r << 8, t += n;\r\n }\r\n else\r\n t += 1 << 24; return t; } var r = t.Encryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize, i = this._iv, s = this._counter; i && (s = this._counter = i.slice(0), this._iv = void 0), function (t) { 0 === (t[0] = e(t[0])) && (t[1] = e(t[1])); }(s); var a = s.slice(0); n.encryptBlock(a, 0); for (var c = 0; c < o; c++)\r\n t[r + c] ^= a[c]; } }); return t.Decryptor = r, t; }(), n.mode.CTRGladman);\r\n }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), r(1), n.mode.OFB = (o = n.lib.BlockCipherMode.extend(), i = o.Encryptor = o.extend({ processBlock: function (t, e) { var r = this._cipher, n = r.blockSize, o = this._iv, i = this._keystream; o && (i = this._keystream = o.slice(0), this._iv = void 0), r.encryptBlock(i, 0); for (var s = 0; s < n; s++)\r\n t[e + s] ^= i[s]; } }), o.Decryptor = i, o), n.mode.OFB); }, function (t, e, r) { var n, o; t.exports = (n = r(0), r(1), n.mode.ECB = ((o = n.lib.BlockCipherMode.extend()).Encryptor = o.extend({ processBlock: function (t, e) { this._cipher.encryptBlock(t, e); } }), o.Decryptor = o.extend({ processBlock: function (t, e) { this._cipher.decryptBlock(t, e); } }), o), n.mode.ECB); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.AnsiX923 = { pad: function (t, e) { var r = t.sigBytes, n = 4 * e, o = n - r % n, i = r + o - 1; t.clamp(), t.words[i >>> 2] |= o << 24 - i % 4 * 8, t.sigBytes += o; }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, n.pad.Ansix923); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.Iso10126 = { pad: function (t, e) { var r = 4 * e, o = r - t.sigBytes % r; t.concat(n.lib.WordArray.random(o - 1)).concat(n.lib.WordArray.create([o << 24], 1)); }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, n.pad.Iso10126); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.Iso97971 = { pad: function (t, e) { t.concat(n.lib.WordArray.create([2147483648], 1)), n.pad.ZeroPadding.pad(t, e); }, unpad: function (t) { n.pad.ZeroPadding.unpad(t), t.sigBytes--; } }, n.pad.Iso97971); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.ZeroPadding = { pad: function (t, e) { var r = 4 * e; t.clamp(), t.sigBytes += r - (t.sigBytes % r || r); }, unpad: function (t) { for (var e = t.words, r = t.sigBytes - 1; !(e[r >>> 2] >>> 24 - r % 4 * 8 & 255);)\r\n r--; t.sigBytes = r + 1; } }, n.pad.ZeroPadding); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.NoPadding = { pad: function () { }, unpad: function () { } }, n.pad.NoPadding); }, function (t, e, r) { var n, o, i, s; t.exports = (n = r(0), r(1), i = (o = n).lib.CipherParams, s = o.enc.Hex, o.format.Hex = { stringify: function (t) { return t.ciphertext.toString(s); }, parse: function (t) { var e = s.parse(t); return i.create({ ciphertext: e }); } }, n.format.Hex); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.BlockCipher, r = t.algo, o = [], i = [], s = [], a = [], c = [], u = [], l = [], h = [], f = [], p = []; !function () { for (var t = [], e = 0; e < 256; e++)\r\n t[e] = e < 128 ? e << 1 : e << 1 ^ 283; var r = 0, n = 0; for (e = 0; e < 256; e++) {\r\n var d = n ^ n << 1 ^ n << 2 ^ n << 3 ^ n << 4;\r\n d = d >>> 8 ^ 255 & d ^ 99, o[r] = d, i[d] = r;\r\n var m = t[r], y = t[m], g = t[y], _ = 257 * t[d] ^ 16843008 * d;\r\n s[r] = _ << 24 | _ >>> 8, a[r] = _ << 16 | _ >>> 16, c[r] = _ << 8 | _ >>> 24, u[r] = _, _ = 16843009 * g ^ 65537 * y ^ 257 * m ^ 16843008 * r, l[d] = _ << 24 | _ >>> 8, h[d] = _ << 16 | _ >>> 16, f[d] = _ << 8 | _ >>> 24, p[d] = _, r ? (r = m ^ t[t[t[g ^ m]]], n ^= t[t[n]]) : r = n = 1;\r\n } }(); var d = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], m = r.AES = e.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) {\r\n for (var t = this._keyPriorReset = this._key, e = t.words, r = t.sigBytes / 4, n = 4 * ((this._nRounds = r + 6) + 1), i = this._keySchedule = [], s = 0; s < n; s++)\r\n if (s < r)\r\n i[s] = e[s];\r\n else {\r\n var a = i[s - 1];\r\n s % r ? r > 6 && s % r == 4 && (a = o[a >>> 24] << 24 | o[a >>> 16 & 255] << 16 | o[a >>> 8 & 255] << 8 | o[255 & a]) : (a = o[(a = a << 8 | a >>> 24) >>> 24] << 24 | o[a >>> 16 & 255] << 16 | o[a >>> 8 & 255] << 8 | o[255 & a], a ^= d[s / r | 0] << 24), i[s] = i[s - r] ^ a;\r\n }\r\n for (var c = this._invKeySchedule = [], u = 0; u < n; u++)\r\n s = n - u, a = u % 4 ? i[s] : i[s - 4], c[u] = u < 4 || s <= 4 ? a : l[o[a >>> 24]] ^ h[o[a >>> 16 & 255]] ^ f[o[a >>> 8 & 255]] ^ p[o[255 & a]];\r\n } }, encryptBlock: function (t, e) { this._doCryptBlock(t, e, this._keySchedule, s, a, c, u, o); }, decryptBlock: function (t, e) { var r = t[e + 1]; t[e + 1] = t[e + 3], t[e + 3] = r, this._doCryptBlock(t, e, this._invKeySchedule, l, h, f, p, i), r = t[e + 1], t[e + 1] = t[e + 3], t[e + 3] = r; }, _doCryptBlock: function (t, e, r, n, o, i, s, a) { for (var c = this._nRounds, u = t[e] ^ r[0], l = t[e + 1] ^ r[1], h = t[e + 2] ^ r[2], f = t[e + 3] ^ r[3], p = 4, d = 1; d < c; d++) {\r\n var m = n[u >>> 24] ^ o[l >>> 16 & 255] ^ i[h >>> 8 & 255] ^ s[255 & f] ^ r[p++], y = n[l >>> 24] ^ o[h >>> 16 & 255] ^ i[f >>> 8 & 255] ^ s[255 & u] ^ r[p++], g = n[h >>> 24] ^ o[f >>> 16 & 255] ^ i[u >>> 8 & 255] ^ s[255 & l] ^ r[p++], _ = n[f >>> 24] ^ o[u >>> 16 & 255] ^ i[l >>> 8 & 255] ^ s[255 & h] ^ r[p++];\r\n u = m, l = y, h = g, f = _;\r\n } m = (a[u >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & f]) ^ r[p++], y = (a[l >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ r[p++], g = (a[h >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & l]) ^ r[p++], _ = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & h]) ^ r[p++], t[e] = m, t[e + 1] = y, t[e + 2] = g, t[e + 3] = _; }, keySize: 8 }); t.AES = e._createHelper(m); }(), n.AES); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib, r = e.WordArray, o = e.BlockCipher, i = t.algo, s = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], a = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], c = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], u = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], l = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], h = i.DES = o.extend({ _doReset: function () { for (var t = this._key.words, e = [], r = 0; r < 56; r++) {\r\n var n = s[r] - 1;\r\n e[r] = t[n >>> 5] >>> 31 - n % 32 & 1;\r\n } for (var o = this._subKeys = [], i = 0; i < 16; i++) {\r\n var u = o[i] = [], l = c[i];\r\n for (r = 0; r < 24; r++)\r\n u[r / 6 | 0] |= e[(a[r] - 1 + l) % 28] << 31 - r % 6, u[4 + (r / 6 | 0)] |= e[28 + (a[r + 24] - 1 + l) % 28] << 31 - r % 6;\r\n for (u[0] = u[0] << 1 | u[0] >>> 31, r = 1; r < 7; r++)\r\n u[r] = u[r] >>> 4 * (r - 1) + 3;\r\n u[7] = u[7] << 5 | u[7] >>> 27;\r\n } var h = this._invSubKeys = []; for (r = 0; r < 16; r++)\r\n h[r] = o[15 - r]; }, encryptBlock: function (t, e) { this._doCryptBlock(t, e, this._subKeys); }, decryptBlock: function (t, e) { this._doCryptBlock(t, e, this._invSubKeys); }, _doCryptBlock: function (t, e, r) { this._lBlock = t[e], this._rBlock = t[e + 1], f.call(this, 4, 252645135), f.call(this, 16, 65535), p.call(this, 2, 858993459), p.call(this, 8, 16711935), f.call(this, 1, 1431655765); for (var n = 0; n < 16; n++) {\r\n for (var o = r[n], i = this._lBlock, s = this._rBlock, a = 0, c = 0; c < 8; c++)\r\n a |= u[c][((s ^ o[c]) & l[c]) >>> 0];\r\n this._lBlock = s, this._rBlock = i ^ a;\r\n } var h = this._lBlock; this._lBlock = this._rBlock, this._rBlock = h, f.call(this, 1, 1431655765), p.call(this, 8, 16711935), p.call(this, 2, 858993459), f.call(this, 16, 65535), f.call(this, 4, 252645135), t[e] = this._lBlock, t[e + 1] = this._rBlock; }, keySize: 2, ivSize: 2, blockSize: 2 }); function f(t, e) { var r = (this._lBlock >>> t ^ this._rBlock) & e; this._rBlock ^= r, this._lBlock ^= r << t; } function p(t, e) { var r = (this._rBlock >>> t ^ this._lBlock) & e; this._lBlock ^= r, this._rBlock ^= r << t; } t.DES = o._createHelper(h); var d = i.TripleDES = o.extend({ _doReset: function () { var t = this._key.words; this._des1 = h.createEncryptor(r.create(t.slice(0, 2))), this._des2 = h.createEncryptor(r.create(t.slice(2, 4))), this._des3 = h.createEncryptor(r.create(t.slice(4, 6))); }, encryptBlock: function (t, e) { this._des1.encryptBlock(t, e), this._des2.decryptBlock(t, e), this._des3.encryptBlock(t, e); }, decryptBlock: function (t, e) { this._des3.decryptBlock(t, e), this._des2.encryptBlock(t, e), this._des1.decryptBlock(t, e); }, keySize: 6, ivSize: 2, blockSize: 2 }); t.TripleDES = o._createHelper(d); }(), n.TripleDES); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = r.RC4 = e.extend({ _doReset: function () { for (var t = this._key, e = t.words, r = t.sigBytes, n = this._S = [], o = 0; o < 256; o++)\r\n n[o] = o; o = 0; for (var i = 0; o < 256; o++) {\r\n var s = o % r, a = e[s >>> 2] >>> 24 - s % 4 * 8 & 255;\r\n i = (i + n[o] + a) % 256;\r\n var c = n[o];\r\n n[o] = n[i], n[i] = c;\r\n } this._i = this._j = 0; }, _doProcessBlock: function (t, e) { t[e] ^= i.call(this); }, keySize: 8, ivSize: 0 }); function i() { for (var t = this._S, e = this._i, r = this._j, n = 0, o = 0; o < 4; o++) {\r\n r = (r + t[e = (e + 1) % 256]) % 256;\r\n var i = t[e];\r\n t[e] = t[r], t[r] = i, n |= t[(t[e] + t[r]) % 256] << 24 - 8 * o;\r\n } return this._i = e, this._j = r, n; } t.RC4 = e._createHelper(o); var s = r.RC4Drop = o.extend({ cfg: o.cfg.extend({ drop: 192 }), _doReset: function () { o._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)\r\n i.call(this); } }); t.RC4Drop = e._createHelper(s); }(), n.RC4); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = [], i = [], s = [], a = r.Rabbit = e.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, r = 0; r < 4; r++)\r\n t[r] = 16711935 & (t[r] << 8 | t[r] >>> 24) | 4278255360 & (t[r] << 24 | t[r] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; for (this._b = 0, r = 0; r < 4; r++)\r\n c.call(this); for (r = 0; r < 8; r++)\r\n o[r] ^= n[r + 4 & 7]; if (e) {\r\n var i = e.words, s = i[0], a = i[1], u = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), l = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), h = u >>> 16 | 4294901760 & l, f = l << 16 | 65535 & u;\r\n for (o[0] ^= u, o[1] ^= h, o[2] ^= l, o[3] ^= f, o[4] ^= u, o[5] ^= h, o[6] ^= l, o[7] ^= f, r = 0; r < 4; r++)\r\n c.call(this);\r\n } }, _doProcessBlock: function (t, e) { var r = this._X; c.call(this), o[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, o[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, o[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, o[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16; for (var n = 0; n < 4; n++)\r\n o[n] = 16711935 & (o[n] << 8 | o[n] >>> 24) | 4278255360 & (o[n] << 24 | o[n] >>> 8), t[e + n] ^= o[n]; }, blockSize: 4, ivSize: 2 }); function c() { for (var t = this._X, e = this._C, r = 0; r < 8; r++)\r\n i[r] = e[r]; for (e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < i[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < i[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < i[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < i[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < i[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < i[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < i[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < i[7] >>> 0 ? 1 : 0, r = 0; r < 8; r++) {\r\n var n = t[r] + e[r], o = 65535 & n, a = n >>> 16, c = ((o * o >>> 17) + o * a >>> 15) + a * a, u = ((4294901760 & n) * n | 0) + ((65535 & n) * n | 0);\r\n s[r] = c ^ u;\r\n } t[0] = s[0] + (s[7] << 16 | s[7] >>> 16) + (s[6] << 16 | s[6] >>> 16) | 0, t[1] = s[1] + (s[0] << 8 | s[0] >>> 24) + s[7] | 0, t[2] = s[2] + (s[1] << 16 | s[1] >>> 16) + (s[0] << 16 | s[0] >>> 16) | 0, t[3] = s[3] + (s[2] << 8 | s[2] >>> 24) + s[1] | 0, t[4] = s[4] + (s[3] << 16 | s[3] >>> 16) + (s[2] << 16 | s[2] >>> 16) | 0, t[5] = s[5] + (s[4] << 8 | s[4] >>> 24) + s[3] | 0, t[6] = s[6] + (s[5] << 16 | s[5] >>> 16) + (s[4] << 16 | s[4] >>> 16) | 0, t[7] = s[7] + (s[6] << 8 | s[6] >>> 24) + s[5] | 0; } t.Rabbit = e._createHelper(a); }(), n.Rabbit); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = [], i = [], s = [], a = r.RabbitLegacy = e.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, r = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)\r\n c.call(this); for (o = 0; o < 8; o++)\r\n n[o] ^= r[o + 4 & 7]; if (e) {\r\n var i = e.words, s = i[0], a = i[1], u = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), l = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), h = u >>> 16 | 4294901760 & l, f = l << 16 | 65535 & u;\r\n for (n[0] ^= u, n[1] ^= h, n[2] ^= l, n[3] ^= f, n[4] ^= u, n[5] ^= h, n[6] ^= l, n[7] ^= f, o = 0; o < 4; o++)\r\n c.call(this);\r\n } }, _doProcessBlock: function (t, e) { var r = this._X; c.call(this), o[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, o[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, o[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, o[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16; for (var n = 0; n < 4; n++)\r\n o[n] = 16711935 & (o[n] << 8 | o[n] >>> 24) | 4278255360 & (o[n] << 24 | o[n] >>> 8), t[e + n] ^= o[n]; }, blockSize: 4, ivSize: 2 }); function c() { for (var t = this._X, e = this._C, r = 0; r < 8; r++)\r\n i[r] = e[r]; for (e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < i[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < i[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < i[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < i[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < i[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < i[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < i[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < i[7] >>> 0 ? 1 : 0, r = 0; r < 8; r++) {\r\n var n = t[r] + e[r], o = 65535 & n, a = n >>> 16, c = ((o * o >>> 17) + o * a >>> 15) + a * a, u = ((4294901760 & n) * n | 0) + ((65535 & n) * n | 0);\r\n s[r] = c ^ u;\r\n } t[0] = s[0] + (s[7] << 16 | s[7] >>> 16) + (s[6] << 16 | s[6] >>> 16) | 0, t[1] = s[1] + (s[0] << 8 | s[0] >>> 24) + s[7] | 0, t[2] = s[2] + (s[1] << 16 | s[1] >>> 16) + (s[0] << 16 | s[0] >>> 16) | 0, t[3] = s[3] + (s[2] << 8 | s[2] >>> 24) + s[1] | 0, t[4] = s[4] + (s[3] << 16 | s[3] >>> 16) + (s[2] << 16 | s[2] >>> 16) | 0, t[5] = s[5] + (s[4] << 8 | s[4] >>> 24) + s[3] | 0, t[6] = s[6] + (s[5] << 16 | s[5] >>> 16) + (s[4] << 16 | s[4] >>> 16) | 0, t[7] = s[7] + (s[6] << 8 | s[6] >>> 24) + s[5] | 0; } t.RabbitLegacy = e._createHelper(a); }(), n.RabbitLegacy); }, function (t, e, r) {\r\n \"use strict\";\r\n var n = this && this.__decorate || function (t, e, r, n) { var o, i = arguments.length, s = i < 3 ? e : null === n ? n = Object.getOwnPropertyDescriptor(e, r) : n; if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate)\r\n s = Reflect.decorate(t, e, r, n);\r\n else\r\n for (var a = t.length - 1; a >= 0; a--)\r\n (o = t[a]) && (s = (i < 3 ? o(s) : i > 3 ? o(e, r, s) : o(e, r)) || s); return i > 3 && s && Object.defineProperty(e, r, s), s; }, o = this && this.__metadata || function (t, e) { if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.metadata)\r\n return Reflect.metadata(t, e); };\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var i = r(56), s = r(13), a = r(9), c = r(21), u = r(58), l = r(59);\r\n function h(t, e) { var r = c.eth[e]; if (!r)\r\n throw new Error(\"Could not find the method/property named \" + e.toString()); Object.defineProperty(t, e, { value: function () {\r\n var _a;\r\n return (_a = r.execute).call.apply(_a, __spread([r, this], arguments));\r\n } }); }\r\n e.TRANSACTION_FETCH_DELAY = 2e3, e.inject = h;\r\n var f = /** @class */ (function () {\r\n function f(t) {\r\n this.provider = t, this.requests = new Map;\r\n }\r\n f.prototype.sendAsync = function (t) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e, r;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n if (!this.provider)\r\n throw s.InvalidProvider();\r\n e = i.toPayload(t.method, t.params);\r\n r = a.future();\r\n return [2 /*return*/, (this.requests.set(e.id, r), this.provider.sendAsync(e, function (t, n) { _this.requests.delete(e.id), t ? r.reject(t) : i.isValidResponse(n) ? r.resolve(n.result) : r.reject(s.InvalidResponse(n)); }), r)];\r\n });\r\n });\r\n };\r\n f.prototype.setProvider = function (t) { this.provider = t; };\r\n f.prototype.getConfirmedTransaction = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.waitForCompletion(t)];\r\n case 1:\r\n e = _a.sent();\r\n if (this.isFailure(e))\r\n throw new Error(\"Transaction \\\"\" + t + \"\\\" failed\");\r\n return [2 /*return*/, e];\r\n }\r\n }); });\r\n };\r\n f.prototype.waitForCompletion = function (t, r) {\r\n return __awaiter(this, void 0, void 0, function () { var e_9, r_6; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.isTxDropped(t, r)];\r\n case 1:\r\n if (!_a.sent()) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 2:\r\n e_9 = _a.sent();\r\n return [2 /*return*/, Object.assign({}, e_9, { status: u.TransactionStatus.failed })];\r\n case 3: return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 4:\r\n r_6 = _a.sent();\r\n if (!this.isPending(r_6) && r_6.receipt)\r\n return [2 /*return*/, Object.assign({}, r_6, { status: this.isFailure(r_6) ? u.TransactionStatus.failed : u.TransactionStatus.confirmed })];\r\n return [4 /*yield*/, l.sleep(e.TRANSACTION_FETCH_DELAY)];\r\n case 5:\r\n _a.sent();\r\n _a.label = 6;\r\n case 6: return [3 /*break*/, 3];\r\n case 7: return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n f.prototype.getTransaction = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e, r, n, t_15, _a, t_12, _c, t_13, _d, t_14; return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n _e.trys.push([0, 4, , 5]);\r\n return [4 /*yield*/, this.eth_accounts()];\r\n case 1:\r\n t_15 = (_e.sent())[0];\r\n _a = t_15;\r\n if (!_a) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.eth_getTransactionCount(t_15, \"latest\")];\r\n case 2:\r\n _a = (e = _e.sent());\r\n _e.label = 3;\r\n case 3:\r\n _a;\r\n return [3 /*break*/, 5];\r\n case 4:\r\n t_12 = _e.sent();\r\n e = null;\r\n return [3 /*break*/, 5];\r\n case 5:\r\n _e.trys.push([5, 7, , 8]);\r\n _c = null;\r\n return [4 /*yield*/, this.eth_getTransactionByHash(t)];\r\n case 6:\r\n if (_c == (r = _e.sent()))\r\n return [2 /*return*/, null];\r\n return [3 /*break*/, 8];\r\n case 7:\r\n t_13 = _e.sent();\r\n return [2 /*return*/, null];\r\n case 8:\r\n if (null == r.blockNumber) {\r\n if (null != e) {\r\n if (r.nonce < e) {\r\n return [2 /*return*/, { hash: t, type: u.TransactionType.replaced, nonce: r.nonce }];\r\n }\r\n if (r.nonce > e) {\r\n return [2 /*return*/, { hash: t, type: u.TransactionType.queued, nonce: r.nonce }];\r\n }\r\n }\r\n return [2 /*return*/, Object.assign({ type: u.TransactionType.pending }, r)];\r\n }\r\n _e.label = 9;\r\n case 9:\r\n _e.trys.push([9, 11, , 12]);\r\n _d = null;\r\n return [4 /*yield*/, this.eth_getTransactionReceipt(t)];\r\n case 10:\r\n if (_d == (n = _e.sent()) || 0 === n.status) {\r\n return [2 /*return*/, Object.assign({ type: u.TransactionType.reverted }, r)];\r\n }\r\n return [3 /*break*/, 12];\r\n case 11:\r\n t_14 = _e.sent();\r\n return [2 /*return*/, null];\r\n case 12: return [2 /*return*/, Object.assign({ type: u.TransactionType.confirmed }, r, { receipt: n })];\r\n }\r\n }); });\r\n };\r\n f.prototype.isTxDropped = function (t, r) {\r\n if (r === void 0) { r = 15; }\r\n return __awaiter(this, void 0, void 0, function () { var n, _a; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n n = r;\r\n _c.label = 1;\r\n case 1:\r\n if (!(n > 0)) return [3 /*break*/, 5];\r\n _a = null;\r\n return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 2:\r\n if (_a !== (_c.sent()))\r\n return [2 /*return*/, !1];\r\n n -= 1;\r\n return [4 /*yield*/, l.sleep(e.TRANSACTION_FETCH_DELAY)];\r\n case 3:\r\n _c.sent();\r\n _c.label = 4;\r\n case 4: return [3 /*break*/, 1];\r\n case 5: return [2 /*return*/, !0];\r\n }\r\n }); });\r\n };\r\n f.prototype.getTransactionAndReceipt = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var _a, e, r; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0: return [4 /*yield*/, Promise.all([this.eth_getTransactionByHash(t), this.eth_getTransactionReceipt(t)])];\r\n case 1:\r\n _a = __read.apply(void 0, [_c.sent(), 2]), e = _a[0], r = _a[1];\r\n return [2 /*return*/, e ? Object.assign({}, e, { receipt: r }) : null];\r\n }\r\n }); });\r\n };\r\n f.prototype.isPending = function (t) { return t && null === t.blockNumber; };\r\n f.prototype.isFailure = function (t) { return t && (!t.receipt || 0 === t.receipt.status); };\r\n return f;\r\n }());\r\n n([h, o(\"design:type\", Function)], f.prototype, \"web3_clientVersion\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"web3_sha3\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_version\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_peerCount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_listening\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_protocolVersion\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_syncing\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_coinbase\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_mining\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_hashrate\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_gasPrice\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_accounts\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_blockNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBalance\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getStorageAt\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionCount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockTransactionCountByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockTransactionCountByNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleCountByBlockHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleCountByBlockNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getCode\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sign\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sendTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sendRawTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_call\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_estimateGas\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockByNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByBlockHashAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByBlockNumberAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionReceipt\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleByBlockHashAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleByBlockNumberAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newBlockFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newPendingTransactionFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_uninstallFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getFilterChanges\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getFilterLogs\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getLogs\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getWork\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_submitWork\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_submitHashrate\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_post\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_version\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newIdentity\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_hasIdentity\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newGroup\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_addToGroup\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_uninstallFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_getFilterChanges\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_getMessages\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_unlockAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_newAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_listAccounts\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_lockAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_importRawKey\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_sendTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_sign\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_ecRecover\", void 0), e.RequestManager = f;\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n function n(t, r) { if (!t)\r\n throw new Error(\"jsonrpc method should be specified!\"); if (\"string\" != typeof t)\r\n throw new Error(\"jsonrpc must be a string, got \" + typeof t + \"!\"); return e.messageId++, { jsonrpc: \"2.0\", id: e.messageId, method: t, params: r || [] }; }\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.messageId = 0, e.toPayload = n, e.isValidResponse = function (t) { return Array.isArray(t) ? t.every(e) : e(t); function e(t) { return !(!t || t.error || \"2.0\" !== t.jsonrpc || \"number\" != typeof t.id || null == t.result && void 0 === t.result); } }, e.toBatchPayload = function (t) { return t.map(function (t) { return n(t.method, t.params); }); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), function (t) { t[t.ROUND_UP = 0] = \"ROUND_UP\", t[t.ROUND_DOWN = 1] = \"ROUND_DOWN\", t[t.ROUND_CE = 2] = \"ROUND_CE\", t[t.ROUND_FLOOR = 3] = \"ROUND_FLOOR\", t[t.ROUND_HALF_UP = 4] = \"ROUND_HALF_UP\", t[t.ROUND_HALF_DOWN = 5] = \"ROUND_HALF_DOWN\", t[t.ROUND_HALF_EVEN = 6] = \"ROUND_HALF_EVEN\", t[t.ROUND_HALF_CEIL = 7] = \"ROUND_HALF_CEIL\", t[t.ROUND_HALF_FLOOR = 8] = \"ROUND_HALF_FLOOR\"; }(e.BigNumberRoundingMode || (e.BigNumberRoundingMode = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), function (t) { t.pending = \"pending\", t.confirmed = \"confirmed\", t.failed = \"failed\"; }(e.TransactionStatus || (e.TransactionStatus = {})), function (t) { t.queued = \"queued\", t.dropped = \"dropped\", t.replaced = \"replaced\", t.pending = \"pending\", t.reverted = \"reverted\", t.confirmed = \"confirmed\"; }(e.TransactionType || (e.TransactionType = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.sleep = function (t) { return new Promise(function (e) { return setTimeout(e, t); }); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(13), s = r(15);\r\n e.SolidityFunction = /** @class */ (function () {\r\n function class_8(t, e, r) {\r\n this.requestManager = t, this.json = e, this._inputTypes = e.inputs.map(function (t) { return t.type; }), this._outputTypes = e.outputs.map(function (t) { return t.type; }), this._constant = e.constant, this._payable = e.payable, this.needsToBeTransaction = \"payable\" in e && e.payable || \"constant\" in e && !e.constant || \"stateMutability\" in e && \"nonpayable\" === e.stateMutability, this._name = n.transformToFullName(e), this._address = r;\r\n }\r\n class_8.prototype.extractDefaultBlock = function (t) { if (t.length > this._inputTypes.length && !n.isObject(t[t.length - 1]))\r\n return o.inputDefaultBlockNumberFormatter(t.pop()); };\r\n class_8.prototype.validateArgs = function (t) { if (t.some(function (t) { return void 0 === t; }))\r\n throw new Error(\"Invalid call, some arguments are undefined\"); var e = t.filter(function (t) { return !(!0 === n.isObject(t) && !1 === n.isArray(t) && !1 === n.isBigNumber(t)); }); if (e.length !== this._inputTypes.length)\r\n throw i.InvalidNumberOfSolidityArgs(e.length, this._inputTypes.length); };\r\n class_8.prototype.toPayload = function (t) { var e = { to: void 0, data: void 0, value: void 0, from: void 0 }; return t.length > this._inputTypes.length && n.isObject(t[t.length - 1]) && (e = t[t.length - 1]), this.validateArgs(t), e.to = this._address, e.data = \"0x\" + this.signature() + s.coder.encodeParams(this._inputTypes, t), e; };\r\n class_8.prototype.signature = function () { return n.sha3(this._name).slice(0, 8); };\r\n class_8.prototype.unpackOutput = function (t) { if (!t)\r\n return; var e = t.length >= 2 ? t.slice(2) : t; var r = s.coder.decodeParams(this._outputTypes, e); return 1 === r.length ? r[0] : r; };\r\n class_8.prototype.execute = function (t) {\r\n var e = [];\r\n for (var _a = 1; _a < arguments.length; _a++) {\r\n e[_a - 1] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var r_7, r_8, n_10, o_9; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n if (!t)\r\n throw new Error(\"Cannot call function \" + this.displayName() + \" because there is no requestManager\");\r\n if (!this.needsToBeTransaction) return [3 /*break*/, 2];\r\n r_7 = this.toPayload(e);\r\n if (r_7.value > 0 && !this._payable)\r\n throw new Error(\"Cannot send value to non-payable function\");\r\n if (!r_7.from)\r\n throw new Error('Missing \"from\" in transaction options');\r\n return [4 /*yield*/, t.eth_sendTransaction(r_7)];\r\n case 1: return [2 /*return*/, _c.sent()];\r\n case 2:\r\n r_8 = this.extractDefaultBlock(e), n_10 = this.toPayload(e);\r\n return [4 /*yield*/, t.eth_call(n_10, r_8)];\r\n case 3:\r\n o_9 = _c.sent();\r\n return [2 /*return*/, this.unpackOutput(o_9)];\r\n }\r\n }); });\r\n };\r\n class_8.prototype.estimateGas = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n var e = this.toPayload(t);\r\n return this.requestManager.eth_estimateGas(e);\r\n };\r\n class_8.prototype.getData = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return this.toPayload(t).data;\r\n };\r\n class_8.prototype.displayName = function () { return n.extractDisplayName(this._name); };\r\n class_8.prototype.typeName = function () { return n.extractTypeName(this._name) || \"void\"; };\r\n class_8.prototype.attachToContract = function (t) { var e = this.displayName(); var r = this, n = Object.assign(function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n var e = this.requestManager || r.requestManager;\r\n return r.execute.apply(r, __spread([e], t));\r\n }, { estimateGas: this.estimateGas.bind(this) }); t[e] || (t[e] = n), t[e][this.typeName()] = n; };\r\n return class_8;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeAddress = /** @class */ (function (_super) {\r\n __extends(SolidityTypeAddress, _super);\r\n function SolidityTypeAddress() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputAddress }) || this;\r\n }\r\n SolidityTypeAddress.prototype.isType = function (t) { return !!t.match(/address(\\[([0-9]*)\\])?/); };\r\n return SolidityTypeAddress;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeBool = /** @class */ (function (_super) {\r\n __extends(SolidityTypeBool, _super);\r\n function SolidityTypeBool() {\r\n return _super.call(this, { inputFormatter: n.formatInputBool, outputFormatter: n.formatOutputBool }) || this;\r\n }\r\n SolidityTypeBool.prototype.isType = function (t) { return !!t.match(/^bool(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeBool;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeInt = /** @class */ (function (_super) {\r\n __extends(SolidityTypeInt, _super);\r\n function SolidityTypeInt() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputInt }) || this;\r\n }\r\n SolidityTypeInt.prototype.isType = function (t) { return !!t.match(/^int([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeInt;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeUInt = /** @class */ (function (_super) {\r\n __extends(SolidityTypeUInt, _super);\r\n function SolidityTypeUInt() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputUInt }) || this;\r\n }\r\n SolidityTypeUInt.prototype.isType = function (t) { return !!t.match(/^uint([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeUInt;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeDynamicBytes = /** @class */ (function (_super) {\r\n __extends(SolidityTypeDynamicBytes, _super);\r\n function SolidityTypeDynamicBytes() {\r\n return _super.call(this, { inputFormatter: n.formatInputDynamicBytes, outputFormatter: n.formatOutputDynamicBytes }) || this;\r\n }\r\n SolidityTypeDynamicBytes.prototype.isType = function (t) { return !!t.match(/^bytes(\\[([0-9]*)\\])*$/); };\r\n SolidityTypeDynamicBytes.prototype.isDynamicType = function () { return !0; };\r\n return SolidityTypeDynamicBytes;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeString = /** @class */ (function (_super) {\r\n __extends(SolidityTypeString, _super);\r\n function SolidityTypeString() {\r\n return _super.call(this, { inputFormatter: n.formatInputString, outputFormatter: n.formatOutputString }) || this;\r\n }\r\n SolidityTypeString.prototype.isType = function (t) { return !!t.match(/^string(\\[([0-9]*)\\])*$/); };\r\n SolidityTypeString.prototype.isDynamicType = function () { return !0; };\r\n return SolidityTypeString;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeReal = /** @class */ (function (_super) {\r\n __extends(SolidityTypeReal, _super);\r\n function SolidityTypeReal() {\r\n return _super.call(this, { inputFormatter: n.formatInputReal, outputFormatter: n.formatOutputReal }) || this;\r\n }\r\n SolidityTypeReal.prototype.isType = function (t) { return !!t.match(/real([0-9]*)?(\\[([0-9]*)\\])?/); };\r\n return SolidityTypeReal;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeUReal = /** @class */ (function (_super) {\r\n __extends(SolidityTypeUReal, _super);\r\n function SolidityTypeUReal() {\r\n return _super.call(this, { inputFormatter: n.formatInputReal, outputFormatter: n.formatOutputUReal }) || this;\r\n }\r\n SolidityTypeUReal.prototype.isType = function (t) { return !!t.match(/^ureal([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeUReal;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeBytes = /** @class */ (function (_super) {\r\n __extends(SolidityTypeBytes, _super);\r\n function SolidityTypeBytes() {\r\n return _super.call(this, { inputFormatter: n.formatInputBytes, outputFormatter: n.formatOutputBytes }) || this;\r\n }\r\n SolidityTypeBytes.prototype.isType = function (t) { return !!t.match(/^bytes([0-9]{1,})(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeBytes;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(26), s = r(27);\r\n e.AllSolidityEvents = /** @class */ (function () {\r\n function class_9(t, e, r) {\r\n this._requestManager = t, this._json = e, this._address = r;\r\n }\r\n class_9.prototype.encode = function (t) {\r\n if (t === void 0) { t = {}; }\r\n var e = { address: this._address };\r\n return [\"fromBlock\", \"toBlock\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (r) { e[r] = o.inputBlockNumberFormatter(t[r]); }), e;\r\n };\r\n class_9.prototype.decode = function (t) { t.data = t.data || \"\"; var e = n.isArray(t.topics) && n.isString(t.topics[0]) ? t.topics[0].slice(2) : \"\", r = this._json.filter(function (t) { return e === n.sha3(n.transformToFullName(t)); })[0]; return r ? new i.SolidityEvent(this._requestManager, r, this._address).decode(t) : o.outputLogFormatter(t); };\r\n class_9.prototype.execute = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e, r; return __generator(this, function (_a) {\r\n e = this.encode(t), r = this.decode.bind(this);\r\n return [2 /*return*/, new s.EthFilter(this._requestManager, e, r)];\r\n }); });\r\n };\r\n class_9.prototype.attachToContract = function (t) { var e = this.execute.bind(this); t.allEvents = e; };\r\n return class_9;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(15), i = r(24), s = r(9);\r\n function a(t, e) { return t.filter(function (t) { return \"constructor\" === t.type && t.inputs.length === e.length; }).map(function (t) { return t.inputs.map(function (t) { return t.type; }); }).map(function (t) { return o.coder.encodeParams(t, e); })[0] || \"\"; }\r\n e.ContractFactory = /** @class */ (function () {\r\n function class_10(t, e) {\r\n this.requestManager = t, this.abi = e;\r\n }\r\n class_10.prototype.deploy = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var e, r, o, _c, _d, i, c, u; return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n r = t[t.length - 1];\r\n if (n.isObject(r) && !n.isArray(r) && (e = t.pop()), !e)\r\n throw new Error(\"Missing options object\");\r\n if (!e.data || \"string\" != typeof e.data)\r\n throw new Error(\"Invalid options.data\");\r\n if (e.value > 0 && !(this.abi.filter(function (e) { return \"constructor\" === e.type && e.inputs.length === t.length; })[0] || {}).payable)\r\n throw new Error(\"Cannot send value to non-payable constructor\");\r\n o = a(this.abi, t);\r\n e.data += o;\r\n _c = e.gas;\r\n if (_c) return [3 /*break*/, 2];\r\n _d = e;\r\n return [4 /*yield*/, this.requestManager.eth_estimateGas(e)];\r\n case 1:\r\n _c = (_d.gas = _e.sent());\r\n _e.label = 2;\r\n case 2:\r\n _c;\r\n return [4 /*yield*/, this.requestManager.eth_sendTransaction(e)];\r\n case 3:\r\n i = _e.sent();\r\n return [4 /*yield*/, function (t, e) {\r\n return __awaiter(this, void 0, void 0, function () { var r, n, o, i, a; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n r = s.future();\r\n n = 0;\r\n o = function () { ++n > 50 ? r.reject(new Error(\"Contract transaction couldn't be found after 50 blocks\")) : t.eth_getTransactionReceipt(e).then(function (t) { t && t.blockHash ? r.resolve(t) : setTimeout(o, 1e3); }, function (t) { return r.reject(t); }); };\r\n o();\r\n return [4 /*yield*/, r];\r\n case 1:\r\n i = _a.sent();\r\n return [4 /*yield*/, t.eth_getCode(i.contractAddress, \"latest\")];\r\n case 2:\r\n a = _a.sent();\r\n if (a.length > 3)\r\n return [2 /*return*/, i.contractAddress];\r\n throw Object.assign(new Error(\"The contract code couldn't be stored, please check your gas amount.\"), { response: a, receipt: i });\r\n }\r\n }); });\r\n }(this.requestManager, i)];\r\n case 4:\r\n c = _e.sent();\r\n return [4 /*yield*/, this.at(c)];\r\n case 5:\r\n u = _e.sent();\r\n return [2 /*return*/, (u.transactionHash = i, u)];\r\n }\r\n }); });\r\n };\r\n class_10.prototype.at = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n if (!n.isAddress(t))\r\n throw new TypeError(\"Invalid address \" + JSON.stringify(t));\r\n return [2 /*return*/, new i.Contract(this.requestManager, this.abi, t)];\r\n }); });\r\n };\r\n class_10.prototype.getData = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var e, r, o; return __generator(this, function (_c) {\r\n e = { data: void 0 };\r\n r = t[t.length - 1];\r\n if (n.isObject(r) && !n.isArray(r) && (e = t.pop()), !e)\r\n throw new Error(\"Missing options object\");\r\n if (!e.data || \"string\" != typeof e.data)\r\n throw new Error(\"Invalid options.data\");\r\n o = a(this.abi, t);\r\n return [2 /*return*/, (e.data += o, e.data)];\r\n }); });\r\n };\r\n return class_10;\r\n }());\r\n }]);\r\n exports.default = ethconnect;\r\n});\r\n// tslint:disable\r\ndefine(\"node_modules/eth-connect/esm\", [\"require\", \"exports\", \"node_modules/eth-connect/eth-connect.esm\"], function (require, exports, eth_connect_esm_1) {\r\n \"use strict\";\r\n var EthConnect = eth_connect_esm_1.default;\r\n return EthConnect;\r\n});\r\ndefine(\"src/abis/PoapDelegateMint\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = [\r\n {\r\n inputs: [\r\n {\r\n internalType: 'address',\r\n name: '_poapContractAddress',\r\n type: 'address',\r\n },\r\n { internalType: 'address', name: '_validSigner', type: 'address' },\r\n ],\r\n payable: false,\r\n stateMutability: 'nonpayable',\r\n type: 'constructor',\r\n },\r\n {\r\n anonymous: false,\r\n inputs: [\r\n {\r\n indexed: false,\r\n internalType: 'bytes',\r\n name: '_signedMessage',\r\n type: 'bytes',\r\n },\r\n ],\r\n name: 'VerifiedSignature',\r\n type: 'event',\r\n },\r\n {\r\n constant: false,\r\n inputs: [\r\n { internalType: 'uint256', name: 'event_id', type: 'uint256' },\r\n { internalType: 'address', name: 'receiver', type: 'address' },\r\n { internalType: 'bytes', name: 'signedMessage', type: 'bytes' },\r\n ],\r\n name: 'mintToken',\r\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\r\n payable: false,\r\n stateMutability: 'nonpayable',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'name',\r\n outputs: [{ internalType: 'string', name: '', type: 'string' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'owner',\r\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [{ internalType: 'bytes', name: '', type: 'bytes' }],\r\n name: 'processed',\r\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'validSigner',\r\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n ];\r\n});\r\ndefine(\"src/ui\", [\"require\", \"exports\", \"src/guestbook\"], function (require, exports, guestbook_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.LastButton = exports.NextButton = exports.SignButton = exports.signaturesUI = exports.background = exports.closeUI = exports.openUI = exports.screenSpaceUI = void 0;\r\n exports.screenSpaceUI = new UICanvas();\r\n exports.screenSpaceUI.visible = true;\r\n var UIOpenTime;\r\n var imageTexture = new Texture('images/UI_Guestbook.png');\r\n var scaleMultiplier = 0.7;\r\n var linesPerGuestBookPage = 14;\r\n function openUI(event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var guestBookPage, allSignatures, totalPages;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n UIOpenTime = +Date.now();\r\n exports.background.visible = true;\r\n exports.background.isPointerBlocker = true;\r\n guestBookPage = 1;\r\n return [4 /*yield*/, guestbook_1.getGuestBook(event)];\r\n case 1:\r\n allSignatures = _a.sent();\r\n totalPages = displaySignatures(allSignatures, guestBookPage);\r\n exports.SignButton.onClick = new OnClick(function () {\r\n guestbook_1.signGuestBook(event);\r\n closeUI();\r\n log('signed guestbook');\r\n });\r\n log('On page ', guestBookPage, ' of ', totalPages);\r\n if (totalPages < 2) {\r\n exports.LastButton.visible = false;\r\n exports.NextButton.visible = false;\r\n }\r\n else {\r\n exports.LastButton.visible = false;\r\n exports.NextButton.visible = true;\r\n }\r\n exports.NextButton.onClick = new OnClick(function () { return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n guestBookPage += 1;\r\n return [4 /*yield*/, guestbook_1.getGuestBook(event)];\r\n case 1:\r\n allSignatures = _a.sent();\r\n displaySignatures(allSignatures, guestBookPage);\r\n exports.LastButton.visible = true;\r\n if (guestBookPage >= totalPages) {\r\n exports.NextButton.visible = false;\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); });\r\n exports.LastButton.onClick = new OnClick(function () { return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n guestBookPage -= 1;\r\n if (guestBookPage < 1) {\r\n guestBookPage = 1;\r\n }\r\n return [4 /*yield*/, guestbook_1.getGuestBook(event)];\r\n case 1:\r\n allSignatures = _a.sent();\r\n displaySignatures(allSignatures, guestBookPage);\r\n exports.NextButton.visible = true;\r\n if (guestBookPage == 1) {\r\n exports.LastButton.visible = false;\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); });\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.openUI = openUI;\r\n function closeUI() {\r\n exports.background.visible = false;\r\n exports.background.isPointerBlocker = false;\r\n }\r\n exports.closeUI = closeUI;\r\n exports.background = new UIImage(exports.screenSpaceUI, imageTexture);\r\n exports.background.name = 'background';\r\n exports.background.width = 1024 * scaleMultiplier;\r\n exports.background.height = 921 * scaleMultiplier;\r\n exports.background.hAlign = 'center';\r\n exports.background.vAlign = 'center';\r\n exports.background.sourceLeft = 0;\r\n exports.background.sourceTop = 76;\r\n exports.background.sourceWidth = 1024;\r\n exports.background.sourceHeight = 921;\r\n exports.background.visible = false;\r\n exports.background.isPointerBlocker = false;\r\n exports.signaturesUI = new UIText(exports.background);\r\n exports.signaturesUI.value = 'Fetching signatures';\r\n exports.signaturesUI.name = 'signatures';\r\n exports.signaturesUI.width = '650px';\r\n exports.signaturesUI.height = '800px';\r\n exports.signaturesUI.hAlign = 'center';\r\n exports.signaturesUI.vAlign = 'center';\r\n exports.signaturesUI.positionY = 0;\r\n exports.signaturesUI.positionX = 0;\r\n exports.signaturesUI.fontSize = 25;\r\n exports.signaturesUI.vTextAlign = 'center';\r\n exports.signaturesUI.hTextAlign = 'center';\r\n exports.signaturesUI.color = Color4.FromHexString('#53508F88');\r\n exports.SignButton = new UIImage(exports.background, imageTexture);\r\n exports.SignButton.name = 'SignButton';\r\n exports.SignButton.width = 460 * scaleMultiplier;\r\n exports.SignButton.height = 75 * scaleMultiplier;\r\n exports.SignButton.hAlign = 'center';\r\n exports.SignButton.vAlign = 'center';\r\n exports.SignButton.positionY = (-839 + 921 / 2) * scaleMultiplier;\r\n exports.SignButton.positionX = 0;\r\n exports.SignButton.sourceLeft = 76;\r\n exports.SignButton.sourceTop = 0;\r\n exports.SignButton.sourceWidth = 460;\r\n exports.SignButton.sourceHeight = 75;\r\n exports.NextButton = new UIImage(exports.background, imageTexture);\r\n exports.NextButton.name = 'NextButton';\r\n exports.NextButton.width = 76 * scaleMultiplier;\r\n exports.NextButton.height = 76 * scaleMultiplier;\r\n exports.NextButton.hAlign = 'center';\r\n exports.NextButton.vAlign = 'center';\r\n exports.NextButton.positionY = 0;\r\n exports.NextButton.positionX = 300;\r\n exports.NextButton.sourceLeft = 537;\r\n exports.NextButton.sourceTop = 0;\r\n exports.NextButton.sourceWidth = 75;\r\n exports.NextButton.sourceHeight = 75;\r\n exports.LastButton = new UIImage(exports.background, imageTexture);\r\n exports.LastButton.name = 'LastButton';\r\n exports.LastButton.width = 76 * scaleMultiplier;\r\n exports.LastButton.height = 76 * scaleMultiplier;\r\n exports.LastButton.hAlign = 'center';\r\n exports.LastButton.vAlign = 'center';\r\n exports.LastButton.positionY = 0;\r\n exports.LastButton.positionX = -300;\r\n exports.LastButton.sourceLeft = 0;\r\n exports.LastButton.sourceTop = 0;\r\n exports.LastButton.sourceWidth = 75;\r\n exports.LastButton.sourceHeight = 75;\r\n // arrange all signatures into pages\r\n function displaySignatures(allSignatures, guestBookPage) {\r\n var signaturePage = 0;\r\n var signatureList = [''];\r\n for (var i = 0; i < allSignatures.length; i++) {\r\n signatureList[signaturePage] = signatureList[signaturePage].concat(allSignatures[i].name);\r\n signatureList[signaturePage] = signatureList[signaturePage].concat(' - ');\r\n var lines = signatureList[signaturePage].split('\\n');\r\n if (lines[lines.length - 1].length > 25) {\r\n signatureList[signaturePage] = signatureList[signaturePage].concat('\\n');\r\n }\r\n if (lines.length >= linesPerGuestBookPage) {\r\n signaturePage += 1;\r\n signatureList.push('');\r\n //guestBookPage\r\n }\r\n }\r\n exports.signaturesUI.value = signatureList[guestBookPage - 1];\r\n log('signature to show from page ', guestBookPage, ' :', signatureList[guestBookPage - 1]);\r\n return signatureList.length;\r\n }\r\n // Instance the input object\r\n var input = Input.instance;\r\n //button down event\r\n input.subscribe('BUTTON_DOWN', ActionButton.POINTER, false, function (e) {\r\n var currentTime = +Date.now();\r\n var isOpen;\r\n if (exports.background.visible) {\r\n isOpen = true;\r\n }\r\n else {\r\n isOpen = false;\r\n }\r\n if (isOpen && currentTime - UIOpenTime > 100) {\r\n closeUI();\r\n }\r\n });\r\n});\r\ndefine(\"src/guestbook\", [\"require\", \"exports\", \"src/ui\", \"src/poapHandler\"], function (require, exports, ui_1, poapHandler_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.signGuestBook = exports.getGuestBook = exports.GuestBook = exports.fireBaseServer = void 0;\r\n // external servers being used by the project - Please change these to your own if working on something else!\r\n exports.fireBaseServer = 'https://us-central1-decentraland-events.cloudfunctions.net/app/';\r\n // get player data\r\n var GuestBook = /** @class */ (function (_super) {\r\n __extends(GuestBook, _super);\r\n function GuestBook(transform, eventName\r\n //,sound: AudioClip\r\n ) {\r\n var _this = _super.call(this) || this;\r\n engine.addEntity(_this);\r\n _this.addComponent(new GLTFShape('models/guestbook/guestbook.glb'));\r\n _this.addComponent(new Transform(transform));\r\n _this.eventName = eventName;\r\n _this.addComponent(new OnPointerDown(function () {\r\n ui_1.openUI(eventName);\r\n log('OPENED GUESTBOOK');\r\n }, { hoverText: 'Open' }));\r\n var guestBookBase = new Entity();\r\n guestBookBase.addComponent(new Transform());\r\n guestBookBase.addComponent(new GLTFShape('models/guestbook/guestbook_base.glb'));\r\n guestBookBase.setParent(_this);\r\n return _this;\r\n }\r\n return GuestBook;\r\n }(Entity));\r\n exports.GuestBook = GuestBook;\r\n // get latest scoreboard data from server\r\n function getGuestBook(event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, response, json, e_10;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 3, , 4]);\r\n url = exports.fireBaseServer + 'get-signatures/?event=' + event;\r\n return [4 /*yield*/, fetch(url)];\r\n case 1:\r\n response = _a.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 2:\r\n json = _a.sent();\r\n log(json);\r\n return [2 /*return*/, json];\r\n case 3:\r\n e_10 = _a.sent();\r\n log('error fetching scores from server ', e_10);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.getGuestBook = getGuestBook;\r\n // change data in scoreboard\r\n function signGuestBook(event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, body, _a, _b, _c, response, e_11;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (!!poapHandler_1.userData) return [3 /*break*/, 2];\r\n return [4 /*yield*/, poapHandler_1.setUserData()];\r\n case 1:\r\n _d.sent();\r\n _d.label = 2;\r\n case 2:\r\n _d.trys.push([2, 6, , 7]);\r\n url = exports.fireBaseServer + 'add-signature/?event=' + event;\r\n _b = (_a = JSON).stringify;\r\n _c = {};\r\n return [4 /*yield*/, poapHandler_1.userData];\r\n case 3:\r\n _c.id = (_d.sent()).userId;\r\n return [4 /*yield*/, poapHandler_1.userData];\r\n case 4:\r\n body = _b.apply(_a, [(_c.name = (_d.sent()).displayName,\r\n _c)]);\r\n log(body);\r\n return [4 /*yield*/, fetch(url, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: body,\r\n })];\r\n case 5:\r\n response = _d.sent();\r\n return [2 /*return*/, response.json()];\r\n case 6:\r\n e_11 = _d.sent();\r\n log('error posting to server ', e_11);\r\n return [3 /*break*/, 7];\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.signGuestBook = signGuestBook;\r\n});\r\ndefine(\"src/game\", [\"require\", \"exports\", \"src/dispenser\", \"src/guestbook\"], function (require, exports, dispenser_1, guestbook_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.sceneMessageBus = void 0;\r\n // GUESTBOOK\r\n var guestBook = new guestbook_2.GuestBook({\r\n position: new Vector3(10, 0, 6),\r\n }, 'test');\r\n // POAP BOOTH\r\n var POAPBooth = new dispenser_1.Dispenser({\r\n position: new Vector3(8, 0, 8),\r\n }, 'genesis');\r\n // MAKE POAP BOOTH MULTIPLAYER\r\n exports.sceneMessageBus = new MessageBus();\r\n exports.sceneMessageBus.on('activatePoap', function () {\r\n POAPBooth.activate();\r\n });\r\n // POAP BANNER\r\n var POAPBanner = new Entity();\r\n POAPBanner.addComponent(new Transform({\r\n position: new Vector3(6, 0, 8),\r\n }));\r\n POAPBanner.addComponent(new GLTFShape('models/poap/POAP_Banner.glb'));\r\n engine.addEntity(POAPBanner);\r\n POAPBanner.addComponent(new OnPointerDown(function (e) {\r\n openExternalURL('https://www.poap.xyz/');\r\n }, { hoverText: 'Learn More' }));\r\n // FLOOR\r\n var entity = new Entity('entity');\r\n engine.addEntity(entity);\r\n entity.addComponentOrReplace(new GLTFShape('models/FloorBaseGrass_01/FloorBaseGrass_01.glb'));\r\n entity.addComponentOrReplace(new Transform({\r\n position: new Vector3(8, 0, 8),\r\n rotation: new Quaternion(0, 0, 0, 1),\r\n scale: new Vector3(1, 1, 1),\r\n }));\r\n});\r\ndefine(\"src/poapHandler\", [\"require\", \"exports\", \"@decentraland/Identity\", \"node_modules/eth-connect/esm\", \"@decentraland/EthereumController\", \"@decentraland/web3-provider\", \"src/abis/PoapDelegateMint\", \"src/game\"], function (require, exports, Identity_1, eth, EthereumController, web3_provider_1, PoapDelegateMint_1, game_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.makeTransaction = exports.getSignedMessage = exports.getSecret = exports.callQRAPI = exports.setUserData = exports.fetchUserData = exports.userData = exports.fireBaseServer = exports.ethController = void 0;\r\n exports.ethController = EthereumController;\r\n exports.fireBaseServer = 'https://us-central1-decentraland-events.cloudfunctions.net/app/';\r\n var qrHex;\r\n var secret;\r\n var signature;\r\n function fetchUserData() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Identity_1.getUserData()];\r\n case 1:\r\n data = _a.sent();\r\n log(data.displayName);\r\n return [2 /*return*/, data];\r\n }\r\n });\r\n });\r\n }\r\n exports.fetchUserData = fetchUserData;\r\n function setUserData() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Identity_1.getUserData()];\r\n case 1:\r\n data = _a.sent();\r\n log(data.displayName);\r\n exports.userData = data;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.setUserData = setUserData;\r\n function callQRAPI(event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, response, data, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n url = exports.fireBaseServer + 'get-poap-code/?event=' + event;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(url)];\r\n case 2:\r\n response = _b.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n data = _b.sent();\r\n log('TOKEN: ', data.token);\r\n return [2 /*return*/, data.token.toString()];\r\n case 4:\r\n _a = _b.sent();\r\n log('error fetching from token server ', url);\r\n return [3 /*break*/, 5];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.callQRAPI = callQRAPI;\r\n function getSecret(qrHex) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, response, data, json, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n url = 'https://api.poap.xyz/actions/claim-qr?qr_hash=' + qrHex;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(url)];\r\n case 2:\r\n response = _b.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n data = _b.sent();\r\n json = { secret: data.secret, event_id: data.event_id };\r\n log('secret :', json);\r\n return [2 /*return*/, json];\r\n case 4:\r\n _a = _b.sent();\r\n log('error fetching from POAP server ', url);\r\n return [3 /*break*/, 5];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.getSecret = getSecret;\r\n function getSignedMessage(data, qrHex) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, method, headers, body, response, data_1, json, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n url = 'https://api.poap.xyz/actions/claim-qr';\r\n method = 'POST';\r\n headers = { 'Content-Type': 'application/json' };\r\n body = JSON.stringify({\r\n address: exports.userData.publicKey,\r\n delegated: true,\r\n qr_hash: qrHex,\r\n secret: data.secret,\r\n });\r\n log('sending ', body);\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(url, {\r\n headers: headers,\r\n method: method,\r\n body: body,\r\n })];\r\n case 2:\r\n response = _b.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n data_1 = _b.sent();\r\n json = {\r\n signed_message: data_1.delegated_signed_message,\r\n event_id: data_1.event_id,\r\n };\r\n return [2 /*return*/, json];\r\n case 4:\r\n _a = _b.sent();\r\n log('error fetching from POAP server ', url);\r\n return [3 /*break*/, 5];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.getSignedMessage = getSignedMessage;\r\n function makeTransaction(event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var provider, rm, poapTokenFactory, PoapDelegatedMint;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!!exports.userData) return [3 /*break*/, 2];\r\n return [4 /*yield*/, fetchUserData()];\r\n case 1:\r\n exports.userData = _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n if (!exports.userData.hasConnectedWeb3) {\r\n log('no wallet');\r\n return [2 /*return*/];\r\n }\r\n if (!!qrHex) return [3 /*break*/, 4];\r\n return [4 /*yield*/, callQRAPI(event)];\r\n case 3:\r\n qrHex = _a.sent();\r\n _a.label = 4;\r\n case 4:\r\n if (!!secret) return [3 /*break*/, 6];\r\n return [4 /*yield*/, getSecret(qrHex)];\r\n case 5:\r\n secret = _a.sent();\r\n _a.label = 6;\r\n case 6:\r\n if (!!signature) return [3 /*break*/, 8];\r\n return [4 /*yield*/, getSignedMessage(secret, qrHex)];\r\n case 7:\r\n signature = _a.sent();\r\n _a.label = 8;\r\n case 8:\r\n log('signature for request ', signature);\r\n return [4 /*yield*/, web3_provider_1.getProvider()];\r\n case 9:\r\n provider = _a.sent();\r\n rm = new eth.RequestManager(provider);\r\n return [4 /*yield*/, new eth.ContractFactory(rm, PoapDelegateMint_1.default)];\r\n case 10:\r\n poapTokenFactory = _a.sent();\r\n return [4 /*yield*/, poapTokenFactory.at(\r\n //ropsten\r\n //'0x2f3c23b50396EcB55C73956B069CF04e493bdEf9'\r\n //mainnet\r\n '0xAac2497174f2Ec4069A98375A67D798db8a05337')];\r\n case 11:\r\n PoapDelegatedMint = (_a.sent());\r\n return [4 /*yield*/, PoapDelegatedMint.mintToken(signature.event_id, exports.userData.publicKey, signature.signed_message, {\r\n from: exports.userData.publicKey,\r\n }).then(game_1.sceneMessageBus.emit('activatePoap', {}))];\r\n case 12:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.makeTransaction = makeTransaction;\r\n});\r\ndefine(\"src/dispenser\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/index\", \"src/poapHandler\", \"src/game\"], function (require, exports, index_1, poapHandler_2, game_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Dispenser = void 0;\r\n var Dispenser = /** @class */ (function (_super) {\r\n __extends(Dispenser, _super);\r\n function Dispenser(transform, eventName) {\r\n var _this = _super.call(this) || this;\r\n _this.idleAnim = new AnimationState('Idle_POAP', { looping: true });\r\n _this.buyAnim = new AnimationState('Action_POAP', { looping: false });\r\n _this.buttonAnim = new AnimationState('Button_Action', { looping: false });\r\n engine.addEntity(_this);\r\n _this.addComponent(new GLTFShape('models/poap/POAP_dispenser.glb'));\r\n _this.addComponent(new Transform(transform));\r\n _this.addComponent(new Animator());\r\n _this.getComponent(Animator).addClip(_this.idleAnim);\r\n _this.getComponent(Animator).addClip(_this.buyAnim);\r\n _this.idleAnim.play();\r\n _this.eventName = eventName;\r\n var button = new Entity();\r\n button.addComponent(new GLTFShape('models/poap/POAP_button.glb'));\r\n button.addComponent(new Animator());\r\n button.getComponent(Animator).addClip(_this.buttonAnim);\r\n button.setParent(_this);\r\n button.addComponent(new OnPointerDown(function (e) {\r\n button.getComponent(Animator).getClip('Action').stop();\r\n button.getComponent(Animator).getClip('Action').play();\r\n game_2.sceneMessageBus.emit('activatePoap', {});\r\n poapHandler_2.makeTransaction(eventName);\r\n }, { hoverText: 'Get Attendance Token' }));\r\n engine.addEntity(button);\r\n return _this;\r\n }\r\n Dispenser.prototype.activate = function () {\r\n var anim = this.getComponent(Animator);\r\n anim.getClip('Idle_POAP').stop();\r\n anim.getClip('Action_POAP').stop();\r\n anim.getClip('Action_POAP').play();\r\n this.addComponentOrReplace(new index_1.default.Delay(4000, function () {\r\n anim.getClip('Action_POAP').stop();\r\n anim.getClip('Idle_POAP').play();\r\n }));\r\n };\r\n return Dispenser;\r\n }(Entity));\r\n exports.Dispenser = Dispenser;\r\n});\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9jb21wb25lbnQvaXRyYW5zZm9ybWNvbXBvbmVudC50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9tYXRoL2ludGVycG9sYXRpb24udHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L3JvdGF0ZS50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9jb21wb25lbnQvc2NhbGUudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L2ZvbGxvd3BhdGgudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L2tlZXByb3RhdGluZy50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9zeXN0ZW0vdHJhbnNmcm9tU3lzdGVtLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdHJhbnNmb3JtL2NvbXBvbmVudC9tb3ZlLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdG9nZ2xlL3RvZ2dsZUNvbXBvbmVudC50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RpbWVyL2NvbXBvbmVudC9pdGltZXJjb21wb25lbnQudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90aW1lci9jb21wb25lbnQvaW50ZXJ2YWwudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90aW1lci9jb21wb25lbnQvZXhwaXJlLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdGltZXIvc3lzdGVtL3RpbWVyU3lzdGVtLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdGltZXIvY29tcG9uZW50L2RlbGF5LnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdHJpZ2dlcnMvdHJpZ2dlclN5c3RlbS50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL2FjdGlvbnNTZXF1ZW5jZVN5c3RlbS9hY3Rpb25zU2VxdWVuY2VTeXN0ZW0udHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy9pbmRleC50cyIsIi4uL25vZGVfbW9kdWxlcy9ldGgtY29ubmVjdC9ldGgtY29ubmVjdC5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvZXRoLWNvbm5lY3QvZXNtLnRzIiwiLi4vc3JjL2FiaXMvUG9hcERlbGVnYXRlTWludC5qcyIsIi4uL3NyYy91aS50cyIsIi4uL3NyYy9ndWVzdGJvb2sudHMiLCIuLi9zcmMvZ2FtZS50cyIsIi4uL3NyYy9wb2FwSGFuZGxlci50cyIsIi4uL3NyYy9kaXNwZW5zZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNBQSxJQUFZLGlCQUtYO0lBTEQsV0FBWSxpQkFBaUI7UUFDM0IsNkRBQU0sQ0FBQTtRQUNOLHFFQUFVLENBQUE7UUFDVix1RUFBVyxDQUFBO1FBQ1gsaUVBQVEsQ0FBQTtJQUNWLENBQUMsRUFMVyxpQkFBaUIsR0FBakIseUJBQWlCLEtBQWpCLHlCQUFpQixRQUs1QjtJQUVELFNBQWdCLFdBQVcsQ0FBQyxJQUF1QixFQUFFLENBQVM7UUFDNUQsUUFB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Q0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBUyxDQUFDLElBQUUsV0FBVyxJQUFFLE9BQU8sTUFBTSxJQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsTUFBTSxDQUFDLFdBQVcsRUFBQyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDO1FBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsUUFBUSxJQUFFLE9BQU8sQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsVUFBVTtRQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDO1FBQUMsS0FBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxVQUFVLENBQUEsQ0FBQyxDQUFBLGNBQVcsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxjQUFXLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsTUFBTSxDQUFDLE1BQU0sSUFBRSxjQUFXLFNBQVMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxPQUFPLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLElBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFFLElBQUksQ0FBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsY0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsSUFBSSxFQUFDLGNBQVcsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBLENBQUEsQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLElBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDO29CQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtpQkFBQzs7Z0JBQUssS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQztvQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFFLENBQUMsRUFBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsVUFBVSxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsVUFBVSxDQUFDLENBQUEsT0FBTyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksR0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsR0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQztnQkFBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQztnQkFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUc7Z0JBQUMsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQztZQUFBLE9BQU0sQ0FBQyxFQUFDO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsc0JBQXNCLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxXQUFXLElBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQSxDQUFBLENBQUMsRUFBQyxRQUFRLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7b0JBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFTLENBQUMsSUFBRSxDQUFDLElBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsYUFBYSxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFPLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFFLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLHNCQUFzQixFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFHLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLElBQUksR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxRQUFRLEVBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxJQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxFQUFDLGFBQWEsRUFBQyxjQUFXLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFNLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsT0FBTyxVQUFTLENBQUMsSUFBRSxPQUFNLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxJQUFJLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxPQUFPLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBQztZQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFBO1NBQUM7O1lBQUssSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxFQUFDLEdBQUcsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQztnQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLElBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFHLElBQUksQ0FBQyxVQUFVLElBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztpQkFBSTtnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO2dCQUFBLElBQUksQ0FBQyxjQUFjLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxJQUFJLENBQUMsS0FBSyxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxXQUFXLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBLElBQUcsSUFBSSxDQUFDLFVBQVUsSUFBRSxJQUFJLENBQUMsZUFBZSxFQUFDO2dCQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUM7aUJBQUk7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFHLENBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7O2dCQUFLLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBLElBQUcsVUFBVSxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxVQUFVLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxJQUFFLEVBQUUsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU0sUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sR0FBRyxLQUFHLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFFLEdBQUcsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsa0VBQWtFLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsSUFBRSxHQUFHLENBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsQ0FBQyxDQUFDLGNBQWMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHVCQUF1QixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxpRUFBaUUsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sa0VBQWtFLEtBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyx3QkFBd0IsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUEsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUEsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxLQUFLLEtBQUcsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxJQUFFLElBQUksS0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBQyxZQUFZLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUM7WUFBQSxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsWUFBWSxFQUFDLElBQUksRUFBQyxZQUFZLEVBQUMsT0FBTyxFQUFDLFlBQVksRUFBQyxTQUFTLEVBQUMsWUFBWSxFQUFDLElBQUksRUFBQyxZQUFZLEVBQUMsS0FBSyxFQUFDLGVBQWUsRUFBQyxVQUFVLEVBQUMsZUFBZSxFQUFDLEtBQUssRUFBQyxlQUFlLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLFVBQVUsRUFBQyxrQkFBa0IsRUFBQyxLQUFLLEVBQUMsa0JBQWtCLEVBQUMsS0FBSyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sRUFBQyx3QkFBd0IsRUFBQyxLQUFLLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxFQUFDLDJCQUEyQixFQUFDLE1BQU0sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLEVBQUMsaUNBQWlDLEVBQUMsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBRSxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUk7Z0JBQUosa0JBQUEsRUFBQSxLQUFHLENBQUM7Z0JBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDO2dCQUFBLEtBQUksSUFBSSxHQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLEdBQUMsRUFBRSxFQUFDO29CQUFDLElBQUksR0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBQyxDQUFDLENBQUM7b0JBQUEsSUFBRyxDQUFDLEtBQUcsR0FBQyxFQUFDO3dCQUFDLElBQUcsQ0FBQyxDQUFDOzRCQUFDLE1BQU07d0JBQUEsQ0FBQyxJQUFFLElBQUksQ0FBQTtxQkFBQzt5QkFBSTt3QkFBQyxJQUFJLEdBQUMsR0FBQyxHQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUFBLENBQUMsSUFBRSxHQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxHQUFDLEdBQUMsQ0FBQSxDQUFDLENBQUEsR0FBQyxDQUFBO3FCQUFDO2lCQUFDO2dCQUFBLE9BQU0sSUFBSSxHQUFDLENBQUMsQ0FBQTtZQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxLQUFLLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLFFBQVEsSUFBRSxPQUFPLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBTSxHQUFDLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxLQUFHLEdBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxLQUFHLEdBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO29CQUFDLE9BQU8sR0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxRQUFRLENBQUMsR0FBQyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUEsQ0FBQyxDQUFBLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxLQUFLLENBQUMsS0FBRyxDQUFDO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscUVBQXFFLEdBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxRQUFRLElBQUUsT0FBTyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxHQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxFQUFFLEVBQUMsR0FBQyxFQUFFO2dCQUFDLElBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQztvQkFBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTSxRQUFRLElBQUUsT0FBTyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxXQUFXLElBQUUsUUFBUSxLQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFNLFNBQVMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLEdBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBRSxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsS0FBSSxJQUFJLEtBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUksR0FBQyxHQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztnQkFBQSxJQUFHLENBQUMsS0FBRyxHQUFDO29CQUFDLE1BQU07Z0JBQUEsQ0FBQyxJQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsS0FBSSxJQUFJLEtBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUksR0FBQyxHQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztnQkFBQSxDQUFDLElBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFHO2dCQUFILGtCQUFBLEVBQUEsS0FBRztnQkFBRSxJQUFJLENBQUMsR0FBQyxFQUFFLENBQUM7Z0JBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsR0FBQyxFQUFFLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQUEsQ0FBQyxJQUFFLEdBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLEdBQUMsR0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFDLENBQUE7aUJBQUM7Z0JBQUEsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUE7WUFBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBLE9BQU0sQ0FBQyxDQUFDLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxRQUFRLElBQUUsT0FBTyxDQUFDLElBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLFNBQVMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrRUFBa0UsRUFBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLEtBQUssQ0FBQyxLQUFHLENBQUM7Z0JBQUMsT0FBTSxFQUFFLENBQUMsQ0FBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsR0FBQyxFQUFFO2dCQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBMkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUcsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sVUFBVSxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLEtBQUcsQ0FBQyxJQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHO2dCQUFDLE9BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQztZQUFBLE9BQU0sQ0FBQyxFQUFDO2dCQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxD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QUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7b0JBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxJQUFFLENBQUM7d0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsR0FBQyxFQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsT0FBTyxDQUFDLENBQUE7aUJBQUMsQ0FBQSxJQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsUUFBUSxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsR0FBQyxHQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUMsR0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxHQUFDLEVBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUMsR0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7Z0JBQUEsbUJBQUM7WUFBRCxDQUFDLEFBQTk1RCxHQUE4NUQsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFHLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsR0FBRTtnQkFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBQyxFQUFDLFNBQVMsRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDO2dCQUFDLE9BQUssQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDO29CQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxFQUFDO2dCQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxHQUFDLEVBQUUsQ0FBQztnQkFBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxJQUFHLENBQUMsR0FBQyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFBO2lCQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLElBQUksRUFBQyxtRUFBbUUsRUFBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxXQUFXLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLEdBQUcsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU0sQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFNLFFBQVEsS0FBRyxDQUFDLElBQUUsU0FBUyxLQUFHLENBQUMsSUFBRSxVQUFVLEtBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFHLEtBQUssQ0FBQyxLQUFHLENBQUMsSUFBRSxJQUFJLElBQUUsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLFdBQVcsSUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLGdCQUFnQixJQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixJQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU0sSUFBSSxHQUFDLENBQUMsQ0FBQyxDQUFBLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFHLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxDQUFDLENBQUMsd0JBQXdCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyx1QkFBdUIsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdDQUFnQyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sS0FBSyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsWUFBWSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHlCQUF5QixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLEtBQUssQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFTLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMseUJBQXlCLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBRyxRQUFRLElBQUUsT0FBTyxDQUFDO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxLQUFLLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLDBCQUEwQixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsaUNBQWlDLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBSSxLQUFHLENBQUMsQ0FBQyxXQUFXLElBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUMsSUFBSSxLQUFHLENBQUMsQ0FBQyxnQkFBZ0IsSUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsb0JBQW9CLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBUyxDQUFDLElBQUUsSUFBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLEtBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxJQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHFCQUFxQixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsc0JBQXNCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxTQUFTLENBQUMsS0FBRyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxJQUFNLENBQUMsR0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFDLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsVUFBQSxDQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxVQUFBLENBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQUEsQ0FBQyxJQUFFLE9BQUEsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBakIsQ0FBaUIsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxTQUFTLElBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLFVBQUEsQ0FBQyxJQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxJQUFJLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUcsQ0FBQyxHQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUFJO29CQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQTtpQkFBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxJQUFFLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFDLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsU0FBUyxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsMkJBQTJCLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxLQUFLLENBQUMsOERBQTRELENBQUMsb0JBQWUsQ0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHdCQUF3QixHQUFDLFVBQVMsQ0FBQyxFQUFD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QUFDO3dCQUFBLENBQUMsSUFBRSxHQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQTtxQkFBQzs7d0JBQUssQ0FBQyxJQUFFLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQzt3QkFBQyxJQUFJLEdBQUMsR0FBQyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUEsQ0FBQyxJQUFFLEdBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxHQUFDLENBQUE7cUJBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUE7Z0JBQUEsQ0FBQztnQkFBQSw0QkFBZ0IsR0FBaEIsVUFBaUIsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsS0FBRyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQztvQkFBQSxJQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBQyxDQUFDLEVBQUM7d0JBQUMsSUFBSSxHQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUM7d0JBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsR0FBQyxFQUFFOzRCQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLEdBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEtBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUMsSUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBQyxHQUFDLEdBQUMsR0FBQyxHQUFDLEVBQUUsR0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtxQkFBQztvQkFBQSxJQUFJLEdBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFBQSxLQUFJLElBQUksR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsR0FBQyxFQUFDLEdBQUMsRUFBRSxFQUFD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QUFDLGdCQUFnQixFQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQTRDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFHLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTTtnQkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFnRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBRyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDLENBQUMsTUFBTTtnQkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFnRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBRyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxVQUFTLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsNENBQTRDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLG9CQUFvQixFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsd0RBQXdELEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxnQkFBZ0IsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsR0FBRyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUU7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLElBQUUsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLEVBQUUsS0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxJQUFFLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxVQUFVLENBQUMsR0FBQyxDQUFDLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxpQkFBaUIsQ0FBQSxDQUFDLENBQUEsbUJBQW1CLENBQUEsQ0FBQyxDQUFBLDJCQUEyQixDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sZ0JBQWdCLElBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxFQUFDO2dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDO2lCQUFLLElBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDO2dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQTthQUFDOztnQkFBSyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxDQUFDLENBQUMsR0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxFQUFDLFdBQVcsRUFBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFDLGdCQUFnQixFQUFDLEdBQUcsRUFBQyxjQUFjLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsa0JBQWtCLEVBQUMsQ0FBQyxFQUFDLHNCQUFzQixFQUFDLEdBQUcsRUFBQyxpQkFBaUIsRUFBQyxDQUFDLEVBQUMsRUFBQyxDQUFDLEdBQUMsc0NBQXNDLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxJQUFJLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUcsQ0FBQyxZQUFZLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFHLENBQUMsQ0FBQyxHQUFDLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDO3dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7NEJBQUMsQ0FBQzt3QkFBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtxQkFBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQTtpQkFBQztxQkFBSTtvQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQzt3QkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxJQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBO2lCQUFDO2FBQUM7aUJBQUk7Z0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLEVBQUUsSUFBRSxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFHLENBQUMsR0FBQyxRQUFRLElBQUUsT0FBTyxDQUFDLEVBQUM7b0JBQUMsSUFBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUM7d0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxJQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFO3dCQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQUM7O29CQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFDLEVBQUUsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxJQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7d0JBQUMsSUFBRyxHQUFHLElBQUUsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM7NEJBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQzs0QkFBQSxTQUFRO3lCQUFDO3dCQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQTtxQkFBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsS0FBSSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLEVBQUUsS0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUFFLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUcsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEtBQUssSUFBRSxDQUFDLEdBQUMsRUFBRSxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDO29CQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUM7cUJBQUssSUFBRyxDQUFDLEdBQUMsQ0FBQztvQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztxQkFBSTtvQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDO3dCQUFDLEtBQUksQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDOzRCQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO3FCQUFDOzt3QkFBSyxDQUFDLElBQUUsQ0FBQyxDQUFDO29CQUFBLE9BQUssQ0FBQyxFQUFFLEVBQUMsQ0FBQyxJQUFFLEdBQUc7d0JBQUMsQ0FBQztvQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUFDO2FBQUM7O2dCQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksSUFBRSxDQUFDO2dCQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUM7aUJBQUssSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBQztnQkFBQyxPQUFLLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEdBQUcsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQTthQUFDO2lCQUFLLElBQUcsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBRyxFQUFFLENBQUMsR0FBQyxDQUFDO29CQUFDLEtBQUksQ0FBQyxJQUFFLEdBQUcsRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLElBQUUsR0FBRzt3QkFBQyxDQUFDO2FBQUM7aUJBQUssSUFBRyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQztnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLEdBQUcsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsSUFBRSxHQUFHO29CQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRTtnQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztvQkFBQSxNQUFLO2lCQUFDO2dCQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBQztnQkFBQyxDQUFDLEVBQUM7b0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTt3QkFBQyxDQUFDO29CQUFBLElBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUM7d0JBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQzt5QkFBSyxJQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUM7d0JBQUMsSUFBRyxDQUFDLENBQUM7NEJBQUMsTUFBTSxDQUFDLENBQUM7d0JBQUEsT0FBSyxDQUFDLENBQUMsTUFBTSxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs0QkFBQyxDQUFDO3dCQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7cUJBQUM7eUJBQUk7d0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7NEJBQUMsQ0FBQzt3QkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQTtxQkFBQztvQkFBQSxJQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztvQkFBQSxJQUFHLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQzt3QkFBQyxTQUFPOzRCQUFDLElBQUcsQ0FBQyxJQUFFLENBQUMsRUFBQztnQ0FBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29DQUFDLENBQUM7Z0NBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7b0NBQUMsQ0FBQztnQ0FBQSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQ0FBQSxNQUFLOzZCQUFDOzRCQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQztnQ0FBQyxNQUFNOzRCQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO3lCQUFDO29CQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUU7d0JBQUMsQ0FBQztpQkFBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsSUFBSSxJQUFFLENBQUMsRUFBQztnQkFBQyxJQUFHLFFBQVEsSUFBRSxPQUFPLENBQUM7b0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLG1CQUFtQixHQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsZ0JBQWdCLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFDLGVBQWUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsZ0JBQWdCLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsT0FBTyxDQUFDO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUFJO3dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDOzRCQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsbUJBQW1CLEdBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxH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Q0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7aUJBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQztnQkFBQyxPQUFLLENBQUMsR0FBQyxDQUFDO29CQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDO2dCQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztpQkFBSTtnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO29CQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxjQUFXLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUU7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQztvQkFBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBLENBQUEsQ0FBQyxDQUFBLE9BQU8sVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLFlBQVksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxZQUFZLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsWUFBWSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUFJO2dCQUFDLElBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQztvQkFBQyxLQUFJLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQzt3QkFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQUUsQ0FBQztnQkFBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsY0FBVyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLEVBQUU7Z0JBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQztnQkFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQzs7Z0JBQUssS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7d0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7d0JBQUEsTUFBSztxQkFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO2dCQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsT0FBTyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQztnQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztpQkFBSTtnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFBQSxHQUFFO29CQUFDLElBQUcsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7d0JBQUMsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDOzRCQUFDLEtBQUksQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO2dDQUFFLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7OzRCQUFLLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7d0JBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUM7NEJBQUMsT0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQztnQ0FBRSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtxQkFBQzs7d0JBQUssQ0FBQyxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQUMsUUFBTSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsSUFBRSxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQUEsQ0FBQyxHQUFDLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxJQUFHLENBQUMsSUFBRSxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUM7O2dCQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyw2QkFBNkIsRUFBQyxDQUFDLEdBQUMsYUFBYSxFQUFDLENBQUMsR0FBQyxhQUFhLEVBQUMsQ0FBQyxHQUFDLG9CQUFvQixFQUFDLENBQUMsR0FBQyw0QkFBNEIsRUFBQyxDQUFDLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDO2lCQUFJO2dCQUFDLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsR0FBQyxHQUFHLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQSxDQUFDLENBQUEsR0FBRyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUM7b0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLENBQUMsS0FBSztvQkFBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEdBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxRQUFRLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUMsR0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFBO2FBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUEsSUFBRyxJQUFJLElBQUUsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFLLENBQUMsR0FBQyxFQUFFLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO2dCQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQywyQkFBMkIsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQztnQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQztpQkFBSTtnQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxLQUFJLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRztnQkFBQyxJQUFHLENBQUMsRUFBQztvQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUMsTUFBTTtvQkFBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLElBQUcsQ0FBQyxFQUFDO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUMsTUFBTTtvQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQztxQkFBSTtvQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQyxNQUFNO29CQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxjQUFXLE9BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLGNBQVcsT0FBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsY0FBVyxPQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLGNBQVcsT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLGNBQVcsT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLGNBQVcsT0FBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLEdBQUcsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTthQUFDOztnQkFBSyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQzt3QkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxNQUFLO3FCQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxDQUFDO2dCQUFDLE9BQUssQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQztvQkFBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFFO2dCQUFDLElBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDO29CQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQzt3QkFBQyxDQUFDO29CQUFBLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBSyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQztnQkFBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUEsT0FBTyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsSUFBRSxDQUFDLEdBQUU7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDO29CQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUM7Z0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxJQUFFLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDO29CQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO2FBQUMsQ0FBQSxLQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFHLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsT0FBSyxDQUFDLEdBQUMsRUFBRSxJQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUM7YUFBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsY0FBVyxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLEdBQUcsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxLQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO29CQUFHLElBQUcsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDO3dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEVBQUMsTUFBTSxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxNQUFNLElBQUUsQ0FBQyxDQUFDLEVBQUM7NEJBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQUEsTUFBSzt5QkFBQzt3QkFBQSxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQzs0QkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDOzRCQUFBLE1BQUs7eUJBQUM7d0JBQUEsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7cUJBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLElBQUksQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDO29CQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO3dCQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFDLENBQUMsR0FBQyxNQUFNLEVBQUMsR0FBRyxDQUFDLEVBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUEsQ0FBQyxDQUFBLGdCQUFnQixDQUFBLENBQUMsQ0FBQSxrQkFBa0IsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxjQUFXLE9BQU0sQ0FBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsVUFBVSxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxNQUFNLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxjQUFXLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsS0FBSyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsY0FBVyxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsY0FBVyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEVBQUU7WUFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFPLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFO1lBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLEdBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQUk7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDO29CQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBLFNBQVMsQ0FBQyxLQUFHLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxHQUFDLEVBQUU7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztxQkFBSTtvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBRSxHQUFDLENBQUMsRUFBRSxLQUFHLEVBQUUsR0FBQyxFQUFFLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFDLEVBQUUsS0FBRyxFQUFFLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUUsS0FBRyxFQUFFLEdBQUMsRUFBRSxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBRSxJQUFFLENBQUMsR0FBQyxFQUFFLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFFLEtBQUcsQ0FBQyxHQUFDLEVBQUUsSUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLElBQUksRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEdBQUcsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLElBQUksRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxLQUFHLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsSUFBSSxFQUFFLEVBQUMsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsSUFBSSxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsR0FBRyxFQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUMsRUFBRSxDQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFFLEdBQUMsRUFBRSxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsRUFBRSxJQUFFLEVBQUUsQ0FBQyxLQUFHLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxFQUFFLElBQUUsRUFBRSxDQUFDLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBRSxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFFLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxXQUFXLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBRyxLQUFHLEVBQUUsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBRyxLQUFHLEVBQUUsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztZQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7WUFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztZQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtZQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLEdBQUMsQ0FBQyxFQUFDO29CQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFBO2lCQUFDO2dCQUFBLEdBQUcsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEdBQUcsQ0FBQSxDQUFDLENBQUEsQ0FBQyxLQUFHLENBQUMsQ0FBQTthQUFDO1lBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO1NBQUMsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsSUFBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFFLENBQUMsQ0FBQTthQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO29CQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTt3QkFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO29CQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO29CQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7d0JBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUUsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7d0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO3FCQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFFLENBQUMsQ0FBQyxHQUFHLENBQUE7YUFBQyxDQUFBLENBQUMsRUFBQyxXQUFXLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxVQUFTLENBQUMsSUFBRSxDQUFDLENBQUMsY0FBYyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLHdCQUF3QixFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGtCQUFrQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGFBQWEsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxvQkFBb0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFB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LEVBQUMsUUFBUSxFQUFDLHFCQUFxQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBQyxJQUFJLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxhQUFhLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsY0FBYyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsYUFBYSxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLHdCQUF3QixFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLHFCQUFxQixFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLG9CQUFvQixFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxhQUFhLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGFBQWEsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxxQkFBcUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLElBQUksQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMscUJBQXFCLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHVCQUF1QixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxF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QyxxQkFBcUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxtQkFBbUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLG9CQUFvQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxzQkFBc0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxvQkFBb0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0s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QUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxVQUFVLElBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO29CQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDO29CQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUE7Z0JBQUEsQ0FBQztnQkFBQSx3QkFBTSxHQUFOLFVBQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxJQUFFLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsT0FBTyxDQUFD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QUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxjQUFjLEdBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENB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Q0FBQyxDQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUM7WUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBRSxLQUFLLElBQUUsQ0FBQyxJQUFFLEtBQUssSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxLQUFLLElBQUUsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFHLENBQUMsSUFBRSxLQUFLLElBQUUsQ0FBQyxJQUFFLEtBQUs7WUFBQyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFDLHdCQUF3QixDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsR0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBRyxDQUFDLElBQUUsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDO1lBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsR0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsRUFBRSxHQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLEtBQUcsSUFBRyxDQUFDLElBQUUsQ0FBQztZQUFDLE1BQU0sS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEVBQUUsRUFBQyxHQUFHLElBQUUsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDO1lBQUMsT0FBTyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUEsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsS0FBRyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDO1lBQUMsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxJQUFFLENBQUM7WUFBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDO1lBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxJQUFHLEdBQUcsSUFBRSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsRUFBQztZQUFDLElBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLElBQUUsR0FBRztnQkFBQyxPQUFPLENBQUMsQ0FBQztZQUFBLE1BQU0sS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUE7U0FBQyxDQUFBLElBQUcsR0FBRyxJQUFFLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxFQUFDO1lBQUMsSUFBRyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLElBQUUsSUFBSTtnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1NBQUMsQ0FBQSxJQUFHLEdBQUcsSUFBRSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxFQUFFLElBQUUsRUFBRSxHQUFDLENBQUMsRUFBRSxJQUFFLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFFLEtBQUssSUFBRSxDQUFDLElBQUUsT0FBTztZQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUEsTUFBTSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUM7WUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxVQUFTLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUM7WUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUM7WUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEtBQUssQ0FBQyxLQUFHLEVBQUUsR0FBQyxJQUFJLEdBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxjQUFXLElBQUcsVUFBVSxJQUFFLE9BQU8sV0FBVyxFQUFDO1lBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBRyxDQUFDLFlBQVksV0FBVyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksU0FBUyxJQUFFLFdBQVcsSUFBRSxPQUFPLGlCQUFpQixJQUFFLENBQUMsWUFBWSxpQkFBaUIsSUFBRSxDQUFDLFlBQVksVUFBVSxJQUFFLENBQUMsWUFBWSxXQUFXLElBQUUsQ0FBQyxZQUFZLFVBQVUsSUFBRSxDQUFDLFlBQVksV0FBVyxJQUFFLENBQUMsWUFBWSxZQUFZLElBQUUsQ0FBQyxZQUFZLFlBQVksQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLFlBQVksVUFBVSxFQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQTthQUFDOztnQkFBSyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBQyxTQUFTLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsUUFBUSxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxFQUFDLFNBQVMsRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxLQUFLLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxLQUFLLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxRQUFRLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsUUFBUSxJQUFFLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbHdpRjs7Ozs7Ozs7O3NCQVNHO2dCQUNILFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO3dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUE7cUJBQUMsQ0FBQSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxJQUFFLENBQUM7d0JBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO3dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUE7cUJBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEdBQUU7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztvQkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7d0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBQztZQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBQSxJQUFJLENBQUMsR0FBRyxHQUFDLEtBQUssQ0FBQyxDQUFBO1NBQUM7O1lBQUssQ0FBQyxHQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hsSTs7Ozt1QkFJSTtnQkFDSixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUcsR0FBRyxJQUFFLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxHQUFHLENBQUMsRUFBQztvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUM7b0JBQUEsR0FBRyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxHQUFHLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUE7aUJBQUM7O29CQUFLLENBQUMsSUFBRSxDQUFDLElBQUUsRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsR0FBRyxHQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7d0JBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsR0FBRyxHQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBQyxFQUFDLEdBQUcsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUMsRUFBQyxHQUFHLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBQyxFQUFDLEdBQUcsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUMsRUFBQyxHQUFHLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDO2dCQUFFLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFDLEVBQUMsR0FBRyxFQUFDLGNBQVcsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUU7WUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsR0FBQyxHQUFHLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUM7WUFBQSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7WUFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUM7WUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO1NBQUMsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBRSxJQUFJLENBQUMsY0FBYyxLQUFHLElBQUksQ0FBQyxJQUFJLEVBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsY0FBYyxHQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsWUFBWSxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLElBQUcsQ0FBQyxHQUFDLENBQUM7d0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFBSTt3QkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7cUJBQUM7Z0JBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsZUFBZSxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsWUFBWSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxlQUFlLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxhQUFhLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsUUFBUSxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsUUFBUSxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsSUFBSSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsSUFBSSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsSUFBSSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsSUFBSSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUE7YUFBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEdBQUMsRUFBRSxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsYUFBYSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsSUFBSSxDQUFDLE9BQU8sR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxPQUFPLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFHLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLE9BQU8sSUFBRSxDQUFDLEVBQUMsSUFBSSxDQUFDLE9BQU8sSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFHLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLE9BQU8sSUFBRSxDQUFDLEVBQUMsSUFBSSxDQUFDLE9BQU8sSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxHQUFHLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7Z0JBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsSUFBSSxDQUFDLEVBQUUsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxTQUFTLENBQUMsS0FBRyxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO1NBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsVUFBVSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxLQUFHLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLFVBQVUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxTQUFTLENBQUMsS0FBRyxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO1NBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxJQUFFLElBQUksQ0FBQyxVQUFVLElBQUUsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLElBQUcsUUFBUSxJQUFFLE9BQU8sT0FBTyxJQUFFLFVBQVUsSUFBRSxPQUFPLE9BQU8sQ0FBQyxRQUFRO2dCQUFDLENBQUMsR0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDOztnQkFBSyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLElBQUUsSUFBSSxDQUFDLFVBQVUsSUFBRSxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBRyxRQUFRLElBQUUsT0FBTyxPQUFPLElBQUUsVUFBVSxJQUFFLE9BQU8sT0FBTyxDQUFDLFFBQVE7Z0JBQUMsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBNEMsQ0FBQyxDQUFDLFFBQVEsRUFBSSxDQUFDLENBQUMsQ0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBQyxLQUFLLEVBQUM7O29CQUFXLE9BQU8sQ0FBQSxLQUFBLENBQUMsQ0FBQyxPQUFPLENBQUEsQ0FBQyxJQUFJLHFCQUFDLENBQUMsRUFBQyxJQUFJLEdBQUksU0FBUyxHQUFDO2dCQUFBLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsQ0FBQyxDQUFDLHVCQUF1QixHQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQztZQUFBO2dCQUFRLFdBQVksQ0FBQztvQkFBRSxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksR0FBRyxDQUFBO2dCQUFBLENBQUM7Z0JBQU0scUJBQVMsR0FBZixVQUFnQixDQUFDOzs7Ozs0QkFBRSxJQUFHLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0NBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7NEJBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7NEJBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzs0QkFBQSxzQkFBTyxDQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLFVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxLQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsRUFBQTs7O2lCQUFDO2dCQUFBLHVCQUFXLEdBQVgsVUFBWSxDQUFDLElBQUUsSUFBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO2dCQUFN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QyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxhQUFhLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsZUFBZSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGVBQWUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxxQkFBcUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxhQUFhLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFlBQVksRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxpQkFBaUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxnQkFBZ0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxrQkFBa0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx5QkFBeUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxvQ0FBb0MsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxzQ0FBc0MsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyw4QkFBOEIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxnQ0FBZ0MsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxhQUFhLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHFCQUFxQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHdCQUF3QixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxpQkFBaUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxvQkFBb0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxzQkFBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQywwQkFBMEIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx1Q0FBdUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx5Q0FBeUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQywyQkFBMkIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxpQ0FBaUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxtQ0FBbUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxlQUFlLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsb0JBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsaUNBQWlDLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMscUJBQXFCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsc0JBQXNCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsYUFBYSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGFBQWEsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxnQkFBZ0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxvQkFBb0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsYUFBYSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGlCQUFpQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGlCQUFpQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxnQkFBZ0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxlQUFlLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMscUJBQXFCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsc0JBQXNCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsaUJBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsd0JBQXdCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMscUJBQXFCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsdUJBQXVCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsc0JBQXNCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsdUJBQXVCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsMEJBQTBCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsZUFBZSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLG9CQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBQyxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxDQUFDO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFBLElBQUcsUUFBUSxJQUFFLE9BQU8sQ0FBQztnQkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFpQyxPQUFPLENBQUMsTUFBRyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBQyxFQUFDLE9BQU8sRUFBQyxLQUFLLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFBLENBQUEsQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBSyxJQUFFLEtBQUssS0FBRyxDQUFDLENBQUMsT0FBTyxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUUsSUFBSSxJQUFFLENBQUMsQ0FBQyxNQUFNLElBQUUsS0FBSyxDQUFDLEtBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxVQUFTLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEdBQUMsWUFBWSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsR0FBQyxhQUFhLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsQ0FBQyxDQUFDLEdBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFDLENBQUMsQ0FBQyxHQUFDLGlCQUFpQixFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFDLENBQUMsQ0FBQyxHQUFDLGlCQUFpQixFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFDLENBQUMsQ0FBQyxHQUFDLGlCQUFpQixFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsQ0FBQyxDQUFDLEdBQUMsa0JBQWtCLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixJQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixHQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsV0FBVyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsUUFBUSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsSUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsV0FBVyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFBLENBQUMsSUFBRSxPQUFBLFVBQVUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQWYsQ0FBZSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFD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SSxFQUFFLENBQUE7Z0JBRWxDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDbEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUM7UUFDSCxnQkFBQztJQUFELENBQUMsQUF0REQsQ0FBK0IsTUFBTSxHQXNEcEM7SUF0RFksOEJBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElUcmFuc2Zvcm1Db21wb25lbnQge1xuICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZFxuICB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWRcbiAgaGFzRmluaXNoZWQoKTogYm9vbGVhblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKTogdm9pZFxufVxuIiwiZXhwb3J0IGVudW0gSW50ZXJwb2xhdGlvblR5cGUge1xuICBMSU5FQVIsXG4gIEVBU0VJTlFVQUQsXG4gIEVBU0VPVVRRVUFELFxuICBFQVNFUVVBRFxufVxuXG5leHBvcnQgZnVuY3Rpb24gSW50ZXJwb2xhdGUodHlwZTogSW50ZXJwb2xhdGlvblR5cGUsIHQ6IG51bWJlcik6IG51bWJlciB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgSW50ZXJwb2xhdGlvblR5cGUuTElORUFSOlxuICAgICAgcmV0dXJuIEludGVycG9sYXRlTGluZWFyKHQpXG4gICAgY2FzZSBJbnRlcnBvbGF0aW9uVHlwZS5FQVNFSU5RVUFEOlxuICAgICAgcmV0dXJuIEludGVycG9sYXRlRWFzZUluUXVhZCh0KVxuICAgIGNhc2UgSW50ZXJwb2xhdGlvblR5cGUuRUFTRU9VVFFVQUQ6XG4gICAgICByZXR1cm4gSW50ZXJwb2xhdGVFYXNlT3V0UXVhZCh0KVxuICAgIGNhc2UgSW50ZXJwb2xhdGlvblR5cGUuRUFTRVFVQUQ6XG4gICAgICByZXR1cm4gSW50ZXJwb2xhdGVFYXNlUXVhZCh0KVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gSW50ZXJwb2xhdGVMaW5lYXIodClcbiAgfVxufVxuZnVuY3Rpb24gSW50ZXJwb2xhdGVMaW5lYXIodDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHRcbn1cbmZ1bmN0aW9uIEludGVycG9sYXRlRWFzZUluUXVhZCh0OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gdCAqIHRcbn1cbmZ1bmN0aW9uIEludGVycG9sYXRlRWFzZU91dFF1YWQodDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHQgKiAoMiAtIHQpXG59XG5mdW5jdGlvbiBJbnRlcnBvbGF0ZUVhc2VRdWFkKHQ6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiAodCAqIHQpIC8gKDIuMCAqICh0ICogdCAtIHQpICsgMS4wKVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5pbXBvcnQgeyBJbnRlcnBvbGF0aW9uVHlwZSwgSW50ZXJwb2xhdGUgfSBmcm9tICcuLi9tYXRoL2ludGVycG9sYXRpb24nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHJvdGF0ZSBlbnRpdHkgZnJvbSBvbmUgcm90YXRpb24gKHN0YXJ0KSB0byBhbm90aGVyIChlbmQpIGluIGFuIGFtb3VudCBvZiB0aW1lXG4gKi9cbkBDb21wb25lbnQoJ3JvdGF0ZVRyYW5zZm9ybUNvbXBvbmVudCcpXG5leHBvcnQgY2xhc3MgUm90YXRlVHJhbnNmb3JtQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhcnQ6IFJlYWRPbmx5UXVhdGVybmlvblxuICBwcml2YXRlIGVuZDogUmVhZE9ubHlRdWF0ZXJuaW9uXG4gIHByaXZhdGUgc3BlZWQ6IG51bWJlclxuICBwcml2YXRlIG5vcm1hbGl6ZWRUaW1lOiBudW1iZXJcbiAgcHJpdmF0ZSBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGVcbiAgcHJpdmF0ZSBsZXJwVGltZTogbnVtYmVyXG5cbiAgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcblxuICAvKipcbiAgICogQ3JlYXRlIGEgUm90YXRlVHJhbnNmb3JtQ29tcG9uZW50IGluc3RhbmNlIHRvIGFkZCBhcyBhIGNvbXBvbmVudCB0byBhIEVudGl0eVxuICAgKiBAcGFyYW0gc3RhcnQgc3RhcnRpbmcgcm90YXRpb25cbiAgICogQHBhcmFtIGVuZCBlbmRpbmcgcm90YXRpb25cbiAgICogQHBhcmFtIGR1cmF0aW9uIGR1cmF0aW9uIChpbiBzZWNvbmRzKSBvZiBzdGFydCB0byBlbmQgcm90YXRpb25cbiAgICogQHBhcmFtIG9uRmluaXNoQ2FsbGJhY2sgY2FsbGVkIHdoZW4gcm90YXRpb24gZW5kc1xuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGlvblR5cGUgdHlwZSBvZiBpbnRlcnBvbGF0aW9uIHRvIGJlIHVzZWQgKGRlZmF1bHQ6IExJTkVBUilcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXJ0OiBSZWFkT25seVF1YXRlcm5pb24sXG4gICAgZW5kOiBSZWFkT25seVF1YXRlcm5pb24sXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGUgPSBJbnRlcnBvbGF0aW9uVHlwZS5MSU5FQVJcbiAgKSB7XG4gICAgdGhpcy5zdGFydCA9IHN0YXJ0XG4gICAgdGhpcy5lbmQgPSBlbmRcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gMFxuICAgIHRoaXMubGVycFRpbWUgPSAwXG4gICAgdGhpcy5vbkZpbmlzaENhbGxiYWNrID0gb25GaW5pc2hDYWxsYmFja1xuICAgIHRoaXMuaW50ZXJwb2xhdGlvblR5cGUgPSBpbnRlcnBvbGF0aW9uVHlwZVxuXG4gICAgaWYgKGR1cmF0aW9uICE9IDApIHtcbiAgICAgIHRoaXMuc3BlZWQgPSAxIC8gZHVyYXRpb25cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcGVlZCA9IDBcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAxXG4gICAgICB0aGlzLmxlcnBUaW1lID0gMVxuICAgIH1cblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSBTY2FsYXIuQ2xhbXAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lICsgZHQgKiB0aGlzLnNwZWVkLFxuICAgICAgMCxcbiAgICAgIDFcbiAgICApXG4gICAgdGhpcy5sZXJwVGltZSA9IEludGVycG9sYXRlKHRoaXMuaW50ZXJwb2xhdGlvblR5cGUsIHRoaXMubm9ybWFsaXplZFRpbWUpXG4gIH1cblxuICBoYXNGaW5pc2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkVGltZSA+PSAxXG4gIH1cblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKSB7XG4gICAgdHJhbnNmb3JtLnJvdGF0aW9uID0gUXVhdGVybmlvbi5TbGVycCh0aGlzLnN0YXJ0LCB0aGlzLmVuZCwgdGhpcy5sZXJwVGltZSlcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5pbXBvcnQgeyBJbnRlcnBvbGF0aW9uVHlwZSwgSW50ZXJwb2xhdGUgfSBmcm9tICcuLi9tYXRoL2ludGVycG9sYXRpb24nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHNjYWxlIGVudGl0eSBmcm9tIG9uZSB2YWx1ZSAoc3RhcnQpIHRvIGFub3RoZXIgKGVuZCkgaW4gYW4gYW1vdW50IG9mIHRpbWVcbiAqL1xuQENvbXBvbmVudCgnc2NhbGVUcmFuc2Zvcm1Db21wb25lbnQnKVxuZXhwb3J0IGNsYXNzIFNjYWxlVHJhbnNmb3JtQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhcnQ6IFJlYWRPbmx5VmVjdG9yM1xuICBwcml2YXRlIGVuZDogUmVhZE9ubHlWZWN0b3IzXG4gIHByaXZhdGUgc3BlZWQ6IG51bWJlclxuICBwcml2YXRlIG5vcm1hbGl6ZWRUaW1lOiBudW1iZXJcbiAgcHJpdmF0ZSBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGVcbiAgcHJpdmF0ZSBsZXJwVGltZTogbnVtYmVyXG5cbiAgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcblxuICAvKipcbiAgICogQ3JlYXRlIGEgU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQgaW5zdGFuY2UgdG8gYWRkIGFzIGEgY29tcG9uZW50IHRvIGEgRW50aXR5XG4gICAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzY2FsZVxuICAgKiBAcGFyYW0gZW5kIGVuZGluZyBzY2FsZVxuICAgKiBAcGFyYW0gZHVyYXRpb24gZHVyYXRpb24gKGluIHNlY29uZHMpIG9mIHN0YXJ0IHRvIGVuZCBzY2FsaW5nXG4gICAqIEBwYXJhbSBvbkZpbmlzaENhbGxiYWNrIGNhbGxlZCB3aGVuIHNjYWxpbmcgZW5kc1xuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGlvblR5cGUgdHlwZSBvZiBpbnRlcnBvbGF0aW9uIHRvIGJlIHVzZWQgKGRlZmF1bHQ6IExJTkVBUilcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXJ0OiBSZWFkT25seVZlY3RvcjMsXG4gICAgZW5kOiBSZWFkT25seVZlY3RvcjMsXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGUgPSBJbnRlcnBvbGF0aW9uVHlwZS5MSU5FQVJcbiAgKSB7XG4gICAgdGhpcy5zdGFydCA9IHN0YXJ0XG4gICAgdGhpcy5lbmQgPSBlbmRcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gMFxuICAgIHRoaXMubGVycFRpbWUgPSAwXG4gICAgdGhpcy5vbkZpbmlzaENhbGxiYWNrID0gb25GaW5pc2hDYWxsYmFja1xuICAgIHRoaXMuaW50ZXJwb2xhdGlvblR5cGUgPSBpbnRlcnBvbGF0aW9uVHlwZVxuXG4gICAgaWYgKGR1cmF0aW9uICE9IDApIHtcbiAgICAgIHRoaXMuc3BlZWQgPSAxIC8gZHVyYXRpb25cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcGVlZCA9IDBcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAxXG4gICAgICB0aGlzLmxlcnBUaW1lID0gMVxuICAgIH1cblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSBTY2FsYXIuQ2xhbXAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lICsgZHQgKiB0aGlzLnNwZWVkLFxuICAgICAgMCxcbiAgICAgIDFcbiAgICApXG4gICAgdGhpcy5sZXJwVGltZSA9IEludGVycG9sYXRlKHRoaXMuaW50ZXJwb2xhdGlvblR5cGUsIHRoaXMubm9ybWFsaXplZFRpbWUpXG4gIH1cblxuICBoYXNGaW5pc2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkVGltZSA+PSAxXG4gIH1cblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKSB7XG4gICAgdHJhbnNmb3JtLnNjYWxlID0gVmVjdG9yMy5MZXJwKHRoaXMuc3RhcnQsIHRoaXMuZW5kLCB0aGlzLmxlcnBUaW1lKVxuICB9XG59XG4iLCJpbXBvcnQgeyBJVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9pdHJhbnNmb3JtY29tcG9uZW50J1xuaW1wb3J0IHsgVHJhbnNmb3JtU3lzdGVtIH0gZnJvbSAnLi4vc3lzdGVtL3RyYW5zZnJvbVN5c3RlbSdcblxuLyoqXG4gKiBDb21wb25lbnQgdG8gbW92ZSBhIGVudGl0eSBkb3duIGEgZml4ZWQgcGF0aCBpbiBhbiBhbW91bnQgb2YgdGltZVxuICovXG5AQ29tcG9uZW50KCdmb2xsb3dQYXRoQ29tcG9uZW50JylcbmV4cG9ydCBjbGFzcyBGb2xsb3dQYXRoQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcG9pbnRzOiBWZWN0b3IzW11cbiAgcHJpdmF0ZSBzcGVlZDogbnVtYmVyW10gPSBbXVxuICBwcml2YXRlIG5vcm1hbGl6ZWRUaW1lOiBudW1iZXJcbiAgcHJpdmF0ZSBjdXJyZW50SW5kZXg6IG51bWJlclxuXG4gIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkXG4gIG9uUG9pbnRSZWFjaGVkQ2FsbGJhY2s/OiAoY3VycmVudFBvaW50OiBWZWN0b3IzLCBuZXh0UG9pbnQ6IFZlY3RvcjMpID0+IHZvaWRcblxuICAvKipcbiAgICogQ3JlYXRlIGEgRm9sbG93UGF0aENvbXBvbmVudCBpbnN0YW5jZSB0byBhZGQgYXMgYSBjb21wb25lbnQgdG8gYSBFbnRpdHlcbiAgICogQHBhcmFtIHBvaW50cyBhcnJheSBvZiBwb2ludHMgZm9yIHRoZSBwYXRoXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBkdXJhdGlvbiBvZiB0aGUgbW92ZW1lbnQgdGhyb3VnaCB0aGUgcGF0aFxuICAgKiBAcGFyYW0gb25GaW5pc2hDYWxsYmFjayBjYWxsZWQgd2hlbiBtb3ZlbWVudCBlbmRzXG4gICAqIEBwYXJhbSBvblBvaW50UmVhY2hlZENhbGxiYWNrIGNhbGxlZCBldmVyeXRpbWUgYW4gZW50aXR5IHJlYWNoZXMgYSBwb2ludCBvZiB0aGUgcGF0aFxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcG9pbnRzOiBWZWN0b3IzW10sXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBvblBvaW50UmVhY2hlZENhbGxiYWNrPzogKGN1cnJlbnRQb2ludDogVmVjdG9yMywgbmV4dFBvaW50OiBWZWN0b3IzKSA9PiB2b2lkXG4gICkge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAwXG4gICAgdGhpcy5jdXJyZW50SW5kZXggPSAwXG4gICAgdGhpcy5wb2ludHMgPSBwb2ludHNcbiAgICB0aGlzLm9uRmluaXNoQ2FsbGJhY2sgPSBvbkZpbmlzaENhbGxiYWNrXG4gICAgdGhpcy5vblBvaW50UmVhY2hlZENhbGxiYWNrID0gb25Qb2ludFJlYWNoZWRDYWxsYmFja1xuXG4gICAgaWYgKHBvaW50cy5sZW5ndGggPCAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IDIgcG9pbnRzIGFyZSBuZWVkZWQgZm9yIEZvbGxvd1BhdGhDb21wb25lbnQuJylcbiAgICB9XG5cbiAgICBpZiAoZHVyYXRpb24gPiAwKSB7XG4gICAgICBsZXQgc3FUb3RhbERpc3QgPSAwXG4gICAgICBsZXQgc3FQb2ludHNEaXN0ID0gW11cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICBsZXQgc3FEaXN0ID0gVmVjdG9yMy5EaXN0YW5jZVNxdWFyZWQocG9pbnRzW2ldLCBwb2ludHNbaSArIDFdKVxuICAgICAgICBzcVRvdGFsRGlzdCArPSBzcURpc3RcbiAgICAgICAgc3FQb2ludHNEaXN0LnB1c2goc3FEaXN0KVxuICAgICAgfVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcVBvaW50c0Rpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5zcGVlZC5wdXNoKDEgLyAoKHNxUG9pbnRzRGlzdFtpXSAvIHNxVG90YWxEaXN0KSAqIGR1cmF0aW9uKSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IDFcbiAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gcG9pbnRzLmxlbmd0aCAtIDJcbiAgICB9XG5cbiAgICBUcmFuc2Zvcm1TeXN0ZW0uY3JlYXRlQW5kQWRkVG9FbmdpbmUoKVxuICB9XG5cbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gU2NhbGFyLkNsYW1wKFxuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSArIGR0ICogdGhpcy5zcGVlZFt0aGlzLmN1cnJlbnRJbmRleF0sXG4gICAgICAwLFxuICAgICAgMVxuICAgIClcbiAgICBpZiAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID49IDEgJiZcbiAgICAgIHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5wb2ludHMubGVuZ3RoIC0gMlxuICAgICkge1xuICAgICAgdGhpcy5jdXJyZW50SW5kZXgrK1xuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IDBcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5vblBvaW50UmVhY2hlZENhbGxiYWNrICYmXG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5wb2ludHMubGVuZ3RoIC0gMVxuICAgICAgKVxuICAgICAgICB0aGlzLm9uUG9pbnRSZWFjaGVkQ2FsbGJhY2soXG4gICAgICAgICAgdGhpcy5wb2ludHNbdGhpcy5jdXJyZW50SW5kZXhdLFxuICAgICAgICAgIHRoaXMucG9pbnRzW3RoaXMuY3VycmVudEluZGV4ICsgMV1cbiAgICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGhhc0ZpbmlzaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmN1cnJlbnRJbmRleCA+PSB0aGlzLnBvaW50cy5sZW5ndGggLSAyICYmIHRoaXMubm9ybWFsaXplZFRpbWUgPj0gMVxuICAgIClcbiAgfVxuXG4gIGFzc2lnblZhbHVlVG9UcmFuc2Zvcm0odHJhbnNmb3JtOiBUcmFuc2Zvcm0pIHtcbiAgICB0cmFuc2Zvcm0ucG9zaXRpb24gPSBWZWN0b3IzLkxlcnAoXG4gICAgICB0aGlzLnBvaW50c1t0aGlzLmN1cnJlbnRJbmRleF0sXG4gICAgICB0aGlzLnBvaW50c1t0aGlzLmN1cnJlbnRJbmRleCArIDFdLFxuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZVxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHJvdGF0ZSBlbnRpdHkgaW5kZWZpbml0ZWx5IHVudGlsIHN0b3AgaXMgY2FsbGVkXG4gKi9cbkBDb21wb25lbnQoJ2tlZXBSb3RhdGluZ0NvbXBvbmVudCcpXG5leHBvcnQgY2xhc3MgS2VlcFJvdGF0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkXG5cbiAgcHJpdmF0ZSByb3RhdGlvblZlbG9jaXR5OiBRdWF0ZXJuaW9uXG4gIHByaXZhdGUgcm90YXRpb246IFF1YXRlcm5pb25cbiAgcHJpdmF0ZSBmaW5pc2hlZDogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBSb3RhdGVzIGFuIGVudGl0eSBjb250aW51b3VzbHkuIFRoZSBlbnRpdHkgd2lsbCBrZWVwIHJvdGF0aW5nIGZvcmV2ZXIgdW50aWwgaXQncyBleHBsaWNpdGx5IHN0b3BwZWQgb3IgdGhlIGNvbXBvbmVudCBpcyByZW1vdmVkLlxuICAgKiBAcGFyYW0gcm90YXRpb25WZWxvY2l0eSBhIHF1YXRlcm5pb24gZGVzY3JpYmluZyB0aGUgZGVzaXJlZCByb3RhdGlvbiB0byBwZXJmb3JtIGVhY2ggc2Vjb25kIHNlY29uZFxuICAgKiBAcGFyYW0gb25GaW5pc2hDYWxsYmFjayBjYWxsZWQgd2hlbiByb3RhdGlvbiBlbmRzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihyb3RhdGlvblZlbG9jaXR5OiBRdWF0ZXJuaW9uLCBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMucm90YXRpb25WZWxvY2l0eSA9IHJvdGF0aW9uVmVsb2NpdHlcbiAgICB0aGlzLm9uRmluaXNoQ2FsbGJhY2sgPSBvbkZpbmlzaENhbGxiYWNrXG4gICAgdGhpcy5yb3RhdGlvbiA9IFF1YXRlcm5pb24uSWRlbnRpdHlcbiAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2VcblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucm90YXRpb24gPSBRdWF0ZXJuaW9uLlNsZXJwKFxuICAgICAgUXVhdGVybmlvbi5JZGVudGl0eSxcbiAgICAgIHRoaXMucm90YXRpb25WZWxvY2l0eSxcbiAgICAgIGR0XG4gICAgKVxuICB9XG5cbiAgaGFzRmluaXNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmluaXNoZWRcbiAgfVxuXG4gIGFzc2lnblZhbHVlVG9UcmFuc2Zvcm0odHJhbnNmb3JtOiBUcmFuc2Zvcm0pOiB2b2lkIHtcbiAgICB0cmFuc2Zvcm0ucm90YXRpb24gPSB0cmFuc2Zvcm0ucm90YXRpb24ubXVsdGlwbHkodGhpcy5yb3RhdGlvbilcbiAgfVxuXG4gIHN0b3AoKSB7XG4gICAgdGhpcy5maW5pc2hlZCA9IHRydWVcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC9pdHJhbnNmb3JtY29tcG9uZW50J1xuaW1wb3J0IHsgTW92ZVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC9tb3ZlJ1xuaW1wb3J0IHsgUm90YXRlVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L3JvdGF0ZSdcbmltcG9ydCB7IFNjYWxlVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L3NjYWxlJ1xuaW1wb3J0IHsgRm9sbG93UGF0aENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC9mb2xsb3dwYXRoJ1xuaW1wb3J0IHsgS2VlcFJvdGF0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L2tlZXByb3RhdGluZydcblxuZXhwb3J0IGNsYXNzIFRyYW5zZm9ybVN5c3RlbSBpbXBsZW1lbnRzIElTeXN0ZW0ge1xuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IFRyYW5zZm9ybVN5c3RlbSB8IG51bGwgPSBudWxsXG5cbiAgcHJpdmF0ZSBfY29tcG9uZW50czogQ29tcG9uZW50Q29uc3RydWN0b3I8SVRyYW5zZm9ybUNvbXBvbmVudD5bXSA9IFtdXG5cbiAgc3RhdGljIGNyZWF0ZUFuZEFkZFRvRW5naW5lKCk6IFRyYW5zZm9ybVN5c3RlbSB7XG4gICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpIHtcbiAgICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IFRyYW5zZm9ybVN5c3RlbSgpXG4gICAgICBlbmdpbmUuYWRkU3lzdGVtKHRoaXMuX2luc3RhbmNlKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faW5zdGFuY2VcbiAgfVxuXG4gIHN0YXRpYyByZWdpc3RlckN1c3RvbUNvbXBvbmVudDxUIGV4dGVuZHMgSVRyYW5zZm9ybUNvbXBvbmVudD4oXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRDb25zdHJ1Y3RvcjxUPlxuICApIHtcbiAgICB0aGlzLmNyZWF0ZUFuZEFkZFRvRW5naW5lKCkuX2NvbXBvbmVudHMucHVzaChjb21wb25lbnQpXG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgIFRyYW5zZm9ybVN5c3RlbS5faW5zdGFuY2UgPSB0aGlzXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKE1vdmVUcmFuc2Zvcm1Db21wb25lbnQpXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKFJvdGF0ZVRyYW5zZm9ybUNvbXBvbmVudClcbiAgICB0aGlzLl9jb21wb25lbnRzLnB1c2goU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQpXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEZvbGxvd1BhdGhDb21wb25lbnQpXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEtlZXBSb3RhdGluZ0NvbXBvbmVudClcbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKSB7XG4gICAgdGhpcy5fY29tcG9uZW50cy5mb3JFYWNoKGNvbXBvbmVudCA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudChkdCwgY29tcG9uZW50KVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbXBvbmVudDxUIGV4dGVuZHMgSVRyYW5zZm9ybUNvbXBvbmVudD4oXG4gICAgZHQ6IG51bWJlcixcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudENvbnN0cnVjdG9yPFQ+XG4gICkge1xuICAgIGNvbnN0IGdyb3VwID0gZW5naW5lLmdldENvbXBvbmVudEdyb3VwKGNvbXBvbmVudCwgVHJhbnNmb3JtKVxuXG4gICAgZ3JvdXAuZW50aXRpZXMuZm9yRWFjaChlbnRpdHkgPT4ge1xuICAgICAgY29uc3QgdHJhbnNmb3JtID0gZW50aXR5LmdldENvbXBvbmVudChUcmFuc2Zvcm0pXG4gICAgICBjb25zdCBjb21wID0gZW50aXR5LmdldENvbXBvbmVudChjb21wb25lbnQpXG5cbiAgICAgIGNvbXAudXBkYXRlKGR0KVxuICAgICAgY29tcC5hc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybSlcbiAgICAgIGlmIChjb21wLmhhc0ZpbmlzaGVkKCkpIHtcbiAgICAgICAgZW50aXR5LnJlbW92ZUNvbXBvbmVudChjb21wKVxuICAgICAgICBpZiAoY29tcC5vbkZpbmlzaENhbGxiYWNrICE9IG51bGwpIGNvbXAub25GaW5pc2hDYWxsYmFjaygpXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5pbXBvcnQgeyBJbnRlcnBvbGF0aW9uVHlwZSwgSW50ZXJwb2xhdGUgfSBmcm9tICcuLi9tYXRoL2ludGVycG9sYXRpb24nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHRyYW5zbGF0ZSBlbnRpdHkgZnJvbSBvbmUgcG9zaXRpb24gKHN0YXJ0KSB0byBhbm90aGVyIChlbmQpIGluIGFuIGFtb3VudCBvZiB0aW1lXG4gKi9cbkBDb21wb25lbnQoJ21vdmVUcmFuc2Zvcm1Db21wb25lbnQnKVxuZXhwb3J0IGNsYXNzIE1vdmVUcmFuc2Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBJVHJhbnNmb3JtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzdGFydDogUmVhZE9ubHlWZWN0b3IzXG4gIHByaXZhdGUgZW5kOiBSZWFkT25seVZlY3RvcjNcbiAgcHJpdmF0ZSBzcGVlZDogbnVtYmVyXG4gIHByaXZhdGUgbm9ybWFsaXplZFRpbWU6IG51bWJlclxuICBwcml2YXRlIGludGVycG9sYXRpb25UeXBlOiBJbnRlcnBvbGF0aW9uVHlwZVxuICBwcml2YXRlIGxlcnBUaW1lOiBudW1iZXJcblxuICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBNb3ZlVHJhbnNmb3JtQ29tcG9uZW50IGluc3RhbmNlIHRvIGFkZCBhcyBhIGNvbXBvbmVudCB0byBhIEVudGl0eVxuICAgKiBAcGFyYW0gc3RhcnQgc3RhcnRpbmcgcG9zaXRpb25cbiAgICogQHBhcmFtIGVuZCBlbmRpbmcgcG9zaXRpb25cbiAgICogQHBhcmFtIGR1cmF0aW9uIGR1cmF0aW9uIChpbiBzZWNvbmRzKSBvZiBzdGFydCB0byBlbmQgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtIG9uRmluaXNoQ2FsbGJhY2sgY2FsbGVkIHdoZW4gdHJhbnNsYXRpb24gZW5kc1xuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGlvblR5cGUgdHlwZSBvZiBpbnRlcnBvbGF0aW9uIHRvIGJlIHVzZWQgKGRlZmF1bHQ6IExJTkVBUilcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXJ0OiBSZWFkT25seVZlY3RvcjMsXG4gICAgZW5kOiBSZWFkT25seVZlY3RvcjMsXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGUgPSBJbnRlcnBvbGF0aW9uVHlwZS5MSU5FQVJcbiAgKSB7XG4gICAgdGhpcy5zdGFydCA9IHN0YXJ0XG4gICAgdGhpcy5lbmQgPSBlbmRcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gMFxuICAgIHRoaXMubGVycFRpbWUgPSAwXG4gICAgdGhpcy5vbkZpbmlzaENhbGxiYWNrID0gb25GaW5pc2hDYWxsYmFja1xuICAgIHRoaXMuaW50ZXJwb2xhdGlvblR5cGUgPSBpbnRlcnBvbGF0aW9uVHlwZVxuXG4gICAgaWYgKGR1cmF0aW9uICE9IDApIHtcbiAgICAgIHRoaXMuc3BlZWQgPSAxIC8gZHVyYXRpb25cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcGVlZCA9IDBcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAxXG4gICAgICB0aGlzLmxlcnBUaW1lID0gMVxuICAgIH1cblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSBTY2FsYXIuQ2xhbXAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lICsgZHQgKiB0aGlzLnNwZWVkLFxuICAgICAgMCxcbiAgICAgIDFcbiAgICApXG4gICAgdGhpcy5sZXJwVGltZSA9IEludGVycG9sYXRlKHRoaXMuaW50ZXJwb2xhdGlvblR5cGUsIHRoaXMubm9ybWFsaXplZFRpbWUpXG4gIH1cblxuICBoYXNGaW5pc2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkVGltZSA+PSAxXG4gIH1cblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKSB7XG4gICAgdHJhbnNmb3JtLnBvc2l0aW9uID0gVmVjdG9yMy5MZXJwKHRoaXMuc3RhcnQsIHRoaXMuZW5kLCB0aGlzLmxlcnBUaW1lKVxuICB9XG59XG4iLCJleHBvcnQgZW51bSBUb2dnbGVTdGF0ZSB7XG4gIE9mZiA9IDAsXG4gIE9uXG59XG5cbi8qKlxuICogVG9nZ2xlIGNvbXBvbmVudCBmb3IgZW50aXRpZXMgd2l0aCB0d28gc3RhdGVzIChPTiBvciBPRkYpXG4gKi9cbkBDb21wb25lbnQoJ3RvZ2dsZScpXG5leHBvcnQgY2xhc3MgVG9nZ2xlQ29tcG9uZW50IHtcbiAgcHVibGljIGVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlXG5cbiAgcHJpdmF0ZSBvblZhbHVlQ2hhbmdlZENhbGxiYWNrPzogKHZhbHVlOiBUb2dnbGVTdGF0ZSkgPT4gdm9pZFxuICBwcml2YXRlIHN0YXRlOiBUb2dnbGVTdGF0ZSA9IFRvZ2dsZVN0YXRlLk9mZlxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYSBUb2dnbGVDb21wb25lbnRcbiAgICogQHBhcmFtIHN0YXJ0aW5nU3RhdGUgc3RhcnRpbmcgc3RhdGUgb2YgdGhlIHRvZ2dsZSAoT04gb3IgT0ZGKVxuICAgKiBAcGFyYW0gb25WYWx1ZUNoYW5nZWRDYWxsYmFjayBjYWxsZWQgd2hlbiB0b2dnbGUgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc3RhcnRpbmdTdGF0ZTogVG9nZ2xlU3RhdGUgPSBUb2dnbGVTdGF0ZS5PbixcbiAgICBvblZhbHVlQ2hhbmdlZENhbGxiYWNrPzogKHZhbHVlOiBUb2dnbGVTdGF0ZSkgPT4gdm9pZFxuICApIHtcbiAgICB0aGlzLnNldChzdGFydGluZ1N0YXRlKVxuICAgIGlmIChvblZhbHVlQ2hhbmdlZENhbGxiYWNrKSB0aGlzLnNldENhbGxiYWNrKG9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2spXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRyaWdnZXIgdG8gYSBzdGF0ZVxuICAgKiBAcGFyYW0gc3RhdGUgbmV3IHN0YXRlXG4gICAqL1xuICBwdWJsaWMgc2V0KHN0YXRlOiBUb2dnbGVTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZVxuICAgIGlmICh0aGlzLm9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2spIHRoaXMub25WYWx1ZUNoYW5nZWRDYWxsYmFjayhzdGF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgc3RhdGUgb2YgVG9nZ2xlQ29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2V0KDEgLSB0aGlzLnN0YXRlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaWYgY3VycmVudCB0b2dnbGUgc3RhdGUgaXMgT05cbiAgICovXG4gIHB1YmxpYyBpc09uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09IFRvZ2dsZVN0YXRlLk9uXG4gIH1cblxuICAvKipcbiAgICogU2V0IGNhbGxiYWNrIGZvciB3aGVuIFRvZ2dsZUNvbXBvbmVudCBzdGF0ZSBjaGFuZ2VkXG4gICAqIEBwYXJhbSBvblZhbHVlQ2hhbmdlZENhbGxiYWNrIGNhbGxiYWNrXG4gICAqL1xuICBwdWJsaWMgc2V0Q2FsbGJhY2soXG4gICAgb25WYWx1ZUNoYW5nZWRDYWxsYmFjazogKHZhbHVlOiBUb2dnbGVTdGF0ZSkgPT4gdm9pZFxuICApOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2sgPSBvblZhbHVlQ2hhbmdlZENhbGxiYWNrXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBUb2dnbGVDb21wb25lbnQsXG4gIFRvZ2dsZVN0YXRlXG59XG4iLCJleHBvcnQgaW50ZXJmYWNlIElUaW1lckNvbXBvbmVudCB7XHJcbiAgZWxhcHNlZFRpbWU6IG51bWJlclxyXG4gIHRhcmdldFRpbWU6IG51bWJlclxyXG4gIG9uVGFyZ2V0VGltZVJlYWNoZWQ6IChvd25lckVudGl0eTogSUVudGl0eSkgPT4gdm9pZFxyXG59XHJcbiIsImltcG9ydCB7IElUaW1lckNvbXBvbmVudCB9IGZyb20gJy4vaXRpbWVyY29tcG9uZW50J1xyXG5pbXBvcnQgeyBUaW1lclN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90aW1lclN5c3RlbSdcclxuXHJcbi8qKlxyXG4gKiBFeGVjdXRlIGV2ZXJ5IFggbWlsbGlzZWNvbmRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KCd0aW1lckludGVydmFsJylcclxuZXhwb3J0IGNsYXNzIEludGVydmFsIGltcGxlbWVudHMgSVRpbWVyQ29tcG9uZW50IHtcclxuICBlbGFwc2VkVGltZTogbnVtYmVyXHJcbiAgdGFyZ2V0VGltZTogbnVtYmVyXHJcbiAgb25UYXJnZXRUaW1lUmVhY2hlZDogKG93bmVyRW50aXR5OiBJRW50aXR5KSA9PiB2b2lkXHJcblxyXG4gIHByaXZhdGUgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZFxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWlsbGlzZWNzIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqIEBwYXJhbSBvblRpbWVSZWFjaGVkQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIHdoZW4gdGltZSBpcyByZWFjaGVkXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IobWlsbGlzZWNzOiBudW1iZXIsIG9uVGltZVJlYWNoZWRDYWxsYmFjaz86ICgpID0+IHZvaWQpIHtcclxuICAgIFRpbWVyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcclxuXHJcbiAgICB0aGlzLmVsYXBzZWRUaW1lID0gMFxyXG4gICAgdGhpcy50YXJnZXRUaW1lID0gbWlsbGlzZWNzIC8gMTAwMFxyXG4gICAgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2sgPSBvblRpbWVSZWFjaGVkQ2FsbGJhY2tcclxuICAgIHRoaXMub25UYXJnZXRUaW1lUmVhY2hlZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5lbGFwc2VkVGltZSA9IDBcclxuICAgICAgaWYgKHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrKSB0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjaygpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYWxsYmFjayhvblRpbWVSZWFjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrID0gb25UaW1lUmVhY2hlZENhbGxiYWNrXHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCB7IElUaW1lckNvbXBvbmVudCB9IGZyb20gJy4vaXRpbWVyY29tcG9uZW50J1xyXG5pbXBvcnQgeyBUaW1lclN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90aW1lclN5c3RlbSdcclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgZW50aXR5IGFmdGVyIFggbWlsbGlzZWNvbmRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KCd0aW1lckV4cGlyZUluJylcclxuZXhwb3J0IGNsYXNzIEV4cGlyZUluIGltcGxlbWVudHMgSVRpbWVyQ29tcG9uZW50IHtcclxuICBlbGFwc2VkVGltZTogbnVtYmVyXHJcbiAgdGFyZ2V0VGltZTogbnVtYmVyXHJcbiAgb25UYXJnZXRUaW1lUmVhY2hlZDogKG93bmVyRW50aXR5OiBJRW50aXR5KSA9PiB2b2lkXHJcblxyXG4gIHByaXZhdGUgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZFxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWlsbGlzZWNzIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqIEBwYXJhbSBvblRpbWVSZWFjaGVkQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIHdoZW4gdGltZSBpcyByZWFjaGVkXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IobWlsbGlzZWNzOiBudW1iZXIsIG9uVGltZVJlYWNoZWRDYWxsYmFjaz86ICgpID0+IHZvaWQpIHtcclxuICAgIFRpbWVyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcclxuXHJcbiAgICB0aGlzLmVsYXBzZWRUaW1lID0gMFxyXG4gICAgdGhpcy50YXJnZXRUaW1lID0gbWlsbGlzZWNzIC8gMTAwMFxyXG4gICAgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2sgPSBvblRpbWVSZWFjaGVkQ2FsbGJhY2tcclxuICAgIHRoaXMub25UYXJnZXRUaW1lUmVhY2hlZCA9IGVudGl0eSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjaykgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2soKVxyXG4gICAgICBlbnRpdHkucmVtb3ZlQ29tcG9uZW50KHRoaXMpXHJcbiAgICAgIGVuZ2luZS5yZW1vdmVFbnRpdHkoZW50aXR5KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q2FsbGJhY2sob25UaW1lUmVhY2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XHJcbiAgICB0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjayA9IG9uVGltZVJlYWNoZWRDYWxsYmFja1xyXG4gIH1cclxufVxyXG4iLCJpbXBvcnQgeyBJVGltZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQvaXRpbWVyY29tcG9uZW50J1xyXG5pbXBvcnQgeyBJbnRlcnZhbCB9IGZyb20gJy4uL2NvbXBvbmVudC9pbnRlcnZhbCdcclxuaW1wb3J0IHsgRGVsYXkgfSBmcm9tICcuLi9jb21wb25lbnQvZGVsYXknXHJcbmltcG9ydCB7IEV4cGlyZUluIH0gZnJvbSAnLi4vY29tcG9uZW50L2V4cGlyZSdcclxuXHJcbmV4cG9ydCBjbGFzcyBUaW1lclN5c3RlbSBpbXBsZW1lbnRzIElTeXN0ZW0ge1xyXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogVGltZXJTeXN0ZW0gfCBudWxsID0gbnVsbFxyXG5cclxuICBwcml2YXRlIF9jb21wb25lbnRzOiBDb21wb25lbnRDb25zdHJ1Y3RvcjxJVGltZXJDb21wb25lbnQ+W10gPSBbXVxyXG5cclxuICBzdGF0aWMgY3JlYXRlQW5kQWRkVG9FbmdpbmUoKTogVGltZXJTeXN0ZW0ge1xyXG4gICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpIHtcclxuICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgVGltZXJTeXN0ZW0oKVxyXG4gICAgICBlbmdpbmUuYWRkU3lzdGVtKHRoaXMuX2luc3RhbmNlKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlXHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVnaXN0ZXJDdXN0b21Db21wb25lbnQ8VCBleHRlbmRzIElUaW1lckNvbXBvbmVudD4oXHJcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudENvbnN0cnVjdG9yPFQ+XHJcbiAgKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUFuZEFkZFRvRW5naW5lKCkuX2NvbXBvbmVudHMucHVzaChjb21wb25lbnQpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgVGltZXJTeXN0ZW0uX2luc3RhbmNlID0gdGhpc1xyXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEludGVydmFsKVxyXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKERlbGF5KVxyXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEV4cGlyZUluKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2NvbXBvbmVudHMuZm9yRWFjaChjb21wb25lbnQgPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudChkdCwgY29tcG9uZW50KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ29tcG9uZW50PFQgZXh0ZW5kcyBJVGltZXJDb21wb25lbnQ+KFxyXG4gICAgZHQ6IG51bWJlcixcclxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50Q29uc3RydWN0b3I8VD5cclxuICApIHtcclxuICAgIGxldCByZWNvcmQgPSBlbmdpbmUuZ2V0RW50aXRpZXNXaXRoQ29tcG9uZW50KGNvbXBvbmVudClcclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiByZWNvcmQpIHtcclxuICAgICAgaWYgKHJlY29yZC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgbGV0IGVudGl0eSA9IHJlY29yZFtrZXldXHJcbiAgICAgICAgbGV0IHRpbWVyQ29tcG9uZW50ID0gZW50aXR5LmdldENvbXBvbmVudChjb21wb25lbnQpXHJcblxyXG4gICAgICAgIHRpbWVyQ29tcG9uZW50LmVsYXBzZWRUaW1lICs9IGR0XHJcbiAgICAgICAgaWYgKHRpbWVyQ29tcG9uZW50LmVsYXBzZWRUaW1lID49IHRpbWVyQ29tcG9uZW50LnRhcmdldFRpbWUpIHtcclxuICAgICAgICAgIHRpbWVyQ29tcG9uZW50Lm9uVGFyZ2V0VGltZVJlYWNoZWQoZW50aXR5KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJpbXBvcnQgeyBJVGltZXJDb21wb25lbnQgfSBmcm9tICcuL2l0aW1lcmNvbXBvbmVudCdcclxuaW1wb3J0IHsgVGltZXJTeXN0ZW0gfSBmcm9tICcuLi9zeXN0ZW0vdGltZXJTeXN0ZW0nXHJcblxyXG4vKipcclxuICogRXhlY3V0ZSBvbmNlIGFmdGVyIFggbWlsbGlzZWNvbmRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KCd0aW1lckRlbGF5JylcclxuZXhwb3J0IGNsYXNzIERlbGF5IGltcGxlbWVudHMgSVRpbWVyQ29tcG9uZW50IHtcclxuICBlbGFwc2VkVGltZTogbnVtYmVyXHJcbiAgdGFyZ2V0VGltZTogbnVtYmVyXHJcbiAgb25UYXJnZXRUaW1lUmVhY2hlZDogKG93bmVyRW50aXR5OiBJRW50aXR5KSA9PiB2b2lkXHJcblxyXG4gIHByaXZhdGUgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZFxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWlsbGlzZWNzIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqIEBwYXJhbSBvblRpbWVSZWFjaGVkQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIHdoZW4gdGltZSBpcyByZWFjaGVkXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IobWlsbGlzZWNzOiBudW1iZXIsIG9uVGltZVJlYWNoZWRDYWxsYmFjaz86ICgpID0+IHZvaWQpIHtcclxuICAgIFRpbWVyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcclxuXHJcbiAgICB0aGlzLmVsYXBzZWRUaW1lID0gMFxyXG4gICAgdGhpcy50YXJnZXRUaW1lID0gbWlsbGlzZWNzIC8gMTAwMFxyXG4gICAgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2sgPSBvblRpbWVSZWFjaGVkQ2FsbGJhY2tcclxuICAgIHRoaXMub25UYXJnZXRUaW1lUmVhY2hlZCA9IGVudGl0eSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjaykgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2soKVxyXG4gICAgICBlbnRpdHkucmVtb3ZlQ29tcG9uZW50KHRoaXMpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYWxsYmFjayhvblRpbWVSZWFjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrID0gb25UaW1lUmVhY2hlZENhbGxiYWNrXHJcbiAgfVxyXG59XHJcbiIsImV4cG9ydCBjbGFzcyBUcmlnZ2VyU3lzdGVtIGltcGxlbWVudHMgSVN5c3RlbSB7XG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogVHJpZ2dlclN5c3RlbSB8IG51bGwgPSBudWxsXG4gIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogVHJpZ2dlclN5c3RlbSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQW5kQWRkVG9FbmdpbmUoKVxuICB9XG5cbiAgcHJpdmF0ZSBfdHJpZ2dlcnM6IFJlY29yZDxzdHJpbmcsIFRyaWdnZXJXcmFwcGVyPiA9IHt9XG4gIHByaXZhdGUgX2NhbWVyYVRyaWdnZXJXcmFwcGVyOiBDYW1lcmFUcmlnZ2VyXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICBUcmlnZ2VyU3lzdGVtLl9pbnN0YW5jZSA9IHRoaXNcbiAgICB0aGlzLl9jYW1lcmFUcmlnZ2VyV3JhcHBlciA9IG5ldyBDYW1lcmFUcmlnZ2VyKFxuICAgICAgbmV3IFRyaWdnZXJCb3hTaGFwZShuZXcgVmVjdG9yMygwLjUsIDEuOCwgMC41KSwgbmV3IFZlY3RvcjMoMCwgMC45MSwgMCkpXG4gICAgKVxuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUFuZEFkZFRvRW5naW5lKCk6IFRyaWdnZXJTeXN0ZW0ge1xuICAgIGlmICh0aGlzLl9pbnN0YW5jZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBUcmlnZ2VyU3lzdGVtKClcbiAgICAgIGVuZ2luZS5hZGRTeXN0ZW0odGhpcy5faW5zdGFuY2UpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZVxuICB9XG5cbiAgLyoqXG4gICAqIHNldCBhIGN1c3RvbSB0cmlnZ2VyJ3Mgc2hhcGUgZm9yIHRoZSBjYW1lcmFcbiAgICogQHBhcmFtIHNoYXBlIGN1c3RvbSB0cmlnZ2VyJ3Mgc2hhcGVcbiAgICovXG4gIHNldENhbWVyYVRyaWdnZXJTaGFwZShzaGFwZTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlKSB7XG4gICAgdGhpcy5fY2FtZXJhVHJpZ2dlcldyYXBwZXIuc2V0U2hhcGUoc2hhcGUpXG4gIH1cblxuICB1cGRhdGUoKSB7XG4gICAgLy9nZXQgZW50aXRpZXMgd2l0aCB0cmlnZ2VyIGNvbXBvbmVudFxuICAgIGxldCBlbnRpdGllc1dpdGhUcmlnZ2VycyA9IGVuZ2luZS5nZXRDb21wb25lbnRHcm91cChUcmlnZ2VyQ29tcG9uZW50KVxuICAgICAgLmVudGl0aWVzXG5cbiAgICAvL2l0ZXJhdGUgdGhyb3VnaCBhbGwgZW50aXRpZXMgd2l0aCB0cmlnZ2VycyBhbmQgd3JhcCBlbnRpdGllcyB0aGF0IHdlcmVuJ3Qgd3JhcHBlZCB5ZXRcbiAgICBlbnRpdGllc1dpdGhUcmlnZ2Vycy5mb3JFYWNoKGVudGl0eSA9PiB7XG4gICAgICBpZiAodGhpcy5zaG91bGRXcmFwVHJpZ2dlckVudGl0eShlbnRpdHkpKSB7XG4gICAgICAgIHRoaXMud3JhcFRyaWdnZXJFbnRpdHkoZW50aXR5KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvL2l0ZXJhdGUgdGhyb3VnaCB3cmFwcGVkIGVudGl0aWVzXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fdHJpZ2dlcnMpIHtcbiAgICAgIGlmICh0aGlzLl90cmlnZ2Vycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGxldCB3cmFwcGVyID0gdGhpcy5fdHJpZ2dlcnNba2V5XVxuXG4gICAgICAgIC8vdXBkYXRlIGRlYnVnIGVudGl0eVxuICAgICAgICBpZiAod3JhcHBlci5pc0RlYnVnZ2luZygpKSB7XG4gICAgICAgICAgd3JhcHBlci51cGRhdGVEZWJ1Z0VudGl0eSgpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXdyYXBwZXIuaXNJbkVuZ2luZSgpKSB7XG4gICAgICAgICAgLy9yZW1vdmUgZGVidWdnaW5nXG4gICAgICAgICAgaWYgKHdyYXBwZXIuaXNEZWJ1Z2dpbmcoKSkge1xuICAgICAgICAgICAgd3JhcHBlci5yZW1vdmVEZWJ1Z0VudGl0eSgpXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vcmVtb3ZlIG9sZCBjb2xsaXNpb25zXG4gICAgICAgICAgVHJpZ2dlclN5c3RlbS5yZW1vdmVUcmlnZ2VyRnJvbVN5c3RlbSh3cmFwcGVyKVxuICAgICAgICAgIC8vcmVtb3ZlIGZyb20gcmVjb3JkXG4gICAgICAgICAgZGVsZXRlIHRoaXMuX3RyaWdnZXJzW2tleV1cbiAgICAgICAgfSBlbHNlIGlmICh3cmFwcGVyLnRyaWdnZXIgIT0gbnVsbCAmJiB3cmFwcGVyLnRyaWdnZXIuZW5hYmxlZCkge1xuICAgICAgICAgIC8vaWYgd2FzIHNldCBhcyBlbmFibGVkIGluIGxhc3QgZnJhbWVcbiAgICAgICAgICBpZiAoIXdyYXBwZXIud2FzRW5hYmxlZCkge1xuICAgICAgICAgICAgaWYgKHdyYXBwZXIuaXNEZWJ1Z2dpbmcoKSkge1xuICAgICAgICAgICAgICB3cmFwcGVyLmFkZERlYnVnRW50aXR5KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy9zZXQgYXMgZW5hYmxlZFxuICAgICAgICAgIHdyYXBwZXIud2FzRW5hYmxlZCA9IHRydWVcblxuICAgICAgICAgIC8vY2hlY2sgY29sbGlzaW9uIGNhbWVyYVxuICAgICAgICAgIGlmICh3cmFwcGVyLnRyaWdnZXIub25DYW1lcmFFbnRlciB8fCB3cmFwcGVyLnRyaWdnZXIub25DYW1lcmFFeGl0KSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrQ29sbGlzaW9uQWdhaW5zdENhbWVyYSh3cmFwcGVyKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vY2hlY2sgY29sbGlzaW9uIHdpdGggb3RoZXJzXG4gICAgICAgICAgaWYgKHdyYXBwZXIudHJpZ2dlci5vblRyaWdnZXJFbnRlciB8fCB3cmFwcGVyLnRyaWdnZXIub25UcmlnZ2VyRXhpdCkge1xuICAgICAgICAgICAgdGhpcy5jaGVja0NvbGxpc2lvbkFnYWluc3RPdGhlclRyaWdnZXJzKHdyYXBwZXIpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHdyYXBwZXIud2FzRW5hYmxlZCkge1xuICAgICAgICAgIHdyYXBwZXIud2FzRW5hYmxlZCA9IGZhbHNlXG4gICAgICAgICAgLy9yZW1vdmUgZGVidWdnaW5nXG4gICAgICAgICAgaWYgKHdyYXBwZXIuaXNEZWJ1Z2dpbmcoKSkge1xuICAgICAgICAgICAgd3JhcHBlci5yZW1vdmVEZWJ1Z0VudGl0eSgpXG4gICAgICAgICAgfVxuICAgICAgICAgIFRyaWdnZXJTeXN0ZW0ucmVtb3ZlVHJpZ2dlckZyb21TeXN0ZW0od3JhcHBlcilcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkV3JhcFRyaWdnZXJFbnRpdHkoZW50aXR5OiBJRW50aXR5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX3RyaWdnZXJzW2VudGl0eS51dWlkXSA9PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMuX3RyaWdnZXJzW2VudGl0eS51dWlkXSA9PSBudWxsXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSB3cmFwVHJpZ2dlckVudGl0eShlbnRpdHk6IElFbnRpdHkpIHtcbiAgICB0aGlzLl90cmlnZ2Vyc1tlbnRpdHkudXVpZF0gPSBuZXcgVHJpZ2dlcldyYXBwZXIoZW50aXR5IGFzIEVudGl0eSlcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlbW92ZVRyaWdnZXJGcm9tU3lzdGVtKHdyYXBwZXI6IFRyaWdnZXJXcmFwcGVyKSB7XG4gICAgbGV0IGFjdGl2ZUNvbGxpc2lvbnMgPSB3cmFwcGVyLmdldEFjdGl2ZUNvbGxpc2lvbnMoKVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWN0aXZlQ29sbGlzaW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFjdGl2ZUNvbGxpc2lvbnNbaV0udHJpZ2dlci5vblRyaWdnZXJFeGl0ICYmIHdyYXBwZXIuZW50aXR5KVxuICAgICAgICAoYWN0aXZlQ29sbGlzaW9uc1tpXS50cmlnZ2VyLm9uVHJpZ2dlckV4aXQgYXMgKFxuICAgICAgICAgIGVudGl0eTogSUVudGl0eVxuICAgICAgICApID0+IHZvaWQpKHdyYXBwZXIuZW50aXR5KVxuICAgICAgYWN0aXZlQ29sbGlzaW9uc1tpXS5kaXNlbmdhZ2VBY3RpdmVDb2xsaXNpb24od3JhcHBlcilcbiAgICAgIHdyYXBwZXIuZGlzZW5nYWdlQWN0aXZlQ29sbGlzaW9uKGFjdGl2ZUNvbGxpc2lvbnNbaV0pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZGlzZW5nYWdlQ29sbGlzaW9uKHQxOiBUcmlnZ2VyV3JhcHBlciwgdDI6IFRyaWdnZXJXcmFwcGVyKSB7XG4gICAgdDEuZGlzZW5nYWdlQWN0aXZlQ29sbGlzaW9uKHQyKVxuICAgIHQyLmRpc2VuZ2FnZUFjdGl2ZUNvbGxpc2lvbih0MSlcblxuICAgIGlmICh0MS50cmlnZ2VyLm9uVHJpZ2dlckV4aXQgJiYgdDIuZW50aXR5KVxuICAgICAgdDEudHJpZ2dlci5vblRyaWdnZXJFeGl0KHQyLmVudGl0eSlcbiAgICBpZiAodDIudHJpZ2dlci5vblRyaWdnZXJFeGl0ICYmIHQxLmVudGl0eSlcbiAgICAgIHQyLnRyaWdnZXIub25UcmlnZ2VyRXhpdCh0MS5lbnRpdHkpXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBlbmdhZ2VDb2xsaXNpb24odDE6IFRyaWdnZXJXcmFwcGVyLCB0MjogVHJpZ2dlcldyYXBwZXIpIHtcbiAgICB0MS5lbmdhZ2VDb2xsaXNpb24odDIpXG4gICAgdDIuZW5nYWdlQ29sbGlzaW9uKHQxKVxuXG4gICAgaWYgKHQxLnRyaWdnZXIub25UcmlnZ2VyRW50ZXIgJiYgdDIuZW50aXR5KVxuICAgICAgdDEudHJpZ2dlci5vblRyaWdnZXJFbnRlcih0Mi5lbnRpdHkpXG4gICAgaWYgKHQyLnRyaWdnZXIub25UcmlnZ2VyRW50ZXIgJiYgdDEuZW50aXR5KVxuICAgICAgdDIudHJpZ2dlci5vblRyaWdnZXJFbnRlcih0MS5lbnRpdHkpXG4gIH1cblxuICBwcml2YXRlIGNoZWNrQ29sbGlzaW9uQWdhaW5zdENhbWVyYSh3cmFwcGVyOiBUcmlnZ2VyV3JhcHBlcikge1xuICAgIGxldCB3ZXJlQ29sbGlkaW5nID0gd3JhcHBlci5oYXNBY3RpdmVDb2xsaXNpb24odGhpcy5fY2FtZXJhVHJpZ2dlcldyYXBwZXIpXG4gICAgbGV0IGFyZUNvbGxpZGluZyA9IFRyaWdnZXJTeXN0ZW0uYXJlQ29sbGlkaW5nKFxuICAgICAgd3JhcHBlcixcbiAgICAgIHRoaXMuX2NhbWVyYVRyaWdnZXJXcmFwcGVyXG4gICAgKVxuXG4gICAgaWYgKHdlcmVDb2xsaWRpbmcgJiYgIWFyZUNvbGxpZGluZykge1xuICAgICAgd3JhcHBlci5kaXNlbmdhZ2VBY3RpdmVDb2xsaXNpb24odGhpcy5fY2FtZXJhVHJpZ2dlcldyYXBwZXIpXG4gICAgICBpZiAod3JhcHBlci50cmlnZ2VyLm9uQ2FtZXJhRXhpdCkgd3JhcHBlci50cmlnZ2VyLm9uQ2FtZXJhRXhpdCgpXG4gICAgfSBlbHNlIGlmICghd2VyZUNvbGxpZGluZyAmJiBhcmVDb2xsaWRpbmcpIHtcbiAgICAgIHdyYXBwZXIuZW5nYWdlQ29sbGlzaW9uKHRoaXMuX2NhbWVyYVRyaWdnZXJXcmFwcGVyKVxuICAgICAgaWYgKHdyYXBwZXIudHJpZ2dlci5vbkNhbWVyYUVudGVyKSB3cmFwcGVyLnRyaWdnZXIub25DYW1lcmFFbnRlcigpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0NvbGxpc2lvbkFnYWluc3RPdGhlclRyaWdnZXJzKHdyYXBwZXI6IFRyaWdnZXJXcmFwcGVyKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fdHJpZ2dlcnMpIHtcbiAgICAgIGlmICh0aGlzLl90cmlnZ2Vycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGlmIChrZXkgIT0gd3JhcHBlci51dWlkICYmIHRoaXMuX3RyaWdnZXJzW2tleV0udHJpZ2dlci5lbmFibGVkKSB7XG4gICAgICAgICAgaWYgKFRyaWdnZXJTeXN0ZW0uY2FuVHJpZ2dlcnNDb2xsaWRlKHdyYXBwZXIsIHRoaXMuX3RyaWdnZXJzW2tleV0pKSB7XG4gICAgICAgICAgICBsZXQgd2VyZUNvbGxpZGluZyA9IHdyYXBwZXIuaGFzQWN0aXZlQ29sbGlzaW9uKHRoaXMuX3RyaWdnZXJzW2tleV0pXG4gICAgICAgICAgICBsZXQgYXJlQ29sbGlkaW5nID0gVHJpZ2dlclN5c3RlbS5hcmVDb2xsaWRpbmcoXG4gICAgICAgICAgICAgIHdyYXBwZXIsXG4gICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXJzW2tleV1cbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgaWYgKHdlcmVDb2xsaWRpbmcgJiYgIWFyZUNvbGxpZGluZylcbiAgICAgICAgICAgICAgVHJpZ2dlclN5c3RlbS5kaXNlbmdhZ2VDb2xsaXNpb24od3JhcHBlciwgdGhpcy5fdHJpZ2dlcnNba2V5XSlcbiAgICAgICAgICAgIGVsc2UgaWYgKCF3ZXJlQ29sbGlkaW5nICYmIGFyZUNvbGxpZGluZylcbiAgICAgICAgICAgICAgVHJpZ2dlclN5c3RlbS5lbmdhZ2VDb2xsaXNpb24od3JhcHBlciwgdGhpcy5fdHJpZ2dlcnNba2V5XSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjYW5UcmlnZ2Vyc0NvbGxpZGUoXG4gICAgdDE6IFRyaWdnZXJXcmFwcGVyLFxuICAgIHQyOiBUcmlnZ2VyV3JhcHBlclxuICApOiBib29sZWFuIHtcbiAgICBpZiAodDEudHJpZ2dlci50cmlnZ2VyZWRCeUxheWVyID09IDApIHJldHVybiB0cnVlXG4gICAgcmV0dXJuICh0Mi50cmlnZ2VyLmxheWVyICYgdDEudHJpZ2dlci50cmlnZ2VyZWRCeUxheWVyKSAhPSAwXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhcmVDb2xsaWRpbmcodDE6IFRyaWdnZXJXcmFwcGVyLCB0MjogVHJpZ2dlcldyYXBwZXIpOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICB0MS5nZXRTaGFwZSgpIGluc3RhbmNlb2YgVHJpZ2dlckJveFNoYXBlICYmXG4gICAgICB0Mi5nZXRTaGFwZSgpIGluc3RhbmNlb2YgVHJpZ2dlckJveFNoYXBlXG4gICAgKSB7XG4gICAgICByZXR1cm4gVHJpZ2dlclN5c3RlbS5hcmVDb2xsaWRpbmdBQUJCKFxuICAgICAgICB0MS5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0MS5nZXRTaGFwZSgpIGFzIFRyaWdnZXJCb3hTaGFwZSxcbiAgICAgICAgdDIuZ2V0R2xvYmFsUG9zaXRpb24oKSxcbiAgICAgICAgdDIuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyQm94U2hhcGVcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdDEuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJTcGhlcmVTaGFwZSAmJlxuICAgICAgdDIuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJTcGhlcmVTaGFwZVxuICAgICkge1xuICAgICAgcmV0dXJuIFRyaWdnZXJTeXN0ZW0uYXJlQ29sbGlkaW5nU3BoZXJlKFxuICAgICAgICB0MS5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0MS5nZXRTaGFwZSgpIGFzIFRyaWdnZXJTcGhlcmVTaGFwZSxcbiAgICAgICAgdDIuZ2V0R2xvYmFsUG9zaXRpb24oKSxcbiAgICAgICAgdDIuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyU3BoZXJlU2hhcGVcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdDEuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJCb3hTaGFwZSAmJlxuICAgICAgdDIuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJTcGhlcmVTaGFwZVxuICAgICkge1xuICAgICAgcmV0dXJuIFRyaWdnZXJTeXN0ZW0uYXJlQ29sbGlkaW5nQUFCQlNwaGVyZShcbiAgICAgICAgdDEuZ2V0R2xvYmFsUG9zaXRpb24oKSxcbiAgICAgICAgdDEuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyQm94U2hhcGUsXG4gICAgICAgIHQyLmdldEdsb2JhbFBvc2l0aW9uKCksXG4gICAgICAgIHQyLmdldFNoYXBlKCkgYXMgVHJpZ2dlclNwaGVyZVNoYXBlXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHQxLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyU3BoZXJlU2hhcGUgJiZcbiAgICAgIHQyLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyQm94U2hhcGVcbiAgICApIHtcbiAgICAgIHJldHVybiBUcmlnZ2VyU3lzdGVtLmFyZUNvbGxpZGluZ0FBQkJTcGhlcmUoXG4gICAgICAgIHQyLmdldEdsb2JhbFBvc2l0aW9uKCksXG4gICAgICAgIHQyLmdldFNoYXBlKCkgYXMgVHJpZ2dlckJveFNoYXBlLFxuICAgICAgICB0MS5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0MS5nZXRTaGFwZSgpIGFzIFRyaWdnZXJTcGhlcmVTaGFwZVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFyZUNvbGxpZGluZ0FBQkIoXG4gICAgdDFHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MVNoYXBlOiBUcmlnZ2VyQm94U2hhcGUsXG4gICAgdDJHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MlNoYXBlOiBUcmlnZ2VyQm94U2hhcGVcbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IHQxID0gVHJpZ2dlclN5c3RlbS5nZXRCb3hTaGFwZVZhbHVlcyh0MUdsb2JhbFBvc2l0aW9uLCB0MVNoYXBlKVxuICAgIGxldCB0MiA9IFRyaWdnZXJTeXN0ZW0uZ2V0Qm94U2hhcGVWYWx1ZXModDJHbG9iYWxQb3NpdGlvbiwgdDJTaGFwZSlcbiAgICByZXR1cm4gKFxuICAgICAgdDEubWluLnggPD0gdDIubWF4LnggJiZcbiAgICAgIHQxLm1heC54ID49IHQyLm1pbi54ICYmXG4gICAgICB0MS5taW4ueSA8PSB0Mi5tYXgueSAmJiB0MS5tYXgueSA+PSB0Mi5taW4ueSAmJlxuICAgICAgdDEubWluLnogPD0gdDIubWF4LnogJiYgdDEubWF4LnogPj0gdDIubWluLnpcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhcmVDb2xsaWRpbmdTcGhlcmUoXG4gICAgdDFHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MVNoYXBlOiBUcmlnZ2VyU3BoZXJlU2hhcGUsXG4gICAgdDJHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MlNoYXBlOiBUcmlnZ2VyU3BoZXJlU2hhcGVcbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IHNxRGlzdCA9IFZlY3RvcjMuRGlzdGFuY2VTcXVhcmVkKFxuICAgICAgdDFHbG9iYWxQb3NpdGlvbi5hZGQodDFTaGFwZS5wb3NpdGlvbiksXG4gICAgICB0Mkdsb2JhbFBvc2l0aW9uLmFkZCh0MlNoYXBlLnBvc2l0aW9uKVxuICAgIClcbiAgICByZXR1cm4gKFxuICAgICAgc3FEaXN0IDwgdDFTaGFwZS5yYWRpdXMgKiB0MVNoYXBlLnJhZGl1cyArIHQyU2hhcGUucmFkaXVzICogdDJTaGFwZS5yYWRpdXNcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhcmVDb2xsaWRpbmdBQUJCU3BoZXJlKFxuICAgIHQxR2xvYmFsUG9zaXRpb246IFZlY3RvcjMsXG4gICAgdDFTaGFwZTogVHJpZ2dlckJveFNoYXBlLFxuICAgIHQyR2xvYmFsUG9zaXRpb246IFZlY3RvcjMsXG4gICAgdDJTaGFwZTogVHJpZ2dlclNwaGVyZVNoYXBlXG4gICk6IGJvb2xlYW4ge1xuICAgIGxldCBib3ggPSBUcmlnZ2VyU3lzdGVtLmdldEJveFNoYXBlVmFsdWVzKHQxR2xvYmFsUG9zaXRpb24sIHQxU2hhcGUpXG4gICAgbGV0IHNwaGVyZSA9IHtcbiAgICAgIGNlbnRlcjogdDJHbG9iYWxQb3NpdGlvbi5hZGQodDJTaGFwZS5wb3NpdGlvbiksXG4gICAgICByYWRpdXM6IHQyU2hhcGUucmFkaXVzXG4gICAgfVxuXG4gICAgbGV0IGRtaW4gPSAwXG4gICAgaWYgKHNwaGVyZS5jZW50ZXIueCA8IGJveC5taW4ueClcbiAgICAgIGRtaW4gKz0gKGJveC5taW4ueCAtIHNwaGVyZS5jZW50ZXIueCkgKiAoYm94Lm1pbi54IC0gc3BoZXJlLmNlbnRlci54KVxuICAgIGlmIChzcGhlcmUuY2VudGVyLnggPiBib3gubWF4LngpXG4gICAgICBkbWluICs9IChzcGhlcmUuY2VudGVyLnggLSBib3gubWF4LngpICogKHNwaGVyZS5jZW50ZXIueCAtIGJveC5tYXgueClcbiAgICBpZiAoc3BoZXJlLmNlbnRlci55IDwgYm94Lm1pbi55KVxuICAgICAgZG1pbiArPSAoYm94Lm1pbi55IC0gc3BoZXJlLmNlbnRlci55KSAqIChib3gubWluLnkgLSBzcGhlcmUuY2VudGVyLnkpXG4gICAgaWYgKHNwaGVyZS5jZW50ZXIueSA+IGJveC5tYXgueSlcbiAgICAgIGRtaW4gKz0gKHNwaGVyZS5jZW50ZXIueSAtIGJveC5tYXgueSkgKiAoc3BoZXJlLmNlbnRlci55IC0gYm94Lm1heC55KVxuICAgIGlmIChzcGhlcmUuY2VudGVyLnogPCBib3gubWluLnopXG4gICAgICBkbWluICs9IChib3gubWluLnogLSBzcGhlcmUuY2VudGVyLnopICogKGJveC5taW4ueiAtIHNwaGVyZS5jZW50ZXIueilcbiAgICBpZiAoc3BoZXJlLmNlbnRlci56ID4gYm94Lm1heC56KVxuICAgICAgZG1pbiArPSAoc3BoZXJlLmNlbnRlci56IC0gYm94Lm1heC56KSAqIChzcGhlcmUuY2VudGVyLnogLSBib3gubWF4LnopXG5cbiAgICByZXR1cm4gZG1pbiA8IHNwaGVyZS5yYWRpdXMgKiBzcGhlcmUucmFkaXVzXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRCb3hTaGFwZVZhbHVlcyhcbiAgICBlbnRpdHlHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICBzaGFwZTogVHJpZ2dlckJveFNoYXBlXG4gICk6IHsgY2VudGVyOiBWZWN0b3IzOyBtaW46IFZlY3RvcjM7IG1heDogVmVjdG9yMyB9IHtcbiAgICBsZXQgY2VudGVyID0gZW50aXR5R2xvYmFsUG9zaXRpb24uYWRkKHNoYXBlLnBvc2l0aW9uKVxuICAgIHJldHVybiB7XG4gICAgICBjZW50ZXI6IGNlbnRlcixcbiAgICAgIG1pbjogY2VudGVyLnN1YnRyYWN0KHNoYXBlLnNpemUuc2NhbGUoMC41KSksXG4gICAgICBtYXg6IGNlbnRlci5hZGQoc2hhcGUuc2l6ZS5zY2FsZSgwLjUpKVxuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBUcmlnZ2VyV3JhcHBlciB7XG4gIHdhc0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlXG5cbiAgZ2V0IGVudGl0eSgpOiBFbnRpdHkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlcbiAgfVxuICBnZXQgdHJpZ2dlcigpOiBUcmlnZ2VyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlclxuICB9XG4gIGdldCB1dWlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3V1aWRcbiAgfVxuXG4gIHByb3RlY3RlZCBfZW50aXR5PzogRW50aXR5XG4gIHByb3RlY3RlZCBfdHJpZ2dlciE6IFRyaWdnZXJDb21wb25lbnRcbiAgcHJvdGVjdGVkIF91dWlkOiBzdHJpbmcgPSAnJ1xuICBwcm90ZWN0ZWQgX2NvbGxpZGluZ1dpdGg6IFJlY29yZDxzdHJpbmcsIFRyaWdnZXJXcmFwcGVyPiA9IHt9XG5cbiAgcHJpdmF0ZSBfaXNEZWJ1ZzogYm9vbGVhbiA9IGZhbHNlXG4gIHByaXZhdGUgX2RlYnVnRW50aXR5OiBFbnRpdHkgfCBudWxsID0gbnVsbFxuICBwcml2YXRlIHN0YXRpYyBfZGVidWdNYXRlcmlhbDogTWF0ZXJpYWwgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGVudGl0eT86IEVudGl0eSkge1xuICAgIHRoaXMuX2VudGl0eSA9IGVudGl0eVxuICAgIGlmIChlbnRpdHkpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXIgPSBlbnRpdHkuZ2V0Q29tcG9uZW50KFRyaWdnZXJDb21wb25lbnQpXG4gICAgICB0aGlzLl91dWlkID0gZW50aXR5LnV1aWRcbiAgICAgIHRoaXMuX2lzRGVidWcgPSB0aGlzLl90cmlnZ2VyLmRlYnVnRW5hYmxlZFxuICAgICAgaWYgKHRoaXMuX2lzRGVidWcpIHtcbiAgICAgICAgdGhpcy5hZGREZWJ1Z0VudGl0eSgpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0R2xvYmFsUG9zaXRpb24oKTogVmVjdG9yMyB7XG4gICAgaWYgKHRoaXMuX2VudGl0eSkgcmV0dXJuIFRyaWdnZXJXcmFwcGVyLmdldEVudGl0eVdvcmxkUG9zaXRpb24odGhpcy5fZW50aXR5KVxuICAgIHJldHVybiBWZWN0b3IzLlplcm8oKVxuICB9XG5cbiAgZ2V0U2hhcGUoKTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlIHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlci5zaGFwZVxuICB9XG5cbiAgaXNJbkVuZ2luZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5ICE9IG51bGwgJiYgdGhpcy5fZW50aXR5LmlzQWRkZWRUb0VuZ2luZSgpXG4gIH1cblxuICBnZXRBY3RpdmVDb2xsaXNpb25zKCk6IFRyaWdnZXJXcmFwcGVyW10ge1xuICAgIGxldCByZXQ6IFRyaWdnZXJXcmFwcGVyW10gPSBbXVxuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fY29sbGlkaW5nV2l0aCkge1xuICAgICAgaWYgKHRoaXMuX2NvbGxpZGluZ1dpdGguaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICByZXQucHVzaCh0aGlzLl9jb2xsaWRpbmdXaXRoW2tleV0pXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXRcbiAgfVxuXG4gIGhhc0FjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fY29sbGlkaW5nV2l0aFtvdGhlci51dWlkXSAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuX2NvbGxpZGluZ1dpdGhbb3RoZXIudXVpZF0gIT0gbnVsbFxuICAgIClcbiAgfVxuXG4gIGRpc2VuZ2FnZUFjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpIHtcbiAgICBkZWxldGUgdGhpcy5fY29sbGlkaW5nV2l0aFtvdGhlci51dWlkXVxuICB9XG5cbiAgZW5nYWdlQ29sbGlzaW9uKG90aGVyOiBUcmlnZ2VyV3JhcHBlcikge1xuICAgIHRoaXMuX2NvbGxpZGluZ1dpdGhbb3RoZXIudXVpZF0gPSBvdGhlclxuICB9XG5cbiAgaXNEZWJ1Z2dpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRGVidWdcbiAgfVxuXG4gIGFkZERlYnVnRW50aXR5KCkge1xuICAgIGlmICghVHJpZ2dlcldyYXBwZXIuX2RlYnVnTWF0ZXJpYWwpIHtcbiAgICAgIFRyaWdnZXJXcmFwcGVyLl9kZWJ1Z01hdGVyaWFsID0gbmV3IE1hdGVyaWFsKClcbiAgICAgIFRyaWdnZXJXcmFwcGVyLl9kZWJ1Z01hdGVyaWFsLmFscGhhVGVzdCA9IDAuNVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9kZWJ1Z0VudGl0eSA9PSBudWxsKSB7XG4gICAgICB0aGlzLl9kZWJ1Z0VudGl0eSA9IG5ldyBFbnRpdHkoKVxuXG4gICAgICBjb25zdCB0cmFuc2Zvcm0gPSBuZXcgVHJhbnNmb3JtKClcbiAgICAgIHRoaXMuX2RlYnVnRW50aXR5LmFkZENvbXBvbmVudCh0cmFuc2Zvcm0pXG4gICAgICB0aGlzLl9kZWJ1Z0VudGl0eS5hZGRDb21wb25lbnQoVHJpZ2dlcldyYXBwZXIuX2RlYnVnTWF0ZXJpYWwpXG5cbiAgICAgIGlmICh0aGlzLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyQm94U2hhcGUpIHtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBuZXcgQm94U2hhcGUoKVxuICAgICAgICBzaGFwZS53aXRoQ29sbGlzaW9ucyA9IGZhbHNlXG4gICAgICAgIHRoaXMuX2RlYnVnRW50aXR5LmFkZENvbXBvbmVudChzaGFwZSlcbiAgICAgICAgdHJhbnNmb3JtLnNjYWxlID0gKHRoaXMuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyQm94U2hhcGUpLnNpemVcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyU3BoZXJlU2hhcGUpIHtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBuZXcgU3BoZXJlU2hhcGUoKVxuICAgICAgICBzaGFwZS53aXRoQ29sbGlzaW9ucyA9IGZhbHNlXG4gICAgICAgIHRoaXMuX2RlYnVnRW50aXR5LmFkZENvbXBvbmVudChzaGFwZSlcbiAgICAgICAgbGV0IHJhZCA9ICh0aGlzLmdldFNoYXBlKCkgYXMgVHJpZ2dlclNwaGVyZVNoYXBlKS5yYWRpdXNcbiAgICAgICAgdHJhbnNmb3JtLnNjYWxlID0gbmV3IFZlY3RvcjMocmFkLCByYWQsIHJhZClcbiAgICAgIH1cbiAgICB9XG4gICAgZW5naW5lLmFkZEVudGl0eSh0aGlzLl9kZWJ1Z0VudGl0eSlcbiAgfVxuXG4gIHJlbW92ZURlYnVnRW50aXR5KCkge1xuICAgIGlmICh0aGlzLl9kZWJ1Z0VudGl0eSAhPSBudWxsKSBlbmdpbmUucmVtb3ZlRW50aXR5KHRoaXMuX2RlYnVnRW50aXR5KVxuICB9XG5cbiAgdXBkYXRlRGVidWdFbnRpdHkoKSB7XG4gICAgaWYgKHRoaXMuX2RlYnVnRW50aXR5KSB7XG4gICAgICB0aGlzLl9kZWJ1Z0VudGl0eS5nZXRDb21wb25lbnQoXG4gICAgICAgIFRyYW5zZm9ybVxuICAgICAgKS5wb3NpdGlvbiA9IHRoaXMuZ2V0R2xvYmFsUG9zaXRpb24oKS5hZGQodGhpcy5nZXRTaGFwZSgpLnBvc2l0aW9uKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldEVudGl0eVdvcmxkUG9zaXRpb24oZW50aXR5OiBJRW50aXR5KTogVmVjdG9yMyB7XG4gICAgbGV0IGVudGl0eVBvc2l0aW9uID0gZW50aXR5Lmhhc0NvbXBvbmVudChUcmFuc2Zvcm0pXG4gICAgICA/IGVudGl0eS5nZXRDb21wb25lbnQoVHJhbnNmb3JtKS5wb3NpdGlvblxuICAgICAgOiBWZWN0b3IzLlplcm8oKVxuICAgIGxldCBwYXJlbnRFbnRpdHkgPSBlbnRpdHkuZ2V0UGFyZW50KClcblxuICAgIGlmIChwYXJlbnRFbnRpdHkgIT0gbnVsbCkge1xuICAgICAgbGV0IHBhcmVudFJvdGF0aW9uID0gcGFyZW50RW50aXR5Lmhhc0NvbXBvbmVudChUcmFuc2Zvcm0pXG4gICAgICAgID8gcGFyZW50RW50aXR5LmdldENvbXBvbmVudChUcmFuc2Zvcm0pLnJvdGF0aW9uXG4gICAgICAgIDogUXVhdGVybmlvbi5JZGVudGl0eVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5V29ybGRQb3NpdGlvbihwYXJlbnRFbnRpdHkpLmFkZChcbiAgICAgICAgZW50aXR5UG9zaXRpb24ucm90YXRlKHBhcmVudFJvdGF0aW9uKVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gZW50aXR5UG9zaXRpb25cbiAgfVxufVxuXG5jbGFzcyBDYW1lcmFUcmlnZ2VyIGV4dGVuZHMgVHJpZ2dlcldyYXBwZXIge1xuICBwcml2YXRlIF9zaGFwZTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlXG5cbiAgY29uc3RydWN0b3Ioc2hhcGU6IFRyaWdnZXJCb3hTaGFwZSB8IFRyaWdnZXJTcGhlcmVTaGFwZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLl9zaGFwZSA9IHNoYXBlXG4gICAgdGhpcy5fdXVpZCA9ICdjYW1lcmFUcmlnZ2VyJ1xuICB9XG5cbiAgZ2V0R2xvYmFsUG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIENhbWVyYS5pbnN0YW5jZS5wb3NpdGlvblxuICB9XG5cbiAgZ2V0U2hhcGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NoYXBlXG4gIH1cblxuICBzZXRTaGFwZShzaGFwZTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlKSB7XG4gICAgdGhpcy5fc2hhcGUgPSBzaGFwZVxuICB9XG5cbiAgaXNJbkVuZ2luZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGhhc0FjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGRpc2VuZ2FnZUFjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpIHt9XG5cbiAgZW5nYWdlQ29sbGlzaW9uKG90aGVyOiBUcmlnZ2VyV3JhcHBlcikge31cbiAgaXNEZWJ1Z2dpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuQENvbXBvbmVudCgndHJpZ2dlckNvbXBvbmVudCcpXG5leHBvcnQgY2xhc3MgVHJpZ2dlckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBpcyB0cmlnZ2VyIGVuYWJsZT9cbiAgICovXG4gIGVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlXG4gIC8qKlxuICAgKiBzaGFwZSBvZiB0aGUgY29sbGlkZXJcbiAgICovXG4gIHNoYXBlOiBUcmlnZ2VyQm94U2hhcGUgfCBUcmlnZ2VyU3BoZXJlU2hhcGVcbiAgLyoqXG4gICAqIGJpdCBsYXllciBvZiB0aGUgVGlnZ2VyICh1c2VmdWxsIHRvIGRpc2NyaW1pbmF0ZSBiZXR3ZWVuIHRyaWdnZXIgZXZlbnRzKVxuICAgKi9cbiAgbGF5ZXI6IG51bWJlciA9IDBcbiAgLyoqXG4gICAqIGFnYWluc3Qgd2hpY2ggbGF5ZXIgYXJlIHdlIGdvaW5nIHRvIGNoZWNrIHRyaWdnZXIncyBjb2xsaXNpb25zXG4gICAqL1xuICB0cmlnZ2VyZWRCeUxheWVyOiBudW1iZXIgPSAwXG4gIC8qKlxuICAgKiBjYWxsYmFjayB3aGVuIHRyaWdnZXIgaXMgZW50ZXJlZFxuICAgKi9cbiAgb25UcmlnZ2VyRW50ZXI/OiAoZW50aXR5OiBFbnRpdHkpID0+IHZvaWRcbiAgLyoqXG4gICAqIGNhbGxiYWNrIHdoZW4gdHJpZ2dlciBpcyBleGl0XG4gICAqL1xuICBvblRyaWdnZXJFeGl0PzogKGVudGl0eTogRW50aXR5KSA9PiB2b2lkXG4gIC8qKlxuICAgKiBjYWxsYmFjayB3aGVuIHRyaWdnZXIgaXMgZW50ZXJlZFxuICAgKi9cbiAgb25DYW1lcmFFbnRlcj86ICgpID0+IHZvaWRcbiAgLyoqXG4gICAqIGNhbGxiYWNrIHdoZW4gdHJpZ2dlciBpcyBleGl0XG4gICAqL1xuICBvbkNhbWVyYUV4aXQ/OiAoKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBnZXQgaWYgZGVidWcgaXMgZW5hYmxlZFxuICAgKi9cbiAgZ2V0IGRlYnVnRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGVidWdFbmFibGVkXG4gIH1cblxuICBwcml2YXRlIF9kZWJ1Z0VuYWJsZWQ6IGJvb2xlYW5cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHNoYXBlIHNoYXBlIG9mIHRoZSB0cmlnZ2VyaW5nIGNvbGxpZGVyIGFyZWFcbiAgICogQHBhcmFtIGxheWVyIGxheWVyIG9mIHRoZSBUcmlnZ2VyLCB1c2VmdWwgdG8gZGlzY3JpbWluYXRlIGJldHdlZW4gdHJpZ2dlciBldmVudHMuIFlvdSBjYW4gc2V0IG11bHRpcGxlIGxheWVycyBieSB1c2luZyBhIHwgc3ltYm9sLlxuICAgKiBAcGFyYW0gdHJpZ2dlcmVkQnlMYXllciBhZ2FpbnN0IHdoaWNoIGxheWVycyB0byBjaGVjayBjb2xsaXNpb25zXG4gICAqIEBwYXJhbSBvblRyaWdnZXJFbnRlciBjYWxsYmFjayB3aGVuIGFuIGVudGl0eSBvZiBhIHZhbGlkIGxheWVyIGVudGVycyB0aGUgdHJpZ2dlciBhcmVhXG4gICAqIEBwYXJhbSBvblRyaWdnZXJFeGl0IGNhbGxiYWNrIHdoZW4gYW4gZW50aXR5IG9mIGEgdmFsaWQgbGF5ZXIgbGVhdmVzIHRoZSB0cmlnZ2VyIGFyZWFcbiAgICogQHBhcmFtIG9uQ2FtZXJhRW50ZXIgY2FsbGJhY2sgd2hlbiB0aGUgcGxheWVyIGVudGVycyB0aGUgdHJpZ2dlciBhcmVhXG4gICAqIEBwYXJhbSBvbkNhbWVyYUV4aXQgY2FsbGJhY2sgd2hlbiB0aGUgcGxheWVyIGxlYXZlcyB0aGUgdHJpZ2dlciBhcmVhXG4gICAqIEBwYXJhbSBlbmFibGVEZWJ1ZyB3aGVuIHRydWUgbWFrZXMgdGhlIHRyaWdnZXIgYXJlYSB2aXNpYmxlIGZvciBkZWJ1ZyBwdXJwb3Nlcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNoYXBlOiBUcmlnZ2VyQm94U2hhcGUgfCBUcmlnZ2VyU3BoZXJlU2hhcGUsXG4gICAgbGF5ZXI6IG51bWJlciA9IDAsXG4gICAgdHJpZ2dlcmVkQnlMYXllcjogbnVtYmVyID0gMCxcbiAgICBvblRyaWdnZXJFbnRlcj86IChlbnRpdHk6IEVudGl0eSkgPT4gdm9pZCxcbiAgICBvblRyaWdnZXJFeGl0PzogKGVudGl0eTogRW50aXR5KSA9PiB2b2lkLFxuICAgIG9uQ2FtZXJhRW50ZXI/OiAoKSA9PiB2b2lkLFxuICAgIG9uQ2FtZXJhRXhpdD86ICgpID0+IHZvaWQsXG4gICAgZW5hYmxlRGVidWc6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBUcmlnZ2VyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcbiAgICB0aGlzLnNoYXBlID0gc2hhcGVcbiAgICB0aGlzLmxheWVyID0gbGF5ZXJcbiAgICB0aGlzLnRyaWdnZXJlZEJ5TGF5ZXIgPSB0cmlnZ2VyZWRCeUxheWVyXG4gICAgdGhpcy5vblRyaWdnZXJFbnRlciA9IG9uVHJpZ2dlckVudGVyXG4gICAgdGhpcy5vblRyaWdnZXJFeGl0ID0gb25UcmlnZ2VyRXhpdFxuICAgIHRoaXMub25DYW1lcmFFbnRlciA9IG9uQ2FtZXJhRW50ZXJcbiAgICB0aGlzLm9uQ2FtZXJhRXhpdCA9IG9uQ2FtZXJhRXhpdFxuICAgIHRoaXMuX2RlYnVnRW5hYmxlZCA9IGVuYWJsZURlYnVnXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRyaWdnZXJCb3hTaGFwZSB7XG4gIHNpemU6IFZlY3RvcjNcbiAgcG9zaXRpb246IFZlY3RvcjNcblxuICBjb25zdHJ1Y3RvcihzaXplOiBWZWN0b3IzLCBwb3NpdGlvbjogVmVjdG9yMykge1xuICAgIHRoaXMuc2l6ZSA9IHNpemVcbiAgICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb25cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJpZ2dlclNwaGVyZVNoYXBlIHtcbiAgcmFkaXVzOiBudW1iZXJcbiAgcG9zaXRpb246IFZlY3RvcjNcblxuICBjb25zdHJ1Y3RvcihyYWRpdXM6IG51bWJlciwgcG9zaXRpb246IFZlY3RvcjMpIHtcbiAgICB0aGlzLnJhZGl1cyA9IHJhZGl1c1xuICAgIHRoaXMucG9zaXRpb24gPSBwb3NpdGlvblxuICB9XG59XG4iLCJleHBvcnQgY2xhc3MgQWN0aW9uc1NlcXVlbmNlU3lzdGVtIGltcGxlbWVudHMgSVN5c3RlbSB7XG4gIHByaXZhdGUgYmVnaW5TZXF1ZW5jZU5vZGU6IFNlcXVlbmNlTm9kZSB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgY3VycmVudFNlcXVlbmNlTm9kZTogU2VxdWVuY2VOb2RlIHwgbnVsbCA9IG51bGxcblxuICBwcml2YXRlIHJ1bm5pbmc6IGJvb2xlYW4gPSBmYWxzZVxuICBwcml2YXRlIHN0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIHByaXZhdGUgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcblxuICBjb25zdHJ1Y3RvcihzZXF1ZW5jZUJ1aWx0PzogQWN0aW9uc1NlcXVlbmNlU3lzdGVtLlNlcXVlbmNlQnVpbGRlcikge1xuICAgIGlmIChzZXF1ZW5jZUJ1aWx0KSB7XG4gICAgICB0aGlzLnN0YXJ0U2VxdWVuY2Uoc2VxdWVuY2VCdWlsdClcbiAgICB9XG4gIH1cblxuICBzdGFydFNlcXVlbmNlKHNlcXVlbmNlQnVpbHQ6IEFjdGlvbnNTZXF1ZW5jZVN5c3RlbS5TZXF1ZW5jZUJ1aWxkZXIpIHtcbiAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gc2VxdWVuY2VCdWlsdC5iZWdpblNlcXVlbmNlTm9kZVxuICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGVcbiAgICB0aGlzLnJ1bm5pbmcgPSB0cnVlXG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2VcbiAgfVxuXG4gIHNldE9uRmluaXNoQ2FsbGJhY2sob25GaW5pc2hDYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25GaW5pc2hDYWxsYmFjayA9IG9uRmluaXNoQ2FsbGJhY2tcbiAgfVxuXG4gIGlzUnVubmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ydW5uaW5nXG4gIH1cblxuICBzdG9wKCkge1xuICAgIHRoaXMucnVubmluZyA9IGZhbHNlXG4gIH1cblxuICByZXN1bWUoKSB7XG4gICAgaWYgKHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5ydW5uaW5nID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGVcbiAgICB0aGlzLnJ1bm5pbmcgPSB0cnVlXG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2VcbiAgfVxuXG4gIGdldFJ1bm5pbmdBY3Rpb24oKTogQWN0aW9uc1NlcXVlbmNlU3lzdGVtLklBY3Rpb24gfCBudWxsIHtcbiAgICBsZXQgY3VycmVudE5vZGU6IFNlcXVlbmNlTm9kZSB8IG51bGwgPSB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGVcblxuICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgaW5zdGFuY2VvZiBTdWJTZXF1ZW5jZU5vZGUpIHtcbiAgICAgIGRvIHtcbiAgICAgICAgY3VycmVudE5vZGUgPSAoY3VycmVudE5vZGUgYXMgU3ViU2VxdWVuY2VOb2RlKS5jdXJyZW50SW5uZXJTZXF1ZW5jZVxuICAgICAgfSB3aGlsZSAoY3VycmVudE5vZGUgaW5zdGFuY2VvZiBTdWJTZXF1ZW5jZU5vZGUpXG4gICAgfVxuICAgIHJldHVybiAoY3VycmVudE5vZGUgYXMgU2VxdWVuY2VOb2RlKS5hY3Rpb25cbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucnVubmluZykge1xuICAgICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgICAgOyh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5vblN0YXJ0KClcbiAgICAgICAgdGhpcy5zdGFydGVkID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCEodGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlIGFzIFNlcXVlbmNlTm9kZSkuaGFzRmluaXNoKCkpIHtcbiAgICAgICAgICA7KHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLnVwZGF0ZShkdClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICA7KHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLm9uRmluaXNoKClcbiAgICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSAodGhpc1xuICAgICAgICAgICAgLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5uZXh0XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlLm9uU3RhcnQoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJ1bm5pbmcgPSBmYWxzZVxuICAgICAgICAgICAgaWYgKHRoaXMub25GaW5pc2hDYWxsYmFjaykgdGhpcy5vbkZpbmlzaENhbGxiYWNrKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBBY3Rpb25zU2VxdWVuY2VTeXN0ZW0ge1xuICBleHBvcnQgaW50ZXJmYWNlIElBY3Rpb24ge1xuICAgIG9uU3RhcnQoKTogdm9pZFxuICAgIHVwZGF0ZShkdDogbnVtYmVyKTogdm9pZFxuICAgIG9uRmluaXNoKCk6IHZvaWRcbiAgICBoYXNGaW5pc2hlZDogYm9vbGVhblxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIFNlcXVlbmNlQnVpbGRlciB7XG4gICAgcHJpdmF0ZSBjdXJyZW50U2VxdWVuY2VOb2RlOiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuICAgIHB1YmxpYyBiZWdpblNlcXVlbmNlTm9kZTogU2VxdWVuY2VOb2RlIHwgbnVsbCA9IG51bGxcblxuICAgIHByaXZhdGUgd2hpbGVOb2RlU3RhY2s6IFdoaWxlU2VxdWVuY2VOb2RlW10gPSBbXVxuXG4gICAgdGhlbihhY3Rpb246IEFjdGlvbnNTZXF1ZW5jZVN5c3RlbS5JQWN0aW9uKTogU2VxdWVuY2VCdWlsZGVyIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSBuZXcgU2VxdWVuY2VOb2RlKClcbiAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlLmFjdGlvbiA9IGFjdGlvblxuICAgICAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgbmV4dCA9IG5ldyBTZXF1ZW5jZU5vZGUoKVxuICAgICAgICBuZXh0LmFjdGlvbiA9IGFjdGlvblxuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUudGhlbihuZXh0KVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBpZihjb25kaXRpb246ICgpID0+IGJvb2xlYW4pOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IGlmU2VxID0gbmV3IElmU2VxdWVuY2VOb2RlKGNvbmRpdGlvbilcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSBpZlNlcVxuICAgICAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gaWZTZXFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZS50aGVuKGlmU2VxKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBlbHNlKCk6IFNlcXVlbmNlQnVpbGRlciB7XG4gICAgICBsZXQgc2VxID0gKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLmdldFNlcXVlbmNlKClcbiAgICAgIGlmIChzZXEgaW5zdGFuY2VvZiBJZlNlcXVlbmNlTm9kZSkge1xuICAgICAgICBzZXEuY2xvc2VkID0gdHJ1ZVxuICAgICAgICBsZXQgZWxzZVNlcSA9IG5ldyBFbHNlU2VxdWVuY2VOb2RlKHNlcSlcbiAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlID0gKHRoaXNcbiAgICAgICAgICAuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLnRoZW4oZWxzZVNlcSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnSUYgc3RhdGVtZW50IGlzIG5lZWRlZCB0byBiZSBjYWxsZWQgYmVmb3JlIEVMU0Ugc3RhdGVtZW50LidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBlbmRJZigpOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IHNlcSA9ICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5nZXRTZXF1ZW5jZSgpXG4gICAgICBpZiAoc2VxIGluc3RhbmNlb2YgSWZTZXF1ZW5jZU5vZGUgfHwgc2VxIGluc3RhbmNlb2YgRWxzZVNlcXVlbmNlTm9kZSkge1xuICAgICAgICBzZXEuY2xvc2VkID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdJRiBzdGF0ZW1lbnQgaXMgbmVlZGVkIHRvIGJlIGNhbGxlZCBiZWZvcmUgRU5ESUYgc3RhdGVtZW50LidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICB3aGlsZShjb25kaXRpb246ICgpID0+IGJvb2xlYW4pOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IHdoaWxlU2VxID0gbmV3IFdoaWxlU2VxdWVuY2VOb2RlKGNvbmRpdGlvbilcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSB3aGlsZVNlcVxuICAgICAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gd2hpbGVTZXFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZS50aGVuKHdoaWxlU2VxKVxuICAgICAgfVxuICAgICAgdGhpcy53aGlsZU5vZGVTdGFjay5wdXNoKHdoaWxlU2VxKVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBlbmRXaGlsZSgpOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IHNlcSA9ICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5nZXRTZXF1ZW5jZSgpXG4gICAgICBpZiAoc2VxIGluc3RhbmNlb2YgV2hpbGVTZXF1ZW5jZU5vZGUpIHtcbiAgICAgICAgc2VxLmNsb3NlZCA9IHRydWVcbiAgICAgICAgaWYgKHRoaXMud2hpbGVOb2RlU3RhY2subGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMud2hpbGVOb2RlU3RhY2suc3BsaWNlKHRoaXMud2hpbGVOb2RlU3RhY2subGVuZ3RoIC0gMSwgMSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdXSElMRSBzdGF0ZW1lbnQgaXMgbmVlZGVkIHRvIGJlIGNhbGxlZCBiZWZvcmUgRU5EV0hJTEUgc3RhdGVtZW50LidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBicmVha1doaWxlKCk6IFNlcXVlbmNlQnVpbGRlciB7XG4gICAgICBpZiAodGhpcy53aGlsZU5vZGVTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9ICh0aGlzXG4gICAgICAgICAgLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS50aGVuKFxuICAgICAgICAgIG5ldyBCcmVha1doaWxlU2VxdWVuY2VOb2RlKFxuICAgICAgICAgICAgdGhpcy53aGlsZU5vZGVTdGFja1t0aGlzLndoaWxlTm9kZVN0YWNrLmxlbmd0aCAtIDFdXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1dISUxFIHN0YXRlbWVudCBpcyBuZWVkZWQgdG8gYmUgY2FsbGVkIGJlZm9yZSBCUkVBS1dISUxFIHN0YXRlbWVudC4nXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuICB9XG59XG5cbmNsYXNzIFNlcXVlbmNlTm9kZSB7XG4gIGFjdGlvbjogQWN0aW9uc1NlcXVlbmNlU3lzdGVtLklBY3Rpb24gfCBudWxsID0gbnVsbFxuICBuZXh0OiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuXG4gIHRoZW4obmV4dDogU2VxdWVuY2VOb2RlKTogU2VxdWVuY2VOb2RlIHtcbiAgICB0aGlzLm5leHQgPSBuZXh0XG4gICAgcmV0dXJuIG5leHRcbiAgfVxuXG4gIG9uU3RhcnQoKSB7XG4gICAgaWYgKHRoaXMuYWN0aW9uKSB0aGlzLmFjdGlvbi5vblN0YXJ0KClcbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuYWN0aW9uKSB0aGlzLmFjdGlvbi51cGRhdGUoZHQpXG4gIH1cblxuICBvbkZpbmlzaCgpIHtcbiAgICBpZiAodGhpcy5hY3Rpb24pIHRoaXMuYWN0aW9uLm9uRmluaXNoKClcbiAgfVxuXG4gIGhhc0ZpbmlzaCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hY3Rpb24pIHJldHVybiB0aGlzLmFjdGlvbi5oYXNGaW5pc2hlZFxuICAgIGVsc2UgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGdldFNlcXVlbmNlKCk6IFNlcXVlbmNlTm9kZSB7XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuXG5jbGFzcyBTdWJTZXF1ZW5jZU5vZGUgZXh0ZW5kcyBTZXF1ZW5jZU5vZGUge1xuICBjdXJyZW50SW5uZXJTZXF1ZW5jZTogU2VxdWVuY2VOb2RlIHwgbnVsbCA9IG51bGxcbiAgc3RhcnRpbmdJbm5lclNlcXVlbmNlOiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuICBjbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIHRoZW4obmV4dDogU2VxdWVuY2VOb2RlKTogU2VxdWVuY2VOb2RlIHtcbiAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID0gbmV4dFxuICAgICAgdGhpcy5zdGFydGluZ0lubmVyU2VxdWVuY2UgPSBuZXh0XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNsb3NlZCkge1xuICAgICAgICB0aGlzLm5leHQgPSBuZXh0XG4gICAgICAgIHJldHVybiBuZXh0XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID0gdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS50aGVuKG5leHQpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBvblN0YXJ0KCkge1xuICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSB0aGlzLnN0YXJ0aW5nSW5uZXJTZXF1ZW5jZVxuICAgIGlmICh0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlKSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLm9uU3RhcnQoKVxuICB9XG5cbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSkge1xuICAgICAgaWYgKCF0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLmhhc0ZpbmlzaCgpKSB7XG4gICAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UudXBkYXRlKGR0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS5vbkZpbmlzaCgpXG4gICAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLm5leHRcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UpIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2Uub25TdGFydCgpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25GaW5pc2goKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UpIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2Uub25GaW5pc2goKVxuICB9XG5cbiAgaGFzRmluaXNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID09IG51bGxcbiAgfVxuXG4gIGdldFNlcXVlbmNlKCk6IFNlcXVlbmNlTm9kZSB7XG4gICAgaWYgKHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UpIHtcbiAgICAgIGxldCBpbm5lclNlcSA9IHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UuZ2V0U2VxdWVuY2UoKVxuICAgICAgaWYgKGlubmVyU2VxIGluc3RhbmNlb2YgU3ViU2VxdWVuY2VOb2RlKSB7XG4gICAgICAgIGlmICghaW5uZXJTZXEuY2xvc2VkKSB7XG4gICAgICAgICAgcmV0dXJuIGlubmVyU2VxXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuXG5jbGFzcyBJZlNlcXVlbmNlTm9kZSBleHRlbmRzIFN1YlNlcXVlbmNlTm9kZSB7XG4gIGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhblxuICByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbikge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbmRpdGlvbiA9IGNvbmRpdGlvblxuICB9XG5cbiAgb25TdGFydCgpIHtcbiAgICB0aGlzLnJlc3VsdCA9IHRoaXMuY29uZGl0aW9uKClcbiAgICBpZiAodGhpcy5yZXN1bHQpIHN1cGVyLm9uU3RhcnQoKVxuICAgIGVsc2UgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9IG51bGxcbiAgfVxufVxuXG5jbGFzcyBFbHNlU2VxdWVuY2VOb2RlIGV4dGVuZHMgU3ViU2VxdWVuY2VOb2RlIHtcbiAgaWZTZXF1ZW5jZTogSWZTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGlmU2VxdWVuY2U6IElmU2VxdWVuY2VOb2RlKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuaWZTZXF1ZW5jZSA9IGlmU2VxdWVuY2VcbiAgfVxuXG4gIG9uU3RhcnQoKSB7XG4gICAgaWYgKHRoaXMuaWZTZXF1ZW5jZSAmJiAhdGhpcy5pZlNlcXVlbmNlLnJlc3VsdCkgc3VwZXIub25TdGFydCgpXG4gICAgZWxzZSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID0gbnVsbFxuICB9XG59XG5cbmNsYXNzIFdoaWxlU2VxdWVuY2VOb2RlIGV4dGVuZHMgU3ViU2VxdWVuY2VOb2RlIHtcbiAgY29uZGl0aW9uOiAoKSA9PiBib29sZWFuXG4gIGJyZWFrV2hpbGU6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbikge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbmRpdGlvbiA9IGNvbmRpdGlvblxuICB9XG5cbiAgb25TdGFydCgpIHtcbiAgICB0aGlzLmJyZWFrV2hpbGUgPSBmYWxzZVxuICAgIGlmICh0aGlzLmNvbmRpdGlvbigpKSBzdXBlci5vblN0YXJ0KClcbiAgICBlbHNlIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSBudWxsXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlKSB7XG4gICAgICBpZiAoIXRoaXMuY3VycmVudElubmVyU2VxdWVuY2UuaGFzRmluaXNoKCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS51cGRhdGUoZHQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLm9uRmluaXNoKClcbiAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9IHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UubmV4dFxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9PSBudWxsKVxuICAgICAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSB0aGlzLnN0YXJ0aW5nSW5uZXJTZXF1ZW5jZVxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSkgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS5vblN0YXJ0KClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYXNGaW5pc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYnJlYWtXaGlsZSB8fCAhdGhpcy5jb25kaXRpb24oKVxuICB9XG59XG5cbmNsYXNzIEJyZWFrV2hpbGVTZXF1ZW5jZU5vZGUgZXh0ZW5kcyBTZXF1ZW5jZU5vZGUge1xuICB3aGlsZU5vZGU6IFdoaWxlU2VxdWVuY2VOb2RlXG5cbiAgY29uc3RydWN0b3Iod2hpbGVOb2RlOiBXaGlsZVNlcXVlbmNlTm9kZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLndoaWxlTm9kZSA9IHdoaWxlTm9kZVxuICB9XG5cbiAgb25TdGFydCgpIHtcbiAgICB0aGlzLndoaWxlTm9kZS5icmVha1doaWxlID0gdHJ1ZVxuICB9XG59XG4iLCJpbXBvcnQgeyBNb3ZlVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi90cmFuc2Zvcm0vY29tcG9uZW50L21vdmUnXG5pbXBvcnQgeyBSb3RhdGVUcmFuc2Zvcm1Db21wb25lbnQgfSBmcm9tICcuL3RyYW5zZm9ybS9jb21wb25lbnQvcm90YXRlJ1xuaW1wb3J0IHsgU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQgfSBmcm9tICcuL3RyYW5zZm9ybS9jb21wb25lbnQvc2NhbGUnXG5pbXBvcnQgeyBGb2xsb3dQYXRoQ29tcG9uZW50IH0gZnJvbSAnLi90cmFuc2Zvcm0vY29tcG9uZW50L2ZvbGxvd3BhdGgnXG5pbXBvcnQgeyBLZWVwUm90YXRpbmdDb21wb25lbnQgfSBmcm9tICcuL3RyYW5zZm9ybS9jb21wb25lbnQva2VlcHJvdGF0aW5nJ1xuaW1wb3J0IHsgVHJhbnNmb3JtU3lzdGVtIH0gZnJvbSAnLi90cmFuc2Zvcm0vc3lzdGVtL3RyYW5zZnJvbVN5c3RlbSdcbmltcG9ydCB7IEludGVycG9sYXRlLCBJbnRlcnBvbGF0aW9uVHlwZSB9IGZyb20gJy4vdHJhbnNmb3JtL21hdGgvaW50ZXJwb2xhdGlvbidcblxuaW1wb3J0IHsgVG9nZ2xlQ29tcG9uZW50LCBUb2dnbGVTdGF0ZSB9IGZyb20gJy4vdG9nZ2xlL3RvZ2dsZUNvbXBvbmVudCdcblxuaW1wb3J0IHsgRGVsYXkgfSBmcm9tICcuL3RpbWVyL2NvbXBvbmVudC9kZWxheSdcbmltcG9ydCB7IEV4cGlyZUluIH0gZnJvbSAnLi90aW1lci9jb21wb25lbnQvZXhwaXJlJ1xuaW1wb3J0IHsgSW50ZXJ2YWwgfSBmcm9tICcuL3RpbWVyL2NvbXBvbmVudC9pbnRlcnZhbCdcblxuaW1wb3J0IHtcbiAgVHJpZ2dlclN5c3RlbSxcbiAgVHJpZ2dlckJveFNoYXBlLFxuICBUcmlnZ2VyU3BoZXJlU2hhcGUsXG4gIFRyaWdnZXJDb21wb25lbnRcbn0gZnJvbSAnLi90cmlnZ2Vycy90cmlnZ2VyU3lzdGVtJ1xuXG5pbXBvcnQgeyBBY3Rpb25zU2VxdWVuY2VTeXN0ZW0gfSBmcm9tICcuL2FjdGlvbnNTZXF1ZW5jZVN5c3RlbS9hY3Rpb25zU2VxdWVuY2VTeXN0ZW0nXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgVHJhbnNmb3JtU3lzdGVtLFxuICBNb3ZlVHJhbnNmb3JtQ29tcG9uZW50LFxuICBSb3RhdGVUcmFuc2Zvcm1Db21wb25lbnQsXG4gIFNjYWxlVHJhbnNmb3JtQ29tcG9uZW50LFxuICBGb2xsb3dQYXRoQ29tcG9uZW50LFxuICBLZWVwUm90YXRpbmdDb21wb25lbnQsXG4gIEludGVycG9sYXRlLFxuICBJbnRlcnBvbGF0aW9uVHlwZSxcbiAgVG9nZ2xlQ29tcG9uZW50LFxuICBUb2dnbGVTdGF0ZSxcbiAgRGVsYXksXG4gIEV4cGlyZUluLFxuICBJbnRlcnZhbCxcbiAgVHJpZ2dlckNvbXBvbmVudCxcbiAgVHJpZ2dlclN5c3RlbSxcbiAgVHJpZ2dlclNwaGVyZVNoYXBlLFxuICBUcmlnZ2VyQm94U2hhcGUsXG4gIEFjdGlvbnNTZXF1ZW5jZVN5c3RlbVxufVxuIiwidmFyIGV0aGNvbm5lY3Q9ZnVuY3Rpb24odCl7dmFyIGU9e307ZnVuY3Rpb24gcihuKXtpZihlW25dKXJldHVybiBlW25dLmV4cG9ydHM7dmFyIG89ZVtuXT17aTpuLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIHRbbl0uY2FsbChvLmV4cG9ydHMsbyxvLmV4cG9ydHMsciksby5sPSEwLG8uZXhwb3J0c31yZXR1cm4gci5tPXQsci5jPWUsci5kPWZ1bmN0aW9uKHQsZSxuKXtyLm8odCxlKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7ZW51bWVyYWJsZTohMCxnZXQ6bn0pfSxyLnI9ZnVuY3Rpb24odCl7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOlwiTW9kdWxlXCJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sci50PWZ1bmN0aW9uKHQsZSl7aWYoMSZlJiYodD1yKHQpKSw4JmUpcmV0dXJuIHQ7aWYoNCZlJiZcIm9iamVjdFwiPT10eXBlb2YgdCYmdCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoci5yKG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwiZGVmYXVsdFwiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KSwyJmUmJlwic3RyaW5nXCIhPXR5cGVvZiB0KWZvcih2YXIgbyBpbiB0KXIuZChuLG8sZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19LmJpbmQobnVsbCxvKSk7cmV0dXJuIG59LHIubj1mdW5jdGlvbih0KXt2YXIgZT10JiZ0Ll9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gdC5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiB0fTtyZXR1cm4gci5kKGUsXCJhXCIsZSksZX0sci5vPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfSxyLnA9XCJcIixyKHIucz0yOCl9KFtmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPW58fGZ1bmN0aW9uKHQsZSl7dmFyIHI9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiBmdW5jdGlvbihlKXt2YXIgcjtyZXR1cm4gdC5wcm90b3R5cGU9ZSxyPW5ldyB0LHQucHJvdG90eXBlPW51bGwscn19KCksbj17fSxvPW4ubGliPXt9LGk9by5CYXNlPXtleHRlbmQ6ZnVuY3Rpb24odCl7dmFyIGU9cih0aGlzKTtyZXR1cm4gdCYmZS5taXhJbih0KSxlLmhhc093blByb3BlcnR5KFwiaW5pdFwiKSYmdGhpcy5pbml0IT09ZS5pbml0fHwoZS5pbml0PWZ1bmN0aW9uKCl7ZS4kc3VwZXIuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxlLmluaXQucHJvdG90eXBlPWUsZS4kc3VwZXI9dGhpcyxlfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmV4dGVuZCgpO3JldHVybiB0LmluaXQuYXBwbHkodCxhcmd1bWVudHMpLHR9LGluaXQ6ZnVuY3Rpb24oKXt9LG1peEluOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0KXQuaGFzT3duUHJvcGVydHkoZSkmJih0aGlzW2VdPXRbZV0pO3QuaGFzT3duUHJvcGVydHkoXCJ0b1N0cmluZ1wiKSYmKHRoaXMudG9TdHJpbmc9dC50b1N0cmluZyl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpfX0scz1vLldvcmRBcnJheT1pLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy53b3Jkcz10fHxbXSx0aGlzLnNpZ0J5dGVzPW51bGwhPWU/ZTo0KnQubGVuZ3RofSx0b1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4odHx8Yykuc3RyaW5naWZ5KHRoaXMpfSxjb25jYXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53b3JkcyxyPXQud29yZHMsbj10aGlzLnNpZ0J5dGVzLG89dC5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksbiU0KWZvcih2YXIgaT0wO2k8bztpKyspe3ZhciBzPXJbaT4+PjJdPj4+MjQtaSU0KjgmMjU1O2VbbitpPj4+Ml18PXM8PDI0LShuK2kpJTQqOH1lbHNlIGZvcih2YXIgaT0wO2k8bztpKz00KWVbbitpPj4+Ml09cltpPj4+Ml07cmV0dXJuIHRoaXMuc2lnQnl0ZXMrPW8sdGhpc30sY2xhbXA6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLndvcmRzLHI9dGhpcy5zaWdCeXRlcztlW3I+Pj4yXSY9NDI5NDk2NzI5NTw8MzItciU0KjgsZS5sZW5ndGg9dC5jZWlsKHIvNCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9aS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0LndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksdH0scmFuZG9tOmZ1bmN0aW9uKGUpe2Zvcih2YXIgcixuPVtdLG89ZnVuY3Rpb24oZSl7dmFyIGU9ZSxyPTk4NzY1NDMyMSxuPTQyOTQ5NjcyOTU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89KChyPTM2OTY5Kig2NTUzNSZyKSsocj4+MTYpJm4pPDwxNikrKGU9MThlMyooNjU1MzUmZSkrKGU+PjE2KSZuKSZuO3JldHVybiBvLz00Mjk0OTY3Mjk2LChvKz0uNSkqKHQucmFuZG9tKCk+LjU/MTotMSl9fSxpPTA7aTxlO2krPTQpe3ZhciBhPW8oNDI5NDk2NzI5Nioocnx8dC5yYW5kb20oKSkpO3I9OTg3NjU0MDcxKmEoKSxuLnB1c2goNDI5NDk2NzI5NiphKCl8MCl9cmV0dXJuIG5ldyBzLmluaXQobixlKX19KSxhPW4uZW5jPXt9LGM9YS5IZXg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMsbj1bXSxvPTA7bzxyO28rKyl7dmFyIGk9ZVtvPj4+Ml0+Pj4yNC1vJTQqOCYyNTU7bi5wdXNoKChpPj4+NCkudG9TdHJpbmcoMTYpKSxuLnB1c2goKDE1JmkpLnRvU3RyaW5nKDE2KSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9W10sbj0wO248ZTtuKz0yKXJbbj4+PjNdfD1wYXJzZUludCh0LnN1YnN0cihuLDIpLDE2KTw8MjQtbiU4KjQ7cmV0dXJuIG5ldyBzLmluaXQocixlLzIpfX0sdT1hLkxhdGluMT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxuPVtdLG89MDtvPHI7bysrKXt2YXIgaT1lW28+Pj4yXT4+PjI0LW8lNCo4JjI1NTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShpKSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9W10sbj0wO248ZTtuKyspcltuPj4+Ml18PSgyNTUmdC5jaGFyQ29kZUF0KG4pKTw8MjQtbiU0Kjg7cmV0dXJuIG5ldyBzLmluaXQocixlKX19LGw9YS5VdGY4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHUuc3RyaW5naWZ5KHQpKSl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiTWFsZm9ybWVkIFVURi04IGRhdGFcIil9fSxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gdS5wYXJzZSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodCkpKX19LGg9by5CdWZmZXJlZEJsb2NrQWxnb3JpdGhtPWkuZXh0ZW5kKHtyZXNldDpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IHMuaW5pdCx0aGlzLl9uRGF0YUJ5dGVzPTB9LF9hcHBlbmQ6ZnVuY3Rpb24odCl7XCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PWwucGFyc2UodCkpLHRoaXMuX2RhdGEuY29uY2F0KHQpLHRoaXMuX25EYXRhQnl0ZXMrPXQuc2lnQnl0ZXN9LF9wcm9jZXNzOmZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX2RhdGEsbj1yLndvcmRzLG89ci5zaWdCeXRlcyxpPXRoaXMuYmxvY2tTaXplLGE9NCppLGM9by9hLHU9KGM9ZT90LmNlaWwoYyk6dC5tYXgoKDB8YyktdGhpcy5fbWluQnVmZmVyU2l6ZSwwKSkqaSxsPXQubWluKDQqdSxvKTtpZih1KXtmb3IodmFyIGg9MDtoPHU7aCs9aSl0aGlzLl9kb1Byb2Nlc3NCbG9jayhuLGgpO3ZhciBmPW4uc3BsaWNlKDAsdSk7ci5zaWdCeXRlcy09bH1yZXR1cm4gbmV3IHMuaW5pdChmLGwpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWkuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5fZGF0YT10aGlzLl9kYXRhLmNsb25lKCksdH0sX21pbkJ1ZmZlclNpemU6MH0pLGY9KG8uSGFzaGVyPWguZXh0ZW5kKHtjZmc6aS5leHRlbmQoKSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7aC5yZXNldC5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3QmJnRoaXMuX2FwcGVuZCh0KTt2YXIgZT10aGlzLl9kb0ZpbmFsaXplKCk7cmV0dXJuIGV9LGJsb2NrU2l6ZToxNixfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3JldHVybiBuZXcgdC5pbml0KHIpLmZpbmFsaXplKGUpfX0sX2NyZWF0ZUhtYWNIZWxwZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuIG5ldyBmLkhNQUMuaW5pdCh0LHIpLmZpbmFsaXplKGUpfX19KSxuLmFsZ289e30pO3JldHVybiBufShNYXRoKSxuKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoNSksdm9pZChuLmxpYi5DaXBoZXJ8fGZ1bmN0aW9uKHQpe3ZhciBlPW4scj1lLmxpYixvPXIuQmFzZSxpPXIuV29yZEFycmF5LHM9ci5CdWZmZXJlZEJsb2NrQWxnb3JpdGhtLGE9ZS5lbmMsYz0oYS5VdGY4LGEuQmFzZTY0KSx1PWUuYWxnbyxsPXUuRXZwS0RGLGg9ci5DaXBoZXI9cy5leHRlbmQoe2NmZzpvLmV4dGVuZCgpLGNyZWF0ZUVuY3J5cHRvcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmNyZWF0ZSh0aGlzLl9FTkNfWEZPUk1fTU9ERSx0LGUpfSxjcmVhdGVEZWNyeXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fREVDX1hGT1JNX01PREUsdCxlKX0saW5pdDpmdW5jdGlvbih0LGUscil7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHIpLHRoaXMuX3hmb3JtTW9kZT10LHRoaXMuX2tleT1lLHRoaXMucmVzZXQoKX0scmVzZXQ6ZnVuY3Rpb24oKXtzLnJlc2V0LmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfSxwcm9jZXNzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt0JiZ0aGlzLl9hcHBlbmQodCk7dmFyIGU9dGhpcy5fZG9GaW5hbGl6ZSgpO3JldHVybiBlfSxrZXlTaXplOjQsaXZTaXplOjQsX0VOQ19YRk9STV9NT0RFOjEsX0RFQ19YRk9STV9NT0RFOjIsX2NyZWF0ZUhlbHBlcjpmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/Rjp3fXJldHVybiBmdW5jdGlvbihlKXtyZXR1cm57ZW5jcnlwdDpmdW5jdGlvbihyLG4sbyl7cmV0dXJuIHQobikuZW5jcnlwdChlLHIsbixvKX0sZGVjcnlwdDpmdW5jdGlvbihyLG4sbyl7cmV0dXJuIHQobikuZGVjcnlwdChlLHIsbixvKX19fX0oKX0pLGY9KHIuU3RyZWFtQ2lwaGVyPWguZXh0ZW5kKHtfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3Byb2Nlc3MoITApO3JldHVybiB0fSxibG9ja1NpemU6MX0pLGUubW9kZT17fSkscD1yLkJsb2NrQ2lwaGVyTW9kZT1vLmV4dGVuZCh7Y3JlYXRlRW5jcnlwdG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuRW5jcnlwdG9yLmNyZWF0ZSh0LGUpfSxjcmVhdGVEZWNyeXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5EZWNyeXB0b3IuY3JlYXRlKHQsZSl9LGluaXQ6ZnVuY3Rpb24odCxlKXt0aGlzLl9jaXBoZXI9dCx0aGlzLl9pdj1lfX0pLGQ9Zi5DQkM9ZnVuY3Rpb24oKXt2YXIgZT1wLmV4dGVuZCgpO2Z1bmN0aW9uIHIoZSxyLG4pe3ZhciBvPXRoaXMuX2l2O2lmKG8pe3ZhciBpPW87dGhpcy5faXY9dH1lbHNlIHZhciBpPXRoaXMuX3ByZXZCbG9jaztmb3IodmFyIHM9MDtzPG47cysrKWVbcitzXV49aVtzXX1yZXR1cm4gZS5FbmNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2NpcGhlcixvPW4uYmxvY2tTaXplO3IuY2FsbCh0aGlzLHQsZSxvKSxuLmVuY3J5cHRCbG9jayh0LGUpLHRoaXMuX3ByZXZCbG9jaz10LnNsaWNlKGUsZStvKX19KSxlLkRlY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY2lwaGVyLG89bi5ibG9ja1NpemUsaT10LnNsaWNlKGUsZStvKTtuLmRlY3J5cHRCbG9jayh0LGUpLHIuY2FsbCh0aGlzLHQsZSxvKSx0aGlzLl9wcmV2QmxvY2s9aX19KSxlfSgpLG09ZS5wYWQ9e30seT1tLlBrY3M3PXtwYWQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9NCplLG49ci10LnNpZ0J5dGVzJXIsbz1uPDwyNHxuPDwxNnxuPDw4fG4scz1bXSxhPTA7YTxuO2ErPTQpcy5wdXNoKG8pO3ZhciBjPWkuY3JlYXRlKHMsbik7dC5jb25jYXQoYyl9LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciBlPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPWV9fSxnPShyLkJsb2NrQ2lwaGVyPWguZXh0ZW5kKHtjZmc6aC5jZmcuZXh0ZW5kKHttb2RlOmQscGFkZGluZzp5fSkscmVzZXQ6ZnVuY3Rpb24oKXtoLnJlc2V0LmNhbGwodGhpcyk7dmFyIHQ9dGhpcy5jZmcsZT10Lml2LHI9dC5tb2RlO2lmKHRoaXMuX3hmb3JtTW9kZT09dGhpcy5fRU5DX1hGT1JNX01PREUpdmFyIG49ci5jcmVhdGVFbmNyeXB0b3I7ZWxzZXt2YXIgbj1yLmNyZWF0ZURlY3J5cHRvcjt0aGlzLl9taW5CdWZmZXJTaXplPTF9dGhpcy5fbW9kZSYmdGhpcy5fbW9kZS5fX2NyZWF0b3I9PW4/dGhpcy5fbW9kZS5pbml0KHRoaXMsZSYmZS53b3Jkcyk6KHRoaXMuX21vZGU9bi5jYWxsKHIsdGhpcyxlJiZlLndvcmRzKSx0aGlzLl9tb2RlLl9fY3JlYXRvcj1uKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dGhpcy5fbW9kZS5wcm9jZXNzQmxvY2sodCxlKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNmZy5wYWRkaW5nO2lmKHRoaXMuX3hmb3JtTW9kZT09dGhpcy5fRU5DX1hGT1JNX01PREUpe3QucGFkKHRoaXMuX2RhdGEsdGhpcy5ibG9ja1NpemUpO3ZhciBlPXRoaXMuX3Byb2Nlc3MoITApfWVsc2V7dmFyIGU9dGhpcy5fcHJvY2VzcyghMCk7dC51bnBhZChlKX1yZXR1cm4gZX0sYmxvY2tTaXplOjR9KSxyLkNpcGhlclBhcmFtcz1vLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0KXt0aGlzLm1peEluKHQpfSx0b1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4odHx8dGhpcy5mb3JtYXR0ZXIpLnN0cmluZ2lmeSh0aGlzKX19KSksXz1lLmZvcm1hdD17fSx2PV8uT3BlblNTTD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3ZhciBlPXQuY2lwaGVydGV4dCxyPXQuc2FsdDtpZihyKXZhciBuPWkuY3JlYXRlKFsxMzk4ODkzNjg0LDE3MDEwNzY4MzFdKS5jb25jYXQocikuY29uY2F0KGUpO2Vsc2UgdmFyIG49ZTtyZXR1cm4gbi50b1N0cmluZyhjKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9Yy5wYXJzZSh0KSxyPWUud29yZHM7aWYoMTM5ODg5MzY4ND09clswXSYmMTcwMTA3NjgzMT09clsxXSl7dmFyIG49aS5jcmVhdGUoci5zbGljZSgyLDQpKTtyLnNwbGljZSgwLDQpLGUuc2lnQnl0ZXMtPTE2fXJldHVybiBnLmNyZWF0ZSh7Y2lwaGVydGV4dDplLHNhbHQ6bn0pfX0sdz1yLlNlcmlhbGl6YWJsZUNpcGhlcj1vLmV4dGVuZCh7Y2ZnOm8uZXh0ZW5kKHtmb3JtYXQ6dn0pLGVuY3J5cHQ6ZnVuY3Rpb24odCxlLHIsbil7bj10aGlzLmNmZy5leHRlbmQobik7dmFyIG89dC5jcmVhdGVFbmNyeXB0b3IocixuKSxpPW8uZmluYWxpemUoZSkscz1vLmNmZztyZXR1cm4gZy5jcmVhdGUoe2NpcGhlcnRleHQ6aSxrZXk6cixpdjpzLml2LGFsZ29yaXRobTp0LG1vZGU6cy5tb2RlLHBhZGRpbmc6cy5wYWRkaW5nLGJsb2NrU2l6ZTp0LmJsb2NrU2l6ZSxmb3JtYXR0ZXI6bi5mb3JtYXR9KX0sZGVjcnlwdDpmdW5jdGlvbih0LGUscixuKXtuPXRoaXMuY2ZnLmV4dGVuZChuKSxlPXRoaXMuX3BhcnNlKGUsbi5mb3JtYXQpO3ZhciBvPXQuY3JlYXRlRGVjcnlwdG9yKHIsbikuZmluYWxpemUoZS5jaXBoZXJ0ZXh0KTtyZXR1cm4gb30sX3BhcnNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/ZS5wYXJzZSh0LHRoaXMpOnR9fSksYj1lLmtkZj17fSxCPWIuT3BlblNTTD17ZXhlY3V0ZTpmdW5jdGlvbih0LGUscixuKXtufHwobj1pLnJhbmRvbSg4KSk7dmFyIG89bC5jcmVhdGUoe2tleVNpemU6ZStyfSkuY29tcHV0ZSh0LG4pLHM9aS5jcmVhdGUoby53b3Jkcy5zbGljZShlKSw0KnIpO3JldHVybiBvLnNpZ0J5dGVzPTQqZSxnLmNyZWF0ZSh7a2V5Om8saXY6cyxzYWx0Om59KX19LEY9ci5QYXNzd29yZEJhc2VkQ2lwaGVyPXcuZXh0ZW5kKHtjZmc6dy5jZmcuZXh0ZW5kKHtrZGY6Qn0pLGVuY3J5cHQ6ZnVuY3Rpb24odCxlLHIsbil7dmFyIG89KG49dGhpcy5jZmcuZXh0ZW5kKG4pKS5rZGYuZXhlY3V0ZShyLHQua2V5U2l6ZSx0Lml2U2l6ZSk7bi5pdj1vLml2O3ZhciBpPXcuZW5jcnlwdC5jYWxsKHRoaXMsdCxlLG8ua2V5LG4pO3JldHVybiBpLm1peEluKG8pLGl9LGRlY3J5cHQ6ZnVuY3Rpb24odCxlLHIsbil7bj10aGlzLmNmZy5leHRlbmQobiksZT10aGlzLl9wYXJzZShlLG4uZm9ybWF0KTt2YXIgbz1uLmtkZi5leGVjdXRlKHIsdC5rZXlTaXplLHQuaXZTaXplLGUuc2FsdCk7bi5pdj1vLml2O3ZhciBpPXcuZGVjcnlwdC5jYWxsKHRoaXMsdCxlLG8ua2V5LG4pO3JldHVybiBpfX0pfSgpKSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMTcpLG89cigzKSxpPXIoMTQpLHM9cigyNSk7ZnVuY3Rpb24gYSh0KXtuLkJpZ051bWJlci5jb25maWcoaS5FVEhfQklHTlVNQkVSX1JPVU5ESU5HX01PREUpO2xldCBlPW8ucGFkTGVmdChvLnRvVHdvc0NvbXBsZW1lbnQodCkudG9TdHJpbmcoMTYpLDY0KTtyZXR1cm4gbmV3IHMuU29saWRpdHlQYXJhbShlKX1mdW5jdGlvbiBjKHQpe3JldHVyblwiMVwiPT09bmV3IG4uQmlnTnVtYmVyKHQuc3Vic3RyKDAsMSksMTYpLnRvU3RyaW5nKDIpLnN1YnN0cigwLDEpfWZ1bmN0aW9uIHUodCl7bGV0IGU9dC5zdGF0aWNQYXJ0KCl8fFwiMFwiO3JldHVybiBjKGUpP25ldyBuLkJpZ051bWJlcihlLDE2KS5taW51cyhuZXcgbi5CaWdOdW1iZXIoXCJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmXCIsMTYpKS5taW51cygxKTpuZXcgbi5CaWdOdW1iZXIoZSwxNil9ZnVuY3Rpb24gbCh0KXtsZXQgZT10LnN0YXRpY1BhcnQoKXx8XCIwXCI7cmV0dXJuIG5ldyBuLkJpZ051bWJlcihlLDE2KX1lLmZvcm1hdElucHV0SW50PWEsZS5mb3JtYXRJbnB1dEJ5dGVzPWZ1bmN0aW9uKHQpe2xldCBlPW8udG9IZXgodCkuc3Vic3RyKDIpLHI9TWF0aC5mbG9vcigoZS5sZW5ndGgrNjMpLzY0KTtyZXR1cm4gZT1vLnBhZFJpZ2h0KGUsNjQqciksbmV3IHMuU29saWRpdHlQYXJhbShlKX0sZS5mb3JtYXRJbnB1dER5bmFtaWNCeXRlcz1mdW5jdGlvbih0KXtsZXQgZT1vLnRvSGV4KHQpLnN1YnN0cigyKSxyPWUubGVuZ3RoLzIsbj1NYXRoLmZsb29yKChlLmxlbmd0aCs2MykvNjQpO3JldHVybiBlPW8ucGFkUmlnaHQoZSw2NCpuKSxuZXcgcy5Tb2xpZGl0eVBhcmFtKGEocikudmFsdWUrZSl9LGUuZm9ybWF0SW5wdXRTdHJpbmc9ZnVuY3Rpb24odCl7bGV0IGU9by5mcm9tVXRmOCh0KS5zdWJzdHIoMikscj1lLmxlbmd0aC8yLG49TWF0aC5mbG9vcigoZS5sZW5ndGgrNjMpLzY0KTtyZXR1cm4gZT1vLnBhZFJpZ2h0KGUsNjQqbiksbmV3IHMuU29saWRpdHlQYXJhbShhKHIpLnZhbHVlK2UpfSxlLmZvcm1hdElucHV0Qm9vbD1mdW5jdGlvbih0KXtsZXQgZT1cIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiKyh0P1wiMVwiOlwiMFwiKTtyZXR1cm4gbmV3IHMuU29saWRpdHlQYXJhbShlKX0sZS5mb3JtYXRJbnB1dFJlYWw9ZnVuY3Rpb24odCl7cmV0dXJuIGEobmV3IG4uQmlnTnVtYmVyKHQpLnRpbWVzKG5ldyBuLkJpZ051bWJlcigyKS5wb3coMTI4KSkpfSxlLnNpZ25lZElzTmVnYXRpdmU9YyxlLmZvcm1hdE91dHB1dEludD11LGUuZm9ybWF0T3V0cHV0VUludD1sLGUuZm9ybWF0T3V0cHV0UmVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdSh0KS5kaXZpZGVkQnkobmV3IG4uQmlnTnVtYmVyKDIpLnBvdygxMjgpKX0sZS5mb3JtYXRPdXRwdXRVUmVhbD1mdW5jdGlvbih0KXtyZXR1cm4gbCh0KS5kaXZpZGVkQnkobmV3IG4uQmlnTnVtYmVyKDIpLnBvdygxMjgpKX0sZS5mb3JtYXRPdXRwdXRCb29sPWZ1bmN0aW9uKHQpe3JldHVyblwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMVwiPT09dC5zdGF0aWNQYXJ0KCl9LGUuZm9ybWF0T3V0cHV0Qnl0ZXM9ZnVuY3Rpb24odCxlKXtsZXQgcj1lLm1hdGNoKC9eYnl0ZXMoWzAtOV0qKS8pLG49cGFyc2VJbnQoclsxXSwxMCk7cmV0dXJuXCIweFwiK3Quc3RhdGljUGFydCgpLnNsaWNlKDAsMipuKX0sZS5mb3JtYXRPdXRwdXREeW5hbWljQnl0ZXM9ZnVuY3Rpb24odCl7bGV0IGU9MipuZXcgbi5CaWdOdW1iZXIodC5keW5hbWljUGFydCgpLnNsaWNlKDAsNjQpLDE2KS50b051bWJlcigpO3JldHVyblwiMHhcIit0LmR5bmFtaWNQYXJ0KCkuc3Vic3RyKDY0LGUpfSxlLmZvcm1hdE91dHB1dFN0cmluZz1mdW5jdGlvbih0KXtsZXQgZT0yKm5ldyBuLkJpZ051bWJlcih0LmR5bmFtaWNQYXJ0KCkuc2xpY2UoMCw2NCksMTYpLnRvTnVtYmVyKCk7cmV0dXJuIG8udG9VdGY4KHQuZHluYW1pY1BhcnQoKS5zdWJzdHIoNjQsZSkpfSxlLmZvcm1hdE91dHB1dEFkZHJlc3M9ZnVuY3Rpb24odCl7bGV0IGU9dC5zdGF0aWNQYXJ0KCk7cmV0dXJuXCIweFwiK2Uuc2xpY2UoZS5sZW5ndGgtNDAsZS5sZW5ndGgpfX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigxNyksbz1yKDMxKSxpPXIoMzIpLHM9cigyMCk7ZnVuY3Rpb24gYSh0LGUpe2xldCByPXQ7cmV0dXJuIGUmJlwiaGV4XCI9PT1lLmVuY29kaW5nJiYoci5sZW5ndGg+MiYmXCIweFwiPT09ci5zdWJzdHIoMCwyKSYmKHI9ci5zdWJzdHIoMikpLHI9aS5lbmMuSGV4LnBhcnNlKHIpKSxzKHIse291dHB1dExlbmd0aDoyNTZ9KS50b1N0cmluZygpfWUuc2hhMz1hO2xldCBjPXtub2V0aGVyOlwiMFwiLHdlaTpcIjFcIixrd2VpOlwiMTAwMFwiLEt3ZWk6XCIxMDAwXCIsYmFiYmFnZTpcIjEwMDBcIixmZW10b2V0aGVyOlwiMTAwMFwiLG13ZWk6XCIxMDAwMDAwXCIsTXdlaTpcIjEwMDAwMDBcIixsb3ZlbGFjZTpcIjEwMDAwMDBcIixwaWNvZXRoZXI6XCIxMDAwMDAwXCIsZ3dlaTpcIjEwMDAwMDAwMDBcIixHd2VpOlwiMTAwMDAwMDAwMFwiLHNoYW5ub246XCIxMDAwMDAwMDAwXCIsbmFub2V0aGVyOlwiMTAwMDAwMDAwMFwiLG5hbm86XCIxMDAwMDAwMDAwXCIsc3phYm86XCIxMDAwMDAwMDAwMDAwXCIsbWljcm9ldGhlcjpcIjEwMDAwMDAwMDAwMDBcIixtaWNybzpcIjEwMDAwMDAwMDAwMDBcIixmaW5uZXk6XCIxMDAwMDAwMDAwMDAwMDAwXCIsbWlsbGlldGhlcjpcIjEwMDAwMDAwMDAwMDAwMDBcIixtaWxsaTpcIjEwMDAwMDAwMDAwMDAwMDBcIixldGhlcjpcIjEwMDAwMDAwMDAwMDAwMDAwMDBcIixrZXRoZXI6XCIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCIsZ3JhbmQ6XCIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCIsbWV0aGVyOlwiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLGdldGhlcjpcIjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIix0ZXRoZXI6XCIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCJ9O2Z1bmN0aW9uIHUodCxlLHIpe3JldHVybiBuZXcgQXJyYXkoZS10Lmxlbmd0aCsxKS5qb2luKHJ8fFwiMFwiKSt0fWZ1bmN0aW9uIGwodCxlPSExKXtsZXQgcj1vLmVuY29kZSh0KSxuPVwiXCI7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kyspe2xldCBvPXIuY2hhckNvZGVBdCh0KTtpZigwPT09byl7aWYoIWUpYnJlYWs7bis9XCIwMFwifWVsc2V7bGV0IHQ9by50b1N0cmluZygxNik7bis9dC5sZW5ndGg8Mj9cIjBcIit0OnR9fXJldHVyblwiMHhcIitufWZ1bmN0aW9uIGgodCl7bGV0IGU9ZCh0KSxyPWUudG9TdHJpbmcoMTYpO3JldHVybiBlLmlzTGVzc1RoYW4oMCk/XCItMHhcIityLnN1YnN0cigxKTpcIjB4XCIrcn1mdW5jdGlvbiBmKHQpe2lmKHYodCkpcmV0dXJuIGgoK3QpO2lmKGcodCkpcmV0dXJuIGgodCk7aWYoXCJvYmplY3RcIj09dHlwZW9mIHQpcmV0dXJuIGwoSlNPTi5zdHJpbmdpZnkodCkpO2lmKF8odCkpe2NvbnN0IGU9dDtpZigwPT09ZS5pbmRleE9mKFwiLTB4XCIpKXJldHVybiBoKGUpO2lmKDA9PT1lLmluZGV4T2YoXCIweFwiKSlyZXR1cm4gZTtpZighaXNGaW5pdGUoZSkpcmV0dXJuIGwoZSwhMCl9cmV0dXJuIGgodCl9ZnVuY3Rpb24gcCh0KXtsZXQgZT10P3QudG9Mb3dlckNhc2UoKTpcImV0aGVyXCIscj1jW2VdO2lmKHZvaWQgMD09PXIpdGhyb3cgbmV3IEVycm9yKFwiVGhpcyB1bml0IGRvZXNuJ3QgZXhpc3RzLCBwbGVhc2UgdXNlIHRoZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB1bml0c1wiK0pTT04uc3RyaW5naWZ5KGMsbnVsbCwyKSk7cmV0dXJuIG5ldyBuLkJpZ051bWJlcihyLDEwKX1mdW5jdGlvbiBkKHQpe2xldCBlPXR8fDA7cmV0dXJuIGcoZSk/ZTpcInN0cmluZ1wiIT10eXBlb2YgZXx8MCE9PWUuaW5kZXhPZihcIjB4XCIpJiYwIT09ZS5pbmRleE9mKFwiLTB4XCIpP25ldyBuLkJpZ051bWJlcihlLnRvU3RyaW5nKDEwKSwxMCk6bmV3IG4uQmlnTnVtYmVyKGUucmVwbGFjZShcIjB4XCIsXCJcIiksMTYpfWZ1bmN0aW9uIG0odCl7cmV0dXJuL14weFswLTlhLWZdezQwfSQvaS50ZXN0KHQpfWZ1bmN0aW9uIHkodCl7Y29uc3QgZT10LnJlcGxhY2UoXCIweFwiLFwiXCIpO2xldCByPWEoZS50b0xvd2VyQ2FzZSgpKTtmb3IobGV0IHQ9MDt0PDQwO3QrKylpZihwYXJzZUludChyW3RdLDE2KT43JiZlW3RdLnRvVXBwZXJDYXNlKCkhPT1lW3RdfHxwYXJzZUludChyW3RdLDE2KTw9NyYmZVt0XS50b0xvd2VyQ2FzZSgpIT09ZVt0XSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBnKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygbi5CaWdOdW1iZXJ9ZnVuY3Rpb24gXyh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdHx8dCYmdC5jb25zdHJ1Y3RvciYmXCJTdHJpbmdcIj09PXQuY29uc3RydWN0b3IubmFtZX1mdW5jdGlvbiB2KHQpe3JldHVyblwiYm9vbGVhblwiPT10eXBlb2YgdH1lLnBhZExlZnQ9dSxlLnBhZFJpZ2h0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdCtuZXcgQXJyYXkoZS10Lmxlbmd0aCsxKS5qb2luKHJ8fFwiMFwiKX0sZS50b1V0Zjg9ZnVuY3Rpb24odCl7bGV0IGU9XCJcIixyPTAsbj10Lmxlbmd0aDtmb3IoXCIweFwiPT09dC5zdWJzdHJpbmcoMCwyKSYmKHI9Mik7cjxuO3IrPTIpe2xldCBuPXBhcnNlSW50KHQuc3Vic3RyKHIsMiksMTYpO2lmKDA9PT1uKWJyZWFrO2UrPVN0cmluZy5mcm9tQ2hhckNvZGUobil9cmV0dXJuIG8uZGVjb2RlKGUpfSxlLnRvQXNjaWk9ZnVuY3Rpb24odCl7bGV0IGU9XCJcIixyPTAsbj10Lmxlbmd0aDtmb3IoXCIweFwiPT09dC5zdWJzdHJpbmcoMCwyKSYmKHI9Mik7cjxuO3IrPTIpe2xldCBuPXBhcnNlSW50KHQuc3Vic3RyKHIsMiksMTYpO2UrPVN0cmluZy5mcm9tQ2hhckNvZGUobil9cmV0dXJuIGV9LGUuZnJvbVV0Zjg9bCxlLmZyb21Bc2NpaT1mdW5jdGlvbih0LGU9MCl7bGV0IHI9XCJcIjtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IG49dC5jaGFyQ29kZUF0KGUpLnRvU3RyaW5nKDE2KTtyKz1uLmxlbmd0aDwyP1wiMFwiK246bn1yZXR1cm5cIjB4XCIrci5wYWRFbmQoZSxcIjBcIil9LGUudHJhbnNmb3JtVG9GdWxsTmFtZT1mdW5jdGlvbih0KXtpZigtMSE9PXQubmFtZS5pbmRleE9mKFwiKFwiKSlyZXR1cm4gdC5uYW1lO2xldCBlPXQuaW5wdXRzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlfSkuam9pbigpO3JldHVybiB0Lm5hbWUrXCIoXCIrZStcIilcIn0sZS5leHRyYWN0RGlzcGxheU5hbWU9ZnVuY3Rpb24odCl7bGV0IGU9dC5pbmRleE9mKFwiKFwiKSxyPXQuaW5kZXhPZihcIilcIik7cmV0dXJuLTEhPT1lJiYtMSE9PXI/dC5zdWJzdHIoMCxlKTp0fSxlLmV4dHJhY3RUeXBlTmFtZT1mdW5jdGlvbih0KXtsZXQgZT10LmluZGV4T2YoXCIoXCIpLHI9dC5pbmRleE9mKFwiKVwiKTtyZXR1cm4tMSE9PWUmJi0xIT09cj90LnN1YnN0cihlKzEsci1lLTEpLnJlcGxhY2UoXCIgXCIsXCJcIik6XCJcIn0sZS5pc0hleD1mdW5jdGlvbih0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdCYmL14weFswLTlhLWZBLUZdKyQvLnRlc3QodCl9LGUudG9OdWxsRGVjaW1hbD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90OmQodCkudG9OdW1iZXIoKX0sZS50b0RlY2ltYWw9ZnVuY3Rpb24odCl7cmV0dXJuIGQodCkudG9OdW1iZXIoKX0sZS50b1N0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4gZyh0KT90LnRvU3RyaW5nKDEwKTpcIlwiK3R9LGUudG9EYXRhPWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0JiYhdC5zdGFydHNXaXRoKFwiMHhcIikmJi9eW0EtWmEtejAtOV0rJC8udGVzdCh0KT9cIjB4XCIrdDpmKHQpfSxlLnRvQm9vbGVhbj1mdW5jdGlvbih0KXtyZXR1cm5cImJvb2xlYW5cIj09dHlwZW9mIHQ/dDowIT09ZCh0KS50b051bWJlcigpfSxlLmZyb21EZWNpbWFsPWgsZS50b0hleD1mLGUuZ2V0VmFsdWVPZlVuaXQ9cCxlLmZyb21XZWk9ZnVuY3Rpb24odCxlKXtsZXQgcj1kKHQpLmRpdmlkZWRCeShwKGUpKTtyZXR1cm4gZyh0KT9yOnIudG9TdHJpbmcoMTApfSxlLnRvV2VpPWZ1bmN0aW9uKHQsZSl7bGV0IHI9ZCh0KS50aW1lcyhwKGUpKTtyZXR1cm4gZyh0KT9yOnIudG9TdHJpbmcoMTApfSxlLnRvQmlnTnVtYmVyPWQsZS50b1R3b3NDb21wbGVtZW50PWZ1bmN0aW9uKHQpe2xldCBlPWQodCkuaW50ZWdlclZhbHVlKCk7cmV0dXJuIGUuaXNMZXNzVGhhbigwKT9uZXcgbi5CaWdOdW1iZXIoXCJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmXCIsMTYpLnBsdXMoZSkucGx1cygxKTplfSxlLmlzU3RyaWN0QWRkcmVzcz1tLGUuaXNBZGRyZXNzPWZ1bmN0aW9uKHQpe3JldHVybiEhL14oMHgpP1swLTlhLWZdezQwfSQvaS50ZXN0KHQpJiYoISghL14oMHgpP1swLTlhLWZdezQwfSQvLnRlc3QodCkmJiEvXigweCk/WzAtOUEtRl17NDB9JC8udGVzdCh0KSl8fHkodCkpfSxlLmlzQ2hlY2tzdW1BZGRyZXNzPXksZS50b0NoZWNrc3VtQWRkcmVzcz1mdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXJldHVyblwiXCI7Y29uc3QgZT10LnRvTG93ZXJDYXNlKCkucmVwbGFjZShcIjB4XCIsXCJcIikscj1hKGUpO2xldCBuPVwiMHhcIjtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylwYXJzZUludChyW3RdLDE2KT43P24rPWVbdF0udG9VcHBlckNhc2UoKTpuKz1lW3RdO3JldHVybiBufSxlLnRvQXJyYXk9ZnVuY3Rpb24odCl7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IEVycm9yKGBWYWx1ZSB3YXMgbm90IGFuIGFycmF5OiAke0pTT04uc3RyaW5naWZ5KHQpfWApO3JldHVybiB0fSxlLnRvQWRkcmVzcz1mdW5jdGlvbih0KXtyZXR1cm4gbSh0KT90Oi9eWzAtOWEtZl17NDB9JC8udGVzdCh0KT9cIjB4XCIrdDpcIjB4XCIrdShmKHQpLnN1YnN0cigyKSw0MCl9LGUuaXNCaWdOdW1iZXI9ZyxlLmlzU3RyaW5nPV8sZS5pc0Z1bmN0aW9uPWZ1bmN0aW9uKHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHR9LGUuaXNPYmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT10JiYhQXJyYXkuaXNBcnJheSh0KSYmXCJvYmplY3RcIj09dHlwZW9mIHR9LGUuaXNCb29sZWFuPXYsZS5pc0FycmF5PWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfSxlLmlzSnNvbj1mdW5jdGlvbih0KXt0cnl7cmV0dXJuISFKU09OLnBhcnNlKHQpfWNhdGNoKHQpe3JldHVybiExfX0sZS5pc0Jsb29tPWZ1bmN0aW9uKHQpe3JldHVybiEoIS9eKDB4KT9bMC05YS1mXXs1MTJ9JC9pLnRlc3QodCl8fCEvXigweCk/WzAtOWEtZl17NTEyfSQvLnRlc3QodCkmJiEvXigweCk/WzAtOUEtRl17NTEyfSQvLnRlc3QodCkpfSxlLmlzVG9waWM9ZnVuY3Rpb24odCl7cmV0dXJuISghL14oMHgpP1swLTlhLWZdezY0fSQvaS50ZXN0KHQpfHwhL14oMHgpP1swLTlhLWZdezY0fSQvLnRlc3QodCkmJiEvXigweCk/WzAtOUEtRl17NjR9JC8udGVzdCh0KSl9fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cigyNSk7ZS5Tb2xpZGl0eVR5cGU9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5faW5wdXRGb3JtYXR0ZXI9dC5pbnB1dEZvcm1hdHRlcix0aGlzLl9vdXRwdXRGb3JtYXR0ZXI9dC5vdXRwdXRGb3JtYXR0ZXJ9aXNUeXBlKHQpe3Rocm93IG5ldyBFcnJvcihcInRoaXMgbWV0aG9kIHNob3VsZCBiZSBvdmVycndyaXR0ZW4gZm9yIHR5cGUgXCIrdCl9c3RhdGljUGFydExlbmd0aCh0KXtyZXR1cm4odGhpcy5uZXN0ZWRUeXBlcyh0KXx8W1wiWzFdXCJdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlSW50KHQuc2xpY2UoMSwtMSksMTApfHwxfSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQqZX0sMzIpfWlzRHluYW1pY0FycmF5KHQpe2xldCBlPXRoaXMubmVzdGVkVHlwZXModCk7cmV0dXJuISFlJiYhZVtlLmxlbmd0aC0xXS5tYXRjaCgvWzAtOV17MSx9L2cpfWlzU3RhdGljQXJyYXkodCl7bGV0IGU9dGhpcy5uZXN0ZWRUeXBlcyh0KTtyZXR1cm4hIWUmJiEhZVtlLmxlbmd0aC0xXS5tYXRjaCgvWzAtOV17MSx9L2cpfXN0YXRpY0FycmF5TGVuZ3RoKHQpe2xldCBlPXRoaXMubmVzdGVkVHlwZXModCk7aWYoZSl7Y29uc3QgdD1lW2UubGVuZ3RoLTFdLm1hdGNoKC9bMC05XXsxLH0vZyk7cmV0dXJuIHBhcnNlSW50KHRbdC5sZW5ndGgtMV18fFwiMVwiLDEwKX1yZXR1cm4gMX1uZXN0ZWROYW1lKHQpe2xldCBlPXRoaXMubmVzdGVkVHlwZXModCk7cmV0dXJuIGU/dC5zdWJzdHIoMCx0Lmxlbmd0aC1lW2UubGVuZ3RoLTFdLmxlbmd0aCk6dH1pc0R5bmFtaWNUeXBlKHQpe3JldHVybiExfW5lc3RlZFR5cGVzKHQpe3JldHVybiB0Lm1hdGNoKC8oXFxbWzAtOV0qXFxdKS9nKX1lbmNvZGUodCxlKXtpZih0aGlzLmlzRHluYW1pY0FycmF5KGUpKXtsZXQgcj10Lmxlbmd0aCxvPXRoaXMubmVzdGVkTmFtZShlKSxpPVtdO3JldHVybiBpLnB1c2gobi5mb3JtYXRJbnB1dEludChyKS5lbmNvZGUoKSksdC5mb3JFYWNoKHQ9PntpLnB1c2godGhpcy5lbmNvZGUodCxvKSl9KSxpfWlmKHRoaXMuaXNTdGF0aWNBcnJheShlKSl7bGV0IHI9dGhpcy5zdGF0aWNBcnJheUxlbmd0aChlKSxuPXRoaXMubmVzdGVkTmFtZShlKSxvPVtdO2ZvcihsZXQgZT0wO2U8cjtlKyspby5wdXNoKHRoaXMuZW5jb2RlKHRbZV0sbikpO3JldHVybiBvfXJldHVybiB0aGlzLl9pbnB1dEZvcm1hdHRlcih0LGUpLmVuY29kZSgpfWRlY29kZSh0LGUscil7aWYodGhpcy5pc0R5bmFtaWNBcnJheShyKSl7bGV0IG49cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqZSw2NCksMTYpLG89cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqbiw2NCksMTYpLGk9biszMixzPXRoaXMubmVzdGVkTmFtZShyKSxhPXRoaXMuc3RhdGljUGFydExlbmd0aChzKSxjPTMyKk1hdGguZmxvb3IoKGErMzEpLzMyKSx1PVtdO2ZvcihsZXQgZT0wO2U8bypjO2UrPWMpdS5wdXNoKHRoaXMuZGVjb2RlKHQsaStlLHMpKTtyZXR1cm4gdX1pZih0aGlzLmlzU3RhdGljQXJyYXkocikpe2xldCBuPXRoaXMuc3RhdGljQXJyYXlMZW5ndGgociksbz1lLGk9dGhpcy5uZXN0ZWROYW1lKHIpLHM9dGhpcy5zdGF0aWNQYXJ0TGVuZ3RoKGkpLGE9MzIqTWF0aC5mbG9vcigocyszMSkvMzIpLGM9W107Zm9yKGxldCBlPTA7ZTxuKmE7ZSs9YSljLnB1c2godGhpcy5kZWNvZGUodCxvK2UsaSkpO3JldHVybiBjfWlmKHRoaXMuaXNEeW5hbWljVHlwZShyKSl7bGV0IG49cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqZSw2NCksMTYpLGk9cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqbiw2NCksMTYpLHM9TWF0aC5mbG9vcigoaSszMSkvMzIpLGE9bmV3IG8uU29saWRpdHlQYXJhbSh0LnN1YnN0cigyKm4sNjQqKDErcykpLDApO3JldHVybiB0aGlzLl9vdXRwdXRGb3JtYXR0ZXIoYSxyKX1sZXQgbj10aGlzLnN0YXRpY1BhcnRMZW5ndGgociksaT1uZXcgby5Tb2xpZGl0eVBhcmFtKHQuc3Vic3RyKDIqZSwyKm4pKTtyZXR1cm4gdGhpcy5fb3V0cHV0Rm9ybWF0dGVyKGkscil9fX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saSxzLGEsYyx1LGw7dC5leHBvcnRzPShuPXIoMCkscigxMSkscigxMiksaT0obz1uKS5saWIscz1pLkJhc2UsYT1pLldvcmRBcnJheSxjPW8uYWxnbyx1PWMuTUQ1LGw9Yy5FdnBLREY9cy5leHRlbmQoe2NmZzpzLmV4dGVuZCh7a2V5U2l6ZTo0LGhhc2hlcjp1LGl0ZXJhdGlvbnM6MX0pLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpfSxjb21wdXRlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuY2ZnLG49ci5oYXNoZXIuY3JlYXRlKCksbz1hLmNyZWF0ZSgpLGk9by53b3JkcyxzPXIua2V5U2l6ZSxjPXIuaXRlcmF0aW9ucztpLmxlbmd0aDxzOyl7dSYmbi51cGRhdGUodSk7dmFyIHU9bi51cGRhdGUodCkuZmluYWxpemUoZSk7bi5yZXNldCgpO2Zvcih2YXIgbD0xO2w8YztsKyspdT1uLmZpbmFsaXplKHUpLG4ucmVzZXQoKTtvLmNvbmNhdCh1KX1yZXR1cm4gby5zaWdCeXRlcz00KnMsb319KSxvLkV2cEtERj1mdW5jdGlvbih0LGUscil7cmV0dXJuIGwuY3JlYXRlKHIpLmNvbXB1dGUodCxlKX0sbi5FdnBLREYpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpO3QuZXhwb3J0cz0obj1yKDApLGk9KG89bikubGliLldvcmRBcnJheSxvLmVuYy5CYXNlNjQ9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxuPXRoaXMuX21hcDt0LmNsYW1wKCk7Zm9yKHZhciBvPVtdLGk9MDtpPHI7aSs9Mylmb3IodmFyIHM9KGVbaT4+PjJdPj4+MjQtaSU0KjgmMjU1KTw8MTZ8KGVbaSsxPj4+Ml0+Pj4yNC0oaSsxKSU0KjgmMjU1KTw8OHxlW2krMj4+PjJdPj4+MjQtKGkrMiklNCo4JjI1NSxhPTA7YTw0JiZpKy43NSphPHI7YSsrKW8ucHVzaChuLmNoYXJBdChzPj4+NiooMy1hKSY2MykpO3ZhciBjPW4uY2hhckF0KDY0KTtpZihjKWZvcig7by5sZW5ndGglNDspby5wdXNoKGMpO3JldHVybiBvLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoLHI9dGhpcy5fbWFwLG49dGhpcy5fcmV2ZXJzZU1hcDtpZighbil7bj10aGlzLl9yZXZlcnNlTWFwPVtdO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKW5bci5jaGFyQ29kZUF0KG8pXT1vfXZhciBzPXIuY2hhckF0KDY0KTtpZihzKXt2YXIgYT10LmluZGV4T2Yocyk7LTEhPT1hJiYoZT1hKX1yZXR1cm4gZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1bXSxvPTAscz0wO3M8ZTtzKyspaWYocyU0KXt2YXIgYT1yW3QuY2hhckNvZGVBdChzLTEpXTw8cyU0KjIsYz1yW3QuY2hhckNvZGVBdChzKV0+Pj42LXMlNCoyO25bbz4+PjJdfD0oYXxjKTw8MjQtbyU0KjgsbysrfXJldHVybiBpLmNyZWF0ZShuLG8pfSh0LGUsbil9LF9tYXA6XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwifSxuLmVuYy5CYXNlNjQpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCksZnVuY3Rpb24odCl7dmFyIGU9bixyPWUubGliLG89ci5Xb3JkQXJyYXksaT1yLkhhc2hlcixzPWUuYWxnbyxhPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8NjQ7ZSsrKWFbZV09NDI5NDk2NzI5Nip0LmFicyh0LnNpbihlKzEpKXwwfSgpO3ZhciBjPXMuTUQ1PWkuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG8uaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4XSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MTY7cisrKXt2YXIgbj1lK3Isbz10W25dO3Rbbl09MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCl9dmFyIGk9dGhpcy5faGFzaC53b3JkcyxzPXRbZSswXSxjPXRbZSsxXSxwPXRbZSsyXSxkPXRbZSszXSxtPXRbZSs0XSx5PXRbZSs1XSxnPXRbZSs2XSxfPXRbZSs3XSx2PXRbZSs4XSx3PXRbZSs5XSxiPXRbZSsxMF0sQj10W2UrMTFdLEY9dFtlKzEyXSxOPXRbZSsxM10saz10W2UrMTRdLHg9dFtlKzE1XSxTPWlbMF0sQT1pWzFdLE89aVsyXSxUPWlbM107Uz11KFMsQSxPLFQscyw3LGFbMF0pLFQ9dShULFMsQSxPLGMsMTIsYVsxXSksTz11KE8sVCxTLEEscCwxNyxhWzJdKSxBPXUoQSxPLFQsUyxkLDIyLGFbM10pLFM9dShTLEEsTyxULG0sNyxhWzRdKSxUPXUoVCxTLEEsTyx5LDEyLGFbNV0pLE89dShPLFQsUyxBLGcsMTcsYVs2XSksQT11KEEsTyxULFMsXywyMixhWzddKSxTPXUoUyxBLE8sVCx2LDcsYVs4XSksVD11KFQsUyxBLE8sdywxMixhWzldKSxPPXUoTyxULFMsQSxiLDE3LGFbMTBdKSxBPXUoQSxPLFQsUyxCLDIyLGFbMTFdKSxTPXUoUyxBLE8sVCxGLDcsYVsxMl0pLFQ9dShULFMsQSxPLE4sMTIsYVsxM10pLE89dShPLFQsUyxBLGssMTcsYVsxNF0pLFM9bChTLEE9dShBLE8sVCxTLHgsMjIsYVsxNV0pLE8sVCxjLDUsYVsxNl0pLFQ9bChULFMsQSxPLGcsOSxhWzE3XSksTz1sKE8sVCxTLEEsQiwxNCxhWzE4XSksQT1sKEEsTyxULFMscywyMCxhWzE5XSksUz1sKFMsQSxPLFQseSw1LGFbMjBdKSxUPWwoVCxTLEEsTyxiLDksYVsyMV0pLE89bChPLFQsUyxBLHgsMTQsYVsyMl0pLEE9bChBLE8sVCxTLG0sMjAsYVsyM10pLFM9bChTLEEsTyxULHcsNSxhWzI0XSksVD1sKFQsUyxBLE8sayw5LGFbMjVdKSxPPWwoTyxULFMsQSxkLDE0LGFbMjZdKSxBPWwoQSxPLFQsUyx2LDIwLGFbMjddKSxTPWwoUyxBLE8sVCxOLDUsYVsyOF0pLFQ9bChULFMsQSxPLHAsOSxhWzI5XSksTz1sKE8sVCxTLEEsXywxNCxhWzMwXSksUz1oKFMsQT1sKEEsTyxULFMsRiwyMCxhWzMxXSksTyxULHksNCxhWzMyXSksVD1oKFQsUyxBLE8sdiwxMSxhWzMzXSksTz1oKE8sVCxTLEEsQiwxNixhWzM0XSksQT1oKEEsTyxULFMsaywyMyxhWzM1XSksUz1oKFMsQSxPLFQsYyw0LGFbMzZdKSxUPWgoVCxTLEEsTyxtLDExLGFbMzddKSxPPWgoTyxULFMsQSxfLDE2LGFbMzhdKSxBPWgoQSxPLFQsUyxiLDIzLGFbMzldKSxTPWgoUyxBLE8sVCxOLDQsYVs0MF0pLFQ9aChULFMsQSxPLHMsMTEsYVs0MV0pLE89aChPLFQsUyxBLGQsMTYsYVs0Ml0pLEE9aChBLE8sVCxTLGcsMjMsYVs0M10pLFM9aChTLEEsTyxULHcsNCxhWzQ0XSksVD1oKFQsUyxBLE8sRiwxMSxhWzQ1XSksTz1oKE8sVCxTLEEseCwxNixhWzQ2XSksUz1mKFMsQT1oKEEsTyxULFMscCwyMyxhWzQ3XSksTyxULHMsNixhWzQ4XSksVD1mKFQsUyxBLE8sXywxMCxhWzQ5XSksTz1mKE8sVCxTLEEsaywxNSxhWzUwXSksQT1mKEEsTyxULFMseSwyMSxhWzUxXSksUz1mKFMsQSxPLFQsRiw2LGFbNTJdKSxUPWYoVCxTLEEsTyxkLDEwLGFbNTNdKSxPPWYoTyxULFMsQSxiLDE1LGFbNTRdKSxBPWYoQSxPLFQsUyxjLDIxLGFbNTVdKSxTPWYoUyxBLE8sVCx2LDYsYVs1Nl0pLFQ9ZihULFMsQSxPLHgsMTAsYVs1N10pLE89ZihPLFQsUyxBLGcsMTUsYVs1OF0pLEE9ZihBLE8sVCxTLE4sMjEsYVs1OV0pLFM9ZihTLEEsTyxULG0sNixhWzYwXSksVD1mKFQsUyxBLE8sQiwxMCxhWzYxXSksTz1mKE8sVCxTLEEscCwxNSxhWzYyXSksQT1mKEEsTyxULFMsdywyMSxhWzYzXSksaVswXT1pWzBdK1N8MCxpWzFdPWlbMV0rQXwwLGlbMl09aVsyXStPfDAsaVszXT1pWzNdK1R8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9kYXRhLHI9ZS53b3JkcyxuPTgqdGhpcy5fbkRhdGFCeXRlcyxvPTgqZS5zaWdCeXRlcztyW28+Pj41XXw9MTI4PDwyNC1vJTMyO3ZhciBpPXQuZmxvb3Iobi80Mjk0OTY3Mjk2KSxzPW47clsxNSsobys2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoaTw8OHxpPj4+MjQpfDQyNzgyNTUzNjAmKGk8PDI0fGk+Pj44KSxyWzE0KyhvKzY0Pj4+OTw8NCldPTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLGUuc2lnQnl0ZXM9NCooci5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgYT10aGlzLl9oYXNoLGM9YS53b3Jkcyx1PTA7dTw0O3UrKyl7dmFyIGw9Y1t1XTtjW3VdPTE2NzExOTM1JihsPDw4fGw+Pj4yNCl8NDI3ODI1NTM2MCYobDw8MjR8bD4+PjgpfXJldHVybiBhfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWkuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtmdW5jdGlvbiB1KHQsZSxyLG4sbyxpLHMpe3ZhciBhPXQrKGUmcnx+ZSZuKStvK3M7cmV0dXJuKGE8PGl8YT4+PjMyLWkpK2V9ZnVuY3Rpb24gbCh0LGUscixuLG8saSxzKXt2YXIgYT10KyhlJm58ciZ+bikrbytzO3JldHVybihhPDxpfGE+Pj4zMi1pKStlfWZ1bmN0aW9uIGgodCxlLHIsbixvLGkscyl7dmFyIGE9dCsoZV5yXm4pK28rcztyZXR1cm4oYTw8aXxhPj4+MzItaSkrZX1mdW5jdGlvbiBmKHQsZSxyLG4sbyxpLHMpe3ZhciBhPXQrKHJeKGV8fm4pKStvK3M7cmV0dXJuKGE8PGl8YT4+PjMyLWkpK2V9ZS5NRDU9aS5fY3JlYXRlSGVscGVyKGMpLGUuSG1hY01ENT1pLl9jcmVhdGVIbWFjSGVscGVyKGMpfShNYXRoKSxuLk1ENSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMyksbz1yKDE0KTtmdW5jdGlvbiBpKHQpe3JldHVyblwibGF0ZXN0XCI9PT10fHxcInBlbmRpbmdcIj09PXR8fFwiZWFybGllc3RcIj09PXR9ZnVuY3Rpb24gcyh0KXtpZih2b2lkIDAhPT10JiZudWxsIT10KXJldHVybiBpKHQpP3Q6bi50b0hleCh0KX1mdW5jdGlvbiBhKHQpe3JldHVybiB0PyhudWxsIT09dC5ibG9ja051bWJlciYmKHQuYmxvY2tOdW1iZXI9bi50b0RlY2ltYWwodC5ibG9ja051bWJlcikpLG51bGwhPT10LnRyYW5zYWN0aW9uSW5kZXgmJih0LnRyYW5zYWN0aW9uSW5kZXg9bi50b0RlY2ltYWwodC50cmFuc2FjdGlvbkluZGV4KSksdC5ub25jZT1uLnRvRGVjaW1hbCh0Lm5vbmNlKSx0Lmdhcz1uLnRvRGVjaW1hbCh0LmdhcyksdC5nYXNQcmljZT1uLnRvQmlnTnVtYmVyKHQuZ2FzUHJpY2UpLHQudmFsdWU9bi50b0JpZ051bWJlcih0LnZhbHVlKSx0KTpudWxsfWZ1bmN0aW9uIGModCl7cmV0dXJuIHQ/KHQuYmxvY2tOdW1iZXImJih0LmJsb2NrTnVtYmVyPW4udG9EZWNpbWFsKHQuYmxvY2tOdW1iZXIpKSx0LnRyYW5zYWN0aW9uSW5kZXgmJih0LnRyYW5zYWN0aW9uSW5kZXg9bi50b0RlY2ltYWwodC50cmFuc2FjdGlvbkluZGV4KSksdC5sb2dJbmRleCYmKHQubG9nSW5kZXg9bi50b0RlY2ltYWwodC5sb2dJbmRleCkpLHQpOm51bGx9ZnVuY3Rpb24gdSh0KXtpZihuLmlzU3RyaWN0QWRkcmVzcyh0KSlyZXR1cm4gdDtpZihuLmlzQWRkcmVzcyh0KSlyZXR1cm5cIjB4XCIrdDt0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYWRkcmVzczogJHtKU09OLnN0cmluZ2lmeSh0KX1gKX1lLm91dHB1dEJpZ051bWJlckZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbi50b0JpZ051bWJlcih0KX0sZS5pc1ByZWRlZmluZWRCbG9ja051bWJlcj1pLGUuaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/by5kZWZhdWx0QmxvY2s6cyh0KX0sZS5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyPXMsZS5pbnB1dENhbGxGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZnJvbT10LmZyb20sdC5mcm9tJiYodC5mcm9tPXUodC5mcm9tKSksdC50byYmKHQudG89dSh0LnRvKSksW1wiZ2FzUHJpY2VcIixcImdhc1wiLFwidmFsdWVcIixcIm5vbmNlXCJdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09dFtlXX0pLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlXT1uLmZyb21EZWNpbWFsKHRbZV0pfSksdC5kYXRhJiYhdC5kYXRhLnN0YXJ0c1dpdGgoXCIweFwiKSYmL15bQS1aYS16MC05XSskLy50ZXN0KHQuZGF0YSkmJih0LmRhdGE9XCIweFwiK3QuZGF0YSksdH0sZS5pbnB1dFRyYW5zYWN0aW9uRm9ybWF0dGVyPWZ1bmN0aW9uKHQpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcihcIkRpZCBub3QgcHJvdmlkZSB0cmFuc2FjdGlvbiBvcHRpb25zXCIpO2lmKCF0LmZyb20pdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIFwiZnJvbVwiIGluIHRyYW5zYWN0aW9uIG9wdGlvbnMnKTtyZXR1cm4gdC5mcm9tPXUodC5mcm9tKSx0LnRvJiYodC50bz11KHQudG8pKSxbXCJnYXNQcmljZVwiLFwiZ2FzXCIsXCJ2YWx1ZVwiLFwibm9uY2VcIl0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT10W2VdfSkuZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPW4uZnJvbURlY2ltYWwodFtlXSl9KSx0LmRhdGEmJiF0LmRhdGEuc3RhcnRzV2l0aChcIjB4XCIpJiYvXltBLVphLXowLTldKyQvLnRlc3QodC5kYXRhKSYmKHQuZGF0YT1cIjB4XCIrdC5kYXRhKSx0fSxlLm91dHB1dFRyYW5zYWN0aW9uRm9ybWF0dGVyPWEsZS5vdXRwdXRUcmFuc2FjdGlvblJlY2VpcHRGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KG51bGwhPT10LmJsb2NrTnVtYmVyJiYodC5ibG9ja051bWJlcj1uLnRvRGVjaW1hbCh0LmJsb2NrTnVtYmVyKSksbnVsbCE9PXQudHJhbnNhY3Rpb25JbmRleCYmKHQudHJhbnNhY3Rpb25JbmRleD1uLnRvRGVjaW1hbCh0LnRyYW5zYWN0aW9uSW5kZXgpKSx0LmN1bXVsYXRpdmVHYXNVc2VkPW4udG9EZWNpbWFsKHQuY3VtdWxhdGl2ZUdhc1VzZWQpLHQuZ2FzVXNlZD1uLnRvRGVjaW1hbCh0Lmdhc1VzZWQpLG4uaXNBcnJheSh0LmxvZ3MpJiYodC5sb2dzPXQubG9ncy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGModCl9KSksdC5zdGF0dXM9bi50b0RlY2ltYWwodC5zdGF0dXMpLHQpOm51bGx9LGUub3V0cHV0QmxvY2tGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KHQuZ2FzTGltaXQ9bi50b0RlY2ltYWwodC5nYXNMaW1pdCksdC5nYXNVc2VkPW4udG9EZWNpbWFsKHQuZ2FzVXNlZCksdC5zaXplPW4udG9EZWNpbWFsKHQuc2l6ZSksdC50aW1lc3RhbXA9bi50b0RlY2ltYWwodC50aW1lc3RhbXApLG51bGwhPT10Lm51bWJlciYmKHQubnVtYmVyPW4udG9EZWNpbWFsKHQubnVtYmVyKSksdC5kaWZmaWN1bHR5PW4udG9CaWdOdW1iZXIodC5kaWZmaWN1bHR5KSx0LnRvdGFsRGlmZmljdWx0eT1uLnRvQmlnTnVtYmVyKHQudG90YWxEaWZmaWN1bHR5KSxuLmlzQXJyYXkodC50cmFuc2FjdGlvbnMpJiZ0LnRyYW5zYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKCFuLmlzU3RyaW5nKHQpKXJldHVybiBhKHQpfSksdCk6bnVsbH0sZS5vdXRwdXRMb2dGb3JtYXR0ZXI9YyxlLmlucHV0UG9zdEZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD8odC50dGw9bi5mcm9tRGVjaW1hbCh0LnR0bCksdC53b3JrVG9Qcm92ZT1uLmZyb21EZWNpbWFsKHQud29ya1RvUHJvdmUpLHQucHJpb3JpdHk9bi5mcm9tRGVjaW1hbCh0LnByaW9yaXR5KSxuLmlzQXJyYXkodC50b3BpY3MpfHwodC50b3BpY3M9dC50b3BpY3M/W3QudG9waWNzXTpbXSksdC50b3BpY3M9dC50b3BpY3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dC5pbmRleE9mKFwiMHhcIik/dDpuLmZyb21VdGY4KHQpfSksdCk6bnVsbH0sZS5vdXRwdXRQb3N0Rm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0LmV4cGlyeT1uLnRvRGVjaW1hbCh0LmV4cGlyeSksdC5zZW50PW4udG9EZWNpbWFsKHQuc2VudCksdC50dGw9bi50b0RlY2ltYWwodC50dGwpLHQud29ya1Byb3ZlZD1uLnRvRGVjaW1hbCh0LndvcmtQcm92ZWQpLHQudG9waWNzfHwodC50b3BpY3M9W10pLHQudG9waWNzPXQudG9waWNzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gbi50b0FzY2lpKHQpfSksdCk6bnVsbH0sZS5pbnB1dEFkZHJlc3NGb3JtYXR0ZXI9dSxlLm91dHB1dFN5bmNpbmdGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KHQuc3RhcnRpbmdCbG9jaz1uLnRvRGVjaW1hbCh0LnN0YXJ0aW5nQmxvY2spLHQuY3VycmVudEJsb2NrPW4udG9EZWNpbWFsKHQuY3VycmVudEJsb2NrKSx0LmhpZ2hlc3RCbG9jaz1uLnRvRGVjaW1hbCh0LmhpZ2hlc3RCbG9jayksdC5rbm93blN0YXRlcyYmKHQua25vd25TdGF0ZXM9bi50b0RlY2ltYWwodC5rbm93blN0YXRlcyksdC5wdWxsZWRTdGF0ZXM9bi50b0RlY2ltYWwodC5wdWxsZWRTdGF0ZXMpKSx0KTp0fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oKXtsZXQgdCxlO2NvbnN0IHI9bmV3IFByb21pc2UoKG4sbyk9Pnt0PSh0PT57bih0KSxyLmlzUGVuZGluZz0hMX0pLGU9KHQ9PntvKHQpLHIuaXNQZW5kaW5nPSExfSl9KS5jYXRjaCh0PT5Qcm9taXNlLnJlamVjdCh0KSk7cmV0dXJuIHIucmVzb2x2ZT10LHIucmVqZWN0PWUsXCJmaW5hbGx5XCJpbiByfHwoci5maW5hbGx5PSh0PT57ci50aGVuKHQpLHIuY2F0Y2godCl9KSksci5pc1BlbmRpbmc9ITAscn1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLmZ1dHVyZT1uLGUuZGVmYXVsdD1ufSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjO3QuZXhwb3J0cz0obj1yKDApLGk9KG89bikubGliLHM9aS5CYXNlLGE9aS5Xb3JkQXJyYXksKGM9by54NjQ9e30pLldvcmQ9cy5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxlKXt0aGlzLmhpZ2g9dCx0aGlzLmxvdz1lfX0pLGMuV29yZEFycmF5PXMuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLndvcmRzPXR8fFtdLHRoaXMuc2lnQnl0ZXM9bnVsbCE9ZT9lOjgqdC5sZW5ndGh9LHRvWDMyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMud29yZHMsZT10Lmxlbmd0aCxyPVtdLG49MDtuPGU7bisrKXt2YXIgbz10W25dO3IucHVzaChvLmhpZ2gpLHIucHVzaChvLmxvdyl9cmV0dXJuIGEuY3JlYXRlKHIsdGhpcy5zaWdCeXRlcyl9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXMuY2xvbmUuY2FsbCh0aGlzKSxlPXQud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSxyPWUubGVuZ3RoLG49MDtuPHI7bisrKWVbbl09ZVtuXS5jbG9uZSgpO3JldHVybiB0fX0pLG4pfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjLHUsbDt0LmV4cG9ydHM9KG49cigwKSxpPShvPW4pLmxpYixzPWkuV29yZEFycmF5LGE9aS5IYXNoZXIsYz1vLmFsZ28sdT1bXSxsPWMuU0hBMT1hLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBzLmluaXQoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9oYXNoLndvcmRzLG49clswXSxvPXJbMV0saT1yWzJdLHM9clszXSxhPXJbNF0sYz0wO2M8ODA7YysrKXtpZihjPDE2KXVbY109MHx0W2UrY107ZWxzZXt2YXIgbD11W2MtM11edVtjLThdXnVbYy0xNF1edVtjLTE2XTt1W2NdPWw8PDF8bD4+PjMxfXZhciBoPShuPDw1fG4+Pj4yNykrYSt1W2NdO2grPWM8MjA/MTUxODUwMDI0OSsobyZpfH5vJnMpOmM8NDA/MTg1OTc3NTM5Mysob15pXnMpOmM8NjA/KG8maXxvJnN8aSZzKS0xODk0MDA3NTg4OihvXmlecyktODk5NDk3NTE0LGE9cyxzPWksaT1vPDwzMHxvPj4+MixvPW4sbj1ofXJbMF09clswXStufDAsclsxXT1yWzFdK298MCxyWzJdPXJbMl0raXwwLHJbM109clszXStzfDAscls0XT1yWzRdK2F8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxyPTgqdGhpcy5fbkRhdGFCeXRlcyxuPTgqdC5zaWdCeXRlcztyZXR1cm4gZVtuPj4+NV18PTEyODw8MjQtbiUzMixlWzE0KyhuKzY0Pj4+OTw8NCldPU1hdGguZmxvb3Ioci80Mjk0OTY3Mjk2KSxlWzE1KyhuKzY0Pj4+OTw8NCldPXIsdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNofSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWEuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KSxvLlNIQTE9YS5fY3JlYXRlSGVscGVyKGwpLG8uSG1hY1NIQTE9YS5fY3JlYXRlSG1hY0hlbHBlcihsKSxuLlNIQTEpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjLHU7dC5leHBvcnRzPShuPXIoMCksaT0obz1uKS5saWIscz1pLkJhc2UsYT1vLmVuYyxjPWEuVXRmOCx1PW8uYWxnbyx2b2lkKHUuSE1BQz1zLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy5faGFzaGVyPW5ldyB0LmluaXQsXCJzdHJpbmdcIj09dHlwZW9mIGUmJihlPWMucGFyc2UoZSkpO3ZhciByPXQuYmxvY2tTaXplLG49NCpyO2Uuc2lnQnl0ZXM+biYmKGU9dC5maW5hbGl6ZShlKSksZS5jbGFtcCgpO2Zvcih2YXIgbz10aGlzLl9vS2V5PWUuY2xvbmUoKSxpPXRoaXMuX2lLZXk9ZS5jbG9uZSgpLHM9by53b3JkcyxhPWkud29yZHMsdT0wO3U8cjt1Kyspc1t1XV49MTU0OTU1NjgyOCxhW3VdXj05MDk1MjI0ODY7by5zaWdCeXRlcz1pLnNpZ0J5dGVzPW4sdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2hhc2hlcjt0LnJlc2V0KCksdC51cGRhdGUodGhpcy5faUtleSl9LHVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faGFzaGVyLnVwZGF0ZSh0KSx0aGlzfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9oYXNoZXIscj1lLmZpbmFsaXplKHQpO2UucmVzZXQoKTt2YXIgbj1lLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQocikpO3JldHVybiBufX0pKSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLkludmFsaWROdW1iZXJPZlNvbGlkaXR5QXJncz1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgRXJyb3IoYEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBTb2xpZGl0eSBmdW5jdGlvbi4gZ2l2ZW46ICR7dH0sIGV4cGVjdGVkOiAke2V9YCl9LGUuSW52YWxpZE51bWJlck9mUlBDUGFyYW1zPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbmV3IEVycm9yKGBJbnZhbGlkIG51bWJlciBvZiBpbnB1dCBwYXJhbWV0ZXJzIHRvIFJQQyBtZXRob2QgXCIke3R9XCIgZ2l2ZW46ICR7ZX0sIGV4cGVjdGVkOiAke3J9YCl9LGUuSW52YWxpZENvbm5lY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBFcnJvcihcIkNPTk5FQ1RJT04gRVJST1I6IENvdWxkbid0IGNvbm5lY3QgdG8gbm9kZSBcIit0K1wiLlwiKX0sZS5JbnZhbGlkUHJvdmlkZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEVycm9yKFwiUHJvdmlkZXIgbm90IHNldCBvciBpbnZhbGlkXCIpfSxlLkludmFsaWRSZXNwb25zZT1mdW5jdGlvbih0KXtsZXQgZT10JiZ0LmVycm9yJiZ0LmVycm9yLm1lc3NhZ2U/dC5lcnJvci5tZXNzYWdlOlwiSW52YWxpZCBKU09OIFJQQyByZXNwb25zZTogXCIrSlNPTi5zdHJpbmdpZnkodCk7cmV0dXJuIG5ldyBFcnJvcihlKX0sZS5Db25uZWN0aW9uVGltZW91dD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEVycm9yKFwiQ09OTkVDVElPTiBUSU1FT1VUOiB0aW1lb3V0IG9mIFwiK3QrXCIgbXMgYWNoaXZlZFwiKX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoNTcpO2UuRVRIX1VOSVRTPVtcIndlaVwiLFwia3dlaVwiLFwiTXdlaVwiLFwiR3dlaVwiLFwic3phYm9cIixcImZpbm5leVwiLFwiZmVtdG9ldGhlclwiLFwicGljb2V0aGVyXCIsXCJuYW5vZXRoZXJcIixcIm1pY3JvZXRoZXJcIixcIm1pbGxpZXRoZXJcIixcIm5hbm9cIixcIm1pY3JvXCIsXCJtaWxsaVwiLFwiZXRoZXJcIixcImdyYW5kXCIsXCJNZXRoZXJcIixcIkdldGhlclwiLFwiVGV0aGVyXCIsXCJQZXRoZXJcIixcIkVldGhlclwiLFwiWmV0aGVyXCIsXCJZZXRoZXJcIixcIk5ldGhlclwiLFwiRGV0aGVyXCIsXCJWZXRoZXJcIixcIlVldGhlclwiXSxlLkVUSF9QQURESU5HPTMyLGUuRVRIX1NJR05BVFVSRV9MRU5HVEg9NCxlLkVUSF9CSUdOVU1CRVJfUk9VTkRJTkdfTU9ERT17Uk9VTkRJTkdfTU9ERTpuLkJpZ051bWJlclJvdW5kaW5nTW9kZS5ST1VORF9ET1dOfSxlLkVUSF9QT0xMSU5HX1RJTUVPVVQ9NTAwLGUuZGVmYXVsdEJsb2NrPVwibGF0ZXN0XCJ9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDYxKSxpPXIoNjIpLHM9cig2MyksYT1yKDY0KSxjPXIoNjUpLHU9cig2NiksbD1yKDY3KSxoPXIoNjgpLGY9cig2OSk7ZnVuY3Rpb24gcCh0LGUpe3JldHVybiB0LmlzRHluYW1pY1R5cGUoZSl8fHQuaXNEeW5hbWljQXJyYXkoZSl9Y2xhc3MgZHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl90eXBlcz10fV9yZXF1aXJlVHlwZSh0KXtsZXQgZT10aGlzLl90eXBlcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNUeXBlKHQpfSlbMF07aWYoIWUpdGhyb3cgRXJyb3IoXCJpbnZhbGlkIHNvbGlkaXR5IHR5cGUhOiBcIit0KTtyZXR1cm4gZX1lbmNvZGVQYXJhbSh0LGUpe3JldHVybiB0aGlzLmVuY29kZVBhcmFtcyhbdF0sW2VdKX1lbmNvZGVQYXJhbXModCxlKXtsZXQgcj10aGlzLmdldFNvbGlkaXR5VHlwZXModCksbj1yLm1hcChmdW5jdGlvbihyLG4pe3JldHVybiByLmVuY29kZShlW25dLHRbbl0pfSksbz1yLnJlZHVjZShmdW5jdGlvbihlLG4sbyl7bGV0IGk9bi5zdGF0aWNQYXJ0TGVuZ3RoKHRbb10pLHM9MzIqTWF0aC5mbG9vcigoaSszMSkvMzIpO3JldHVybiBlKyhwKHJbb10sdFtvXSk/MzI6cyl9LDApO3JldHVybiB0aGlzLmVuY29kZU11bHRpV2l0aE9mZnNldCh0LHIsbixvKX1lbmNvZGVNdWx0aVdpdGhPZmZzZXQodCxlLHIsbyl7bGV0IGk9byxzPVwiXCI7cmV0dXJuIHQuZm9yRWFjaCgobyxhKT0+e2lmKHAoZVthXSx0W2FdKSl7cys9bi5mb3JtYXRJbnB1dEludChpKS5lbmNvZGUoKTtsZXQgbz10aGlzLmVuY29kZVdpdGhPZmZzZXQodFthXSxlW2FdLHJbYV0saSk7aSs9by5sZW5ndGgvMn1lbHNlIHMrPXRoaXMuZW5jb2RlV2l0aE9mZnNldCh0W2FdLGVbYV0sclthXSxpKX0pLHQuZm9yRWFjaCgobixvKT0+e2lmKHAoZVtvXSx0W29dKSl7bGV0IG49dGhpcy5lbmNvZGVXaXRoT2Zmc2V0KHRbb10sZVtvXSxyW29dLGkpO2krPW4ubGVuZ3RoLzIscys9bn19KSxzfWVuY29kZVdpdGhPZmZzZXQodCxlLHIsbyl7bGV0IGk9MSxzPTIsYT0zLGM9ZS5pc0R5bmFtaWNBcnJheSh0KT9pOmUuaXNTdGF0aWNBcnJheSh0KT9zOmE7aWYoYyE9PWEpe2xldCBhPWUubmVzdGVkTmFtZSh0KSx1PWUuc3RhdGljUGFydExlbmd0aChhKSxsPWM9PT1pP3JbMF06XCJcIjtpZihlLmlzRHluYW1pY0FycmF5KGEpKXtsZXQgdD1jPT09aT8yOjA7Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspYz09PWk/dCs9K3JbZS0xXVswXXx8MDpjPT09cyYmKHQrPSsocltlLTFdfHxbXSlbMF18fDApLGwrPW4uZm9ybWF0SW5wdXRJbnQobytlKnUrMzIqdCkuZW5jb2RlKCl9bGV0IGg9Yz09PWk/ci5sZW5ndGgtMTpyLmxlbmd0aDtmb3IobGV0IHQ9MDt0PGg7dCsrKXtsZXQgbj1sLzI7Yz09PWk/bCs9dGhpcy5lbmNvZGVXaXRoT2Zmc2V0KGEsZSxyW3QrMV0sbytuKTpjPT09cyYmKGwrPXRoaXMuZW5jb2RlV2l0aE9mZnNldChhLGUsclt0XSxvK24pKX1yZXR1cm4gbH1yZXR1cm4gcn1kZWNvZGVQYXJhbSh0LGUpe3JldHVybiB0aGlzLmRlY29kZVBhcmFtcyhbdF0sZSlbMF19ZGVjb2RlUGFyYW1zKHQsZSl7bGV0IHI9dGhpcy5nZXRTb2xpZGl0eVR5cGVzKHQpLG49dGhpcy5nZXRPZmZzZXRzKHQscik7cmV0dXJuIHIubWFwKGZ1bmN0aW9uKHIsbyl7cmV0dXJuIHIuZGVjb2RlKGUsbltvXSx0W29dKX0pfWdldE9mZnNldHModCxlKXtsZXQgcj1lLm1hcChmdW5jdGlvbihlLHIpe3JldHVybiBlLnN0YXRpY1BhcnRMZW5ndGgodFtyXSl9KTtmb3IobGV0IHQ9MTt0PHIubGVuZ3RoO3QrKylyW3RdKz1yW3QtMV07cmV0dXJuIHIubWFwKGZ1bmN0aW9uKHIsbil7cmV0dXJuIHItZVtuXS5zdGF0aWNQYXJ0TGVuZ3RoKHRbbl0pfSl9Z2V0U29saWRpdHlUeXBlcyh0KXtyZXR1cm4gdC5tYXAodD0+dGhpcy5fcmVxdWlyZVR5cGUodCkpfX1lLlNvbGlkaXR5Q29kZXI9ZCxlLmNvZGVyPW5ldyBkKFtuZXcgby5Tb2xpZGl0eVR5cGVBZGRyZXNzLG5ldyBpLlNvbGlkaXR5VHlwZUJvb2wsbmV3IHMuU29saWRpdHlUeXBlSW50LG5ldyBhLlNvbGlkaXR5VHlwZVVJbnQsbmV3IGMuU29saWRpdHlUeXBlRHluYW1pY0J5dGVzLG5ldyBmLlNvbGlkaXR5VHlwZUJ5dGVzLG5ldyB1LlNvbGlkaXR5VHlwZVN0cmluZyxuZXcgbC5Tb2xpZGl0eVR5cGVSZWFsLG5ldyBoLlNvbGlkaXR5VHlwZVVSZWFsXSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLnRvUlBDPWZ1bmN0aW9uKHQpe2lmKHQuanNvbnJwYz1cIjIuMFwiLCF0LmlkfHxcIm51bWJlclwiIT10eXBlb2YgdC5pZHx8TWF0aC5mbG9vcih0LmlkKSE9PXQuaWQpdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFJQQyBtZXNzYWdlKGludmFsaWQgaWQpIG1lc3NhZ2U6ICR7SlNPTi5zdHJpbmdpZnkodCl9YCk7aWYoIXQubWV0aG9kfHxcInN0cmluZ1wiIT10eXBlb2YgdC5tZXRob2R8fDA9PT10Lm1ldGhvZC50cmltKCkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSUEMgbWVzc2FnZShpbnZhbGlkIG1ldGhvZCkgbWVzc2FnZTogJHtKU09OLnN0cmluZ2lmeSh0KX1gKTtpZighdC5wYXJhbXN8fFwib2JqZWN0XCIhPXR5cGVvZiB0LnBhcmFtcyl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUlBDIG1lc3NhZ2UoaW52YWxpZCBwYXJhbXMpIG1lc3NhZ2U6ICR7SlNPTi5zdHJpbmdpZnkodCl9YCk7cmV0dXJuIHR9fSxmdW5jdGlvbih0LGUscil7dmFyIG47IWZ1bmN0aW9uKG8pe1widXNlIHN0cmljdFwiO3ZhciBpLHM9L14tPyg/OlxcZCsoPzpcXC5cXGQqKT98XFwuXFxkKykoPzplWystXT9cXGQrKT8kL2ksYT1NYXRoLmNlaWwsYz1NYXRoLmZsb29yLHU9XCJbQmlnTnVtYmVyIEVycm9yXSBcIixsPXUrXCJOdW1iZXIgcHJpbWl0aXZlIGhhcyBtb3JlIHRoYW4gMTUgc2lnbmlmaWNhbnQgZGlnaXRzOiBcIixoPTFlMTQsZj0xNCxwPTkwMDcxOTkyNTQ3NDA5OTEsZD1bMSwxMCwxMDAsMWUzLDFlNCwxZTUsMWU2LDFlNywxZTgsMWU5LDFlMTAsMWUxMSwxZTEyLDFlMTNdLG09MWU3LHk9MWU5O2Z1bmN0aW9uIGcodCl7dmFyIGU9MHx0O3JldHVybiB0PjB8fHQ9PT1lP2U6ZS0xfWZ1bmN0aW9uIF8odCl7Zm9yKHZhciBlLHIsbj0xLG89dC5sZW5ndGgsaT10WzBdK1wiXCI7bjxvOyl7Zm9yKGU9dFtuKytdK1wiXCIscj1mLWUubGVuZ3RoO3ItLTtlPVwiMFwiK2UpO2krPWV9Zm9yKG89aS5sZW5ndGg7NDg9PT1pLmNoYXJDb2RlQXQoLS1vKTspO3JldHVybiBpLnNsaWNlKDAsbysxfHwxKX1mdW5jdGlvbiB2KHQsZSl7dmFyIHIsbixvPXQuYyxpPWUuYyxzPXQucyxhPWUucyxjPXQuZSx1PWUuZTtpZighc3x8IWEpcmV0dXJuIG51bGw7aWYocj1vJiYhb1swXSxuPWkmJiFpWzBdLHJ8fG4pcmV0dXJuIHI/bj8wOi1hOnM7aWYocyE9YSlyZXR1cm4gcztpZihyPXM8MCxuPWM9PXUsIW98fCFpKXJldHVybiBuPzA6IW9ecj8xOi0xO2lmKCFuKXJldHVybiBjPnVecj8xOi0xO2ZvcihhPShjPW8ubGVuZ3RoKTwodT1pLmxlbmd0aCk/Yzp1LHM9MDtzPGE7cysrKWlmKG9bc10hPWlbc10pcmV0dXJuIG9bc10+aVtzXV5yPzE6LTE7cmV0dXJuIGM9PXU/MDpjPnVecj8xOi0xfWZ1bmN0aW9uIHcodCxlLHIsbil7aWYodDxlfHx0PnJ8fHQhPT0odDwwP2EodCk6Yyh0KSkpdGhyb3cgRXJyb3IodSsobnx8XCJBcmd1bWVudFwiKSsoXCJudW1iZXJcIj09dHlwZW9mIHQ/dDxlfHx0PnI/XCIgb3V0IG9mIHJhbmdlOiBcIjpcIiBub3QgYW4gaW50ZWdlcjogXCI6XCIgbm90IGEgcHJpbWl0aXZlIG51bWJlcjogXCIpK3QpfWZ1bmN0aW9uIGIodCl7cmV0dXJuXCJbb2JqZWN0IEFycmF5XVwiPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gQih0KXt2YXIgZT10LmMubGVuZ3RoLTE7cmV0dXJuIGcodC5lL2YpPT1lJiZ0LmNbZV0lMiE9MH1mdW5jdGlvbiBGKHQsZSl7cmV0dXJuKHQubGVuZ3RoPjE/dC5jaGFyQXQoMCkrXCIuXCIrdC5zbGljZSgxKTp0KSsoZTwwP1wiZVwiOlwiZStcIikrZX1mdW5jdGlvbiBOKHQsZSxyKXt2YXIgbixvO2lmKGU8MCl7Zm9yKG89citcIi5cIjsrK2U7bys9cik7dD1vK3R9ZWxzZSBpZigrK2U+KG49dC5sZW5ndGgpKXtmb3Iobz1yLGUtPW47LS1lO28rPXIpO3QrPW99ZWxzZSBlPG4mJih0PXQuc2xpY2UoMCxlKStcIi5cIit0LnNsaWNlKGUpKTtyZXR1cm4gdH0oaT1mdW5jdGlvbiB0KGUpe3ZhciByLG4sbyxpLGsseCxTLEEsTyxUPVcucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpXLHRvU3RyaW5nOm51bGwsdmFsdWVPZjpudWxsfSxQPW5ldyBXKDEpLE09MjAsQz00LEU9LTcsRD0yMSxSPS0xZTcsST0xZTcsSD0hMSxqPTEsVT0wLEw9e2RlY2ltYWxTZXBhcmF0b3I6XCIuXCIsZ3JvdXBTZXBhcmF0b3I6XCIsXCIsZ3JvdXBTaXplOjMsc2Vjb25kYXJ5R3JvdXBTaXplOjAsZnJhY3Rpb25Hcm91cFNlcGFyYXRvcjpcIsKgXCIsZnJhY3Rpb25Hcm91cFNpemU6MH0sej1cIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5elwiO2Z1bmN0aW9uIFcodCxlKXt2YXIgcixpLGEsdSxoLGQsbSx5PXRoaXM7aWYoISh5IGluc3RhbmNlb2YgVykpcmV0dXJuIG5ldyBXKHQsZSk7aWYobnVsbD09ZSl7aWYodCBpbnN0YW5jZW9mIFcpcmV0dXJuIHkucz10LnMseS5lPXQuZSx2b2lkKHkuYz0odD10LmMpP3Quc2xpY2UoKTp0KTtpZigoaD1cIm51bWJlclwiPT10eXBlb2YgdCkmJjAqdD09MCl7aWYoeS5zPTEvdDwwPyh0PS10LC0xKToxLHQ9PT1+fnQpe2ZvcihhPTAsdT10O3U+PTEwO3UvPTEwLGErKyk7cmV0dXJuIHkuZT1hLHZvaWQoeS5jPVt0XSl9bT10K1wiXCJ9ZWxzZXtpZighcy50ZXN0KG09dCtcIlwiKSlyZXR1cm4gbyh5LG0saCk7eS5zPTQ1PT1tLmNoYXJDb2RlQXQoMCk/KG09bS5zbGljZSgxKSwtMSk6MX19ZWxzZXtpZih3KGUsMix6Lmxlbmd0aCxcIkJhc2VcIiksbT10K1wiXCIsMTA9PWUpcmV0dXJuIFYoeT1uZXcgVyh0IGluc3RhbmNlb2YgVz90Om0pLE0reS5lKzEsQyk7aWYoaD1cIm51bWJlclwiPT10eXBlb2YgdCl7aWYoMCp0IT0wKXJldHVybiBvKHksbSxoLGUpO2lmKHkucz0xL3Q8MD8obT1tLnNsaWNlKDEpLC0xKToxLFcuREVCVUcmJm0ucmVwbGFjZSgvXjBcXC4wKnxcXC4vLFwiXCIpLmxlbmd0aD4xNSl0aHJvdyBFcnJvcihsK3QpO2g9ITF9ZWxzZSB5LnM9NDU9PT1tLmNoYXJDb2RlQXQoMCk/KG09bS5zbGljZSgxKSwtMSk6MSxlPjEwJiZlPDM3JiYobT1tLnRvTG93ZXJDYXNlKCkpO2ZvcihyPXouc2xpY2UoMCxlKSxhPXU9MCxkPW0ubGVuZ3RoO3U8ZDt1KyspaWYoci5pbmRleE9mKGk9bS5jaGFyQXQodSkpPDApe2lmKFwiLlwiPT1pJiZ1PmEpe2E9ZDtjb250aW51ZX1yZXR1cm4gbyh5LHQrXCJcIixoLGUpfW09bihtLGUsMTAseS5zKX1mb3IoKGE9bS5pbmRleE9mKFwiLlwiKSk+LTEmJihtPW0ucmVwbGFjZShcIi5cIixcIlwiKSksKHU9bS5zZWFyY2goL2UvaSkpPjA/KGE8MCYmKGE9dSksYSs9K20uc2xpY2UodSsxKSxtPW0uc3Vic3RyaW5nKDAsdSkpOmE8MCYmKGE9bS5sZW5ndGgpLHU9MDs0OD09PW0uY2hhckNvZGVBdCh1KTt1KyspO2ZvcihkPW0ubGVuZ3RoOzQ4PT09bS5jaGFyQ29kZUF0KC0tZCk7KTtpZihtPW0uc2xpY2UodSwrK2QpKXtpZihkLT11LGgmJlcuREVCVUcmJmQ+MTUmJih0PnB8fHQhPT1jKHQpKSl0aHJvdyBFcnJvcihsK3kucyp0KTtpZigoYT1hLXUtMSk+SSl5LmM9eS5lPW51bGw7ZWxzZSBpZihhPFIpeS5jPVt5LmU9MF07ZWxzZXtpZih5LmU9YSx5LmM9W10sdT0oYSsxKSVmLGE8MCYmKHUrPWYpLHU8ZCl7Zm9yKHUmJnkuYy5wdXNoKCttLnNsaWNlKDAsdSkpLGQtPWY7dTxkOyl5LmMucHVzaCgrbS5zbGljZSh1LHUrPWYpKTttPW0uc2xpY2UodSksdT1mLW0ubGVuZ3RofWVsc2UgdS09ZDtmb3IoO3UtLTttKz1cIjBcIik7eS5jLnB1c2goK20pfX1lbHNlIHkuYz1beS5lPTBdfWZ1bmN0aW9uIHEodCxlLHIsbil7dmFyIG8saSxzLGEsYztpZihudWxsPT1yP3I9Qzp3KHIsMCw4KSwhdC5jKXJldHVybiB0LnRvU3RyaW5nKCk7aWYobz10LmNbMF0scz10LmUsbnVsbD09ZSljPV8odC5jKSxjPTE9PW58fDI9PW4mJnM8PUU/RihjLHMpOk4oYyxzLFwiMFwiKTtlbHNlIGlmKGk9KHQ9VihuZXcgVyh0KSxlLHIpKS5lLGE9KGM9Xyh0LmMpKS5sZW5ndGgsMT09bnx8Mj09biYmKGU8PWl8fGk8PUUpKXtmb3IoO2E8ZTtjKz1cIjBcIixhKyspO2M9RihjLGkpfWVsc2UgaWYoZS09cyxjPU4oYyxpLFwiMFwiKSxpKzE+YSl7aWYoLS1lPjApZm9yKGMrPVwiLlwiO2UtLTtjKz1cIjBcIik7fWVsc2UgaWYoKGUrPWktYSk+MClmb3IoaSsxPT1hJiYoYys9XCIuXCIpO2UtLTtjKz1cIjBcIik7cmV0dXJuIHQuczwwJiZvP1wiLVwiK2M6Y31mdW5jdGlvbiAkKHQsZSl7dmFyIHIsbixvPTA7Zm9yKGIodFswXSkmJih0PXRbMF0pLHI9bmV3IFcodFswXSk7KytvPHQubGVuZ3RoOyl7aWYoIShuPW5ldyBXKHRbb10pKS5zKXtyPW47YnJlYWt9ZS5jYWxsKHIsbikmJihyPW4pfXJldHVybiByfWZ1bmN0aW9uIEcodCxlLHIpe2Zvcih2YXIgbj0xLG89ZS5sZW5ndGg7IWVbLS1vXTtlLnBvcCgpKTtmb3Iobz1lWzBdO28+PTEwO28vPTEwLG4rKyk7cmV0dXJuKHI9bityKmYtMSk+ST90LmM9dC5lPW51bGw6cjxSP3QuYz1bdC5lPTBdOih0LmU9cix0LmM9ZSksdH1mdW5jdGlvbiBWKHQsZSxyLG4pe3ZhciBvLGkscyx1LGwscCxtLHk9dC5jLGc9ZDtpZih5KXt0Ontmb3Iobz0xLHU9eVswXTt1Pj0xMDt1Lz0xMCxvKyspO2lmKChpPWUtbyk8MClpKz1mLHM9ZSxtPShsPXlbcD0wXSkvZ1tvLXMtMV0lMTB8MDtlbHNlIGlmKChwPWEoKGkrMSkvZikpPj15Lmxlbmd0aCl7aWYoIW4pYnJlYWsgdDtmb3IoO3kubGVuZ3RoPD1wO3kucHVzaCgwKSk7bD1tPTAsbz0xLHM9KGklPWYpLWYrMX1lbHNle2ZvcihsPXU9eVtwXSxvPTE7dT49MTA7dS89MTAsbysrKTttPShzPShpJT1mKS1mK28pPDA/MDpsL2dbby1zLTFdJTEwfDB9aWYobj1ufHxlPDB8fG51bGwhPXlbcCsxXXx8KHM8MD9sOmwlZ1tvLXMtMV0pLG49cjw0PyhtfHxuKSYmKDA9PXJ8fHI9PSh0LnM8MD8zOjIpKTptPjV8fDU9PW0mJig0PT1yfHxufHw2PT1yJiYoaT4wP3M+MD9sL2dbby1zXTowOnlbcC0xXSklMTAmMXx8cj09KHQuczwwPzg6NykpLGU8MXx8IXlbMF0pcmV0dXJuIHkubGVuZ3RoPTAsbj8oZS09dC5lKzEseVswXT1nWyhmLWUlZiklZl0sdC5lPS1lfHwwKTp5WzBdPXQuZT0wLHQ7aWYoMD09aT8oeS5sZW5ndGg9cCx1PTEscC0tKTooeS5sZW5ndGg9cCsxLHU9Z1tmLWldLHlbcF09cz4wP2MobC9nW28tc10lZ1tzXSkqdTowKSxuKWZvcig7Oyl7aWYoMD09cCl7Zm9yKGk9MSxzPXlbMF07cz49MTA7cy89MTAsaSsrKTtmb3Iocz15WzBdKz11LHU9MTtzPj0xMDtzLz0xMCx1KyspO2khPXUmJih0LmUrKyx5WzBdPT1oJiYoeVswXT0xKSk7YnJlYWt9aWYoeVtwXSs9dSx5W3BdIT1oKWJyZWFrO3lbcC0tXT0wLHU9MX1mb3IoaT15Lmxlbmd0aDswPT09eVstLWldO3kucG9wKCkpO310LmU+ST90LmM9dC5lPW51bGw6dC5lPFImJih0LmM9W3QuZT0wXSl9cmV0dXJuIHR9cmV0dXJuIFcuY2xvbmU9dCxXLlJPVU5EX1VQPTAsVy5ST1VORF9ET1dOPTEsVy5ST1VORF9DRUlMPTIsVy5ST1VORF9GTE9PUj0zLFcuUk9VTkRfSEFMRl9VUD00LFcuUk9VTkRfSEFMRl9ET1dOPTUsVy5ST1VORF9IQUxGX0VWRU49NixXLlJPVU5EX0hBTEZfQ0VJTD03LFcuUk9VTkRfSEFMRl9GTE9PUj04LFcuRVVDTElEPTksVy5jb25maWc9Vy5zZXQ9ZnVuY3Rpb24odCl7dmFyIGUscjtpZihudWxsIT10KXtpZihcIm9iamVjdFwiIT10eXBlb2YgdCl0aHJvdyBFcnJvcih1K1wiT2JqZWN0IGV4cGVjdGVkOiBcIit0KTtpZih0Lmhhc093blByb3BlcnR5KGU9XCJERUNJTUFMX1BMQUNFU1wiKSYmKHcocj10W2VdLDAseSxlKSxNPXIpLHQuaGFzT3duUHJvcGVydHkoZT1cIlJPVU5ESU5HX01PREVcIikmJih3KHI9dFtlXSwwLDgsZSksQz1yKSx0Lmhhc093blByb3BlcnR5KGU9XCJFWFBPTkVOVElBTF9BVFwiKSYmKGIocj10W2VdKT8odyhyWzBdLC15LDAsZSksdyhyWzFdLDAseSxlKSxFPXJbMF0sRD1yWzFdKToodyhyLC15LHksZSksRT0tKEQ9cjwwPy1yOnIpKSksdC5oYXNPd25Qcm9wZXJ0eShlPVwiUkFOR0VcIikpaWYoYihyPXRbZV0pKXcoclswXSwteSwtMSxlKSx3KHJbMV0sMSx5LGUpLFI9clswXSxJPXJbMV07ZWxzZXtpZih3KHIsLXkseSxlKSwhcil0aHJvdyBFcnJvcih1K2UrXCIgY2Fubm90IGJlIHplcm86IFwiK3IpO1I9LShJPXI8MD8tcjpyKX1pZih0Lmhhc093blByb3BlcnR5KGU9XCJDUllQVE9cIikpe2lmKChyPXRbZV0pIT09ISFyKXRocm93IEVycm9yKHUrZStcIiBub3QgdHJ1ZSBvciBmYWxzZTogXCIrcik7aWYocil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGNyeXB0b3x8IWNyeXB0b3x8IWNyeXB0by5nZXRSYW5kb21WYWx1ZXMmJiFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgSD0hcixFcnJvcih1K1wiY3J5cHRvIHVuYXZhaWxhYmxlXCIpO0g9cn1lbHNlIEg9cn1pZih0Lmhhc093blByb3BlcnR5KGU9XCJNT0RVTE9fTU9ERVwiKSYmKHcocj10W2VdLDAsOSxlKSxqPXIpLHQuaGFzT3duUHJvcGVydHkoZT1cIlBPV19QUkVDSVNJT05cIikmJih3KHI9dFtlXSwwLHksZSksVT1yKSx0Lmhhc093blByb3BlcnR5KGU9XCJGT1JNQVRcIikpe2lmKFwib2JqZWN0XCIhPXR5cGVvZihyPXRbZV0pKXRocm93IEVycm9yKHUrZStcIiBub3QgYW4gb2JqZWN0OiBcIityKTtMPXJ9aWYodC5oYXNPd25Qcm9wZXJ0eShlPVwiQUxQSEFCRVRcIikpe2lmKFwic3RyaW5nXCIhPXR5cGVvZihyPXRbZV0pfHwvXi4kfFxcLnwoLikuKlxcMS8udGVzdChyKSl0aHJvdyBFcnJvcih1K2UrXCIgaW52YWxpZDogXCIrcik7ej1yfX1yZXR1cm57REVDSU1BTF9QTEFDRVM6TSxST1VORElOR19NT0RFOkMsRVhQT05FTlRJQUxfQVQ6W0UsRF0sUkFOR0U6W1IsSV0sQ1JZUFRPOkgsTU9EVUxPX01PREU6aixQT1dfUFJFQ0lTSU9OOlUsRk9STUFUOkwsQUxQSEFCRVQ6en19LFcuaXNCaWdOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBXfHx0JiYhMD09PXQuX2lzQmlnTnVtYmVyfHwhMX0sVy5tYXhpbXVtPVcubWF4PWZ1bmN0aW9uKCl7cmV0dXJuICQoYXJndW1lbnRzLFQubHQpfSxXLm1pbmltdW09Vy5taW49ZnVuY3Rpb24oKXtyZXR1cm4gJChhcmd1bWVudHMsVC5ndCl9LFcucmFuZG9tPShpPTkwMDcxOTkyNTQ3NDA5OTIqTWF0aC5yYW5kb20oKSYyMDk3MTUxP2Z1bmN0aW9uKCl7cmV0dXJuIGMoOTAwNzE5OTI1NDc0MDk5MipNYXRoLnJhbmRvbSgpKX06ZnVuY3Rpb24oKXtyZXR1cm4gODM4ODYwOCooMTA3Mzc0MTgyNCpNYXRoLnJhbmRvbSgpfDApKyg4Mzg4NjA4Kk1hdGgucmFuZG9tKCl8MCl9LGZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLHMsbD0wLGg9W10scD1uZXcgVyhQKTtpZihudWxsPT10P3Q9TTp3KHQsMCx5KSxvPWEodC9mKSxIKWlmKGNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2ZvcihlPWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KG8qPTIpKTtsPG87KShzPTEzMTA3MiplW2xdKyhlW2wrMV0+Pj4xMSkpPj05ZTE1PyhyPWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDIpKSxlW2xdPXJbMF0sZVtsKzFdPXJbMV0pOihoLnB1c2gocyUxZTE0KSxsKz0yKTtsPW8vMn1lbHNle2lmKCFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgSD0hMSxFcnJvcih1K1wiY3J5cHRvIHVuYXZhaWxhYmxlXCIpO2ZvcihlPWNyeXB0by5yYW5kb21CeXRlcyhvKj03KTtsPG87KShzPTI4MTQ3NDk3NjcxMDY1NiooMzEmZVtsXSkrMTA5OTUxMTYyNzc3NiplW2wrMV0rNDI5NDk2NzI5NiplW2wrMl0rMTY3NzcyMTYqZVtsKzNdKyhlW2wrNF08PDE2KSsoZVtsKzVdPDw4KStlW2wrNl0pPj05ZTE1P2NyeXB0by5yYW5kb21CeXRlcyg3KS5jb3B5KGUsbCk6KGgucHVzaChzJTFlMTQpLGwrPTcpO2w9by83fWlmKCFIKWZvcig7bDxvOykocz1pKCkpPDllMTUmJihoW2wrK109cyUxZTE0KTtmb3Iobz1oWy0tbF0sdCU9ZixvJiZ0JiYocz1kW2YtdF0saFtsXT1jKG8vcykqcyk7MD09PWhbbF07aC5wb3AoKSxsLS0pO2lmKGw8MCloPVtuPTBdO2Vsc2V7Zm9yKG49LTE7MD09PWhbMF07aC5zcGxpY2UoMCwxKSxuLT1mKTtmb3IobD0xLHM9aFswXTtzPj0xMDtzLz0xMCxsKyspO2w8ZiYmKG4tPWYtbCl9cmV0dXJuIHAuZT1uLHAuYz1oLHB9KSxuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUscixuKXtmb3IodmFyIG8saSxzPVswXSxhPTAsYz10Lmxlbmd0aDthPGM7KXtmb3IoaT1zLmxlbmd0aDtpLS07c1tpXSo9ZSk7Zm9yKHNbMF0rPW4uaW5kZXhPZih0LmNoYXJBdChhKyspKSxvPTA7bzxzLmxlbmd0aDtvKyspc1tvXT5yLTEmJihudWxsPT1zW28rMV0mJihzW28rMV09MCksc1tvKzFdKz1zW29dL3J8MCxzW29dJT1yKX1yZXR1cm4gcy5yZXZlcnNlKCl9cmV0dXJuIGZ1bmN0aW9uKGUsbixvLGkscyl7dmFyIGEsYyx1LGwsaCxmLHAsZCxtPWUuaW5kZXhPZihcIi5cIikseT1NLGc9Qztmb3IobT49MCYmKGw9VSxVPTAsZT1lLnJlcGxhY2UoXCIuXCIsXCJcIiksZj0oZD1uZXcgVyhuKSkucG93KGUubGVuZ3RoLW0pLFU9bCxkLmM9dChOKF8oZi5jKSxmLmUsXCIwXCIpLDEwLG8sXCIwMTIzNDU2Nzg5XCIpLGQuZT1kLmMubGVuZ3RoKSx1PWw9KHA9dChlLG4sbyxzPyhhPXosXCIwMTIzNDU2Nzg5XCIpOihhPVwiMDEyMzQ1Njc4OVwiLHopKSkubGVuZ3RoOzA9PXBbLS1sXTtwLnBvcCgpKTtpZighcFswXSlyZXR1cm4gYS5jaGFyQXQoMCk7aWYobTwwPy0tdTooZi5jPXAsZi5lPXUsZi5zPWkscD0oZj1yKGYsZCx5LGcsbykpLmMsaD1mLnIsdT1mLmUpLG09cFtjPXUreSsxXSxsPW8vMixoPWh8fGM8MHx8bnVsbCE9cFtjKzFdLGg9Zzw0PyhudWxsIT1tfHxoKSYmKDA9PWd8fGc9PShmLnM8MD8zOjIpKTptPmx8fG09PWwmJig0PT1nfHxofHw2PT1nJiYxJnBbYy0xXXx8Zz09KGYuczwwPzg6NykpLGM8MXx8IXBbMF0pZT1oP04oYS5jaGFyQXQoMSksLXksYS5jaGFyQXQoMCkpOmEuY2hhckF0KDApO2Vsc2V7aWYocC5sZW5ndGg9YyxoKWZvcigtLW87KytwWy0tY10+bzspcFtjXT0wLGN8fCgrK3UscD1bMV0uY29uY2F0KHApKTtmb3IobD1wLmxlbmd0aDshcFstLWxdOyk7Zm9yKG09MCxlPVwiXCI7bTw9bDtlKz1hLmNoYXJBdChwW20rK10pKTtlPU4oZSx1LGEuY2hhckF0KDApKX1yZXR1cm4gZX19KCkscj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLHIpe3ZhciBuLG8saSxzLGE9MCxjPXQubGVuZ3RoLHU9ZSVtLGw9ZS9tfDA7Zm9yKHQ9dC5zbGljZSgpO2MtLTspYT0oKG89dSooaT10W2NdJW0pKyhuPWwqaSsocz10W2NdL218MCkqdSklbSptK2EpL3J8MCkrKG4vbXwwKStsKnMsdFtjXT1vJXI7cmV0dXJuIGEmJih0PVthXS5jb25jYXQodCkpLHR9ZnVuY3Rpb24gZSh0LGUscixuKXt2YXIgbyxpO2lmKHIhPW4paT1yPm4/MTotMTtlbHNlIGZvcihvPWk9MDtvPHI7bysrKWlmKHRbb10hPWVbb10pe2k9dFtvXT5lW29dPzE6LTE7YnJlYWt9cmV0dXJuIGl9ZnVuY3Rpb24gcih0LGUscixuKXtmb3IodmFyIG89MDtyLS07KXRbcl0tPW8sbz10W3JdPGVbcl0/MTowLHRbcl09bypuK3Rbcl0tZVtyXTtmb3IoOyF0WzBdJiZ0Lmxlbmd0aD4xO3Quc3BsaWNlKDAsMSkpO31yZXR1cm4gZnVuY3Rpb24obixvLGkscyxhKXt2YXIgdSxsLHAsZCxtLHksXyx2LHcsYixCLEYsTixrLHgsUyxBLE89bi5zPT1vLnM/MTotMSxUPW4uYyxQPW8uYztpZighKFQmJlRbMF0mJlAmJlBbMF0pKXJldHVybiBuZXcgVyhuLnMmJm8ucyYmKFQ/IVB8fFRbMF0hPVBbMF06UCk/VCYmMD09VFswXXx8IVA/MCpPOk8vMDpOYU4pO2Zvcih3PSh2PW5ldyBXKE8pKS5jPVtdLE89aSsobD1uLmUtby5lKSsxLGF8fChhPWgsbD1nKG4uZS9mKS1nKG8uZS9mKSxPPU8vZnwwKSxwPTA7UFtwXT09KFRbcF18fDApO3ArKyk7aWYoUFtwXT4oVFtwXXx8MCkmJmwtLSxPPDApdy5wdXNoKDEpLGQ9ITA7ZWxzZXtmb3Ioaz1ULmxlbmd0aCxTPVAubGVuZ3RoLHA9MCxPKz0yLChtPWMoYS8oUFswXSsxKSkpPjEmJihQPXQoUCxtLGEpLFQ9dChULG0sYSksUz1QLmxlbmd0aCxrPVQubGVuZ3RoKSxOPVMsQj0oYj1ULnNsaWNlKDAsUykpLmxlbmd0aDtCPFM7YltCKytdPTApO0E9UC5zbGljZSgpLEE9WzBdLmNvbmNhdChBKSx4PVBbMF0sUFsxXT49YS8yJiZ4Kys7ZG97aWYobT0wLCh1PWUoUCxiLFMsQikpPDApe2lmKEY9YlswXSxTIT1CJiYoRj1GKmErKGJbMV18fDApKSwobT1jKEYveCkpPjEpZm9yKG0+PWEmJihtPWEtMSksXz0oeT10KFAsbSxhKSkubGVuZ3RoLEI9Yi5sZW5ndGg7MT09ZSh5LGIsXyxCKTspbS0tLHIoeSxTPF8/QTpQLF8sYSksXz15Lmxlbmd0aCx1PTE7ZWxzZSAwPT1tJiYodT1tPTEpLF89KHk9UC5zbGljZSgpKS5sZW5ndGg7aWYoXzxCJiYoeT1bMF0uY29uY2F0KHkpKSxyKGIseSxCLGEpLEI9Yi5sZW5ndGgsLTE9PXUpZm9yKDtlKFAsYixTLEIpPDE7KW0rKyxyKGIsUzxCP0E6UCxCLGEpLEI9Yi5sZW5ndGh9ZWxzZSAwPT09dSYmKG0rKyxiPVswXSk7d1twKytdPW0sYlswXT9iW0IrK109VFtOXXx8MDooYj1bVFtOXV0sQj0xKX13aGlsZSgoTisrPGt8fG51bGwhPWJbMF0pJiZPLS0pO2Q9bnVsbCE9YlswXSx3WzBdfHx3LnNwbGljZSgwLDEpfWlmKGE9PWgpe2ZvcihwPTEsTz13WzBdO08+PTEwO08vPTEwLHArKyk7Vih2LGkrKHYuZT1wK2wqZi0xKSsxLHMsZCl9ZWxzZSB2LmU9bCx2LnI9K2Q7cmV0dXJuIHZ9fSgpLGs9L14oLT8pMChbeGJvXSkoPz1cXHdbXFx3Ll0qJCkvaSx4PS9eKFteLl0rKVxcLiQvLFM9L15cXC4oW14uXSspJC8sQT0vXi0/KEluZmluaXR5fE5hTikkLyxPPS9eXFxzKlxcKyg/PVtcXHcuXSl8Xlxccyt8XFxzKyQvZyxvPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvLGk9cj9lOmUucmVwbGFjZShPLFwiXCIpO2lmKEEudGVzdChpKSl0LnM9aXNOYU4oaSk/bnVsbDppPDA/LTE6MSx0LmM9dC5lPW51bGw7ZWxzZXtpZighciYmKGk9aS5yZXBsYWNlKGssZnVuY3Rpb24odCxlLHIpe3JldHVybiBvPVwieFwiPT0ocj1yLnRvTG93ZXJDYXNlKCkpPzE2OlwiYlwiPT1yPzI6OCxuJiZuIT1vP3Q6ZX0pLG4mJihvPW4saT1pLnJlcGxhY2UoeCxcIiQxXCIpLnJlcGxhY2UoUyxcIjAuJDFcIikpLGUhPWkpKXJldHVybiBuZXcgVyhpLG8pO2lmKFcuREVCVUcpdGhyb3cgRXJyb3IodStcIk5vdCBhXCIrKG4/XCIgYmFzZSBcIituOlwiXCIpK1wiIG51bWJlcjogXCIrZSk7dC5jPXQuZT10LnM9bnVsbH19LFQuYWJzb2x1dGVWYWx1ZT1ULmFicz1mdW5jdGlvbigpe3ZhciB0PW5ldyBXKHRoaXMpO3JldHVybiB0LnM8MCYmKHQucz0xKSx0fSxULmNvbXBhcmVkVG89ZnVuY3Rpb24odCxlKXtyZXR1cm4gdih0aGlzLG5ldyBXKHQsZSkpfSxULmRlY2ltYWxQbGFjZXM9VC5kcD1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpPXRoaXM7aWYobnVsbCE9dClyZXR1cm4gdyh0LDAseSksbnVsbD09ZT9lPUM6dyhlLDAsOCksVihuZXcgVyhpKSx0K2kuZSsxLGUpO2lmKCEocj1pLmMpKXJldHVybiBudWxsO2lmKG49KChvPXIubGVuZ3RoLTEpLWcodGhpcy5lL2YpKSpmLG89cltvXSlmb3IoO28lMTA9PTA7by89MTAsbi0tKTtyZXR1cm4gbjwwJiYobj0wKSxufSxULmRpdmlkZWRCeT1ULmRpdj1mdW5jdGlvbih0LGUpe3JldHVybiByKHRoaXMsbmV3IFcodCxlKSxNLEMpfSxULmRpdmlkZWRUb0ludGVnZXJCeT1ULmlkaXY9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcih0aGlzLG5ldyBXKHQsZSksMCwxKX0sVC5leHBvbmVudGlhdGVkQnk9VC5wb3c9ZnVuY3Rpb24odCxlKXt2YXIgcixuLG8saSxzLGwsaCxwPXRoaXM7aWYoKHQ9bmV3IFcodCkpLmMmJiF0LmlzSW50ZWdlcigpKXRocm93IEVycm9yKHUrXCJFeHBvbmVudCBub3QgYW4gaW50ZWdlcjogXCIrdCk7aWYobnVsbCE9ZSYmKGU9bmV3IFcoZSkpLGk9dC5lPjE0LCFwLmN8fCFwLmNbMF18fDE9PXAuY1swXSYmIXAuZSYmMT09cC5jLmxlbmd0aHx8IXQuY3x8IXQuY1swXSlyZXR1cm4gaD1uZXcgVyhNYXRoLnBvdygrcC52YWx1ZU9mKCksaT8yLUIodCk6K3QpKSxlP2gubW9kKGUpOmg7aWYocz10LnM8MCxlKXtpZihlLmM/IWUuY1swXTohZS5zKXJldHVybiBuZXcgVyhOYU4pOyhuPSFzJiZwLmlzSW50ZWdlcigpJiZlLmlzSW50ZWdlcigpKSYmKHA9cC5tb2QoZSkpfWVsc2V7aWYodC5lPjkmJihwLmU+MHx8cC5lPC0xfHwoMD09cC5lP3AuY1swXT4xfHxpJiZwLmNbMV0+PTI0ZTc6cC5jWzBdPDhlMTN8fGkmJnAuY1swXTw9OTk5OTk3NWU3KSkpcmV0dXJuIG89cC5zPDAmJkIodCk/LTA6MCxwLmU+LTEmJihvPTEvbyksbmV3IFcocz8xL286byk7VSYmKG89YShVL2YrMikpfWZvcihpPyhyPW5ldyBXKC41KSxsPUIodCkpOmw9dCUyLHMmJih0LnM9MSksaD1uZXcgVyhQKTs7KXtpZihsKXtpZighKGg9aC50aW1lcyhwKSkuYylicmVhaztvP2guYy5sZW5ndGg+byYmKGguYy5sZW5ndGg9byk6biYmKGg9aC5tb2QoZSkpfWlmKGkpe2lmKFYodD10LnRpbWVzKHIpLHQuZSsxLDEpLCF0LmNbMF0pYnJlYWs7aT10LmU+MTQsbD1CKHQpfWVsc2V7aWYoISh0PWModC8yKSkpYnJlYWs7bD10JTJ9cD1wLnRpbWVzKHApLG8/cC5jJiZwLmMubGVuZ3RoPm8mJihwLmMubGVuZ3RoPW8pOm4mJihwPXAubW9kKGUpKX1yZXR1cm4gbj9oOihzJiYoaD1QLmRpdihoKSksZT9oLm1vZChlKTpvP1YoaCxVLEMsdm9pZCAwKTpoKX0sVC5pbnRlZ2VyVmFsdWU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFcodGhpcyk7cmV0dXJuIG51bGw9PXQ/dD1DOncodCwwLDgpLFYoZSxlLmUrMSx0KX0sVC5pc0VxdWFsVG89VC5lcT1mdW5jdGlvbih0LGUpe3JldHVybiAwPT09dih0aGlzLG5ldyBXKHQsZSkpfSxULmlzRmluaXRlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmN9LFQuaXNHcmVhdGVyVGhhbj1ULmd0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYodGhpcyxuZXcgVyh0LGUpKT4wfSxULmlzR3JlYXRlclRoYW5PckVxdWFsVG89VC5ndGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gMT09PShlPXYodGhpcyxuZXcgVyh0LGUpKSl8fDA9PT1lfSxULmlzSW50ZWdlcj1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5jJiZnKHRoaXMuZS9mKT50aGlzLmMubGVuZ3RoLTJ9LFQuaXNMZXNzVGhhbj1ULmx0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYodGhpcyxuZXcgVyh0LGUpKTwwfSxULmlzTGVzc1RoYW5PckVxdWFsVG89VC5sdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4tMT09PShlPXYodGhpcyxuZXcgVyh0LGUpKSl8fDA9PT1lfSxULmlzTmFOPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuc30sVC5pc05lZ2F0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuczwwfSxULmlzUG9zaXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zPjB9LFQuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmMmJjA9PXRoaXMuY1swXX0sVC5taW51cz1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpLHM9dGhpcyxhPXMucztpZihlPSh0PW5ldyBXKHQsZSkpLnMsIWF8fCFlKXJldHVybiBuZXcgVyhOYU4pO2lmKGEhPWUpcmV0dXJuIHQucz0tZSxzLnBsdXModCk7dmFyIGM9cy5lL2YsdT10LmUvZixsPXMuYyxwPXQuYztpZighY3x8IXUpe2lmKCFsfHwhcClyZXR1cm4gbD8odC5zPS1lLHQpOm5ldyBXKHA/czpOYU4pO2lmKCFsWzBdfHwhcFswXSlyZXR1cm4gcFswXT8odC5zPS1lLHQpOm5ldyBXKGxbMF0/czozPT1DPy0wOjApfWlmKGM9ZyhjKSx1PWcodSksbD1sLnNsaWNlKCksYT1jLXUpe2ZvcigoaT1hPDApPyhhPS1hLG89bCk6KHU9YyxvPXApLG8ucmV2ZXJzZSgpLGU9YTtlLS07by5wdXNoKDApKTtvLnJldmVyc2UoKX1lbHNlIGZvcihuPShpPShhPWwubGVuZ3RoKTwoZT1wLmxlbmd0aCkpP2E6ZSxhPWU9MDtlPG47ZSsrKWlmKGxbZV0hPXBbZV0pe2k9bFtlXTxwW2VdO2JyZWFrfWlmKGkmJihvPWwsbD1wLHA9byx0LnM9LXQucyksKGU9KG49cC5sZW5ndGgpLShyPWwubGVuZ3RoKSk+MClmb3IoO2UtLTtsW3IrK109MCk7Zm9yKGU9aC0xO24+YTspe2lmKGxbLS1uXTxwW25dKXtmb3Iocj1uO3ImJiFsWy0tcl07bFtyXT1lKTstLWxbcl0sbFtuXSs9aH1sW25dLT1wW25dfWZvcig7MD09bFswXTtsLnNwbGljZSgwLDEpLC0tdSk7cmV0dXJuIGxbMF0/Ryh0LGwsdSk6KHQucz0zPT1DPy0xOjEsdC5jPVt0LmU9MF0sdCl9LFQubW9kdWxvPVQubW9kPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbyxpPXRoaXM7cmV0dXJuIHQ9bmV3IFcodCxlKSwhaS5jfHwhdC5zfHx0LmMmJiF0LmNbMF0/bmV3IFcoTmFOKTohdC5jfHxpLmMmJiFpLmNbMF0/bmV3IFcoaSk6KDk9PWo/KG89dC5zLHQucz0xLG49cihpLHQsMCwzKSx0LnM9byxuLnMqPW8pOm49cihpLHQsMCxqKSwodD1pLm1pbnVzKG4udGltZXModCkpKS5jWzBdfHwxIT1qfHwodC5zPWkucyksdCl9LFQubXVsdGlwbGllZEJ5PVQudGltZXM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLG8saSxzLGEsYyx1LGwscCxkLHksXyx2LHcsYj10aGlzLEI9Yi5jLEY9KHQ9bmV3IFcodCxlKSkuYztpZighKEImJkYmJkJbMF0mJkZbMF0pKXJldHVybiFiLnN8fCF0LnN8fEImJiFCWzBdJiYhRnx8RiYmIUZbMF0mJiFCP3QuYz10LmU9dC5zPW51bGw6KHQucyo9Yi5zLEImJkY/KHQuYz1bMF0sdC5lPTApOnQuYz10LmU9bnVsbCksdDtmb3Iobj1nKGIuZS9mKStnKHQuZS9mKSx0LnMqPWIucywoYz1CLmxlbmd0aCk8KHA9Ri5sZW5ndGgpJiYoXz1CLEI9RixGPV8sbz1jLGM9cCxwPW8pLG89YytwLF89W107by0tO18ucHVzaCgwKSk7Zm9yKHY9aCx3PW0sbz1wOy0tbz49MDspe2ZvcihyPTAsZD1GW29dJXcseT1GW29dL3d8MCxpPW8rKHM9Yyk7aT5vOylyPSgodT1kKih1PUJbLS1zXSV3KSsoYT15KnUrKGw9QltzXS93fDApKmQpJXcqdytfW2ldK3IpL3Z8MCkrKGEvd3wwKSt5KmwsX1tpLS1dPXUldjtfW2ldPXJ9cmV0dXJuIHI/KytuOl8uc3BsaWNlKDAsMSksRyh0LF8sbil9LFQubmVnYXRlZD1mdW5jdGlvbigpe3ZhciB0PW5ldyBXKHRoaXMpO3JldHVybiB0LnM9LXQuc3x8bnVsbCx0fSxULnBsdXM9ZnVuY3Rpb24odCxlKXt2YXIgcixuPXRoaXMsbz1uLnM7aWYoZT0odD1uZXcgVyh0LGUpKS5zLCFvfHwhZSlyZXR1cm4gbmV3IFcoTmFOKTtpZihvIT1lKXJldHVybiB0LnM9LWUsbi5taW51cyh0KTt2YXIgaT1uLmUvZixzPXQuZS9mLGE9bi5jLGM9dC5jO2lmKCFpfHwhcyl7aWYoIWF8fCFjKXJldHVybiBuZXcgVyhvLzApO2lmKCFhWzBdfHwhY1swXSlyZXR1cm4gY1swXT90Om5ldyBXKGFbMF0/bjowKm8pfWlmKGk9ZyhpKSxzPWcocyksYT1hLnNsaWNlKCksbz1pLXMpe2ZvcihvPjA/KHM9aSxyPWMpOihvPS1vLHI9YSksci5yZXZlcnNlKCk7by0tO3IucHVzaCgwKSk7ci5yZXZlcnNlKCl9Zm9yKChvPWEubGVuZ3RoKS0oZT1jLmxlbmd0aCk8MCYmKHI9YyxjPWEsYT1yLGU9byksbz0wO2U7KW89KGFbLS1lXT1hW2VdK2NbZV0rbykvaHwwLGFbZV09aD09PWFbZV0/MDphW2VdJWg7cmV0dXJuIG8mJihhPVtvXS5jb25jYXQoYSksKytzKSxHKHQsYSxzKX0sVC5wcmVjaXNpb249VC5zZD1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpPXRoaXM7aWYobnVsbCE9dCYmdCE9PSEhdClyZXR1cm4gdyh0LDEseSksbnVsbD09ZT9lPUM6dyhlLDAsOCksVihuZXcgVyhpKSx0LGUpO2lmKCEocj1pLmMpKXJldHVybiBudWxsO2lmKG49KG89ci5sZW5ndGgtMSkqZisxLG89cltvXSl7Zm9yKDtvJTEwPT0wO28vPTEwLG4tLSk7Zm9yKG89clswXTtvPj0xMDtvLz0xMCxuKyspO31yZXR1cm4gdCYmaS5lKzE+biYmKG49aS5lKzEpLG59LFQuc2hpZnRlZEJ5PWZ1bmN0aW9uKHQpe3JldHVybiB3KHQsLXAscCksdGhpcy50aW1lcyhcIjFlXCIrdCl9LFQuc3F1YXJlUm9vdD1ULnNxcnQ9ZnVuY3Rpb24oKXt2YXIgdCxlLG4sbyxpLHM9dGhpcyxhPXMuYyxjPXMucyx1PXMuZSxsPU0rNCxoPW5ldyBXKFwiMC41XCIpO2lmKDEhPT1jfHwhYXx8IWFbMF0pcmV0dXJuIG5ldyBXKCFjfHxjPDAmJighYXx8YVswXSk/TmFOOmE/czoxLzApO2lmKDA9PShjPU1hdGguc3FydCgrcykpfHxjPT0xLzA/KCgoZT1fKGEpKS5sZW5ndGgrdSklMj09MCYmKGUrPVwiMFwiKSxjPU1hdGguc3FydChlKSx1PWcoKHUrMSkvMiktKHU8MHx8dSUyKSxuPW5ldyBXKGU9Yz09MS8wP1wiMWVcIit1OihlPWMudG9FeHBvbmVudGlhbCgpKS5zbGljZSgwLGUuaW5kZXhPZihcImVcIikrMSkrdSkpOm49bmV3IFcoYytcIlwiKSxuLmNbMF0pZm9yKChjPSh1PW4uZSkrbCk8MyYmKGM9MCk7OylpZihpPW4sbj1oLnRpbWVzKGkucGx1cyhyKHMsaSxsLDEpKSksXyhpLmMpLnNsaWNlKDAsYyk9PT0oZT1fKG4uYykpLnNsaWNlKDAsYykpe2lmKG4uZTx1JiYtLWMsXCI5OTk5XCIhPShlPWUuc2xpY2UoYy0zLGMrMSkpJiYob3x8XCI0OTk5XCIhPWUpKXsrZSYmKCtlLnNsaWNlKDEpfHxcIjVcIiE9ZS5jaGFyQXQoMCkpfHwoVihuLG4uZStNKzIsMSksdD0hbi50aW1lcyhuKS5lcShzKSk7YnJlYWt9aWYoIW8mJihWKGksaS5lK00rMiwwKSxpLnRpbWVzKGkpLmVxKHMpKSl7bj1pO2JyZWFrfWwrPTQsYys9NCxvPTF9cmV0dXJuIFYobixuLmUrTSsxLEMsdCl9LFQudG9FeHBvbmVudGlhbD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsIT10JiYodyh0LDAseSksdCsrKSxxKHRoaXMsdCxlLDEpfSxULnRvRml4ZWQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbCE9dCYmKHcodCwwLHkpLHQ9dCt0aGlzLmUrMSkscSh0aGlzLHQsZSl9LFQudG9Gb3JtYXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnRvRml4ZWQodCxlKTtpZih0aGlzLmMpe3ZhciBuLG89ci5zcGxpdChcIi5cIiksaT0rTC5ncm91cFNpemUscz0rTC5zZWNvbmRhcnlHcm91cFNpemUsYT1MLmdyb3VwU2VwYXJhdG9yLGM9b1swXSx1PW9bMV0sbD10aGlzLnM8MCxoPWw/Yy5zbGljZSgxKTpjLGY9aC5sZW5ndGg7aWYocyYmKG49aSxpPXMscz1uLGYtPW4pLGk+MCYmZj4wKXtmb3Iobj1mJWl8fGksYz1oLnN1YnN0cigwLG4pO248ZjtuKz1pKWMrPWEraC5zdWJzdHIobixpKTtzPjAmJihjKz1hK2guc2xpY2UobikpLGwmJihjPVwiLVwiK2MpfXI9dT9jK0wuZGVjaW1hbFNlcGFyYXRvcisoKHM9K0wuZnJhY3Rpb25Hcm91cFNpemUpP3UucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXGR7XCIrcytcIn1cXFxcQlwiLFwiZ1wiKSxcIiQmXCIrTC5mcmFjdGlvbkdyb3VwU2VwYXJhdG9yKTp1KTpjfXJldHVybiByfSxULnRvRnJhY3Rpb249ZnVuY3Rpb24odCl7dmFyIGUsbixvLGkscyxhLGMsbCxoLHAsbSx5LGc9dGhpcyx2PWcuYztpZihudWxsIT10JiYoIShsPW5ldyBXKHQpKS5pc0ludGVnZXIoKSYmKGwuY3x8MSE9PWwucyl8fGwubHQoUCkpKXRocm93IEVycm9yKHUrXCJBcmd1bWVudCBcIisobC5pc0ludGVnZXIoKT9cIm91dCBvZiByYW5nZTogXCI6XCJub3QgYW4gaW50ZWdlcjogXCIpK3QpO2lmKCF2KXJldHVybiBnLnRvU3RyaW5nKCk7Zm9yKG49bmV3IFcoUCkscD1vPW5ldyBXKFApLGk9aD1uZXcgVyhQKSx5PV8odiksYT1uLmU9eS5sZW5ndGgtZy5lLTEsbi5jWzBdPWRbKGM9YSVmKTwwP2YrYzpjXSx0PSF0fHxsLmNvbXBhcmVkVG8obik+MD9hPjA/bjpwOmwsYz1JLEk9MS8wLGw9bmV3IFcoeSksaC5jWzBdPTA7bT1yKGwsbiwwLDEpLDEhPShzPW8ucGx1cyhtLnRpbWVzKGkpKSkuY29tcGFyZWRUbyh0KTspbz1pLGk9cyxwPWgucGx1cyhtLnRpbWVzKHM9cCkpLGg9cyxuPWwubWludXMobS50aW1lcyhzPW4pKSxsPXM7cmV0dXJuIHM9cih0Lm1pbnVzKG8pLGksMCwxKSxoPWgucGx1cyhzLnRpbWVzKHApKSxvPW8ucGx1cyhzLnRpbWVzKGkpKSxoLnM9cC5zPWcucyxlPXIocCxpLGEqPTIsQykubWludXMoZykuYWJzKCkuY29tcGFyZWRUbyhyKGgsbyxhLEMpLm1pbnVzKGcpLmFicygpKTwxP1twLnRvU3RyaW5nKCksaS50b1N0cmluZygpXTpbaC50b1N0cmluZygpLG8udG9TdHJpbmcoKV0sST1jLGV9LFQudG9OdW1iZXI9ZnVuY3Rpb24oKXtyZXR1cm4rdGhpc30sVC50b1ByZWNpc2lvbj1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsIT10JiZ3KHQsMSx5KSxxKHRoaXMsdCxlLDIpfSxULnRvU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dGhpcyxvPXIucyxpPXIuZTtyZXR1cm4gbnVsbD09PWk/bz8oZT1cIkluZmluaXR5XCIsbzwwJiYoZT1cIi1cIitlKSk6ZT1cIk5hTlwiOihlPV8oci5jKSxudWxsPT10P2U9aTw9RXx8aT49RD9GKGUsaSk6TihlLGksXCIwXCIpOih3KHQsMix6Lmxlbmd0aCxcIkJhc2VcIiksZT1uKE4oZSxpLFwiMFwiKSwxMCx0LG8sITApKSxvPDAmJnIuY1swXSYmKGU9XCItXCIrZSkpLGV9LFQudmFsdWVPZj1ULnRvSlNPTj1mdW5jdGlvbigpe3ZhciB0LGU9dGhpcyxyPWUuZTtyZXR1cm4gbnVsbD09PXI/ZS50b1N0cmluZygpOih0PV8oZS5jKSx0PXI8PUV8fHI+PUQ/Rih0LHIpOk4odCxyLFwiMFwiKSxlLnM8MD9cIi1cIit0OnQpfSxULl9pc0JpZ051bWJlcj0hMCxudWxsIT1lJiZXLnNldChlKSxXfSgpKS5kZWZhdWx0PWkuQmlnTnVtYmVyPWksdm9pZCAwPT09KG49ZnVuY3Rpb24oKXtyZXR1cm4gaX0uY2FsbChlLHIsZSx0KSl8fCh0LmV4cG9ydHM9bil9KCl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxmdW5jdGlvbih0KXt2YXIgZT1uLHI9ZS5saWIsbz1yLldvcmRBcnJheSxpPXIuSGFzaGVyLHM9ZS5hbGdvLGE9W10sYz1bXTshZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgcj10LnNxcnQoZSksbj0yO248PXI7bisrKWlmKCEoZSVuKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiByKHQpe3JldHVybiA0Mjk0OTY3Mjk2Kih0LSgwfHQpKXwwfWZvcih2YXIgbj0yLG89MDtvPDY0OyllKG4pJiYobzw4JiYoYVtvXT1yKHQucG93KG4sLjUpKSksY1tvXT1yKHQucG93KG4sMS8zKSksbysrKSxuKyt9KCk7dmFyIHU9W10sbD1zLlNIQTI1Nj1pLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBvLmluaXQoYS5zbGljZSgwKSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9oYXNoLndvcmRzLG49clswXSxvPXJbMV0saT1yWzJdLHM9clszXSxhPXJbNF0sbD1yWzVdLGg9cls2XSxmPXJbN10scD0wO3A8NjQ7cCsrKXtpZihwPDE2KXVbcF09MHx0W2UrcF07ZWxzZXt2YXIgZD11W3AtMTVdLG09KGQ8PDI1fGQ+Pj43KV4oZDw8MTR8ZD4+PjE4KV5kPj4+Myx5PXVbcC0yXSxnPSh5PDwxNXx5Pj4+MTcpXih5PDwxM3x5Pj4+MTkpXnk+Pj4xMDt1W3BdPW0rdVtwLTddK2crdVtwLTE2XX12YXIgXz1uJm9ebiZpXm8maSx2PShuPDwzMHxuPj4+MileKG48PDE5fG4+Pj4xMyleKG48PDEwfG4+Pj4yMiksdz1mKygoYTw8MjZ8YT4+PjYpXihhPDwyMXxhPj4+MTEpXihhPDw3fGE+Pj4yNSkpKyhhJmxefmEmaCkrY1twXSt1W3BdO2Y9aCxoPWwsbD1hLGE9cyt3fDAscz1pLGk9byxvPW4sbj13Kyh2K18pfDB9clswXT1yWzBdK258MCxyWzFdPXJbMV0rb3wwLHJbMl09clsyXStpfDAsclszXT1yWzNdK3N8MCxyWzRdPXJbNF0rYXwwLHJbNV09cls1XStsfDAscls2XT1yWzZdK2h8MCxyWzddPXJbN10rZnwwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2RhdGEscj1lLndvcmRzLG49OCp0aGlzLl9uRGF0YUJ5dGVzLG89OCplLnNpZ0J5dGVzO3JldHVybiByW28+Pj41XXw9MTI4PDwyNC1vJTMyLHJbMTQrKG8rNjQ+Pj45PDw0KV09dC5mbG9vcihuLzQyOTQ5NjcyOTYpLHJbMTUrKG8rNjQ+Pj45PDw0KV09bixlLnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2h9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9aS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO2UuU0hBMjU2PWkuX2NyZWF0ZUhlbHBlcihsKSxlLkhtYWNTSEEyNTY9aS5fY3JlYXRlSG1hY0hlbHBlcihsKX0oTWF0aCksbi5TSEEyNTYpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxMCksZnVuY3Rpb24oKXt2YXIgdD1uLGU9dC5saWIuSGFzaGVyLHI9dC54NjQsbz1yLldvcmQsaT1yLldvcmRBcnJheSxzPXQuYWxnbztmdW5jdGlvbiBhKCl7cmV0dXJuIG8uY3JlYXRlLmFwcGx5KG8sYXJndW1lbnRzKX12YXIgYz1bYSgxMTE2MzUyNDA4LDM2MDk3Njc0NTgpLGEoMTg5OTQ0NzQ0MSw2MDI4OTE3MjUpLGEoMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5KSxhKDM5MjEwMDk1NzMsMjE3MzI5NTU0OCksYSg5NjE5ODcxNjMsNDA4MTYyODQ3MiksYSgxNTA4OTcwOTkzLDMwNTM4MzQyNjUpLGEoMjQ1MzYzNTc0OCwyOTM3NjcxNTc5KSxhKDI4NzA3NjMyMjEsMzY2NDYwOTU2MCksYSgzNjI0MzgxMDgwLDI3MzQ4ODMzOTQpLGEoMzEwNTk4NDAxLDExNjQ5OTY1NDIpLGEoNjA3MjI1Mjc4LDEzMjM2MTA3NjQpLGEoMTQyNjg4MTk4NywzNTkwMzA0OTk0KSxhKDE5MjUwNzgzODgsNDA2ODE4MjM4MyksYSgyMTYyMDc4MjA2LDk5MTMzNjExMyksYSgyNjE0ODg4MTAzLDYzMzgwMzMxNyksYSgzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgpLGEoMzgzNTM5MDQwMSwyNjY2NjEzNDU4KSxhKDQwMjIyMjQ3NzQsOTQ0NzExMTM5KSxhKDI2NDM0NzA3OCwyMzQxMjYyNzczKSxhKDYwNDgwNzYyOCwyMDA3ODAwOTMzKSxhKDc3MDI1NTk4MywxNDk1OTkwOTAxKSxhKDEyNDkxNTAxMjIsMTg1NjQzMTIzNSksYSgxNTU1MDgxNjkyLDMxNzUyMTgxMzIpLGEoMTk5NjA2NDk4NiwyMTk4OTUwODM3KSxhKDI1NTQyMjA4ODIsMzk5OTcxOTMzOSksYSgyODIxODM0MzQ5LDc2Njc4NDAxNiksYSgyOTUyOTk2ODA4LDI1NjY1OTQ4NzkpLGEoMzIxMDMxMzY3MSwzMjAzMzM3OTU2KSxhKDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiksYSgzNTg0NTI4NzExLDI0NjY5NDg5MDEpLGEoMTEzOTI2OTkzLDM3NTgzMjYzODMpLGEoMzM4MjQxODk1LDE2ODcxNzkzNiksYSg2NjYzMDcyMDUsMTE4ODE3OTk2NCksYSg3NzM1Mjk5MTIsMTU0NjA0NTczNCksYSgxMjk0NzU3MzcyLDE1MjI4MDU0ODUpLGEoMTM5NjE4MjI5MSwyNjQzODMzODIzKSxhKDE2OTUxODM3MDAsMjM0MzUyNzM5MCksYSgxOTg2NjYxMDUxLDEwMTQ0Nzc0ODApLGEoMjE3NzAyNjM1MCwxMjA2NzU5MTQyKSxhKDI0NTY5NTYwMzcsMzQ0MDc3NjI3KSxhKDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCksYSgyODIwMzAyNDExLDMxNTg0NTQyNzMpLGEoMzI1OTczMDgwMCwzNTA1OTUyNjU3KSxhKDMzNDU3NjQ3NzEsMTA2MjE3MDA4KSxhKDM1MTYwNjU4MTcsMzYwNjAwODM0NCksYSgzNjAwMzUyODA0LDE0MzI3MjU3NzYpLGEoNDA5NDU3MTkwOSwxNDY3MDMxNTk0KSxhKDI3NTQyMzM0NCw4NTExNjk3MjApLGEoNDMwMjI3NzM0LDMxMDA4MjM3NTIpLGEoNTA2OTQ4NjE2LDEzNjMyNTgxOTUpLGEoNjU5MDYwNTU2LDM3NTA2ODU1OTMpLGEoODgzOTk3ODc3LDM3ODUwNTAyODApLGEoOTU4MTM5NTcxLDMzMTgzMDc0MjcpLGEoMTMyMjgyMjIxOCwzODEyNzIzNDAzKSxhKDE1MzcwMDIwNjMsMjAwMzAzNDk5NSksYSgxNzQ3ODczNzc5LDM2MDIwMzY4OTkpLGEoMTk1NTU2MjIyMiwxNTc1OTkwMDEyKSxhKDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCksYSgyMjI3NzMwNDUyLDI3MTY5MDQzMDYpLGEoMjM2MTg1MjQyNCw0NDI3NzYwNDQpLGEoMjQyODQzNjQ3NCw1OTM2OTgzNDQpLGEoMjc1NjczNDE4NywzNzMzMTEwMjQ5KSxhKDMyMDQwMzE0NzksMjk5OTM1MTU3MyksYSgzMzI5MzI1Mjk4LDM4MTU5MjA0MjcpLGEoMzM5MTU2OTYxNCwzOTI4MzgzOTAwKSxhKDM1MTUyNjcyNzEsNTY2MjgwNzExKSxhKDM5NDAxODc2MDYsMzQ1NDA2OTUzNCksYSg0MTE4NjMwMjcxLDQwMDAyMzk5OTIpLGEoMTE2NDE4NDc0LDE5MTQxMzg1NTQpLGEoMTc0MjkyNDIxLDI3MzEwNTUyNzApLGEoMjg5MzgwMzU2LDMyMDM5OTMwMDYpLGEoNDYwMzkzMjY5LDMyMDYyMDMxNSksYSg2ODU0NzE3MzMsNTg3NDk2ODM2KSxhKDg1MjE0Mjk3MSwxMDg2NzkyODUxKSxhKDEwMTcwMzYyOTgsMzY1NTQzMTAwKSxhKDExMjYwMDA1ODAsMjYxODI5NzY3NiksYSgxMjg4MDMzNDcwLDM0MDk4NTUxNTgpLGEoMTUwMTUwNTk0OCw0MjM0NTA5ODY2KSxhKDE2MDcxNjc5MTUsOTg3MTY3NDY4KSxhKDE4MTY0MDIzMTYsMTI0NjE4OTU5MSldLHU9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDw4MDt0KyspdVt0XT1hKCl9KCk7dmFyIGw9cy5TSEE1MTI9ZS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgaS5pbml0KFtuZXcgby5pbml0KDE3NzkwMzM3MDMsNDA4OTIzNTcyMCksbmV3IG8uaW5pdCgzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUpLG5ldyBvLmluaXQoMTAxMzkwNDI0Miw0MjcxMTc1NzIzKSxuZXcgby5pbml0KDI3NzM0ODA3NjIsMTU5NTc1MDEyOSksbmV3IG8uaW5pdCgxMzU5ODkzMTE5LDI5MTc1NjUxMzcpLG5ldyBvLmluaXQoMjYwMDgyMjkyNCw3MjU1MTExOTkpLG5ldyBvLmluaXQoNTI4NzM0NjM1LDQyMTUzODk1NDcpLG5ldyBvLmluaXQoMTU0MTQ1OTIyNSwzMjcwMzMyMDkpXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9oYXNoLndvcmRzLG49clswXSxvPXJbMV0saT1yWzJdLHM9clszXSxhPXJbNF0sbD1yWzVdLGg9cls2XSxmPXJbN10scD1uLmhpZ2gsZD1uLmxvdyxtPW8uaGlnaCx5PW8ubG93LGc9aS5oaWdoLF89aS5sb3csdj1zLmhpZ2gsdz1zLmxvdyxiPWEuaGlnaCxCPWEubG93LEY9bC5oaWdoLE49bC5sb3csaz1oLmhpZ2gseD1oLmxvdyxTPWYuaGlnaCxBPWYubG93LE89cCxUPWQsUD1tLE09eSxDPWcsRT1fLEQ9dixSPXcsST1iLEg9QixqPUYsVT1OLEw9ayx6PXgsVz1TLHE9QSwkPTA7JDw4MDskKyspe3ZhciBHPXVbJF07aWYoJDwxNil2YXIgVj1HLmhpZ2g9MHx0W2UrMiokXSxKPUcubG93PTB8dFtlKzIqJCsxXTtlbHNle3ZhciBLPXVbJC0xNV0sWD1LLmhpZ2gsWj1LLmxvdyxZPShYPj4+MXxaPDwzMSleKFg+Pj44fFo8PDI0KV5YPj4+NyxRPShaPj4+MXxYPDwzMSleKFo+Pj44fFg8PDI0KV4oWj4+Pjd8WDw8MjUpLHR0PXVbJC0yXSxldD10dC5oaWdoLHJ0PXR0LmxvdyxudD0oZXQ+Pj4xOXxydDw8MTMpXihldDw8M3xydD4+PjI5KV5ldD4+PjYsb3Q9KHJ0Pj4+MTl8ZXQ8PDEzKV4ocnQ8PDN8ZXQ+Pj4yOSleKHJ0Pj4+NnxldDw8MjYpLGl0PXVbJC03XSxzdD1pdC5oaWdoLGF0PWl0LmxvdyxjdD11WyQtMTZdLHV0PWN0LmhpZ2gsbHQ9Y3QubG93O1Y9KFY9KFY9WStzdCsoKEo9USthdCk+Pj4wPFE+Pj4wPzE6MCkpK250KygoSis9b3QpPj4+MDxvdD4+PjA/MTowKSkrdXQrKChKKz1sdCk+Pj4wPGx0Pj4+MD8xOjApLEcuaGlnaD1WLEcubG93PUp9dmFyIGh0LGZ0PUkmal5+SSZMLHB0PUgmVV5+SCZ6LGR0PU8mUF5PJkNeUCZDLG10PVQmTV5UJkVeTSZFLHl0PShPPj4+Mjh8VDw8NCleKE88PDMwfFQ+Pj4yKV4oTzw8MjV8VD4+PjcpLGd0PShUPj4+Mjh8Tzw8NCleKFQ8PDMwfE8+Pj4yKV4oVDw8MjV8Tz4+PjcpLF90PShJPj4+MTR8SDw8MTgpXihJPj4+MTh8SDw8MTQpXihJPDwyM3xIPj4+OSksdnQ9KEg+Pj4xNHxJPDwxOCleKEg+Pj4xOHxJPDwxNCleKEg8PDIzfEk+Pj45KSx3dD1jWyRdLGJ0PXd0LmhpZ2gsQnQ9d3QubG93LEZ0PVcrX3QrKChodD1xK3Z0KT4+PjA8cT4+PjA/MTowKSxOdD1ndCttdDtXPUwscT16LEw9aix6PVUsaj1JLFU9SCxJPUQrKEZ0PShGdD0oRnQ9RnQrZnQrKChodCs9cHQpPj4+MDxwdD4+PjA/MTowKSkrYnQrKChodCs9QnQpPj4+MDxCdD4+PjA/MTowKSkrVisoKGh0Kz1KKT4+PjA8Sj4+PjA/MTowKSkrKChIPVIraHR8MCk+Pj4wPFI+Pj4wPzE6MCl8MCxEPUMsUj1FLEM9UCxFPU0sUD1PLE09VCxPPUZ0Kyh5dCtkdCsoTnQ+Pj4wPGd0Pj4+MD8xOjApKSsoKFQ9aHQrTnR8MCk+Pj4wPGh0Pj4+MD8xOjApfDB9ZD1uLmxvdz1kK1Qsbi5oaWdoPXArTysoZD4+PjA8VD4+PjA/MTowKSx5PW8ubG93PXkrTSxvLmhpZ2g9bStQKyh5Pj4+MDxNPj4+MD8xOjApLF89aS5sb3c9XytFLGkuaGlnaD1nK0MrKF8+Pj4wPEU+Pj4wPzE6MCksdz1zLmxvdz13K1Iscy5oaWdoPXYrRCsodz4+PjA8Uj4+PjA/MTowKSxCPWEubG93PUIrSCxhLmhpZ2g9YitJKyhCPj4+MDxIPj4+MD8xOjApLE49bC5sb3c9TitVLGwuaGlnaD1GK2orKE4+Pj4wPFU+Pj4wPzE6MCkseD1oLmxvdz14K3osaC5oaWdoPWsrTCsoeD4+PjA8ej4+PjA/MTowKSxBPWYubG93PUErcSxmLmhpZ2g9UytXKyhBPj4+MDxxPj4+MD8xOjApfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLHI9OCp0aGlzLl9uRGF0YUJ5dGVzLG49OCp0LnNpZ0J5dGVzO3JldHVybiBlW24+Pj41XXw9MTI4PDwyNC1uJTMyLGVbMzArKG4rMTI4Pj4+MTA8PDUpXT1NYXRoLmZsb29yKHIvNDI5NDk2NzI5NiksZVszMSsobisxMjg+Pj4xMDw8NSldPXIsdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNoLnRvWDMyKCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9ZS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fSxibG9ja1NpemU6MzJ9KTt0LlNIQTUxMj1lLl9jcmVhdGVIZWxwZXIobCksdC5IbWFjU0hBNTEyPWUuX2NyZWF0ZUhtYWNIZWxwZXIobCl9KCksbi5TSEE1MTIpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxMCksZnVuY3Rpb24odCl7dmFyIGU9bixyPWUubGliLG89ci5Xb3JkQXJyYXksaT1yLkhhc2hlcixzPWUueDY0LldvcmQsYT1lLmFsZ28sYz1bXSx1PVtdLGw9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTEsZT0wLHI9MDtyPDI0O3IrKyl7Y1t0KzUqZV09KHIrMSkqKHIrMikvMiU2NDt2YXIgbj0oMip0KzMqZSklNTt0PWUlNSxlPW59Zm9yKHQ9MDt0PDU7dCsrKWZvcihlPTA7ZTw1O2UrKyl1W3QrNSplXT1lKygyKnQrMyplKSU1KjU7Zm9yKHZhciBvPTEsaT0wO2k8MjQ7aSsrKXtmb3IodmFyIGE9MCxoPTAsZj0wO2Y8NztmKyspe2lmKDEmbyl7dmFyIHA9KDE8PGYpLTE7cDwzMj9oXj0xPDxwOmFePTE8PHAtMzJ9MTI4Jm8/bz1vPDwxXjExMzpvPDw9MX1sW2ldPXMuY3JlYXRlKGEsaCl9fSgpO3ZhciBoPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8MjU7dCsrKWhbdF09cy5jcmVhdGUoKX0oKTt2YXIgZj1hLlNIQTM9aS5leHRlbmQoe2NmZzppLmNmZy5leHRlbmQoe291dHB1dExlbmd0aDo1MTJ9KSxfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9zdGF0ZT1bXSxlPTA7ZTwyNTtlKyspdFtlXT1uZXcgcy5pbml0O3RoaXMuYmxvY2tTaXplPSgxNjAwLTIqdGhpcy5jZmcub3V0cHV0TGVuZ3RoKS8zMn0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX3N0YXRlLG49dGhpcy5ibG9ja1NpemUvMixvPTA7bzxuO28rKyl7dmFyIGk9dFtlKzIqb10scz10W2UrMipvKzFdO2k9MTY3MTE5MzUmKGk8PDh8aT4+PjI0KXw0Mjc4MjU1MzYwJihpPDwyNHxpPj4+OCkscz0xNjcxMTkzNSYoczw8OHxzPj4+MjQpfDQyNzgyNTUzNjAmKHM8PDI0fHM+Pj44KSwoQT1yW29dKS5oaWdoXj1zLEEubG93Xj1pfWZvcih2YXIgYT0wO2E8MjQ7YSsrKXtmb3IodmFyIGY9MDtmPDU7ZisrKXtmb3IodmFyIHA9MCxkPTAsbT0wO208NTttKyspcF49KEE9cltmKzUqbV0pLmhpZ2gsZF49QS5sb3c7dmFyIHk9aFtmXTt5LmhpZ2g9cCx5Lmxvdz1kfWZvcihmPTA7Zjw1O2YrKyl7dmFyIGc9aFsoZis0KSU1XSxfPWhbKGYrMSklNV0sdj1fLmhpZ2gsdz1fLmxvdztmb3IocD1nLmhpZ2heKHY8PDF8dz4+PjMxKSxkPWcubG93Xih3PDwxfHY+Pj4zMSksbT0wO208NTttKyspKEE9cltmKzUqbV0pLmhpZ2hePXAsQS5sb3dePWR9Zm9yKHZhciBiPTE7YjwyNTtiKyspe3ZhciBCPShBPXJbYl0pLmhpZ2gsRj1BLmxvdyxOPWNbYl07TjwzMj8ocD1CPDxOfEY+Pj4zMi1OLGQ9Rjw8TnxCPj4+MzItTik6KHA9Rjw8Ti0zMnxCPj4+NjQtTixkPUI8PE4tMzJ8Rj4+PjY0LU4pO3ZhciBrPWhbdVtiXV07ay5oaWdoPXAsay5sb3c9ZH12YXIgeD1oWzBdLFM9clswXTtmb3IoeC5oaWdoPVMuaGlnaCx4Lmxvdz1TLmxvdyxmPTA7Zjw1O2YrKylmb3IobT0wO208NTttKyspe3ZhciBBPXJbYj1mKzUqbV0sTz1oW2JdLFQ9aFsoZisxKSU1KzUqbV0sUD1oWyhmKzIpJTUrNSptXTtBLmhpZ2g9Ty5oaWdoXn5ULmhpZ2gmUC5oaWdoLEEubG93PU8ubG93Xn5ULmxvdyZQLmxvd31BPXJbMF07dmFyIE09bFthXTtBLmhpZ2hePU0uaGlnaCxBLmxvd149TS5sb3d9fSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2RhdGEscj1lLndvcmRzLG49KHRoaXMuX25EYXRhQnl0ZXMsOCplLnNpZ0J5dGVzKSxpPTMyKnRoaXMuYmxvY2tTaXplO3Jbbj4+PjVdfD0xPDwyNC1uJTMyLHJbKHQuY2VpbCgobisxKS9pKSppPj4+NSktMV18PTEyOCxlLnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgcz10aGlzLl9zdGF0ZSxhPXRoaXMuY2ZnLm91dHB1dExlbmd0aC84LGM9YS84LHU9W10sbD0wO2w8YztsKyspe3ZhciBoPXNbbF0sZj1oLmhpZ2gscD1oLmxvdztmPTE2NzExOTM1JihmPDw4fGY+Pj4yNCl8NDI3ODI1NTM2MCYoZjw8MjR8Zj4+PjgpLHA9MTY3MTE5MzUmKHA8PDh8cD4+PjI0KXw0Mjc4MjU1MzYwJihwPDwyNHxwPj4+OCksdS5wdXNoKHApLHUucHVzaChmKX1yZXR1cm4gbmV3IG8uaW5pdCh1LGEpfSxjbG9uZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1pLmNsb25lLmNhbGwodGhpcyksZT10Ll9zdGF0ZT10aGlzLl9zdGF0ZS5zbGljZSgwKSxyPTA7cjwyNTtyKyspZVtyXT1lW3JdLmNsb25lKCk7cmV0dXJuIHR9fSk7ZS5TSEEzPWkuX2NyZWF0ZUhlbHBlcihmKSxlLkhtYWNTSEEzPWkuX2NyZWF0ZUhtYWNIZWxwZXIoZil9KE1hdGgpLG4uU0hBMyl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoOCksbz1yKDMpLGk9cigyMikscz1yKDIzKTshZnVuY3Rpb24odCl7dC5ldGhfZ2V0QmFsYW5jZT1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldEJhbGFuY2VcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEFkZHJlc3NGb3JtYXR0ZXIsbi5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmlnTnVtYmVyRm9ybWF0dGVyfSksdC5ldGhfZ2V0U3RvcmFnZUF0PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0U3RvcmFnZUF0XCIscGFyYW1zOjMsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG8udG9IZXgsbi5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5ldGhfZ2V0Q29kZT1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldENvZGVcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEFkZHJlc3NGb3JtYXR0ZXIsbi5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5ldGhfZ2V0QmxvY2tCeUhhc2g9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRCbG9ja0J5SGFzaFwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsZnVuY3Rpb24odCl7cmV0dXJuISF0fV0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmxvY2tGb3JtYXR0ZXJ9KSx0LmV0aF9nZXRCbG9ja0J5TnVtYmVyPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0QmxvY2tCeU51bWJlclwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsZnVuY3Rpb24odCl7cmV0dXJuISF0fV0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmxvY2tGb3JtYXR0ZXJ9KSx0LmV0aF9nZXRVbmNsZUJ5QmxvY2tIYXNoQW5kSW5kZXg9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRVbmNsZUJ5QmxvY2tIYXNoQW5kSW5kZXhcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyLG8udG9IZXhdLG91dHB1dEZvcm1hdHRlcjpuLm91dHB1dEJsb2NrRm9ybWF0dGVyfSksdC5ldGhfZ2V0VW5jbGVCeUJsb2NrTnVtYmVyQW5kSW5kZXg9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRVbmNsZUJ5QmxvY2tOdW1iZXJBbmRJbmRleFwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsby50b0hleF0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmxvY2tGb3JtYXR0ZXJ9KSx0LmV0aF9nZXRCbG9ja1RyYW5zYWN0aW9uQ291bnRCeUhhc2g9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRCbG9ja1RyYW5zYWN0aW9uQ291bnRCeUhhc2hcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9nZXRCbG9ja1RyYW5zYWN0aW9uQ291bnRCeU51bWJlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5TnVtYmVyXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tIYXNoPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tIYXNoXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tOdW1iZXI9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRVbmNsZUNvdW50QnlCbG9ja051bWJlclwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX2dldFRyYW5zYWN0aW9uQnlIYXNoPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2hcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRUcmFuc2FjdGlvbkZvcm1hdHRlcn0pLHQuZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleFwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsby50b0hleF0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0VHJhbnNhY3Rpb25Gb3JtYXR0ZXJ9KSx0LmV0aF9nZXRUcmFuc2FjdGlvbkJ5QmxvY2tOdW1iZXJBbmRJbmRleD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja051bWJlckFuZEluZGV4XCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcixvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRUcmFuc2FjdGlvbkZvcm1hdHRlcn0pLHQuZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdFwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpuLm91dHB1dFRyYW5zYWN0aW9uUmVjZWlwdEZvcm1hdHRlcn0pLHQuZXRoX2dldFRyYW5zYWN0aW9uQ291bnQ9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRUcmFuc2FjdGlvbkNvdW50XCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG4uaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX3NlbmRSYXdUcmFuc2FjdGlvbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX3NlbmRSYXdUcmFuc2FjdGlvblwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltudWxsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LndlYjNfc2hhMz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwid2ViM19zaGEzXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W251bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX3NlbmRUcmFuc2FjdGlvbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX3NlbmRUcmFuc2FjdGlvblwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0VHJhbnNhY3Rpb25Gb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX3NpZ249bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9zaWduXCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG51bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX2NhbGw9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9jYWxsXCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRDYWxsRm9ybWF0dGVyLG4uaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX2VzdGltYXRlR2FzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZXN0aW1hdGVHYXNcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dENhbGxGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX3N1Ym1pdFdvcms9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9zdWJtaXRXb3JrXCIscGFyYW1zOjMsb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5ldGhfZ2V0V29yaz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFdvcmtcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6by50b0FycmF5fSksdC5ldGhfY29pbmJhc2U9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcImV0aF9jb2luYmFzZVwiLG91dHB1dEZvcm1hdHRlcjpvLnRvQWRkcmVzc30pLHQuZXRoX21pbmluZz1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwiZXRoX21pbmluZ1wiLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQuZXRoX2hhc2hyYXRlPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfaGFzaHJhdGVcIixvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9zeW5jaW5nPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfc3luY2luZ1wiLG91dHB1dEZvcm1hdHRlcjpuLm91dHB1dFN5bmNpbmdGb3JtYXR0ZXJ9KSx0LmV0aF9nYXNQcmljZT1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwiZXRoX2dhc1ByaWNlXCIsb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmlnTnVtYmVyRm9ybWF0dGVyfSksdC5ldGhfYWNjb3VudHM9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcImV0aF9hY2NvdW50c1wiLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LmV0aF9ibG9ja051bWJlcj1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwiZXRoX2Jsb2NrTnVtYmVyXCIsb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfcHJvdG9jb2xWZXJzaW9uPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfcHJvdG9jb2xWZXJzaW9uXCIsb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC53ZWIzX2NsaWVudFZlcnNpb249bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcIndlYjNfY2xpZW50VmVyc2lvblwiLG91dHB1dEZvcm1hdHRlcjpvLnRvU3RyaW5nfSksdC5uZXRfdmVyc2lvbj1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwibmV0X3ZlcnNpb25cIixvdXRwdXRGb3JtYXR0ZXI6by50b1N0cmluZ30pLHQuc2hoX3ZlcnNpb249bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF92ZXJzaW9uXCIscGFyYW1zOjAsb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5zaGhfcG9zdD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX3Bvc3RcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbnVsbF0sb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5wZXJzb25hbF9uZXdBY2NvdW50PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF9uZXdBY2NvdW50XCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W251bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvQWRkcmVzc30pLHQucGVyc29uYWxfaW1wb3J0UmF3S2V5PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF9pbXBvcnRSYXdLZXlcIixwYXJhbXM6MixvdXRwdXRGb3JtYXR0ZXI6by50b0FkZHJlc3N9KSx0LnBlcnNvbmFsX3NpZ249bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInBlcnNvbmFsX3NpZ25cIixwYXJhbXM6MyxpbnB1dEZvcm1hdHRlcjpbbnVsbCxuLmlucHV0QWRkcmVzc0Zvcm1hdHRlcixudWxsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LnBlcnNvbmFsX2VjUmVjb3Zlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwicGVyc29uYWxfZWNSZWNvdmVyXCIscGFyYW1zOjIsb3V0cHV0Rm9ybWF0dGVyOm8udG9BZGRyZXNzfSksdC5wZXJzb25hbF91bmxvY2tBY2NvdW50PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF91bmxvY2tBY2NvdW50XCIscGFyYW1zOjMsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG51bGwsby50b051bGxEZWNpbWFsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LnBlcnNvbmFsX3NlbmRUcmFuc2FjdGlvbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwicGVyc29uYWxfc2VuZFRyYW5zYWN0aW9uXCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRUcmFuc2FjdGlvbkZvcm1hdHRlcixudWxsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LnBlcnNvbmFsX2xvY2tBY2NvdW50PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF9sb2NrQWNjb3VudFwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QWRkcmVzc0Zvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5wZXJzb25hbF9saXN0QWNjb3VudHM9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcInBlcnNvbmFsX2xpc3RBY2NvdW50c1wiLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0Lm5ldF9saXN0ZW5pbmc9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcIm5ldF9saXN0ZW5pbmdcIixvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0Lm5ldF9wZWVyQ291bnQ9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcIm5ldF9wZWVyQ291bnRcIixvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9uZXdGaWx0ZXI9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9uZXdGaWx0ZXJcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6by50b0hleH0pLHQuZXRoX2dldExvZ3M9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRMb2dzXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W28udG9IZXhdLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LmV0aF9uZXdCbG9ja0ZpbHRlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX25ld0Jsb2NrRmlsdGVyXCIscGFyYW1zOjAsb3V0cHV0Rm9ybWF0dGVyOm8udG9IZXh9KSx0LmV0aF9uZXdQZW5kaW5nVHJhbnNhY3Rpb25GaWx0ZXI9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9uZXdQZW5kaW5nVHJhbnNhY3Rpb25GaWx0ZXJcIixwYXJhbXM6MCxvdXRwdXRGb3JtYXR0ZXI6by50b0hleH0pLHQuZXRoX3VuaW5zdGFsbEZpbHRlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX3VuaW5zdGFsbEZpbHRlclwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LmV0aF9nZXRGaWx0ZXJMb2dzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0RmlsdGVyTG9nc1wiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6by50b0FycmF5fSksdC5ldGhfZ2V0RmlsdGVyQ2hhbmdlcz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldEZpbHRlckNoYW5nZXNcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbby50b0hleF0sb3V0cHV0Rm9ybWF0dGVyOm8udG9BcnJheX0pLHQuZXRoX3N1Ym1pdEhhc2hyYXRlPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfc3VibWl0SGFzaHJhdGVcIixwYXJhbXM6MixvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LnNoaF9uZXdJZGVudGl0eT1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX25ld0lkZW50aXR5XCIscGFyYW1zOjAsb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5zaGhfaGFzSWRlbnRpdHk9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF9oYXNJZGVudGl0eVwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQuc2hoX25ld0dyb3VwPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfbmV3R3JvdXBcIixwYXJhbXM6MCxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LnNoaF9hZGRUb0dyb3VwPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfYWRkVG9Hcm91cFwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQuc2hoX25ld0ZpbHRlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX25ld0ZpbHRlclwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvSGV4fSksdC5zaGhfdW5pbnN0YWxsRmlsdGVyPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfdW5pbnN0YWxsRmlsdGVyXCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5zaGhfZ2V0TG9ncz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX2dldExvZ3NcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6by50b0FycmF5fSksdC5zaGhfZ2V0RmlsdGVyTWVzc2FnZXM9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF9nZXRGaWx0ZXJNZXNzYWdlc1wiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LnNoaF9nZXRGaWx0ZXJDaGFuZ2VzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfZ2V0RmlsdGVyQ2hhbmdlc1wiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LnNoaF9nZXRNZXNzYWdlcz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX2dldE1lc3NhZ2VzXCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm8udG9BcnJheX0pfShlLmV0aHx8KGUuZXRoPXt9KSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMTMpO2UuTWV0aG9kPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuY2FsbE5hbWU9dC5jYWxsTmFtZSx0aGlzLnBhcmFtcz10LnBhcmFtc3x8MCx0aGlzLmlucHV0Rm9ybWF0dGVyPXQuaW5wdXRGb3JtYXR0ZXJ8fG51bGwsdGhpcy5vdXRwdXRGb3JtYXR0ZXI9dC5vdXRwdXRGb3JtYXR0ZXIsdGhpcy5yZXF1ZXN0TWFuYWdlcj1udWxsfXZhbGlkYXRlQXJncyh0KXtpZih0Lmxlbmd0aCE9PXRoaXMucGFyYW1zKXRocm93IG4uSW52YWxpZE51bWJlck9mUlBDUGFyYW1zKHRoaXMuY2FsbE5hbWUsdC5sZW5ndGgsdGhpcy5wYXJhbXMpfWZvcm1hdElucHV0KHQpe3JldHVybiB0aGlzLmlucHV0Rm9ybWF0dGVyP3RoaXMuaW5wdXRGb3JtYXR0ZXIubWFwKGZ1bmN0aW9uKGUscil7cmV0dXJuIGU/ZSh0W3JdKTp0W3JdfSk6dH1mb3JtYXRPdXRwdXQodCl7cmV0dXJuIG51bGwhPT10P3RoaXMub3V0cHV0Rm9ybWF0dGVyKHQpOm51bGx9dG9QYXlsb2FkKHQpe2xldCBlPXRoaXMuZm9ybWF0SW5wdXQodCk7cmV0dXJuIHRoaXMudmFsaWRhdGVBcmdzKGUpLHttZXRob2Q6dGhpcy5jYWxsTmFtZSxwYXJhbXM6ZX19YXN5bmMgZXhlY3V0ZSh0LC4uLmUpe2xldCByPXRoaXMudG9QYXlsb2FkKGUpO2lmKCF0KXRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgUmVxdWVzdE1hbmFnZXIgaW4gbWV0aG9kI2V4ZWNcIik7Y29uc3Qgbj1hd2FpdCB0LnNlbmRBc3luYyhyKTtyZXR1cm4gdGhpcy5mb3JtYXRPdXRwdXQobil9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2UuUHJvcGVydHk9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5nZXR0ZXI9dC5nZXR0ZXIsdGhpcy5vdXRwdXRGb3JtYXR0ZXI9dC5vdXRwdXRGb3JtYXR0ZXJ9Zm9ybWF0T3V0cHV0KHQpe3JldHVybiB0aGlzLm91dHB1dEZvcm1hdHRlcih0KX1hc3luYyBleGVjdXRlKHQpe2NvbnN0IGU9YXdhaXQgdC5zZW5kQXN5bmMoe21ldGhvZDp0aGlzLmdldHRlcixwYXJhbXM6W119KTtyZXR1cm4gdGhpcy5mb3JtYXRPdXRwdXQoZSl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cig2MCksbz1yKDI2KSxpPXIoNzApO2UuQ29udHJhY3Q9Y2xhc3N7Y29uc3RydWN0b3IodCxlLHIpe3ZhciBzO3RoaXMucmVxdWVzdE1hbmFnZXI9dCx0aGlzLmFiaT1lLHRoaXMuYWRkcmVzcz1yLHRoaXMuZXZlbnRzPXt9LHRoaXMudHJhbnNhY3Rpb25IYXNoPW51bGwsdGhpcy50cmFuc2FjdGlvbkhhc2g9bnVsbCx0aGlzLmFkZHJlc3M9cix0aGlzLmFiaT1lLChzPXRoaXMpLmFiaS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuXCJmdW5jdGlvblwiPT09dC50eXBlfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbi5Tb2xpZGl0eUZ1bmN0aW9uKHMucmVxdWVzdE1hbmFnZXIsdCxzLmFkZHJlc3MpfSkuZm9yRWFjaChmdW5jdGlvbih0KXt0LmF0dGFjaFRvQ29udHJhY3Qocyl9KSxmdW5jdGlvbih0KXtsZXQgZT10LmFiaS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuXCJldmVudFwiPT09dC50eXBlfSk7bmV3IGkuQWxsU29saWRpdHlFdmVudHModC5yZXF1ZXN0TWFuYWdlcixlLHQuYWRkcmVzcykuYXR0YWNoVG9Db250cmFjdCh0KSxlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbmV3IG8uU29saWRpdHlFdmVudCh0LnJlcXVlc3RNYW5hZ2VyLGUsdC5hZGRyZXNzKX0pLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5hdHRhY2hUb0NvbnRyYWN0KHQpfSl9KHRoaXMpfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMyk7ZS5Tb2xpZGl0eVBhcmFtPWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5vZmZzZXQ9dm9pZCAwLHRoaXMudmFsdWU9dHx8XCJcIix0aGlzLm9mZnNldD1lfWlzRHluYW1pYygpe3JldHVybiB2b2lkIDAhPT10aGlzLm9mZnNldH1vZmZzZXRBc0J5dGVzKCl7cmV0dXJuIHRoaXMuaXNEeW5hbWljKCk/bi5wYWRMZWZ0KG4udG9Ud29zQ29tcGxlbWVudCh0aGlzLm9mZnNldCkudG9TdHJpbmcoMTYpLDY0KTpcIlwifXN0YXRpY1BhcnQoKXtyZXR1cm4gdGhpcy5pc0R5bmFtaWMoKT90aGlzLm9mZnNldEFzQnl0ZXMoKTp0aGlzLnZhbHVlfWR5bmFtaWNQYXJ0KCl7cmV0dXJuIHRoaXMuaXNEeW5hbWljKCk/dGhpcy52YWx1ZTpcIlwifWVuY29kZSgpe3JldHVybiB0aGlzLnN0YXRpY1BhcnQoKSt0aGlzLmR5bmFtaWNQYXJ0KCl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigzKSxvPXIoOCksaT1yKDE1KSxzPXIoMjcpO2UuU29saWRpdHlFdmVudD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUscil7dGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMuYWRkcmVzcz1yLHRoaXMuX2Fub255bW91cz0hMSx0aGlzLl9wYXJhbXM9ZS5pbnB1dHMsdGhpcy5fbmFtZT1uLnRyYW5zZm9ybVRvRnVsbE5hbWUoZSksdGhpcy5fYW5vbnltb3VzPWUuYW5vbnltb3VzfXR5cGVzKHQpe3JldHVybiB0aGlzLl9wYXJhbXMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmluZGV4ZWQ9PT10fSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KX1kaXNwbGF5TmFtZSgpe3JldHVybiBuLmV4dHJhY3REaXNwbGF5TmFtZSh0aGlzLl9uYW1lKX10eXBlTmFtZSgpe3JldHVybiBuLmV4dHJhY3RUeXBlTmFtZSh0aGlzLl9uYW1lKXx8XCJ2b2lkXCJ9c2lnbmF0dXJlKCl7cmV0dXJuIG4uc2hhMyh0aGlzLl9uYW1lKX1lbmNvZGUodD17fSxlPXt9KXtsZXQgcj17dG9waWNzOltdLGFkZHJlc3M6dGhpcy5hZGRyZXNzfTtbXCJmcm9tQmxvY2tcIixcInRvQmxvY2tcIl0uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT1lW3RdfSkuZm9yRWFjaChmdW5jdGlvbih0KXtyW3RdPW8uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcihlW3RdKX0pLHRoaXMuX2Fub255bW91c3x8ci50b3BpY3MucHVzaChcIjB4XCIrdGhpcy5zaWduYXR1cmUoKSk7bGV0IHM9dGhpcy5fcGFyYW1zLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hMD09PXQuaW5kZXhlZH0pLm1hcChmdW5jdGlvbihlKXtsZXQgcj10W2UubmFtZV07cmV0dXJuIG51bGw9PXI/bnVsbDpuLmlzQXJyYXkocik/ci5tYXAoZnVuY3Rpb24odCl7cmV0dXJuXCIweFwiK2kuY29kZXIuZW5jb2RlUGFyYW0oZS50eXBlLHQpfSk6XCIweFwiK2kuY29kZXIuZW5jb2RlUGFyYW0oZS50eXBlLHIpfSk7cmV0dXJuIHIudG9waWNzPXIudG9waWNzLmNvbmNhdChzKSxyfWRlY29kZSh0KXt0LmRhdGE9dC5kYXRhfHxcIlwiLHQudG9waWNzPXQudG9waWNzfHxbXTtsZXQgZT0odGhpcy5fYW5vbnltb3VzP3QudG9waWNzOnQudG9waWNzLnNsaWNlKDEpKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoMil9KS5qb2luKFwiXCIpLHI9aS5jb2Rlci5kZWNvZGVQYXJhbXModGhpcy50eXBlcyghMCksZSksbj10LmRhdGEuc2xpY2UoMikscz1pLmNvZGVyLmRlY29kZVBhcmFtcyh0aGlzLnR5cGVzKCExKSxuKSxhPW8ub3V0cHV0TG9nRm9ybWF0dGVyKHQpO3JldHVybiBhLmV2ZW50PXRoaXMuZGlzcGxheU5hbWUoKSxhLmFkZHJlc3M9dC5hZGRyZXNzLGEuYXJncz10aGlzLl9wYXJhbXMucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZS5uYW1lXT1lLmluZGV4ZWQ/ci5zaGlmdCgpOnMuc2hpZnQoKSx0fSx7fSksZGVsZXRlIGEuZGF0YSxkZWxldGUgYS50b3BpY3MsYX1hc3luYyBleGVjdXRlKHQsZSl7bGV0IHI9dGhpcy5lbmNvZGUodCxlKSxuPXRoaXMuZGVjb2RlLmJpbmQodGhpcyk7cmV0dXJuIG5ldyBzLkV0aEZpbHRlcih0aGlzLnJlcXVlc3RNYW5hZ2VyLHIsbil9YXR0YWNoVG9Db250cmFjdCh0KXtsZXQgZT10aGlzLmV4ZWN1dGUuYmluZCh0aGlzKSxyPXRoaXMuZGlzcGxheU5hbWUoKTt0LmV2ZW50c1tyXXx8KHQuZXZlbnRzW3JdPWUpLHQuZXZlbnRzW3JdW3RoaXMudHlwZU5hbWUoKV09dGhpcy5leGVjdXRlLmJpbmQodGhpcyx0KX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDMpLG89cig4KSxpPXIoMTQpLHM9cig5KTtmdW5jdGlvbiBhKHQpe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7Y29uc3QgZT1TdHJpbmcodCkudG9TdHJpbmcoKTtyZXR1cm4gMD09PWUuaW5kZXhPZihcIjB4XCIpP2U6bi5mcm9tVXRmOChlKX1jbGFzcyBje2NvbnN0cnVjdG9yKHQpe3RoaXMucmVxdWVzdE1hbmFnZXI9dCx0aGlzLmlzU3RhcnRlZD0hMSx0aGlzLmlzRGlzcG9zZWQ9ITEsdGhpcy5maWx0ZXJJZD1zLmZ1dHVyZSgpLHRoaXMuY2FsbGJhY2tzPVtdLHRoaXMuc3RvcFNlbWFwaG9yZT1zLmZ1dHVyZSgpfWFzeW5jIHdhdGNoKHQpe2lmKHRoaXMuaXNEaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZmlsdGVyIHdhcyBkaXNwb3NlZFwiKTt0JiYodGhpcy5jYWxsYmFja3MucHVzaCh0KSx0aGlzLmlzU3RhcnRlZHx8YXdhaXQgdGhpcy5zdGFydCgpKX1hc3luYyBzdGFydCgpe2lmKHRoaXMuaXNEaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZmlsdGVyIHdhcyBkaXNwb3NlZFwiKTtpZighdGhpcy5pc1N0YXJ0ZWQpe3RoaXMuaXNTdGFydGVkPSEwO3RyeXtjb25zdCB0PWF3YWl0IHRoaXMuZ2V0TmV3RmlsdGVyKCk7aWYoIXQpdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGNyZWF0ZSBhIGZpbHRlciwgcmVzcG9uc2U6IFwiK0pTT04uc3RyaW5naWZ5KHQpKTt0aGlzLmZpbHRlcklkLnJlc29sdmUodCl9Y2F0Y2godCl7dGhyb3cgdH10aGlzLnN0b3BTZW1hcGhvcmU9cy5mdXR1cmUoKSxhd2FpdCB0aGlzLnBvbGwoKX19YXN5bmMgc3RvcCgpe2lmKCF0aGlzLmlzU3RhcnRlZClyZXR1cm47aWYodGhpcy5pc0Rpc3Bvc2VkKXJldHVybjt0aGlzLmlzRGlzcG9zZWQ9ITA7Y29uc3QgdD1hd2FpdCB0aGlzLmZpbHRlcklkO2lmKHRoaXMuaXNTdGFydGVkPSExLHRoaXMuc3RvcFNlbWFwaG9yZSYmYXdhaXQgdGhpcy5zdG9wU2VtYXBob3JlLCEwIT09YXdhaXQgdGhpcy51bmluc3RhbGwoKSl0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IHN0b3AgdGhlIGV0aCBmaWx0ZXI6ICR7dH1gKX1hc3luYyBwb2xsKCl7aWYodGhpcy5pc1N0YXJ0ZWQpe2lmKHRoaXMuY2FsbGJhY2tzLmxlbmd0aCl7Y29uc3QgdD1hd2FpdCB0aGlzLmdldENoYW5nZXMoKTt0aGlzLmNhbGxiYWNrcy5mb3JFYWNoKGU9Pnt0aGlzLmZvcm1hdHRlcj90LmZvckVhY2godD0+e2UodGhpcy5mb3JtYXR0ZXIodCkpfSk6dC5mb3JFYWNoKHQ9PmUodCkpfSl9dGhpcy5zdG9wU2VtYXBob3JlLnJlc29sdmUoMSksdGhpcy5pc1N0YXJ0ZWQmJih0aGlzLnN0b3BTZW1hcGhvcmU9cy5mdXR1cmUoKSxzZXRUaW1lb3V0KCh0PSgoKT0+dGhpcy5wb2xsKCkpLGZ1bmN0aW9uKCl7dCgpLmNhdGNoKHQ9PmNvbnNvbGUuZXJyb3IodCkpfSksaS5FVEhfUE9MTElOR19USU1FT1VUKSl9ZWxzZSB0aGlzLnN0b3BTZW1hcGhvcmUucmVzb2x2ZSgxKTt2YXIgdH19ZS5BYnN0cmFjdEZpbHRlcj1jO2UuU0hIRmlsdGVyPWNsYXNzIGV4dGVuZHMgY3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQpLHRoaXMucmVxdWVzdE1hbmFnZXI9dCx0aGlzLm9wdGlvbnM9ZSx0aGlzLm9wdGlvbnM9dGhpcy5vcHRpb25zfHx7dG9waWNzOltdfSx0aGlzLm9wdGlvbnMudG9waWNzPXRoaXMub3B0aW9ucy50b3BpY3N8fFtdLHRoaXMub3B0aW9ucy50b3BpY3M9dGhpcy5vcHRpb25zLnRvcGljcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KSx0aGlzLm9wdGlvbnM9e3RvcGljczp0aGlzLm9wdGlvbnMudG9waWNzLHRvOnRoaXMub3B0aW9ucy50b319YXN5bmMgZ2V0TWVzc2FnZXMoKXtjb25zdCB0PWF3YWl0IHRoaXMuZmlsdGVySWQ7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuc2hoX2dldE1lc3NhZ2VzKHQpfWFzeW5jIGdldE5ld0ZpbHRlcigpe3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnNoaF9uZXdGaWx0ZXIodGhpcy5vcHRpb25zKX1hc3luYyBnZXRDaGFuZ2VzKCl7Y29uc3QgdD1hd2FpdCB0aGlzLmZpbHRlcklkO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnNoaF9nZXRGaWx0ZXJDaGFuZ2VzKHQpfWFzeW5jIHVuaW5zdGFsbCgpe2NvbnN0IHQ9YXdhaXQgdGhpcy5maWx0ZXJJZDtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5zaGhfdW5pbnN0YWxsRmlsdGVyKHQpfX07Y2xhc3MgdSBleHRlbmRzIGN7Y29uc3RydWN0b3IodCxlLHI9KHQ9PnQpKXtzdXBlcih0KSx0aGlzLnJlcXVlc3RNYW5hZ2VyPXQsdGhpcy5vcHRpb25zPWUsdGhpcy5mb3JtYXR0ZXI9cix0aGlzLm9wdGlvbnM9dGhpcy5vcHRpb25zfHx7fSx0aGlzLm9wdGlvbnMudG9waWNzPXRoaXMub3B0aW9ucy50b3BpY3N8fFtdLHRoaXMub3B0aW9ucy50b3BpY3M9dGhpcy5vcHRpb25zLnRvcGljcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KSx0aGlzLm9wdGlvbnM9e3RvcGljczp0aGlzLm9wdGlvbnMudG9waWNzLGFkZHJlc3M6dGhpcy5vcHRpb25zLmFkZHJlc3M/dGhpcy5vcHRpb25zLmFkZHJlc3M6dm9pZCAwLGZyb21CbG9jazpcIm51bWJlclwiPT10eXBlb2YgdGhpcy5vcHRpb25zLmZyb21CbG9ja3x8XCJzdHJpbmdcIj09dHlwZW9mIHRoaXMub3B0aW9ucy5mcm9tQmxvY2s/by5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyKHRoaXMub3B0aW9ucy5mcm9tQmxvY2spOlwibGF0ZXN0XCIsdG9CbG9jazpcIm51bWJlclwiPT10eXBlb2YgdGhpcy5vcHRpb25zLnRvQmxvY2t8fFwic3RyaW5nXCI9PXR5cGVvZiB0aGlzLm9wdGlvbnMudG9CbG9jaz9vLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIodGhpcy5vcHRpb25zLnRvQmxvY2spOlwibGF0ZXN0XCJ9fWFzeW5jIGdldExvZ3MoKXt0aGlzLmlzU3RhcnRlZHx8YXdhaXQgdGhpcy5zdGFydCgpO2NvbnN0IHQ9YXdhaXQgdGhpcy5maWx0ZXJJZDtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfZ2V0RmlsdGVyTG9ncyh0KX1hc3luYyBnZXROZXdGaWx0ZXIoKXtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfbmV3RmlsdGVyKHRoaXMub3B0aW9ucyl9YXN5bmMgZ2V0Q2hhbmdlcygpe2NvbnN0IHQ9YXdhaXQgdGhpcy5maWx0ZXJJZDtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfZ2V0RmlsdGVyQ2hhbmdlcyh0KX1hc3luYyB1bmluc3RhbGwoKXtjb25zdCB0PWF3YWl0IHRoaXMuZmlsdGVySWQ7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuZXRoX3VuaW5zdGFsbEZpbHRlcih0KX19ZS5FdGhGaWx0ZXI9dTtlLkV0aFBlbmRpbmdUcmFuc2FjdGlvbkZpbHRlcj1jbGFzcyBleHRlbmRzIHV7Y29uc3RydWN0b3IodCl7c3VwZXIodCxudWxsLHQ9PnQpfWFzeW5jIGdldE5ld0ZpbHRlcigpe3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLmV0aF9uZXdQZW5kaW5nVHJhbnNhY3Rpb25GaWx0ZXIoKX19O2UuRXRoQmxvY2tGaWx0ZXI9Y2xhc3MgZXh0ZW5kcyB1e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQsbnVsbCx0PT50KX1hc3luYyBnZXROZXdGaWx0ZXIoKXtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfbmV3QmxvY2tGaWx0ZXIoKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDI5KTtlLkhUVFBQcm92aWRlcj1uLkhUVFBQcm92aWRlcjtjb25zdCBvPXIoMzApO2UuV2ViU29ja2V0UHJvdmlkZXI9by5XZWJTb2NrZXRQcm92aWRlcixmdW5jdGlvbih0KXtmb3IodmFyIHIgaW4gdCllLmhhc093blByb3BlcnR5KHIpfHwoZVtyXT10W3JdKX0ocigzKSk7dmFyIGk9cig1NSk7ZS5SZXF1ZXN0TWFuYWdlcj1pLlJlcXVlc3RNYW5hZ2VyO3ZhciBzPXIoMjQpO2UuQ29udHJhY3Q9cy5Db250cmFjdDt2YXIgYT1yKDcxKTtlLkNvbnRyYWN0RmFjdG9yeT1hLkNvbnRyYWN0RmFjdG9yeTt2YXIgYz1yKDIyKTtlLk1ldGhvZD1jLk1ldGhvZDt2YXIgdT1yKDIzKTtlLlByb3BlcnR5PXUuUHJvcGVydHk7dmFyIGw9cigyMSk7ZS5ldGg9bC5ldGh9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMTYpO2UuSFRUUFByb3ZpZGVyPWNsYXNze2NvbnN0cnVjdG9yKHQsZT17fSl7dGhpcy5ob3N0PXQsdGhpcy5vcHRpb25zPWUsdGhpcy5kZWJ1Zz0hMSx0aGlzLmhvc3Q9dHx8XCJodHRwOi8vbG9jYWxob3N0Ojg1NDVcIn1zZW5kKCl7dGhyb3cgbmV3IEVycm9yKFwiU3luYyByZXF1ZXN0cyBhcmUgZGVwcmVjYXRlZFwiKX1zZW5kQXN5bmModCxlKXt0cnl7bGV0IHI9bnVsbDtpZihyPXQgaW5zdGFuY2VvZiBBcnJheT90Lm1hcCh0PT5uLnRvUlBDKHQpKTpuLnRvUlBDKHQpLFwidW5kZWZpbmVkXCI9PXR5cGVvZiBmZXRjaCl0aHJvdyBuZXcgRXJyb3IoXCJUaGVyZSBpcyBubyBnbG9iYWwgZmV0Y2ggb2JqZWN0LiBQbGVhc2UgaW5zdGFsbCBhbmQgaW1wb3J0IGlzb21vcnBoaWMtZmV0Y2hcIik7Y29uc3Qgbz17Ym9keTpKU09OLnN0cmluZ2lmeShyKSxtZXRob2Q6XCJQT1NUXCIsaGVhZGVyczpPYmplY3QuYXNzaWduKHt9LHRoaXMub3B0aW9ucy5oZWFkZXJzLHtcIkNvbnRlbnQtVHlwZVwiOlwiYXBwbGljYXRpb24vanNvblwifSl9O3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKFwiU0VORCA+PiBcIitvLmJvZHkpLGZldGNoKHRoaXMuaG9zdCxvKS50aGVuKGFzeW5jIHQ9PntpZih0Lm9rKXtjb25zdCByPWF3YWl0IHQuanNvbigpO3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKFwiUkVDViA8PCBcIitKU09OLnN0cmluZ2lmeShyKSksci5lcnJvcj9lKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKHIuZXJyb3IuanNvbnx8ci5lcnJvciksci5lcnJvcikpOmUobnVsbCxyKX1lbHNlIHRoaXMuZGVidWcmJmNvbnNvbGUubG9nKFwiRVJSIDw8IFwiK0pTT04uc3RyaW5naWZ5KHQpKSxlKG5ldyBFcnJvcihcIkV4dGVybmFsIGVycm9yLiByZXNwb25zZSBjb2RlOiBcIit0LnN0YXR1cykpfSx0PT57dGhpcy5kZWJ1ZyYmY29uc29sZS5sb2coXCJFUlIgPDwgXCIrSlNPTi5zdHJpbmdpZnkodCkpLGUodCl9KX1jYXRjaCh0KXt0aGlzLmRlYnVnJiZjb25zb2xlLmxvZyhcIkVSUiA8PCBcIitKU09OLnN0cmluZ2lmeSh0KSksZSh0KX19fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigxNiksbz1yKDkpO2NsYXNzIGl7Y29uc3RydWN0b3IodCxlPXt9KXt0aGlzLnVybD10LHRoaXMub3B0aW9ucz1lLHRoaXMuaXNEaXNwb3NlZD0hMSx0aGlzLnJlc3BvbnNlQ2FsbGJhY2tzPW5ldyBNYXAsdGhpcy5ub3RpZmljYXRpb25DYWxsYmFja3M9bmV3IFNldCx0aGlzLmRlYnVnPSExLHRoaXMubGFzdENodW5rPVwiXCIsdGhpcy5jb25uZWN0KCl9ZGlzcG9zZSgpe3RoaXMuaXNEaXNwb3NlZD0hMDtjb25zdCB0PXRoaXMuY29ubmVjdGlvbjt0aGlzLnRpbWVvdXQobmV3IEVycm9yKFwiUHJvdmlkZXIgZGlzcG9zZWQuXCIpKSx0LnRoZW4odD0+dC5jbG9zZSgpKX1zZW5kKCl7dGhyb3cgbmV3IEVycm9yKFwiU3luYyByZXF1ZXN0cyBhcmUgZGVwcmVjYXRlZFwiKX1zZW5kQXN5bmModCxlKXtjb25zdCByPVtdO2xldCBpO2lmKHQgaW5zdGFuY2VvZiBBcnJheSlpPVByb21pc2UuYWxsKHQubWFwKHQ9Pntjb25zdCBlPW8uZnV0dXJlKCk7dHJ5e2NvbnN0IG89bi50b1JQQyh0KTtyLnB1c2gobyksdGhpcy5yZXNwb25zZUNhbGxiYWNrcy5zZXQoby5pZCxlKX1jYXRjaCh0KXtlLnJlamVjdCh0KX1yZXR1cm4gZX0pKTtlbHNle2NvbnN0IGU9by5mdXR1cmUoKTt0cnl7Y29uc3Qgbz1uLnRvUlBDKHQpO3IucHVzaChvKSx0aGlzLnJlc3BvbnNlQ2FsbGJhY2tzLnNldChvLmlkLGUpfWNhdGNoKHQpe2UucmVqZWN0KHQpfWk9ZX1pLnRoZW4odD0+ZShudWxsLHQpLHQ9PmUodCkpLHRoaXMuY29ubmVjdGlvbi50aGVuKHQ9PntyLmZvckVhY2goZT0+e2NvbnN0IHI9SlNPTi5zdHJpbmdpZnkoZSk7dGhpcy5kZWJ1ZyYmY29uc29sZS5sb2coXCJTRU5EID4+IFwiK3IpLHQuc2VuZChyKX0pfSx0PT57ZSh0KX0pfXBhcnNlUmVzcG9uc2UodCl7bGV0IGU9W107cmV0dXJuIHQucmVwbGFjZSgvXFx9W1xcblxccl0/XFx7L2csXCJ9fC0tfHtcIikucmVwbGFjZSgvXFx9XFxdW1xcblxccl0/XFxbXFx7L2csXCJ9XXwtLXxbe1wiKS5yZXBsYWNlKC9cXH1bXFxuXFxyXT9cXFtcXHsvZyxcIn18LS18W3tcIikucmVwbGFjZSgvXFx9XFxdW1xcblxccl0/XFx7L2csXCJ9XXwtLXx7XCIpLnNwbGl0KFwifC0tfFwiKS5mb3JFYWNoKHQ9PntsZXQgcj10O3RoaXMubGFzdENodW5rJiYocj10aGlzLmxhc3RDaHVuaytyKTtsZXQgbj1udWxsO3RyeXtuPUpTT04ucGFyc2Uocil9Y2F0Y2godCl7cmV0dXJuIHRoaXMubGFzdENodW5rPXIsY2xlYXJUaW1lb3V0KHRoaXMubGFzdENodW5rVGltZW91dCksdm9pZCh0aGlzLmxhc3RDaHVua1RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudGltZW91dCgpfSwxNWUzKSl9Y2xlYXJUaW1lb3V0KHRoaXMubGFzdENodW5rVGltZW91dCksdGhpcy5sYXN0Q2h1bms9bnVsbCxuJiZlLnB1c2gobil9KSxlfXByb2Nlc3NNZXNzYWdlKHQpe2lmKFwiaWRcImluIHQpe2NvbnN0IGU9dC5pZCxyPXRoaXMucmVzcG9uc2VDYWxsYmFja3MuZ2V0KGUpO2lmKCFyKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoXCJFcnJvcjogUmVjZWl2ZWQgYSByZXNwb25zZSBmb3IgYW4gdW5rbm93biByZXF1ZXN0XCIsdCk7dGhpcy5yZXNwb25zZUNhbGxiYWNrcy5kZWxldGUoZSksXCJlcnJvclwiaW4gdD9yLnJlamVjdChPYmplY3QuYXNzaWduKG5ldyBFcnJvcih0LmVycm9yLm1lc3NhZ2V8fHQuZXJyb3IpLHQuZXJyb3IpKTpcInJlc3VsdFwiaW4gdCYmci5yZXNvbHZlKHQpfWVsc2UgdGhpcy5ub3RpZmljYXRpb25DYWxsYmFja3MuZm9yRWFjaChlPT5lKG51bGwsdCkpfXRpbWVvdXQodCl7dGhpcy5jb25uZWN0aW9uJiZ0aGlzLmNvbm5lY3Rpb24uaXNQZW5kaW5nfHwodGhpcy5jb25uZWN0aW9uPW8uZnV0dXJlKCkpO2NvbnN0IGU9dHx8bmV3IEVycm9yKFwiQ29ubmVjdGlvbiB0aW1lb3V0XCIpO3RoaXMucmVzcG9uc2VDYWxsYmFja3MuZm9yRWFjaCh0PT50LnJlamVjdChlKSksdGhpcy5yZXNwb25zZUNhbGxiYWNrcy5jbGVhcigpLHRoaXMuaXNEaXNwb3NlZHx8dGhpcy5jb25uZWN0KCl9Y29ubmVjdCgpe3RoaXMuY29ubmVjdGlvbiYmIXRoaXMuY29ubmVjdGlvbi5pc1BlbmRpbmcmJnRoaXMuY29ubmVjdGlvbi50aGVuKHQ9PnQuY2xvc2UoKSksdGhpcy5jb25uZWN0aW9uJiZ0aGlzLmNvbm5lY3Rpb24uaXNQZW5kaW5nfHwodGhpcy5jb25uZWN0aW9uPW8uZnV0dXJlKCkpLHRoaXMubGFzdENodW5rPVwiXCI7bGV0IHQ9dGhpcy5vcHRpb25zLldlYlNvY2tldENvbnN0cnVjdG9yfHwoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFdlYlNvY2tldD9XZWJTb2NrZXQ6dm9pZCAwKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJQbGVhc2UgcHJvdmlkZSBhIFdlYlNvY2tldENvbnN0cnVjdG9yXCIpO2NvbnN0IGU9bmV3IHQodGhpcy51cmwsdGhpcy5vcHRpb25zLnByb3RvY29sKTtlLm9ub3Blbj0oKCk9Pnt0aGlzLmNvbm5lY3Rpb24ucmVzb2x2ZShlKX0pLGUub25lcnJvcj0odD0+e3RoaXMudGltZW91dCh0KX0pLGUub25jbG9zZT0odD0+e3RoaXMudGltZW91dChuZXcgRXJyb3IoYENvbm5lY3Rpb24gY2xvc2VkICgke3QmJnQucmVhc29ufHxcIlVua25vd24gcmVhc29uXCJ9KWApKX0pLGUub25tZXNzYWdlPSh0PT57bGV0IGU9XCJzdHJpbmdcIj09dHlwZW9mIHQuZGF0YT90LmRhdGE6XCJcIjt0aGlzLmRlYnVnJiZjb25zb2xlLmxvZyhcIlJFQ1YgPDwgXCIrdC5kYXRhKSx0aGlzLnBhcnNlUmVzcG9uc2UoZSkuZm9yRWFjaCh0PT57dCBpbnN0YW5jZW9mIEFycmF5P3QuZm9yRWFjaCh0PT50aGlzLnByb2Nlc3NNZXNzYWdlKHQpKTp0aGlzLnByb2Nlc3NNZXNzYWdlKHQpfSl9KX19ZS5XZWJTb2NrZXRQcm92aWRlcj1pLGUuZGVmYXVsdD1pfSxmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvPVN0cmluZy5mcm9tQ2hhckNvZGU7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGUscixuPVtdLG89MCxpPXQubGVuZ3RoO288aTspKGU9dC5jaGFyQ29kZUF0KG8rKykpPj01NTI5NiYmZTw9NTYzMTkmJm88aT81NjMyMD09KDY0NTEyJihyPXQuY2hhckNvZGVBdChvKyspKSk/bi5wdXNoKCgoMTAyMyZlKTw8MTApKygxMDIzJnIpKzY1NTM2KToobi5wdXNoKGUpLG8tLSk6bi5wdXNoKGUpO3JldHVybiBufWZ1bmN0aW9uIHModCl7aWYodD49NTUyOTYmJnQ8PTU3MzQzKXRocm93IEVycm9yKFwiTG9uZSBzdXJyb2dhdGUgVStcIit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpK1wiIGlzIG5vdCBhIHNjYWxhciB2YWx1ZVwiKX1mdW5jdGlvbiBhKHQsZSl7cmV0dXJuIG8odD4+ZSY2M3wxMjgpfWZ1bmN0aW9uIGModCl7aWYoMD09KDQyOTQ5NjcxNjgmdCkpcmV0dXJuIG8odCk7dmFyIGU9XCJcIjtyZXR1cm4gMD09KDQyOTQ5NjUyNDgmdCk/ZT1vKHQ+PjYmMzF8MTkyKTowPT0oNDI5NDkwMTc2MCZ0KT8ocyh0KSxlPW8odD4+MTImMTV8MjI0KSxlKz1hKHQsNikpOjA9PSg0MjkyODcwMTQ0JnQpJiYoZT1vKHQ+PjE4Jjd8MjQwKSxlKz1hKHQsMTIpLGUrPWEodCw2KSksZSs9byg2MyZ0fDEyOCl9ZnVuY3Rpb24gdSgpe2lmKG4+PXIpdGhyb3cgRXJyb3IoXCJJbnZhbGlkIGJ5dGUgaW5kZXhcIik7dmFyIHQ9MjU1JmVbbl07aWYobisrLDEyOD09KDE5MiZ0KSlyZXR1cm4gNjMmdDt0aHJvdyBFcnJvcihcIkludmFsaWQgY29udGludWF0aW9uIGJ5dGVcIil9ZnVuY3Rpb24gbCgpe3ZhciB0LG87aWYobj5yKXRocm93IEVycm9yKFwiSW52YWxpZCBieXRlIGluZGV4XCIpO2lmKG49PXIpcmV0dXJuITE7aWYodD0yNTUmZVtuXSxuKyssMD09KDEyOCZ0KSlyZXR1cm4gdDtpZigxOTI9PSgyMjQmdCkpe2lmKChvPSgzMSZ0KTw8Nnx1KCkpPj0xMjgpcmV0dXJuIG87dGhyb3cgRXJyb3IoXCJJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlXCIpfWlmKDIyND09KDI0MCZ0KSl7aWYoKG89KDE1JnQpPDwxMnx1KCk8PDZ8dSgpKT49MjA0OClyZXR1cm4gcyhvKSxvO3Rocm93IEVycm9yKFwiSW52YWxpZCBjb250aW51YXRpb24gYnl0ZVwiKX1pZigyNDA9PSgyNDgmdCkmJihvPSg3JnQpPDwxOHx1KCk8PDEyfHUoKTw8Nnx1KCkpPj02NTUzNiYmbzw9MTExNDExMSlyZXR1cm4gbzt0aHJvdyBFcnJvcihcIkludmFsaWQgVVRGLTggZGV0ZWN0ZWRcIil9dC52ZXJzaW9uPVwiMy4wLjBcIix0LmVuY29kZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9aSh0KSxyPWUubGVuZ3RoLG49LTEsbz1cIlwiOysrbjxyOylvKz1jKGVbbl0pO3JldHVybiBvfSx0LmRlY29kZT1mdW5jdGlvbih0KXtlPWkodCkscj1lLmxlbmd0aCxuPTA7Zm9yKHZhciBzLGE9W107ITEhPT0ocz1sKCkpOylhLnB1c2gocyk7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPXQubGVuZ3RoLG49LTEsaT1cIlwiOysrbjxyOykoZT10W25dKT42NTUzNSYmKGkrPW8oKGUtPTY1NTM2KT4+PjEwJjEwMjN8NTUyOTYpLGU9NTYzMjB8MTAyMyZlKSxpKz1vKGUpO3JldHVybiBpfShhKX19KGUpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxMCkscigzMykscigzNCkscig2KSxyKDcpLHIoMTEpLHIoMTgpLHIoMzUpLHIoMTkpLHIoMzYpLHIoMjApLHIoMzcpLHIoMTIpLHIoMzgpLHIoNSkscigxKSxyKDM5KSxyKDQwKSxyKDQxKSxyKDQyKSxyKDQzKSxyKDQ0KSxyKDQ1KSxyKDQ2KSxyKDQ3KSxyKDQ4KSxyKDQ5KSxyKDUwKSxyKDUxKSxyKDUyKSxyKDUzKSxyKDU0KSxuKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLGZ1bmN0aW9uKCl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgQXJyYXlCdWZmZXIpe3ZhciB0PW4ubGliLldvcmRBcnJheSxlPXQuaW5pdDsodC5pbml0PWZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmKHQ9bmV3IFVpbnQ4QXJyYXkodCkpLCh0IGluc3RhbmNlb2YgSW50OEFycmF5fHxcInVuZGVmaW5lZFwiIT10eXBlb2YgVWludDhDbGFtcGVkQXJyYXkmJnQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8dCBpbnN0YW5jZW9mIEludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8dCBpbnN0YW5jZW9mIEludDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkmJih0PW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpKSx0IGluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciByPXQuYnl0ZUxlbmd0aCxuPVtdLG89MDtvPHI7bysrKW5bbz4+PjJdfD10W29dPDwyNC1vJTQqODtlLmNhbGwodGhpcyxuLHIpfWVsc2UgZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5wcm90b3R5cGU9dH19KCksbi5saWIuV29yZEFycmF5KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLGZ1bmN0aW9uKCl7dmFyIHQ9bixlPXQubGliLldvcmRBcnJheSxyPXQuZW5jO2Z1bmN0aW9uIG8odCl7cmV0dXJuIHQ8PDgmNDI3ODI1NTM2MHx0Pj4+OCYxNjcxMTkzNX1yLlV0ZjE2PXIuVXRmMTZCRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxuPVtdLG89MDtvPHI7bys9Mil7dmFyIGk9ZVtvPj4+Ml0+Pj4xNi1vJTQqOCY2NTUzNTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShpKSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQubGVuZ3RoLG49W10sbz0wO288cjtvKyspbltvPj4+MV18PXQuY2hhckNvZGVBdChvKTw8MTYtbyUyKjE2O3JldHVybiBlLmNyZWF0ZShuLDIqcil9fSxyLlV0ZjE2TEU9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMsbj1bXSxpPTA7aTxyO2krPTIpe3ZhciBzPW8oZVtpPj4+Ml0+Pj4xNi1pJTQqOCY2NTUzNSk7bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUocykpfXJldHVybiBuLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPVtdLGk9MDtpPHI7aSsrKW5baT4+PjFdfD1vKHQuY2hhckNvZGVBdChpKTw8MTYtaSUyKjE2KTtyZXR1cm4gZS5jcmVhdGUobiwyKnIpfX19KCksbi5lbmMuVXRmMTYpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjO3QuZXhwb3J0cz0obj1yKDApLHIoMTgpLGk9KG89bikubGliLldvcmRBcnJheSxzPW8uYWxnbyxhPXMuU0hBMjU2LGM9cy5TSEEyMjQ9YS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgaS5pbml0KFszMjM4MzcxMDMyLDkxNDE1MDY2Myw4MTI3MDI5OTksNDE0NDkxMjY5Nyw0MjkwNzc1ODU3LDE3NTA2MDMwMjUsMTY5NDA3NjgzOSwzMjA0MDc1NDI4XSl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9YS5fZG9GaW5hbGl6ZS5jYWxsKHRoaXMpO3JldHVybiB0LnNpZ0J5dGVzLT00LHR9fSksby5TSEEyMjQ9YS5fY3JlYXRlSGVscGVyKGMpLG8uSG1hY1NIQTIyND1hLl9jcmVhdGVIbWFjSGVscGVyKGMpLG4uU0hBMjI0KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saSxzLGEsYyx1LGw7dC5leHBvcnRzPShuPXIoMCkscigxMCkscigxOSksaT0obz1uKS54NjQscz1pLldvcmQsYT1pLldvcmRBcnJheSxjPW8uYWxnbyx1PWMuU0hBNTEyLGw9Yy5TSEEzODQ9dS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgYS5pbml0KFtuZXcgcy5pbml0KDM0MTgwNzAzNjUsMzIzODM3MTAzMiksbmV3IHMuaW5pdCgxNjU0MjcwMjUwLDkxNDE1MDY2MyksbmV3IHMuaW5pdCgyNDM4NTI5MzcwLDgxMjcwMjk5OSksbmV3IHMuaW5pdCgzNTU0NjIzNjAsNDE0NDkxMjY5NyksbmV3IHMuaW5pdCgxNzMxNDA1NDE1LDQyOTA3NzU4NTcpLG5ldyBzLmluaXQoMjM5NDE4MDIzMSwxNzUwNjAzMDI1KSxuZXcgcy5pbml0KDM2NzUwMDg1MjUsMTY5NDA3NjgzOSksbmV3IHMuaW5pdCgxMjAzMDYyODEzLDMyMDQwNzU0MjgpXSl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dS5fZG9GaW5hbGl6ZS5jYWxsKHRoaXMpO3JldHVybiB0LnNpZ0J5dGVzLT0xNix0fX0pLG8uU0hBMzg0PXUuX2NyZWF0ZUhlbHBlcihsKSxvLkhtYWNTSEEzODQ9dS5fY3JlYXRlSG1hY0hlbHBlcihsKSxuLlNIQTM4NCl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxcbi8qKiBAcHJlc2VydmVcblx0KGMpIDIwMTIgYnkgQ8OpZHJpYyBNZXNuaWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5cblx0UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuXG5cdCAgICAtIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cblx0ICAgIC0gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuXG5cdFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgXCJBUyBJU1wiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cblx0Ki9cbmZ1bmN0aW9uKHQpe3ZhciBlPW4scj1lLmxpYixvPXIuV29yZEFycmF5LGk9ci5IYXNoZXIscz1lLmFsZ28sYT1vLmNyZWF0ZShbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSksYz1vLmNyZWF0ZShbNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSksdT1vLmNyZWF0ZShbMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0pLGw9by5jcmVhdGUoWzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdKSxoPW8uY3JlYXRlKFswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdKSxmPW8uY3JlYXRlKFsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdKSxwPXMuUklQRU1EMTYwPWkuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9by5jcmVhdGUoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MTY7cisrKXt2YXIgbj1lK3Isbz10W25dO3Rbbl09MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCl9dmFyIGkscyxwLHcsYixCLEYsTixrLHgsUyxBPXRoaXMuX2hhc2gud29yZHMsTz1oLndvcmRzLFQ9Zi53b3JkcyxQPWEud29yZHMsTT1jLndvcmRzLEM9dS53b3JkcyxFPWwud29yZHM7Zm9yKEI9aT1BWzBdLEY9cz1BWzFdLE49cD1BWzJdLGs9dz1BWzNdLHg9Yj1BWzRdLHI9MDtyPDgwO3IrPTEpUz1pK3RbZStQW3JdXXwwLFMrPXI8MTY/ZChzLHAsdykrT1swXTpyPDMyP20ocyxwLHcpK09bMV06cjw0OD95KHMscCx3KStPWzJdOnI8NjQ/ZyhzLHAsdykrT1szXTpfKHMscCx3KStPWzRdLFM9KFM9dihTfD0wLENbcl0pKStifDAsaT1iLGI9dyx3PXYocCwxMCkscD1zLHM9UyxTPUIrdFtlK01bcl1dfDAsUys9cjwxNj9fKEYsTixrKStUWzBdOnI8MzI/ZyhGLE4saykrVFsxXTpyPDQ4P3koRixOLGspK1RbMl06cjw2ND9tKEYsTixrKStUWzNdOmQoRixOLGspK1RbNF0sUz0oUz12KFN8PTAsRVtyXSkpK3h8MCxCPXgseD1rLGs9dihOLDEwKSxOPUYsRj1TO1M9QVsxXStwK2t8MCxBWzFdPUFbMl0rdyt4fDAsQVsyXT1BWzNdK2IrQnwwLEFbM109QVs0XStpK0Z8MCxBWzRdPUFbMF0rcytOfDAsQVswXT1TfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLHI9OCp0aGlzLl9uRGF0YUJ5dGVzLG49OCp0LnNpZ0J5dGVzO2Vbbj4+PjVdfD0xMjg8PDI0LW4lMzIsZVsxNCsobis2ND4+Pjk8PDQpXT0xNjcxMTkzNSYocjw8OHxyPj4+MjQpfDQyNzgyNTUzNjAmKHI8PDI0fHI+Pj44KSx0LnNpZ0J5dGVzPTQqKGUubGVuZ3RoKzEpLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIG89dGhpcy5faGFzaCxpPW8ud29yZHMscz0wO3M8NTtzKyspe3ZhciBhPWlbc107aVtzXT0xNjcxMTkzNSYoYTw8OHxhPj4+MjQpfDQyNzgyNTUzNjAmKGE8PDI0fGE+Pj44KX1yZXR1cm4gb30sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1pLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7ZnVuY3Rpb24gZCh0LGUscil7cmV0dXJuIHReZV5yfWZ1bmN0aW9uIG0odCxlLHIpe3JldHVybiB0JmV8fnQmcn1mdW5jdGlvbiB5KHQsZSxyKXtyZXR1cm4odHx+ZSlecn1mdW5jdGlvbiBnKHQsZSxyKXtyZXR1cm4gdCZyfGUmfnJ9ZnVuY3Rpb24gXyh0LGUscil7cmV0dXJuIHReKGV8fnIpfWZ1bmN0aW9uIHYodCxlKXtyZXR1cm4gdDw8ZXx0Pj4+MzItZX1lLlJJUEVNRDE2MD1pLl9jcmVhdGVIZWxwZXIocCksZS5IbWFjUklQRU1EMTYwPWkuX2NyZWF0ZUhtYWNIZWxwZXIocCl9KE1hdGgpLG4uUklQRU1EMTYwKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saSxzLGEsYyx1LGwsaDt0LmV4cG9ydHM9KG49cigwKSxyKDExKSxyKDEyKSxpPShvPW4pLmxpYixzPWkuQmFzZSxhPWkuV29yZEFycmF5LGM9by5hbGdvLHU9Yy5TSEExLGw9Yy5ITUFDLGg9Yy5QQktERjI9cy5leHRlbmQoe2NmZzpzLmV4dGVuZCh7a2V5U2l6ZTo0LGhhc2hlcjp1LGl0ZXJhdGlvbnM6MX0pLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpfSxjb21wdXRlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuY2ZnLG49bC5jcmVhdGUoci5oYXNoZXIsdCksbz1hLmNyZWF0ZSgpLGk9YS5jcmVhdGUoWzFdKSxzPW8ud29yZHMsYz1pLndvcmRzLHU9ci5rZXlTaXplLGg9ci5pdGVyYXRpb25zO3MubGVuZ3RoPHU7KXt2YXIgZj1uLnVwZGF0ZShlKS5maW5hbGl6ZShpKTtuLnJlc2V0KCk7Zm9yKHZhciBwPWYud29yZHMsZD1wLmxlbmd0aCxtPWYseT0xO3k8aDt5Kyspe209bi5maW5hbGl6ZShtKSxuLnJlc2V0KCk7Zm9yKHZhciBnPW0ud29yZHMsXz0wO188ZDtfKyspcFtfXV49Z1tfXX1vLmNvbmNhdChmKSxjWzBdKyt9cmV0dXJuIG8uc2lnQnl0ZXM9NCp1LG99fSksby5QQktERjI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBoLmNyZWF0ZShyKS5jb21wdXRlKHQsZSl9LG4uUEJLREYyKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5tb2RlLkNGQj1mdW5jdGlvbigpe3ZhciB0PW4ubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtmdW5jdGlvbiBlKHQsZSxyLG4pe3ZhciBvPXRoaXMuX2l2O2lmKG8pe3ZhciBpPW8uc2xpY2UoMCk7dGhpcy5faXY9dm9pZCAwfWVsc2UgaT10aGlzLl9wcmV2QmxvY2s7bi5lbmNyeXB0QmxvY2soaSwwKTtmb3IodmFyIHM9MDtzPHI7cysrKXRbZStzXV49aVtzXX1yZXR1cm4gdC5FbmNyeXB0b3I9dC5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBuPXRoaXMuX2NpcGhlcixvPW4uYmxvY2tTaXplO2UuY2FsbCh0aGlzLHQscixvLG4pLHRoaXMuX3ByZXZCbG9jaz10LnNsaWNlKHIscitvKX19KSx0LkRlY3J5cHRvcj10LmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIG49dGhpcy5fY2lwaGVyLG89bi5ibG9ja1NpemUsaT10LnNsaWNlKHIscitvKTtlLmNhbGwodGhpcyx0LHIsbyxuKSx0aGlzLl9wcmV2QmxvY2s9aX19KSx0fSgpLG4ubW9kZS5DRkIpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5tb2RlLkNUUj0obz1uLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksaT1vLkVuY3J5cHRvcj1vLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fY2lwaGVyLG49ci5ibG9ja1NpemUsbz10aGlzLl9pdixpPXRoaXMuX2NvdW50ZXI7byYmKGk9dGhpcy5fY291bnRlcj1vLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCk7dmFyIHM9aS5zbGljZSgwKTtyLmVuY3J5cHRCbG9jayhzLDApLGlbbi0xXT1pW24tMV0rMXwwO2Zvcih2YXIgYT0wO2E8bjthKyspdFtlK2FdXj1zW2FdfX0pLG8uRGVjcnlwdG9yPWksbyksbi5tb2RlLkNUUil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDEpLFxuLyoqIEBwcmVzZXJ2ZVxuXHQgKiBDb3VudGVyIGJsb2NrIG1vZGUgY29tcGF0aWJsZSB3aXRoICBEciBCcmlhbiBHbGFkbWFuIGZpbGVlbmMuY1xuXHQgKiBkZXJpdmVkIGZyb20gQ3J5cHRvSlMubW9kZS5DVFJcblx0ICogSmFuIEhydWJ5IGpocnVieS53ZWJAZ21haWwuY29tXG5cdCAqL1xubi5tb2RlLkNUUkdsYWRtYW49ZnVuY3Rpb24oKXt2YXIgdD1uLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7ZnVuY3Rpb24gZSh0KXtpZigyNTU9PSh0Pj4yNCYyNTUpKXt2YXIgZT10Pj4xNiYyNTUscj10Pj44JjI1NSxuPTI1NSZ0OzI1NT09PWU/KGU9MCwyNTU9PT1yPyhyPTAsMjU1PT09bj9uPTA6KytuKTorK3IpOisrZSx0PTAsdCs9ZTw8MTYsdCs9cjw8OCx0Kz1ufWVsc2UgdCs9MTw8MjQ7cmV0dXJuIHR9dmFyIHI9dC5FbmNyeXB0b3I9dC5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBuPXRoaXMuX2NpcGhlcixvPW4uYmxvY2tTaXplLGk9dGhpcy5faXYscz10aGlzLl9jb3VudGVyO2kmJihzPXRoaXMuX2NvdW50ZXI9aS5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLGZ1bmN0aW9uKHQpezA9PT0odFswXT1lKHRbMF0pKSYmKHRbMV09ZSh0WzFdKSl9KHMpO3ZhciBhPXMuc2xpY2UoMCk7bi5lbmNyeXB0QmxvY2soYSwwKTtmb3IodmFyIGM9MDtjPG87YysrKXRbcitjXV49YVtjXX19KTtyZXR1cm4gdC5EZWNyeXB0b3I9cix0fSgpLG4ubW9kZS5DVFJHbGFkbWFuKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saTt0LmV4cG9ydHM9KG49cigwKSxyKDEpLG4ubW9kZS5PRkI9KG89bi5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpLGk9by5FbmNyeXB0b3I9by5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX2NpcGhlcixuPXIuYmxvY2tTaXplLG89dGhpcy5faXYsaT10aGlzLl9rZXlzdHJlYW07byYmKGk9dGhpcy5fa2V5c3RyZWFtPW8uc2xpY2UoMCksdGhpcy5faXY9dm9pZCAwKSxyLmVuY3J5cHRCbG9jayhpLDApO2Zvcih2YXIgcz0wO3M8bjtzKyspdFtlK3NdXj1pW3NdfX0pLG8uRGVjcnlwdG9yPWksbyksbi5tb2RlLk9GQil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5tb2RlLkVDQj0oKG89bi5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpKS5FbmNyeXB0b3I9by5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodCxlKX19KSxvLkRlY3J5cHRvcj1vLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY2lwaGVyLmRlY3J5cHRCbG9jayh0LGUpfX0pLG8pLG4ubW9kZS5FQ0IpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5BbnNpWDkyMz17cGFkOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zaWdCeXRlcyxuPTQqZSxvPW4tciVuLGk9citvLTE7dC5jbGFtcCgpLHQud29yZHNbaT4+PjJdfD1vPDwyNC1pJTQqOCx0LnNpZ0J5dGVzKz1vfSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgZT0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1lfX0sbi5wYWQuQW5zaXg5MjMpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5Jc28xMDEyNj17cGFkOmZ1bmN0aW9uKHQsZSl7dmFyIHI9NCplLG89ci10LnNpZ0J5dGVzJXI7dC5jb25jYXQobi5saWIuV29yZEFycmF5LnJhbmRvbShvLTEpKS5jb25jYXQobi5saWIuV29yZEFycmF5LmNyZWF0ZShbbzw8MjRdLDEpKX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIGU9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09ZX19LG4ucGFkLklzbzEwMTI2KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5wYWQuSXNvOTc5NzE9e3BhZDpmdW5jdGlvbih0LGUpe3QuY29uY2F0KG4ubGliLldvcmRBcnJheS5jcmVhdGUoWzIxNDc0ODM2NDhdLDEpKSxuLnBhZC5aZXJvUGFkZGluZy5wYWQodCxlKX0sdW5wYWQ6ZnVuY3Rpb24odCl7bi5wYWQuWmVyb1BhZGRpbmcudW5wYWQodCksdC5zaWdCeXRlcy0tfX0sbi5wYWQuSXNvOTc5NzEpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5aZXJvUGFkZGluZz17cGFkOmZ1bmN0aW9uKHQsZSl7dmFyIHI9NCplO3QuY2xhbXAoKSx0LnNpZ0J5dGVzKz1yLSh0LnNpZ0J5dGVzJXJ8fHIpfSx1bnBhZDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMtMTshKGVbcj4+PjJdPj4+MjQtciU0KjgmMjU1KTspci0tO3Quc2lnQnl0ZXM9cisxfX0sbi5wYWQuWmVyb1BhZGRpbmcpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5Ob1BhZGRpbmc9e3BhZDpmdW5jdGlvbigpe30sdW5wYWQ6ZnVuY3Rpb24oKXt9fSxuLnBhZC5Ob1BhZGRpbmcpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHM7dC5leHBvcnRzPShuPXIoMCkscigxKSxpPShvPW4pLmxpYi5DaXBoZXJQYXJhbXMscz1vLmVuYy5IZXgsby5mb3JtYXQuSGV4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2lwaGVydGV4dC50b1N0cmluZyhzKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9cy5wYXJzZSh0KTtyZXR1cm4gaS5jcmVhdGUoe2NpcGhlcnRleHQ6ZX0pfX0sbi5mb3JtYXQuSGV4KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoNikscig3KSxyKDUpLHIoMSksZnVuY3Rpb24oKXt2YXIgdD1uLGU9dC5saWIuQmxvY2tDaXBoZXIscj10LmFsZ28sbz1bXSxpPVtdLHM9W10sYT1bXSxjPVtdLHU9W10sbD1bXSxoPVtdLGY9W10scD1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8MjU2O2UrKyl0W2VdPWU8MTI4P2U8PDE6ZTw8MV4yODM7dmFyIHI9MCxuPTA7Zm9yKGU9MDtlPDI1NjtlKyspe3ZhciBkPW5ebjw8MV5uPDwyXm48PDNebjw8NDtkPWQ+Pj44XjI1NSZkXjk5LG9bcl09ZCxpW2RdPXI7dmFyIG09dFtyXSx5PXRbbV0sZz10W3ldLF89MjU3KnRbZF1eMTY4NDMwMDgqZDtzW3JdPV88PDI0fF8+Pj44LGFbcl09Xzw8MTZ8Xz4+PjE2LGNbcl09Xzw8OHxfPj4+MjQsdVtyXT1fLF89MTY4NDMwMDkqZ142NTUzNyp5XjI1NyptXjE2ODQzMDA4KnIsbFtkXT1fPDwyNHxfPj4+OCxoW2RdPV88PDE2fF8+Pj4xNixmW2RdPV88PDh8Xz4+PjI0LHBbZF09XyxyPyhyPW1edFt0W3RbZ15tXV1dLG5ePXRbdFtuXV0pOnI9bj0xfX0oKTt2YXIgZD1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sbT1yLkFFUz1lLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fblJvdW5kc3x8dGhpcy5fa2V5UHJpb3JSZXNldCE9PXRoaXMuX2tleSl7Zm9yKHZhciB0PXRoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5LGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMvNCxuPTQqKCh0aGlzLl9uUm91bmRzPXIrNikrMSksaT10aGlzLl9rZXlTY2hlZHVsZT1bXSxzPTA7czxuO3MrKylpZihzPHIpaVtzXT1lW3NdO2Vsc2V7dmFyIGE9aVtzLTFdO3Mlcj9yPjYmJnMlcj09NCYmKGE9b1thPj4+MjRdPDwyNHxvW2E+Pj4xNiYyNTVdPDwxNnxvW2E+Pj44JjI1NV08PDh8b1syNTUmYV0pOihhPW9bKGE9YTw8OHxhPj4+MjQpPj4+MjRdPDwyNHxvW2E+Pj4xNiYyNTVdPDwxNnxvW2E+Pj44JjI1NV08PDh8b1syNTUmYV0sYV49ZFtzL3J8MF08PDI0KSxpW3NdPWlbcy1yXV5hfWZvcih2YXIgYz10aGlzLl9pbnZLZXlTY2hlZHVsZT1bXSx1PTA7dTxuO3UrKylzPW4tdSxhPXUlND9pW3NdOmlbcy00XSxjW3VdPXU8NHx8czw9ND9hOmxbb1thPj4+MjRdXV5oW29bYT4+PjE2JjI1NV1dXmZbb1thPj4+OCYyNTVdXV5wW29bMjU1JmFdXX19LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LGUsdGhpcy5fa2V5U2NoZWR1bGUscyxhLGMsdSxvKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dFtlKzFdO3RbZSsxXT10W2UrM10sdFtlKzNdPXIsdGhpcy5fZG9DcnlwdEJsb2NrKHQsZSx0aGlzLl9pbnZLZXlTY2hlZHVsZSxsLGgsZixwLGkpLHI9dFtlKzFdLHRbZSsxXT10W2UrM10sdFtlKzNdPXJ9LF9kb0NyeXB0QmxvY2s6ZnVuY3Rpb24odCxlLHIsbixvLGkscyxhKXtmb3IodmFyIGM9dGhpcy5fblJvdW5kcyx1PXRbZV1eclswXSxsPXRbZSsxXV5yWzFdLGg9dFtlKzJdXnJbMl0sZj10W2UrM11eclszXSxwPTQsZD0xO2Q8YztkKyspe3ZhciBtPW5bdT4+PjI0XV5vW2w+Pj4xNiYyNTVdXmlbaD4+PjgmMjU1XV5zWzI1NSZmXV5yW3ArK10seT1uW2w+Pj4yNF1eb1toPj4+MTYmMjU1XV5pW2Y+Pj44JjI1NV1ec1syNTUmdV1ecltwKytdLGc9bltoPj4+MjRdXm9bZj4+PjE2JjI1NV1eaVt1Pj4+OCYyNTVdXnNbMjU1JmxdXnJbcCsrXSxfPW5bZj4+PjI0XV5vW3U+Pj4xNiYyNTVdXmlbbD4+PjgmMjU1XV5zWzI1NSZoXV5yW3ArK107dT1tLGw9eSxoPWcsZj1ffW09KGFbdT4+PjI0XTw8MjR8YVtsPj4+MTYmMjU1XTw8MTZ8YVtoPj4+OCYyNTVdPDw4fGFbMjU1JmZdKV5yW3ArK10seT0oYVtsPj4+MjRdPDwyNHxhW2g+Pj4xNiYyNTVdPDwxNnxhW2Y+Pj44JjI1NV08PDh8YVsyNTUmdV0pXnJbcCsrXSxnPShhW2g+Pj4yNF08PDI0fGFbZj4+PjE2JjI1NV08PDE2fGFbdT4+PjgmMjU1XTw8OHxhWzI1NSZsXSlecltwKytdLF89KGFbZj4+PjI0XTw8MjR8YVt1Pj4+MTYmMjU1XTw8MTZ8YVtsPj4+OCYyNTVdPDw4fGFbMjU1JmhdKV5yW3ArK10sdFtlXT1tLHRbZSsxXT15LHRbZSsyXT1nLHRbZSszXT1ffSxrZXlTaXplOjh9KTt0LkFFUz1lLl9jcmVhdGVIZWxwZXIobSl9KCksbi5BRVMpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscig2KSxyKDcpLHIoNSkscigxKSxmdW5jdGlvbigpe3ZhciB0PW4sZT10LmxpYixyPWUuV29yZEFycmF5LG89ZS5CbG9ja0NpcGhlcixpPXQuYWxnbyxzPVs1Nyw0OSw0MSwzMywyNSwxNyw5LDEsNTgsNTAsNDIsMzQsMjYsMTgsMTAsMiw1OSw1MSw0MywzNSwyNywxOSwxMSwzLDYwLDUyLDQ0LDM2LDYzLDU1LDQ3LDM5LDMxLDIzLDE1LDcsNjIsNTQsNDYsMzgsMzAsMjIsMTQsNiw2MSw1Myw0NSwzNywyOSwyMSwxMyw1LDI4LDIwLDEyLDRdLGE9WzE0LDE3LDExLDI0LDEsNSwzLDI4LDE1LDYsMjEsMTAsMjMsMTksMTIsNCwyNiw4LDE2LDcsMjcsMjAsMTMsMiw0MSw1MiwzMSwzNyw0Nyw1NSwzMCw0MCw1MSw0NSwzMyw0OCw0NCw0OSwzOSw1NiwzNCw1Myw0Niw0Miw1MCwzNiwyOSwzMl0sYz1bMSwyLDQsNiw4LDEwLDEyLDE0LDE1LDE3LDE5LDIxLDIzLDI1LDI3LDI4XSx1PVt7MDo4NDIxODg4LDI2ODQzNTQ1NjozMjc2OCw1MzY4NzA5MTI6ODQyMTM3OCw4MDUzMDYzNjg6MiwxMDczNzQxODI0OjUxMiwxMzQyMTc3MjgwOjg0MjE4OTAsMTYxMDYxMjczNjo4Mzg5MTIyLDE4NzkwNDgxOTI6ODM4ODYwOCwyMTQ3NDgzNjQ4OjUxNCwyNDE1OTE5MTA0OjgzODkxMjAsMjY4NDM1NDU2MDozMzI4MCwyOTUyNzkwMDE2Ojg0MjEzNzYsMzIyMTIyNTQ3MjozMjc3MCwzNDg5NjYwOTI4OjgzODg2MTAsMzc1ODA5NjM4NDowLDQwMjY1MzE4NDA6MzMyODIsMTM0MjE3NzI4OjAsNDAyNjUzMTg0Ojg0MjE4OTAsNjcxMDg4NjQwOjMzMjgyLDkzOTUyNDA5NjozMjc2OCwxMjA3OTU5NTUyOjg0MjE4ODgsMTQ3NjM5NTAwODo1MTIsMTc0NDgzMDQ2NDo4NDIxMzc4LDIwMTMyNjU5MjA6MiwyMjgxNzAxMzc2OjgzODkxMjAsMjU1MDEzNjgzMjozMzI4MCwyODE4NTcyMjg4Ojg0MjEzNzYsMzA4NzAwNzc0NDo4Mzg5MTIyLDMzNTU0NDMyMDA6ODM4ODYxMCwzNjIzODc4NjU2OjMyNzcwLDM4OTIzMTQxMTI6NTE0LDQxNjA3NDk1Njg6ODM4ODYwOCwxOjMyNzY4LDI2ODQzNTQ1NzoyLDUzNjg3MDkxMzo4NDIxODg4LDgwNTMwNjM2OTo4Mzg4NjA4LDEwNzM3NDE4MjU6ODQyMTM3OCwxMzQyMTc3MjgxOjMzMjgwLDE2MTA2MTI3Mzc6NTEyLDE4NzkwNDgxOTM6ODM4OTEyMiwyMTQ3NDgzNjQ5Ojg0MjE4OTAsMjQxNTkxOTEwNTo4NDIxMzc2LDI2ODQzNTQ1NjE6ODM4ODYxMCwyOTUyNzkwMDE3OjMzMjgyLDMyMjEyMjU0NzM6NTE0LDM0ODk2NjA5Mjk6ODM4OTEyMCwzNzU4MDk2Mzg1OjMyNzcwLDQwMjY1MzE4NDE6MCwxMzQyMTc3Mjk6ODQyMTg5MCw0MDI2NTMxODU6ODQyMTM3Niw2NzEwODg2NDE6ODM4ODYwOCw5Mzk1MjQwOTc6NTEyLDEyMDc5NTk1NTM6MzI3NjgsMTQ3NjM5NTAwOTo4Mzg4NjEwLDE3NDQ4MzA0NjU6MiwyMDEzMjY1OTIxOjMzMjgyLDIyODE3MDEzNzc6MzI3NzAsMjU1MDEzNjgzMzo4Mzg5MTIyLDI4MTg1NzIyODk6NTE0LDMwODcwMDc3NDU6ODQyMTg4OCwzMzU1NDQzMjAxOjgzODkxMjAsMzYyMzg3ODY1NzowLDM4OTIzMTQxMTM6MzMyODAsNDE2MDc0OTU2OTo4NDIxMzc4fSx7MDoxMDc0MjgyNTEyLDE2Nzc3MjE2OjE2Mzg0LDMzNTU0NDMyOjUyNDI4OCw1MDMzMTY0ODoxMDc0MjY2MTI4LDY3MTA4ODY0OjEwNzM3NDE4NDAsODM4ODYwODA6MTA3NDI4MjQ5NiwxMDA2NjMyOTY6MTA3Mzc1ODIwOCwxMTc0NDA1MTI6MTYsMTM0MjE3NzI4OjU0MDY3MiwxNTA5OTQ5NDQ6MTA3Mzc1ODIyNCwxNjc3NzIxNjA6MTA3Mzc0MTgyNCwxODQ1NDkzNzY6NTQwNjg4LDIwMTMyNjU5Mjo1MjQzMDQsMjE4MTAzODA4OjAsMjM0ODgxMDI0OjE2NDAwLDI1MTY1ODI0MDoxMDc0MjY2MTEyLDgzODg2MDg6MTA3Mzc1ODIwOCwyNTE2NTgyNDo1NDA2ODgsNDE5NDMwNDA6MTYsNTg3MjAyNTY6MTA3Mzc1ODIyNCw3NTQ5NzQ3MjoxMDc0MjgyNTEyLDkyMjc0Njg4OjEwNzM3NDE4MjQsMTA5MDUxOTA0OjUyNDI4OCwxMjU4MjkxMjA6MTA3NDI2NjEyOCwxNDI2MDYzMzY6NTI0MzA0LDE1OTM4MzU1MjowLDE3NjE2MDc2ODoxNjM4NCwxOTI5Mzc5ODQ6MTA3NDI2NjExMiwyMDk3MTUyMDA6MTA3Mzc0MTg0MCwyMjY0OTI0MTY6NTQwNjcyLDI0MzI2OTYzMjoxMDc0MjgyNDk2LDI2MDA0Njg0ODoxNjQwMCwyNjg0MzU0NTY6MCwyODUyMTI2NzI6MTA3NDI2NjEyOCwzMDE5ODk4ODg6MTA3Mzc1ODIyNCwzMTg3NjcxMDQ6MTA3NDI4MjQ5NiwzMzU1NDQzMjA6MTA3NDI2NjExMiwzNTIzMjE1MzY6MTYsMzY5MDk4NzUyOjU0MDY4OCwzODU4NzU5Njg6MTYzODQsNDAyNjUzMTg0OjE2NDAwLDQxOTQzMDQwMDo1MjQyODgsNDM2MjA3NjE2OjUyNDMwNCw0NTI5ODQ4MzI6MTA3Mzc0MTg0MCw0Njk3NjIwNDg6NTQwNjcyLDQ4NjUzOTI2NDoxMDczNzU4MjA4LDUwMzMxNjQ4MDoxMDczNzQxODI0LDUyMDA5MzY5NjoxMDc0MjgyNTEyLDI3NjgyNDA2NDo1NDA2ODgsMjkzNjAxMjgwOjUyNDI4OCwzMTAzNzg0OTY6MTA3NDI2NjExMiwzMjcxNTU3MTI6MTYzODQsMzQzOTMyOTI4OjEwNzM3NTgyMDgsMzYwNzEwMTQ0OjEwNzQyODI1MTIsMzc3NDg3MzYwOjE2LDM5NDI2NDU3NjoxMDczNzQxODI0LDQxMTA0MTc5MjoxMDc0MjgyNDk2LDQyNzgxOTAwODoxMDczNzQxODQwLDQ0NDU5NjIyNDoxMDczNzU4MjI0LDQ2MTM3MzQ0MDo1MjQzMDQsNDc4MTUwNjU2OjAsNDk0OTI3ODcyOjE2NDAwLDUxMTcwNTA4ODoxMDc0MjY2MTI4LDUyODQ4MjMwNDo1NDA2NzJ9LHswOjI2MCwxMDQ4NTc2OjAsMjA5NzE1Mjo2NzEwOTEyMCwzMTQ1NzI4OjY1Nzk2LDQxOTQzMDQ6NjU1NDAsNTI0Mjg4MDo2NzEwODg2OCw2MjkxNDU2OjY3MTc0NjYwLDczNDAwMzI6NjcxNzQ0MDAsODM4ODYwODo2NzEwODg2NCw5NDM3MTg0OjY3MTc0NjU2LDEwNDg1NzYwOjY1NzkyLDExNTM0MzM2OjY3MTc0NDA0LDEyNTgyOTEyOjY3MTA5MTI0LDEzNjMxNDg4OjY1NTM2LDE0NjgwMDY0OjQsMTU3Mjg2NDA6MjU2LDUyNDI4ODo2NzE3NDY1NiwxNTcyODY0OjY3MTc0NDA0LDI2MjE0NDA6MCwzNjcwMDE2OjY3MTA5MTIwLDQ3MTg1OTI6NjcxMDg4NjgsNTc2NzE2ODo2NTUzNiw2ODE1NzQ0OjY1NTQwLDc4NjQzMjA6MjYwLDg5MTI4OTY6NCw5OTYxNDcyOjI1NiwxMTAxMDA0ODo2NzE3NDQwMCwxMjA1ODYyNDo2NTc5NiwxMzEwNzIwMDo2NTc5MiwxNDE1NTc3Njo2NzEwOTEyNCwxNTIwNDM1Mjo2NzE3NDY2MCwxNjI1MjkyODo2NzEwODg2NCwxNjc3NzIxNjo2NzE3NDY1NiwxNzgyNTc5Mjo2NTU0MCwxODg3NDM2ODo2NTUzNiwxOTkyMjk0NDo2NzEwOTEyMCwyMDk3MTUyMDoyNTYsMjIwMjAwOTY6NjcxNzQ2NjAsMjMwNjg2NzI6NjcxMDg4NjgsMjQxMTcyNDg6MCwyNTE2NTgyNDo2NzEwOTEyNCwyNjIxNDQwMDo2NzEwODg2NCwyNzI2Mjk3Njo0LDI4MzExNTUyOjY1NzkyLDI5MzYwMTI4OjY3MTc0NDAwLDMwNDA4NzA0OjI2MCwzMTQ1NzI4MDo2NTc5NiwzMjUwNTg1Njo2NzE3NDQwNCwxNzMwMTUwNDo2NzEwODg2NCwxODM1MDA4MDoyNjAsMTkzOTg2NTY6NjcxNzQ2NTYsMjA0NDcyMzI6MCwyMTQ5NTgwODo2NTU0MCwyMjU0NDM4NDo2NzEwOTEyMCwyMzU5Mjk2MDoyNTYsMjQ2NDE1MzY6NjcxNzQ0MDQsMjU2OTAxMTI6NjU1MzYsMjY3Mzg2ODg6NjcxNzQ2NjAsMjc3ODcyNjQ6NjU3OTYsMjg4MzU4NDA6NjcxMDg4NjgsMjk4ODQ0MTY6NjcxMDkxMjQsMzA5MzI5OTI6NjcxNzQ0MDAsMzE5ODE1Njg6NCwzMzAzMDE0NDo2NTc5Mn0sezA6MjE1MTY4MjA0OCw2NTUzNjoyMTQ3NDg3ODA4LDEzMTA3Mjo0MTk4NDY0LDE5NjYwODoyMTUxNjc3OTUyLDI2MjE0NDowLDMyNzY4MDo0MTk4NDAwLDM5MzIxNjoyMTQ3NDgzNzEyLDQ1ODc1Mjo0MTk0MzY4LDUyNDI4ODoyMTQ3NDgzNjQ4LDU4OTgyNDo0MTk0MzA0LDY1NTM2MDo2NCw3MjA4OTY6MjE0NzQ4Nzc0NCw3ODY0MzI6MjE1MTY3ODAxNiw4NTE5Njg6NDE2MCw5MTc1MDQ6NDA5Niw5ODMwNDA6MjE1MTY4MjExMiwzMjc2ODoyMTQ3NDg3ODA4LDk4MzA0OjY0LDE2Mzg0MDoyMTUxNjc4MDE2LDIyOTM3NjoyMTQ3NDg3NzQ0LDI5NDkxMjo0MTk4NDAwLDM2MDQ0ODoyMTUxNjgyMTEyLDQyNTk4NDowLDQ5MTUyMDoyMTUxNjc3OTUyLDU1NzA1Njo0MDk2LDYyMjU5MjoyMTUxNjgyMDQ4LDY4ODEyODo0MTk0MzA0LDc1MzY2NDo0MTYwLDgxOTIwMDoyMTQ3NDgzNjQ4LDg4NDczNjo0MTk0MzY4LDk1MDI3Mjo0MTk4NDY0LDEwMTU4MDg6MjE0NzQ4MzcxMiwxMDQ4NTc2OjQxOTQzNjgsMTExNDExMjo0MTk4NDAwLDExNzk2NDg6MjE0NzQ4MzcxMiwxMjQ1MTg0OjAsMTMxMDcyMDo0MTYwLDEzNzYyNTY6MjE1MTY3ODAxNiwxNDQxNzkyOjIxNTE2ODIwNDgsMTUwNzMyODoyMTQ3NDg3ODA4LDE1NzI4NjQ6MjE1MTY4MjExMiwxNjM4NDAwOjIxNDc0ODM2NDgsMTcwMzkzNjoyMTUxNjc3OTUyLDE3Njk0NzI6NDE5ODQ2NCwxODM1MDA4OjIxNDc0ODc3NDQsMTkwMDU0NDo0MTk0MzA0LDE5NjYwODA6NjQsMjAzMTYxNjo0MDk2LDEwODEzNDQ6MjE1MTY3Nzk1MiwxMTQ2ODgwOjIxNTE2ODIxMTIsMTIxMjQxNjowLDEyNzc5NTI6NDE5ODQwMCwxMzQzNDg4OjQxOTQzNjgsMTQwOTAyNDoyMTQ3NDgzNjQ4LDE0NzQ1NjA6MjE0NzQ4NzgwOCwxNTQwMDk2OjY0LDE2MDU2MzI6MjE0NzQ4MzcxMiwxNjcxMTY4OjQwOTYsMTczNjcwNDoyMTQ3NDg3NzQ0LDE4MDIyNDA6MjE1MTY3ODAxNiwxODY3Nzc2OjQxNjAsMTkzMzMxMjoyMTUxNjgyMDQ4LDE5OTg4NDg6NDE5NDMwNCwyMDY0Mzg0OjQxOTg0NjR9LHswOjEyOCw0MDk2OjE3MDM5MzYwLDgxOTI6MjYyMTQ0LDEyMjg4OjUzNjg3MDkxMiwxNjM4NDo1MzcxMzMxODQsMjA0ODA6MTY3NzczNDQsMjQ1NzY6NTUzNjQ4MjU2LDI4NjcyOjI2MjI3MiwzMjc2ODoxNjc3NzIxNiwzNjg2NDo1MzcxMzMwNTYsNDA5NjA6NTM2ODcxMDQwLDQ1MDU2OjU1MzkxMDQwMCw0OTE1Mjo1NTM5MTAyNzIsNTMyNDg6MCw1NzM0NDoxNzAzOTQ4OCw2MTQ0MDo1NTM2NDgxMjgsMjA0ODoxNzAzOTQ4OCw2MTQ0OjU1MzY0ODI1NiwxMDI0MDoxMjgsMTQzMzY6MTcwMzkzNjAsMTg0MzI6MjYyMTQ0LDIyNTI4OjUzNzEzMzE4NCwyNjYyNDo1NTM5MTAyNzIsMzA3MjA6NTM2ODcwOTEyLDM0ODE2OjUzNzEzMzA1NiwzODkxMjowLDQzMDA4OjU1MzkxMDQwMCw0NzEwNDoxNjc3NzM0NCw1MTIwMDo1MzY4NzEwNDAsNTUyOTY6NTUzNjQ4MTI4LDU5MzkyOjE2Nzc3MjE2LDYzNDg4OjI2MjI3Miw2NTUzNjoyNjIxNDQsNjk2MzI6MTI4LDczNzI4OjUzNjg3MDkxMiw3NzgyNDo1NTM2NDgyNTYsODE5MjA6MTY3NzczNDQsODYwMTY6NTUzOTEwMjcyLDkwMTEyOjUzNzEzMzE4NCw5NDIwODoxNjc3NzIxNiw5ODMwNDo1NTM5MTA0MDAsMTAyNDAwOjU1MzY0ODEyOCwxMDY0OTY6MTcwMzkzNjAsMTEwNTkyOjUzNzEzMzA1NiwxMTQ2ODg6MjYyMjcyLDExODc4NDo1MzY4NzEwNDAsMTIyODgwOjAsMTI2OTc2OjE3MDM5NDg4LDY3NTg0OjU1MzY0ODI1Niw3MTY4MDoxNjc3NzIxNiw3NTc3NjoxNzAzOTM2MCw3OTg3Mjo1MzcxMzMxODQsODM5Njg6NTM2ODcwOTEyLDg4MDY0OjE3MDM5NDg4LDkyMTYwOjEyOCw5NjI1Njo1NTM5MTAyNzIsMTAwMzUyOjI2MjI3MiwxMDQ0NDg6NTUzOTEwNDAwLDEwODU0NDowLDExMjY0MDo1NTM2NDgxMjgsMTE2NzM2OjE2Nzc3MzQ0LDEyMDgzMjoyNjIxNDQsMTI0OTI4OjUzNzEzMzA1NiwxMjkwMjQ6NTM2ODcxMDQwfSx7MDoyNjg0MzU0NjQsMjU2OjgxOTIsNTEyOjI3MDUzMjYwOCw3Njg6MjcwNTQwODA4LDEwMjQ6MjY4NDQzNjQ4LDEyODA6MjA5NzE1MiwxNTM2OjIwOTcxNjAsMTc5MjoyNjg0MzU0NTYsMjA0ODowLDIzMDQ6MjY4NDQzNjU2LDI1NjA6MjEwNTM0NCwyODE2OjgsMzA3MjoyNzA1MzI2MTYsMzMyODoyMTA1MzUyLDM1ODQ6ODIwMCwzODQwOjI3MDU0MDgwMCwxMjg6MjcwNTMyNjA4LDM4NDoyNzA1NDA4MDgsNjQwOjgsODk2OjIwOTcxNTIsMTE1MjoyMTA1MzUyLDE0MDg6MjY4NDM1NDY0LDE2NjQ6MjY4NDQzNjQ4LDE5MjA6ODIwMCwyMTc2OjIwOTcxNjAsMjQzMjo4MTkyLDI2ODg6MjY4NDQzNjU2LDI5NDQ6MjcwNTMyNjE2LDMyMDA6MCwzNDU2OjI3MDU0MDgwMCwzNzEyOjIxMDUzNDQsMzk2ODoyNjg0MzU0NTYsNDA5NjoyNjg0NDM2NDgsNDM1MjoyNzA1MzI2MTYsNDYwODoyNzA1NDA4MDgsNDg2NDo4MjAwLDUxMjA6MjA5NzE1Miw1Mzc2OjI2ODQzNTQ1Niw1NjMyOjI2ODQzNTQ2NCw1ODg4OjIxMDUzNDQsNjE0NDoyMTA1MzUyLDY0MDA6MCw2NjU2OjgsNjkxMjoyNzA1MzI2MDgsNzE2ODo4MTkyLDc0MjQ6MjY4NDQzNjU2LDc2ODA6MjcwNTQwODAwLDc5MzY6MjA5NzE2MCw0MjI0OjgsNDQ4MDoyMTA1MzQ0LDQ3MzY6MjA5NzE1Miw0OTkyOjI2ODQzNTQ2NCw1MjQ4OjI2ODQ0MzY0OCw1NTA0OjgyMDAsNTc2MDoyNzA1NDA4MDgsNjAxNjoyNzA1MzI2MDgsNjI3MjoyNzA1NDA4MDAsNjUyODoyNzA1MzI2MTYsNjc4NDo4MTkyLDcwNDA6MjEwNTM1Miw3Mjk2OjIwOTcxNjAsNzU1MjowLDc4MDg6MjY4NDM1NDU2LDgwNjQ6MjY4NDQzNjU2fSx7MDoxMDQ4NTc2LDE2OjMzNTU1NDU3LDMyOjEwMjQsNDg6MTA0OTYwMSw2NDozNDYwNDAzMyw4MDowLDk2OjEsMTEyOjM0NjAzMDA5LDEyODozMzU1NTQ1NiwxNDQ6MTA0ODU3NywxNjA6MzM1NTQ0MzMsMTc2OjM0NjA0MDMyLDE5MjozNDYwMzAwOCwyMDg6MTAyNSwyMjQ6MTA0OTYwMCwyNDA6MzM1NTQ0MzIsODozNDYwMzAwOSwyNDowLDQwOjMzNTU1NDU3LDU2OjM0NjA0MDMyLDcyOjEwNDg1NzYsODg6MzM1NTQ0MzMsMTA0OjMzNTU0NDMyLDEyMDoxMDI1LDEzNjoxMDQ5NjAxLDE1MjozMzU1NTQ1NiwxNjg6MzQ2MDMwMDgsMTg0OjEwNDg1NzcsMjAwOjEwMjQsMjE2OjM0NjA0MDMzLDIzMjoxLDI0ODoxMDQ5NjAwLDI1NjozMzU1NDQzMiwyNzI6MTA0ODU3NiwyODg6MzM1NTU0NTcsMzA0OjM0NjAzMDA5LDMyMDoxMDQ4NTc3LDMzNjozMzU1NTQ1NiwzNTI6MzQ2MDQwMzIsMzY4OjEwNDk2MDEsMzg0OjEwMjUsNDAwOjM0NjA0MDMzLDQxNjoxMDQ5NjAwLDQzMjoxLDQ0ODowLDQ2NDozNDYwMzAwOCw0ODA6MzM1NTQ0MzMsNDk2OjEwMjQsMjY0OjEwNDk2MDAsMjgwOjMzNTU1NDU3LDI5NjozNDYwMzAwOSwzMTI6MSwzMjg6MzM1NTQ0MzIsMzQ0OjEwNDg1NzYsMzYwOjEwMjUsMzc2OjM0NjA0MDMyLDM5MjozMzU1NDQzMyw0MDg6MzQ2MDMwMDgsNDI0OjAsNDQwOjM0NjA0MDMzLDQ1NjoxMDQ5NjAxLDQ3MjoxMDI0LDQ4ODozMzU1NTQ1Niw1MDQ6MTA0ODU3N30sezA6MTM0MjE5ODA4LDE6MTMxMDcyLDI6MTM0MjE3NzI4LDM6MzIsNDoxMzExMDQsNToxMzQzNTA4ODAsNjoxMzQzNTA4NDgsNzoyMDQ4LDg6MTM0MzQ4ODAwLDk6MTM0MjE5Nzc2LDEwOjEzMzEyMCwxMToxMzQzNDg4MzIsMTI6MjA4MCwxMzowLDE0OjEzNDIxNzc2MCwxNToxMzMxNTIsMjE0NzQ4MzY0ODoyMDQ4LDIxNDc0ODM2NDk6MTM0MzUwODgwLDIxNDc0ODM2NTA6MTM0MjE5ODA4LDIxNDc0ODM2NTE6MTM0MjE3NzI4LDIxNDc0ODM2NTI6MTM0MzQ4ODAwLDIxNDc0ODM2NTM6MTMzMTIwLDIxNDc0ODM2NTQ6MTMzMTUyLDIxNDc0ODM2NTU6MzIsMjE0NzQ4MzY1NjoxMzQyMTc3NjAsMjE0NzQ4MzY1NzoyMDgwLDIxNDc0ODM2NTg6MTMxMTA0LDIxNDc0ODM2NTk6MTM0MzUwODQ4LDIxNDc0ODM2NjA6MCwyMTQ3NDgzNjYxOjEzNDM0ODgzMiwyMTQ3NDgzNjYyOjEzNDIxOTc3NiwyMTQ3NDgzNjYzOjEzMTA3MiwxNjoxMzMxNTIsMTc6MTM0MzUwODQ4LDE4OjMyLDE5OjIwNDgsMjA6MTM0MjE5Nzc2LDIxOjEzNDIxNzc2MCwyMjoxMzQzNDg4MzIsMjM6MTMxMDcyLDI0OjAsMjU6MTMxMTA0LDI2OjEzNDM0ODgwMCwyNzoxMzQyMTk4MDgsMjg6MTM0MzUwODgwLDI5OjEzMzEyMCwzMDoyMDgwLDMxOjEzNDIxNzcyOCwyMTQ3NDgzNjY0OjEzMTA3MiwyMTQ3NDgzNjY1OjIwNDgsMjE0NzQ4MzY2NjoxMzQzNDg4MzIsMjE0NzQ4MzY2NzoxMzMxNTIsMjE0NzQ4MzY2ODozMiwyMTQ3NDgzNjY5OjEzNDM0ODgwMCwyMTQ3NDgzNjcwOjEzNDIxNzcyOCwyMTQ3NDgzNjcxOjEzNDIxOTgwOCwyMTQ3NDgzNjcyOjEzNDM1MDg4MCwyMTQ3NDgzNjczOjEzNDIxNzc2MCwyMTQ3NDgzNjc0OjEzNDIxOTc3NiwyMTQ3NDgzNjc1OjAsMjE0NzQ4MzY3NjoxMzMxMjAsMjE0NzQ4MzY3NzoyMDgwLDIxNDc0ODM2Nzg6MTMxMTA0LDIxNDc0ODM2Nzk6MTM0MzUwODQ4fV0sbD1bNDE2MDc0OTU2OSw1Mjg0ODIzMDQsMzMwMzAxNDQsMjA2NDM4NCwxMjkwMjQsODA2NCw1MDQsMjE0NzQ4MzY3OV0saD1pLkRFUz1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9W10scj0wO3I8NTY7cisrKXt2YXIgbj1zW3JdLTE7ZVtyXT10W24+Pj41XT4+PjMxLW4lMzImMX1mb3IodmFyIG89dGhpcy5fc3ViS2V5cz1bXSxpPTA7aTwxNjtpKyspe3ZhciB1PW9baV09W10sbD1jW2ldO2ZvcihyPTA7cjwyNDtyKyspdVtyLzZ8MF18PWVbKGFbcl0tMStsKSUyOF08PDMxLXIlNix1WzQrKHIvNnwwKV18PWVbMjgrKGFbcisyNF0tMStsKSUyOF08PDMxLXIlNjtmb3IodVswXT11WzBdPDwxfHVbMF0+Pj4zMSxyPTE7cjw3O3IrKyl1W3JdPXVbcl0+Pj40KihyLTEpKzM7dVs3XT11WzddPDw1fHVbN10+Pj4yN312YXIgaD10aGlzLl9pbnZTdWJLZXlzPVtdO2ZvcihyPTA7cjwxNjtyKyspaFtyXT1vWzE1LXJdfSxlbmNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9kb0NyeXB0QmxvY2sodCxlLHRoaXMuX3N1YktleXMpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9kb0NyeXB0QmxvY2sodCxlLHRoaXMuX2ludlN1YktleXMpfSxfZG9DcnlwdEJsb2NrOmZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9sQmxvY2s9dFtlXSx0aGlzLl9yQmxvY2s9dFtlKzFdLGYuY2FsbCh0aGlzLDQsMjUyNjQ1MTM1KSxmLmNhbGwodGhpcywxNiw2NTUzNSkscC5jYWxsKHRoaXMsMiw4NTg5OTM0NTkpLHAuY2FsbCh0aGlzLDgsMTY3MTE5MzUpLGYuY2FsbCh0aGlzLDEsMTQzMTY1NTc2NSk7Zm9yKHZhciBuPTA7bjwxNjtuKyspe2Zvcih2YXIgbz1yW25dLGk9dGhpcy5fbEJsb2NrLHM9dGhpcy5fckJsb2NrLGE9MCxjPTA7Yzw4O2MrKylhfD11W2NdWygoc15vW2NdKSZsW2NdKT4+PjBdO3RoaXMuX2xCbG9jaz1zLHRoaXMuX3JCbG9jaz1pXmF9dmFyIGg9dGhpcy5fbEJsb2NrO3RoaXMuX2xCbG9jaz10aGlzLl9yQmxvY2ssdGhpcy5fckJsb2NrPWgsZi5jYWxsKHRoaXMsMSwxNDMxNjU1NzY1KSxwLmNhbGwodGhpcyw4LDE2NzExOTM1KSxwLmNhbGwodGhpcywyLDg1ODk5MzQ1OSksZi5jYWxsKHRoaXMsMTYsNjU1MzUpLGYuY2FsbCh0aGlzLDQsMjUyNjQ1MTM1KSx0W2VdPXRoaXMuX2xCbG9jayx0W2UrMV09dGhpcy5fckJsb2NrfSxrZXlTaXplOjIsaXZTaXplOjIsYmxvY2tTaXplOjJ9KTtmdW5jdGlvbiBmKHQsZSl7dmFyIHI9KHRoaXMuX2xCbG9jaz4+PnRedGhpcy5fckJsb2NrKSZlO3RoaXMuX3JCbG9ja149cix0aGlzLl9sQmxvY2tePXI8PHR9ZnVuY3Rpb24gcCh0LGUpe3ZhciByPSh0aGlzLl9yQmxvY2s+Pj50XnRoaXMuX2xCbG9jaykmZTt0aGlzLl9sQmxvY2tePXIsdGhpcy5fckJsb2NrXj1yPDx0fXQuREVTPW8uX2NyZWF0ZUhlbHBlcihoKTt2YXIgZD1pLlRyaXBsZURFUz1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9rZXkud29yZHM7dGhpcy5fZGVzMT1oLmNyZWF0ZUVuY3J5cHRvcihyLmNyZWF0ZSh0LnNsaWNlKDAsMikpKSx0aGlzLl9kZXMyPWguY3JlYXRlRW5jcnlwdG9yKHIuY3JlYXRlKHQuc2xpY2UoMiw0KSkpLHRoaXMuX2RlczM9aC5jcmVhdGVFbmNyeXB0b3Ioci5jcmVhdGUodC5zbGljZSg0LDYpKSl9LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2RlczEuZW5jcnlwdEJsb2NrKHQsZSksdGhpcy5fZGVzMi5kZWNyeXB0QmxvY2sodCxlKSx0aGlzLl9kZXMzLmVuY3J5cHRCbG9jayh0LGUpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9kZXMzLmRlY3J5cHRCbG9jayh0LGUpLHRoaXMuX2RlczIuZW5jcnlwdEJsb2NrKHQsZSksdGhpcy5fZGVzMS5kZWNyeXB0QmxvY2sodCxlKX0sa2V5U2l6ZTo2LGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7dC5UcmlwbGVERVM9by5fY3JlYXRlSGVscGVyKGQpfSgpLG4uVHJpcGxlREVTKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoNikscig3KSxyKDUpLHIoMSksZnVuY3Rpb24oKXt2YXIgdD1uLGU9dC5saWIuU3RyZWFtQ2lwaGVyLHI9dC5hbGdvLG89ci5SQzQ9ZS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2tleSxlPXQud29yZHMscj10LnNpZ0J5dGVzLG49dGhpcy5fUz1bXSxvPTA7bzwyNTY7bysrKW5bb109bztvPTA7Zm9yKHZhciBpPTA7bzwyNTY7bysrKXt2YXIgcz1vJXIsYT1lW3M+Pj4yXT4+PjI0LXMlNCo4JjI1NTtpPShpK25bb10rYSklMjU2O3ZhciBjPW5bb107bltvXT1uW2ldLG5baV09Y310aGlzLl9pPXRoaXMuX2o9MH0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dFtlXV49aS5jYWxsKHRoaXMpfSxrZXlTaXplOjgsaXZTaXplOjB9KTtmdW5jdGlvbiBpKCl7Zm9yKHZhciB0PXRoaXMuX1MsZT10aGlzLl9pLHI9dGhpcy5faixuPTAsbz0wO288NDtvKyspe3I9KHIrdFtlPShlKzEpJTI1Nl0pJTI1Njt2YXIgaT10W2VdO3RbZV09dFtyXSx0W3JdPWksbnw9dFsodFtlXSt0W3JdKSUyNTZdPDwyNC04Km99cmV0dXJuIHRoaXMuX2k9ZSx0aGlzLl9qPXIsbn10LlJDND1lLl9jcmVhdGVIZWxwZXIobyk7dmFyIHM9ci5SQzREcm9wPW8uZXh0ZW5kKHtjZmc6by5jZmcuZXh0ZW5kKHtkcm9wOjE5Mn0pLF9kb1Jlc2V0OmZ1bmN0aW9uKCl7by5fZG9SZXNldC5jYWxsKHRoaXMpO2Zvcih2YXIgdD10aGlzLmNmZy5kcm9wO3Q+MDt0LS0paS5jYWxsKHRoaXMpfX0pO3QuUkM0RHJvcD1lLl9jcmVhdGVIZWxwZXIocyl9KCksbi5SQzQpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscig2KSxyKDcpLHIoNSkscigxKSxmdW5jdGlvbigpe3ZhciB0PW4sZT10LmxpYi5TdHJlYW1DaXBoZXIscj10LmFsZ28sbz1bXSxpPVtdLHM9W10sYT1yLlJhYmJpdD1lLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYscj0wO3I8NDtyKyspdFtyXT0xNjcxMTkzNSYodFtyXTw8OHx0W3JdPj4+MjQpfDQyNzgyNTUzNjAmKHRbcl08PDI0fHRbcl0+Pj44KTt2YXIgbj10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbz10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO2Zvcih0aGlzLl9iPTAscj0wO3I8NDtyKyspYy5jYWxsKHRoaXMpO2ZvcihyPTA7cjw4O3IrKylvW3JdXj1uW3IrNCY3XTtpZihlKXt2YXIgaT1lLndvcmRzLHM9aVswXSxhPWlbMV0sdT0xNjcxMTkzNSYoczw8OHxzPj4+MjQpfDQyNzgyNTUzNjAmKHM8PDI0fHM+Pj44KSxsPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGg9dT4+PjE2fDQyOTQ5MDE3NjAmbCxmPWw8PDE2fDY1NTM1JnU7Zm9yKG9bMF1ePXUsb1sxXV49aCxvWzJdXj1sLG9bM11ePWYsb1s0XV49dSxvWzVdXj1oLG9bNl1ePWwsb1s3XV49ZixyPTA7cjw0O3IrKyljLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9YO2MuY2FsbCh0aGlzKSxvWzBdPXJbMF1ecls1XT4+PjE2XnJbM108PDE2LG9bMV09clsyXV5yWzddPj4+MTZecls1XTw8MTYsb1syXT1yWzRdXnJbMV0+Pj4xNl5yWzddPDwxNixvWzNdPXJbNl1eclszXT4+PjE2XnJbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspb1tuXT0xNjcxMTkzNSYob1tuXTw8OHxvW25dPj4+MjQpfDQyNzgyNTUzNjAmKG9bbl08PDI0fG9bbl0+Pj44KSx0W2Urbl1ePW9bbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZnVuY3Rpb24gYygpe2Zvcih2YXIgdD10aGlzLl9YLGU9dGhpcy5fQyxyPTA7cjw4O3IrKylpW3JdPWVbcl07Zm9yKGVbMF09ZVswXSsxMjk1MzA3NTk3K3RoaXMuX2J8MCxlWzFdPWVbMV0rMzU0NTA1MjM3MSsoZVswXT4+PjA8aVswXT4+PjA/MTowKXwwLGVbMl09ZVsyXSs4ODYyNjMwOTIrKGVbMV0+Pj4wPGlbMV0+Pj4wPzE6MCl8MCxlWzNdPWVbM10rMTI5NTMwNzU5NysoZVsyXT4+PjA8aVsyXT4+PjA/MTowKXwwLGVbNF09ZVs0XSszNTQ1MDUyMzcxKyhlWzNdPj4+MDxpWzNdPj4+MD8xOjApfDAsZVs1XT1lWzVdKzg4NjI2MzA5MisoZVs0XT4+PjA8aVs0XT4+PjA/MTowKXwwLGVbNl09ZVs2XSsxMjk1MzA3NTk3KyhlWzVdPj4+MDxpWzVdPj4+MD8xOjApfDAsZVs3XT1lWzddKzM1NDUwNTIzNzErKGVbNl0+Pj4wPGlbNl0+Pj4wPzE6MCl8MCx0aGlzLl9iPWVbN10+Pj4wPGlbN10+Pj4wPzE6MCxyPTA7cjw4O3IrKyl7dmFyIG49dFtyXStlW3JdLG89NjU1MzUmbixhPW4+Pj4xNixjPSgobypvPj4+MTcpK28qYT4+PjE1KSthKmEsdT0oKDQyOTQ5MDE3NjAmbikqbnwwKSsoKDY1NTM1Jm4pKm58MCk7c1tyXT1jXnV9dFswXT1zWzBdKyhzWzddPDwxNnxzWzddPj4+MTYpKyhzWzZdPDwxNnxzWzZdPj4+MTYpfDAsdFsxXT1zWzFdKyhzWzBdPDw4fHNbMF0+Pj4yNCkrc1s3XXwwLHRbMl09c1syXSsoc1sxXTw8MTZ8c1sxXT4+PjE2KSsoc1swXTw8MTZ8c1swXT4+PjE2KXwwLHRbM109c1szXSsoc1syXTw8OHxzWzJdPj4+MjQpK3NbMV18MCx0WzRdPXNbNF0rKHNbM108PDE2fHNbM10+Pj4xNikrKHNbMl08PDE2fHNbMl0+Pj4xNil8MCx0WzVdPXNbNV0rKHNbNF08PDh8c1s0XT4+PjI0KStzWzNdfDAsdFs2XT1zWzZdKyhzWzVdPDwxNnxzWzVdPj4+MTYpKyhzWzRdPDwxNnxzWzRdPj4+MTYpfDAsdFs3XT1zWzddKyhzWzZdPDw4fHNbNl0+Pj4yNCkrc1s1XXwwfXQuUmFiYml0PWUuX2NyZWF0ZUhlbHBlcihhKX0oKSxuLlJhYmJpdCl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDYpLHIoNykscig1KSxyKDEpLGZ1bmN0aW9uKCl7dmFyIHQ9bixlPXQubGliLlN0cmVhbUNpcGhlcixyPXQuYWxnbyxvPVtdLGk9W10scz1bXSxhPXIuUmFiYml0TGVnYWN5PWUuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleS53b3JkcyxlPXRoaXMuY2ZnLml2LHI9dGhpcy5fWD1bdFswXSx0WzNdPDwxNnx0WzJdPj4+MTYsdFsxXSx0WzBdPDwxNnx0WzNdPj4+MTYsdFsyXSx0WzFdPDwxNnx0WzBdPj4+MTYsdFszXSx0WzJdPDwxNnx0WzFdPj4+MTZdLG49dGhpcy5fQz1bdFsyXTw8MTZ8dFsyXT4+PjE2LDQyOTQ5MDE3NjAmdFswXXw2NTUzNSZ0WzFdLHRbM108PDE2fHRbM10+Pj4xNiw0Mjk0OTAxNzYwJnRbMV18NjU1MzUmdFsyXSx0WzBdPDwxNnx0WzBdPj4+MTYsNDI5NDkwMTc2MCZ0WzJdfDY1NTM1JnRbM10sdFsxXTw8MTZ8dFsxXT4+PjE2LDQyOTQ5MDE3NjAmdFszXXw2NTUzNSZ0WzBdXTt0aGlzLl9iPTA7Zm9yKHZhciBvPTA7bzw0O28rKyljLmNhbGwodGhpcyk7Zm9yKG89MDtvPDg7bysrKW5bb11ePXJbbys0JjddO2lmKGUpe3ZhciBpPWUud29yZHMscz1pWzBdLGE9aVsxXSx1PTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLGw9MTY3MTE5MzUmKGE8PDh8YT4+PjI0KXw0Mjc4MjU1MzYwJihhPDwyNHxhPj4+OCksaD11Pj4+MTZ8NDI5NDkwMTc2MCZsLGY9bDw8MTZ8NjU1MzUmdTtmb3IoblswXV49dSxuWzFdXj1oLG5bMl1ePWwsblszXV49ZixuWzRdXj11LG5bNV1ePWgsbls2XV49bCxuWzddXj1mLG89MDtvPDQ7bysrKWMuY2FsbCh0aGlzKX19LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX1g7Yy5jYWxsKHRoaXMpLG9bMF09clswXV5yWzVdPj4+MTZeclszXTw8MTYsb1sxXT1yWzJdXnJbN10+Pj4xNl5yWzVdPDwxNixvWzJdPXJbNF1eclsxXT4+PjE2XnJbN108PDE2LG9bM109cls2XV5yWzNdPj4+MTZeclsxXTw8MTY7Zm9yKHZhciBuPTA7bjw0O24rKylvW25dPTE2NzExOTM1JihvW25dPDw4fG9bbl0+Pj4yNCl8NDI3ODI1NTM2MCYob1tuXTw8MjR8b1tuXT4+PjgpLHRbZStuXV49b1tuXX0sYmxvY2tTaXplOjQsaXZTaXplOjJ9KTtmdW5jdGlvbiBjKCl7Zm9yKHZhciB0PXRoaXMuX1gsZT10aGlzLl9DLHI9MDtyPDg7cisrKWlbcl09ZVtyXTtmb3IoZVswXT1lWzBdKzEyOTUzMDc1OTcrdGhpcy5fYnwwLGVbMV09ZVsxXSszNTQ1MDUyMzcxKyhlWzBdPj4+MDxpWzBdPj4+MD8xOjApfDAsZVsyXT1lWzJdKzg4NjI2MzA5MisoZVsxXT4+PjA8aVsxXT4+PjA/MTowKXwwLGVbM109ZVszXSsxMjk1MzA3NTk3KyhlWzJdPj4+MDxpWzJdPj4+MD8xOjApfDAsZVs0XT1lWzRdKzM1NDUwNTIzNzErKGVbM10+Pj4wPGlbM10+Pj4wPzE6MCl8MCxlWzVdPWVbNV0rODg2MjYzMDkyKyhlWzRdPj4+MDxpWzRdPj4+MD8xOjApfDAsZVs2XT1lWzZdKzEyOTUzMDc1OTcrKGVbNV0+Pj4wPGlbNV0+Pj4wPzE6MCl8MCxlWzddPWVbN10rMzU0NTA1MjM3MSsoZVs2XT4+PjA8aVs2XT4+PjA/MTowKXwwLHRoaXMuX2I9ZVs3XT4+PjA8aVs3XT4+PjA/MTowLHI9MDtyPDg7cisrKXt2YXIgbj10W3JdK2Vbcl0sbz02NTUzNSZuLGE9bj4+PjE2LGM9KChvKm8+Pj4xNykrbyphPj4+MTUpK2EqYSx1PSgoNDI5NDkwMTc2MCZuKSpufDApKygoNjU1MzUmbikqbnwwKTtzW3JdPWNedX10WzBdPXNbMF0rKHNbN108PDE2fHNbN10+Pj4xNikrKHNbNl08PDE2fHNbNl0+Pj4xNil8MCx0WzFdPXNbMV0rKHNbMF08PDh8c1swXT4+PjI0KStzWzddfDAsdFsyXT1zWzJdKyhzWzFdPDwxNnxzWzFdPj4+MTYpKyhzWzBdPDwxNnxzWzBdPj4+MTYpfDAsdFszXT1zWzNdKyhzWzJdPDw4fHNbMl0+Pj4yNCkrc1sxXXwwLHRbNF09c1s0XSsoc1szXTw8MTZ8c1szXT4+PjE2KSsoc1syXTw8MTZ8c1syXT4+PjE2KXwwLHRbNV09c1s1XSsoc1s0XTw8OHxzWzRdPj4+MjQpK3NbM118MCx0WzZdPXNbNl0rKHNbNV08PDE2fHNbNV0+Pj4xNikrKHNbNF08PDE2fHNbNF0+Pj4xNil8MCx0WzddPXNbN10rKHNbNl08PDh8c1s2XT4+PjI0KStzWzVdfDB9dC5SYWJiaXRMZWdhY3k9ZS5fY3JlYXRlSGVscGVyKGEpfSgpLG4uUmFiYml0TGVnYWN5KX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO3ZhciBuPXRoaXMmJnRoaXMuX19kZWNvcmF0ZXx8ZnVuY3Rpb24odCxlLHIsbil7dmFyIG8saT1hcmd1bWVudHMubGVuZ3RoLHM9aTwzP2U6bnVsbD09PW4/bj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscik6bjtpZihcIm9iamVjdFwiPT10eXBlb2YgUmVmbGVjdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSlzPVJlZmxlY3QuZGVjb3JhdGUodCxlLHIsbik7ZWxzZSBmb3IodmFyIGE9dC5sZW5ndGgtMTthPj0wO2EtLSkobz10W2FdKSYmKHM9KGk8Mz9vKHMpOmk+Mz9vKGUscixzKTpvKGUscikpfHxzKTtyZXR1cm4gaT4zJiZzJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHMpLHN9LG89dGhpcyYmdGhpcy5fX21ldGFkYXRhfHxmdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiBSZWZsZWN0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhKXJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKHQsZSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IGk9cig1Nikscz1yKDEzKSxhPXIoOSksYz1yKDIxKSx1PXIoNTgpLGw9cig1OSk7ZnVuY3Rpb24gaCh0LGUpe2NvbnN0IHI9Yy5ldGhbZV07aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCB0aGUgbWV0aG9kL3Byb3BlcnR5IG5hbWVkICR7ZS50b1N0cmluZygpfWApO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHIuZXhlY3V0ZS5jYWxsKHIsdGhpcywuLi5hcmd1bWVudHMpfX0pfWUuVFJBTlNBQ1RJT05fRkVUQ0hfREVMQVk9MmUzLGUuaW5qZWN0PWg7Y2xhc3MgZntjb25zdHJ1Y3Rvcih0KXt0aGlzLnByb3ZpZGVyPXQsdGhpcy5yZXF1ZXN0cz1uZXcgTWFwfWFzeW5jIHNlbmRBc3luYyh0KXtpZighdGhpcy5wcm92aWRlcil0aHJvdyBzLkludmFsaWRQcm92aWRlcigpO2xldCBlPWkudG9QYXlsb2FkKHQubWV0aG9kLHQucGFyYW1zKTtjb25zdCByPWEuZnV0dXJlKCk7cmV0dXJuIHRoaXMucmVxdWVzdHMuc2V0KGUuaWQsciksdGhpcy5wcm92aWRlci5zZW5kQXN5bmMoZSwodCxuKT0+e3RoaXMucmVxdWVzdHMuZGVsZXRlKGUuaWQpLHQ/ci5yZWplY3QodCk6aS5pc1ZhbGlkUmVzcG9uc2Uobik/ci5yZXNvbHZlKG4ucmVzdWx0KTpyLnJlamVjdChzLkludmFsaWRSZXNwb25zZShuKSl9KSxyfXNldFByb3ZpZGVyKHQpe3RoaXMucHJvdmlkZXI9dH1hc3luYyBnZXRDb25maXJtZWRUcmFuc2FjdGlvbih0KXtjb25zdCBlPWF3YWl0IHRoaXMud2FpdEZvckNvbXBsZXRpb24odCk7aWYodGhpcy5pc0ZhaWx1cmUoZSkpdGhyb3cgbmV3IEVycm9yKGBUcmFuc2FjdGlvbiBcIiR7dH1cIiBmYWlsZWRgKTtyZXR1cm4gZX1hc3luYyB3YWl0Rm9yQ29tcGxldGlvbih0LHIpe2lmKGF3YWl0IHRoaXMuaXNUeERyb3BwZWQodCxyKSl7Y29uc3QgZT1hd2FpdCB0aGlzLmdldFRyYW5zYWN0aW9uQW5kUmVjZWlwdCh0KTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxlLHtzdGF0dXM6dS5UcmFuc2FjdGlvblN0YXR1cy5mYWlsZWR9KX1mb3IoOzspe2NvbnN0IHI9YXdhaXQgdGhpcy5nZXRUcmFuc2FjdGlvbkFuZFJlY2VpcHQodCk7aWYoIXRoaXMuaXNQZW5kaW5nKHIpJiZyLnJlY2VpcHQpcmV0dXJuIE9iamVjdC5hc3NpZ24oe30scix7c3RhdHVzOnRoaXMuaXNGYWlsdXJlKHIpP3UuVHJhbnNhY3Rpb25TdGF0dXMuZmFpbGVkOnUuVHJhbnNhY3Rpb25TdGF0dXMuY29uZmlybWVkfSk7YXdhaXQgbC5zbGVlcChlLlRSQU5TQUNUSU9OX0ZFVENIX0RFTEFZKX19YXN5bmMgZ2V0VHJhbnNhY3Rpb24odCl7bGV0IGUscixuO3RyeXtjb25zdCB0PShhd2FpdCB0aGlzLmV0aF9hY2NvdW50cygpKVswXTt0JiYoZT1hd2FpdCB0aGlzLmV0aF9nZXRUcmFuc2FjdGlvbkNvdW50KHQsXCJsYXRlc3RcIikpfWNhdGNoKHQpe2U9bnVsbH10cnl7aWYobnVsbD09KHI9YXdhaXQgdGhpcy5ldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2godCkpKXJldHVybiBudWxsfWNhdGNoKHQpe3JldHVybiBudWxsfWlmKG51bGw9PXIuYmxvY2tOdW1iZXIpe2lmKG51bGwhPWUpe2lmKHIubm9uY2U8ZSl7cmV0dXJue2hhc2g6dCx0eXBlOnUuVHJhbnNhY3Rpb25UeXBlLnJlcGxhY2VkLG5vbmNlOnIubm9uY2V9fWlmKHIubm9uY2U+ZSl7cmV0dXJue2hhc2g6dCx0eXBlOnUuVHJhbnNhY3Rpb25UeXBlLnF1ZXVlZCxub25jZTpyLm5vbmNlfX19cmV0dXJuIE9iamVjdC5hc3NpZ24oe3R5cGU6dS5UcmFuc2FjdGlvblR5cGUucGVuZGluZ30scil9dHJ5e2lmKG51bGw9PShuPWF3YWl0IHRoaXMuZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdCh0KSl8fDA9PT1uLnN0YXR1cyl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe3R5cGU6dS5UcmFuc2FjdGlvblR5cGUucmV2ZXJ0ZWR9LHIpfX1jYXRjaCh0KXtyZXR1cm4gbnVsbH1yZXR1cm4gT2JqZWN0LmFzc2lnbih7dHlwZTp1LlRyYW5zYWN0aW9uVHlwZS5jb25maXJtZWR9LHIse3JlY2VpcHQ6bn0pfWFzeW5jIGlzVHhEcm9wcGVkKHQscj0xNSl7bGV0IG49cjtmb3IoO24+MDspe2lmKG51bGwhPT1hd2FpdCB0aGlzLmdldFRyYW5zYWN0aW9uQW5kUmVjZWlwdCh0KSlyZXR1cm4hMTtuLT0xLGF3YWl0IGwuc2xlZXAoZS5UUkFOU0FDVElPTl9GRVRDSF9ERUxBWSl9cmV0dXJuITB9YXN5bmMgZ2V0VHJhbnNhY3Rpb25BbmRSZWNlaXB0KHQpe2NvbnN0W2Uscl09YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuZXRoX2dldFRyYW5zYWN0aW9uQnlIYXNoKHQpLHRoaXMuZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdCh0KV0pO3JldHVybiBlP09iamVjdC5hc3NpZ24oe30sZSx7cmVjZWlwdDpyfSk6bnVsbH1pc1BlbmRpbmcodCl7cmV0dXJuIHQmJm51bGw9PT10LmJsb2NrTnVtYmVyfWlzRmFpbHVyZSh0KXtyZXR1cm4gdCYmKCF0LnJlY2VpcHR8fDA9PT10LnJlY2VpcHQuc3RhdHVzKX19bihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwid2ViM19jbGllbnRWZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJ3ZWIzX3NoYTNcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcIm5ldF92ZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJuZXRfcGVlckNvdW50XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJuZXRfbGlzdGVuaW5nXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfcHJvdG9jb2xWZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfc3luY2luZ1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2NvaW5iYXNlXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfbWluaW5nXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfaGFzaHJhdGVcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nYXNQcmljZVwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2FjY291bnRzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfYmxvY2tOdW1iZXJcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRCYWxhbmNlXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0U3RvcmFnZUF0XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VHJhbnNhY3Rpb25Db3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5SGFzaFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5TnVtYmVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tIYXNoXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tOdW1iZXJcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRDb2RlXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfc2lnblwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX3NlbmRUcmFuc2FjdGlvblwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX3NlbmRSYXdUcmFuc2FjdGlvblwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2NhbGxcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9lc3RpbWF0ZUdhc1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEJsb2NrQnlIYXNoXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0QmxvY2tCeU51bWJlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldFRyYW5zYWN0aW9uQnlIYXNoXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrTnVtYmVyQW5kSW5kZXhcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRUcmFuc2FjdGlvblJlY2VpcHRcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRVbmNsZUJ5QmxvY2tIYXNoQW5kSW5kZXhcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRVbmNsZUJ5QmxvY2tOdW1iZXJBbmRJbmRleFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX25ld0ZpbHRlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX25ld0Jsb2NrRmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfbmV3UGVuZGluZ1RyYW5zYWN0aW9uRmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfdW5pbnN0YWxsRmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0RmlsdGVyQ2hhbmdlc1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEZpbHRlckxvZ3NcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRMb2dzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0V29ya1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX3N1Ym1pdFdvcmtcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9zdWJtaXRIYXNocmF0ZVwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX3Bvc3RcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInNoaF92ZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJzaGhfbmV3SWRlbnRpdHlcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInNoaF9oYXNJZGVudGl0eVwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX25ld0dyb3VwXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJzaGhfYWRkVG9Hcm91cFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX25ld0ZpbHRlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX3VuaW5zdGFsbEZpbHRlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX2dldEZpbHRlckNoYW5nZXNcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInNoaF9nZXRNZXNzYWdlc1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfdW5sb2NrQWNjb3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfbmV3QWNjb3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfbGlzdEFjY291bnRzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJwZXJzb25hbF9sb2NrQWNjb3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfaW1wb3J0UmF3S2V5XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJwZXJzb25hbF9zZW5kVHJhbnNhY3Rpb25cIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInBlcnNvbmFsX3NpZ25cIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInBlcnNvbmFsX2VjUmVjb3ZlclwiLHZvaWQgMCksZS5SZXF1ZXN0TWFuYWdlcj1mfSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbih0LHIpe2lmKCF0KXRocm93IG5ldyBFcnJvcihcImpzb25ycGMgbWV0aG9kIHNob3VsZCBiZSBzcGVjaWZpZWQhXCIpO2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcihganNvbnJwYyBtdXN0IGJlIGEgc3RyaW5nLCBnb3QgJHt0eXBlb2YgdH0hYCk7cmV0dXJuIGUubWVzc2FnZUlkKysse2pzb25ycGM6XCIyLjBcIixpZDplLm1lc3NhZ2VJZCxtZXRob2Q6dCxwYXJhbXM6cnx8W119fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGUubWVzc2FnZUlkPTAsZS50b1BheWxvYWQ9bixlLmlzVmFsaWRSZXNwb25zZT1mdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90LmV2ZXJ5KGUpOmUodCk7ZnVuY3Rpb24gZSh0KXtyZXR1cm4hKCF0fHx0LmVycm9yfHxcIjIuMFwiIT09dC5qc29ucnBjfHxcIm51bWJlclwiIT10eXBlb2YgdC5pZHx8bnVsbD09dC5yZXN1bHQmJnZvaWQgMD09PXQucmVzdWx0KX19LGUudG9CYXRjaFBheWxvYWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuKHQubWV0aG9kLHQucGFyYW1zKX0pfX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGZ1bmN0aW9uKHQpe3RbdC5ST1VORF9VUD0wXT1cIlJPVU5EX1VQXCIsdFt0LlJPVU5EX0RPV049MV09XCJST1VORF9ET1dOXCIsdFt0LlJPVU5EX0NFPTJdPVwiUk9VTkRfQ0VcIix0W3QuUk9VTkRfRkxPT1I9M109XCJST1VORF9GTE9PUlwiLHRbdC5ST1VORF9IQUxGX1VQPTRdPVwiUk9VTkRfSEFMRl9VUFwiLHRbdC5ST1VORF9IQUxGX0RPV049NV09XCJST1VORF9IQUxGX0RPV05cIix0W3QuUk9VTkRfSEFMRl9FVkVOPTZdPVwiUk9VTkRfSEFMRl9FVkVOXCIsdFt0LlJPVU5EX0hBTEZfQ0VJTD03XT1cIlJPVU5EX0hBTEZfQ0VJTFwiLHRbdC5ST1VORF9IQUxGX0ZMT09SPThdPVwiUk9VTkRfSEFMRl9GTE9PUlwifShlLkJpZ051bWJlclJvdW5kaW5nTW9kZXx8KGUuQmlnTnVtYmVyUm91bmRpbmdNb2RlPXt9KSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXt0LnBlbmRpbmc9XCJwZW5kaW5nXCIsdC5jb25maXJtZWQ9XCJjb25maXJtZWRcIix0LmZhaWxlZD1cImZhaWxlZFwifShlLlRyYW5zYWN0aW9uU3RhdHVzfHwoZS5UcmFuc2FjdGlvblN0YXR1cz17fSkpLGZ1bmN0aW9uKHQpe3QucXVldWVkPVwicXVldWVkXCIsdC5kcm9wcGVkPVwiZHJvcHBlZFwiLHQucmVwbGFjZWQ9XCJyZXBsYWNlZFwiLHQucGVuZGluZz1cInBlbmRpbmdcIix0LnJldmVydGVkPVwicmV2ZXJ0ZWRcIix0LmNvbmZpcm1lZD1cImNvbmZpcm1lZFwifShlLlRyYW5zYWN0aW9uVHlwZXx8KGUuVHJhbnNhY3Rpb25UeXBlPXt9KSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLnNsZWVwPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUHJvbWlzZShlPT5zZXRUaW1lb3V0KGUsdCkpfX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigzKSxvPXIoOCksaT1yKDEzKSxzPXIoMTUpO2UuU29saWRpdHlGdW5jdGlvbj1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUscil7dGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMuanNvbj1lLHRoaXMuX2lucHV0VHlwZXM9ZS5pbnB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KSx0aGlzLl9vdXRwdXRUeXBlcz1lLm91dHB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KSx0aGlzLl9jb25zdGFudD1lLmNvbnN0YW50LHRoaXMuX3BheWFibGU9ZS5wYXlhYmxlLHRoaXMubmVlZHNUb0JlVHJhbnNhY3Rpb249XCJwYXlhYmxlXCJpbiBlJiZlLnBheWFibGV8fFwiY29uc3RhbnRcImluIGUmJiFlLmNvbnN0YW50fHxcInN0YXRlTXV0YWJpbGl0eVwiaW4gZSYmXCJub25wYXlhYmxlXCI9PT1lLnN0YXRlTXV0YWJpbGl0eSx0aGlzLl9uYW1lPW4udHJhbnNmb3JtVG9GdWxsTmFtZShlKSx0aGlzLl9hZGRyZXNzPXJ9ZXh0cmFjdERlZmF1bHRCbG9jayh0KXtpZih0Lmxlbmd0aD50aGlzLl9pbnB1dFR5cGVzLmxlbmd0aCYmIW4uaXNPYmplY3QodFt0Lmxlbmd0aC0xXSkpcmV0dXJuIG8uaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXIodC5wb3AoKSl9dmFsaWRhdGVBcmdzKHQpe2lmKHQuc29tZSh0PT52b2lkIDA9PT10KSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGNhbGwsIHNvbWUgYXJndW1lbnRzIGFyZSB1bmRlZmluZWRcIik7bGV0IGU9dC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuISghMD09PW4uaXNPYmplY3QodCkmJiExPT09bi5pc0FycmF5KHQpJiYhMT09PW4uaXNCaWdOdW1iZXIodCkpfSk7aWYoZS5sZW5ndGghPT10aGlzLl9pbnB1dFR5cGVzLmxlbmd0aCl0aHJvdyBpLkludmFsaWROdW1iZXJPZlNvbGlkaXR5QXJncyhlLmxlbmd0aCx0aGlzLl9pbnB1dFR5cGVzLmxlbmd0aCl9dG9QYXlsb2FkKHQpe2xldCBlPXt0bzp2b2lkIDAsZGF0YTp2b2lkIDAsdmFsdWU6dm9pZCAwLGZyb206dm9pZCAwfTtyZXR1cm4gdC5sZW5ndGg+dGhpcy5faW5wdXRUeXBlcy5sZW5ndGgmJm4uaXNPYmplY3QodFt0Lmxlbmd0aC0xXSkmJihlPXRbdC5sZW5ndGgtMV0pLHRoaXMudmFsaWRhdGVBcmdzKHQpLGUudG89dGhpcy5fYWRkcmVzcyxlLmRhdGE9XCIweFwiK3RoaXMuc2lnbmF0dXJlKCkrcy5jb2Rlci5lbmNvZGVQYXJhbXModGhpcy5faW5wdXRUeXBlcyx0KSxlfXNpZ25hdHVyZSgpe3JldHVybiBuLnNoYTModGhpcy5fbmFtZSkuc2xpY2UoMCw4KX11bnBhY2tPdXRwdXQodCl7aWYoIXQpcmV0dXJuO2NvbnN0IGU9dC5sZW5ndGg+PTI/dC5zbGljZSgyKTp0O2xldCByPXMuY29kZXIuZGVjb2RlUGFyYW1zKHRoaXMuX291dHB1dFR5cGVzLGUpO3JldHVybiAxPT09ci5sZW5ndGg/clswXTpyfWFzeW5jIGV4ZWN1dGUodCwuLi5lKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjYWxsIGZ1bmN0aW9uICR7dGhpcy5kaXNwbGF5TmFtZSgpfSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlcXVlc3RNYW5hZ2VyYCk7aWYodGhpcy5uZWVkc1RvQmVUcmFuc2FjdGlvbil7Y29uc3Qgcj10aGlzLnRvUGF5bG9hZChlKTtpZihyLnZhbHVlPjAmJiF0aGlzLl9wYXlhYmxlKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBzZW5kIHZhbHVlIHRvIG5vbi1wYXlhYmxlIGZ1bmN0aW9uXCIpO2lmKCFyLmZyb20pdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIFwiZnJvbVwiIGluIHRyYW5zYWN0aW9uIG9wdGlvbnMnKTtyZXR1cm4gYXdhaXQgdC5ldGhfc2VuZFRyYW5zYWN0aW9uKHIpfXtjb25zdCByPXRoaXMuZXh0cmFjdERlZmF1bHRCbG9jayhlKSxuPXRoaXMudG9QYXlsb2FkKGUpLG89YXdhaXQgdC5ldGhfY2FsbChuLHIpO3JldHVybiB0aGlzLnVucGFja091dHB1dChvKX19ZXN0aW1hdGVHYXMoLi4udCl7bGV0IGU9dGhpcy50b1BheWxvYWQodCk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuZXRoX2VzdGltYXRlR2FzKGUpfWdldERhdGEoLi4udCl7cmV0dXJuIHRoaXMudG9QYXlsb2FkKHQpLmRhdGF9ZGlzcGxheU5hbWUoKXtyZXR1cm4gbi5leHRyYWN0RGlzcGxheU5hbWUodGhpcy5fbmFtZSl9dHlwZU5hbWUoKXtyZXR1cm4gbi5leHRyYWN0VHlwZU5hbWUodGhpcy5fbmFtZSl8fFwidm9pZFwifWF0dGFjaFRvQ29udHJhY3QodCl7bGV0IGU9dGhpcy5kaXNwbGF5TmFtZSgpO2NvbnN0IHI9dGhpcyxuPU9iamVjdC5hc3NpZ24oZnVuY3Rpb24oLi4udCl7Y29uc3QgZT10aGlzLnJlcXVlc3RNYW5hZ2VyfHxyLnJlcXVlc3RNYW5hZ2VyO3JldHVybiByLmV4ZWN1dGUoZSwuLi50KX0se2VzdGltYXRlR2FzOnRoaXMuZXN0aW1hdGVHYXMuYmluZCh0aGlzKX0pO3RbZV18fCh0W2VdPW4pLHRbZV1bdGhpcy50eXBlTmFtZSgpXT1ufX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlQWRkcmVzcz1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXRJbnQsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0QWRkcmVzc30pfWlzVHlwZSh0KXtyZXR1cm4hIXQubWF0Y2goL2FkZHJlc3MoXFxbKFswLTldKilcXF0pPy8pfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlQm9vbD1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXRCb29sLG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dEJvb2x9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9eYm9vbChcXFsoWzAtOV0qKVxcXSkqJC8pfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlSW50PWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dEludCxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXRJbnR9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9eaW50KFswLTldKik/KFxcWyhbMC05XSopXFxdKSokLyl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigyKSxvPXIoNCk7ZS5Tb2xpZGl0eVR5cGVVSW50PWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dEludCxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXRVSW50fSl9aXNUeXBlKHQpe3JldHVybiEhdC5tYXRjaCgvXnVpbnQoWzAtOV0qKT8oXFxbKFswLTldKilcXF0pKiQvKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cig0KTtlLlNvbGlkaXR5VHlwZUR5bmFtaWNCeXRlcz1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXREeW5hbWljQnl0ZXMsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0RHluYW1pY0J5dGVzfSl9aXNUeXBlKHQpe3JldHVybiEhdC5tYXRjaCgvXmJ5dGVzKFxcWyhbMC05XSopXFxdKSokLyl9aXNEeW5hbWljVHlwZSgpe3JldHVybiEwfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlU3RyaW5nPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dFN0cmluZyxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXRTdHJpbmd9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9ec3RyaW5nKFxcWyhbMC05XSopXFxdKSokLyl9aXNEeW5hbWljVHlwZSgpe3JldHVybiEwfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlUmVhbD1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXRSZWFsLG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dFJlYWx9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9yZWFsKFswLTldKik/KFxcWyhbMC05XSopXFxdKT8vKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cig0KTtlLlNvbGlkaXR5VHlwZVVSZWFsPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dFJlYWwsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0VVJlYWx9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9edXJlYWwoWzAtOV0qKT8oXFxbKFswLTldKilcXF0pKiQvKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cig0KTtlLlNvbGlkaXR5VHlwZUJ5dGVzPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dEJ5dGVzLG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dEJ5dGVzfSl9aXNUeXBlKHQpe3JldHVybiEhdC5tYXRjaCgvXmJ5dGVzKFswLTldezEsfSkoXFxbKFswLTldKilcXF0pKiQvKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDMpLG89cig4KSxpPXIoMjYpLHM9cigyNyk7ZS5BbGxTb2xpZGl0eUV2ZW50cz1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUscil7dGhpcy5fcmVxdWVzdE1hbmFnZXI9dCx0aGlzLl9qc29uPWUsdGhpcy5fYWRkcmVzcz1yfWVuY29kZSh0PXt9KXtsZXQgZT17YWRkcmVzczp0aGlzLl9hZGRyZXNzfTtyZXR1cm5bXCJmcm9tQmxvY2tcIixcInRvQmxvY2tcIl0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT10W2VdfSkuZm9yRWFjaChmdW5jdGlvbihyKXtlW3JdPW8uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcih0W3JdKX0pLGV9ZGVjb2RlKHQpe3QuZGF0YT10LmRhdGF8fFwiXCI7bGV0IGU9bi5pc0FycmF5KHQudG9waWNzKSYmbi5pc1N0cmluZyh0LnRvcGljc1swXSk/dC50b3BpY3NbMF0uc2xpY2UoMik6XCJcIixyPXRoaXMuX2pzb24uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBlPT09bi5zaGEzKG4udHJhbnNmb3JtVG9GdWxsTmFtZSh0KSl9KVswXTtyZXR1cm4gcj9uZXcgaS5Tb2xpZGl0eUV2ZW50KHRoaXMuX3JlcXVlc3RNYW5hZ2VyLHIsdGhpcy5fYWRkcmVzcykuZGVjb2RlKHQpOm8ub3V0cHV0TG9nRm9ybWF0dGVyKHQpfWFzeW5jIGV4ZWN1dGUodCl7bGV0IGU9dGhpcy5lbmNvZGUodCkscj10aGlzLmRlY29kZS5iaW5kKHRoaXMpO3JldHVybiBuZXcgcy5FdGhGaWx0ZXIodGhpcy5fcmVxdWVzdE1hbmFnZXIsZSxyKX1hdHRhY2hUb0NvbnRyYWN0KHQpe2xldCBlPXRoaXMuZXhlY3V0ZS5iaW5kKHRoaXMpO3QuYWxsRXZlbnRzPWV9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigzKSxvPXIoMTUpLGk9cigyNCkscz1yKDkpO2Z1bmN0aW9uIGEodCxlKXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuXCJjb25zdHJ1Y3RvclwiPT09dC50eXBlJiZ0LmlucHV0cy5sZW5ndGg9PT1lLmxlbmd0aH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pbnB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KX0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gby5jb2Rlci5lbmNvZGVQYXJhbXModCxlKX0pWzBdfHxcIlwifWUuQ29udHJhY3RGYWN0b3J5PWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMuYWJpPWV9YXN5bmMgZGVwbG95KC4uLnQpe2xldCBlLHI9dFt0Lmxlbmd0aC0xXTtpZihuLmlzT2JqZWN0KHIpJiYhbi5pc0FycmF5KHIpJiYoZT10LnBvcCgpKSwhZSl0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIG9wdGlvbnMgb2JqZWN0XCIpO2lmKCFlLmRhdGF8fFwic3RyaW5nXCIhPXR5cGVvZiBlLmRhdGEpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBvcHRpb25zLmRhdGFcIik7aWYoZS52YWx1ZT4wJiYhKHRoaXMuYWJpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm5cImNvbnN0cnVjdG9yXCI9PT1lLnR5cGUmJmUuaW5wdXRzLmxlbmd0aD09PXQubGVuZ3RofSlbMF18fHt9KS5wYXlhYmxlKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBzZW5kIHZhbHVlIHRvIG5vbi1wYXlhYmxlIGNvbnN0cnVjdG9yXCIpO2xldCBvPWEodGhpcy5hYmksdCk7ZS5kYXRhKz1vLGUuZ2FzfHwoZS5nYXM9YXdhaXQgdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfZXN0aW1hdGVHYXMoZSkpO2NvbnN0IGk9YXdhaXQgdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfc2VuZFRyYW5zYWN0aW9uKGUpLGM9YXdhaXQgYXN5bmMgZnVuY3Rpb24odCxlKXtjb25zdCByPXMuZnV0dXJlKCk7bGV0IG49MDtjb25zdCBvPSgpPT57KytuPjUwP3IucmVqZWN0KG5ldyBFcnJvcihcIkNvbnRyYWN0IHRyYW5zYWN0aW9uIGNvdWxkbid0IGJlIGZvdW5kIGFmdGVyIDUwIGJsb2Nrc1wiKSk6dC5ldGhfZ2V0VHJhbnNhY3Rpb25SZWNlaXB0KGUpLnRoZW4odD0+e3QmJnQuYmxvY2tIYXNoP3IucmVzb2x2ZSh0KTpzZXRUaW1lb3V0KG8sMWUzKX0sdD0+ci5yZWplY3QodCkpfTtvKCk7Y29uc3QgaT1hd2FpdCByLGE9YXdhaXQgdC5ldGhfZ2V0Q29kZShpLmNvbnRyYWN0QWRkcmVzcyxcImxhdGVzdFwiKTtpZihhLmxlbmd0aD4zKXJldHVybiBpLmNvbnRyYWN0QWRkcmVzczt0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihcIlRoZSBjb250cmFjdCBjb2RlIGNvdWxkbid0IGJlIHN0b3JlZCwgcGxlYXNlIGNoZWNrIHlvdXIgZ2FzIGFtb3VudC5cIikse3Jlc3BvbnNlOmEscmVjZWlwdDppfSl9KHRoaXMucmVxdWVzdE1hbmFnZXIsaSksdT1hd2FpdCB0aGlzLmF0KGMpO3JldHVybiB1LnRyYW5zYWN0aW9uSGFzaD1pLHV9YXN5bmMgYXQodCl7aWYoIW4uaXNBZGRyZXNzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYWRkcmVzcyAke0pTT04uc3RyaW5naWZ5KHQpfWApO3JldHVybiBuZXcgaS5Db250cmFjdCh0aGlzLnJlcXVlc3RNYW5hZ2VyLHRoaXMuYWJpLHQpfWFzeW5jIGdldERhdGEoLi4udCl7bGV0IGU9e2RhdGE6dm9pZCAwfTtjb25zdCByPXRbdC5sZW5ndGgtMV07aWYobi5pc09iamVjdChyKSYmIW4uaXNBcnJheShyKSYmKGU9dC5wb3AoKSksIWUpdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBvcHRpb25zIG9iamVjdFwiKTtpZighZS5kYXRhfHxcInN0cmluZ1wiIT10eXBlb2YgZS5kYXRhKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgb3B0aW9ucy5kYXRhXCIpO2NvbnN0IG89YSh0aGlzLmFiaSx0KTtyZXR1cm4gZS5kYXRhKz1vLGUuZGF0YX19fV0pO1xuZXhwb3J0IGRlZmF1bHQgZXRoY29ubmVjdDsiLCIvLyB0c2xpbnQ6ZGlzYWJsZVxuXG5pbXBvcnQgWCBmcm9tICcuL2V0aC1jb25uZWN0LmVzbSdcbnR5cGUgRVRIQyA9IHR5cGVvZiBpbXBvcnQoJy4vZXRoLWNvbm5lY3QnKVxuY29uc3QgRXRoQ29ubmVjdDogRVRIQyA9IFhcbmV4cG9ydCA9IEV0aENvbm5lY3RcbiIsImV4cG9ydCBkZWZhdWx0IFtcblx0e1xuXHRcdGlucHV0czogW1xuXHRcdFx0e1xuXHRcdFx0XHRpbnRlcm5hbFR5cGU6ICdhZGRyZXNzJyxcblx0XHRcdFx0bmFtZTogJ19wb2FwQ29udHJhY3RBZGRyZXNzJyxcblx0XHRcdFx0dHlwZTogJ2FkZHJlc3MnLFxuXHRcdFx0fSxcblx0XHRcdHsgaW50ZXJuYWxUeXBlOiAnYWRkcmVzcycsIG5hbWU6ICdfdmFsaWRTaWduZXInLCB0eXBlOiAnYWRkcmVzcycgfSxcblx0XHRdLFxuXHRcdHBheWFibGU6IGZhbHNlLFxuXHRcdHN0YXRlTXV0YWJpbGl0eTogJ25vbnBheWFibGUnLFxuXHRcdHR5cGU6ICdjb25zdHJ1Y3RvcicsXG5cdH0sXG5cdHtcblx0XHRhbm9ueW1vdXM6IGZhbHNlLFxuXHRcdGlucHV0czogW1xuXHRcdFx0e1xuXHRcdFx0XHRpbmRleGVkOiBmYWxzZSxcblx0XHRcdFx0aW50ZXJuYWxUeXBlOiAnYnl0ZXMnLFxuXHRcdFx0XHRuYW1lOiAnX3NpZ25lZE1lc3NhZ2UnLFxuXHRcdFx0XHR0eXBlOiAnYnl0ZXMnLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdG5hbWU6ICdWZXJpZmllZFNpZ25hdHVyZScsXG5cdFx0dHlwZTogJ2V2ZW50Jyxcblx0fSxcblx0e1xuXHRcdGNvbnN0YW50OiBmYWxzZSxcblx0XHRpbnB1dHM6IFtcblx0XHRcdHsgaW50ZXJuYWxUeXBlOiAndWludDI1NicsIG5hbWU6ICdldmVudF9pZCcsIHR5cGU6ICd1aW50MjU2JyB9LFxuXHRcdFx0eyBpbnRlcm5hbFR5cGU6ICdhZGRyZXNzJywgbmFtZTogJ3JlY2VpdmVyJywgdHlwZTogJ2FkZHJlc3MnIH0sXG5cdFx0XHR7IGludGVybmFsVHlwZTogJ2J5dGVzJywgbmFtZTogJ3NpZ25lZE1lc3NhZ2UnLCB0eXBlOiAnYnl0ZXMnIH0sXG5cdFx0XSxcblx0XHRuYW1lOiAnbWludFRva2VuJyxcblx0XHRvdXRwdXRzOiBbeyBpbnRlcm5hbFR5cGU6ICdib29sJywgbmFtZTogJycsIHR5cGU6ICdib29sJyB9XSxcblx0XHRwYXlhYmxlOiBmYWxzZSxcblx0XHRzdGF0ZU11dGFiaWxpdHk6ICdub25wYXlhYmxlJyxcblx0XHR0eXBlOiAnZnVuY3Rpb24nLFxuXHR9LFxuXHR7XG5cdFx0Y29uc3RhbnQ6IHRydWUsXG5cdFx0aW5wdXRzOiBbXSxcblx0XHRuYW1lOiAnbmFtZScsXG5cdFx0b3V0cHV0czogW3sgaW50ZXJuYWxUeXBlOiAnc3RyaW5nJywgbmFtZTogJycsIHR5cGU6ICdzdHJpbmcnIH1dLFxuXHRcdHBheWFibGU6IGZhbHNlLFxuXHRcdHN0YXRlTXV0YWJpbGl0eTogJ3ZpZXcnLFxuXHRcdHR5cGU6ICdmdW5jdGlvbicsXG5cdH0sXG5cdHtcblx0XHRjb25zdGFudDogdHJ1ZSxcblx0XHRpbnB1dHM6IFtdLFxuXHRcdG5hbWU6ICdvd25lcicsXG5cdFx0b3V0cHV0czogW3sgaW50ZXJuYWxUeXBlOiAnYWRkcmVzcycsIG5hbWU6ICcnLCB0eXBlOiAnYWRkcmVzcycgfV0sXG5cdFx0cGF5YWJsZTogZmFsc2UsXG5cdFx0c3RhdGVNdXRhYmlsaXR5OiAndmlldycsXG5cdFx0dHlwZTogJ2Z1bmN0aW9uJyxcblx0fSxcblx0e1xuXHRcdGNvbnN0YW50OiB0cnVlLFxuXHRcdGlucHV0czogW3sgaW50ZXJuYWxUeXBlOiAnYnl0ZXMnLCBuYW1lOiAnJywgdHlwZTogJ2J5dGVzJyB9XSxcblx0XHRuYW1lOiAncHJvY2Vzc2VkJyxcblx0XHRvdXRwdXRzOiBbeyBpbnRlcm5hbFR5cGU6ICdib29sJywgbmFtZTogJycsIHR5cGU6ICdib29sJyB9XSxcblx0XHRwYXlhYmxlOiBmYWxzZSxcblx0XHRzdGF0ZU11dGFiaWxpdHk6ICd2aWV3Jyxcblx0XHR0eXBlOiAnZnVuY3Rpb24nLFxuXHR9LFxuXHR7XG5cdFx0Y29uc3RhbnQ6IHRydWUsXG5cdFx0aW5wdXRzOiBbXSxcblx0XHRuYW1lOiAndmFsaWRTaWduZXInLFxuXHRcdG91dHB1dHM6IFt7IGludGVybmFsVHlwZTogJ2FkZHJlc3MnLCBuYW1lOiAnJywgdHlwZTogJ2FkZHJlc3MnIH1dLFxuXHRcdHBheWFibGU6IGZhbHNlLFxuXHRcdHN0YXRlTXV0YWJpbGl0eTogJ3ZpZXcnLFxuXHRcdHR5cGU6ICdmdW5jdGlvbicsXG5cdH0sXG5dXG4iLCJpbXBvcnQgeyBzaWduR3Vlc3RCb29rLCBnZXRHdWVzdEJvb2sgfSBmcm9tICcuL2d1ZXN0Ym9vaydcblxuZXhwb3J0IGNvbnN0IHNjcmVlblNwYWNlVUkgPSBuZXcgVUlDYW52YXMoKVxuc2NyZWVuU3BhY2VVSS52aXNpYmxlID0gdHJ1ZVxuXG5sZXQgVUlPcGVuVGltZVxuXG5jb25zdCBpbWFnZVRleHR1cmUgPSBuZXcgVGV4dHVyZSgnaW1hZ2VzL1VJX0d1ZXN0Ym9vay5wbmcnKVxuY29uc3Qgc2NhbGVNdWx0aXBsaWVyID0gMC43XG5cbnZhciBsaW5lc1Blckd1ZXN0Qm9va1BhZ2UgPSAxNFxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gb3BlblVJKGV2ZW50OiBzdHJpbmcpIHtcbiAgVUlPcGVuVGltZSA9ICtEYXRlLm5vdygpXG4gIGJhY2tncm91bmQudmlzaWJsZSA9IHRydWVcbiAgYmFja2dyb3VuZC5pc1BvaW50ZXJCbG9ja2VyID0gdHJ1ZVxuICBsZXQgZ3Vlc3RCb29rUGFnZSA9IDFcblxuICBsZXQgYWxsU2lnbmF0dXJlcyA9IGF3YWl0IGdldEd1ZXN0Qm9vayhldmVudClcbiAgbGV0IHRvdGFsUGFnZXMgPSBkaXNwbGF5U2lnbmF0dXJlcyhhbGxTaWduYXR1cmVzLCBndWVzdEJvb2tQYWdlKVxuXG4gIFNpZ25CdXR0b24ub25DbGljayA9IG5ldyBPbkNsaWNrKCgpID0+IHtcbiAgICBzaWduR3Vlc3RCb29rKGV2ZW50KVxuICAgIGNsb3NlVUkoKVxuICAgIGxvZygnc2lnbmVkIGd1ZXN0Ym9vaycpXG4gIH0pXG5cbiAgbG9nKCdPbiBwYWdlICcsIGd1ZXN0Qm9va1BhZ2UsICcgb2YgJywgdG90YWxQYWdlcylcblxuICBpZiAodG90YWxQYWdlcyA8IDIpIHtcbiAgICBMYXN0QnV0dG9uLnZpc2libGUgPSBmYWxzZVxuICAgIE5leHRCdXR0b24udmlzaWJsZSA9IGZhbHNlXG4gIH0gZWxzZSB7XG4gICAgTGFzdEJ1dHRvbi52aXNpYmxlID0gZmFsc2VcbiAgICBOZXh0QnV0dG9uLnZpc2libGUgPSB0cnVlXG4gIH1cblxuICBOZXh0QnV0dG9uLm9uQ2xpY2sgPSBuZXcgT25DbGljayhhc3luYyAoKSA9PiB7XG4gICAgZ3Vlc3RCb29rUGFnZSArPSAxXG5cbiAgICBhbGxTaWduYXR1cmVzID0gYXdhaXQgZ2V0R3Vlc3RCb29rKGV2ZW50KVxuICAgIGRpc3BsYXlTaWduYXR1cmVzKGFsbFNpZ25hdHVyZXMsIGd1ZXN0Qm9va1BhZ2UpXG4gICAgTGFzdEJ1dHRvbi52aXNpYmxlID0gdHJ1ZVxuICAgIGlmIChndWVzdEJvb2tQYWdlID49IHRvdGFsUGFnZXMpIHtcbiAgICAgIE5leHRCdXR0b24udmlzaWJsZSA9IGZhbHNlXG4gICAgfVxuICB9KVxuXG4gIExhc3RCdXR0b24ub25DbGljayA9IG5ldyBPbkNsaWNrKGFzeW5jICgpID0+IHtcbiAgICBndWVzdEJvb2tQYWdlIC09IDFcbiAgICBpZiAoZ3Vlc3RCb29rUGFnZSA8IDEpIHtcbiAgICAgIGd1ZXN0Qm9va1BhZ2UgPSAxXG4gICAgfVxuICAgIGFsbFNpZ25hdHVyZXMgPSBhd2FpdCBnZXRHdWVzdEJvb2soZXZlbnQpXG4gICAgZGlzcGxheVNpZ25hdHVyZXMoYWxsU2lnbmF0dXJlcywgZ3Vlc3RCb29rUGFnZSlcbiAgICBOZXh0QnV0dG9uLnZpc2libGUgPSB0cnVlXG4gICAgaWYgKGd1ZXN0Qm9va1BhZ2UgPT0gMSkge1xuICAgICAgTGFzdEJ1dHRvbi52aXNpYmxlID0gZmFsc2VcbiAgICB9XG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9zZVVJKCkge1xuICBiYWNrZ3JvdW5kLnZpc2libGUgPSBmYWxzZVxuICBiYWNrZ3JvdW5kLmlzUG9pbnRlckJsb2NrZXIgPSBmYWxzZVxufVxuXG5leHBvcnQgY29uc3QgYmFja2dyb3VuZCA9IG5ldyBVSUltYWdlKHNjcmVlblNwYWNlVUksIGltYWdlVGV4dHVyZSlcbmJhY2tncm91bmQubmFtZSA9ICdiYWNrZ3JvdW5kJ1xuYmFja2dyb3VuZC53aWR0aCA9IDEwMjQgKiBzY2FsZU11bHRpcGxpZXJcbmJhY2tncm91bmQuaGVpZ2h0ID0gOTIxICogc2NhbGVNdWx0aXBsaWVyXG5iYWNrZ3JvdW5kLmhBbGlnbiA9ICdjZW50ZXInXG5iYWNrZ3JvdW5kLnZBbGlnbiA9ICdjZW50ZXInXG5iYWNrZ3JvdW5kLnNvdXJjZUxlZnQgPSAwXG5iYWNrZ3JvdW5kLnNvdXJjZVRvcCA9IDc2XG5iYWNrZ3JvdW5kLnNvdXJjZVdpZHRoID0gMTAyNFxuYmFja2dyb3VuZC5zb3VyY2VIZWlnaHQgPSA5MjFcbmJhY2tncm91bmQudmlzaWJsZSA9IGZhbHNlXG5iYWNrZ3JvdW5kLmlzUG9pbnRlckJsb2NrZXIgPSBmYWxzZVxuXG5leHBvcnQgY29uc3Qgc2lnbmF0dXJlc1VJID0gbmV3IFVJVGV4dChiYWNrZ3JvdW5kKVxuc2lnbmF0dXJlc1VJLnZhbHVlID0gJ0ZldGNoaW5nIHNpZ25hdHVyZXMnXG5zaWduYXR1cmVzVUkubmFtZSA9ICdzaWduYXR1cmVzJ1xuc2lnbmF0dXJlc1VJLndpZHRoID0gJzY1MHB4J1xuc2lnbmF0dXJlc1VJLmhlaWdodCA9ICc4MDBweCdcbnNpZ25hdHVyZXNVSS5oQWxpZ24gPSAnY2VudGVyJ1xuc2lnbmF0dXJlc1VJLnZBbGlnbiA9ICdjZW50ZXInXG5zaWduYXR1cmVzVUkucG9zaXRpb25ZID0gMFxuc2lnbmF0dXJlc1VJLnBvc2l0aW9uWCA9IDBcbnNpZ25hdHVyZXNVSS5mb250U2l6ZSA9IDI1XG5zaWduYXR1cmVzVUkudlRleHRBbGlnbiA9ICdjZW50ZXInXG5zaWduYXR1cmVzVUkuaFRleHRBbGlnbiA9ICdjZW50ZXInXG5zaWduYXR1cmVzVUkuY29sb3IgPSBDb2xvcjQuRnJvbUhleFN0cmluZygnIzUzNTA4Rjg4JylcblxuZXhwb3J0IGNvbnN0IFNpZ25CdXR0b24gPSBuZXcgVUlJbWFnZShiYWNrZ3JvdW5kLCBpbWFnZVRleHR1cmUpXG5TaWduQnV0dG9uLm5hbWUgPSAnU2lnbkJ1dHRvbidcblNpZ25CdXR0b24ud2lkdGggPSA0NjAgKiBzY2FsZU11bHRpcGxpZXJcblNpZ25CdXR0b24uaGVpZ2h0ID0gNzUgKiBzY2FsZU11bHRpcGxpZXJcblNpZ25CdXR0b24uaEFsaWduID0gJ2NlbnRlcidcblNpZ25CdXR0b24udkFsaWduID0gJ2NlbnRlcidcblNpZ25CdXR0b24ucG9zaXRpb25ZID0gKC04MzkgKyA5MjEgLyAyKSAqIHNjYWxlTXVsdGlwbGllclxuU2lnbkJ1dHRvbi5wb3NpdGlvblggPSAwXG5TaWduQnV0dG9uLnNvdXJjZUxlZnQgPSA3NlxuU2lnbkJ1dHRvbi5zb3VyY2VUb3AgPSAwXG5TaWduQnV0dG9uLnNvdXJjZVdpZHRoID0gNDYwXG5TaWduQnV0dG9uLnNvdXJjZUhlaWdodCA9IDc1XG5cbmV4cG9ydCBjb25zdCBOZXh0QnV0dG9uID0gbmV3IFVJSW1hZ2UoYmFja2dyb3VuZCwgaW1hZ2VUZXh0dXJlKVxuTmV4dEJ1dHRvbi5uYW1lID0gJ05leHRCdXR0b24nXG5OZXh0QnV0dG9uLndpZHRoID0gNzYgKiBzY2FsZU11bHRpcGxpZXJcbk5leHRCdXR0b24uaGVpZ2h0ID0gNzYgKiBzY2FsZU11bHRpcGxpZXJcbk5leHRCdXR0b24uaEFsaWduID0gJ2NlbnRlcidcbk5leHRCdXR0b24udkFsaWduID0gJ2NlbnRlcidcbk5leHRCdXR0b24ucG9zaXRpb25ZID0gMFxuTmV4dEJ1dHRvbi5wb3NpdGlvblggPSAzMDBcbk5leHRCdXR0b24uc291cmNlTGVmdCA9IDUzN1xuTmV4dEJ1dHRvbi5zb3VyY2VUb3AgPSAwXG5OZXh0QnV0dG9uLnNvdXJjZVdpZHRoID0gNzVcbk5leHRCdXR0b24uc291cmNlSGVpZ2h0ID0gNzVcblxuZXhwb3J0IGNvbnN0IExhc3RCdXR0b24gPSBuZXcgVUlJbWFnZShiYWNrZ3JvdW5kLCBpbWFnZVRleHR1cmUpXG5MYXN0QnV0dG9uLm5hbWUgPSAnTGFzdEJ1dHRvbidcbkxhc3RCdXR0b24ud2lkdGggPSA3NiAqIHNjYWxlTXVsdGlwbGllclxuTGFzdEJ1dHRvbi5oZWlnaHQgPSA3NiAqIHNjYWxlTXVsdGlwbGllclxuTGFzdEJ1dHRvbi5oQWxpZ24gPSAnY2VudGVyJ1xuTGFzdEJ1dHRvbi52QWxpZ24gPSAnY2VudGVyJ1xuTGFzdEJ1dHRvbi5wb3NpdGlvblkgPSAwXG5MYXN0QnV0dG9uLnBvc2l0aW9uWCA9IC0zMDBcbkxhc3RCdXR0b24uc291cmNlTGVmdCA9IDBcbkxhc3RCdXR0b24uc291cmNlVG9wID0gMFxuTGFzdEJ1dHRvbi5zb3VyY2VXaWR0aCA9IDc1XG5MYXN0QnV0dG9uLnNvdXJjZUhlaWdodCA9IDc1XG5cbi8vIGFycmFuZ2UgYWxsIHNpZ25hdHVyZXMgaW50byBwYWdlc1xuZnVuY3Rpb24gZGlzcGxheVNpZ25hdHVyZXMoYWxsU2lnbmF0dXJlczogYW55W10sIGd1ZXN0Qm9va1BhZ2U6IG51bWJlcikge1xuICBsZXQgc2lnbmF0dXJlUGFnZSA9IDBcbiAgbGV0IHNpZ25hdHVyZUxpc3QgPSBbJyddXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsU2lnbmF0dXJlcy5sZW5ndGg7IGkrKykge1xuICAgIHNpZ25hdHVyZUxpc3Rbc2lnbmF0dXJlUGFnZV0gPSBzaWduYXR1cmVMaXN0W3NpZ25hdHVyZVBhZ2VdLmNvbmNhdChcbiAgICAgIGFsbFNpZ25hdHVyZXNbaV0ubmFtZVxuICAgIClcbiAgICBzaWduYXR1cmVMaXN0W3NpZ25hdHVyZVBhZ2VdID0gc2lnbmF0dXJlTGlzdFtzaWduYXR1cmVQYWdlXS5jb25jYXQoJyAtICcpXG4gICAgbGV0IGxpbmVzID0gc2lnbmF0dXJlTGlzdFtzaWduYXR1cmVQYWdlXS5zcGxpdCgnXFxuJylcbiAgICBpZiAobGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoID4gMjUpIHtcbiAgICAgIHNpZ25hdHVyZUxpc3Rbc2lnbmF0dXJlUGFnZV0gPSBzaWduYXR1cmVMaXN0W3NpZ25hdHVyZVBhZ2VdLmNvbmNhdCgnXFxuJylcbiAgICB9XG5cbiAgICBpZiAobGluZXMubGVuZ3RoID49IGxpbmVzUGVyR3Vlc3RCb29rUGFnZSkge1xuICAgICAgc2lnbmF0dXJlUGFnZSArPSAxXG4gICAgICBzaWduYXR1cmVMaXN0LnB1c2goJycpXG4gICAgICAvL2d1ZXN0Qm9va1BhZ2VcbiAgICB9XG4gIH1cbiAgc2lnbmF0dXJlc1VJLnZhbHVlID0gc2lnbmF0dXJlTGlzdFtndWVzdEJvb2tQYWdlIC0gMV1cbiAgbG9nKFxuICAgICdzaWduYXR1cmUgdG8gc2hvdyBmcm9tIHBhZ2UgJyxcbiAgICBndWVzdEJvb2tQYWdlLFxuICAgICcgOicsXG4gICAgc2lnbmF0dXJlTGlzdFtndWVzdEJvb2tQYWdlIC0gMV1cbiAgKVxuXG4gIHJldHVybiBzaWduYXR1cmVMaXN0Lmxlbmd0aFxufVxuXG4vLyBJbnN0YW5jZSB0aGUgaW5wdXQgb2JqZWN0XG5jb25zdCBpbnB1dCA9IElucHV0Lmluc3RhbmNlXG5cbi8vYnV0dG9uIGRvd24gZXZlbnRcbmlucHV0LnN1YnNjcmliZSgnQlVUVE9OX0RPV04nLCBBY3Rpb25CdXR0b24uUE9JTlRFUiwgZmFsc2UsIChlKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnRUaW1lID0gK0RhdGUubm93KClcbiAgbGV0IGlzT3BlbjogYm9vbGVhblxuICBpZiAoYmFja2dyb3VuZC52aXNpYmxlKSB7XG4gICAgaXNPcGVuID0gdHJ1ZVxuICB9IGVsc2Uge1xuICAgIGlzT3BlbiA9IGZhbHNlXG4gIH1cblxuICBpZiAoaXNPcGVuICYmIGN1cnJlbnRUaW1lIC0gVUlPcGVuVGltZSA+IDEwMCkge1xuICAgIGNsb3NlVUkoKVxuICB9XG59KVxuIiwiaW1wb3J0IHsgb3BlblVJIH0gZnJvbSAnLi91aSdcbmltcG9ydCB7IHVzZXJEYXRhLCBzZXRVc2VyRGF0YSB9IGZyb20gJy4vcG9hcEhhbmRsZXInXG5cbi8vIGV4dGVybmFsIHNlcnZlcnMgYmVpbmcgdXNlZCBieSB0aGUgcHJvamVjdCAtIFBsZWFzZSBjaGFuZ2UgdGhlc2UgdG8geW91ciBvd24gaWYgd29ya2luZyBvbiBzb21ldGhpbmcgZWxzZSFcbmV4cG9ydCBsZXQgZmlyZUJhc2VTZXJ2ZXIgPVxuICAnaHR0cHM6Ly91cy1jZW50cmFsMS1kZWNlbnRyYWxhbmQtZXZlbnRzLmNsb3VkZnVuY3Rpb25zLm5ldC9hcHAvJ1xuXG4vLyBnZXQgcGxheWVyIGRhdGFcblxuZXhwb3J0IGNsYXNzIEd1ZXN0Qm9vayBleHRlbmRzIEVudGl0eSB7XG4gIGV2ZW50TmFtZTogc3RyaW5nXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRyYW5zZm9ybTogVHJhbmZvcm1Db25zdHJ1Y3RvckFyZ3MsXG4gICAgZXZlbnROYW1lOiBzdHJpbmdcblxuICAgIC8vLHNvdW5kOiBBdWRpb0NsaXBcbiAgKSB7XG4gICAgc3VwZXIoKVxuICAgIGVuZ2luZS5hZGRFbnRpdHkodGhpcylcblxuICAgIHRoaXMuYWRkQ29tcG9uZW50KG5ldyBHTFRGU2hhcGUoJ21vZGVscy9ndWVzdGJvb2svZ3Vlc3Rib29rLmdsYicpKVxuICAgIHRoaXMuYWRkQ29tcG9uZW50KG5ldyBUcmFuc2Zvcm0odHJhbnNmb3JtKSlcblxuICAgIHRoaXMuZXZlbnROYW1lID0gZXZlbnROYW1lXG5cbiAgICB0aGlzLmFkZENvbXBvbmVudChcbiAgICAgIG5ldyBPblBvaW50ZXJEb3duKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgb3BlblVJKGV2ZW50TmFtZSlcbiAgICAgICAgICBsb2coJ09QRU5FRCBHVUVTVEJPT0snKVxuICAgICAgICB9LFxuICAgICAgICB7IGhvdmVyVGV4dDogJ09wZW4nIH1cbiAgICAgIClcbiAgICApXG5cbiAgICBsZXQgZ3Vlc3RCb29rQmFzZSA9IG5ldyBFbnRpdHkoKVxuICAgIGd1ZXN0Qm9va0Jhc2UuYWRkQ29tcG9uZW50KG5ldyBUcmFuc2Zvcm0oKSlcbiAgICBndWVzdEJvb2tCYXNlLmFkZENvbXBvbmVudChcbiAgICAgIG5ldyBHTFRGU2hhcGUoJ21vZGVscy9ndWVzdGJvb2svZ3Vlc3Rib29rX2Jhc2UuZ2xiJylcbiAgICApXG4gICAgZ3Vlc3RCb29rQmFzZS5zZXRQYXJlbnQodGhpcylcbiAgfVxufVxuXG4vLyBnZXQgbGF0ZXN0IHNjb3JlYm9hcmQgZGF0YSBmcm9tIHNlcnZlclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEd1ZXN0Qm9vayhldmVudDogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgbGV0IHVybCA9IGZpcmVCYXNlU2VydmVyICsgJ2dldC1zaWduYXR1cmVzLz9ldmVudD0nICsgZXZlbnRcbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpXG4gICAgbGV0IGpzb24gPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICBsb2coanNvbilcbiAgICByZXR1cm4ganNvblxuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nKCdlcnJvciBmZXRjaGluZyBzY29yZXMgZnJvbSBzZXJ2ZXIgJywgZSlcbiAgfVxufVxuXG4vLyBjaGFuZ2UgZGF0YSBpbiBzY29yZWJvYXJkXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnbkd1ZXN0Qm9vayhldmVudDogc3RyaW5nKSB7XG4gIGlmICghdXNlckRhdGEpIHtcbiAgICBhd2FpdCBzZXRVc2VyRGF0YSgpXG4gIH1cbiAgdHJ5IHtcbiAgICBsZXQgdXJsID0gZmlyZUJhc2VTZXJ2ZXIgKyAnYWRkLXNpZ25hdHVyZS8/ZXZlbnQ9JyArIGV2ZW50XG4gICAgbGV0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBpZDogKGF3YWl0IHVzZXJEYXRhKS51c2VySWQsXG4gICAgICBuYW1lOiAoYXdhaXQgdXNlckRhdGEpLmRpc3BsYXlOYW1lLFxuICAgIH0pXG4gICAgbG9nKGJvZHkpXG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgYm9keTogYm9keSxcbiAgICB9KVxuICAgIHJldHVybiByZXNwb25zZS5qc29uKClcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZygnZXJyb3IgcG9zdGluZyB0byBzZXJ2ZXIgJywgZSlcbiAgfVxufVxuIiwiLy9pbXBvcnQgeyBjYWxsQVBJLCBtYWtlVHJhbnNhY3Rpb24gfSBmcm9tICcuL3BvYXBIYW5kbGVyJ1xuaW1wb3J0IHsgRGlzcGVuc2VyIH0gZnJvbSAnLi9kaXNwZW5zZXInXG5pbXBvcnQgeyBHdWVzdEJvb2sgfSBmcm9tICcuL2d1ZXN0Ym9vaydcblxuLy8gR1VFU1RCT09LXG5cbmxldCBndWVzdEJvb2sgPSBuZXcgR3Vlc3RCb29rKFxuICB7XG4gICAgcG9zaXRpb246IG5ldyBWZWN0b3IzKDEwLCAwLCA2KSxcbiAgfSxcbiAgJ3Rlc3QnXG4pXG5cbi8vIFBPQVAgQk9PVEhcblxubGV0IFBPQVBCb290aCA9IG5ldyBEaXNwZW5zZXIoXG4gIHtcbiAgICBwb3NpdGlvbjogbmV3IFZlY3RvcjMoOCwgMCwgOCksXG4gIH0sXG4gICdnZW5lc2lzJ1xuKVxuXG4vLyBNQUtFIFBPQVAgQk9PVEggTVVMVElQTEFZRVJcblxuZXhwb3J0IGxldCBzY2VuZU1lc3NhZ2VCdXMgPSBuZXcgTWVzc2FnZUJ1cygpXG5cbnNjZW5lTWVzc2FnZUJ1cy5vbignYWN0aXZhdGVQb2FwJywgKCkgPT4ge1xuICBQT0FQQm9vdGguYWN0aXZhdGUoKVxufSlcblxuLy8gUE9BUCBCQU5ORVJcblxubGV0IFBPQVBCYW5uZXIgPSBuZXcgRW50aXR5KClcblBPQVBCYW5uZXIuYWRkQ29tcG9uZW50KFxuICBuZXcgVHJhbnNmb3JtKHtcbiAgICBwb3NpdGlvbjogbmV3IFZlY3RvcjMoNiwgMCwgOCksXG4gIH0pXG4pXG5QT0FQQmFubmVyLmFkZENvbXBvbmVudChuZXcgR0xURlNoYXBlKCdtb2RlbHMvcG9hcC9QT0FQX0Jhbm5lci5nbGInKSlcbmVuZ2luZS5hZGRFbnRpdHkoUE9BUEJhbm5lcilcblxuUE9BUEJhbm5lci5hZGRDb21wb25lbnQoXG4gIG5ldyBPblBvaW50ZXJEb3duKFxuICAgIChlKSA9PiB7XG4gICAgICBvcGVuRXh0ZXJuYWxVUkwoJ2h0dHBzOi8vd3d3LnBvYXAueHl6LycpXG4gICAgfSxcbiAgICB7IGhvdmVyVGV4dDogJ0xlYXJuIE1vcmUnIH1cbiAgKVxuKVxuXG4vLyBGTE9PUlxuXG5jb25zdCBlbnRpdHkgPSBuZXcgRW50aXR5KCdlbnRpdHknKVxuZW5naW5lLmFkZEVudGl0eShlbnRpdHkpXG5lbnRpdHkuYWRkQ29tcG9uZW50T3JSZXBsYWNlKFxuICBuZXcgR0xURlNoYXBlKCdtb2RlbHMvRmxvb3JCYXNlR3Jhc3NfMDEvRmxvb3JCYXNlR3Jhc3NfMDEuZ2xiJylcbilcbmVudGl0eS5hZGRDb21wb25lbnRPclJlcGxhY2UoXG4gIG5ldyBUcmFuc2Zvcm0oe1xuICAgIHBvc2l0aW9uOiBuZXcgVmVjdG9yMyg4LCAwLCA4KSxcbiAgICByb3RhdGlvbjogbmV3IFF1YXRlcm5pb24oMCwgMCwgMCwgMSksXG4gICAgc2NhbGU6IG5ldyBWZWN0b3IzKDEsIDEsIDEpLFxuICB9KVxuKVxuIiwiaW1wb3J0IHsgZ2V0VXNlckRhdGEsIFVzZXJEYXRhIH0gZnJvbSAnQGRlY2VudHJhbGFuZC9JZGVudGl0eSdcbmltcG9ydCAqIGFzIGV0aCBmcm9tICcuLi9ub2RlX21vZHVsZXMvZXRoLWNvbm5lY3QvZXNtJ1xuaW1wb3J0ICogYXMgRXRoZXJldW1Db250cm9sbGVyIGZyb20gJ0BkZWNlbnRyYWxhbmQvRXRoZXJldW1Db250cm9sbGVyJ1xuaW1wb3J0IHsgZ2V0UHJvdmlkZXIgfSBmcm9tICdAZGVjZW50cmFsYW5kL3dlYjMtcHJvdmlkZXInXG5pbXBvcnQgcG9hcENvbnRyYWN0IGZyb20gJy4vYWJpcy9Qb2FwRGVsZWdhdGVNaW50J1xuaW1wb3J0IHsgc2NlbmVNZXNzYWdlQnVzIH0gZnJvbSAnLi9nYW1lJ1xuXG5leHBvcnQgbGV0IGV0aENvbnRyb2xsZXIgPSBFdGhlcmV1bUNvbnRyb2xsZXJcblxuZXhwb3J0IGxldCBmaXJlQmFzZVNlcnZlciA9XG4gICdodHRwczovL3VzLWNlbnRyYWwxLWRlY2VudHJhbGFuZC1ldmVudHMuY2xvdWRmdW5jdGlvbnMubmV0L2FwcC8nXG5cbmV4cG9ydCBsZXQgdXNlckRhdGE6IFVzZXJEYXRhXG5cbnR5cGUgZXZlbnREYXRhID0ge1xuICBzZWNyZXQ6IHN0cmluZ1xuICBldmVudF9pZDogc3RyaW5nXG59XG5cbnR5cGUgc2lnbmVkRXZlbnREYXRhID0ge1xuICBzaWduZWRfbWVzc2FnZTogc3RyaW5nXG4gIGV2ZW50X2lkOiBzdHJpbmdcbn1cblxubGV0IHFySGV4OiBzdHJpbmdcblxubGV0IHNlY3JldDogZXZlbnREYXRhXG5cbmxldCBzaWduYXR1cmU6IHNpZ25lZEV2ZW50RGF0YVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hVc2VyRGF0YSgpIHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGdldFVzZXJEYXRhKClcbiAgbG9nKGRhdGEuZGlzcGxheU5hbWUpXG4gIHJldHVybiBkYXRhXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRVc2VyRGF0YSgpIHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGdldFVzZXJEYXRhKClcbiAgbG9nKGRhdGEuZGlzcGxheU5hbWUpXG4gIHVzZXJEYXRhID0gZGF0YVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FsbFFSQVBJKGV2ZW50OiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsID0gZmlyZUJhc2VTZXJ2ZXIgKyAnZ2V0LXBvYXAtY29kZS8/ZXZlbnQ9JyArIGV2ZW50XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGxldCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgbG9nKCdUT0tFTjogJywgZGF0YS50b2tlbilcbiAgICByZXR1cm4gZGF0YS50b2tlbi50b1N0cmluZygpXG4gIH0gY2F0Y2gge1xuICAgIGxvZygnZXJyb3IgZmV0Y2hpbmcgZnJvbSB0b2tlbiBzZXJ2ZXIgJywgdXJsKVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTZWNyZXQocXJIZXg6IHN0cmluZykge1xuICBjb25zdCB1cmwgPSAnaHR0cHM6Ly9hcGkucG9hcC54eXovYWN0aW9ucy9jbGFpbS1xcj9xcl9oYXNoPScgKyBxckhleFxuXG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGxldCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgbGV0IGpzb246IGV2ZW50RGF0YSA9IHsgc2VjcmV0OiBkYXRhLnNlY3JldCwgZXZlbnRfaWQ6IGRhdGEuZXZlbnRfaWQgfVxuICAgIGxvZygnc2VjcmV0IDonLCBqc29uKVxuICAgIHJldHVybiBqc29uXG4gIH0gY2F0Y2gge1xuICAgIGxvZygnZXJyb3IgZmV0Y2hpbmcgZnJvbSBQT0FQIHNlcnZlciAnLCB1cmwpXG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNpZ25lZE1lc3NhZ2UoZGF0YTogZXZlbnREYXRhLCBxckhleDogc3RyaW5nKSB7XG4gIGNvbnN0IHVybCA9ICdodHRwczovL2FwaS5wb2FwLnh5ei9hY3Rpb25zL2NsYWltLXFyJ1xuICBsZXQgbWV0aG9kID0gJ1BPU1QnXG4gIGxldCBoZWFkZXJzID0geyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH1cbiAgbGV0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgYWRkcmVzczogdXNlckRhdGEucHVibGljS2V5LFxuICAgIGRlbGVnYXRlZDogdHJ1ZSxcbiAgICBxcl9oYXNoOiBxckhleCxcbiAgICBzZWNyZXQ6IGRhdGEuc2VjcmV0LFxuICB9KVxuICBsb2coJ3NlbmRpbmcgJywgYm9keSlcblxuICB0cnkge1xuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgYm9keTogYm9keSxcbiAgICB9KVxuICAgIGxldCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgbGV0IGpzb246IHNpZ25lZEV2ZW50RGF0YSA9IHtcbiAgICAgIHNpZ25lZF9tZXNzYWdlOiBkYXRhLmRlbGVnYXRlZF9zaWduZWRfbWVzc2FnZSxcbiAgICAgIGV2ZW50X2lkOiBkYXRhLmV2ZW50X2lkLFxuICAgIH1cbiAgICByZXR1cm4ganNvblxuICB9IGNhdGNoIHtcbiAgICBsb2coJ2Vycm9yIGZldGNoaW5nIGZyb20gUE9BUCBzZXJ2ZXIgJywgdXJsKVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWtlVHJhbnNhY3Rpb24oZXZlbnQ6IHN0cmluZykge1xuICBpZiAoIXVzZXJEYXRhKSB7XG4gICAgdXNlckRhdGEgPSBhd2FpdCBmZXRjaFVzZXJEYXRhKClcbiAgfVxuICBpZiAoIXVzZXJEYXRhLmhhc0Nvbm5lY3RlZFdlYjMpIHtcbiAgICBsb2coJ25vIHdhbGxldCcpXG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKCFxckhleCkge1xuICAgIHFySGV4ID0gYXdhaXQgY2FsbFFSQVBJKGV2ZW50KVxuICB9XG5cbiAgaWYgKCFzZWNyZXQpIHtcbiAgICBzZWNyZXQgPSBhd2FpdCBnZXRTZWNyZXQocXJIZXgpXG4gIH1cblxuICBpZiAoIXNpZ25hdHVyZSkge1xuICAgIHNpZ25hdHVyZSA9IGF3YWl0IGdldFNpZ25lZE1lc3NhZ2Uoc2VjcmV0LCBxckhleClcbiAgfVxuXG4gIGxvZygnc2lnbmF0dXJlIGZvciByZXF1ZXN0ICcsIHNpZ25hdHVyZSlcblxuICBjb25zdCBwcm92aWRlciA9IGF3YWl0IGdldFByb3ZpZGVyKClcbiAgY29uc3Qgcm0gPSBuZXcgZXRoLlJlcXVlc3RNYW5hZ2VyKHByb3ZpZGVyKVxuXG4gIGNvbnN0IHBvYXBUb2tlbkZhY3RvcnkgPSBhd2FpdCBuZXcgZXRoLkNvbnRyYWN0RmFjdG9yeShybSwgcG9hcENvbnRyYWN0KVxuICBjb25zdCBQb2FwRGVsZWdhdGVkTWludCA9IChhd2FpdCBwb2FwVG9rZW5GYWN0b3J5LmF0KFxuICAgIC8vcm9wc3RlblxuICAgIC8vJzB4MmYzYzIzYjUwMzk2RWNCNTVDNzM5NTZCMDY5Q0YwNGU0OTNiZEVmOSdcbiAgICAvL21haW5uZXRcbiAgICAnMHhBYWMyNDk3MTc0ZjJFYzQwNjlBOTgzNzVBNjdENzk4ZGI4YTA1MzM3J1xuICApKSBhcyBhbnlcblxuICBhd2FpdCBQb2FwRGVsZWdhdGVkTWludC5taW50VG9rZW4oXG4gICAgc2lnbmF0dXJlLmV2ZW50X2lkLFxuICAgIHVzZXJEYXRhLnB1YmxpY0tleSxcbiAgICBzaWduYXR1cmUuc2lnbmVkX21lc3NhZ2UsXG4gICAge1xuICAgICAgZnJvbTogdXNlckRhdGEucHVibGljS2V5LFxuICAgIH1cbiAgKS50aGVuKHNjZW5lTWVzc2FnZUJ1cy5lbWl0KCdhY3RpdmF0ZVBvYXAnLCB7fSkpXG5cbiAgcmV0dXJuXG59XG4iLCIvLyBpbXBvcnQgeyBvcGVuVUkxIH0gZnJvbSAnLi91aSdcbmltcG9ydCB1dGlscyBmcm9tICcuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy9pbmRleCdcbmltcG9ydCB7IG1ha2VUcmFuc2FjdGlvbiB9IGZyb20gJy4vcG9hcEhhbmRsZXInXG5pbXBvcnQgeyBzY2VuZU1lc3NhZ2VCdXMgfSBmcm9tICcuL2dhbWUnXG5cbmV4cG9ydCBjbGFzcyBEaXNwZW5zZXIgZXh0ZW5kcyBFbnRpdHkge1xuICBpZGxlQW5pbSA9IG5ldyBBbmltYXRpb25TdGF0ZSgnSWRsZV9QT0FQJywgeyBsb29waW5nOiB0cnVlIH0pXG4gIGJ1eUFuaW0gPSBuZXcgQW5pbWF0aW9uU3RhdGUoJ0FjdGlvbl9QT0FQJywgeyBsb29waW5nOiBmYWxzZSB9KVxuICBidXR0b25BbmltID0gbmV3IEFuaW1hdGlvblN0YXRlKCdCdXR0b25fQWN0aW9uJywgeyBsb29waW5nOiBmYWxzZSB9KVxuICBldmVudE5hbWU6IHN0cmluZ1xuICBjb25zdHJ1Y3Rvcih0cmFuc2Zvcm06IFRyYW5mb3JtQ29uc3RydWN0b3JBcmdzLCBldmVudE5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICBlbmdpbmUuYWRkRW50aXR5KHRoaXMpXG5cbiAgICB0aGlzLmFkZENvbXBvbmVudChuZXcgR0xURlNoYXBlKCdtb2RlbHMvcG9hcC9QT0FQX2Rpc3BlbnNlci5nbGInKSlcbiAgICB0aGlzLmFkZENvbXBvbmVudChuZXcgVHJhbnNmb3JtKHRyYW5zZm9ybSkpXG5cbiAgICB0aGlzLmFkZENvbXBvbmVudChuZXcgQW5pbWF0b3IoKSlcbiAgICB0aGlzLmdldENvbXBvbmVudChBbmltYXRvcikuYWRkQ2xpcCh0aGlzLmlkbGVBbmltKVxuICAgIHRoaXMuZ2V0Q29tcG9uZW50KEFuaW1hdG9yKS5hZGRDbGlwKHRoaXMuYnV5QW5pbSlcbiAgICB0aGlzLmlkbGVBbmltLnBsYXkoKVxuXG4gICAgdGhpcy5ldmVudE5hbWUgPSBldmVudE5hbWVcblxuICAgIGxldCBidXR0b24gPSBuZXcgRW50aXR5KClcbiAgICBidXR0b24uYWRkQ29tcG9uZW50KG5ldyBHTFRGU2hhcGUoJ21vZGVscy9wb2FwL1BPQVBfYnV0dG9uLmdsYicpKVxuICAgIGJ1dHRvbi5hZGRDb21wb25lbnQobmV3IEFuaW1hdG9yKCkpXG4gICAgYnV0dG9uLmdldENvbXBvbmVudChBbmltYXRvcikuYWRkQ2xpcCh0aGlzLmJ1dHRvbkFuaW0pXG4gICAgYnV0dG9uLnNldFBhcmVudCh0aGlzKVxuICAgIGJ1dHRvbi5hZGRDb21wb25lbnQoXG4gICAgICBuZXcgT25Qb2ludGVyRG93bihcbiAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICBidXR0b24uZ2V0Q29tcG9uZW50KEFuaW1hdG9yKS5nZXRDbGlwKCdBY3Rpb24nKS5zdG9wKClcbiAgICAgICAgICBidXR0b24uZ2V0Q29tcG9uZW50KEFuaW1hdG9yKS5nZXRDbGlwKCdBY3Rpb24nKS5wbGF5KClcbiAgICAgICAgICBzY2VuZU1lc3NhZ2VCdXMuZW1pdCgnYWN0aXZhdGVQb2FwJywge30pXG4gICAgICAgICAgbWFrZVRyYW5zYWN0aW9uKGV2ZW50TmFtZSlcbiAgICAgICAgfSxcbiAgICAgICAgeyBob3ZlclRleHQ6ICdHZXQgQXR0ZW5kYW5jZSBUb2tlbicgfVxuICAgICAgKVxuICAgIClcbiAgICBlbmdpbmUuYWRkRW50aXR5KGJ1dHRvbilcbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICBsZXQgYW5pbSA9IHRoaXMuZ2V0Q29tcG9uZW50KEFuaW1hdG9yKVxuXG4gICAgYW5pbS5nZXRDbGlwKCdJZGxlX1BPQVAnKS5zdG9wKClcbiAgICBhbmltLmdldENsaXAoJ0FjdGlvbl9QT0FQJykuc3RvcCgpXG5cbiAgICBhbmltLmdldENsaXAoJ0FjdGlvbl9QT0FQJykucGxheSgpXG5cbiAgICB0aGlzLmFkZENvbXBvbmVudE9yUmVwbGFjZShcbiAgICAgIG5ldyB1dGlscy5EZWxheSg0MDAwLCAoKSA9PiB7XG4gICAgICAgIGFuaW0uZ2V0Q2xpcCgnQWN0aW9uX1BPQVAnKS5zdG9wKClcblxuICAgICAgICBhbmltLmdldENsaXAoJ0lkbGVfUE9BUCcpLnBsYXkoKVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ=="); \ No newline at end of file diff --git a/POAP-booth/src/poapHandler.ts b/POAP-booth/src/poapHandler.ts index 0cbcad9..838a5bf 100644 --- a/POAP-booth/src/poapHandler.ts +++ b/POAP-booth/src/poapHandler.ts @@ -22,6 +22,12 @@ type signedEventData = { event_id: string } +let qrHex: string + +let secret: eventData + +let signature: signedEventData + export async function fetchUserData() { const data = await getUserData() log(data.displayName) @@ -97,11 +103,17 @@ export async function makeTransaction(event: string) { log('no wallet') return } - let qrHex: string = await callQRAPI(event) + if (!qrHex) { + qrHex = await callQRAPI(event) + } - let secret: eventData = await getSecret(qrHex) + if (!secret) { + secret = await getSecret(qrHex) + } - let signature: signedEventData = await getSignedMessage(secret, qrHex) + if (!signature) { + signature = await getSignedMessage(secret, qrHex) + } log('signature for request ', signature)