__qc_bundle__.js 622 KB
Newer Older
liujiaxin's avatar
liujiaxin committed
1 2 3 4 5 6 7 8 9 10 11 12 13

                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/__qc_index__.js';
                    var __require = nodeEnv ? function (request) {
                        return cc.require(request);
                    } : function (request) {
                        return __quick_compile_project__.require(request, __filename);
                    };
                    function __define (exports, require, module) {
                        if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}
require('./assets/OP15/scene/OP15');
14 15 16 17
require('./assets/OP15/script/defaultData_OP15');
require('./assets/OP15/script/state_OP15');
require('./assets/OP15/script/util_OP15');
require('./assets/OP15/script/xstate_OP15');
liujiaxin's avatar
liujiaxin committed
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

                    }
                    if (nodeEnv) {
                        __define(__module.exports, __require, __module);
                    }
                    else {
                        __quick_compile_project__.registerModuleFunc(__filename, function () {
                            __define(__module.exports, __require, __module);
                        });
                    }
                })();
//------QC-SOURCE-SPLIT------

                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
limingzhe's avatar
limingzhe committed
34
                    var __filename = 'preview-scripts/assets/OP15/script/util_OP15.js';
liujiaxin's avatar
liujiaxin committed
35 36 37 38 39 40 41
                    var __require = nodeEnv ? function (request) {
                        return cc.require(request);
                    } : function (request) {
                        return __quick_compile_project__.require(request, __filename);
                    };
                    function __define (exports, require, module) {
                        if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
limingzhe's avatar
limingzhe committed
42 43
cc._RF.push(module, 'ade7a9A1W1Ah7vGKIj+9VNT', 'util_OP15');
// OP15/script/util_OP15.js
liujiaxin's avatar
liujiaxin committed
44 45 46

"use strict";

limingzhe's avatar
limingzhe committed
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
exports.__esModule = true;
exports.getPosByAngle = getPosByAngle;
exports.getAngleByPos = getAngleByPos;
exports.exchangeNodePos = exchangeNodePos;
exports.RandomInt = RandomInt;
exports.randomSortByArr = randomSortByArr;
exports.setSprNodeMaxLen = setSprNodeMaxLen;
exports.localPosTolocalPos = localPosTolocalPos;
exports.worldPosToLocalPos = worldPosToLocalPos;
exports.getScaleRateBy2Node = getScaleRateBy2Node;
exports.getDistance = getDistance;
exports.playAudioByUrl = playAudioByUrl;
exports.btnClickAnima = btnClickAnima;
exports.getSpriteFrimeByUrl = getSpriteFrimeByUrl;
exports.getSprNode = getSprNode;
exports.getSprNodeByUrl = getSprNodeByUrl;
exports.playAudio = playAudio;
exports.asyncDelay = asyncDelay;
exports.showFireworks = showFireworks;
exports.asyncTweenTo = asyncTweenTo;
exports.asyncTweenBy = asyncTweenBy;
exports.showTrebleFirework = showTrebleFirework;
exports.onHomeworkFinish = onHomeworkFinish;
exports.loadDragonBones = loadDragonBones;
exports.loadSpine = loadSpine;
exports.FireworkSettings = void 0;
limingzhe's avatar
limingzhe committed
73

limingzhe's avatar
limingzhe committed
74
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
limingzhe's avatar
limingzhe committed
75

limingzhe's avatar
limingzhe committed
76
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
limingzhe's avatar
limingzhe committed
77

limingzhe's avatar
limingzhe committed
78 79 80 81 82 83 84 85 86
function getPosByAngle(angle, len) {
  var radian = angle * Math.PI / 180;
  var x = Math.sin(radian) * len;
  var y = Math.cos(radian) * len;
  return {
    x: x,
    y: y
  };
}
limingzhe's avatar
limingzhe committed
87

limingzhe's avatar
limingzhe committed
88 89 90 91 92 93
function getAngleByPos(px, py, mx, my) {
  var x = Math.abs(px - mx);
  var y = Math.abs(py - my);
  var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
  var cos = y / z;
  var radina = Math.acos(cos); // 用反三角函数求弧度
limingzhe's avatar
limingzhe committed
94

limingzhe's avatar
limingzhe committed
95
  var angle = Math.floor(180 / (Math.PI / radina) * 100) / 100; // 将弧度转换成角度
limingzhe's avatar
limingzhe committed
96

limingzhe's avatar
limingzhe committed
97 98 99 100
  if (mx > px && my > py) {
    // 鼠标在第四象限
    angle = 180 - angle;
  }
limingzhe's avatar
limingzhe committed
101

limingzhe's avatar
limingzhe committed
102 103 104 105
  if (mx === px && my > py) {
    // 鼠标在y轴负方向上
    angle = 180;
  }
limingzhe's avatar
limingzhe committed
106

limingzhe's avatar
limingzhe committed
107 108 109 110
  if (mx > px && my === py) {
    // 鼠标在x轴正方向上
    angle = 90;
  }
limingzhe's avatar
limingzhe committed
111

limingzhe's avatar
limingzhe committed
112 113 114 115
  if (mx < px && my > py) {
    // 鼠标在第三象限
    angle = 180 + angle;
  }
limingzhe's avatar
limingzhe committed
116

limingzhe's avatar
limingzhe committed
117 118 119 120
  if (mx < px && my === py) {
    // 鼠标在x轴负方向
    angle = 270;
  }
limingzhe's avatar
limingzhe committed
121

limingzhe's avatar
limingzhe committed
122 123 124 125
  if (mx < px && my < py) {
    // 鼠标在第二象限
    angle = 360 - angle;
  } // console.log('angle: ', angle);
limingzhe's avatar
limingzhe committed
126 127


limingzhe's avatar
limingzhe committed
128 129
  return angle;
}
limingzhe's avatar
limingzhe committed
130

limingzhe's avatar
limingzhe committed
131 132 133
function exchangeNodePos(baseNode, targetNode) {
  return baseNode.convertToNodeSpaceAR(targetNode._parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y)));
}
limingzhe's avatar
limingzhe committed
134

limingzhe's avatar
limingzhe committed
135 136 137 138
function RandomInt(a, b) {
  if (b === void 0) {
    b = 0;
  }
limingzhe's avatar
limingzhe committed
139

limingzhe's avatar
limingzhe committed
140 141 142 143
  var max = Math.max(a, b);
  var min = Math.min(a, b);
  return Math.floor(Math.random() * (max - min) + min);
}
limingzhe's avatar
limingzhe committed
144

limingzhe's avatar
limingzhe committed
145 146 147
function randomSortByArr(arr) {
  var newArr = [];
  var tmpArr = arr.concat();
limingzhe's avatar
limingzhe committed
148

limingzhe's avatar
limingzhe committed
149 150 151 152 153
  while (tmpArr.length > 0) {
    var randomIndex = Math.floor(tmpArr.length * Math.random());
    newArr.push(tmpArr[randomIndex]);
    tmpArr.splice(randomIndex, 1);
  }
limingzhe's avatar
limingzhe committed
154

limingzhe's avatar
limingzhe committed
155 156
  return newArr;
}
limingzhe's avatar
limingzhe committed
157

limingzhe's avatar
limingzhe committed
158 159 160 161 162 163
function setSprNodeMaxLen(sprNode, maxW, maxH) {
  var sx = maxW / sprNode.width;
  var sy = maxH / sprNode.height;
  var s = Math.min(sx, sy);
  sprNode.scale = Math.round(s * 1000) / 1000;
}
limingzhe's avatar
limingzhe committed
164

limingzhe's avatar
limingzhe committed
165 166 167 168 169
function localPosTolocalPos(baseNode, targetNode) {
  var worldPos = targetNode.parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y));
  var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y));
  return localPos;
}
limingzhe's avatar
limingzhe committed
170

limingzhe's avatar
limingzhe committed
171 172 173 174
function worldPosToLocalPos(worldPos, baseNode) {
  var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y));
  return localPos;
}
limingzhe's avatar
limingzhe committed
175

limingzhe's avatar
limingzhe committed
176 177 178 179
function getScaleRateBy2Node(baseNode, targetNode, maxFlag) {
  if (maxFlag === void 0) {
    maxFlag = true;
  }
limingzhe's avatar
limingzhe committed
180

limingzhe's avatar
limingzhe committed
181 182 183 184
  var worldRect1 = targetNode.getBoundingBoxToWorld();
  var worldRect2 = baseNode.getBoundingBoxToWorld();
  var sx = worldRect1.width / worldRect2.width;
  var sy = worldRect1.height / worldRect2.height;
limingzhe's avatar
limingzhe committed
185

limingzhe's avatar
limingzhe committed
186 187 188 189 190 191
  if (maxFlag) {
    return Math.max(sx, sy);
  } else {
    return Math.min(sx, sy);
  }
}
limingzhe's avatar
limingzhe committed
192

limingzhe's avatar
limingzhe committed
193 194 195 196 197
function getDistance(start, end) {
  var pos = cc.v2(start.x - end.x, start.y - end.y);
  var dis = Math.sqrt(pos.x * pos.x + pos.y * pos.y);
  return dis;
}
limingzhe's avatar
limingzhe committed
198

limingzhe's avatar
limingzhe committed
199 200 201 202
function playAudioByUrl(audio_url, cb) {
  if (cb === void 0) {
    cb = null;
  }
limingzhe's avatar
limingzhe committed
203

limingzhe's avatar
limingzhe committed
204 205 206
  if (audio_url) {
    if (audio_url instanceof cc.AudioClip && audio_url.constructor.name == 'cc_AudioClip') {
      var audioId = cc.audioEngine.play(audio_url, false, 0.8);
limingzhe's avatar
limingzhe committed
207

limingzhe's avatar
limingzhe committed
208 209 210 211
      if (cb) {
        cc.audioEngine.setFinishCallback(audioId, function () {
          cb();
        });
212
      }
limingzhe's avatar
limingzhe committed
213 214 215 216 217 218 219 220
    } else {
      cc.assetManager.loadRemote(audio_url, function (err, audioClip) {
        var audioId = cc.audioEngine.play(audioClip, false, 0.8);

        if (cb) {
          cc.audioEngine.setFinishCallback(audioId, function () {
            cb();
          });
limingzhe's avatar
limingzhe committed
221
        }
limingzhe's avatar
limingzhe committed
222 223 224 225
      });
    }
  }
}
limingzhe's avatar
limingzhe committed
226

limingzhe's avatar
limingzhe committed
227 228 229 230
function btnClickAnima(btn, time, rate) {
  if (time === void 0) {
    time = 0.15;
  }
limingzhe's avatar
limingzhe committed
231

limingzhe's avatar
limingzhe committed
232 233 234
  if (rate === void 0) {
    rate = 1.05;
  }
limingzhe's avatar
limingzhe committed
235

limingzhe's avatar
limingzhe committed
236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
  btn.tmpScale = btn.scale;
  btn.on(cc.Node.EventType.TOUCH_START, function () {
    cc.tween(btn).to(time / 2, {
      scale: btn.scale * rate
    }).start();
  });
  btn.on(cc.Node.EventType.TOUCH_CANCEL, function () {
    cc.tween(btn).to(time / 2, {
      scale: btn.tmpScale
    }).start();
  });
  btn.on(cc.Node.EventType.TOUCH_END, function () {
    cc.tween(btn).to(time / 2, {
      scale: btn.tmpScale
    }).start();
  });
}
limingzhe's avatar
limingzhe committed
253

limingzhe's avatar
limingzhe committed
254 255 256 257 258
function getSpriteFrimeByUrl(url, cb) {
  cc.loader.load({
    url: url
  }, function (err, img) {
    var spriteFrame = new cc.SpriteFrame(img);
limingzhe's avatar
limingzhe committed
259

limingzhe's avatar
limingzhe committed
260 261 262 263 264
    if (cb) {
      cb(spriteFrame);
    }
  });
}
limingzhe's avatar
limingzhe committed
265

limingzhe's avatar
limingzhe committed
266 267 268 269 270 271
function getSprNode(resName) {
  var sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame;
  var node = new cc.Node();
  node.addComponent(cc.Sprite).spriteFrame = sf;
  return node;
}
limingzhe's avatar
limingzhe committed
272

limingzhe's avatar
limingzhe committed
273 274 275 276 277
function getSprNodeByUrl(url, cb) {
  var node = new cc.Node();
  var spr = node.addComponent(cc.Sprite);
  getSpriteFrimeByUrl(url, function (sf) {
    spr.spriteFrame = sf;
limingzhe's avatar
limingzhe committed
278

limingzhe's avatar
limingzhe committed
279 280 281 282 283
    if (cb) {
      cb(spr);
    }
  });
}
liujiaxin's avatar
liujiaxin committed
284

limingzhe's avatar
limingzhe committed
285 286 287 288
function playAudio(audioClip, cb) {
  if (cb === void 0) {
    cb = null;
  }
liujiaxin's avatar
liujiaxin committed
289

limingzhe's avatar
limingzhe committed
290 291
  if (audioClip) {
    var audioId = cc.audioEngine.playEffect(audioClip, false, 0.8);
liujiaxin's avatar
liujiaxin committed
292

limingzhe's avatar
limingzhe committed
293 294 295 296
    if (cb) {
      cc.audioEngine.setFinishCallback(audioId, function () {
        cb();
      });
limingzhe's avatar
limingzhe committed
297
    }
limingzhe's avatar
limingzhe committed
298 299
  }
}
liujiaxin's avatar
liujiaxin committed
300

limingzhe's avatar
limingzhe committed
301 302 303
function asyncDelay(_x) {
  return _asyncDelay.apply(this, arguments);
}
liujiaxin's avatar
liujiaxin committed
304

limingzhe's avatar
limingzhe committed
305 306 307 308 309 310 311 312
function _asyncDelay() {
  _asyncDelay = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(time) {
    return regeneratorRuntime.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            return _context.abrupt("return", new Promise(function (resolve, reject) {
              try {
313
                setTimeout(function () {
limingzhe's avatar
limingzhe committed
314 315 316 317 318 319
                  resolve();
                }, time * 1000);
              } catch (e) {
                reject(e);
              }
            }));
liujiaxin's avatar
liujiaxin committed
320

limingzhe's avatar
limingzhe committed
321 322 323
          case 1:
          case "end":
            return _context.stop();
324
        }
limingzhe's avatar
limingzhe committed
325 326 327 328 329
      }
    }, _callee);
  }));
  return _asyncDelay.apply(this, arguments);
}
liujiaxin's avatar
liujiaxin committed
330

limingzhe's avatar
limingzhe committed
331 332 333 334 335 336 337 338 339 340 341 342
var FireworkSettings = /*#__PURE__*/function () {
  // 父节点
  // 火花节点的array
  // 发射点
  // 发射方向
  // 扩散范围
  // 发射数量
  // 缩放范围
  function FireworkSettings(baseNode, nodeList, pos, side, range, number, scalseRange) {
    if (pos === void 0) {
      pos = cc.v2(0, 0);
    }
limingzhe's avatar
limingzhe committed
343

limingzhe's avatar
limingzhe committed
344 345
    if (side === void 0) {
      side = cc.v2(0, 100);
limingzhe's avatar
limingzhe committed
346
    }
liujiaxin's avatar
liujiaxin committed
347

limingzhe's avatar
limingzhe committed
348 349 350
    if (range === void 0) {
      range = 50;
    }
liujiaxin's avatar
liujiaxin committed
351

limingzhe's avatar
limingzhe committed
352 353
    if (number === void 0) {
      number = 100;
354
    }
liujiaxin's avatar
liujiaxin committed
355

limingzhe's avatar
limingzhe committed
356 357 358
    if (scalseRange === void 0) {
      scalseRange = 0;
    }
liujiaxin's avatar
liujiaxin committed
359

limingzhe's avatar
limingzhe committed
360 361 362 363 364 365 366 367 368 369 370 371 372 373 374
    this.baseNode = void 0;
    this.nodeList = void 0;
    this.pos = void 0;
    this.side = void 0;
    this.range = void 0;
    this.number = void 0;
    this.scalseRange = void 0;
    this.baseNode = baseNode;
    this.nodeList = nodeList;
    this.pos = pos;
    this.side = side;
    this.range = range;
    this.number = number;
    this.scalseRange = scalseRange;
  }
liujiaxin's avatar
liujiaxin committed
375

limingzhe's avatar
limingzhe committed
376 377 378
  FireworkSettings.copy = function copy(firework) {
    return new FireworkSettings(firework.baseNode, firework.nodeList, firework.pos, firework.side, firework.range, firework.number);
  };
liujiaxin's avatar
liujiaxin committed
379

limingzhe's avatar
limingzhe committed
380 381
  return FireworkSettings;
}();
liujiaxin's avatar
liujiaxin committed
382

limingzhe's avatar
limingzhe committed
383
exports.FireworkSettings = FireworkSettings;
liujiaxin's avatar
liujiaxin committed
384

limingzhe's avatar
limingzhe committed
385 386 387
function showFireworks(_x2) {
  return _showFireworks.apply(this, arguments);
}
limingzhe's avatar
limingzhe committed
388

limingzhe's avatar
limingzhe committed
389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424
function _showFireworks() {
  _showFireworks = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(fireworkSettings) {
    var baseNode, nodeList, pos, side, range, number, scalseRange;
    return regeneratorRuntime.wrap(function _callee3$(_context3) {
      while (1) {
        switch (_context3.prev = _context3.next) {
          case 0:
            baseNode = fireworkSettings.baseNode, nodeList = fireworkSettings.nodeList, pos = fireworkSettings.pos, side = fireworkSettings.side, range = fireworkSettings.range, number = fireworkSettings.number, scalseRange = fireworkSettings.scalseRange;
            new Array(number).fill(' ').forEach( /*#__PURE__*/function () {
              var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_, i) {
                var rabbonNode, node, rate, angle;
                return regeneratorRuntime.wrap(function _callee2$(_context2) {
                  while (1) {
                    switch (_context2.prev = _context2.next) {
                      case 0:
                        rabbonNode = new cc.Node();
                        rabbonNode.parent = baseNode;
                        rabbonNode.x = pos.x;
                        rabbonNode.y = pos.y;
                        rabbonNode.angle = 60 * Math.random() - 30;
                        node = cc.instantiate(nodeList[RandomInt(nodeList.length)]);
                        node.parent = rabbonNode;
                        node.active = true;
                        node.x = 0;
                        node.y = 0;
                        node.angle = 0;
                        node.scale = (Math.random() - 0.5) * scalseRange + 1;
                        rate = Math.random();
                        angle = Math.PI * (Math.random() * 2 - 1);
                        _context2.next = 16;
                        return asyncTweenBy(rabbonNode, 0.3, {
                          x: side.x * rate + Math.cos(angle) * range * rate,
                          y: side.y * rate + Math.sin(angle) * range * rate
                        }, {
                          easing: 'quadIn'
                        });
limingzhe's avatar
limingzhe committed
425

limingzhe's avatar
limingzhe committed
426 427 428 429 430 431 432 433 434 435
                      case 16:
                        cc.tween(rabbonNode).by(8, {
                          y: -2000
                        }).start();
                        cc.tween(rabbonNode).to(5, {
                          scale: (Math.random() - 0.5) * scalseRange + 1
                        }).start();
                        rabbonFall(rabbonNode);
                        _context2.next = 21;
                        return asyncDelay(Math.random());
limingzhe's avatar
limingzhe committed
436

limingzhe's avatar
limingzhe committed
437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455
                      case 21:
                        cc.tween(node).by(0.15, {
                          x: -10,
                          angle: -10
                        }).by(0.3, {
                          x: 20,
                          angle: 20
                        }).by(0.15, {
                          x: -10,
                          angle: -10
                        }).union().repeatForever().start();
                        cc.tween(rabbonNode).delay(5).to(0.3, {
                          opacity: 0
                        }).call(function () {
                          node.stopAllActions();
                          node.active = false;
                          node.parent = null;
                          node = null;
                        }).start();
liujiaxin's avatar
liujiaxin committed
456

limingzhe's avatar
limingzhe committed
457 458 459 460 461 462 463
                      case 23:
                      case "end":
                        return _context2.stop();
                    }
                  }
                }, _callee2);
              }));
liujiaxin's avatar
liujiaxin committed
464

limingzhe's avatar
limingzhe committed
465 466 467 468
              return function (_x12, _x13) {
                return _ref3.apply(this, arguments);
              };
            }());
liujiaxin's avatar
liujiaxin committed
469

limingzhe's avatar
limingzhe committed
470 471 472 473 474 475 476 477 478
          case 2:
          case "end":
            return _context3.stop();
        }
      }
    }, _callee3);
  }));
  return _showFireworks.apply(this, arguments);
}
liujiaxin's avatar
liujiaxin committed
479

limingzhe's avatar
limingzhe committed
480 481 482
function rabbonFall(_x3) {
  return _rabbonFall.apply(this, arguments);
}
liujiaxin's avatar
liujiaxin committed
483

limingzhe's avatar
limingzhe committed
484 485 486 487 488 489 490 491 492 493 494 495 496 497
function _rabbonFall() {
  _rabbonFall = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(node) {
    var time, offsetX;
    return regeneratorRuntime.wrap(function _callee4$(_context4) {
      while (1) {
        switch (_context4.prev = _context4.next) {
          case 0:
            time = 1 + Math.random();
            offsetX = RandomInt(-200, 200) * time;
            _context4.next = 4;
            return asyncTweenBy(node, time, {
              x: offsetX,
              angle: offsetX * 60 / 200
            });
liujiaxin's avatar
liujiaxin committed
498

limingzhe's avatar
limingzhe committed
499 500
          case 4:
            rabbonFall(node);
liujiaxin's avatar
liujiaxin committed
501

limingzhe's avatar
limingzhe committed
502 503 504 505
          case 5:
          case "end":
            return _context4.stop();
        }
506
      }
limingzhe's avatar
limingzhe committed
507 508 509 510
    }, _callee4);
  }));
  return _rabbonFall.apply(this, arguments);
}
liujiaxin's avatar
liujiaxin committed
511

limingzhe's avatar
limingzhe committed
512 513 514
function asyncTweenTo(_x4, _x5, _x6, _x7) {
  return _asyncTweenTo.apply(this, arguments);
}
liujiaxin's avatar
liujiaxin committed
515

limingzhe's avatar
limingzhe committed
516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538
function _asyncTweenTo() {
  _asyncTweenTo = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(node, duration, obj, ease) {
    return regeneratorRuntime.wrap(function _callee5$(_context5) {
      while (1) {
        switch (_context5.prev = _context5.next) {
          case 0:
            if (ease === void 0) {
              ease = undefined;
            }

            return _context5.abrupt("return", new Promise(function (resolve, reject) {
              try {
                cc.tween(node).to(duration, obj, ease).call(function () {
                  resolve();
                }).start();
              } catch (e) {
                reject(e);
              }
            }));

          case 2:
          case "end":
            return _context5.stop();
539
        }
limingzhe's avatar
limingzhe committed
540 541 542 543 544
      }
    }, _callee5);
  }));
  return _asyncTweenTo.apply(this, arguments);
}
liujiaxin's avatar
liujiaxin committed
545

limingzhe's avatar
limingzhe committed
546 547 548
function asyncTweenBy(_x8, _x9, _x10, _x11) {
  return _asyncTweenBy.apply(this, arguments);
}
limingzhe's avatar
limingzhe committed
549

limingzhe's avatar
limingzhe committed
550 551 552 553 554 555 556 557 558
function _asyncTweenBy() {
  _asyncTweenBy = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(node, duration, obj, ease) {
    return regeneratorRuntime.wrap(function _callee6$(_context6) {
      while (1) {
        switch (_context6.prev = _context6.next) {
          case 0:
            if (ease === void 0) {
              ease = undefined;
            }
liujiaxin's avatar
liujiaxin committed
559

limingzhe's avatar
limingzhe committed
560 561 562 563 564 565 566 567 568
            return _context6.abrupt("return", new Promise(function (resolve, reject) {
              try {
                cc.tween(node).by(duration, obj, ease).call(function () {
                  resolve();
                }).start();
              } catch (e) {
                reject(e);
              }
            }));
liujiaxin's avatar
liujiaxin committed
569

limingzhe's avatar
limingzhe committed
570 571 572 573 574 575 576 577 578
          case 2:
          case "end":
            return _context6.stop();
        }
      }
    }, _callee6);
  }));
  return _asyncTweenBy.apply(this, arguments);
}
liujiaxin's avatar
liujiaxin committed
579

limingzhe's avatar
limingzhe committed
580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596
function showTrebleFirework(baseNode, rabbonList) {
  var middle = new FireworkSettings(baseNode, rabbonList);
  middle.pos = cc.v2(0, -400);
  middle.side = cc.v2(0, 1000);
  middle.range = 200;
  middle.number = 100;
  middle.scalseRange = 0.4;
  var left = FireworkSettings.copy(middle);
  left.pos = cc.v2(-600, -400);
  left.side = cc.v2(200, 1000);
  var right = FireworkSettings.copy(middle);
  right.pos = cc.v2(600, -400);
  right.side = cc.v2(-200, 1000);
  showFireworks(middle);
  showFireworks(left);
  showFireworks(right);
}
liujiaxin's avatar
liujiaxin committed
597

limingzhe's avatar
limingzhe committed
598 599
function onHomeworkFinish() {
  var middleLayer = cc.find('middleLayer');
liujiaxin's avatar
liujiaxin committed
600

limingzhe's avatar
limingzhe committed
601 602
  if (middleLayer) {
    var middleLayerComponent = middleLayer.getComponent('middleLayer');
liujiaxin's avatar
liujiaxin committed
603

limingzhe's avatar
limingzhe committed
604 605 606 607 608 609 610
    if (middleLayerComponent.role == 'student') {
      middleLayerComponent.onHomeworkFinish(function () {});
    }
  } else {
    console.log('onHomeworkFinish');
  }
}
liujiaxin's avatar
liujiaxin committed
611

limingzhe's avatar
limingzhe committed
612 613 614 615 616 617 618 619 620 621 622 623 624
function loadDragonBones(dragonDisplay, _ref) {
  var tex = _ref.tex,
      atlas = _ref.atlas,
      ske = _ref.ske;
  return new Promise(function (resolve, reject) {
    cc.loader.load({
      url: tex,
      type: 'png'
    }, function (error, texture) {
      if (error) {
        reject();
        return;
      }
liujiaxin's avatar
liujiaxin committed
625

limingzhe's avatar
limingzhe committed
626 627 628 629 630 631 632 633
      cc.loader.load({
        url: atlas,
        type: 'txt'
      }, function (error, atlasJson) {
        if (error) {
          reject();
          return;
        }
liujiaxin's avatar
liujiaxin committed
634

limingzhe's avatar
limingzhe committed
635 636 637 638 639 640 641 642
        cc.loader.load({
          url: ske,
          type: 'txt'
        }, function (error, dragonBonesJson) {
          if (error) {
            reject();
            return;
          }
liujiaxin's avatar
liujiaxin committed
643

limingzhe's avatar
limingzhe committed
644 645 646 647 648 649 650 651 652 653 654 655
          var atlasObj = new dragonBones.DragonBonesAtlasAsset();
          atlasObj.uuid = atlas;
          atlasObj.atlasJson = atlasJson;
          atlasObj.texture = texture;
          var asset = new dragonBones.DragonBonesAsset();
          asset.uuid = ske;
          asset.dragonBonesJson = dragonBonesJson;
          var armatureName = asset._dragonBonesJsonData.armature[0].name || 'default';
          dragonDisplay.armatureName = armatureName;
          dragonDisplay.dragonAtlasAsset = atlasObj;
          dragonDisplay.dragonAsset = asset;
          resolve(asset._dragonBonesJsonData.armature[0].aabb);
limingzhe's avatar
limingzhe committed
656
        });
limingzhe's avatar
limingzhe committed
657 658 659 660
      });
    });
  });
}
liujiaxin's avatar
liujiaxin committed
661

limingzhe's avatar
limingzhe committed
662 663 664 665 666 667 668 669 670 671 672
function loadSpine(skeleton, picName, _ref2) {
  var tex = _ref2.tex,
      atlas = _ref2.atlas,
      ske = _ref2.ske;
  return new Promise(function (resolve, reject) {
    // cc.loader.load({ url: tex, type: 'png' }, (error, texture) => {
    cc.assetManager.loadRemote(tex, function (error, texture) {
      if (error) {
        reject();
        return;
      } // cc.loader.load({ url: atlas, type: 'txt' }, (error, atlasJson) => {
liujiaxin's avatar
liujiaxin committed
673

limingzhe's avatar
limingzhe committed
674

limingzhe's avatar
limingzhe committed
675 676 677 678 679 680 681
      cc.assetManager.loadAny({
        url: atlas
      }, function (error, atlasJson) {
        if (error) {
          reject();
          return;
        } // cc.loader.load({ url: ske, type: 'txt' }, (error, dragonBonesJson) => {
liujiaxin's avatar
liujiaxin committed
682 683


limingzhe's avatar
limingzhe committed
684 685 686 687 688 689 690
        cc.assetManager.loadAny({
          url: ske
        }, function (error, dragonBonesJson) {
          if (error) {
            reject();
            return;
          }
limingzhe's avatar
limingzhe committed
691

limingzhe's avatar
limingzhe committed
692 693 694 695 696 697 698 699 700
          var asset = new sp.SkeletonData();
          asset._uuid = ske;
          asset.skeletonJson = JSON.stringify(dragonBonesJson);
          asset.atlasText = atlasJson;
          asset.textures = [texture];
          asset.textureNames = [picName];
          console.log('picName: ', picName);
          skeleton.skeletonData = asset;
          var jsonObj = dragonBonesJson; //JSON.parse( assets[1]);
liujiaxin's avatar
liujiaxin committed
701

limingzhe's avatar
limingzhe committed
702 703
          var animationNameObj = jsonObj.animations;
          var animationNames = [];
liujiaxin's avatar
liujiaxin committed
704

limingzhe's avatar
limingzhe committed
705 706 707
          for (var name in animationNameObj) {
            console.log('name~~:  ', name);
            animationNames.push(name);
708
          }
limingzhe's avatar
limingzhe committed
709

limingzhe's avatar
limingzhe committed
710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730
          console.log("skeleton.animation: ", skeleton.animation);
          skeleton.animationNames = animationNames;
          skeleton.loop = false;
          console.log("jsonObj['skeleton'] : ", jsonObj['skeleton']);
          resolve(jsonObj['skeleton']); // const atlasObj = new dragonBones.DragonBonesAtlasAsset()
          // atlasObj.uuid = atlas
          // atlasObj.atlasJson = atlasJson
          // atlasObj.texture = texture
          // const asset = new dragonBones.DragonBonesAsset()
          // asset.uuid = ske
          // asset.dragonBonesJson = dragonBonesJson;
          // const armatureName = asset._dragonBonesJsonData.armature[0].name || 'default';
          // dragonDisplay.armatureName = armatureName;
          // dragonDisplay.dragonAtlasAsset = atlasObj
          // dragonDisplay.dragonAsset = asset;
          // resolve(asset._dragonBonesJsonData.armature[0].aabb);
        });
      });
    });
  });
}
limingzhe's avatar
limingzhe committed
731

limingzhe's avatar
limingzhe committed
732 733 734 735 736 737 738 739 740 741 742 743 744
cc._RF.pop();
                    }
                    if (nodeEnv) {
                        __define(__module.exports, __require, __module);
                    }
                    else {
                        __quick_compile_project__.registerModuleFunc(__filename, function () {
                            __define(__module.exports, __require, __module);
                        });
                    }
                })();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC91dGlsX09QMTUuanMiXSwibmFtZXMiOlsiZ2V0UG9zQnlBbmdsZSIsImFuZ2xlIiwibGVuIiwicmFkaWFuIiwiTWF0aCIsIlBJIiwieCIsInNpbiIsInkiLCJjb3MiLCJnZXRBbmdsZUJ5UG9zIiwicHgiLCJweSIsIm14IiwibXkiLCJhYnMiLCJ6Iiwic3FydCIsInBvdyIsInJhZGluYSIsImFjb3MiLCJmbG9vciIsImV4Y2hhbmdlTm9kZVBvcyIsImJhc2VOb2RlIiwidGFyZ2V0Tm9kZSIsImNvbnZlcnRUb05vZGVTcGFjZUFSIiwiX3BhcmVudCIsImNvbnZlcnRUb1dvcmxkU3BhY2VBUiIsImNjIiwidjIiLCJSYW5kb21JbnQiLCJhIiwiYiIsIm1heCIsIm1pbiIsInJhbmRvbSIsInJhbmRvbVNvcnRCeUFyciIsImFyciIsIm5ld0FyciIsInRtcEFyciIsImNvbmNhdCIsImxlbmd0aCIsInJhbmRvbUluZGV4IiwicHVzaCIsInNwbGljZSIsInNldFNwck5vZGVNYXhMZW4iLCJzcHJOb2RlIiwibWF4VyIsIm1heEgiLCJzeCIsIndpZHRoIiwic3kiLCJoZWlnaHQiLCJzIiwic2NhbGUiLCJyb3VuZCIsImxvY2FsUG9zVG9sb2NhbFBvcyIsIndvcmxkUG9zIiwicGFyZW50IiwibG9jYWxQb3MiLCJ3b3JsZFBvc1RvTG9jYWxQb3MiLCJnZXRTY2FsZVJhdGVCeTJOb2RlIiwibWF4RmxhZyIsIndvcmxkUmVjdDEiLCJnZXRCb3VuZGluZ0JveFRvV29ybGQiLCJ3b3JsZFJlY3QyIiwiZ2V0RGlzdGFuY2UiLCJzdGFydCIsImVuZCIsInBvcyIsImRpcyIsInBsYXlBdWRpb0J5VXJsIiwiYXVkaW9fdXJsIiwiY2IiLCJBdWRpb0NsaXAiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJhdWRpb0lkIiwiYXVkaW9FbmdpbmUiLCJwbGF5Iiwic2V0RmluaXNoQ2FsbGJhY2siLCJhc3NldE1hbmFnZXIiLCJsb2FkUmVtb3RlIiwiZXJyIiwiYXVkaW9DbGlwIiwiYnRuQ2xpY2tBbmltYSIsImJ0biIsInRpbWUiLCJyYXRlIiwidG1wU2NhbGUiLCJvbiIsIk5vZGUiLCJFdmVudFR5cGUiLCJUT1VDSF9TVEFSVCIsInR3ZWVuIiwidG8iLCJUT1VDSF9DQU5DRUwiLCJUT1VDSF9FTkQiLCJnZXRTcHJpdGVGcmltZUJ5VXJsIiwidXJsIiwibG9hZGVyIiwibG9hZCIsImltZyIsInNwcml0ZUZyYW1lIiwiU3ByaXRlRnJhbWUiLCJnZXRTcHJOb2RlIiwicmVzTmFtZSIsInNmIiwiZmluZCIsImdldENvbXBvbmVudCIsIlNwcml0ZSIsIm5vZGUiLCJhZGRDb21wb25lbnQiLCJnZXRTcHJOb2RlQnlVcmwiLCJzcHIiLCJwbGF5QXVkaW8iLCJwbGF5RWZmZWN0IiwiYXN5bmNEZWxheSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2V0VGltZW91dCIsImUiLCJGaXJld29ya1NldHRpbmdzIiwibm9kZUxpc3QiLCJzaWRlIiwicmFuZ2UiLCJudW1iZXIiLCJzY2Fsc2VSYW5nZSIsImNvcHkiLCJmaXJld29yayIsInNob3dGaXJld29ya3MiLCJmaXJld29ya1NldHRpbmdzIiwiQXJyYXkiLCJmaWxsIiwiZm9yRWFjaCIsIl8iLCJpIiwicmFiYm9uTm9kZSIsImluc3RhbnRpYXRlIiwiYWN0aXZlIiwiYXN5bmNUd2VlbkJ5IiwiZWFzaW5nIiwiYnkiLCJyYWJib25GYWxsIiwidW5pb24iLCJyZXBlYXRGb3JldmVyIiwiZGVsYXkiLCJvcGFjaXR5IiwiY2FsbCIsInN0b3BBbGxBY3Rpb25zIiwib2Zmc2V0WCIsImFzeW5jVHdlZW5UbyIsImR1cmF0aW9uIiwib2JqIiwiZWFzZSIsInVuZGVmaW5lZCIsInNob3dUcmVibGVGaXJld29yayIsInJhYmJvbkxpc3QiLCJtaWRkbGUiLCJsZWZ0IiwicmlnaHQiLCJvbkhvbWV3b3JrRmluaXNoIiwibWlkZGxlTGF5ZXIiLCJtaWRkbGVMYXllckNvbXBvbmVudCIsInJvbGUiLCJjb25zb2xlIiwibG9nIiwibG9hZERyYWdvbkJvbmVzIiwiZHJhZ29uRGlzcGxheSIsInRleCIsImF0bGFzIiwic2tlIiwidHlwZSIsImVycm9yIiwidGV4dHVyZSIsImF0bGFzSnNvbiIsImRyYWdvbkJvbmVzSnNvbiIsImF0bGFzT2JqIiwiZHJhZ29uQm9uZXMiLCJEcmFnb25Cb25lc0F0bGFzQXNzZXQiLCJ1dWlkIiwiYXNzZXQiLCJEcmFnb25Cb25lc0Fzc2V0IiwiYXJtYXR1cmVOYW1lIiwiX2RyYWdvbkJvbmVzSnNvbkRhdGEiLCJhcm1hdHVyZSIsImRyYWdvbkF0bGFzQXNzZXQiLCJkcmFnb25Bc3NldCIsImFhYmIiLCJsb2FkU3BpbmUiLCJza2VsZXRvbiIsInBpY05hbWUiLCJsb2FkQW55Iiwic3AiLCJTa2VsZXRvbkRhdGEiLCJfdXVpZCIsInNrZWxldG9uSnNvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJhdGxhc1RleHQiLCJ0ZXh0dXJlcyIsInRleHR1cmVOYW1lcyIsInNrZWxldG9uRGF0YSIsImpzb25PYmoiLCJhbmltYXRpb25OYW1lT2JqIiwiYW5pbWF0aW9ucyIsImFuaW1hdGlvbk5hbWVzIiwiYW5pbWF0aW9uIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQU8sU0FBU0EsYUFBVCxDQUF1QkMsS0FBdkIsRUFBOEJDLEdBQTlCLEVBQW1DO0FBRXhDLE1BQU1DLE1BQU0sR0FBR0YsS0FBSyxHQUFHRyxJQUFJLENBQUNDLEVBQWIsR0FBa0IsR0FBakM7QUFDQSxNQUFNQyxDQUFDLEdBQUdGLElBQUksQ0FBQ0csR0FBTCxDQUFTSixNQUFULElBQW1CRCxHQUE3QjtBQUNBLE1BQU1NLENBQUMsR0FBR0osSUFBSSxDQUFDSyxHQUFMLENBQVNOLE1BQVQsSUFBbUJELEdBQTdCO0FBRUEsU0FBTztBQUFFSSxJQUFBQSxDQUFDLEVBQURBLENBQUY7QUFBS0UsSUFBQUEsQ0FBQyxFQUFEQTtBQUFMLEdBQVA7QUFFRDs7QUFFTSxTQUFTRSxh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LENBQUNWLE9BQUQsQ0FBckI7QUFFQTFCLFVBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLFdBQVosRUFBeUJ5QixPQUF6QjtBQUVIRCxVQUFBQSxRQUFRLENBQUNZLFlBQVQsR0FBd0JyQixLQUF4QjtBQUdHLGNBQU1zQixPQUFPLEdBQUczQixlQUFoQixDQW5CZ0UsQ0FtQmhDOztBQUNoQyxjQUFNNEIsZ0JBQWdCLEdBQUdELE9BQU8sQ0FBQ0UsVUFBakM7QUFDQSxjQUFJQyxjQUFjLEdBQUcsRUFBckI7O0FBQ0EsZUFBSyxJQUFJbkksSUFBVCxJQUFpQmlJLGdCQUFqQixFQUFtQztBQUNqQ3ZDLFlBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLFdBQVosRUFBeUIzRixJQUF6QjtBQUNBbUksWUFBQUEsY0FBYyxDQUFDcEssSUFBZixDQUFvQmlDLElBQXBCO0FBQ0Q7O0FBQ0owRixVQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxzQkFBWixFQUFvQ3dCLFFBQVEsQ0FBQ2lCLFNBQTdDO0FBQ0dqQixVQUFBQSxRQUFRLENBQUNnQixjQUFULEdBQTBCQSxjQUExQjtBQUNIaEIsVUFBQUEsUUFBUSxDQUFDa0IsSUFBVCxHQUFnQixLQUFoQjtBQUVHM0MsVUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksd0JBQVosRUFBc0NxQyxPQUFPLENBQUMsVUFBRCxDQUE3QztBQUVBckYsVUFBQUEsT0FBTyxDQUFDcUYsT0FBTyxDQUFDLFVBQUQsQ0FBUixDQUFQLENBaENnRSxDQW1DaEU7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0QsU0FsREQ7QUFtREgsT0F6REQ7QUEwREQsS0FoRUQ7QUFpRUQsR0FuRU0sQ0FBUDtBQXFFRCIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdldFBvc0J5QW5nbGUoYW5nbGUsIGxlbikge1xuXG4gIGNvbnN0IHJhZGlhbiA9IGFuZ2xlICogTWF0aC5QSSAvIDE4MDtcbiAgY29uc3QgeCA9IE1hdGguc2luKHJhZGlhbikgKiBsZW47XG4gIGNvbnN0IHkgPSBNYXRoLmNvcyhyYWRpYW4pICogbGVuO1xuXG4gIHJldHVybiB7IHgsIHkgfTtcblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QW5nbGVCeVBvcyhweCwgcHksIG14LCBteSkge1xuXG4gIGNvbnN0IHggPSBNYXRoLmFicyhweCAtIG14KTtcbiAgY29uc3QgeSA9IE1hdGguYWJzKHB5IC0gbXkpO1xuXG4gIGNvbnN0IHogPSBNYXRoLnNxcnQoTWF0aC5wb3coeCwgMikgKyBNYXRoLnBvdyh5LCAyKSk7XG4gIGNvbnN0IGNvcyA9IHkgLyB6O1xuICBjb25zdCByYWRpbmEgPSBNYXRoLmFjb3MoY29zKTsgLy8g55So5Y+N5LiJ6KeS5Ye95pWw5rGC5byn5bqmXG4gIGxldCBhbmdsZSA9IE1hdGguZmxvb3IoMTgwIC8gKE1hdGguUEkgLyByYWRpbmEpICogMTAwKSAvIDEwMDsgLy8g5bCG5byn5bqm6L2s5o2i5oiQ6KeS5bqmXG5cbiAgaWYgKG14ID4gcHggJiYgbXkgPiBweSkgey8vIOm8oOagh+WcqOesrOWbm+ixoemZkFxuICAgIGFuZ2xlID0gMTgwIC0gYW5nbGU7XG4gIH1cbiAgaWYgKG14ID09PSBweCAmJiBteSA+IHB5KSB7Ly8g6byg5qCH5Zyoeei9tOi0n+aWueWQkeS4ilxuICAgIGFuZ2xlID0gMTgwO1xuICB9XG4gIGlmIChteCA+IHB4ICYmIG15ID09PSBweSkgey8vIOm8oOagh+WcqHjovbTmraPmlrnlkJHkuIpcbiAgICBhbmdsZSA9IDkwO1xuICB9XG4gIGlmIChteCA8IHB4ICYmIG15ID4gcHkpIHsvLyDpvKDmoIflnKjnrKzkuInosaHpmZBcbiAgICBhbmdsZSA9IDE4MCArIGFuZ2xlO1xuICB9XG4gIGlmIChteCA8IHB4ICYmIG15ID09PSBweSkgey8vIOm8oOagh+WcqHjovbTotJ/mlrnlkJFcbiAgICBhbmdsZSA9IDI3MDtcbiAgfVxuICBpZiAobXggPCBweCAmJiBteSA8IHB5KSB7Ly8g6byg5qCH5Zyo56ys5LqM6LGh6ZmQXG4gICAgYW5nbGUgPSAzNjAgLSBhbmdsZTtcbiAgfVxuXG4gIC8vIGNvbnNvbGUubG9nKCdhbmdsZTogJywgYW5nbGUpO1xuICByZXR1cm4gYW5nbGU7XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4Y2hhbmdlTm9kZVBvcyhiYXNlTm9kZSwgdGFyZ2V0Tm9kZSkge1xuICByZXR1cm4gYmFzZU5vZGUuY29udmVydFRvTm9kZVNwYWNlQVIodGFyZ2V0Tm9kZS5fcGFyZW50LmNvbnZlcnRUb1dvcmxkU3BhY2VBUihjYy52Mih0YXJnZXROb2RlLngsIHRhcmdldE5vZGUueSkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJhbmRvbUludChhLCBiID0gMCkge1xuICBsZXQgbWF4ID0gTWF0aC5tYXgoYSwgYik7XG4gIGxldCBtaW4gPSBNYXRoLm1pbihhLCBiKTtcbiAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pICsgbWluKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbVNvcnRCeUFycihhcnIpIHtcbiAgY29uc3QgbmV3QXJyID0gW107XG4gIGNvbnN0IHRtcEFyciA9IGFyci5jb25jYXQoKTtcbiAgd2hpbGUgKHRtcEFyci5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKHRtcEFyci5sZW5ndGggKiBNYXRoLnJhbmRvbSgpKTtcbiAgICBuZXdBcnIucHVzaCh0bXBBcnJbcmFuZG9tSW5kZXhdKTtcbiAgICB0bXBBcnIuc3BsaWNlKHJhbmRvbUluZGV4LCAxKTtcbiAgfVxuICByZXR1cm4gbmV3QXJyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0U3ByTm9kZU1heExlbihzcHJOb2RlLCBtYXhXLCBtYXhIKSB7XG4gIGNvbnN0IHN4ID0gbWF4VyAvIHNwck5vZGUud2lkdGg7XG4gIGNvbnN0IHN5ID0gbWF4SCAvIHNwck5vZGUuaGVpZ2h0O1xuICBjb25zdCBzID0gTWF0aC5taW4oc3gsIHN5KTtcbiAgc3ByTm9kZS5zY2FsZSA9IE1hdGgucm91bmQocyAqIDEwMDApIC8gMTAwMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsUG9zVG9sb2NhbFBvcyhiYXNlTm9kZSwgdGFyZ2V0Tm9kZSkge1xuXHRjb25zdCB3b3JsZFBvcyA9IHRhcmdldE5vZGUucGFyZW50LmNvbnZlcnRUb1dvcmxkU3BhY2VBUihjYy52Mih0YXJnZXROb2RlLngsIHRhcmdldE5vZGUueSkpO1xuXHRjb25zdCBsb2NhbFBvcyA9IGJhc2VOb2RlLnBhcmVudC5jb252ZXJ0VG9Ob2RlU3BhY2VBUihjYy52Mih3b3JsZFBvcy54LCB3b3JsZFBvcy55KSk7XG5cdHJldHVybiBsb2NhbFBvcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdvcmxkUG9zVG9Mb2NhbFBvcyh3b3JsZFBvcywgYmFzZU5vZGUpIHtcblx0Y29uc3QgbG9jYWxQb3MgPSBiYXNlTm9kZS5wYXJlbnQuY29udmVydFRvTm9kZVNwYWNlQVIoY2MudjIod29ybGRQb3MueCwgd29ybGRQb3MueSkpO1xuXHRyZXR1cm4gbG9jYWxQb3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY2FsZVJhdGVCeTJOb2RlKGJhc2VOb2RlLCB0YXJnZXROb2RlLCBtYXhGbGFnID0gdHJ1ZSkge1xuXHRjb25zdCB3b3JsZFJlY3QxID0gdGFyZ2V0Tm9kZS5nZXRCb3VuZGluZ0JveFRvV29ybGQoKTtcblx0Y29uc3Qgd29ybGRSZWN0MiA9IGJhc2VOb2RlLmdldEJvdW5kaW5nQm94VG9Xb3JsZCgpO1xuXG5cdGNvbnN0IHN4ID0gd29ybGRSZWN0MS53aWR0aCAvIHdvcmxkUmVjdDIud2lkdGg7XG5cdGNvbnN0IHN5ID0gd29ybGRSZWN0MS5oZWlnaHQgLyB3b3JsZFJlY3QyLmhlaWdodDtcblx0aWYgKG1heEZsYWcpIHtcblx0XHRyZXR1cm4gTWF0aC5tYXgoc3gsIHN5KTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gTWF0aC5taW4oc3gsIHN5KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzdGFuY2UgKHN0YXJ0LCBlbmQpe1xuICAgIHZhciBwb3MgPSBjYy52MihzdGFydC54IC0gZW5kLngsIHN0YXJ0LnkgLSBlbmQueSk7XG4gICAgdmFyIGRpcyA9IE1hdGguc3FydChwb3MueCpwb3MueCArIHBvcy55KnBvcy55KTtcbiAgICByZXR1cm4gZGlzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGxheUF1ZGlvQnlVcmwoYXVkaW9fdXJsLCBjYj1udWxsKSB7XG5cdGlmIChhdWRpb191cmwpIHtcbiAgICBpZiAoKGF1ZGlvX3VybCBpbnN0YW5jZW9mIGNjLkF1ZGlvQ2xpcCkgJiZhdWRpb191cmwuY29uc3RydWN0b3IubmFtZSA9PSAnY2NfQXVkaW9DbGlwJykge1xuICAgICAgY29uc3QgYXVkaW9JZCA9IGNjLmF1ZGlvRW5naW5lLnBsYXkoYXVkaW9fdXJsLCBmYWxzZSwgMC44KTtcbiAgICAgIGlmIChjYikge1xuICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhhdWRpb0lkLCAoKSA9PiB7XG4gICAgICAgICAgY2IoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKGF1ZGlvX3VybCwgKGVyciwgYXVkaW9DbGlwKSA9PiB7XG4gICAgICAgIGNvbnN0IGF1ZGlvSWQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5KGF1ZGlvQ2xpcCwgZmFsc2UsIDAuOCk7XG4gICAgICAgIGlmIChjYikge1xuICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEZpbmlzaENhbGxiYWNrKGF1ZGlvSWQsICgpID0+IHtcbiAgICAgICAgICAgIGNiKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pOyAgICB9XG5cdFx0XG5cdH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gYnRuQ2xpY2tBbmltYShidG4sIHRpbWU9MC4xNSwgcmF0ZT0xLjA1KSB7XG4gIGJ0bi50bXBTY2FsZSA9IGJ0bi5zY2FsZTtcbiAgYnRuLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX1NUQVJULCAoKSA9PiB7XG4gICAgY2MudHdlZW4oYnRuKVxuICAgICAgLnRvKHRpbWUgLyAyLCB7c2NhbGU6IGJ0bi5zY2FsZSAqIHJhdGV9KVxuICAgICAgLnN0YXJ0KClcbiAgfSlcbiAgYnRuLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0NBTkNFTCwgKCkgPT4ge1xuICAgIGNjLnR3ZWVuKGJ0bilcbiAgICAgIC50byh0aW1lIC8gMiwge3NjYWxlOiBidG4udG1wU2NhbGV9KVxuICAgICAgLnN0YXJ0KClcbiAgfSlcbiAgYnRuLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0VORCwgKCkgPT4ge1xuICAgIGNjLnR3ZWVuKGJ0bilcbiAgICAgIC50byh0aW1lIC8gMiwge3NjYWxlOiBidG4udG1wU2NhbGV9KVxuICAgICAgLnN0YXJ0KClcbiAgfSlcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ByaXRlRnJpbWVCeVVybCh1cmwsIGNiKSB7XG4gIGNjLmxvYWRlci5sb2FkKHsgdXJsIH0sIChlcnIsIGltZykgPT4ge1xuICAgIGNvbnN0IHNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKGltZylcbiAgICBpZiAoY2IpIHtcbiAgICAgIGNiKHNwcml0ZUZyYW1lKTtcbiAgICB9XG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTcHJOb2RlKHJlc05hbWUpIHtcbiAgY29uc3Qgc2YgPSBjYy5maW5kKCdDYW52YXMvcmVzL2ltZy8nICsgcmVzTmFtZSkuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWU7XG4gIGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuICBub2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gc2Y7XG4gIHJldHVybiBub2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ByTm9kZUJ5VXJsKHVybCwgY2IpIHtcbiAgY29uc3Qgbm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG4gIGNvbnN0IHNwciA9IG5vZGUuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XG4gIGdldFNwcml0ZUZyaW1lQnlVcmwodXJsLCAoc2YpID0+IHtcbiAgICBzcHIuc3ByaXRlRnJhbWUgPSBzZjtcbiAgICBpZiAoY2IpIHtcbiAgICAgIGNiKHNwcik7XG4gICAgfVxuICB9KVxufVxuXG5cblxuZXhwb3J0IGZ1bmN0aW9uIHBsYXlBdWRpbyhhdWRpb0NsaXAsIGNiID0gbnVsbCkge1xuICBpZiAoYXVkaW9DbGlwKSB7XG4gICAgY29uc3QgYXVkaW9JZCA9IGNjLmF1ZGlvRW5naW5lLnBsYXlFZmZlY3QoYXVkaW9DbGlwLCBmYWxzZSwgMC44KTtcbiAgICBpZiAoY2IpIHtcbiAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEZpbmlzaENhbGxiYWNrKGF1ZGlvSWQsICgpID0+IHtcbiAgICAgICAgY2IoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNEZWxheSh0aW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9LCB0aW1lICogMTAwMCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmVqZWN0KGUpO1xuICAgIH1cbiAgfSlcbn1cblxuZXhwb3J0IGNsYXNzIEZpcmV3b3JrU2V0dGluZ3Mge1xuICBiYXNlTm9kZTsgLy8g54i26IqC54K5XG4gIG5vZGVMaXN0OyAvLyDngavoirHoioLngrnnmoRhcnJheVxuICBwb3M7IC8vIOWPkeWwhOeCuVxuICBzaWRlOyAvLyDlj5HlsITmlrnlkJFcbiAgcmFuZ2U7IC8vIOaJqeaVo+iMg+WbtFxuICBudW1iZXI7IC8vIOWPkeWwhOaVsOmHj1xuICBzY2Fsc2VSYW5nZTsgLy8g57yp5pS+6IyD5Zu0XG4gIGNvbnN0cnVjdG9yKGJhc2VOb2RlLCBub2RlTGlzdCxcbiAgICBwb3MgPSBjYy52MigwLCAwKSxcbiAgICBzaWRlID0gY2MudjIoMCwgMTAwKSxcbiAgICByYW5nZSA9IDUwLFxuICAgIG51bWJlciA9IDEwMCxcbiAgICBzY2Fsc2VSYW5nZSA9IDBcbiAgKSB7XG4gICAgdGhpcy5iYXNlTm9kZSA9IGJhc2VOb2RlO1xuICAgIHRoaXMubm9kZUxpc3QgPSBub2RlTGlzdDtcbiAgICB0aGlzLnBvcyA9IHBvcztcbiAgICB0aGlzLnNpZGUgPSBzaWRlO1xuICAgIHRoaXMucmFuZ2UgPSByYW5nZTtcbiAgICB0aGlzLm51bWJlciA9IG51bWJlcjtcbiAgICB0aGlzLnNjYWxzZVJhbmdlID0gc2NhbHNlUmFuZ2U7XG4gIH1cblxuICBzdGF0aWMgY29weShmaXJld29yaykge1xuICAgIHJldHVybiBuZXcgRmlyZXdvcmtTZXR0aW5ncyhcbiAgICAgIGZpcmV3b3JrLmJhc2VOb2RlLFxuICAgICAgZmlyZXdvcmsubm9kZUxpc3QsXG4gICAgICBmaXJld29yay5wb3MsXG4gICAgICBmaXJld29yay5zaWRlLFxuICAgICAgZmlyZXdvcmsucmFuZ2UsXG4gICAgICBmaXJld29yay5udW1iZXIsXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd0ZpcmV3b3JrcyhmaXJld29ya1NldHRpbmdzKSB7XG4gIGNvbnN0IHsgYmFzZU5vZGUsIG5vZGVMaXN0LCBwb3MsIHNpZGUsIHJhbmdlLCBudW1iZXIsIHNjYWxzZVJhbmdlIH0gPSBmaXJld29ya1NldHRpbmdzO1xuICBuZXcgQXJyYXkobnVtYmVyKS5maWxsKCcgJykuZm9yRWFjaChhc3luYyAoXywgaSkgPT4ge1xuXG4gICAgbGV0IHJhYmJvbk5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuICAgIHJhYmJvbk5vZGUucGFyZW50ID0gYmFzZU5vZGU7XG4gICAgcmFiYm9uTm9kZS54ID0gcG9zLng7XG4gICAgcmFiYm9uTm9kZS55ID0gcG9zLnk7XG4gICAgcmFiYm9uTm9kZS5hbmdsZSA9IDYwICogTWF0aC5yYW5kb20oKSAtIDMwO1xuXG4gICAgbGV0IG5vZGUgPSBjYy5pbnN0YW50aWF0ZShub2RlTGlzdFtSYW5kb21JbnQobm9kZUxpc3QubGVuZ3RoKV0pO1xuICAgIG5vZGUucGFyZW50ID0gcmFiYm9uTm9kZTtcbiAgICBub2RlLmFjdGl2ZSA9IHRydWU7XG4gICAgbm9kZS54ID0gMDtcbiAgICBub2RlLnkgPSAwO1xuICAgIG5vZGUuYW5nbGUgPSAwO1xuICAgIG5vZGUuc2NhbGUgPSAoTWF0aC5yYW5kb20oKSAtIDAuNSkgKiBzY2Fsc2VSYW5nZSArIDE7XG5cbiAgICBjb25zdCByYXRlID0gTWF0aC5yYW5kb20oKTtcbiAgICBjb25zdCBhbmdsZSA9IE1hdGguUEkgKiAoTWF0aC5yYW5kb20oKSAqIDIgLSAxKTtcblxuICAgIGF3YWl0IGFzeW5jVHdlZW5CeShyYWJib25Ob2RlLCAwLjMsIHtcbiAgICAgIHg6IHNpZGUueCAqIHJhdGUgKyBNYXRoLmNvcyhhbmdsZSkgKiByYW5nZSAqIHJhdGUsXG4gICAgICB5OiBzaWRlLnkgKiByYXRlICsgTWF0aC5zaW4oYW5nbGUpICogcmFuZ2UgKiByYXRlXG4gICAgfSwge1xuICAgICAgZWFzaW5nOiAncXVhZEluJ1xuICAgIH0pO1xuXG4gICAgY2MudHdlZW4ocmFiYm9uTm9kZSlcbiAgICAgIC5ieSg4LCB7IHk6IC0yMDAwIH0pXG4gICAgICAuc3RhcnQoKTtcblxuICAgIGNjLnR3ZWVuKHJhYmJvbk5vZGUpXG4gICAgICAudG8oNSwgeyBzY2FsZTogKE1hdGgucmFuZG9tKCkgLSAwLjUpICogc2NhbHNlUmFuZ2UgKyAxIH0pXG4gICAgICAuc3RhcnQoKTtcblxuICAgIHJhYmJvbkZhbGwocmFiYm9uTm9kZSk7XG5cbiAgICBhd2FpdCBhc3luY0RlbGF5KE1hdGgucmFuZG9tKCkpO1xuICAgIGNjLnR3ZWVuKG5vZGUpXG4gICAgICAuYnkoMC4xNSwgeyB4OiAtMTAsIGFuZ2xlOiAtMTAgfSlcbiAgICAgIC5ieSgwLjMsIHsgeDogMjAsIGFuZ2xlOiAyMCB9KVxuICAgICAgLmJ5KDAuMTUsIHsgeDogLTEwLCBhbmdsZTogLTEwIH0pXG4gICAgICAudW5pb24oKVxuICAgICAgLnJlcGVhdEZvcmV2ZXIoKVxuICAgICAgLnN0YXJ0KCk7XG5cbiAgICBjYy50d2VlbihyYWJib25Ob2RlKVxuICAgICAgLmRlbGF5KDUpXG4gICAgICAudG8oMC4zLCB7IG9wYWNpdHk6IDAgfSlcbiAgICAgIC5jYWxsKCgpID0+IHtcbiAgICAgICAgbm9kZS5zdG9wQWxsQWN0aW9ucygpO1xuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICBub2RlLnBhcmVudCA9IG51bGw7XG4gICAgICAgIG5vZGUgPSBudWxsO1xuICAgICAgfSlcbiAgICAgIC5zdGFydCgpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmFiYm9uRmFsbChub2RlKSB7XG4gIGNvbnN0IHRpbWUgPSAxICsgTWF0aC5yYW5kb20oKTtcbiAgY29uc3Qgb2Zmc2V0WCA9IFJhbmRvbUludCgtMjAwLCAyMDApICogdGltZTtcbiAgYXdhaXQgYXN5bmNUd2VlbkJ5KG5vZGUsIHRpbWUsIHsgeDogb2Zmc2V0WCwgYW5nbGU6IG9mZnNldFggKiA2MCAvIDIwMCB9KTtcbiAgcmFiYm9uRmFsbChub2RlKTtcbn1cblxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNUd2VlblRvKG5vZGUsIGR1cmF0aW9uLCBvYmosIGVhc2UgPSB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgY2MudHdlZW4obm9kZSlcbiAgICAgICAgLnRvKGR1cmF0aW9uLCBvYmosIGVhc2UpXG4gICAgICAgIC5jYWxsKCgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5zdGFydCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNUd2VlbkJ5KG5vZGUsIGR1cmF0aW9uLCBvYmosIGVhc2UgPSB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgY2MudHdlZW4obm9kZSlcbiAgICAgICAgLmJ5KGR1cmF0aW9uLCBvYmosIGVhc2UpXG4gICAgICAgIC5jYWxsKCgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5zdGFydCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1RyZWJsZUZpcmV3b3JrKGJhc2VOb2RlLCByYWJib25MaXN0KSB7XG4gIGNvbnN0IG1pZGRsZSA9IG5ldyBGaXJld29ya1NldHRpbmdzKGJhc2VOb2RlLCByYWJib25MaXN0KTtcbiAgbWlkZGxlLnBvcyA9IGNjLnYyKDAsIC00MDApO1xuICBtaWRkbGUuc2lkZSA9IGNjLnYyKDAsIDEwMDApO1xuICBtaWRkbGUucmFuZ2UgPSAyMDA7XG4gIG1pZGRsZS5udW1iZXIgPSAxMDA7XG4gIG1pZGRsZS5zY2Fsc2VSYW5nZSA9IDAuNDtcblxuICBjb25zdCBsZWZ0ID0gRmlyZXdvcmtTZXR0aW5ncy5jb3B5KG1pZGRsZSk7XG4gIGxlZnQucG9zID0gY2MudjIoLTYwMCwgLTQwMCk7XG4gIGxlZnQuc2lkZSA9IGNjLnYyKDIwMCwgMTAwMCk7XG5cbiAgY29uc3QgcmlnaHQgPSBGaXJld29ya1NldHRpbmdzLmNvcHkobWlkZGxlKTtcbiAgcmlnaHQucG9zID0gY2MudjIoNjAwLCAtNDAwKTtcbiAgcmlnaHQuc2lkZSA9IGNjLnYyKC0yMDAsIDEwMDApO1xuXG4gIHNob3dGaXJld29ya3MobWlkZGxlKTtcbiAgc2hvd0ZpcmV3b3JrcyhsZWZ0KTtcbiAgc2hvd0ZpcmV3b3JrcyhyaWdodCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbkhvbWV3b3JrRmluaXNoKCkge1xuICBjb25zdCBtaWRkbGVMYXllciA9IGNjLmZpbmQoJ21pZGRsZUxheWVyJyk7XG4gIGlmIChtaWRkbGVMYXllcikge1xuICAgIGNvbnN0IG1pZGRsZUxheWVyQ29tcG9uZW50ID0gbWlkZGxlTGF5ZXIuZ2V0Q29tcG9uZW50KCdtaWRkbGVMYXllcicpO1xuICAgIGlmIChtaWRkbGVMYXllckNvbXBvbmVudC5yb2xlID09ICdzdHVkZW50Jykge1xuICAgICAgbWlkZGxlTGF5ZXJDb21wb25lbnQub25Ib21ld29ya0ZpbmlzaCgoKSA9PiB7IH0pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZygnb25Ib21ld29ya0ZpbmlzaCcpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkRHJhZ29uQm9uZXMoZHJhZ29uRGlzcGxheSx7dGV4LCBhdGxhcywgc2tlfSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNjLmxvYWRlci5sb2FkKHsgdXJsOiB0ZXgsIHR5cGU6ICdwbmcnIH0sIChlcnJvciwgdGV4dHVyZSkgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHJlamVjdCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYy5sb2FkZXIubG9hZCh7IHVybDogYXRsYXMsIHR5cGU6ICd0eHQnIH0sIChlcnJvciwgYXRsYXNKc29uKSA9PiB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAgIGNjLmxvYWRlci5sb2FkKHsgdXJsOiBza2UsIHR5cGU6ICd0eHQnIH0sIChlcnJvciwgZHJhZ29uQm9uZXNKc29uKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGF0bGFzT2JqID0gbmV3IGRyYWdvbkJvbmVzLkRyYWdvbkJvbmVzQXRsYXNBc3NldCgpXG4gICAgICAgICAgICBhdGxhc09iai51dWlkID0gYXRsYXNcbiAgICAgICAgICAgIGF0bGFzT2JqLmF0bGFzSnNvbiA9IGF0bGFzSnNvblxuICAgICAgICAgICAgYXRsYXNPYmoudGV4dHVyZSA9IHRleHR1cmVcbiAgXG4gICAgICAgICAgICBjb25zdCBhc3NldCA9IG5ldyBkcmFnb25Cb25lcy5EcmFnb25Cb25lc0Fzc2V0KClcbiAgICAgICAgICAgIGFzc2V0LnV1aWQgPSBza2VcbiAgICAgICAgICAgIGFzc2V0LmRyYWdvbkJvbmVzSnNvbiA9IGRyYWdvbkJvbmVzSnNvbjtcblxuICAgICAgICAgICAgY29uc3QgYXJtYXR1cmVOYW1lID0gYXNzZXQuX2RyYWdvbkJvbmVzSnNvbkRhdGEuYXJtYXR1cmVbMF0ubmFtZSB8fCAnZGVmYXVsdCc7XG4gICAgICAgICAgICBkcmFnb25EaXNwbGF5LmFybWF0dXJlTmFtZSA9IGFybWF0dXJlTmFtZTtcbiAgXG4gICAgICAgICAgICBkcmFnb25EaXNwbGF5LmRyYWdvbkF0bGFzQXNzZXQgPSBhdGxhc09ialxuICAgICAgICAgICAgZHJhZ29uRGlzcGxheS5kcmFnb25Bc3NldCA9IGFzc2V0O1xuICAgICAgICAgICAgcmVzb2x2ZShhc3NldC5fZHJhZ29uQm9uZXNKc29uRGF0YS5hcm1hdHVyZVswXS5hYWJiKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbiAgXG59XG5cblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkU3BpbmUoc2tlbGV0b24sIHBpY05hbWUsIHt0ZXgsIGF0bGFzLCBza2V9KSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgLy8gY2MubG9hZGVyLmxvYWQoeyB1cmw6IHRleCwgdHlwZTogJ3BuZycgfSwgKGVycm9yLCB0ZXh0dXJlKSA9PiB7XG4gICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUodGV4LCAoZXJyb3IsIHRleHR1cmUpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZWplY3QoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gY2MubG9hZGVyLmxvYWQoeyB1cmw6IGF0bGFzLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGF0bGFzSnNvbikgPT4ge1xuICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRBbnkoeyB1cmw6IGF0bGFzIH0sIChlcnJvciwgYXRsYXNKc29uKSA9PiB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAgIC8vIGNjLmxvYWRlci5sb2FkKHsgdXJsOiBza2UsIHR5cGU6ICd0eHQnIH0sIChlcnJvciwgZHJhZ29uQm9uZXNKc29uKSA9PiB7XG4gICAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRBbnkoeyB1cmw6IHNrZSB9LCAoZXJyb3IsIGRyYWdvbkJvbmVzSnNvbikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgdmFyIGFzc2V0ID0gbmV3IHNwLlNrZWxldG9uRGF0YSgpO1xuICAgICAgICAgICAgYXNzZXQuX3V1aWQgPSBza2U7XG4gICAgICAgICAgICBhc3NldC5za2VsZXRvbkpzb24gPSBKU09OLnN0cmluZ2lmeSggZHJhZ29uQm9uZXNKc29uICk7XG4gICAgICAgICAgICBhc3NldC5hdGxhc1RleHQgPSBhdGxhc0pzb247XG4gICAgICAgICAgICBhc3NldC50ZXh0dXJlcyA9IFt0ZXh0dXJlXTtcbiAgICAgICAgICAgIGFzc2V0LnRleHR1cmVOYW1lcyA9IFtwaWNOYW1lXTtcblxuICAgICAgICAgICAgY29uc29sZS5sb2coJ3BpY05hbWU6ICcsIHBpY05hbWUpO1xuXG5cdFx0XHQgICAgICBza2VsZXRvbi5za2VsZXRvbkRhdGEgPSBhc3NldDtcblx0XG5cbiAgICAgICAgICAgIGNvbnN0IGpzb25PYmogPSBkcmFnb25Cb25lc0pzb24gLy9KU09OLnBhcnNlKCBhc3NldHNbMV0pO1xuICAgICAgICAgICAgY29uc3QgYW5pbWF0aW9uTmFtZU9iaiA9IGpzb25PYmouYW5pbWF0aW9ucztcbiAgICAgICAgICAgIGxldCBhbmltYXRpb25OYW1lcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgbmFtZSBpbiBhbmltYXRpb25OYW1lT2JqKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCduYW1lfn46ICAnLCBuYW1lKTtcbiAgICAgICAgICAgICAgYW5pbWF0aW9uTmFtZXMucHVzaChuYW1lKTtcbiAgICAgICAgICAgIH1cblx0XHRcdCAgICAgIGNvbnNvbGUubG9nKFwic2tlbGV0b24uYW5pbWF0aW9uOiBcIiwgc2tlbGV0b24uYW5pbWF0aW9uKTtcbiAgICAgICAgICAgIHNrZWxldG9uLmFuaW1hdGlvbk5hbWVzID0gYW5pbWF0aW9uTmFtZXM7XG5cdFx0XHQgICAgICBza2VsZXRvbi5sb29wID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwianNvbk9ialsnc2tlbGV0b24nXSA6IFwiLCBqc29uT2JqWydza2VsZXRvbiddKVxuXG4gICAgICAgICAgICByZXNvbHZlKGpzb25PYmpbJ3NrZWxldG9uJ10pO1xuXG5cbiAgICAgICAgICAgIC8vIGNvbnN0IGF0bGFzT2JqID0gbmV3IGRyYWdvbkJvbmVzLkRyYWdvbkJvbmVzQXRsYXNBc3NldCgpXG4gICAgICAgICAgICAvLyBhdGxhc09iai51dWlkID0gYXRsYXNcbiAgICAgICAgICAgIC8vIGF0bGFzT2JqLmF0bGFzSnNvbiA9IGF0bGFzSnNvblxuICAgICAgICAgICAgLy8gYXRsYXNPYmoudGV4dHVyZSA9IHRleHR1cmVcbiAgXG4gICAgICAgICAgICAvLyBjb25zdCBhc3NldCA9IG5ldyBkcmFnb25Cb25lcy5EcmFnb25Cb25lc0Fzc2V0KClcbiAgICAgICAgICAgIC8vIGFzc2V0LnV1aWQgPSBza2VcbiAgICAgICAgICAgIC8vIGFzc2V0LmRyYWdvbkJvbmVzSnNvbiA9IGRyYWdvbkJvbmVzSnNvbjtcblxuICAgICAgICAgICAgLy8gY29uc3QgYXJtYXR1cmVOYW1lID0gYXNzZXQuX2RyYWdvbkJvbmVzSnNvbkRhdGEuYXJtYXR1cmVbMF0ubmFtZSB8fCAnZGVmYXVsdCc7XG4gICAgICAgICAgICAvLyBkcmFnb25EaXNwbGF5LmFybWF0dXJlTmFtZSA9IGFybWF0dXJlTmFtZTtcbiAgXG4gICAgICAgICAgICAvLyBkcmFnb25EaXNwbGF5LmRyYWdvbkF0bGFzQXNzZXQgPSBhdGxhc09ialxuICAgICAgICAgICAgLy8gZHJhZ29uRGlzcGxheS5kcmFnb25Bc3NldCA9IGFzc2V0O1xuICAgICAgICAgICAgLy8gcmVzb2x2ZShhc3NldC5fZHJhZ29uQm9uZXNKc29uRGF0YS5hcm1hdHVyZVswXS5hYWJiKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbiAgXG59XG4iXX0=
//------QC-SOURCE-SPLIT------
limingzhe's avatar
limingzhe committed
745

limingzhe's avatar
limingzhe committed
746 747 748 749 750 751 752 753 754 755 756 757 758
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/OP15/script/defaultData_OP15.js';
                    var __require = nodeEnv ? function (request) {
                        return cc.require(request);
                    } : function (request) {
                        return __quick_compile_project__.require(request, __filename);
                    };
                    function __define (exports, require, module) {
                        if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
cc._RF.push(module, 'c41b05RVddEPK86siw92bnl', 'defaultData_OP15');
// OP15/script/defaultData_OP15.js
limingzhe's avatar
limingzhe committed
759

limingzhe's avatar
limingzhe committed
760
"use strict";
limingzhe's avatar
limingzhe committed
761

762 763 764 765 766 767 768 769 770 771 772 773 774
exports.__esModule = true;
exports.defaultData = void 0;
var defaultData = {
  "begin_audio": "http://teach.cdn.ireadabc.com/b1e5378083adac9950839772c7b67f34.mp3",
  "playing_audio": "http://teach.cdn.ireadabc.com/549347d1be620d9d91b7420d45b3cb7a.mp3",
  "end_audio": "http://teach.cdn.ireadabc.com/0ffcb92067cac989b6e90a26f19ffc1f.mp3",
  "bgItem": {
    "url": "http://teach.cdn.ireadabc.com/21e3154ab2380e19ccfc262c1a908e2d.jpg",
    "rect": {
      "x": 492.53,
      "y": 0,
      "width": 384.95,
      "height": 511
limingzhe's avatar
limingzhe committed
775
    }
776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126
  },
  "hotZoneItemArr": [{
    "id": "1638090450402",
    "index": 0,
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 256.13614573346115
    },
    "gIdx": "1",
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/c5c6cd890660a3c22fde393a3770458f.json",
      "name": "小汽车_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/cea107517406463474d907e306163226.json",
      "name": "小汽车_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/84bce64cd4259e604a458d08ddd75bec.png",
      "name": "小汽车_tex.png"
    },
    "rect": {
      "x": 61.44,
      "y": 124.47,
      "width": 262.05,
      "height": 262.05
    }
  }, {
    "id": "1638090465133",
    "index": 1,
    "pic_url": "http://teach.cdn.ireadabc.com/70d02ee3788e373f707a45530cd2f9c0.png",
    "itemType": "pic",
    "fontScale": 1.0703125,
    "imgScale": 0.10376332639187988,
    "imgSizeW": 1246,
    "imgSizeH": 1654,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 256.13614573346115
    },
    "gIdx": "2",
    "rect": {
      "x": 127.83,
      "y": 171,
      "width": 129.29,
      "height": 171.62
    }
  }, {
    "id": "1638090485031",
    "index": 2,
    "audio_url": "http://teach.cdn.ireadabc.com/e31c3b1914837a611d4d3bb1ceb00773.mp3",
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 256.13614573346115
    },
    "gIdx": "0",
    "labelText": "14",
    "posX": 987.4475343839475,
    "posY": 269.0400594454644,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/d2d7de9f8079f36e8354d16e4ca26476.json",
      "name": "房子_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/204ea18018a352a30fd233a46f9a0a1a.json",
      "name": "房子_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/cf8da0ab00a7d9f34bdf8f490c29dcbf.png",
      "name": "房子_tex.png"
    },
    "rect": {
      "x": 164.41,
      "y": 139.18,
      "width": 222.74,
      "height": 138.89
    }
  }, {
    "id": "1638090539787",
    "index": 3,
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 259.3689320388349
    },
    "gIdx": "1",
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/ed2ac4931a9c00ff6c4298381722676e.json",
      "name": "牛_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/0e153093ee7265b6a843847543d6110b.json",
      "name": "牛_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/631661e13616eea6cde9f9e6610f5008.png",
      "name": "牛_tex.png"
    },
    "rect": {
      "x": 61.44,
      "y": 124.47,
      "width": 262.05,
      "height": 262.05
    }
  }, {
    "id": "1638090562867",
    "index": 4,
    "audio_url": "http://teach.cdn.ireadabc.com/bf1924c502ca1a4ac928a31e7c8aa70e.mp3",
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 259.3689320388349
    },
    "gIdx": "0",
    "labelText": "6",
    "posX": 573.3171718463663,
    "posY": 188.29243596621365,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/bd3c2cc93b1593433a58d8482972ff66.json",
      "name": "苹果_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/1f54df317a8c86271e29d6db3ffb55ce.json",
      "name": "苹果_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/734ac06a7ef018b457e7ac7692789ffa.png",
      "name": "苹果_tex.png"
    },
    "rect": {
      "x": 0.86,
      "y": 88.71,
      "width": 159.85,
      "height": 199.16
    }
  }, {
    "id": "1638090594247",
    "index": 5,
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 259.3689320388349
    },
    "gIdx": "1",
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/1d4b251caf0c0b8245fb17cd8445672c.json",
      "name": "农夫_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/1fdd04cacb6d543cf05ce64e8124a6ff.json",
      "name": "农夫_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/8f582cb39eb349da08e06289b0ce6c16.png",
      "name": "农夫_tex.png"
    },
    "rect": {
      "x": 61.44,
      "y": 124.47,
      "width": 262.05,
      "height": 262.05
    }
  }, {
    "id": "1638090663056",
    "index": 6,
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 259.3689320388349
    },
    "gIdx": "1",
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/4503721901880d0b6c3ad6d4261e958b.json",
      "name": "小女孩_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/fc4fd0b2f672dff7c7b2148830164090.json",
      "name": "小女孩_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/4be41c15972caf99eef956ba48759c91.png",
      "name": "小女孩_tex.png"
    },
    "rect": {
      "x": 61.44,
      "y": 124.47,
      "width": 262.05,
      "height": 262.05
    }
  }, {
    "id": "1638090685571",
    "index": 7,
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 259.3689320388349
    },
    "gIdx": "1",
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/55951c794b414ab58cca023642819e37.json",
      "name": "母鸡_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/47b93323b1d1e1e6020704c537f46820.json",
      "name": "母鸡_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/dd66021ff860b02a559d59817c71e27f.png",
      "name": "母鸡_tex.png"
    },
    "rect": {
      "x": 61.44,
      "y": 124.47,
      "width": 262.05,
      "height": 262.05
    }
  }, {
    "id": "1638090695652",
    "index": 8,
    "audio_url": "http://teach.cdn.ireadabc.com/323feb19d153069702ffd21097f18f79.mp3",
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 259.3689320388349
    },
    "gIdx": "0",
    "labelText": "11",
    "posX": 742.7850477587763,
    "posY": 331.7071907475566,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/cd7c7a756c0f79d28f419576e3b85b0c.json",
      "name": "鸭子_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/7613f30893a5f64773a77723c1d67f0d.json",
      "name": "鸭子_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/59b2293ef4eea9d64ff9821bc5d69a6d.png",
      "name": "鸭子_tex.png"
    },
    "rect": {
      "x": 157.04,
      "y": 262,
      "width": 186.43,
      "height": 139.41
    }
  }, {
    "id": "1638090758159",
    "index": 9,
    "audio_url": "http://teach.cdn.ireadabc.com/b903b174f09107517b5d6f8934b73447.mp3",
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 259.3689320388349
    },
    "gIdx": "0",
    "labelText": "7",
    "posX": 616.4753096239328,
    "posY": 379.58963875116547,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/b9fa85c227daa6539f12cab5a5058052.json",
      "name": "鸡蛋_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/99aa8de7b69000ac6c5e0fb6a508b692.json",
      "name": "鸡蛋_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/09bd0a34a4508613fd7c167724e4a969.png",
      "name": "鸡蛋_tex.png"
    },
    "rect": {
      "x": 51.42,
      "y": 289.19,
      "width": 145.05,
      "height": 180.81
    }
  }, {
    "id": "1638090812155",
    "index": 10,
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 259.3689320388349
    },
    "gIdx": "1",
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/357fef8204228afb43d0ce73746228e5.json",
      "name": "鱼_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/f694e5442095a317fc7d8b1390e630c7.json",
      "name": "鱼_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/f566cca10fd83f62a465b144ac73d483.png",
      "name": "鱼_tex.png"
limingzhe's avatar
limingzhe committed
1127
    },
1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146
    "rect": {
      "x": 61.44,
      "y": 124.47,
      "width": 262.05,
      "height": 262.05
    }
  }, {
    "id": "1638090824244",
    "index": 11,
    "audio_url": "http://teach.cdn.ireadabc.com/2656b72aec7f6def07713fbc99309168.mp3",
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 259.3689320388349
limingzhe's avatar
limingzhe committed
1147
    },
1148 1149 1150 1151 1152 1153 1154
    "gIdx": "0",
    "labelText": "10",
    "posX": 558.9378431710302,
    "posY": 378.6665469295808,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/20cbf3d186a197baaed38204dd017f51.json",
      "name": "猫_ske.json"
limingzhe's avatar
limingzhe committed
1155
    },
1156 1157 1158
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/d7de5a32de3ee1ad660dc509ba8adf1d.json",
      "name": "猫_tex.json"
limingzhe's avatar
limingzhe committed
1159
    },
1160 1161 1162 1163 1164 1165 1166 1167 1168
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/af86e967aab8632cd0b26d60a62f0675.png",
      "name": "猫_tex.png"
    },
    "rect": {
      "x": -0.65,
      "y": 290.88,
      "width": 134.12,
      "height": 175.57
limingzhe's avatar
limingzhe committed
1169
    }
1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204
  }, {
    "id": "1638090897644",
    "index": 12,
    "audio_url": "http://teach.cdn.ireadabc.com/9bbf8ba2fa7f96ea5a95c27a384414a2.mp3",
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 259.3689320388349
    },
    "gIdx": "0",
    "labelText": "9",
    "posX": 978.0121257842791,
    "posY": 124.03681391979805,
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/d8506ebddb29c8d08b4b93376b45f5c9.json",
      "name": "鸟_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/9fad47c99025b7b229df52afb797ec5c.json",
      "name": "鸟_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/e86b136b9706768c5ca0dba3dc0aab21.png",
      "name": "鸟_tex.png"
    },
    "rect": {
      "x": 167.58,
      "y": 52.95,
      "width": 201.78,
      "height": 86.48
liujiaxin's avatar
liujiaxin committed
1205
    }
1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236
  }, {
    "id": "1638090948950",
    "index": 13,
    "itemType": "rect",
    "fontScale": 1.0703125,
    "imgScale": 1,
    "imgSizeW": 0,
    "imgSizeH": 0,
    "mapScale": 1.0703125,
    "dragDot": {
      "x": 685,
      "y": 259.3689320388349
    },
    "gIdx": "1",
    "skeJsonData": {
      "url": "http://teach.cdn.ireadabc.com/3d1d49e583d97cd5097d08102265b1c6.json",
      "name": "蚂蚁_ske.json"
    },
    "texJsonData": {
      "url": "http://teach.cdn.ireadabc.com/9a3a5c871b288aebb1e6920f1e9709f8.json",
      "name": "蚂蚁_tex.json"
    },
    "texPngData": {
      "url": "http://teach.cdn.ireadabc.com/1fad62f313b6ff72a642cb4b15aeaf04.png",
      "name": "蚂蚁_tex.png"
    },
    "rect": {
      "x": 61.44,
      "y": 124.47,
      "width": 262.05,
      "height": 262.05
limingzhe's avatar
limingzhe committed
1237
    }
1238 1239 1240 1241 1242 1243 1244 1245 1246
  }],
  "guide_audio": "http://teach.cdn.ireadabc.com/9523c8ed45faee686363dd157b0d7426.mp3",
  "wrong_audio": "http://teach.cdn.ireadabc.com/7dd85f025a132c2eef8daee38d900287.mp3",
  "wrong_audio2": "http://teach.cdn.ireadabc.com/daee88b6f2eadd78b60436eedffcae08.mp3",
  "wrong_audio1": "http://teach.cdn.ireadabc.com/74a2688ccf1bc802221ed64caebc481b.mp3",
  "right_audio": "http://teach.cdn.ireadabc.com/43791fc418e666df5e9ec1b7bf936409.mp3",
  "begin_sep_time": 15
};
exports.defaultData = defaultData;
limingzhe's avatar
limingzhe committed
1247

limingzhe's avatar
limingzhe committed
1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258
cc._RF.pop();
                    }
                    if (nodeEnv) {
                        __define(__module.exports, __require, __module);
                    }
                    else {
                        __quick_compile_project__.registerModuleFunc(__filename, function () {
                            __define(__module.exports, __require, __module);
                        });
                    }
                })();
1259
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC9kZWZhdWx0RGF0YV9PUDE1LmpzIl0sIm5hbWVzIjpbImRlZmF1bHREYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQU8sSUFBTUEsV0FBVyxHQUFHO0FBQ3ZCLGlCQUFlLG9FQURRO0FBRXZCLG1CQUFpQixvRUFGTTtBQUd2QixlQUFhLG9FQUhVO0FBSXZCLFlBQVU7QUFDTixXQUFPLG9FQUREO0FBRU4sWUFBUTtBQUNKLFdBQUssTUFERDtBQUVKLFdBQUssQ0FGRDtBQUdKLGVBQVMsTUFITDtBQUlKLGdCQUFVO0FBSk47QUFGRixHQUphO0FBYXZCLG9CQUFrQixDQUNkO0FBQ0ksVUFBTSxlQURWO0FBRUksYUFBUyxDQUZiO0FBR0ksZ0JBQVksTUFIaEI7QUFJSSxpQkFBYSxTQUpqQjtBQUtJLGdCQUFZLENBTGhCO0FBTUksZ0JBQVksQ0FOaEI7QUFPSSxnQkFBWSxDQVBoQjtBQVFJLGdCQUFZLFNBUmhCO0FBU0ksZUFBVztBQUNQLFdBQUssR0FERTtBQUVQLFdBQUs7QUFGRSxLQVRmO0FBYUksWUFBUSxHQWJaO0FBY0ksbUJBQWU7QUFDWCxhQUFPLHFFQURJO0FBRVgsY0FBUTtBQUZHLEtBZG5CO0FBa0JJLG1CQUFlO0FBQ1gsYUFBTyxxRUFESTtBQUVYLGNBQVE7QUFGRyxLQWxCbkI7QUFzQkksa0JBQWM7QUFDVixhQUFPLG9FQURHO0FBRVYsY0FBUTtBQUZFLEtBdEJsQjtBQTBCSSxZQUFRO0FBQ0osV0FBSyxLQUREO0FBRUosV0FBSyxNQUZEO0FBR0osZUFBUyxNQUhMO0FBSUosZ0JBQVU7QUFKTjtBQTFCWixHQURjLEVBa0NkO0FBQ0ksVUFBTSxlQURWO0FBRUksYUFBUyxDQUZiO0FBR0ksZUFBVyxvRUFIZjtBQUlJLGdCQUFZLEtBSmhCO0FBS0ksaUJBQWEsU0FMakI7QUFNSSxnQkFBWSxtQkFOaEI7QUFPSSxnQkFBWSxJQVBoQjtBQVFJLGdCQUFZLElBUmhCO0FBU0ksZ0JBQVksU0FUaEI7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QjtBQU1JLGdCQUFZLENBTmhCO0FBT0ksZ0JBQVksQ0FQaEI7QUFRSSxnQkFBWSxTQVJoQjtBQVNJLGVBQVc7QUFDUCxXQUFLLEdBREU7QUFFUCxXQUFLO0FBRkUsS0FUZjtBQWFJLFlBQVEsR0FiWjtBQWNJLG1CQUFlO0FBQ1gsYUFBTyxxRUFESTtBQUVYLGNBQVE7QUFGRyxLQWRuQjtBQWtCSSxtQkFBZTtBQUNYLGFBQU8scUVBREk7QUFFWCxjQUFRO0FBRkcsS0FsQm5CO0FBc0JJLGtCQUFjO0FBQ1YsYUFBTyxvRUFERztBQUVWLGNBQVE7QUFGRSxLQXRCbEI7QUEwQkksWUFBUTtBQUNKLFdBQUssS0FERDtBQUVKLFdBQUssTUFGRDtBQUdKLGVBQVMsTUFITDtBQUlKLGdCQUFVO0FBSk47QUExQlosR0EzYmMsQ0FiSztBQTBldkIsaUJBQWUsb0VBMWVRO0FBMmV2QixpQkFBZSxvRUEzZVE7QUE0ZXZCLGtCQUFnQixvRUE1ZU87QUE2ZXZCLGtCQUFnQixvRUE3ZU87QUE4ZXZCLGlCQUFlLG9FQTllUTtBQStldkIsb0JBQWtCO0FBL2VLLENBQXBCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZGVmYXVsdERhdGEgPSB7XG4gICAgXCJiZWdpbl9hdWRpb1wiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2IxZTUzNzgwODNhZGFjOTk1MDgzOTc3MmM3YjY3ZjM0Lm1wM1wiLFxuICAgIFwicGxheWluZ19hdWRpb1wiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzU0OTM0N2QxYmU2MjBkOWQ5MWI3NDIwZDQ1YjNjYjdhLm1wM1wiLFxuICAgIFwiZW5kX2F1ZGlvXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMGZmY2I5MjA2N2NhYzk4OWI2ZTkwYTI2ZjE5ZmZjMWYubXAzXCIsXG4gICAgXCJiZ0l0ZW1cIjoge1xuICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzIxZTMxNTRhYjIzODBlMTljY2ZjMjYyYzFhOTA4ZTJkLmpwZ1wiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDQ5Mi41MyxcbiAgICAgICAgICAgIFwieVwiOiAwLFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAzODQuOTUsXG4gICAgICAgICAgICBcImhlaWdodFwiOiA1MTFcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJob3Rab25lSXRlbUFyclwiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwiaWRcIjogXCIxNjM4MDkwNDUwNDAyXCIsXG4gICAgICAgICAgICBcImluZGV4XCI6IDAsXG4gICAgICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICAgICAgXCJmb250U2NhbGVcIjogMS4wNzAzMTI1LFxuICAgICAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICAgICAgXCJtYXBTY2FsZVwiOiAxLjA3MDMxMjUsXG4gICAgICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgICAgIFwieFwiOiA2ODUsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDI1Ni4xMzYxNDU3MzM0NjExNVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYzVjNmNkODkwNjYwYTNjMjJmZGUzOTNhMzc3MDQ1OGYuanNvblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIuWwj+axvei9pl9za2UuanNvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jZWExMDc1MTc0MDY0NjM0NzRkOTA3ZTMwNjE2MzIyNi5qc29uXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi5bCP5rG96L2mX3RleC5qc29uXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vODRiY2U2NGNkNDI1OWU2MDRhNDU4ZDA4ZGRkNzViZWMucG5nXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi5bCP5rG96L2mX3RleC5wbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ4XCI6IDYxLjQ0LFxuICAgICAgICAgICAgICAgIFwieVwiOiAxMjQuNDcsXG4gICAgICAgICAgICAgICAgXCJ3aWR0aFwiOiAyNjIuMDUsXG4gICAgICAgICAgICAgICAgXCJoZWlnaHRcIjogMjYyLjA1XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwiaWRcIjogXCIxNjM4MDkwNDY1MTMzXCIsXG4gICAgICAgICAgICBcImluZGV4XCI6IDEsXG4gICAgICAgICAgICBcInBpY191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83MGQwMmVlMzc4OGUzNzNmNzA3YTQ1NTMwY2QyZjljMC5wbmdcIixcbiAgICAgICAgICAgIFwiaXRlbVR5cGVcIjogXCJwaWNcIixcbiAgICAgICAgICAgIFwiZm9udFNjYWxlXCI6IDEuMDcwMzEyNSxcbiAgICAgICAgICAgIFwiaW1nU2NhbGVcIjogMC4xMDM3NjMzMjYzOTE4Nzk4OCxcbiAgICAgICAgICAgIFwiaW1nU2l6ZVdcIjogMTI0NixcbiAgICAgICAgICAgIFwiaW1nU2l6ZUhcIjogMTY1NCxcbiAgICAgICAgICAgIFwibWFwU2NhbGVcIjogMS4wNzAzMTI1LFxuICAgICAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgICAgICBcInhcIjogNjg1LFxuICAgICAgICAgICAgICAgIFwieVwiOiAyNTYuMTM2MTQ1NzMzNDYxMTVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImdJZHhcIjogXCIyXCIsXG4gICAgICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgICAgIFwieFwiOiAxMjcuODMsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDE3MSxcbiAgICAgICAgICAgICAgICBcIndpZHRoXCI6IDEyOS4yOSxcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiOiAxNzEuNjJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA0ODUwMzFcIixcbiAgICAgICAgICAgIFwiaW5kZXhcIjogMixcbiAgICAgICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZTMxYzNiMTkxNDgzN2E2MTFkNGQzYmIxY2ViMDA3NzMubXAzXCIsXG4gICAgICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICAgICAgXCJmb250U2NhbGVcIjogMS4wNzAzMTI1LFxuICAgICAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICAgICAgXCJtYXBTY2FsZVwiOiAxLjA3MDMxMjUsXG4gICAgICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgICAgIFwieFwiOiA2ODUsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDI1Ni4xMzYxNDU3MzM0NjExNVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZ0lkeFwiOiBcIjBcIixcbiAgICAgICAgICAgIFwibGFiZWxUZXh0XCI6IFwiMTRcIixcbiAgICAgICAgICAgIFwicG9zWFwiOiA5ODcuNDQ3NTM0MzgzOTQ3NSxcbiAgICAgICAgICAgIFwicG9zWVwiOiAyNjkuMDQwMDU5NDQ1NDY0NCxcbiAgICAgICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDJkN2RlOWY4MDc5ZjM2ZTgzNTRkMTZlNGNhMjY0NzYuanNvblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIuaIv+WtkF9za2UuanNvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8yMDRlYTE4MDE4YTM1MmEzMGZkMjMzYTQ2ZjlhMGExYS5qc29uXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi5oi/5a2QX3RleC5qc29uXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vY2Y4ZGEwYWIwMGE3ZDlmMzRiZGY4ZjQ5MGMyOWRjYmYucG5nXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi5oi/5a2QX3RleC5wbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ4XCI6IDE2NC40MSxcbiAgICAgICAgICAgICAgICBcInlcIjogMTM5LjE4LFxuICAgICAgICAgICAgICAgIFwid2lkdGhcIjogMjIyLjc0LFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDEzOC44OVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcImlkXCI6IFwiMTYzODA5MDUzOTc4N1wiLFxuICAgICAgICAgICAgXCJpbmRleFwiOiAzLFxuICAgICAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgICAgIFwiZm9udFNjYWxlXCI6IDEuMDcwMzEyNSxcbiAgICAgICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgICAgIFwibWFwU2NhbGVcIjogMS4wNzAzMTI1LFxuICAgICAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgICAgICBcInhcIjogNjg1LFxuICAgICAgICAgICAgICAgIFwieVwiOiAyNTkuMzY4OTMyMDM4ODM0OVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZWQyYWM0OTMxYTljMDBmZjZjNDI5ODM4MTcyMjY3NmUuanNvblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIueJm19za2UuanNvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8wZTE1MzA5M2VlNzI2NWI2YTg0Mzg0NzU0M2Q2MTEwYi5qc29uXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi54mbX3RleC5qc29uXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNjMxNjYxZTEzNjE2ZWVhNmNkZTlmOWU2NjEwZjUwMDgucG5nXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi54mbX3RleC5wbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ4XCI6IDYxLjQ0LFxuICAgICAgICAgICAgICAgIFwieVwiOiAxMjQuNDcsXG4gICAgICAgICAgICAgICAgXCJ3aWR0aFwiOiAyNjIuMDUsXG4gICAgICAgICAgICAgICAgXCJoZWlnaHRcIjogMjYyLjA1XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwiaWRcIjogXCIxNjM4MDkwNTYyODY3XCIsXG4gICAgICAgICAgICBcImluZGV4XCI6IDQsXG4gICAgICAgICAgICBcImF1ZGlvX3VybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2JmMTkyNGM1MDJjYTFhNGFjOTI4YTMxZTdjOGFhNzBlLm1wM1wiLFxuICAgICAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgICAgIFwiZm9udFNjYWxlXCI6IDEuMDcwMzEyNSxcbiAgICAgICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgICAgIFwibWFwU2NhbGVcIjogMS4wNzAzMTI1LFxuICAgICAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgICAgICBcInhcIjogNjg1LFxuICAgICAgICAgICAgICAgIFwieVwiOiAyNTkuMzY4OTMyMDM4ODM0OVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZ0lkeFwiOiBcIjBcIixcbiAgICAgICAgICAgIFwibGFiZWxUZXh0XCI6IFwiNlwiLFxuICAgICAgICAgICAgXCJwb3NYXCI6IDU3My4zMTcxNzE4NDYzNjYzLFxuICAgICAgICAgICAgXCJwb3NZXCI6IDE4OC4yOTI0MzU5NjYyMTM2NSxcbiAgICAgICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYmQzYzJjYzkzYjE1OTM0MzNhNThkODQ4Mjk3MmZmNjYuanNvblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIuiLueaenF9za2UuanNvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZjU0ZGYzMTdhOGM4NjI3MWUyOWQ2ZGIzZmZiNTVjZS5qc29uXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi6Iu55p6cX3RleC5qc29uXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNzM0YWMwNmE3ZWYwMThiNDU3ZTdhYzc2OTI3ODlmZmEucG5nXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi6Iu55p6cX3RleC5wbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ4XCI6IDAuODYsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDg4LjcxLFxuICAgICAgICAgICAgICAgIFwid2lkdGhcIjogMTU5Ljg1LFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDE5OS4xNlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcImlkXCI6IFwiMTYzODA5MDU5NDI0N1wiLFxuICAgICAgICAgICAgXCJpbmRleFwiOiA1LFxuICAgICAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgICAgIFwiZm9udFNjYWxlXCI6IDEuMDcwMzEyNSxcbiAgICAgICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgICAgIFwibWFwU2NhbGVcIjogMS4wNzAzMTI1LFxuICAgICAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgICAgICBcInhcIjogNjg1LFxuICAgICAgICAgICAgICAgIFwieVwiOiAyNTkuMzY4OTMyMDM4ODM0OVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMWQ0YjI1MWNhZjBjMGI4MjQ1ZmIxN2NkODQ0NTY3MmMuanNvblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIuWGnOWkq19za2UuanNvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZmRkMDRjYWNiNmQ1NDNjZjA1Y2U2NGU4MTI0YTZmZi5qc29uXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi5Yac5aSrX3RleC5qc29uXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOGY1ODJjYjM5ZWIzNDlkYTA4ZTA2Mjg5YjBjZTZjMTYucG5nXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi5Yac5aSrX3RleC5wbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ4XCI6IDYxLjQ0LFxuICAgICAgICAgICAgICAgIFwieVwiOiAxMjQuNDcsXG4gICAgICAgICAgICAgICAgXCJ3aWR0aFwiOiAyNjIuMDUsXG4gICAgICAgICAgICAgICAgXCJoZWlnaHRcIjogMjYyLjA1XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwiaWRcIjogXCIxNjM4MDkwNjYzMDU2XCIsXG4gICAgICAgICAgICBcImluZGV4XCI6IDYsXG4gICAgICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICAgICAgXCJmb250U2NhbGVcIjogMS4wNzAzMTI1LFxuICAgICAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICAgICAgXCJtYXBTY2FsZVwiOiAxLjA3MDMxMjUsXG4gICAgICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgICAgIFwieFwiOiA2ODUsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDI1OS4zNjg5MzIwMzg4MzQ5XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJnSWR4XCI6IFwiMVwiLFxuICAgICAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80NTAzNzIxOTAxODgwZDBiNmMzYWQ2ZDQyNjFlOTU4Yi5qc29uXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi5bCP5aWz5a2pX3NrZS5qc29uXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2ZjNGZkMGIyZjY3MmRmZjdjN2IyMTQ4ODMwMTY0MDkwLmpzb25cIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/lpbPlralfdGV4Lmpzb25cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80YmU0MWMxNTk3MmNhZjk5ZWVmOTU2YmE0ODc1OWM5MS5wbmdcIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/lpbPlralfdGV4LnBuZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgICAgICBcInhcIjogNjEuNDQsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDEyNC40NyxcbiAgICAgICAgICAgICAgICBcIndpZHRoXCI6IDI2Mi4wNSxcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiOiAyNjIuMDVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2ODU1NzFcIixcbiAgICAgICAgICAgIFwiaW5kZXhcIjogNyxcbiAgICAgICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgICAgICBcImZvbnRTY2FsZVwiOiAxLjA3MDMxMjUsXG4gICAgICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgICAgICBcIm1hcFNjYWxlXCI6IDEuMDcwMzEyNSxcbiAgICAgICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ4XCI6IDY4NSxcbiAgICAgICAgICAgICAgICBcInlcIjogMjU5LjM2ODkzMjAzODgzNDlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImdJZHhcIjogXCIxXCIsXG4gICAgICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzU1OTUxYzc5NGI0MTRhYjU4Y2NhMDIzNjQyODE5ZTM3Lmpzb25cIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCLmr43puKFfc2tlLmpzb25cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNDdiOTMzMjNiMWQxZTFlNjAyMDcwNGM1MzdmNDY4MjAuanNvblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIuavjem4oV90ZXguanNvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2RkNjYwMjFmZjg2MGIwMmE1NTlkNTk4MTdjNzFlMjdmLnBuZ1wiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIuavjem4oV90ZXgucG5nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgICAgIFwieFwiOiA2MS40NCxcbiAgICAgICAgICAgICAgICBcInlcIjogMTI0LjQ3LFxuICAgICAgICAgICAgICAgIFwid2lkdGhcIjogMjYyLjA1LFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDI2Mi4wNVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcImlkXCI6IFwiMTYzODA5MDY5NTY1MlwiLFxuICAgICAgICAgICAgXCJpbmRleFwiOiA4LFxuICAgICAgICAgICAgXCJhdWRpb191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zMjNmZWIxOWQxNTMwNjk3MDJmZmQyMTA5N2YxOGY3OS5tcDNcIixcbiAgICAgICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgICAgICBcImZvbnRTY2FsZVwiOiAxLjA3MDMxMjUsXG4gICAgICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgICAgICBcIm1hcFNjYWxlXCI6IDEuMDcwMzEyNSxcbiAgICAgICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ4XCI6IDY4NSxcbiAgICAgICAgICAgICAgICBcInlcIjogMjU5LjM2ODkzMjAzODgzNDlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImdJZHhcIjogXCIwXCIsXG4gICAgICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjExXCIsXG4gICAgICAgICAgICBcInBvc1hcIjogNzQyLjc4NTA0Nzc1ODc3NjMsXG4gICAgICAgICAgICBcInBvc1lcIjogMzMxLjcwNzE5MDc0NzU1NjYsXG4gICAgICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2NkN2M3YTc1NmMwZjc5ZDI4ZjQxOTU3NmUzYjg1YjBjLmpzb25cIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCLpuK3lrZBfc2tlLmpzb25cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNzYxM2YzMDg5M2E1ZjY0NzczYTc3NzIzYzFkNjdmMGQuanNvblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIum4reWtkF90ZXguanNvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzU5YjIyOTNlZjRlZWE5ZDY0ZmY5ODIxYmM1ZDY5YTZkLnBuZ1wiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIum4reWtkF90ZXgucG5nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgICAgIFwieFwiOiAxNTcuMDQsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDI2MixcbiAgICAgICAgICAgICAgICBcIndpZHRoXCI6IDE4Ni40MyxcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiOiAxMzkuNDFcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA3NTgxNTlcIixcbiAgICAgICAgICAgIFwiaW5kZXhcIjogOSxcbiAgICAgICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYjkwM2IxNzRmMDkxMDc1MTdiNWQ2Zjg5MzRiNzM0NDcubXAzXCIsXG4gICAgICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICAgICAgXCJmb250U2NhbGVcIjogMS4wNzAzMTI1LFxuICAgICAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICAgICAgXCJtYXBTY2FsZVwiOiAxLjA3MDMxMjUsXG4gICAgICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgICAgIFwieFwiOiA2ODUsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDI1OS4zNjg5MzIwMzg4MzQ5XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICAgICAgXCJsYWJlbFRleHRcIjogXCI3XCIsXG4gICAgICAgICAgICBcInBvc1hcIjogNjE2LjQ3NTMwOTYyMzkzMjgsXG4gICAgICAgICAgICBcInBvc1lcIjogMzc5LjU4OTYzODc1MTE2NTQ3LFxuICAgICAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iOWZhODVjMjI3ZGFhNjUzOWYxMmNhYjVhNTA1ODA1Mi5qc29uXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bih6JuLX3NrZS5qc29uXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzk5YWE4ZGU3YjY5MDAwYWM2YzVlMGZiNmE1MDhiNjkyLmpzb25cIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCLpuKHom4tfdGV4Lmpzb25cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8wOWJkMGEzNGE0NTA4NjEzZmQ3YzE2NzcyNGU0YTk2OS5wbmdcIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCLpuKHom4tfdGV4LnBuZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgICAgICBcInhcIjogNTEuNDIsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDI4OS4xOSxcbiAgICAgICAgICAgICAgICBcIndpZHRoXCI6IDE0NS4wNSxcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiOiAxODAuODFcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA4MTIxNTVcIixcbiAgICAgICAgICAgIFwiaW5kZXhcIjogMTAsXG4gICAgICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICAgICAgXCJmb250U2NhbGVcIjogMS4wNzAzMTI1LFxuICAgICAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICAgICAgXCJtYXBTY2FsZVwiOiAxLjA3MDMxMjUsXG4gICAgICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgICAgIFwieFwiOiA2ODUsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDI1OS4zNjg5MzIwMzg4MzQ5XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJnSWR4XCI6IFwiMVwiLFxuICAgICAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zNTdmZWY4MjA0MjI4YWZiNDNkMGNlNzM3NDYyMjhlNS5qc29uXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bG8X3NrZS5qc29uXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y2OTRlNTQ0MjA5NWEzMTdmYzdkOGIxMzkwZTYzMGM3Lmpzb25cIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCLpsbxfdGV4Lmpzb25cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9mNTY2Y2NhMTBmZDgzZjYyYTQ2NWIxNDRhYzczZDQ4My5wbmdcIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCLpsbxfdGV4LnBuZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgICAgICBcInhcIjogNjEuNDQsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDEyNC40NyxcbiAgICAgICAgICAgICAgICBcIndpZHRoXCI6IDI2Mi4wNSxcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiOiAyNjIuMDVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA4MjQyNDRcIixcbiAgICAgICAgICAgIFwiaW5kZXhcIjogMTEsXG4gICAgICAgICAgICBcImF1ZGlvX3VybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzI2NTZiNzJhZWM3ZjZkZWYwNzcxM2ZiYzk5MzA5MTY4Lm1wM1wiLFxuICAgICAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgICAgIFwiZm9udFNjYWxlXCI6IDEuMDcwMzEyNSxcbiAgICAgICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgICAgIFwibWFwU2NhbGVcIjogMS4wNzAzMTI1LFxuICAgICAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgICAgICBcInhcIjogNjg1LFxuICAgICAgICAgICAgICAgIFwieVwiOiAyNTkuMzY4OTMyMDM4ODM0OVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZ0lkeFwiOiBcIjBcIixcbiAgICAgICAgICAgIFwibGFiZWxUZXh0XCI6IFwiMTBcIixcbiAgICAgICAgICAgIFwicG9zWFwiOiA1NTguOTM3ODQzMTcxMDMwMixcbiAgICAgICAgICAgIFwicG9zWVwiOiAzNzguNjY2NTQ2OTI5NTgwOCxcbiAgICAgICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjBjYmYzZDE4NmExOTdiYWFlZDM4MjA0ZGQwMTdmNTEuanNvblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIueMq19za2UuanNvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9kN2RlNWEzMmRlM2VlMWFkNjYwZGM1MDliYThhZGYxZC5qc29uXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi54yrX3RleC5qc29uXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYWY4NmU5NjdhYWI4NjMyY2QwYjI2ZDYwYTYyZjA2NzUucG5nXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi54yrX3RleC5wbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ4XCI6IC0wLjY1LFxuICAgICAgICAgICAgICAgIFwieVwiOiAyOTAuODgsXG4gICAgICAgICAgICAgICAgXCJ3aWR0aFwiOiAxMzQuMTIsXG4gICAgICAgICAgICAgICAgXCJoZWlnaHRcIjogMTc1LjU3XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwiaWRcIjogXCIxNjM4MDkwODk3NjQ0XCIsXG4gICAgICAgICAgICBcImluZGV4XCI6IDEyLFxuICAgICAgICAgICAgXCJhdWRpb191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YmJmOGJhMmZhN2Y5NmVhNWE5NWMyN2EzODQ0MTRhMi5tcDNcIixcbiAgICAgICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgICAgICBcImZvbnRTY2FsZVwiOiAxLjA3MDMxMjUsXG4gICAgICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgICAgICBcIm1hcFNjYWxlXCI6IDEuMDcwMzEyNSxcbiAgICAgICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ4XCI6IDY4NSxcbiAgICAgICAgICAgICAgICBcInlcIjogMjU5LjM2ODkzMjAzODgzNDlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImdJZHhcIjogXCIwXCIsXG4gICAgICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjlcIixcbiAgICAgICAgICAgIFwicG9zWFwiOiA5NzguMDEyMTI1Nzg0Mjc5MSxcbiAgICAgICAgICAgIFwicG9zWVwiOiAxMjQuMDM2ODEzOTE5Nzk4MDUsXG4gICAgICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Q4NTA2ZWJkZGIyOWM4ZDA4YjRiOTMzNzZiNDVmNWM5Lmpzb25cIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCLpuJ9fc2tlLmpzb25cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOWZhZDQ3Yzk5MDI1YjdiMjI5ZGY1MmFmYjc5N2VjNWMuanNvblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIum4n190ZXguanNvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2U4NmIxMzZiOTcwNjc2OGM1Y2EwZGJhM2RjMGFhYjIxLnBuZ1wiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIum4n190ZXgucG5nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgICAgIFwieFwiOiAxNjcuNTgsXG4gICAgICAgICAgICAgICAgXCJ5XCI6IDUyLjk1LFxuICAgICAgICAgICAgICAgIFwid2lkdGhcIjogMjAxLjc4LFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDg2LjQ4XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwiaWRcIjogXCIxNjM4MDkwOTQ4OTUwXCIsXG4gICAgICAgICAgICBcImluZGV4XCI6IDEzLFxuICAgICAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgICAgIFwiZm9udFNjYWxlXCI6IDEuMDcwMzEyNSxcbiAgICAgICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgICAgIFwibWFwU2NhbGVcIjogMS4wNzAzMTI1LFxuICAgICAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgICAgICBcInhcIjogNjg1LFxuICAgICAgICAgICAgICAgIFwieVwiOiAyNTkuMzY4OTMyMDM4ODM0OVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QxZDQ5ZTU4M2Q5N2NkNTA5N2QwODEwMjI2NWIxYzYuanNvblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIuiaguiagV9za2UuanNvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YTNhNWM4NzFiMjg4YWViYjFlNjkyMGYxZTk3MDlmOC5qc29uXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi6JqC6JqBX3RleC5qc29uXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMWZhZDYyZjMxM2I2ZmY3MmE2NDJjYjRiMTVhZWFmMDQucG5nXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwi6JqC6JqBX3RleC5wbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ4XCI6IDYxLjQ0LFxuICAgICAgICAgICAgICAgIFwieVwiOiAxMjQuNDcsXG4gICAgICAgICAgICAgICAgXCJ3aWR0aFwiOiAyNjIuMDUsXG4gICAgICAgICAgICAgICAgXCJoZWlnaHRcIjogMjYyLjA1XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBdLFxuICAgIFwiZ3VpZGVfYXVkaW9cIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85NTIzYzhlZDQ1ZmFlZTY4NjM2M2RkMTU3YjBkNzQyNi5tcDNcIixcbiAgICBcIndyb25nX2F1ZGlvXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vN2RkODVmMDI1YTEzMmMyZWVmOGRhZWUzOGQ5MDAyODcubXAzXCIsXG4gICAgXCJ3cm9uZ19hdWRpbzJcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9kYWVlODhiNmYyZWFkZDc4YjYwNDM2ZWVkZmZjYWUwOC5tcDNcIixcbiAgICBcIndyb25nX2F1ZGlvMVwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzc0YTI2ODhjY2YxYmM4MDIyMjFlZDY0Y2FlYmM0ODFiLm1wM1wiLFxuICAgIFwicmlnaHRfYXVkaW9cIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80Mzc5MWZjNDE4ZTY2NmRmNWU5ZWMxYjdiZjkzNjQwOS5tcDNcIixcbiAgICBcImJlZ2luX3NlcF90aW1lXCI6IDE1XG59Il19
limingzhe's avatar
limingzhe committed
1260
//------QC-SOURCE-SPLIT------
limingzhe's avatar
limingzhe committed
1261

limingzhe's avatar
limingzhe committed
1262 1263 1264
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
limingzhe's avatar
limingzhe committed
1265
                    var __filename = 'preview-scripts/assets/OP15/scene/OP15.js';
limingzhe's avatar
limingzhe committed
1266 1267 1268 1269 1270 1271 1272
                    var __require = nodeEnv ? function (request) {
                        return cc.require(request);
                    } : function (request) {
                        return __quick_compile_project__.require(request, __filename);
                    };
                    function __define (exports, require, module) {
                        if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
limingzhe's avatar
limingzhe committed
1273 1274
cc._RF.push(module, 'ddbf4iIJnhHIImfp+SKRF1C', 'OP15');
// OP15/scene/OP15.js
limingzhe's avatar
limingzhe committed
1275

limingzhe's avatar
limingzhe committed
1276
"use strict";
limingzhe's avatar
limingzhe committed
1277

limingzhe's avatar
limingzhe committed
1278
var _util_OP = require("../script/util_OP15");
1279

limingzhe's avatar
limingzhe committed
1280
var _defaultData_OP = require("../script/defaultData_OP15");
1281

limingzhe's avatar
limingzhe committed
1282
var _xstate_OP = require("../script/xstate_OP15");
1283

limingzhe's avatar
limingzhe committed
1284
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } it = o[Symbol.iterator](); return it.next.bind(it); }
1285

limingzhe's avatar
limingzhe committed
1286
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1287

limingzhe's avatar
limingzhe committed
1288
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
1289

limingzhe's avatar
limingzhe committed
1290
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1291

limingzhe's avatar
limingzhe committed
1292 1293 1294 1295 1296 1297 1298 1299 1300 1301
var pure = _xstate_OP.actions.pure,
    send = _xstate_OP.actions.send,
    raise = _xstate_OP.actions.raise,
    sendParent = _xstate_OP.actions.sendParent;
cc.Class({
  "extends": cc.Component,
  properties: {
    /*ant: {
    	default: null,
    	type: cc.Node,
1302
    },
limingzhe's avatar
limingzhe committed
1303 1304 1305
    apple: {
    	default: null,
    	type: cc.Node,
1306
    },
limingzhe's avatar
limingzhe committed
1307 1308 1309
    bird: {
    	default: null,
    	type: cc.Node,
1310
    },
limingzhe's avatar
limingzhe committed
1311 1312 1313
    car: {
    	default: null,
    	type: cc.Node,
1314
    },
limingzhe's avatar
limingzhe committed
1315 1316 1317
    cat: {
    	default: null,
    	type: cc.Node,
1318
    },
limingzhe's avatar
limingzhe committed
1319 1320 1321
    cow: {
    	default: null,
    	type: cc.Node,
1322
    },
limingzhe's avatar
limingzhe committed
1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361
    duck: {
    	default: null,
    	type: cc.Node,
    },
    egg: {
    	default: null,
    	type: cc.Node,
    },
    farmer: {
    	default: null,
    	type: cc.Node,
    },
    fish: {
    	default: null,
    	type: cc.Node,
    },
    girl: {
    	default: null,
    	type: cc.Node,
    },
    hen: {
    	default: null,
    	type: cc.Node,
    },
    house: {
    	default: null,
    	type: cc.Node,
    },*/
    rightAudio: {
      "default": null,
      type: cc.AudioClip
    },
    wrongAudio: {
      "default": null,
      type: cc.AudioClip
    },
    logoCat: {
      "default": null,
      type: cc.Node
1362
    }
limingzhe's avatar
limingzhe committed
1363 1364 1365 1366
  },
  playAni: function playAni(idx, name, options) {
    var times = options && options.times || 1;
    var cb = options && options.callback || null; // const cat = cc.find(`Canvas/frame-border/ground/${node}`);
liujiaxin's avatar
liujiaxin committed
1367

limingzhe's avatar
limingzhe committed
1368 1369 1370 1371 1372 1373 1374 1375
    var node = this._figurePointRectArray[idx].node;
    var dragonDisplay = node.getComponent(dragonBones.ArmatureDisplay);
    var state = dragonDisplay.playAnimation(name, times); // dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {
    // 	//TODO 这里写触发事件
    // 	//event.name为事件名称
    // 	console.log(event.name)
    // }, this);
    // animationDisplay.addEventListener(dragonBones.EventObject.COMPLETE, completeCallback);
limingzhe's avatar
limingzhe committed
1376

limingzhe's avatar
limingzhe committed
1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435
    return state;
  },
  // 生命周期 onLoad
  onLoad: function onLoad() {
    this._timeoutIds = [];
    this._intervalIds = [];
    this.initSceneData();
    this.initSize();
    window.ccc = this;
  },
  _imageResList: null,
  _audioResList: null,
  _animaResList: null,
  _lastFingerPosition: null,
  _hintsNodeList: null,
  _figurePointRectArray: null,
  _allAnimationNodes: null,
  initSceneData: function initSceneData() {
    this._imageResList = [];
    this._audioResList = [];
    this._animaResList = [];
    this._allAnimationNodes = [];
    this._hintsNodeList = [];
    this._lastFingerPosition = {
      pos: null,
      dirty: false
    };
    this._figurePointRectArray = [];
  },
  _designSize: null,
  // 设计分辨率
  _frameSize: null,
  // 屏幕分辨率
  _mapScaleMin: null,
  // 场景中常用缩放(取大值)
  _mapScaleMax: null,
  // 场景中常用缩放(取小值)
  _cocosScale: null,
  // cocos 自缩放 (较少用到)
  initSize: function initSize() {
    // 注意cc.winSize只有在适配后(修改fitHeight/fitWidth后)才能获取到正确的值,因此使用cc.getFrameSize()来获取初始的屏幕大小
    var screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height;
    var design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height;
    var f = screen_size >= design_size;
    cc.Canvas.instance.fitHeight = f;
    cc.Canvas.instance.fitWidth = !f;
    var frameSize = cc.view.getFrameSize();
    this._frameSize = frameSize;
    this._designSize = cc.view.getDesignResolutionSize();
    var sx = cc.winSize.width / frameSize.width;
    var sy = cc.winSize.height / frameSize.height;
    this._cocosScale = Math.min(sx, sy);
    sx = frameSize.width / this._designSize.width;
    sy = frameSize.height / this._designSize.height;
    this._mapScaleMin = Math.min(sx, sy) * this._cocosScale;
    this._mapScaleMax = Math.max(sx, sy) * this._cocosScale;
  },
  createStateMachine: function createStateMachine() {
    var _this = this;
limingzhe's avatar
limingzhe committed
1436

limingzhe's avatar
limingzhe committed
1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477
    var check = [{
      target: '#game.end',
      cond: function cond(ctx, evt) {
        console.log('[answer NEXT] check if end', ctx.questionIndex >= ctx.questionsCount - 1);
        return ctx.questionIndex >= ctx.questionsCount - 1;
      }
    }, {
      target: 'hint'
    } // reenter 'hint' state
    ];
    var QuestionState = {
      id: 'question',
      initial: 'hint',
      states: {
        hint: {
          invoke: {
            src: function src(ctx, event) {
              console.log("[hint] play question " + ctx.questionIndex + ": " + ctx.questionPlayTimes + " audio");
              ctx.questionPlayTimes += 1;
              return new Promise(function (resolve, reject) {
                (0, _util_OP.playAudioByUrl)(ctx.questions[ctx.questionIndex].audio_url, function () {
                  console.log('hint finish');
                  resolve();
                });
              });
            },
            onDone: 'answer',
            onError: 'answer'
          }
        },
        answer: {
          after: {
            8000: [{
              target: 'wrong'
            } // reenter 'hint' state
            ]
          },
          invoke: {
            src: function src(context, event) {
              return function (callback, onReceive) {
                console.log('[answer] thinking and playing'); // check every second
limingzhe's avatar
limingzhe committed
1478

limingzhe's avatar
limingzhe committed
1479 1480 1481 1482
                var id = setInterval(function () {
                  if (!_this._lastFingerPosition.dirty) {
                    return;
                  }
limingzhe's avatar
limingzhe committed
1483

limingzhe's avatar
limingzhe committed
1484
                  var region = context.questions[context.questionIndex];
limingzhe's avatar
limingzhe committed
1485

limingzhe's avatar
limingzhe committed
1486
                  var result = _this.checkInRegion(region.rect);
limingzhe's avatar
limingzhe committed
1487

limingzhe's avatar
limingzhe committed
1488 1489 1490
                  if (result === null) {
                    return;
                  }
limingzhe's avatar
limingzhe committed
1491

limingzhe's avatar
limingzhe committed
1492
                  console.log('[Genise JS] checkInRegion' + result);
limingzhe's avatar
limingzhe committed
1493

limingzhe's avatar
limingzhe committed
1494 1495 1496 1497 1498 1499
                  if (result) {
                    callback('RIGHT');
                  } else {
                    callback('WRONG');
                  }
                }, 1000);
1500

limingzhe's avatar
limingzhe committed
1501
                _this._intervalIds.push(id); // Perform cleanup
limingzhe's avatar
limingzhe committed
1502

1503

limingzhe's avatar
limingzhe committed
1504 1505 1506 1507
                return function () {
                  return clearInterval(id);
                };
              };
1508
            }
limingzhe's avatar
limingzhe committed
1509 1510 1511 1512 1513 1514 1515
          },
          on: {
            RIGHT: {
              target: 'right'
            },
            WRONG: {
              target: 'wrong'
1516 1517
            }
          }
limingzhe's avatar
limingzhe committed
1518 1519 1520 1521 1522 1523 1524 1525
        },
        right: {
          invoke: {
            src: function src(context, event) {
              _this._lastFingerPosition.pos = null;
              _this._lastFingerPosition.dirty = false;
              return new Promise(function (resolve, reject) {
                console.log('answer right'); // this.playAni(context.questionIndex, 'normal')
liujiaxin's avatar
liujiaxin committed
1526

limingzhe's avatar
limingzhe committed
1527 1528 1529
                var an = context.questions[context.questionIndex].node;
                console.log('in right ' + typeof an);
                an.active = true;
liujiaxin's avatar
liujiaxin committed
1530

limingzhe's avatar
limingzhe committed
1531 1532 1533 1534 1535 1536 1537 1538 1539 1540
                if (an.isSpine) {
                  var skeleton = an.getComponent(sp.Skeleton);
                  skeleton.setToSetupPose();
                  setTimeout(function () {
                    skeleton.setAnimation(0, 'normal', true);
                  }, 1);
                } else {
                  var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);
                  dragonDisplay.playAnimation('normal', 0);
                }
liujiaxin's avatar
liujiaxin committed
1541

limingzhe's avatar
limingzhe committed
1542
                var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay);
liujiaxin's avatar
liujiaxin committed
1543

limingzhe's avatar
limingzhe committed
1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569
                ddLogoCat.playAnimation('right', 1);
                ddLogoCat.once(dragonBones.EventObject.COMPLETE, function () {
                  this.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0);
                }, _this);
                (0, _util_OP.playAudioByUrl)(_this.rightAudio, function () {
                  resolve();
                });
              });
            },
            onDone: {
              target: '#QuestionsArray.next',
              actions: raise('CHECK')
            },
            onError: {
              target: '#QuestionsArray.next',
              actions: raise('CHECK')
            }
          }
        },
        wrong: {
          invoke: {
            src: function src(context, event) {
              _this._lastFingerPosition.pos = null;
              _this._lastFingerPosition.dirty = false;
              return new Promise(function (resolve, reject) {
                console.log('answer wrong', context.questionIndex, context.questionPlayTimes, context.maxQuestionTryTimes);
limingzhe's avatar
limingzhe committed
1570

limingzhe's avatar
limingzhe committed
1571
                var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay);
limingzhe's avatar
limingzhe committed
1572

limingzhe's avatar
limingzhe committed
1573 1574 1575 1576 1577
                ddLogoCat.playAnimation('wrong', 1);
                ddLogoCat.once(dragonBones.EventObject.COMPLETE, function () {
                  this.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0);
                }, _this);
                var wrongEffect = _this.wrongAudio; // 第一和第二题的提示音
liujiaxin's avatar
liujiaxin committed
1578

limingzhe's avatar
limingzhe committed
1579 1580 1581 1582 1583 1584
                if ([0, 1].includes(context.questionIndex)) {// wrongEffect = this.data[`wrong_audio${context.questionPlayTimes}`]
                } else {// 非第一和第二题,并且做第二遍的提示音
                    // if (context.questionPlayTimes == 2) {
                    // 	wrongEffect = this.data[`wrong_audio${context.questionPlayTimes}`]
                    // }
                  }
liujiaxin's avatar
liujiaxin committed
1585

limingzhe's avatar
limingzhe committed
1586 1587 1588
                if (context.questionPlayTimes >= context.maxQuestionTryTimes) {
                  var an = context.questions[context.questionIndex].node;
                  an.active = true;
limingzhe's avatar
limingzhe committed
1589

limingzhe's avatar
limingzhe committed
1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601
                  if (an.isSpine) {
                    var skeleton = an.getComponent(sp.Skeleton);
                    skeleton.setToSetupPose();
                    setTimeout(function () {
                      skeleton.setAnimation(0, 'normal', true);
                    }, 1);
                  } else {
                    var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);
                    dragonDisplay.playAnimation('normal', 0);
                    console.log('show animation', an.active);
                  }
                }
limingzhe's avatar
limingzhe committed
1602

limingzhe's avatar
limingzhe committed
1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618
                (0, _util_OP.playAudioByUrl)(wrongEffect, function () {
                  if (context.questionPlayTimes >= context.maxQuestionTryTimes) {
                    // const an = context.questions[context.questionIndex].node;
                    // an.active = true;
                    // const dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay);
                    // dragonDisplay.playAnimation('normal', 0);
                    // console.log('show animation', an.active);
                    reject();
                  } else {
                    resolve();
                  }
                });
              });
            },
            onDone: {
              target: 'hint' // actions: raise('CHECK')
limingzhe's avatar
limingzhe committed
1619

limingzhe's avatar
limingzhe committed
1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665
            },
            onError: {
              target: '#QuestionsArray.next',
              actions: raise('CHECK')
            }
          }
        }
      }
    };
    var QuestionsArrayStatus = {
      id: 'QuestionsArray',
      initial: 'play',
      states: {
        play: _extends({}, QuestionState),
        next: {
          on: {
            CHECK: [{
              target: '#game.end',
              cond: function cond(ctx, evt) {
                ctx.questionIndex += 1;
                ctx.questionPlayTimes = 0;
                console.log('#game.end', ctx.questionIndex >= ctx.questionsCount);
                return ctx.questionIndex >= ctx.questionsCount;
              }
            }, {
              target: 'play'
            }]
          }
        }
      }
    };
    var state = {
      id: 'game',
      initial: 'guide',
      context: {
        questionIndex: 0,
        questionPlayTimes: 0,
        maxQuestionTryTimes: 5,
        questionsCount: this._figurePointRectArray.length,
        questions: this._figurePointRectArray
      },
      states: {
        begin: {
          invoke: {
            src: function src(ctx) {
              console.log('game begin 1');
limingzhe's avatar
limingzhe committed
1666

limingzhe's avatar
limingzhe committed
1667 1668 1669 1670 1671 1672 1673
              if (window.courseware && window.courseware.openOsmoFingerRead) {
                _this.isOpenedOsmoFingerRead = true;
                window.courseware.openOsmoFingerRead({
                  "page": false,
                  "book_name": "Oxford_Phonics_World_1_SB"
                });
              }
1674

limingzhe's avatar
limingzhe committed
1675
              var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay);
limingzhe's avatar
limingzhe committed
1676

limingzhe's avatar
limingzhe committed
1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705
              var state = dragonDisplay.playAnimation('begin', 0);
              return new Promise(function (resolve, reject) {
                (0, _util_OP.playAudioByUrl)(_this.data.begin_audio, function () {
                  console.log('game begin audio finish');
                  resolve();
                });
              });
            },
            onDone: 'guide',
            onError: 'guide'
          }
        },
        guide: {
          invoke: {
            src: function src(ctx) {
              return new Promise(function (resolve, reject) {
                (0, _util_OP.playAudioByUrl)(_this.data.guide_audio, function () {
                  console.log('game guide audio finish');
                  reject();
                });
              });
            },
            onDone: 'playing',
            onError: 'playing'
          }
        },
        playing: _extends({
          entry: function entry(ctx) {
            console.log('entry play stage');
limingzhe's avatar
limingzhe committed
1706

limingzhe's avatar
limingzhe committed
1707
            var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay);
limingzhe's avatar
limingzhe committed
1708

limingzhe's avatar
limingzhe committed
1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727
            var state = dragonDisplay.playAnimation('normal', 0);
            cc.assetManager.loadRemote(_this.data.playing_audio, function (err, audioClip) {
              cc.audioEngine.playMusic(audioClip, true, 0.8);
            });
            ctx.questions.forEach(function (block) {
              block.node.active = false;
            });
          },
          exit: function exit() {
            console.log('exit play stage');
            cc.audioEngine.stopMusic();
          },
          on: {
            NEXT: 'end'
          }
        }, QuestionsArrayStatus),
        end: {
          entry: function entry(ctx, event) {
            console.log('game end');
limingzhe's avatar
limingzhe committed
1728

limingzhe's avatar
limingzhe committed
1729
            var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay);
limingzhe's avatar
limingzhe committed
1730

limingzhe's avatar
limingzhe committed
1731
            var state = dragonDisplay.playAnimation('finish', 0);
limingzhe's avatar
limingzhe committed
1732

limingzhe's avatar
limingzhe committed
1733 1734 1735 1736
            if (window.courseware && window.courseware.closeOsmoFingerRead) {
              _this.isOpenedOsmoFingerRead = false;
              window.courseware.closeOsmoFingerRead();
            }
limingzhe's avatar
limingzhe committed
1737

limingzhe's avatar
limingzhe committed
1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749
            (0, _util_OP.playAudioByUrl)(_this.data.end_audio, function () {
              console.log('game finish');
              (0, _util_OP.onHomeworkFinish)();
            }); // return new Promise((resolve,reject) => {
            // 	setTimeout(() => {
            // 		console.log('hint finish');
            // 		resolve()
            // 	}, 2000)
            // })
          }
        }
      }
1750
    };
limingzhe's avatar
limingzhe committed
1751
    var after = {};
limingzhe's avatar
limingzhe committed
1752

limingzhe's avatar
limingzhe committed
1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781
    var _loop = function _loop(i) {
      var t = _this._hintsNodeList[i].node;
      var k = _this._hintsNodeList[i].after;
      after[k] = {
        actions: function actions() {
          if (t.isSpine) {
            var skeleton = t.getComponent(sp.Skeleton);
            skeleton.setToSetupPose();
            setTimeout(function () {
              skeleton.setAnimation(0, 'enlarge', false);
            }, 1); // skeleton.animation = skeleton.animationNames[0];
          } else {
            var dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);
            dragonDisplay.playAnimation('enlarge', 1);
            console.log(dragonDisplay._armatureKey, 'enlarge');
            dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, function (event) {// TODO 这里写触发事件
              // event.name为事件名称
              // event.armature.animation.play('normal', 0);
              // console.log(event.animationState.name, dragonDisplay._armatureKey, 'end')
            }, _this);
          } // const dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay);
          // dragonDisplay.playAnimation('enlarge', 1);
          // console.log(dragonDisplay._armatureKey, 'enlarge')
          // dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => {
          // 	//TODO 这里写触发事件
          // 	//event.name为事件名称
          // 	event.armature.animation.play('normal', 0);
          // 	console.log(event.animationState.name, dragonDisplay._armatureKey, 'end')
          // }, this);
liujiaxin's avatar
liujiaxin committed
1782

limingzhe's avatar
limingzhe committed
1783 1784
        }
      };
1785
    };
limingzhe's avatar
limingzhe committed
1786

limingzhe's avatar
limingzhe committed
1787 1788 1789
    for (var i = 0; i < this._hintsNodeList.length; i++) {
      _loop(i);
    }
liujiaxin's avatar
liujiaxin committed
1790

limingzhe's avatar
limingzhe committed
1791 1792 1793 1794 1795
    if (this.data.begin_sep_time) {
      var t = +this.data.begin_sep_time * 1000;
      after[t] = {
        actions: function actions() {
          console.log('game begin 2');
liujiaxin's avatar
liujiaxin committed
1796

limingzhe's avatar
limingzhe committed
1797 1798
          for (var _i = 0; _i < _this._allAnimationNodes.length; _i++) {
            var _t = _this._allAnimationNodes[_i];
liujiaxin's avatar
liujiaxin committed
1799

limingzhe's avatar
limingzhe committed
1800 1801 1802
            if (_t.isSpine) {
              (function () {
                var skeleton = _t.getComponent(sp.Skeleton);
liujiaxin's avatar
liujiaxin committed
1803

limingzhe's avatar
limingzhe committed
1804 1805 1806 1807 1808 1809 1810 1811 1812
                console.log('skeleton: ', skeleton);
                skeleton.setToSetupPose();
                setTimeout(function () {
                  skeleton.setAnimation(0, 'normal', true);
                }, 1);
                console.log('skeleton 22: ', skeleton); // skeleton.animation = skeleton.animationNames[0];
              })();
            } else {
              var dragonDisplay = _t.getComponent(dragonBones.ArmatureDisplay);
liujiaxin's avatar
liujiaxin committed
1813

limingzhe's avatar
limingzhe committed
1814 1815 1816 1817 1818 1819
              dragonDisplay.playAnimation('normal', 0);
            }
          }
        }
      };
    }
liujiaxin's avatar
liujiaxin committed
1820

limingzhe's avatar
limingzhe committed
1821 1822 1823 1824 1825 1826
    state.states.begin.after = after;
    var gameMachine = (0, _xstate_OP.createMachine)(state);
    window.gameMachine = gameMachine;
    this.gameMachineService = (0, _xstate_OP.interpret)(gameMachine).onTransition(function (state) {// console.log(1, state.value, state.context);
    });
    this.gameMachineService.start();
liujiaxin's avatar
liujiaxin committed
1827

limingzhe's avatar
limingzhe committed
1828 1829 1830 1831 1832 1833 1834
    if (window.gameMachineService) {
      window.gameMachineService = gameMachineService;
    }
  },
  // 生命周期 start
  start: function start() {
    var _this2 = this;
1835

limingzhe's avatar
limingzhe committed
1836
    var getData = this.getData.bind(this);
1837

limingzhe's avatar
limingzhe committed
1838 1839 1840
    if (window && window.courseware) {
      getData = window.courseware.getData;
    }
liujiaxin's avatar
liujiaxin committed
1841

limingzhe's avatar
limingzhe committed
1842 1843 1844 1845
    getData(function (data) {
      // console.log('data:', data);
      _this2.data = data || _this2.getDefaultData();
      _this2.data = JSON.parse(JSON.stringify(_this2.data));
liujiaxin's avatar
liujiaxin committed
1846

limingzhe's avatar
limingzhe committed
1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861
      _this2.preloadItem();
    });
    window.air = window.air || {};

    if (window.air) {
      window.air.osmoFingerReadCallback = function (result) {
        if (!_this2.gameMachineService) {
          return;
        } // const st = this.gameMachineService.state.value.constructor.name == 'Object' 
        // && this.gameMachineService.state.value['playing']
        // && this.gameMachineService.state.value['playing'].constructor.name == 'Object'
        // && this.gameMachineService.state.value['playing']['play']
        // && this.gameMachineService.state.value['playing']['play'] == 'answer'
        // if (st) {
        // }
liujiaxin's avatar
liujiaxin committed
1862

liujiaxin's avatar
liujiaxin committed
1863

limingzhe's avatar
limingzhe committed
1864
        var p = JSON.parse(result);
liujiaxin's avatar
liujiaxin committed
1865

limingzhe's avatar
limingzhe committed
1866 1867 1868 1869 1870
        if (p.x == -1 || p.y == -1) {
          _this2._lastFingerPosition.pos = null;
          _this2._lastFingerPosition.dirty = false;
          return;
        }
liujiaxin's avatar
liujiaxin committed
1871

limingzhe's avatar
limingzhe committed
1872 1873 1874 1875 1876 1877 1878
        _this2._lastFingerPosition = {
          pos: {
            x: _this2.boundedPostion(p.x),
            y: _this2.boundedPostion(p.y)
          },
          dirty: true
        };
limingzhe's avatar
limingzhe committed
1879

limingzhe's avatar
limingzhe committed
1880 1881 1882
        _this2.debugPointer(_this2.boundedPostion(p.x), _this2.boundedPostion(p.y));
      };
    }
liujiaxin's avatar
liujiaxin committed
1883

limingzhe's avatar
limingzhe committed
1884 1885 1886 1887 1888 1889 1890
    this.isDebug = cc.sys.localStorage.getItem('isDebug') == "true" ? true : false;
  },
  // 限定坐标值
  boundedPostion: function boundedPostion(value) {
    if (value < 0) {
      return 0;
    }
liujiaxin's avatar
liujiaxin committed
1891

limingzhe's avatar
limingzhe committed
1892 1893 1894
    if (value > 1) {
      return 1;
    }
1895

limingzhe's avatar
limingzhe committed
1896 1897 1898 1899 1900 1901
    return value;
  },
  checkInRegion: function checkInRegion(r) {
    if (!this._lastFingerPosition && !this._lastFingerPosition.pos) {
      return null;
    }
liujiaxin's avatar
liujiaxin committed
1902

limingzhe's avatar
limingzhe committed
1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920
    var p = this._lastFingerPosition ? this._lastFingerPosition.pos || {
      x: 0,
      y: 0
    } : {
      x: 0,
      y: 0
    };
    console.log('~p: ', p);
    console.log('~r: ', r);
    var w = p.x > r.x && p.x < r.x + r.width;
    var h = p.y > r.y && p.y < r.y + r.height;
    return w && h;
  },
  getData: function getData(func) {
    if (window && window.courseware) {
      window.courseware.getData(func, 'scene');
      return;
    }
limingzhe's avatar
limingzhe committed
1921

limingzhe's avatar
limingzhe committed
1922 1923 1924 1925 1926 1927
    var middleLayer = cc.find('middleLayer');

    if (middleLayer) {
      var middleLayerComponent = middleLayer.getComponent('middleLayer');
      middleLayerComponent.getData(func);
      return;
limingzhe's avatar
limingzhe committed
1928
    }
limingzhe's avatar
limingzhe committed
1929

limingzhe's avatar
limingzhe committed
1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953
    func(this.getDefaultData());
  },
  getDefaultData: function getDefaultData() {
    // return {"begin_audio":"https://teach.cdn.ireadabc.com/9be46c9adb540ed8a60763f1e657ccb7.mp3","begin_sep_time":66,"guide_audio":"https://teach.cdn.ireadabc.com/9523c8ed45faee686363dd157b0d7426.mp3","playing_audio":"https://teach.cdn.ireadabc.com/d6a953052a6f80549730cb4307c55719.mp3","right_audio":"https://teach.cdn.ireadabc.com/43791fc418e666df5e9ec1b7bf936409.mp3","wrong_audio":"https://teach.cdn.ireadabc.com/7dd85f025a132c2eef8daee38d900287.mp3","wrong_audio1":"https://teach.cdn.ireadabc.com/a76afb06af0799bf538e38f9f80a2261.mp3","wrong_audio2":"https://teach.cdn.ireadabc.com/daee88b6f2eadd78b60436eedffcae08.mp3","end_audio":"https://teach.cdn.ireadabc.com/9c1e87b3c184b06e14e44bb058b9804e.mp3","bgItem":{"url":"https://teach.cdn.ireadabc.com/16b6dacd8e6c1ce6da16f500a66b366b.jpg","rect":{"x":319.68,"y":0,"width":257.64,"height":342}},"hotZoneItemArr":[{"id":"1650544807877","index":0,"itemType":"pic","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":176.65207877461702},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/66c7c0847c33f7f95cb0035fe14c4405.json","name":"monkey_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/98a8272cd2d97047b090ff10e948b978.json","name":"monkey_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/c35ced408ad68a52c4ec5375373d3627.png","name":"monkey_tex.png"},"rect":{"x":128.83,"y":171,"width":0,"height":0}},{"id":"1650546079000","index":1,"audio_url":"https://teach.cdn.ireadabc.com/f9edc84a669688c5abddd55e2aab015d.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"21.3","posX":692.4127500193598,"posY":218.14695959185556,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/e3c67a25dd3bb34fe113e126e6e1cc81.json","name":"ox_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/81d487bf31d3a4d0f25f44c184ba9233.json","name":"ox_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/e199392b52a735f6e37a6815ec3bb10e.png","name":"ox_tex.png"},"rect":{"x":159.34,"y":138.66,"width":38.83,"height":38.83}},{"id":"1650546232189","index":2,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/0a3ea93c62ff4087859ed587020c53b5.json","name":"car_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/6000e4fbbb95f545afa5456c64d8c7d1.json","name":"car_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/75e9972c15d2a67deedf60d448fd4e69.png","name":"car_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650546321127","index":3,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/d4c1e1abcf3d8f5415747fd2599b8a8c.json","name":"Chair_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/1d7254eb7fa3008e8178347bb944cdcb.json","name":"Chair_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/48e85e8ff384eed72dfe865fc981e18c.png","name":"Chair_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650546335240","index":4,"audio_url":"https://teach.cdn.ireadabc.com/6182d46bad09fccb8934217d33557204.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"53","posX":452.5,"posY":129,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/b462d80c21aa75995dd99f0f43ccf1e6.json","name":"quilt_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/866c9e2987870947fc63bce108ef157a.json","name":"quilt_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/d952c37f40c3cf07e024edfd4416423e.png","name":"quilt_tex.png"},"rect":{"x":71.99,"y":100.75,"width":50.83,"height":36.97}},{"id":"1650546644333","index":5,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/6b8a1a7b0fd23686ea60465279cd4da0.json","name":"robot_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/31a74ed95fe48adab00702675811c3a8.json","name":"robot_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/e57052537d89356b0a79d8cb77980219.png","name":"robot_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650546658697","index":6,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/bf3616060460439eeb3fd5227370e15a.json","name":"panda_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/2dafeb25c973c910035ff7ed1a6a6334.json","name":"panda_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/75d90b05345fa470285ac488cb205cfd.png","name":"panda_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650546672448","index":7,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/5feff811b0117dd8e67973072e60d310.json","name":"queen_1_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/bb5856b92b09c5fe7a1da00bb68134ca.json","name":"queen_1_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/f4e5a138b086ef3dcfa57432543b66e9.png","name":"queen_1_tex.png"},"animType":"dragonBone","rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650546687069","index":8,"audio_url":"https://teach.cdn.ireadabc.com/301858df7b07e661426a006acb26059c.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"42.5","posX":512.3883524629834,"posY":259.83617125849,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/f3a8efcd1850ee8a6cee89a18e86dc4a.json","name":"milk_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/73b05f19d419bd3ac17c2b92dab88423.json","name":"milk_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/e38375da46f85a23202d5cbc812d62e4.png","name":"milk_tex.png"},"rect":{"x":37.72,"y":168.1,"width":21.17,"height":40.34}},{"id":"1650547060490","index":9,"audio_url":"https://teach.cdn.ireadabc.com/05e5b29aeffa4ef94bcc5b23167aec90.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"47.7","posX":483.22135734006736,"posY":245.38039407076505,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/99a6e6d9361eca7e51ed34ca2e0fd017.json","name":"bird_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/6a379ddbe6df1806368c43c8ee82332d.json","name":"bird_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/cf04c63104d89511902578944061f980.png","name":"bird_tex.png"},"rect":{"x":17.91,"y":140.83,"width":18.52,"height":73.95}},{"id":"1650547373869","index":10,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","labelText":"60","posX":420.5,"posY":295,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/7ebc28f3f339b16ca48d20f2a3eb44c1.json","name":"alligator_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/b04e8206fd217bd22dcdac1008393317.json","name":"alligator_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/b3990d94612bd3d6e25cf200f85e4334.png","name":"alligator_tex.png"},"rect":{"x":16.06,"y":229.24,"width":103.52,"height":86.89}},{"id":"1650547482398","index":11,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/a19f2ed7c297c70c639e54e969d64593.json","name":"rabbit_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/4b4f8189cf79fadd7e6533ad84db96be.json","name":"rabbit_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/8f953c861eac94e4e22a8e4ec3eb56b5.png","name":"rabbit_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650547496232","index":12,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/89e0fc6085c294866142803b4ff267ba.json","name":"King_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/d6cfd2d9cd2cd9aff09ab7f03e287421.json","name":"King_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/8c02c3561a2eea0423cb1102200e76f9.png","name":"King_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650547510648","index":13,"audio_url":"https://teach.cdn.ireadabc.com/717ee9713b18d32d38ee089c0abc85ea.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"10.2","posX":641.6680134951944,"posY":288.93672702541255,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/3b7113ebdedcae54be6d0b9633875b88.json","name":"net_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/fc810762f1f2025585e722e43e94137b.json","name":"net_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/5c90820da4f559280fee4579e8db2dbc.png","name":"net_tex.png"},"rect":{"x":123.03,"y":183.02,"width":37.9,"height":52.68}},{"id":"1650547555018","index":14,"itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"1","skeJsonData":{"url":"https://teach.cdn.ireadabc.com/0a5c8df5a23aca7a7540b87340c7608f.json","name":"ostrich_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/2478573c91d1a83fa038e7f6a9db8a85.json","name":"ostrich_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/4619ace67e5770e1fd7fc3ff76e7263e.png","name":"ostrich_tex.png"},"rect":{"x":36.4,"y":78.56,"width":184.87,"height":184.87}},{"id":"1650547573305","index":15,"audio_url":"https://teach.cdn.ireadabc.com/b7bc161c3a3ee143a53058691abf4fa9.mp3","itemType":"rect","fontScale":0.70078125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":0.70078125,"dragDot":{"x":448.5,"y":170.54984583761566},"gIdx":"0","labelText":"15.9","posX":670.8119839772754,"posY":137.87940870201697,"skeJsonData":{"url":"https://teach.cdn.ireadabc.com/91e8ca03d1df89e4ec2404421d4c692f.json","name":"durazno_ske.json"},"texJsonData":{"url":"https://teach.cdn.ireadabc.com/32d259b0194370625f8fe94b1ddc0a85.json","name":"durazno_tex.json"},"texPngData":{"url":"https://teach.cdn.ireadabc.com/8eef56b20e221a36fce1d672199859ff.png","name":"durazno_tex.png"},"rect":{"x":146.92,"y":83.73,"width":32.34,"height":32.34}}]}
    // return  {"begin_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","begin_sep_time":1,"guide_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","playing_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","right_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio1":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","wrong_audio2":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","end_audio":"http://staging-teach.cdn.ireadabc.com/3d307a02663e1cd667b7c951340ec98b.mp3","bgItem":{"url":"http://staging-teach.cdn.ireadabc.com/84ec6edc20bceaaa9dbe824092b6860d.png","rect":{"x":736.95,"y":0,"width":599.09,"height":775}},"hotZoneItemArr":[{"id":"1659333645573","index":0,"audio_url":"http://staging-teach.cdn.ireadabc.com/5a1a2670845bfe76662e86d9a3a69f81.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"1","labelText":"1","posX":887.5,"posY":165.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/133a1f60719ed26247e35dc022d82862.json","name":"spineboy-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/e0945b8265ea3b8053afb814c6b849d3.atlas","name":"spineboy-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/517553f50224915148f9efc5b7556798.png","name":"spineboy-pro.png"},"animType":"spine","rect":{"x":48.05,"y":65.5,"width":205,"height":200}},{"id":"1659334098930","index":1,"audio_url":"http://staging-teach.cdn.ireadabc.com/16eb06a6beb9e4fa77c9b5d2d643ab29.mp3","itemType":"rect","fontScale":1.61953125,"imgScale":1,"imgSizeW":0,"imgSizeH":0,"mapScale":1.61953125,"dragDot":{"x":1036.5,"y":387.5},"gIdx":"0","labelText":"1","posX":1212.5,"posY":643.5,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json","name":"alien-pro.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas","name":"alien-pro.atlas"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png","name":"alien-pro.png"},"animType":"spine","rect":{"x":375.56,"y":543.5,"width":200,"height":200}}]}
    return _defaultData_OP.defaultData;
  },
  preloadItem: function preloadItem() {
    this.addPreloadImage();
    this.addPreloadAudio();
    this.addPreloadAnima();
    this.preload();
  },
  addPreloadImage: function addPreloadImage() {
    this._imageResList.push({
      url: this.data.bgItem.url
    });

    for (var _iterator = _createForOfIteratorHelperLoose(this.data.hotZoneItemArr), _step; !(_step = _iterator()).done;) {
      var q = _step.value;

      if (q.gIdx == '0') {
        this._imageResList.push({
          url: q.texPngData.url
1954 1955
        });
      }
liujiaxin's avatar
liujiaxin committed
1956

limingzhe's avatar
limingzhe committed
1957 1958 1959
      if (q.gIdx == '1') {
        this._imageResList.push({
          url: q.texPngData.url
1960
        });
limingzhe's avatar
limingzhe committed
1961
      }
1962

limingzhe's avatar
limingzhe committed
1963 1964 1965 1966
      if (q.gIdx == '2') {
        this._imageResList.push({
          url: q.pic_url
        });
1967
      }
limingzhe's avatar
limingzhe committed
1968 1969 1970 1971
    }
  },
  prepareAudioClip: function prepareAudioClip(url, key) {
    var _this3 = this;
1972

limingzhe's avatar
limingzhe committed
1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986
    if (url) {
      cc.assetManager.loadRemote(url, function (err, audioClip) {
        if (audioClip) {
          _this3[key] = audioClip;
        }
      });
    }
  },
  addPreloadAudio: function addPreloadAudio() {
    this._audioResList.push({
      url: this.data.begin_audio
    }); // this.prepareAudioClip(this.data.begin_audio1, 'begin_audio1')
    // this._audioResList.push({ url: this.data.begin_audio2 });
    // this.prepareAudioClip(this.data.begin_audio2, 'begin_audio2')
1987

limingzhe's avatar
limingzhe committed
1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999

    this._audioResList.push({
      url: this.data.guide_audio
    });

    this._audioResList.push({
      url: this.data.playing_audio
    });

    if (this.data.wrong_audio) {
      this._audioResList.push({
        url: this.data.wrong_audio
2000 2001
      });

limingzhe's avatar
limingzhe committed
2002
      this.wrongAudio = this.data.wrong_audio;
2003
    }
liujiaxin's avatar
liujiaxin committed
2004

limingzhe's avatar
limingzhe committed
2005 2006 2007 2008
    if (this.data.right_audio) {
      this._audioResList.push({
        url: this.data.right_audio
      });
liujiaxin's avatar
liujiaxin committed
2009

limingzhe's avatar
limingzhe committed
2010
      this.rightAudio = this.data.right_audio;
2011
    }
liujiaxin's avatar
liujiaxin committed
2012

limingzhe's avatar
limingzhe committed
2013 2014 2015
    this._audioResList.push({
      url: this.data.wrong_audio1
    });
liujiaxin's avatar
liujiaxin committed
2016

limingzhe's avatar
limingzhe committed
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030
    this._audioResList.push({
      url: this.data.wrong_audio2
    });

    this._audioResList.push({
      url: this.data.end_audio
    });

    for (var _iterator2 = _createForOfIteratorHelperLoose(this.data.hotZoneItemArr), _step2; !(_step2 = _iterator2()).done;) {
      var q = _step2.value;

      if (q.gIdx == '0') {
        this._audioResList.push({
          url: q.audio_url
2031 2032
        });
      }
limingzhe's avatar
limingzhe committed
2033 2034 2035 2036
    }
  },
  debugPointer: function debugPointer() {
    var boxDebugger = cc.find('Canvas/box-debugger');
liujiaxin's avatar
liujiaxin committed
2037

limingzhe's avatar
limingzhe committed
2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064
    if (!this.isDebug) {
      boxDebugger.active = false;
      return;
    }

    if (!this.POINTER_NODE) {
      this.POINTER_NODE = new cc.Node();
      this.POINTER_NODE.parent = boxDebugger;
      this.POINTER_NODE.name = 'POINTER_NODE';
      this.POINTER_NODE.addComponent(cc.Graphics);
    }

    var grap = this.POINTER_NODE.getComponent(cc.Graphics);
    grap.clear();
    var ground = cc.find('Canvas/frame-border/ground');
    var baseW = ground.width,
        baseH = ground.height;
    var _this$_lastFingerPosi = this._lastFingerPosition.pos,
        px = _this$_lastFingerPosi.x,
        py = _this$_lastFingerPosi.y;
    var x = baseW * px - baseW / 2;
    var y = baseH - baseH * py - baseH / 2 - 16;
    var pn = new cc.Node();
    grap.fillColor = cc.color(255, 0, 0);
    grap.circle(x, y, 32);
    grap.fill();
    grap.stroke();
2065
  },
limingzhe's avatar
limingzhe committed
2066 2067
  debugGraphics: function debugGraphics() {
    var boxDebugger = cc.find('Canvas/box-debugger');
liujiaxin's avatar
liujiaxin committed
2068

limingzhe's avatar
limingzhe committed
2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161
    if (!this.isDebug) {
      boxDebugger.active = false;
      return;
    }

    boxDebugger.active = true;
    console.log('show debug graphics');
    var ground = cc.find('Canvas/frame-border/ground');
    var canvas = cc.find('Canvas');
    var baseW = ground.width,
        baseH = ground.height;
    var _this$data$bgItem$rec = this.data.bgItem.rect,
        bgW = _this$data$bgItem$rec.width,
        bgH = _this$data$bgItem$rec.height;
    var scaleX = bgW / baseW;
    var scaleY = bgH / baseH;
    var added = false;
    this.data.hotZoneItemArr.forEach(function (area) {
      if (added) {// return
      }

      if (area.gIdx != '0') {
        return;
      }

      added = true;
      var dn = new cc.Node();
      var lblNode = new cc.Node();
      lblNode.parent = dn;
      var lbl = lblNode.addComponent(cc.Label);
      lblNode.color = cc.color(0, 0, 0);
      lbl.string = area.skeJsonData.name.substring(0, area.skeJsonData.name.length - 9);
      dn.name = lbl.string;
      dn.parent = boxDebugger;
      dn.width = baseW;
      dn.height = baseH;
      var grap = dn.addComponent(cc.Graphics);
      var r = (0, _util_OP.RandomInt)(1, 255);
      var g = (0, _util_OP.RandomInt)(1, 255);
      var b = (0, _util_OP.RandomInt)(1, 255);
      grap.fillColor = cc.color(r, g, b, 127);
      var _area$rect = area.rect,
          rx = _area$rect.x,
          ry = _area$rect.y,
          rw = _area$rect.width,
          rh = _area$rect.height;
      var w = rw / bgW * baseW;
      var h = rh / bgH * baseH;
      var x = rx / bgW * baseW - baseW / 2;
      var y = baseH - ry / bgH * baseH - h - baseH / 2; // w *= scaleX
      // h *= scaleY
      // x *= scaleX
      // y *= scaleY
      // const p = boxDebugger.convertToNodeSpaceAR(cc.v2(x,y));
      // x = p.x;
      // y = p.y;

      lblNode.x = x;
      lblNode.y = y + h; // dn.scaleX = scaleX;
      // dn.scaleY = scaleY;
      // dn.scale = area.mapScale; // minScale; // this._mapScaleMax * area.mapScale; // ;

      console.log('[debug]', area.skeJsonData.name, x, y, w, h);
      grap.fillRect(x, y, w, h);
      grap.stroke();
    });
  },
  addPreloadAnima: function addPreloadAnima() {},
  preload: function preload() {
    var _this4 = this;

    var preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList); // console.log(preloadArr);


    cc.assetManager.loadAny(preloadArr, null, function (f, t, item) {// console.log(f, t, item)
    }, function (err, data) {
      // console.log(err, data);
      var ground = cc.find("Canvas/frame-border/ground");
      var groundBg = cc.find("Canvas/frame-border/ground/bg");
      groundBg.active = false;
      var baseRect = _this4.data.bgItem.rect;
      (0, _util_OP.getSpriteFrimeByUrl)(_this4.data.bgItem.url, function (sf) {
        var gs = groundBg.getComponent(cc.Sprite);
        gs.spriteFrame = sf;
        groundBg.active = true;
        var dbCount = 0;
        var finishDbCount = 0;

        for (var _iterator3 = _createForOfIteratorHelperLoose(_this4.data.hotZoneItemArr), _step3; !(_step3 = _iterator3()).done;) {
          var block = _step3.value;

          if (block.gIdx == '0' || block.gIdx == '1') {
            dbCount++;
2162 2163
          }
        }
liujiaxin's avatar
liujiaxin committed
2164

limingzhe's avatar
limingzhe committed
2165 2166
        for (var _iterator4 = _createForOfIteratorHelperLoose(_this4.data.hotZoneItemArr), _step4; !(_step4 = _iterator4()).done;) {
          var _block = _step4.value;
liujiaxin's avatar
liujiaxin committed
2167

limingzhe's avatar
limingzhe committed
2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179
          if (_block.gIdx == '2') {
            (function () {
              var s1 = (ground.width / _block.imgSizeW + ground.height / _block.imgSizeH) / 2;
              var node = new cc.Node();
              node.parent = ground;
              var spr = node.addComponent(cc.Sprite);
              (0, _util_OP.getSpriteFrimeByUrl)(_block.pic_url, function (sf) {
                spr.spriteFrame = sf;
                node.scale = s1;
              });
            })();
          }
liujiaxin's avatar
liujiaxin committed
2180

limingzhe's avatar
limingzhe committed
2181 2182 2183
          if (_block.gIdx == '0' || _block.gIdx == '1') {
            (function () {
              var n = new cc.Node(); // n.scale = 0.25;
liujiaxin's avatar
liujiaxin committed
2184

limingzhe's avatar
limingzhe committed
2185 2186 2187
              n.scale = ground.width / groundBg.width;
              n.parent = ground;
              n.active = false;
liujiaxin's avatar
liujiaxin committed
2188

limingzhe's avatar
limingzhe committed
2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203
              if (_block.animType == 'spine') {
                var skeleton = n.addComponent(sp.Skeleton);
                n.isSpine = true;
                (0, _util_OP.loadSpine)(skeleton, _block.texPngData.name, {
                  tex: _block.texPngData.url,
                  atlas: _block.texJsonData.url,
                  ske: _block.skeJsonData.url
                }).then(function (_ref) {
                  var width = _ref.width,
                      height = _ref.height;
                  n.width = width;
                  n.height = height;
                  n.active = true; // db.playAnimation('null', 0);
                  // skeleton.setToSetupPose();
                  // skeleton.setAnimation(0, 'enlarge', true);				
liujiaxin's avatar
liujiaxin committed
2204

limingzhe's avatar
limingzhe committed
2205
                  _this4._allAnimationNodes.push(n);
liujiaxin's avatar
liujiaxin committed
2206

limingzhe's avatar
limingzhe committed
2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233
                  finishDbCount++;
                  console.log(finishDbCount, dbCount);

                  if (finishDbCount == dbCount) {
                    _this4.loadEnd();
                  }
                })["catch"](function () {
                  finishDbCount++;
                  console.log(finishDbCount, dbCount);

                  if (finishDbCount == dbCount) {
                    _this4.loadEnd();
                  }
                });
              } else {
                var db = n.addComponent(dragonBones.ArmatureDisplay);
                (0, _util_OP.loadDragonBones)(db, {
                  tex: _block.texPngData.url,
                  atlas: _block.texJsonData.url,
                  ske: _block.skeJsonData.url
                }).then(function (_ref2) {
                  var width = _ref2.width,
                      height = _ref2.height;
                  n.width = width;
                  n.height = height;
                  n.active = true;
                  db.playAnimation('null', 0);
liujiaxin's avatar
liujiaxin committed
2234

limingzhe's avatar
limingzhe committed
2235
                  _this4._allAnimationNodes.push(n);
liujiaxin's avatar
liujiaxin committed
2236

limingzhe's avatar
limingzhe committed
2237 2238
                  finishDbCount++;
                  console.log(finishDbCount, dbCount);
liujiaxin's avatar
liujiaxin committed
2239

limingzhe's avatar
limingzhe committed
2240 2241 2242 2243 2244 2245
                  if (finishDbCount == dbCount) {
                    _this4.loadEnd();
                  }
                })["catch"](function () {
                  finishDbCount++;
                  console.log(finishDbCount, dbCount);
liujiaxin's avatar
liujiaxin committed
2246

limingzhe's avatar
limingzhe committed
2247 2248 2249 2250 2251
                  if (finishDbCount == dbCount) {
                    _this4.loadEnd();
                  }
                });
              }
liujiaxin's avatar
liujiaxin committed
2252

limingzhe's avatar
limingzhe committed
2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263
              if (_block.gIdx == '0') {
                var rectInfo = {
                  node: n,
                  audio_url: _block.audio_url,
                  rect: {
                    x: _block.rect.x / baseRect.width,
                    y: _block.rect.y / baseRect.height,
                    width: _block.rect.width / baseRect.width,
                    height: _block.rect.height / baseRect.height
                  }
                };
liujiaxin's avatar
liujiaxin committed
2264

limingzhe's avatar
limingzhe committed
2265
                _this4._figurePointRectArray.push(rectInfo); // this.addRectNodeListener(block);
liujiaxin's avatar
liujiaxin committed
2266 2267


limingzhe's avatar
limingzhe committed
2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279
                if (_block.labelText) {
                  var k = +_block.labelText * 1000;

                  if (!isNaN(k)) {
                    _this4._hintsNodeList.push({
                      node: n,
                      after: k
                    });
                  }
                }
              }
            })();
2280 2281
          }
        }
limingzhe's avatar
limingzhe committed
2282
      }); // console.log(this.data);
liujiaxin's avatar
liujiaxin committed
2283

limingzhe's avatar
limingzhe committed
2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297
      console.log('resource perload finish'); // <<<<<<< HEAD
      // =======
      // 			if (window && window["air"]) {
      // 				// cc.find('Canvas').opacity = 0;
      // 				window.air.onCourseInScreen = (next) => {
      // 					// cc.find('Canvas').opacity = 255;
      // 					this.loadEnd();
      // 					next();
      // 				}
      // 				window.air.hideAirClassLoading();
      // 			} else {
      // 				this.loadEnd();
      // 			}
      // >>>>>>> 2d461e1910571bcfc6ad4dc93c2cedafc20923ea
limingzhe's avatar
limingzhe committed
2298

limingzhe's avatar
limingzhe committed
2299 2300 2301 2302 2303 2304 2305
      cc.debug.setDisplayStats(false);
    });
  },
  loadEnd: function loadEnd() {
    if (window && window["air"] && window["air"].hideAirClassLoading) {
      window["air"].hideAirClassLoading();
    }
liujiaxin's avatar
liujiaxin committed
2306

limingzhe's avatar
limingzhe committed
2307 2308
    this.initData(); // this.initAudio();
    // this.initView();
liujiaxin's avatar
liujiaxin committed
2309

limingzhe's avatar
limingzhe committed
2310
    this.initBg(); // this.initListener();
liujiaxin's avatar
liujiaxin committed
2311

limingzhe's avatar
limingzhe committed
2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335
    this.debugGraphics();
    this.createStateMachine();
  },
  _cantouch: null,
  initData: function initData() {
    // 所有全局变量 默认都是null 
    this._cantouch = true;
  },
  // audioBtn: null,
  // initAudio() {
  // 	const audioNode = cc.find('Canvas/res/audio');
  // 	const getAudioByResName = (resName) => {
  // 		return audioNode.getChildByName(resName).getComponent(cc.AudioSource);
  // 	}
  // 	this.audioBtn = getAudioByResName('btn');
  // },
  // initView() {
  // 	// this.initBg();
  // 	// this.initPic();
  // 	// this.initBtn();
  // 	this.initIcon();
  // },
  addRectNodeListener: function addRectNodeListener(data) {
    var _this5 = this;
liujiaxin's avatar
liujiaxin committed
2336

limingzhe's avatar
limingzhe committed
2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358
    var bg = cc.find("Canvas/frame-border/ground/bg").parent;
    var rate = bg.scale * bg.width / this.data.bgItem.rect.width;
    var rectNode = new cc.Node();
    rectNode.name = 'rect' + data.index;
    bg.addChild(rectNode, 20);
    var ctx = rectNode.addComponent(cc.Graphics); // 红色矩形

    ctx.lineWidth = 4;
    ctx.strokeColor = cc.Color.BLACK;
    ctx.fillColor = cc.Color.WHITE.setA(100);
    var scale = rate / bg.scaleY;
    console.log('scale~ : ', scale);
    rectNode.width = data.rect.width * scale;
    rectNode.height = data.rect.height * scale;
    rectNode.x = -bg.width / 2 + data.rect.x * scale + bg.x;
    rectNode.y = bg.height / 2 - data.rect.height * scale - data.rect.y * scale + bg.y;
    rectNode.anchorX = rectNode.anchorY = 0;
    console.log('data: ', data);
    console.log('rectNode: ', rectNode); // if (pageData.bgItem.isShowDebugLine) {

    ctx.rect(0, 0, rectNode.width, rectNode.height); // ctx.fillRect(0, 0, 200, 200);
    // }
liujiaxin's avatar
liujiaxin committed
2359

limingzhe's avatar
limingzhe committed
2360 2361 2362 2363 2364
    ctx.stroke();
    ctx.fill();
    rectNode.addComponent(cc.Button);
    rectNode.on("click", function () {
      console.log(" in rectNode click");
liujiaxin's avatar
liujiaxin committed
2365

limingzhe's avatar
limingzhe committed
2366
      var _x = rectNode.x / bg.width;
liujiaxin's avatar
liujiaxin committed
2367

limingzhe's avatar
limingzhe committed
2368
      var _y = rectNode.y / bg.height;
limingzhe's avatar
limingzhe committed
2369

limingzhe's avatar
limingzhe committed
2370
      var _w = rectNode.width / bg.width;
limingzhe's avatar
limingzhe committed
2371

limingzhe's avatar
limingzhe committed
2372
      var _h = rectNode.height / bg.height;
limingzhe's avatar
limingzhe committed
2373

limingzhe's avatar
limingzhe committed
2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434
      var pos = {
        x: _x + _w / 2 + 0.5,
        y: -(_y + _h / 2 - 0.5)
      };
      _this5._lastFingerPosition = {
        pos: pos,
        dirty: true
      };
    });
  },
  initBg: function initBg() {
    var bgNode = cc.find('Canvas/bg');
    bgNode.scale = this._mapScaleMax;
    console.log('this._mapScaleMax', this._mapScaleMax);
  },

  /*initBtn() {
  		this.curPage = 0;
  	const bottomPart = cc.find('Canvas/bottomPart');
  	bottomPart.zIndex = 5; // 提高层级
  		bottomPart.x = bottomPart.parent.width / 2;
  	bottomPart.y = -bottomPart.parent.height / 2;
  		const leftBtnNode = bottomPart.getChildByName('btn_left');
  	//节点中添加了button组件 则可以添加click事件监听
  	leftBtnNode.on('click', () => {
  		if (!this._cantouch) {
  			return;
  		}
  		if (this.curPage == 0) {
  			return;
  		}
  		this.curPage = 0
  		this.leftMove();
  			// 游戏结束时需要调用这个方法通知系统作业完成
  		onHomeworkFinish();
  			cc.audioEngine.play(this.audioBtn.clip, false, 0.8)
  	})
  		const rightBtnNode = bottomPart.getChildByName('btn_right');
  	//节点中添加了button组件 则可以添加click事件监听
  	rightBtnNode.on('click', () => {
  		if (!this._cantouch) {
  			return;
  		}
  		if (this.curPage == 1) {
  			return;
  		}
  			this.curPage = 1
  		this.rightMove();
  			cc.audioEngine.play(this.audioBtn.clip, false, 0.5)
  	})
  },*/
  // update (dt) {},
  _timeoutIds: null,
  _intervalIds: null,
  // 生命周期
  onDestroy: function onDestroy() {
    console.log('op15 onDestroy');

    this._timeoutIds.forEach(function (id) {
      clearTimeout(id);
    });
liujiaxin's avatar
liujiaxin committed
2435

limingzhe's avatar
limingzhe committed
2436 2437 2438 2439 2440 2441 2442 2443 2444 2445
    this._intervalIds.forEach(function (id) {
      clearInterval(id);
    });

    this.gameMachineService.stopChild();
    this.gameMachineService.stop();

    if (window.courseware && window.courseware.closeOsmoFingerRead) {
      if (this.isOpenedOsmoFingerRead) {
        window.courseware.closeOsmoFingerRead();
2446
      }
limingzhe's avatar
limingzhe committed
2447 2448 2449
    }
  }
});
limingzhe's avatar
limingzhe committed
2450

limingzhe's avatar
limingzhe committed
2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463
cc._RF.pop();
                    }
                    if (nodeEnv) {
                        __define(__module.exports, __require, __module);
                    }
                    else {
                        __quick_compile_project__.registerModuleFunc(__filename, function () {
                            __define(__module.exports, __require, __module);
                        });
                    }
                })();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjZW5lL09QMTUuanMiXSwibmFtZXMiOlsicHVyZSIsImFjdGlvbnMiLCJzZW5kIiwicmFpc2UiLCJzZW5kUGFyZW50IiwiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJyaWdodEF1ZGlvIiwidHlwZSIsIkF1ZGlvQ2xpcCIsIndyb25nQXVkaW8iLCJsb2dvQ2F0IiwiTm9kZSIsInBsYXlBbmkiLCJpZHgiLCJuYW1lIiwib3B0aW9ucyIsInRpbWVzIiwiY2IiLCJjYWxsYmFjayIsIm5vZGUiLCJfZmlndXJlUG9pbnRSZWN0QXJyYXkiLCJkcmFnb25EaXNwbGF5IiwiZ2V0Q29tcG9uZW50IiwiZHJhZ29uQm9uZXMiLCJBcm1hdHVyZURpc3BsYXkiLCJzdGF0ZSIsInBsYXlBbmltYXRpb24iLCJvbkxvYWQiLCJfdGltZW91dElkcyIsIl9pbnRlcnZhbElkcyIsImluaXRTY2VuZURhdGEiLCJpbml0U2l6ZSIsIndpbmRvdyIsImNjYyIsIl9pbWFnZVJlc0xpc3QiLCJfYXVkaW9SZXNMaXN0IiwiX2FuaW1hUmVzTGlzdCIsIl9sYXN0RmluZ2VyUG9zaXRpb24iLCJfaGludHNOb2RlTGlzdCIsIl9hbGxBbmltYXRpb25Ob2RlcyIsInBvcyIsImRpcnR5IiwiX2Rlc2lnblNpemUiLCJfZnJhbWVTaXplIiwiX21hcFNjYWxlTWluIiwiX21hcFNjYWxlTWF4IiwiX2NvY29zU2NhbGUiLCJzY3JlZW5fc2l6ZSIsInZpZXciLCJnZXRGcmFtZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsImRlc2lnbl9zaXplIiwiQ2FudmFzIiwiaW5zdGFuY2UiLCJkZXNpZ25SZXNvbHV0aW9uIiwiZiIsImZpdEhlaWdodCIsImZpdFdpZHRoIiwiZnJhbWVTaXplIiwiZ2V0RGVzaWduUmVzb2x1dGlvblNpemUiLCJzeCIsIndpblNpemUiLCJzeSIsIk1hdGgiLCJtaW4iLCJtYXgiLCJjcmVhdGVTdGF0ZU1hY2hpbmUiLCJjaGVjayIsInRhcmdldCIsImNvbmQiLCJjdHgiLCJldnQiLCJjb25zb2xlIiwibG9nIiwicXVlc3Rpb25JbmRleCIsInF1ZXN0aW9uc0NvdW50IiwiUXVlc3Rpb25TdGF0ZSIsImlkIiwiaW5pdGlhbCIsInN0YXRlcyIsImhpbnQiLCJpbnZva2UiLCJzcmMiLCJldmVudCIsInF1ZXN0aW9uUGxheVRpbWVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJxdWVzdGlvbnMiLCJhdWRpb191cmwiLCJvbkRvbmUiLCJvbkVycm9yIiwiYW5zd2VyIiwiYWZ0ZXIiLCJjb250ZXh0Iiwib25SZWNlaXZlIiwic2V0SW50ZXJ2YWwiLCJyZWdpb24iLCJyZXN1bHQiLCJjaGVja0luUmVnaW9uIiwicmVjdCIsInB1c2giLCJjbGVhckludGVydmFsIiwib24iLCJSSUdIVCIsIldST05HIiwicmlnaHQiLCJhbiIsImFjdGl2ZSIsImlzU3BpbmUiLCJza2VsZXRvbiIsInNwIiwiU2tlbGV0b24iLCJzZXRUb1NldHVwUG9zZSIsInNldFRpbWVvdXQiLCJzZXRBbmltYXRpb24iLCJkZExvZ29DYXQiLCJvbmNlIiwiRXZlbnRPYmplY3QiLCJDT01QTEVURSIsIndyb25nIiwibWF4UXVlc3Rpb25UcnlUaW1lcyIsIndyb25nRWZmZWN0IiwiaW5jbHVkZXMiLCJRdWVzdGlvbnNBcnJheVN0YXR1cyIsInBsYXkiLCJuZXh0IiwiQ0hFQ0siLCJsZW5ndGgiLCJiZWdpbiIsImNvdXJzZXdhcmUiLCJvcGVuT3Ntb0ZpbmdlclJlYWQiLCJpc09wZW5lZE9zbW9GaW5nZXJSZWFkIiwiZGF0YSIsImJlZ2luX2F1ZGlvIiwiZ3VpZGUiLCJndWlkZV9hdWRpbyIsInBsYXlpbmciLCJlbnRyeSIsImFzc2V0TWFuYWdlciIsImxvYWRSZW1vdGUiLCJwbGF5aW5nX2F1ZGlvIiwiZXJyIiwiYXVkaW9DbGlwIiwiYXVkaW9FbmdpbmUiLCJwbGF5TXVzaWMiLCJmb3JFYWNoIiwiYmxvY2siLCJleGl0Iiwic3RvcE11c2ljIiwiTkVYVCIsImVuZCIsImNsb3NlT3Ntb0ZpbmdlclJlYWQiLCJlbmRfYXVkaW8iLCJpIiwidCIsImsiLCJfYXJtYXR1cmVLZXkiLCJhZGRFdmVudExpc3RlbmVyIiwiYmVnaW5fc2VwX3RpbWUiLCJnYW1lTWFjaGluZSIsImdhbWVNYWNoaW5lU2VydmljZSIsIm9uVHJhbnNpdGlvbiIsInN0YXJ0IiwiZ2V0RGF0YSIsImJpbmQiLCJnZXREZWZhdWx0RGF0YSIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsInByZWxvYWRJdGVtIiwiYWlyIiwib3Ntb0ZpbmdlclJlYWRDYWxsYmFjayIsInAiLCJ4IiwieSIsImJvdW5kZWRQb3N0aW9uIiwiZGVidWdQb2ludGVyIiwiaXNEZWJ1ZyIsInN5cyIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJ2YWx1ZSIsInIiLCJ3IiwiaCIsImZ1bmMiLCJtaWRkbGVMYXllciIsImZpbmQiLCJtaWRkbGVMYXllckNvbXBvbmVudCIsImRlZmF1bHREYXRhIiwiYWRkUHJlbG9hZEltYWdlIiwiYWRkUHJlbG9hZEF1ZGlvIiwiYWRkUHJlbG9hZEFuaW1hIiwicHJlbG9hZCIsInVybCIsImJnSXRlbSIsImhvdFpvbmVJdGVtQXJyIiwicSIsImdJZHgiLCJ0ZXhQbmdEYXRhIiwicGljX3VybCIsInByZXBhcmVBdWRpb0NsaXAiLCJrZXkiLCJ3cm9uZ19hdWRpbyIsInJpZ2h0X2F1ZGlvIiwid3JvbmdfYXVkaW8xIiwid3JvbmdfYXVkaW8yIiwiYm94RGVidWdnZXIiLCJQT0lOVEVSX05PREUiLCJwYXJlbnQiLCJhZGRDb21wb25lbnQiLCJHcmFwaGljcyIsImdyYXAiLCJjbGVhciIsImdyb3VuZCIsImJhc2VXIiwiYmFzZUgiLCJweCIsInB5IiwicG4iLCJmaWxsQ29sb3IiLCJjb2xvciIsImNpcmNsZSIsImZpbGwiLCJzdHJva2UiLCJkZWJ1Z0dyYXBoaWNzIiwiY2FudmFzIiwiYmdXIiwiYmdIIiwic2NhbGVYIiwic2NhbGVZIiwiYWRkZWQiLCJhcmVhIiwiZG4iLCJsYmxOb2RlIiwibGJsIiwiTGFiZWwiLCJzdHJpbmciLCJza2VKc29uRGF0YSIsInN1YnN0cmluZyIsImciLCJiIiwicngiLCJyeSIsInJ3IiwicmgiLCJmaWxsUmVjdCIsInByZWxvYWRBcnIiLCJjb25jYXQiLCJsb2FkQW55IiwiaXRlbSIsImdyb3VuZEJnIiwiYmFzZVJlY3QiLCJzZiIsImdzIiwiU3ByaXRlIiwic3ByaXRlRnJhbWUiLCJkYkNvdW50IiwiZmluaXNoRGJDb3VudCIsInMxIiwiaW1nU2l6ZVciLCJpbWdTaXplSCIsInNwciIsInNjYWxlIiwibiIsImFuaW1UeXBlIiwidGV4IiwiYXRsYXMiLCJ0ZXhKc29uRGF0YSIsInNrZSIsInRoZW4iLCJsb2FkRW5kIiwiZGIiLCJyZWN0SW5mbyIsImxhYmVsVGV4dCIsImlzTmFOIiwiZGVidWciLCJzZXREaXNwbGF5U3RhdHMiLCJoaWRlQWlyQ2xhc3NMb2FkaW5nIiwiaW5pdERhdGEiLCJpbml0QmciLCJfY2FudG91Y2giLCJhZGRSZWN0Tm9kZUxpc3RlbmVyIiwiYmciLCJyYXRlIiwicmVjdE5vZGUiLCJpbmRleCIsImFkZENoaWxkIiwibGluZVdpZHRoIiwic3Ryb2tlQ29sb3IiLCJDb2xvciIsIkJMQUNLIiwiV0hJVEUiLCJzZXRBIiwiYW5jaG9yWCIsImFuY2hvclkiLCJCdXR0b24iLCJfeCIsIl95IiwiX3ciLCJfaCIsImJnTm9kZSIsIm9uRGVzdHJveSIsImNsZWFyVGltZW91dCIsInN0b3BDaGlsZCIsInN0b3AiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7SUFDUUEsT0FBb0NDLG1CQUFwQ0Q7SUFBT0UsT0FBNkJELG1CQUE3QkM7SUFBTUMsUUFBdUJGLG1CQUF2QkU7SUFBT0MsYUFBZ0JILG1CQUFoQkc7QUFHNUJDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBRVIsYUFBU0QsRUFBRSxDQUFDRSxTQUZKO0FBSVJDLEVBQUFBLFVBQVUsRUFBRTtBQUNYO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUFSLENBQVksZ0JBQVo7O0FBQ0EsU0FBSzlDLFdBQUwsQ0FBaUJ1SCxPQUFqQixDQUF5QixVQUFBckUsRUFBRSxFQUFJO0FBQzlCbU8sTUFBQUEsWUFBWSxDQUFDbk8sRUFBRCxDQUFaO0FBQ0EsS0FGRDs7QUFHQSxTQUFLakQsWUFBTCxDQUFrQnNILE9BQWxCLENBQTBCLFVBQUFyRSxFQUFFLEVBQUk7QUFDL0J5QixNQUFBQSxhQUFhLENBQUN6QixFQUFELENBQWI7QUFDQSxLQUZEOztBQUdBLFNBQUtvRixrQkFBTCxDQUF3QmdKLFNBQXhCO0FBQ0EsU0FBS2hKLGtCQUFMLENBQXdCaUosSUFBeEI7O0FBQ0EsUUFBR25SLE1BQU0sQ0FBQ21HLFVBQVAsSUFBcUJuRyxNQUFNLENBQUNtRyxVQUFQLENBQWtCc0IsbUJBQTFDLEVBQStEO0FBQzlELFVBQUksS0FBS3BCLHNCQUFULEVBQWlDO0FBQ2hDckcsUUFBQUEsTUFBTSxDQUFDbUcsVUFBUCxDQUFrQnNCLG1CQUFsQjtBQUNBO0FBQ0Q7QUFDRDtBQTdwQ08sQ0FBVCIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb25Ib21ld29ya0ZpbmlzaCwgUmFuZG9tSW50LCBwbGF5QXVkaW9CeVVybCwgbG9hZERyYWdvbkJvbmVzLCBnZXRTcHJpdGVGcmltZUJ5VXJsLCBsb2FkU3BpbmUgfSBmcm9tIFwiLi4vc2NyaXB0L3V0aWxfT1AxNVwiO1xuaW1wb3J0IHsgZGVmYXVsdERhdGEgfSBmcm9tIFwiLi4vc2NyaXB0L2RlZmF1bHREYXRhX09QMTVcIjtcbmltcG9ydCB7IGFzc2lnbiwgY3JlYXRlTWFjaGluZSwgaW50ZXJwcmV0LCBhY3Rpb25zLCBmb3J3YXJkVG8sIG1hdGNoZXNTdGF0ZSAgfSBmcm9tIFwiLi4vc2NyaXB0L3hzdGF0ZV9PUDE1XCI7XG5jb25zdCB7IHB1cmUgLCBzZW5kLCByYWlzZSwgc2VuZFBhcmVudCAgfSA9IGFjdGlvbnM7XG5cblxuY2MuQ2xhc3Moe1xuXG5cdGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcblxuXHRwcm9wZXJ0aWVzOiB7XG5cdFx0LyphbnQ6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0YXBwbGU6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0YmlyZDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRjYXI6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0Y2F0OiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGNvdzoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRkdWNrOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGVnZzoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRmYXJtZXI6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0ZmlzaDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRnaXJsOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGhlbjoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRob3VzZToge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSwqL1xuXHRcdHJpZ2h0QXVkaW86IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5BdWRpb0NsaXAsXG5cdFx0fSxcblx0XHR3cm9uZ0F1ZGlvOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuQXVkaW9DbGlwLFxuXHRcdH0sXG5cdFx0bG9nb0NhdDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGVcblx0XHR9XG5cblx0fSxcblxuXHRwbGF5QW5pKGlkeCwgbmFtZSwgb3B0aW9ucykge1xuXHRcdGNvbnN0IHRpbWVzID0gKG9wdGlvbnMgJiYgb3B0aW9ucy50aW1lcykgfHwgMTtcblx0XHRjb25zdCBjYiA9IChvcHRpb25zICYmIG9wdGlvbnMuY2FsbGJhY2spIHx8IG51bGw7XG5cdFx0Ly8gY29uc3QgY2F0ID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQvJHtub2RlfWApO1xuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheVtpZHhdLm5vZGVcblx0XHR2YXIgZHJhZ29uRGlzcGxheSA9IG5vZGUuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cblx0XHRjb25zdCBzdGF0ZSA9IGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbihuYW1lLCB0aW1lcyk7XG5cdFx0Ly8gZHJhZ29uRGlzcGxheS5hZGRFdmVudExpc3RlbmVyKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCAoZXZlbnQpID0+IHtcblx0XHQvLyBcdC8vVE9ETyDov5nph4zlhpnop6blj5Hkuovku7Zcblx0XHQvLyBcdC8vZXZlbnQubmFtZeS4uuS6i+S7tuWQjeensFxuXHRcdC8vIFx0Y29uc29sZS5sb2coZXZlbnQubmFtZSlcblx0XHQvLyB9LCB0aGlzKTtcblx0XHQvLyBhbmltYXRpb25EaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIGNvbXBsZXRlQ2FsbGJhY2spO1xuXHRcdHJldHVybiBzdGF0ZTtcblx0fSxcblx0Ly8g55Sf5ZG95ZGo5pyfIG9uTG9hZFxuXHRvbkxvYWQoKSB7XG5cdFx0dGhpcy5fdGltZW91dElkcyA9IFtdO1xuXHRcdHRoaXMuX2ludGVydmFsSWRzID0gW107XG5cdFx0dGhpcy5pbml0U2NlbmVEYXRhKCk7XG5cdFx0dGhpcy5pbml0U2l6ZSgpO1xuXHRcdHdpbmRvdy5jY2MgPSB0aGlzO1xuXHR9LFxuXG5cdF9pbWFnZVJlc0xpc3Q6IG51bGwsXG5cdF9hdWRpb1Jlc0xpc3Q6IG51bGwsXG5cdF9hbmltYVJlc0xpc3Q6IG51bGwsXG5cblx0X2xhc3RGaW5nZXJQb3NpdGlvbjogbnVsbCxcblxuXHRfaGludHNOb2RlTGlzdCA6IG51bGwsXG5cdF9maWd1cmVQb2ludFJlY3RBcnJheTogbnVsbCxcblxuXHRfYWxsQW5pbWF0aW9uTm9kZXM6IG51bGwsXG5cblx0aW5pdFNjZW5lRGF0YSgpIHtcblx0XHR0aGlzLl9pbWFnZVJlc0xpc3QgPSBbXTtcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QgPSBbXTtcblx0XHR0aGlzLl9hbmltYVJlc0xpc3QgPSBbXTtcblxuXHRcdHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzID0gW107XG5cdFx0dGhpcy5faGludHNOb2RlTGlzdCA9IFtdO1xuXHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbj0ge1xuXHRcdFx0cG9zOiBudWxsLFxuXHRcdFx0ZGlydHk6IGZhbHNlXG5cdFx0fTtcblx0XHR0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheSA9IFtdO1xuXHR9LFxuXG5cdF9kZXNpZ25TaXplOiBudWxsLCAgLy8g6K6+6K6h5YiG6L6o546HXG5cdF9mcmFtZVNpemU6IG51bGwsICAvLyDlsY/luZXliIbovqjnjodcblx0X21hcFNjYWxlTWluOiBudWxsLCAgLy8g5Zy65pmv5Lit5bi455So57yp5pS+77yI5Y+W5aSn5YC877yJXG5cdF9tYXBTY2FsZU1heDogbnVsbCwgIC8vIOWcuuaZr+S4reW4uOeUqOe8qeaUvu+8iOWPluWwj+WAvO+8iVxuXHRfY29jb3NTY2FsZTogbnVsbCwgIC8vIGNvY29zIOiHque8qeaUviDvvIjovoPlsJHnlKjliLDvvIlcblx0XG5cdGluaXRTaXplKCkge1xuXHRcdC8vIOazqOaEj2NjLndpblNpemXlj6rmnInlnKjpgILphY3lkI4o5L+u5pS5Zml0SGVpZ2h0L2ZpdFdpZHRo5ZCOKeaJjeiDveiOt+WPluWIsOato+ehrueahOWAvCzlm6DmraTkvb/nlKhjYy5nZXRGcmFtZVNpemUoKeadpeiOt+WPluWIneWni+eahOWxj+W5leWkp+Wwj1xuXHRcdGxldCBzY3JlZW5fc2l6ZSA9IGNjLnZpZXcuZ2V0RnJhbWVTaXplKCkud2lkdGggLyBjYy52aWV3LmdldEZyYW1lU2l6ZSgpLmhlaWdodFxuXHRcdGxldCBkZXNpZ25fc2l6ZSA9IGNjLkNhbnZhcy5pbnN0YW5jZS5kZXNpZ25SZXNvbHV0aW9uLndpZHRoIC8gY2MuQ2FudmFzLmluc3RhbmNlLmRlc2lnblJlc29sdXRpb24uaGVpZ2h0XG5cdFx0bGV0IGYgPSBzY3JlZW5fc2l6ZSA+PSBkZXNpZ25fc2l6ZVxuXHRcdGNjLkNhbnZhcy5pbnN0YW5jZS5maXRIZWlnaHQgPSBmXG5cdFx0Y2MuQ2FudmFzLmluc3RhbmNlLmZpdFdpZHRoID0gIWZcblxuXHRcdGNvbnN0IGZyYW1lU2l6ZSA9IGNjLnZpZXcuZ2V0RnJhbWVTaXplKCk7XG5cdFx0dGhpcy5fZnJhbWVTaXplID0gZnJhbWVTaXplO1xuXG5cdFx0dGhpcy5fZGVzaWduU2l6ZSA9IGNjLnZpZXcuZ2V0RGVzaWduUmVzb2x1dGlvblNpemUoKTtcblxuXHRcdGxldCBzeCA9IGNjLndpblNpemUud2lkdGggLyBmcmFtZVNpemUud2lkdGg7XG5cdFx0bGV0IHN5ID0gY2Mud2luU2l6ZS5oZWlnaHQgLyBmcmFtZVNpemUuaGVpZ2h0O1xuXHRcdHRoaXMuX2NvY29zU2NhbGUgPSBNYXRoLm1pbihzeCwgc3kpO1xuXG5cdFx0c3ggPSBmcmFtZVNpemUud2lkdGggLyB0aGlzLl9kZXNpZ25TaXplLndpZHRoO1xuXHRcdHN5ID0gZnJhbWVTaXplLmhlaWdodCAvIHRoaXMuX2Rlc2lnblNpemUuaGVpZ2h0O1xuXHRcdHRoaXMuX21hcFNjYWxlTWluID0gTWF0aC5taW4oc3gsIHN5KSAqIHRoaXMuX2NvY29zU2NhbGU7XG5cdFx0dGhpcy5fbWFwU2NhbGVNYXggPSBNYXRoLm1heChzeCwgc3kpICogdGhpcy5fY29jb3NTY2FsZTtcblx0fSxcblx0Y3JlYXRlU3RhdGVNYWNoaW5lKCl7XG5cdFx0Y29uc3QgY2hlY2sgPSAgW1xuXHRcdFx0XHRcdFx0XHR7IHRhcmdldDogJyNnYW1lLmVuZCcsIGNvbmQ6IChjdHgsIGV2dCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbYW5zd2VyIE5FWFRdIGNoZWNrIGlmIGVuZCcsIGN0eC5xdWVzdGlvbkluZGV4ID49IGN0eC5xdWVzdGlvbnNDb3VudCAtIDEpO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBjdHgucXVlc3Rpb25JbmRleCA+PSBjdHgucXVlc3Rpb25zQ291bnQgLTFcblxuXHRcdFx0XHRcdFx0XHR9IH0sXG4gICAgICAgIFx0XHRcdFx0XHR7IHRhcmdldDogJ2hpbnQnIH0gLy8gcmVlbnRlciAnaGludCcgc3RhdGVcblx0XHRcdFx0XHRcdF1cblx0XHRjb25zdCBRdWVzdGlvblN0YXRlID0ge1xuXHRcdFx0aWQ6ICdxdWVzdGlvbicsXG5cdFx0XHRpbml0aWFsOiAnaGludCcsXG5cdFx0XHRzdGF0ZXM6IHtcblx0XHRcdFx0aGludDoge1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY3R4LCBldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhgW2hpbnRdIHBsYXkgcXVlc3Rpb24gJHtjdHgucXVlc3Rpb25JbmRleH06ICR7Y3R4LnF1ZXN0aW9uUGxheVRpbWVzIH0gYXVkaW9gKTtcblx0XHRcdFx0XHRcdFx0Y3R4LnF1ZXN0aW9uUGxheVRpbWVzICs9IDE7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybChjdHgucXVlc3Rpb25zW2N0eC5xdWVzdGlvbkluZGV4XS5hdWRpb191cmwsICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdoaW50IGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSgpXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6ICdhbnN3ZXInLFxuXHRcdFx0XHRcdFx0b25FcnJvcjogJ2Fuc3dlcidcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGFuc3dlcjoge1xuXHRcdFx0XHRcdGFmdGVyOiB7XG5cdFx0XHRcdFx0XHQ4MDAwOiBbXG4gICAgICAgIFx0XHRcdFx0XHR7IFxuXHRcdFx0XHRcdFx0XHRcdHRhcmdldDogJ3dyb25nJyxcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0fSAvLyByZWVudGVyICdoaW50JyBzdGF0ZVxuXHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0c3JjOiAoY29udGV4dCwgZXZlbnQpID0+IChjYWxsYmFjaywgb25SZWNlaXZlKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnW2Fuc3dlcl0gdGhpbmtpbmcgYW5kIHBsYXlpbmcnKTtcblx0XHRcdFx0XHRcdFx0Ly8gY2hlY2sgZXZlcnkgc2Vjb25kXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGlkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGlmICghdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLmRpcnR5KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHJlZ2lvbiA9IGNvbnRleHQucXVlc3Rpb25zW2NvbnRleHQucXVlc3Rpb25JbmRleF07XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gdGhpcy5jaGVja0luUmVnaW9uKHJlZ2lvbi5yZWN0KTtcblx0XHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0ID09PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbR2VuaXNlIEpTXSBjaGVja0luUmVnaW9uJyArIHJlc3VsdClcblx0XHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjYWxsYmFjaygnUklHSFQnKVxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjYWxsYmFjaygnV1JPTkcnKVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSwgMTAwMCk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2ludGVydmFsSWRzLnB1c2goaWQpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQvLyBQZXJmb3JtIGNsZWFudXBcblx0XHRcdFx0XHRcdFx0cmV0dXJuICgpID0+IGNsZWFySW50ZXJ2YWwoaWQpO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0b246IHtcblx0XHRcdFx0XHRcdFJJR0hUOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJ3JpZ2h0Jyxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRXUk9ORzoge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICd3cm9uZycsXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRcblx0XHRcdFx0cmlnaHQ6IHtcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdHNyYzogKGNvbnRleHQsIGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24uZGlydHkgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnYW5zd2VyIHJpZ2h0Jyk7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5wbGF5QW5pKGNvbnRleHQucXVlc3Rpb25JbmRleCwgJ25vcm1hbCcpXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgYW4gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdLm5vZGU7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2luIHJpZ2h0ICcgKyAodHlwZW9mIGFuKSlcblx0XHRcdFx0XHRcdFx0XHRhbi5hY3RpdmUgPSB0cnVlO1xuXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGFuLmlzU3BpbmUpIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3Qgc2tlbGV0b24gPSBhbi5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0VG9TZXR1cFBvc2UoKTtcblx0XHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRza2VsZXRvbi5zZXRBbmltYXRpb24oMCwgJ25vcm1hbCcsIHRydWUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fSwgMSk7XG5cdFx0XHRcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IGFuLmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRjb25zdCBkZExvZ29DYXQgPSB0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSlcblx0XHRcdFx0XHRcdFx0XHRkZExvZ29DYXQucGxheUFuaW1hdGlvbigncmlnaHQnLCAxKVxuXHRcdFx0XHRcdFx0XHRcdGRkTG9nb0NhdC5vbmNlKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKVxuXHRcdFx0XHRcdFx0XHRcdH0sIHRoaXMpXG5cblx0XHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybCh0aGlzLnJpZ2h0QXVkaW8sICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRG9uZToge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICcjUXVlc3Rpb25zQXJyYXkubmV4dCcsXG5cdFx0XHRcdFx0XHRcdGFjdGlvbnM6IHJhaXNlKCdDSEVDSycpXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25FcnJvcjoge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICcjUXVlc3Rpb25zQXJyYXkubmV4dCcsXG5cdFx0XHRcdFx0XHRcdGFjdGlvbnM6IHJhaXNlKCdDSEVDSycpXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR3cm9uZzp7XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRzcmM6IChjb250ZXh0LCBldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLmRpcnR5ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2Fuc3dlciB3cm9uZycsIGNvbnRleHQucXVlc3Rpb25JbmRleCwgY29udGV4dC5xdWVzdGlvblBsYXlUaW1lcyAsIGNvbnRleHQubWF4UXVlc3Rpb25UcnlUaW1lcyk7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZGRMb2dvQ2F0ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpXG5cdFx0XHRcdFx0XHRcdFx0ZGRMb2dvQ2F0LnBsYXlBbmltYXRpb24oJ3dyb25nJywgMSlcblx0XHRcdFx0XHRcdFx0XHRkZExvZ29DYXQub25jZShkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMClcblx0XHRcdFx0XHRcdFx0XHR9LCB0aGlzKTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgd3JvbmdFZmZlY3QgPSB0aGlzLndyb25nQXVkaW87XG5cdFx0XHRcdFx0XHRcdFx0Ly8g56ys5LiA5ZKM56ys5LqM6aKY55qE5o+Q56S66Z+zXG5cdFx0XHRcdFx0XHRcdFx0aWYgKFswLCAxXS5pbmNsdWRlcyhjb250ZXh0LnF1ZXN0aW9uSW5kZXgpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyB3cm9uZ0VmZmVjdCA9IHRoaXMuZGF0YVtgd3JvbmdfYXVkaW8ke2NvbnRleHQucXVlc3Rpb25QbGF5VGltZXN9YF1cblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0Ly8g6Z2e56ys5LiA5ZKM56ys5LqM6aKY77yM5bm25LiU5YGa56ys5LqM6YGN55qE5o+Q56S66Z+zXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBpZiAoY29udGV4dC5xdWVzdGlvblBsYXlUaW1lcyA9PSAyKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBcdHdyb25nRWZmZWN0ID0gdGhpcy5kYXRhW2B3cm9uZ19hdWRpbyR7Y29udGV4dC5xdWVzdGlvblBsYXlUaW1lc31gXVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRcdFx0XHRcdH1cblxuXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGNvbnRleHQucXVlc3Rpb25QbGF5VGltZXMgPj0gY29udGV4dC5tYXhRdWVzdGlvblRyeVRpbWVzKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBhbiA9IGNvbnRleHQucXVlc3Rpb25zW2NvbnRleHQucXVlc3Rpb25JbmRleF0ubm9kZTtcblx0XHRcdFx0XHRcdFx0XHRcdGFuLmFjdGl2ZSA9IHRydWU7XG5cblx0XHRcdFx0XHRcdFx0XHRcdGlmIChhbi5pc1NwaW5lKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc3Qgc2tlbGV0b24gPSBhbi5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRza2VsZXRvbi5zZXRUb1NldHVwUG9zZSgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRza2VsZXRvbi5zZXRBbmltYXRpb24oMCwgJ25vcm1hbCcsIHRydWUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9LCAxKTtcblx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBkcmFnb25EaXNwbGF5ID0gYW4uZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdzaG93IGFuaW1hdGlvbicsIGFuLmFjdGl2ZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKHdyb25nRWZmZWN0LCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoY29udGV4dC5xdWVzdGlvblBsYXlUaW1lcyA+PSBjb250ZXh0Lm1heFF1ZXN0aW9uVHJ5VGltZXMpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc3QgYW4gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdLm5vZGU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGFuLmFjdGl2ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNvbnN0IGRyYWdvbkRpc3BsYXkgPSBhbi5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3Nob3cgYW5pbWF0aW9uJywgYW4uYWN0aXZlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVqZWN0KClcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRG9uZToge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICdoaW50Jyxcblx0XHRcdFx0XHRcdFx0Ly8gYWN0aW9uczogcmFpc2UoJ0NIRUNLJylcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkVycm9yOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJyNRdWVzdGlvbnNBcnJheS5uZXh0Jyxcblx0XHRcdFx0XHRcdFx0YWN0aW9uczogcmFpc2UoJ0NIRUNLJylcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHR9XG5cdFx0fVxuXHRcdGNvbnN0IFF1ZXN0aW9uc0FycmF5U3RhdHVzID0ge1xuXHRcdFx0aWQ6ICdRdWVzdGlvbnNBcnJheScsXG5cdFx0XHRpbml0aWFsOiAncGxheScsXG5cdFx0XHRzdGF0ZXM6IHtcblx0XHRcdFx0cGxheToge1xuXHRcdFx0XHRcdC4uLlF1ZXN0aW9uU3RhdGVcblx0XHRcdFx0fSxcblx0XHRcdFx0bmV4dDoge1xuXHRcdFx0XHRcdG9uOiB7XG5cdFx0XHRcdFx0XHRDSEVDSzogW1xuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI2dhbWUuZW5kJyxcblx0XHRcdFx0XHRcdFx0XHRjb25kOiAoY3R4LCBldnQpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGN0eC5xdWVzdGlvbkluZGV4ICs9IDE7XG5cdFx0XHRcdFx0XHRcdFx0XHRjdHgucXVlc3Rpb25QbGF5VGltZXMgPSAwXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnI2dhbWUuZW5kJywgIGN0eC5xdWVzdGlvbkluZGV4ID49IGN0eC5xdWVzdGlvbnNDb3VudCApXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gY3R4LnF1ZXN0aW9uSW5kZXggPj0gY3R4LnF1ZXN0aW9uc0NvdW50XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHR7dGFyZ2V0OiAncGxheSd9XG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0XG5cdFx0Y29uc3Qgc3RhdGUgPSB7XG5cdFx0XHRpZDogJ2dhbWUnLFxuXHRcdFx0aW5pdGlhbDogJ2d1aWRlJyxcblx0XHRcdGNvbnRleHQ6IHtcblx0XHRcdFx0cXVlc3Rpb25JbmRleDogMCxcblx0XHRcdFx0cXVlc3Rpb25QbGF5VGltZXM6IDAsXG5cdFx0XHRcdG1heFF1ZXN0aW9uVHJ5VGltZXM6IDUsXG5cdFx0XHRcdHF1ZXN0aW9uc0NvdW50OiB0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheS5sZW5ndGgsXG5cdFx0XHRcdHF1ZXN0aW9uczogdGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXksXG5cdFx0XHR9LFxuXHRcdFx0c3RhdGVzOiB7XG5cdFx0XHRcdGJlZ2luOiB7XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRzcmM6IChjdHgpID0+IHtcblxuXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGJlZ2luIDEnKTtcblx0XHRcdFx0XHRcdFx0aWYod2luZG93LmNvdXJzZXdhcmUgJiYgd2luZG93LmNvdXJzZXdhcmUub3Blbk9zbW9GaW5nZXJSZWFkKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5pc09wZW5lZE9zbW9GaW5nZXJSZWFkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHR3aW5kb3cuY291cnNld2FyZS5vcGVuT3Ntb0ZpbmdlclJlYWQoe1xuXHRcdFx0XHRcdFx0XHRcdFx0XCJwYWdlXCI6IGZhbHNlLFxuXHRcdFx0XHRcdFx0XHRcdFx0XCJib29rX25hbWVcIjogXCJPeGZvcmRfUGhvbmljc19Xb3JsZF8xX1NCXCJcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0dmFyIGRyYWdvbkRpc3BsYXkgPSB0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdiZWdpbicsIDApO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwodGhpcy5kYXRhLmJlZ2luX2F1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBiZWdpbiBhdWRpbyBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRG9uZTogICdndWlkZScsXG5cdFx0XHRcdFx0XHRvbkVycm9yOiAnZ3VpZGUnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRcblx0XHRcdFx0Z3VpZGU6e1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY3R4KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybCh0aGlzLmRhdGEuZ3VpZGVfYXVkaW8sICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGd1aWRlIGF1ZGlvIGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVqZWN0KClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6ICAncGxheWluZycsXG5cdFx0XHRcdFx0XHRvbkVycm9yOiAncGxheWluZydcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRwbGF5aW5nOiB7XG5cdFx0XHRcdFx0ZW50cnk6IChjdHgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdlbnRyeSBwbGF5IHN0YWdlJyk7XG5cdFx0XHRcdFx0XHR2YXIgZHJhZ29uRGlzcGxheSA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHRoaXMuZGF0YS5wbGF5aW5nX2F1ZGlvLCAoZXJyLCBhdWRpb0NsaXApID0+IHtcblx0XHRcdFx0XHRcdFx0Y2MuYXVkaW9FbmdpbmUucGxheU11c2ljKGF1ZGlvQ2xpcCwgdHJ1ZSwgMC44KTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0Y3R4LnF1ZXN0aW9ucy5mb3JFYWNoKChibG9jaykgPT4ge1xuXHRcdFx0XHRcdFx0XHRibG9jay5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRleGl0OiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXhpdCBwbGF5IHN0YWdlJyk7XG5cdFx0XHRcdFx0XHRjYy5hdWRpb0VuZ2luZS5zdG9wTXVzaWMoKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG9uOiB7XG5cdFx0XHRcdFx0XHRORVhUOiAnZW5kJ1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Ly8gLi4uUXVlc3Rpb25zU3RhdGVzXG5cdFx0XHRcdFx0Li4uUXVlc3Rpb25zQXJyYXlTdGF0dXNcblx0XHRcdFx0fSxcblx0XHRcdFx0ZW5kOiB7XG5cdFx0XHRcdFx0XHRlbnRyeTogKGN0eCwgZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgZW5kJyk7XG5cdFx0XHRcdFx0XHRcdHZhciBkcmFnb25EaXNwbGF5ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignZmluaXNoJywgMCk7XG5cdFx0XHRcdFx0XHRcdGlmKHdpbmRvdy5jb3Vyc2V3YXJlICYmIHdpbmRvdy5jb3Vyc2V3YXJlLmNsb3NlT3Ntb0ZpbmdlclJlYWQpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmlzT3BlbmVkT3Ntb0ZpbmdlclJlYWQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHR3aW5kb3cuY291cnNld2FyZS5jbG9zZU9zbW9GaW5nZXJSZWFkKClcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybCh0aGlzLmRhdGEuZW5kX2F1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgZmluaXNoJyk7XG5cdFx0XHRcdFx0XHRcdFx0b25Ib21ld29ya0ZpbmlzaCgpO1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHQvLyByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0XHRjb25zb2xlLmxvZygnaGludCBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0Ly8gXHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHQvLyBcdH0sIDIwMDApXG5cdFx0XHRcdFx0XHRcdC8vIH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH0sXG5cdFx0XHR9XG5cdFx0fTtcblx0XHRjb25zdCBhZnRlciA9IHt9O1xuXHRcdGZvcihsZXQgaSA9IDAgO2kgIDwgdGhpcy5faGludHNOb2RlTGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgdCA9IHRoaXMuX2hpbnRzTm9kZUxpc3RbaV0ubm9kZTtcblx0XHRcdGNvbnN0IGsgPSB0aGlzLl9oaW50c05vZGVMaXN0W2ldLmFmdGVyO1xuXHRcdFx0YWZ0ZXJba109IHtcblx0XHRcdFx0YWN0aW9uczogKCkgPT4ge1xuXG5cdFx0XHRcdFx0aWYgKHQuaXNTcGluZSkge1xuXG5cdFx0XHRcdFx0XHRjb25zdCBza2VsZXRvbiA9IHQuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0c2tlbGV0b24uc2V0VG9TZXR1cFBvc2UoKTtcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRza2VsZXRvbi5zZXRBbmltYXRpb24oMCwgJ2VubGFyZ2UnLCBmYWxzZSk7XG5cdFx0XHRcdFx0XHR9LCAxKTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0Ly8gc2tlbGV0b24uYW5pbWF0aW9uID0gc2tlbGV0b24uYW5pbWF0aW9uTmFtZXNbMF07XG5cblx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRjb25zdCBkcmFnb25EaXNwbGF5ID0gdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignZW5sYXJnZScsIDEpO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZHJhZ29uRGlzcGxheS5fYXJtYXR1cmVLZXksICdlbmxhcmdlJylcblx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkuYWRkRXZlbnRMaXN0ZW5lcihkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFRPRE8g6L+Z6YeM5YaZ6Kem5Y+R5LqL5Lu2XG5cdFx0XHRcdFx0XHRcdC8vIGV2ZW50Lm5hbWXkuLrkuovku7blkI3np7Bcblx0XHRcdFx0XHRcdFx0Ly8gZXZlbnQuYXJtYXR1cmUuYW5pbWF0aW9uLnBsYXkoJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhldmVudC5hbmltYXRpb25TdGF0ZS5uYW1lLCBkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VuZCcpXG5cdFx0XHRcdFx0XHR9LCB0aGlzKTtcblx0XHRcdFx0XHR9XG5cblxuXG5cdFx0XHRcdFx0Ly8gY29uc3QgZHJhZ29uRGlzcGxheSA9IHQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0Ly8gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdlbmxhcmdlJywgMSk7XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZHJhZ29uRGlzcGxheS5fYXJtYXR1cmVLZXksICdlbmxhcmdlJylcblx0XHRcdFx0XHQvLyBkcmFnb25EaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIChldmVudCkgPT4ge1xuXHRcdFx0XHRcdC8vIFx0Ly9UT0RPIOi/memHjOWGmeinpuWPkeS6i+S7tlxuXHRcdFx0XHRcdC8vIFx0Ly9ldmVudC5uYW1l5Li65LqL5Lu25ZCN56ewXG5cdFx0XHRcdFx0Ly8gXHRldmVudC5hcm1hdHVyZS5hbmltYXRpb24ucGxheSgnbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0Ly8gXHRjb25zb2xlLmxvZyhldmVudC5hbmltYXRpb25TdGF0ZS5uYW1lLCBkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VuZCcpXG5cdFx0XHRcdFx0Ly8gfSwgdGhpcyk7XG5cdFx0XHRcdH0gXG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICh0aGlzLmRhdGEuYmVnaW5fc2VwX3RpbWUpIHtcblx0XHRcdGNvbnN0IHQgPSArdGhpcy5kYXRhLmJlZ2luX3NlcF90aW1lICogMTAwMDtcblx0XHRcdGFmdGVyW3RdID0ge1xuXHRcdFx0XHRhY3Rpb25zOiAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgYmVnaW4gMicpO1xuXG5cdFx0XHRcdFx0Zm9yKGxldCBpID0gMCA7aSAgPCB0aGlzLl9hbGxBbmltYXRpb25Ob2Rlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0Y29uc3QgdCA9IHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzW2ldO1xuXHRcdFx0XHRcdFx0aWYgKHQuaXNTcGluZSkge1xuXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gdC5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnc2tlbGV0b246ICcsIHNrZWxldG9uKTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldFRvU2V0dXBQb3NlKCk7XG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnbm9ybWFsJywgdHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdH0sIDEpO1xuXHRcdFx0XHRcdFx0XHRcblxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnc2tlbGV0b24gMjI6ICcsIHNrZWxldG9uKTtcblxuXHRcdFx0XHRcdFx0XHQvLyBza2VsZXRvbi5hbmltYXRpb24gPSBza2VsZXRvbi5hbmltYXRpb25OYW1lc1swXTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IHQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdHN0YXRlLnN0YXRlcy5iZWdpbi5hZnRlciA9IGFmdGVyO1xuXG5cblxuXHRcdGNvbnN0IGdhbWVNYWNoaW5lID0gY3JlYXRlTWFjaGluZShzdGF0ZSk7XG5cdFx0d2luZG93LmdhbWVNYWNoaW5lID0gZ2FtZU1hY2hpbmU7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2UgPSBpbnRlcnByZXQoZ2FtZU1hY2hpbmUpLm9uVHJhbnNpdGlvbigoc3RhdGUpID0+IHtcblx0XHQvLyBjb25zb2xlLmxvZygxLCBzdGF0ZS52YWx1ZSwgc3RhdGUuY29udGV4dCk7XG5cdFx0fSk7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RhcnQoKTtcblx0XHRpZiAod2luZG93LmdhbWVNYWNoaW5lU2VydmljZSkge1xuXHRcdFx0d2luZG93LmdhbWVNYWNoaW5lU2VydmljZSA9IGdhbWVNYWNoaW5lU2VydmljZTtcblx0XHR9XG5cblxuXHR9LFxuXG5cdFxuXG5cblxuXHQvLyDnlJ/lkb3lkajmnJ8gc3RhcnRcblx0c3RhcnQoKSB7XG5cdFx0bGV0IGdldERhdGEgPSB0aGlzLmdldERhdGEuYmluZCh0aGlzKTtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvdy5jb3Vyc2V3YXJlKSB7XG5cdFx0XHRnZXREYXRhID0gd2luZG93LmNvdXJzZXdhcmUuZ2V0RGF0YTtcblx0XHR9XG5cblx0XHRnZXREYXRhKChkYXRhKSA9PiB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnZGF0YTonLCBkYXRhKTtcblx0XHRcdHRoaXMuZGF0YSA9IGRhdGEgfHwgdGhpcy5nZXREZWZhdWx0RGF0YSgpO1xuXHRcdFx0dGhpcy5kYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEpKVxuXHRcdFx0XG5cdFx0XHR0aGlzLnByZWxvYWRJdGVtKClcblx0XHR9KTtcblx0XHR3aW5kb3cuYWlyID0gd2luZG93LmFpciB8fCB7fVxuXHRcdGlmICh3aW5kb3cuYWlyKSB7XG5cdFx0XHR3aW5kb3cuYWlyLm9zbW9GaW5nZXJSZWFkQ2FsbGJhY2sgPSAocmVzdWx0KSA9PiB7XG5cdFx0XHRcdGlmICghdGhpcy5nYW1lTWFjaGluZVNlcnZpY2UpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gY29uc3Qgc3QgPSB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09ICdPYmplY3QnIFxuXHRcdFx0XHQvLyAmJiB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZVsncGxheWluZyddXG5cdFx0XHRcdC8vICYmIHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlWydwbGF5aW5nJ10uY29uc3RydWN0b3IubmFtZSA9PSAnT2JqZWN0J1xuXHRcdFx0XHQvLyAmJiB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZVsncGxheWluZyddWydwbGF5J11cblx0XHRcdFx0Ly8gJiYgdGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RhdGUudmFsdWVbJ3BsYXlpbmcnXVsncGxheSddID09ICdhbnN3ZXInXG5cdFx0XHRcdC8vIGlmIChzdCkge1xuXHRcdFx0XHQvLyB9XG5cdFx0XHRcdGNvbnN0IHAgPSBKU09OLnBhcnNlKHJlc3VsdCk7XG5cdFx0XHRcdGlmIChwLnggPT0gLTEgfHwgcC55ID09IC0xKSB7XG5cdFx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcyA9IG51bGw7XG5cdFx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLmRpcnR5ID0gZmFsc2U7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbiA9IHtcblx0XHRcdFx0XHRwb3M6e1xuXHRcdFx0XHRcdFx0eDogdGhpcy5ib3VuZGVkUG9zdGlvbihwLngpLFxuXHRcdFx0XHRcdFx0eTogdGhpcy5ib3VuZGVkUG9zdGlvbihwLnkpXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRkaXJ0eTogdHJ1ZVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuZGVidWdQb2ludGVyKHRoaXMuYm91bmRlZFBvc3Rpb24ocC54KSwgdGhpcy5ib3VuZGVkUG9zdGlvbihwLnkpKVxuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLmlzRGVidWcgPSBjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2lzRGVidWcnKSA9PSBcInRydWVcIiA/IHRydWUgOiBmYWxzZTtcblx0fSxcblxuXHQvLyDpmZDlrprlnZDmoIflgLxcblx0Ym91bmRlZFBvc3Rpb24odmFsdWUpIHtcblx0XHRpZih2YWx1ZTwwKSB7XG5cdFx0XHRyZXR1cm4gMFxuXHRcdH1cblxuXHRcdGlmKHZhbHVlPjEpIHtcblx0XHRcdHJldHVybiAxXG5cdFx0fVxuXHRcdFxuXHRcdHJldHVybiB2YWx1ZVxuXHR9LFxuXG5cdGNoZWNrSW5SZWdpb24ocikge1xuXHRcdGlmICghdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uICYmICF0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0Y29uc3QgcCA9IHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbiA/IHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgfHwge3g6MCwgeTowfSA6IHt4OjAsIHk6MH07XG5cblx0XHRjb25zb2xlLmxvZygnfnA6ICcsIHApO1xuXHRcdGNvbnNvbGUubG9nKCd+cjogJywgcik7XG5cblx0XHRjb25zdCB3ID0gcC54ID4gci54ICYmIHAueCA8IChyLnggKyByLndpZHRoKTtcblx0XHRjb25zdCBoID0gcC55ID4gci55ICYmIHAueSA8IChyLnkgKyByLmhlaWdodCk7XG5cdFx0cmV0dXJuIHcgJiYgaDtcblxuXHR9LFxuXG5cdGdldERhdGEoZnVuYykge1xuXHRcdGlmICh3aW5kb3cgJiYgd2luZG93LmNvdXJzZXdhcmUpIHtcblx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLmdldERhdGEoZnVuYywgJ3NjZW5lJyk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWlkZGxlTGF5ZXIgPSBjYy5maW5kKCdtaWRkbGVMYXllcicpO1xuXHRcdGlmIChtaWRkbGVMYXllcikge1xuXHRcdFx0Y29uc3QgbWlkZGxlTGF5ZXJDb21wb25lbnQgPSBtaWRkbGVMYXllci5nZXRDb21wb25lbnQoJ21pZGRsZUxheWVyJyk7XG5cdFx0XHRtaWRkbGVMYXllckNvbXBvbmVudC5nZXREYXRhKGZ1bmMpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGZ1bmModGhpcy5nZXREZWZhdWx0RGF0YSgpKTtcblx0fSxcblxuXHRnZXREZWZhdWx0RGF0YSgpIHtcblx0XHQvLyByZXR1cm4ge1wiYmVnaW5fYXVkaW9cIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YmU0NmM5YWRiNTQwZWQ4YTYwNzYzZjFlNjU3Y2NiNy5tcDNcIixcImJlZ2luX3NlcF90aW1lXCI6NjYsXCJndWlkZV9hdWRpb1wiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzk1MjNjOGVkNDVmYWVlNjg2MzYzZGQxNTdiMGQ3NDI2Lm1wM1wiLFwicGxheWluZ19hdWRpb1wiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Q2YTk1MzA1MmE2ZjgwNTQ5NzMwY2I0MzA3YzU1NzE5Lm1wM1wiLFwicmlnaHRfYXVkaW9cIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80Mzc5MWZjNDE4ZTY2NmRmNWU5ZWMxYjdiZjkzNjQwOS5tcDNcIixcIndyb25nX2F1ZGlvXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vN2RkODVmMDI1YTEzMmMyZWVmOGRhZWUzOGQ5MDAyODcubXAzXCIsXCJ3cm9uZ19hdWRpbzFcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9hNzZhZmIwNmFmMDc5OWJmNTM4ZTM4ZjlmODBhMjI2MS5tcDNcIixcIndyb25nX2F1ZGlvMlwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2RhZWU4OGI2ZjJlYWRkNzhiNjA0MzZlZWRmZmNhZTA4Lm1wM1wiLFwiZW5kX2F1ZGlvXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOWMxZTg3YjNjMTg0YjA2ZTE0ZTQ0YmIwNThiOTgwNGUubXAzXCIsXCJiZ0l0ZW1cIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xNmI2ZGFjZDhlNmMxY2U2ZGExNmY1MDBhNjZiMzY2Yi5qcGdcIixcInJlY3RcIjp7XCJ4XCI6MzE5LjY4LFwieVwiOjAsXCJ3aWR0aFwiOjI1Ny42NCxcImhlaWdodFwiOjM0Mn19LFwiaG90Wm9uZUl0ZW1BcnJcIjpbe1wiaWRcIjpcIjE2NTA1NDQ4MDc4NzdcIixcImluZGV4XCI6MCxcIml0ZW1UeXBlXCI6XCJwaWNcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3Ni42NTIwNzg3NzQ2MTcwMn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzY2YzdjMDg0N2MzM2Y3Zjk1Y2IwMDM1ZmUxNGM0NDA1Lmpzb25cIixcIm5hbWVcIjpcIm1vbmtleV9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOThhODI3MmNkMmQ5NzA0N2IwOTBmZjEwZTk0OGI5NzguanNvblwiLFwibmFtZVwiOlwibW9ua2V5X3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2MzNWNlZDQwOGFkNjhhNTJjNGVjNTM3NTM3M2QzNjI3LnBuZ1wiLFwibmFtZVwiOlwibW9ua2V5X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjEyOC44MyxcInlcIjoxNzEsXCJ3aWR0aFwiOjAsXCJoZWlnaHRcIjowfX0se1wiaWRcIjpcIjE2NTA1NDYwNzkwMDBcIixcImluZGV4XCI6MSxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y5ZWRjODRhNjY5Njg4YzVhYmRkZDU1ZTJhYWIwMTVkLm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjIxLjNcIixcInBvc1hcIjo2OTIuNDEyNzUwMDE5MzU5OCxcInBvc1lcIjoyMTguMTQ2OTU5NTkxODU1NTYsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2UzYzY3YTI1ZGQzYmIzNGZlMTEzZTEyNmU2ZTFjYzgxLmpzb25cIixcIm5hbWVcIjpcIm94X3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84MWQ0ODdiZjMxZDNhNGQwZjI1ZjQ0YzE4NGJhOTIzMy5qc29uXCIsXCJuYW1lXCI6XCJveF90ZXguanNvblwifSxcInRleFBuZ0RhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lMTk5MzkyYjUyYTczNWY2ZTM3YTY4MTVlYzNiYjEwZS5wbmdcIixcIm5hbWVcIjpcIm94X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjE1OS4zNCxcInlcIjoxMzguNjYsXCJ3aWR0aFwiOjM4LjgzLFwiaGVpZ2h0XCI6MzguODN9fSx7XCJpZFwiOlwiMTY1MDU0NjIzMjE4OVwiLFwiaW5kZXhcIjoyLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzBhM2VhOTNjNjJmZjQwODc4NTllZDU4NzAyMGM1M2I1Lmpzb25cIixcIm5hbWVcIjpcImNhcl9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNjAwMGU0ZmJiYjk1ZjU0NWFmYTU0NTZjNjRkOGM3ZDEuanNvblwiLFwibmFtZVwiOlwiY2FyX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzc1ZTk5NzJjMTVkMmE2N2RlZWRmNjBkNDQ4ZmQ0ZTY5LnBuZ1wiLFwibmFtZVwiOlwiY2FyX3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ2MzIxMTI3XCIsXCJpbmRleFwiOjMsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjFcIixcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDRjMWUxYWJjZjNkOGY1NDE1NzQ3ZmQyNTk5YjhhOGMuanNvblwiLFwibmFtZVwiOlwiQ2hhaXJfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzFkNzI1NGViN2ZhMzAwOGU4MTc4MzQ3YmI5NDRjZGNiLmpzb25cIixcIm5hbWVcIjpcIkNoYWlyX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzQ4ZTg1ZThmZjM4NGVlZDcyZGZlODY1ZmM5ODFlMThjLnBuZ1wiLFwibmFtZVwiOlwiQ2hhaXJfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDYzMzUyNDBcIixcImluZGV4XCI6NCxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzYxODJkNDZiYWQwOWZjY2I4OTM0MjE3ZDMzNTU3MjA0Lm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjUzXCIsXCJwb3NYXCI6NDUyLjUsXCJwb3NZXCI6MTI5LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iNDYyZDgwYzIxYWE3NTk5NWRkOTlmMGY0M2NjZjFlNi5qc29uXCIsXCJuYW1lXCI6XCJxdWlsdF9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vODY2YzllMjk4Nzg3MDk0N2ZjNjNiY2UxMDhlZjE1N2EuanNvblwiLFwibmFtZVwiOlwicXVpbHRfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDk1MmMzN2Y0MGMzY2YwN2UwMjRlZGZkNDQxNjQyM2UucG5nXCIsXCJuYW1lXCI6XCJxdWlsdF90ZXgucG5nXCJ9LFwicmVjdFwiOntcInhcIjo3MS45OSxcInlcIjoxMDAuNzUsXCJ3aWR0aFwiOjUwLjgzLFwiaGVpZ2h0XCI6MzYuOTd9fSx7XCJpZFwiOlwiMTY1MDU0NjY0NDMzM1wiLFwiaW5kZXhcIjo1LFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzZiOGExYTdiMGZkMjM2ODZlYTYwNDY1Mjc5Y2Q0ZGEwLmpzb25cIixcIm5hbWVcIjpcInJvYm90X3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zMWE3NGVkOTVmZTQ4YWRhYjAwNzAyNjc1ODExYzNhOC5qc29uXCIsXCJuYW1lXCI6XCJyb2JvdF90ZXguanNvblwifSxcInRleFBuZ0RhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lNTcwNTI1MzdkODkzNTZiMGE3OWQ4Y2I3Nzk4MDIxOS5wbmdcIixcIm5hbWVcIjpcInJvYm90X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ2NjU4Njk3XCIsXCJpbmRleFwiOjYsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjFcIixcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYmYzNjE2MDYwNDYwNDM5ZWViM2ZkNTIyNzM3MGUxNWEuanNvblwiLFwibmFtZVwiOlwicGFuZGFfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzJkYWZlYjI1Yzk3M2M5MTAwMzVmZjdlZDFhNmE2MzM0Lmpzb25cIixcIm5hbWVcIjpcInBhbmRhX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzc1ZDkwYjA1MzQ1ZmE0NzAyODVhYzQ4OGNiMjA1Y2ZkLnBuZ1wiLFwibmFtZVwiOlwicGFuZGFfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDY2NzI0NDhcIixcImluZGV4XCI6NyxcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjowLjcwMDc4MTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjowLjcwMDc4MTI1LFwiZHJhZ0RvdFwiOntcInhcIjo0NDguNSxcInlcIjoxNzAuNTQ5ODQ1ODM3NjE1NjZ9LFwiZ0lkeFwiOlwiMVwiLFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81ZmVmZjgxMWIwMTE3ZGQ4ZTY3OTczMDcyZTYwZDMxMC5qc29uXCIsXCJuYW1lXCI6XCJxdWVlbl8xX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iYjU4NTZiOTJiMDljNWZlN2ExZGEwMGJiNjgxMzRjYS5qc29uXCIsXCJuYW1lXCI6XCJxdWVlbl8xX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y0ZTVhMTM4YjA4NmVmM2RjZmE1NzQzMjU0M2I2NmU5LnBuZ1wiLFwibmFtZVwiOlwicXVlZW5fMV90ZXgucG5nXCJ9LFwiYW5pbVR5cGVcIjpcImRyYWdvbkJvbmVcIixcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDY2ODcwNjlcIixcImluZGV4XCI6OCxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzMwMTg1OGRmN2IwN2U2NjE0MjZhMDA2YWNiMjYwNTljLm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjQyLjVcIixcInBvc1hcIjo1MTIuMzg4MzUyNDYyOTgzNCxcInBvc1lcIjoyNTkuODM2MTcxMjU4NDksXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2YzYThlZmNkMTg1MGVlOGE2Y2VlODlhMThlODZkYzRhLmpzb25cIixcIm5hbWVcIjpcIm1pbGtfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzczYjA1ZjE5ZDQxOWJkM2FjMTdjMmI5MmRhYjg4NDIzLmpzb25cIixcIm5hbWVcIjpcIm1pbGtfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZTM4Mzc1ZGE0NmY4NWEyMzIwMmQ1Y2JjODEyZDYyZTQucG5nXCIsXCJuYW1lXCI6XCJtaWxrX3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM3LjcyLFwieVwiOjE2OC4xLFwid2lkdGhcIjoyMS4xNyxcImhlaWdodFwiOjQwLjM0fX0se1wiaWRcIjpcIjE2NTA1NDcwNjA0OTBcIixcImluZGV4XCI6OSxcImF1ZGlvX3VybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzA1ZTViMjlhZWZmYTRlZjk0YmNjNWIyMzE2N2FlYzkwLm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIwXCIsXCJsYWJlbFRleHRcIjpcIjQ3LjdcIixcInBvc1hcIjo0ODMuMjIxMzU3MzQwMDY3MzYsXCJwb3NZXCI6MjQ1LjM4MDM5NDA3MDc2NTA1LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85OWE2ZTZkOTM2MWVjYTdlNTFlZDM0Y2EyZTBmZDAxNy5qc29uXCIsXCJuYW1lXCI6XCJiaXJkX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82YTM3OWRkYmU2ZGYxODA2MzY4YzQzYzhlZTgyMzMyZC5qc29uXCIsXCJuYW1lXCI6XCJiaXJkX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2NmMDRjNjMxMDRkODk1MTE5MDI1Nzg5NDQwNjFmOTgwLnBuZ1wiLFwibmFtZVwiOlwiYmlyZF90ZXgucG5nXCJ9LFwicmVjdFwiOntcInhcIjoxNy45MSxcInlcIjoxNDAuODMsXCJ3aWR0aFwiOjE4LjUyLFwiaGVpZ2h0XCI6NzMuOTV9fSx7XCJpZFwiOlwiMTY1MDU0NzM3Mzg2OVwiLFwiaW5kZXhcIjoxMCxcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjowLjcwMDc4MTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjowLjcwMDc4MTI1LFwiZHJhZ0RvdFwiOntcInhcIjo0NDguNSxcInlcIjoxNzAuNTQ5ODQ1ODM3NjE1NjZ9LFwiZ0lkeFwiOlwiMVwiLFwibGFiZWxUZXh0XCI6XCI2MFwiLFwicG9zWFwiOjQyMC41LFwicG9zWVwiOjI5NSxcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vN2ViYzI4ZjNmMzM5YjE2Y2E0OGQyMGYyYTNlYjQ0YzEuanNvblwiLFwibmFtZVwiOlwiYWxsaWdhdG9yX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iMDRlODIwNmZkMjE3YmQyMmRjZGFjMTAwODM5MzMxNy5qc29uXCIsXCJuYW1lXCI6XCJhbGxpZ2F0b3JfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYjM5OTBkOTQ2MTJiZDNkNmUyNWNmMjAwZjg1ZTQzMzQucG5nXCIsXCJuYW1lXCI6XCJhbGxpZ2F0b3JfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MTYuMDYsXCJ5XCI6MjI5LjI0LFwid2lkdGhcIjoxMDMuNTIsXCJoZWlnaHRcIjo4Ni44OX19LHtcImlkXCI6XCIxNjUwNTQ3NDgyMzk4XCIsXCJpbmRleFwiOjExLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2ExOWYyZWQ3YzI5N2M3MGM2MzllNTRlOTY5ZDY0NTkzLmpzb25cIixcIm5hbWVcIjpcInJhYmJpdF9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNGI0ZjgxODljZjc5ZmFkZDdlNjUzM2FkODRkYjk2YmUuanNvblwiLFwibmFtZVwiOlwicmFiYml0X3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzhmOTUzYzg2MWVhYzk0ZTRlMjJhOGU0ZWMzZWI1NmI1LnBuZ1wiLFwibmFtZVwiOlwicmFiYml0X3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ3NDk2MjMyXCIsXCJpbmRleFwiOjEyLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjAuNzAwNzgxMjUsXCJpbWdTY2FsZVwiOjEsXCJpbWdTaXplV1wiOjAsXCJpbWdTaXplSFwiOjAsXCJtYXBTY2FsZVwiOjAuNzAwNzgxMjUsXCJkcmFnRG90XCI6e1wieFwiOjQ0OC41LFwieVwiOjE3MC41NDk4NDU4Mzc2MTU2Nn0sXCJnSWR4XCI6XCIxXCIsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzg5ZTBmYzYwODVjMjk0ODY2MTQyODAzYjRmZjI2N2JhLmpzb25cIixcIm5hbWVcIjpcIktpbmdfc2tlLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Q2Y2ZkMmQ5Y2QyY2Q5YWZmMDlhYjdmMDNlMjg3NDIxLmpzb25cIixcIm5hbWVcIjpcIktpbmdfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOGMwMmMzNTYxYTJlZWEwNDIzY2IxMTAyMjAwZTc2ZjkucG5nXCIsXCJuYW1lXCI6XCJLaW5nX3RleC5wbmdcIn0sXCJyZWN0XCI6e1wieFwiOjM2LjQsXCJ5XCI6NzguNTYsXCJ3aWR0aFwiOjE4NC44NyxcImhlaWdodFwiOjE4NC44N319LHtcImlkXCI6XCIxNjUwNTQ3NTEwNjQ4XCIsXCJpbmRleFwiOjEzLFwiYXVkaW9fdXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNzE3ZWU5NzEzYjE4ZDMyZDM4ZWUwODljMGFiYzg1ZWEubXAzXCIsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjBcIixcImxhYmVsVGV4dFwiOlwiMTAuMlwiLFwicG9zWFwiOjY0MS42NjgwMTM0OTUxOTQ0LFwicG9zWVwiOjI4OC45MzY3MjcwMjU0MTI1NSxcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2I3MTEzZWJkZWRjYWU1NGJlNmQwYjk2MzM4NzViODguanNvblwiLFwibmFtZVwiOlwibmV0X3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9mYzgxMDc2MmYxZjIwMjU1ODVlNzIyZTQzZTk0MTM3Yi5qc29uXCIsXCJuYW1lXCI6XCJuZXRfdGV4Lmpzb25cIn0sXCJ0ZXhQbmdEYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNWM5MDgyMGRhNGY1NTkyODBmZWU0NTc5ZThkYjJkYmMucG5nXCIsXCJuYW1lXCI6XCJuZXRfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MTIzLjAzLFwieVwiOjE4My4wMixcIndpZHRoXCI6MzcuOSxcImhlaWdodFwiOjUyLjY4fX0se1wiaWRcIjpcIjE2NTA1NDc1NTUwMThcIixcImluZGV4XCI6MTQsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MC43MDA3ODEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MC43MDA3ODEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6NDQ4LjUsXCJ5XCI6MTcwLjU0OTg0NTgzNzYxNTY2fSxcImdJZHhcIjpcIjFcIixcInNrZUpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMGE1YzhkZjVhMjNhY2E3YTc1NDBiODczNDBjNzYwOGYuanNvblwiLFwibmFtZVwiOlwib3N0cmljaF9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwczovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjQ3ODU3M2M5MWQxYTgzZmEwMzhlN2Y2YTlkYjhhODUuanNvblwiLFwibmFtZVwiOlwib3N0cmljaF90ZXguanNvblwifSxcInRleFBuZ0RhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80NjE5YWNlNjdlNTc3MGUxZmQ3ZmMzZmY3NmU3MjYzZS5wbmdcIixcIm5hbWVcIjpcIm9zdHJpY2hfdGV4LnBuZ1wifSxcInJlY3RcIjp7XCJ4XCI6MzYuNCxcInlcIjo3OC41NixcIndpZHRoXCI6MTg0Ljg3LFwiaGVpZ2h0XCI6MTg0Ljg3fX0se1wiaWRcIjpcIjE2NTA1NDc1NzMzMDVcIixcImluZGV4XCI6MTUsXCJhdWRpb191cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iN2JjMTYxYzNhM2VlMTQzYTUzMDU4NjkxYWJmNGZhOS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjowLjcwMDc4MTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjowLjcwMDc4MTI1LFwiZHJhZ0RvdFwiOntcInhcIjo0NDguNSxcInlcIjoxNzAuNTQ5ODQ1ODM3NjE1NjZ9LFwiZ0lkeFwiOlwiMFwiLFwibGFiZWxUZXh0XCI6XCIxNS45XCIsXCJwb3NYXCI6NjcwLjgxMTk4Mzk3NzI3NTQsXCJwb3NZXCI6MTM3Ljg3OTQwODcwMjAxNjk3LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85MWU4Y2EwM2QxZGY4OWU0ZWMyNDA0NDIxZDRjNjkyZi5qc29uXCIsXCJuYW1lXCI6XCJkdXJhem5vX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zMmQyNTliMDE5NDM3MDYyNWY4ZmU5NGIxZGRjMGE4NS5qc29uXCIsXCJuYW1lXCI6XCJkdXJhem5vX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzhlZWY1NmIyMGUyMjFhMzZmY2UxZDY3MjE5OTg1OWZmLnBuZ1wiLFwibmFtZVwiOlwiZHVyYXpub190ZXgucG5nXCJ9LFwicmVjdFwiOntcInhcIjoxNDYuOTIsXCJ5XCI6ODMuNzMsXCJ3aWR0aFwiOjMyLjM0LFwiaGVpZ2h0XCI6MzIuMzR9fV19XG5cdFx0Ly8gcmV0dXJuICB7XCJiZWdpbl9hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcImJlZ2luX3NlcF90aW1lXCI6MSxcImd1aWRlX2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwicGxheWluZ19hdWRpb1wiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZDMwN2EwMjY2M2UxY2Q2NjdiN2M5NTEzNDBlYzk4Yi5tcDNcIixcInJpZ2h0X2F1ZGlvXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMzA3YTAyNjYzZTFjZDY2N2I3Yzk1MTM0MGVjOThiLm1wM1wiLFwid3JvbmdfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJ3cm9uZ19hdWRpbzFcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJ3cm9uZ19hdWRpbzJcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJlbmRfYXVkaW9cIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vM2QzMDdhMDI2NjNlMWNkNjY3YjdjOTUxMzQwZWM5OGIubXAzXCIsXCJiZ0l0ZW1cIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vODRlYzZlZGMyMGJjZWFhYTlkYmU4MjQwOTJiNjg2MGQucG5nXCIsXCJyZWN0XCI6e1wieFwiOjczNi45NSxcInlcIjowLFwid2lkdGhcIjo1OTkuMDksXCJoZWlnaHRcIjo3NzV9fSxcImhvdFpvbmVJdGVtQXJyXCI6W3tcImlkXCI6XCIxNjU5MzMzNjQ1NTczXCIsXCJpbmRleFwiOjAsXCJhdWRpb191cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vNWExYTI2NzA4NDViZmU3NjY2MmU4NmQ5YTNhNjlmODEubXAzXCIsXCJpdGVtVHlwZVwiOlwicmVjdFwiLFwiZm9udFNjYWxlXCI6MS42MTk1MzEyNSxcImltZ1NjYWxlXCI6MSxcImltZ1NpemVXXCI6MCxcImltZ1NpemVIXCI6MCxcIm1hcFNjYWxlXCI6MS42MTk1MzEyNSxcImRyYWdEb3RcIjp7XCJ4XCI6MTAzNi41LFwieVwiOjM4Ny41fSxcImdJZHhcIjpcIjFcIixcImxhYmVsVGV4dFwiOlwiMVwiLFwicG9zWFwiOjg4Ny41LFwicG9zWVwiOjE2NS41LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vMTMzYTFmNjA3MTllZDI2MjQ3ZTM1ZGMwMjJkODI4NjIuanNvblwiLFwibmFtZVwiOlwic3BpbmVib3ktcHJvLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lMDk0NWI4MjY1ZWEzYjgwNTNhZmI4MTRjNmI4NDlkMy5hdGxhc1wiLFwibmFtZVwiOlwic3BpbmVib3ktcHJvLmF0bGFzXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81MTc1NTNmNTAyMjQ5MTUxNDhmOWVmYzViNzU1Njc5OC5wbmdcIixcIm5hbWVcIjpcInNwaW5lYm95LXByby5wbmdcIn0sXCJhbmltVHlwZVwiOlwic3BpbmVcIixcInJlY3RcIjp7XCJ4XCI6NDguMDUsXCJ5XCI6NjUuNSxcIndpZHRoXCI6MjA1LFwiaGVpZ2h0XCI6MjAwfX0se1wiaWRcIjpcIjE2NTkzMzQwOTg5MzBcIixcImluZGV4XCI6MSxcImF1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xNmViMDZhNmJlYjllNGZhNzdjOWI1ZDJkNjQzYWIyOS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjoxLjYxOTUzMTI1LFwiaW1nU2NhbGVcIjoxLFwiaW1nU2l6ZVdcIjowLFwiaW1nU2l6ZUhcIjowLFwibWFwU2NhbGVcIjoxLjYxOTUzMTI1LFwiZHJhZ0RvdFwiOntcInhcIjoxMDM2LjUsXCJ5XCI6Mzg3LjV9LFwiZ0lkeFwiOlwiMFwiLFwibGFiZWxUZXh0XCI6XCIxXCIsXCJwb3NYXCI6MTIxMi41LFwicG9zWVwiOjY0My41LFwic2tlSnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vNjc5ZmVkMjZkYWE0NjQ4MTlkNTUzZGU2MzMxYjM1NTIuanNvblwiLFwibmFtZVwiOlwiYWxpZW4tcHJvLmpzb25cIn0sXCJ0ZXhKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82NWQ4MjE0YzZiNWM1ZDA0OTZlMTdhZGIwNDA4Mjc2YS5hdGxhc1wiLFwibmFtZVwiOlwiYWxpZW4tcHJvLmF0bGFzXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9hMzE5YjM3Mjg5OTIzOTMyNWI5MGJiNGVjMDdiNDk3MC5wbmdcIixcIm5hbWVcIjpcImFsaWVuLXByby5wbmdcIn0sXCJhbmltVHlwZVwiOlwic3BpbmVcIixcInJlY3RcIjp7XCJ4XCI6Mzc1LjU2LFwieVwiOjU0My41LFwid2lkdGhcIjoyMDAsXCJoZWlnaHRcIjoyMDB9fV19XG5cdFx0cmV0dXJuIGRlZmF1bHREYXRhO1xuXHR9LFxuXG5cdHByZWxvYWRJdGVtKCkge1xuXHRcdHRoaXMuYWRkUHJlbG9hZEltYWdlKCk7XG5cdFx0dGhpcy5hZGRQcmVsb2FkQXVkaW8oKTtcblx0XHR0aGlzLmFkZFByZWxvYWRBbmltYSgpO1xuXHRcdHRoaXMucHJlbG9hZCgpO1xuXHR9LFxuXG5cblx0YWRkUHJlbG9hZEltYWdlKCkge1xuXG5cdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5iZ0l0ZW0udXJsfSk7XG5cblx0XHRmb3IgKGNvbnN0IHEgb2YgdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cdFx0XHRpZiAocS5nSWR4ID09JzAnKSB7XG5cdFx0XHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiBxLnRleFBuZ0RhdGEudXJsfSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChxLmdJZHggPT0nMScpIHtcblx0XHRcdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHEudGV4UG5nRGF0YS51cmwgfSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAocS5nSWR4ID09JzInKSB7XG5cdFx0XHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiBxLnBpY191cmx9KTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHByZXBhcmVBdWRpb0NsaXAodXJsLCBrZXkpIHtcblx0XHRpZiAodXJsKSB7XG5cdFx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuXHRcdFx0XHRpZiAoYXVkaW9DbGlwKSB7XG5cdFx0XHRcdFx0dGhpc1trZXldID0gYXVkaW9DbGlwO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cdGFkZFByZWxvYWRBdWRpbygpIHtcblxuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuYmVnaW5fYXVkaW8gfSk7XG5cdFx0Ly8gdGhpcy5wcmVwYXJlQXVkaW9DbGlwKHRoaXMuZGF0YS5iZWdpbl9hdWRpbzEsICdiZWdpbl9hdWRpbzEnKVxuXHRcdC8vIHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuYmVnaW5fYXVkaW8yIH0pO1xuXHRcdC8vIHRoaXMucHJlcGFyZUF1ZGlvQ2xpcCh0aGlzLmRhdGEuYmVnaW5fYXVkaW8yLCAnYmVnaW5fYXVkaW8yJylcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLmd1aWRlX2F1ZGlvIH0pO1xuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEucGxheWluZ19hdWRpbyB9KTtcblx0XHRpZiAodGhpcy5kYXRhLndyb25nX2F1ZGlvKSB7XG5cdFx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLndyb25nX2F1ZGlvIH0pO1xuXHRcdFx0dGhpcy53cm9uZ0F1ZGlvID0gdGhpcy5kYXRhLndyb25nX2F1ZGlvXG5cdFx0fVxuXHRcdGlmICh0aGlzLmRhdGEucmlnaHRfYXVkaW8pIHtcblx0XHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEucmlnaHRfYXVkaW8gfSk7XG5cdFx0XHR0aGlzLnJpZ2h0QXVkaW8gPSB0aGlzLmRhdGEucmlnaHRfYXVkaW9cblx0XHR9XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS53cm9uZ19hdWRpbzEgfSk7XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS53cm9uZ19hdWRpbzIgfSk7XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5lbmRfYXVkaW8gfSk7XG5cblxuXHRcdGZvciAoY29uc3QgcSBvZiB0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblx0XHRcdGlmIChxLmdJZHggPT0nMCcpIHtcblx0XHRcdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHEuYXVkaW9fdXJsIH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0ZGVidWdQb2ludGVyKCkge1xuXHRcdGNvbnN0IGJveERlYnVnZ2VyID0gY2MuZmluZCgnQ2FudmFzL2JveC1kZWJ1Z2dlcicpO1xuXHRcdGlmICghdGhpcy5pc0RlYnVnKSB7XG5cdFx0XHRib3hEZWJ1Z2dlci5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLlBPSU5URVJfTk9ERSkge1xuXHRcdFx0dGhpcy5QT0lOVEVSX05PREUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0dGhpcy5QT0lOVEVSX05PREUucGFyZW50ID0gYm94RGVidWdnZXI7XG5cdFx0XHR0aGlzLlBPSU5URVJfTk9ERS5uYW1lID0gJ1BPSU5URVJfTk9ERSdcblx0XHRcdHRoaXMuUE9JTlRFUl9OT0RFLmFkZENvbXBvbmVudChjYy5HcmFwaGljcyk7XG5cdFx0fVxuXHRcdGNvbnN0IGdyYXAgPSB0aGlzLlBPSU5URVJfTk9ERS5nZXRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdGdyYXAuY2xlYXIoKTtcblx0XHRjb25zdCBncm91bmQgPSBjYy5maW5kKCdDYW52YXMvZnJhbWUtYm9yZGVyL2dyb3VuZCcpO1xuXHRcdGNvbnN0IHt3aWR0aDogYmFzZVcsIGhlaWdodDogYmFzZUh9ID0gZ3JvdW5kO1xuXHRcdGNvbnN0IHt4OiBweCwgeTogcHl9ID0gdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcztcblx0XHRsZXQgeCA9IGJhc2VXICogcHggLSBiYXNlVyAvIDI7XG5cdFx0bGV0IHkgPSBiYXNlSCAtIChiYXNlSCAqIHB5KSAtIGJhc2VIIC8gMiAtIDE2O1xuXHRcdGNvbnN0IHBuID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcblx0XHRncmFwLmZpbGxDb2xvcj1jYy5jb2xvcigyNTUsIDAsIDApO1xuXHRcdGdyYXAuY2lyY2xlKHgsIHksIDMyKTtcblx0XHRncmFwLmZpbGwoKTtcblx0XHRncmFwLnN0cm9rZSgpO1xuXHR9LFxuXHRkZWJ1Z0dyYXBoaWNzKCkge1xuXHRcdGNvbnN0IGJveERlYnVnZ2VyID0gY2MuZmluZCgnQ2FudmFzL2JveC1kZWJ1Z2dlcicpO1xuXHRcdGlmICghdGhpcy5pc0RlYnVnKSB7XG5cdFx0XHRib3hEZWJ1Z2dlci5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Ym94RGVidWdnZXIuYWN0aXZlID0gdHJ1ZTtcblx0XHRjb25zb2xlLmxvZygnc2hvdyBkZWJ1ZyBncmFwaGljcycpO1xuXHRcdGNvbnN0IGdyb3VuZCA9IGNjLmZpbmQoJ0NhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kJyk7XG5cdFx0Y29uc3QgY2FudmFzID0gY2MuZmluZCgnQ2FudmFzJyk7XG5cdFx0Y29uc3Qge3dpZHRoOiBiYXNlVywgaGVpZ2h0OiBiYXNlSH0gPSBncm91bmQ7XG5cdFx0Y29uc3Qge3dpZHRoOiBiZ1csIGhlaWdodDogYmdIfSA9IHRoaXMuZGF0YS5iZ0l0ZW0ucmVjdFxuXHRcdGNvbnN0IHNjYWxlWCA9IGJnVyAvIGJhc2VXO1xuXHRcdGNvbnN0IHNjYWxlWSA9IGJnSCAvIGJhc2VIO1xuXHRcdGxldCBhZGRlZCAgPWZhbHNlXG5cdFx0dGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyLmZvckVhY2goYXJlYSA9PiB7XG5cdFx0XHRcblx0XHRcdGlmIChhZGRlZCkge1xuXHRcdFx0XHQvLyByZXR1cm5cblx0XHRcdH1cblx0XHRcdGlmIChhcmVhLmdJZHggIT0gJzAnKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGFkZGVkID0gdHJ1ZTtcblx0XHRcdGNvbnN0IGRuID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdGNvbnN0IGxibE5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0bGJsTm9kZS5wYXJlbnQgPSBkblxuXHRcdFx0Y29uc3QgbGJsID0gbGJsTm9kZS5hZGRDb21wb25lbnQoY2MuTGFiZWwpO1xuXHRcdFx0bGJsTm9kZS5jb2xvciA9IGNjLmNvbG9yKDAsMCwwKVxuXHRcdFx0bGJsLnN0cmluZyA9IGFyZWEuc2tlSnNvbkRhdGEubmFtZS5zdWJzdHJpbmcoMCwgYXJlYS5za2VKc29uRGF0YS5uYW1lLmxlbmd0aCAtIDkpXG5cdFx0XHRkbi5uYW1lID0gbGJsLnN0cmluZztcblx0XHRcdGRuLnBhcmVudCA9IGJveERlYnVnZ2VyO1xuXHRcdFx0ZG4ud2lkdGggPSBiYXNlVztcblx0XHRcdGRuLmhlaWdodCA9IGJhc2VIO1xuXHRcdFx0XG5cdFx0XHRjb25zdCBncmFwID0gZG4uYWRkQ29tcG9uZW50KGNjLkdyYXBoaWNzKTtcblx0XHRcdGNvbnN0IHIgPSBSYW5kb21JbnQoMSwyNTUpXG5cdFx0XHRjb25zdCBnID0gUmFuZG9tSW50KDEsMjU1KVxuXHRcdFx0Y29uc3QgYiA9IFJhbmRvbUludCgxLDI1NSlcblx0XHRcdGdyYXAuZmlsbENvbG9yPWNjLmNvbG9yKHIsIGcsIGIsIDEyNyk7XG5cdFx0XHRjb25zdCB7eDogcngsIHk6IHJ5LCB3aWR0aDogcncsIGhlaWdodDogcmh9ID0gIGFyZWEucmVjdDtcblx0XHRcdGxldCB3ID0gKHJ3IC8gYmdXKSAqIGJhc2VXO1xuXHRcdFx0bGV0IGggPSAocmggLyBiZ0gpICogYmFzZUg7XG5cdFx0XHRsZXQgeCA9IChyeCAvIGJnVykgKiBiYXNlVyAtIGJhc2VXIC8gMjtcblx0XHRcdGxldCB5ID0gYmFzZUggLSAoKHJ5IC8gYmdIKSAqIGJhc2VIKSAtIGggLSBiYXNlSCAvIDI7XG5cdFx0XHQvLyB3ICo9IHNjYWxlWFxuXHRcdFx0Ly8gaCAqPSBzY2FsZVlcblx0XHRcdC8vIHggKj0gc2NhbGVYXG5cdFx0XHQvLyB5ICo9IHNjYWxlWVxuICAgICAgICAgICAgLy8gY29uc3QgcCA9IGJveERlYnVnZ2VyLmNvbnZlcnRUb05vZGVTcGFjZUFSKGNjLnYyKHgseSkpO1xuXHRcdFx0Ly8geCA9IHAueDtcblx0XHRcdC8vIHkgPSBwLnk7XG5cdFx0XHRsYmxOb2RlLnggPSB4O1xuXHRcdFx0bGJsTm9kZS55ID0geSArIGg7XG5cdFx0XHQvLyBkbi5zY2FsZVggPSBzY2FsZVg7XG5cdFx0XHQvLyBkbi5zY2FsZVkgPSBzY2FsZVk7XG5cdFx0XHQvLyBkbi5zY2FsZSA9IGFyZWEubWFwU2NhbGU7IC8vIG1pblNjYWxlOyAvLyB0aGlzLl9tYXBTY2FsZU1heCAqIGFyZWEubWFwU2NhbGU7IC8vIDtcblx0XHRcdGNvbnNvbGUubG9nKCdbZGVidWddJywgYXJlYS5za2VKc29uRGF0YS5uYW1lLCB4LCB5LCB3LCBoKTtcblx0XHRcdGdyYXAuZmlsbFJlY3QoeCwgeSwgdywgaCk7XG5cdFx0XHRncmFwLnN0cm9rZSgpO1xuXHRcdFx0XG5cdFx0fSk7XG5cblx0fSxcblx0YWRkUHJlbG9hZEFuaW1hKCkge1xuXG5cdH0sXG5cblx0cHJlbG9hZCgpIHtcblxuXHRcdGNvbnN0IHByZWxvYWRBcnIgPSB0aGlzLl9pbWFnZVJlc0xpc3QuY29uY2F0KHRoaXMuX2F1ZGlvUmVzTGlzdCkuY29uY2F0KHRoaXMuX2FuaW1hUmVzTGlzdCk7XG5cdFx0Ly8gY29uc29sZS5sb2cocHJlbG9hZEFycik7XG5cdFx0Y2MuYXNzZXRNYW5hZ2VyLmxvYWRBbnkocHJlbG9hZEFyciwgbnVsbCwgKGYsIHQsIGl0ZW0pID0+IHtcblx0XHRcdC8vIGNvbnNvbGUubG9nKGYsIHQsIGl0ZW0pXG5cdFx0fSwgKGVyciwgZGF0YSkgPT4ge1xuXHRcdFx0Ly8gY29uc29sZS5sb2coZXJyLCBkYXRhKTtcblx0XHRcdGNvbnN0IGdyb3VuZCA9IGNjLmZpbmQoYENhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kYCk7XG5cdFx0XHRjb25zdCBncm91bmRCZyA9IGNjLmZpbmQoYENhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kL2JnYCk7XG5cdFx0XHRncm91bmRCZy5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdGNvbnN0IGJhc2VSZWN0ID0gdGhpcy5kYXRhLmJnSXRlbS5yZWN0O1xuXHRcdFx0Z2V0U3ByaXRlRnJpbWVCeVVybCh0aGlzLmRhdGEuYmdJdGVtLnVybCwgKHNmKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGdzID0gZ3JvdW5kQmcuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSk7XG5cdFx0XHRcdGdzLnNwcml0ZUZyYW1lID0gc2Y7XG5cdFx0XHRcdGdyb3VuZEJnLmFjdGl2ZSA9IHRydWU7XG5cblx0XHRcdFx0bGV0IGRiQ291bnQgPSAwO1xuXHRcdFx0XHRsZXQgZmluaXNoRGJDb3VudCA9IDBcblx0XHRcdFx0Zm9yKGNvbnN0IGJsb2NrIG9mIHRoaXMuZGF0YS5ob3Rab25lSXRlbUFycikge1xuXHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJyB8fCBibG9jay5nSWR4ID09ICcxJykge1xuXHRcdFx0XHRcdFx0ZGJDb3VudCsrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IoY29uc3QgYmxvY2sgb2YgdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRpZiAoYmxvY2suZ0lkeCA9PSAnMicpIHtcblx0XHRcdFx0XHRcdGNvbnN0IHMxID0gKChncm91bmQud2lkdGggIC8gYmxvY2suaW1nU2l6ZVcpICsgKGdyb3VuZC5oZWlnaHQgIC8gYmxvY2suaW1nU2l6ZUgpKSAvIDJcblx0XHRcdFx0XHRcdGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0XHRcdFx0bm9kZS5wYXJlbnQgPSBncm91bmQ7XG5cdFx0XHRcdFx0XHRjb25zdCBzcHIgPSBub2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuXHRcdFx0XHRcdFx0Z2V0U3ByaXRlRnJpbWVCeVVybChibG9jay5waWNfdXJsLCAoc2YpID0+IHtcblx0XHRcdFx0XHRcdHNwci5zcHJpdGVGcmFtZSA9IHNmO1xuXHRcdFx0XHRcdFx0bm9kZS5zY2FsZSA9IHMxO1xuXHRcdFx0XHRcdFx0fSlcblxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoYmxvY2suZ0lkeCA9PSAnMCcgfHwgYmxvY2suZ0lkeCA9PSAnMScpIHtcblxuXHRcdFx0XHRcdFx0Y29uc3QgbiA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0XHRcdFx0XHQvLyBuLnNjYWxlID0gMC4yNTtcblx0XHRcdFx0XHRcdG4uc2NhbGUgPSBncm91bmQud2lkdGggLyBncm91bmRCZy53aWR0aDtcblxuXHRcdFx0XHRcdFx0bi5wYXJlbnQgPSBncm91bmQ7XG5cdFx0XHRcdFx0XHRuLmFjdGl2ZSA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0XHRpZiAoYmxvY2suYW5pbVR5cGUgPT0gJ3NwaW5lJykge1xuXHRcdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHNrZWxldG9uID0gbi5hZGRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xuXHRcdFx0XHRcdFx0XHRuLmlzU3BpbmUgPSB0cnVlO1xuXG5cdFx0XHRcdFx0XHRcdGxvYWRTcGluZShza2VsZXRvbiwgYmxvY2sudGV4UG5nRGF0YS5uYW1lLCB7XG5cdFx0XHRcdFx0XHRcdFx0dGV4OiBibG9jay50ZXhQbmdEYXRhLnVybCwgXG5cdFx0XHRcdFx0XHRcdFx0YXRsYXM6IGJsb2NrLnRleEpzb25EYXRhLnVybCxcblx0XHRcdFx0XHRcdFx0XHRza2U6IGJsb2NrLnNrZUpzb25EYXRhLnVybCxcblx0XHRcdFx0XHRcdFx0fSkudGhlbigoe3dpZHRoLCBoZWlnaHR9KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0bi53aWR0aCA9IHdpZHRoO1xuXHRcdFx0XHRcdFx0XHRcdG4uaGVpZ2h0ID0gaGVpZ2h0O1x0XG5cdFx0XHRcdFx0XHRcdFx0bi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdC8vIGRiLnBsYXlBbmltYXRpb24oJ251bGwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHQvLyBza2VsZXRvbi5zZXRUb1NldHVwUG9zZSgpO1xuXHRcdFx0XHRcdFx0XHRcdC8vIHNrZWxldG9uLnNldEFuaW1hdGlvbigwLCAnZW5sYXJnZScsIHRydWUpO1x0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fYWxsQW5pbWF0aW9uTm9kZXMucHVzaChuKTtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pLmNhdGNoKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRmaW5pc2hEYkNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmluaXNoRGJDb3VudCA9PSBkYkNvdW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGRiID0gbi5hZGRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblxuXHRcdFx0XHRcdFx0XHRsb2FkRHJhZ29uQm9uZXMoZGIsIHtcblx0XHRcdFx0XHRcdFx0XHR0ZXg6IGJsb2NrLnRleFBuZ0RhdGEudXJsLCBcblx0XHRcdFx0XHRcdFx0XHRhdGxhczogYmxvY2sudGV4SnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHRcdHNrZTogYmxvY2suc2tlSnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0XHR9KS50aGVuKCh7d2lkdGgsIGhlaWdodH0pID0+IHtcblx0XHRcdFx0XHRcdFx0XHRuLndpZHRoID0gd2lkdGg7XG5cdFx0XHRcdFx0XHRcdFx0bi5oZWlnaHQgPSBoZWlnaHQ7XHRcblx0XHRcdFx0XHRcdFx0XHRuLmFjdGl2ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0ZGIucGxheUFuaW1hdGlvbignbnVsbCcsIDApO1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzLnB1c2gobik7XG5cdFx0XHRcdFx0XHRcdFx0ZmluaXNoRGJDb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGZpbmlzaERiQ291bnQsIGRiQ291bnQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KS5jYXRjaCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0ZmluaXNoRGJDb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGZpbmlzaERiQ291bnQsIGRiQ291bnQpXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XG5cblx0XHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCByZWN0SW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0XHRub2RlOiBuLFxuXHRcdFx0XHRcdFx0XHRcdGF1ZGlvX3VybDogYmxvY2suYXVkaW9fdXJsICxcblx0XHRcdFx0XHRcdFx0XHRyZWN0OiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR4OiBibG9jay5yZWN0LnggLyBiYXNlUmVjdC53aWR0aCxcblx0XHRcdFx0XHRcdFx0XHRcdHk6IGJsb2NrLnJlY3QueSAvIGJhc2VSZWN0LmhlaWdodCxcblx0XHRcdFx0XHRcdFx0XHRcdHdpZHRoOiBibG9jay5yZWN0LndpZHRoIC8gYmFzZVJlY3Qud2lkdGgsXG5cdFx0XHRcdFx0XHRcdFx0XHRoZWlnaHQ6IGJsb2NrLnJlY3QuaGVpZ2h0IC8gYmFzZVJlY3QuaGVpZ2h0LFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0dGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXkucHVzaChyZWN0SW5mbyk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5hZGRSZWN0Tm9kZUxpc3RlbmVyKGJsb2NrKTtcblx0XHRcblx0XHRcdFx0XHRcdFx0aWYgKGJsb2NrLmxhYmVsVGV4dCkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGsgPSArYmxvY2subGFiZWxUZXh0ICogMTAwMDtcblx0XHRcdFx0XHRcdFx0XHRpZighaXNOYU4oaykpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX2hpbnRzTm9kZUxpc3QucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGU6IG4sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFmdGVyOiBrXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0XG5cdFx0XHQvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEpO1xuXHRcdFx0Y29uc29sZS5sb2coJ3Jlc291cmNlIHBlcmxvYWQgZmluaXNoJyk7XG5cbi8vIDw8PDw8PDwgSEVBRFxuLy8gPT09PT09PVxuLy8gXHRcdFx0aWYgKHdpbmRvdyAmJiB3aW5kb3dbXCJhaXJcIl0pIHtcbi8vIFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDA7XG4vLyBcdFx0XHRcdHdpbmRvdy5haXIub25Db3Vyc2VJblNjcmVlbiA9IChuZXh0KSA9PiB7XG4vLyBcdFx0XHRcdFx0Ly8gY2MuZmluZCgnQ2FudmFzJykub3BhY2l0eSA9IDI1NTtcbi8vIFx0XHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdFx0XHRuZXh0KCk7XG4vLyBcdFx0XHRcdH1cbi8vIFx0XHRcdFx0d2luZG93LmFpci5oaWRlQWlyQ2xhc3NMb2FkaW5nKCk7XG4vLyBcdFx0XHR9IGVsc2Uge1xuLy8gXHRcdFx0XHR0aGlzLmxvYWRFbmQoKTtcbi8vIFx0XHRcdH1cbi8vID4+Pj4+Pj4gMmQ0NjFlMTkxMDU3MWJjZmM2YWQ0ZGM5M2MyY2VkYWZjMjA5MjNlYVxuXG5cdFx0XHRjYy5kZWJ1Zy5zZXREaXNwbGF5U3RhdHMoZmFsc2UpO1xuXHRcdH0pO1xuXHR9LFxuXG5cblx0bG9hZEVuZCgpIHtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvd1tcImFpclwiXSAmJiB3aW5kb3dbXCJhaXJcIl0uaGlkZUFpckNsYXNzTG9hZGluZykge1xuXHRcdFx0d2luZG93W1wiYWlyXCJdLmhpZGVBaXJDbGFzc0xvYWRpbmcoKTtcblx0XHR9XG5cdFx0dGhpcy5pbml0RGF0YSgpO1xuXHRcdC8vIHRoaXMuaW5pdEF1ZGlvKCk7XG5cdFx0Ly8gdGhpcy5pbml0VmlldygpO1xuXHRcdHRoaXMuaW5pdEJnKCk7XG5cdFx0Ly8gdGhpcy5pbml0TGlzdGVuZXIoKTtcblx0XHR0aGlzLmRlYnVnR3JhcGhpY3MoKTtcblx0XHR0aGlzLmNyZWF0ZVN0YXRlTWFjaGluZSgpO1xuXHR9LFxuXG5cdF9jYW50b3VjaDogbnVsbCxcblx0aW5pdERhdGEoKSB7XG5cdFx0Ly8g5omA5pyJ5YWo5bGA5Y+Y6YePIOm7mOiupOmDveaYr251bGwgXG5cdFx0dGhpcy5fY2FudG91Y2ggPSB0cnVlO1xuXHR9LFxuXG5cdC8vIGF1ZGlvQnRuOiBudWxsLFxuXHQvLyBpbml0QXVkaW8oKSB7XG5cdC8vIFx0Y29uc3QgYXVkaW9Ob2RlID0gY2MuZmluZCgnQ2FudmFzL3Jlcy9hdWRpbycpO1xuXG5cdC8vIFx0Y29uc3QgZ2V0QXVkaW9CeVJlc05hbWUgPSAocmVzTmFtZSkgPT4ge1xuXHQvLyBcdFx0cmV0dXJuIGF1ZGlvTm9kZS5nZXRDaGlsZEJ5TmFtZShyZXNOYW1lKS5nZXRDb21wb25lbnQoY2MuQXVkaW9Tb3VyY2UpO1xuXHQvLyBcdH1cblxuXHQvLyBcdHRoaXMuYXVkaW9CdG4gPSBnZXRBdWRpb0J5UmVzTmFtZSgnYnRuJyk7XG5cblx0Ly8gfSxcblxuXG5cdC8vIGluaXRWaWV3KCkge1xuXG5cdC8vIFx0Ly8gdGhpcy5pbml0QmcoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRQaWMoKTtcblx0Ly8gXHQvLyB0aGlzLmluaXRCdG4oKTtcblx0Ly8gXHR0aGlzLmluaXRJY29uKCk7XG5cdC8vIH0sXG5cblx0YWRkUmVjdE5vZGVMaXN0ZW5lcihkYXRhKSB7XG5cblxuXHRcdGNvbnN0IGJnID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQvYmdgKS5wYXJlbnQ7XG5cblx0XHRjb25zdCByYXRlID0gKGJnLnNjYWxlICogYmcud2lkdGgpIC8gdGhpcy5kYXRhLmJnSXRlbS5yZWN0LndpZHRoO1xuXG5cdFx0Y29uc3QgcmVjdE5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdHJlY3ROb2RlLm5hbWUgPSAncmVjdCcgKyBkYXRhLmluZGV4O1xuXHRcdGJnLmFkZENoaWxkKHJlY3ROb2RlLCAyMCk7XG5cblxuXHRcdGNvbnN0IGN0eCA9IHJlY3ROb2RlLmFkZENvbXBvbmVudChjYy5HcmFwaGljcyk7XG5cdFx0Ly8g57qi6Imy55+p5b2iXG5cdFx0Y3R4LmxpbmVXaWR0aCA9IDQ7XG5cdFx0Y3R4LnN0cm9rZUNvbG9yID0gY2MuQ29sb3IuQkxBQ0s7XG5cdFx0Y3R4LmZpbGxDb2xvciA9IGNjLkNvbG9yLldISVRFLnNldEEoMTAwKTtcblxuXHRcdGNvbnN0IHNjYWxlID0gcmF0ZSAvIGJnLnNjYWxlWTtcblxuXHRcdGNvbnNvbGUubG9nKCdzY2FsZX4gOiAnLCBzY2FsZSlcblxuXHRcdHJlY3ROb2RlLndpZHRoID0gZGF0YS5yZWN0LndpZHRoICogc2NhbGU7XG5cdFx0cmVjdE5vZGUuaGVpZ2h0ID0gZGF0YS5yZWN0LmhlaWdodCAqIHNjYWxlO1xuXHRcdHJlY3ROb2RlLnggPSAtYmcud2lkdGggLyAyICsgZGF0YS5yZWN0LnggKiBzY2FsZSArIGJnLng7XG5cdFx0cmVjdE5vZGUueSA9IGJnLmhlaWdodCAvIDIgLSBkYXRhLnJlY3QuaGVpZ2h0ICogc2NhbGUgLSBkYXRhLnJlY3QueSAqIHNjYWxlICsgYmcueTtcblxuXHRcdHJlY3ROb2RlLmFuY2hvclggPSByZWN0Tm9kZS5hbmNob3JZID0gMDtcblxuXHRcdGNvbnNvbGUubG9nKCdkYXRhOiAnLCBkYXRhKTtcblx0XHRjb25zb2xlLmxvZygncmVjdE5vZGU6ICcsIHJlY3ROb2RlKTtcblxuXG5cdFx0Ly8gaWYgKHBhZ2VEYXRhLmJnSXRlbS5pc1Nob3dEZWJ1Z0xpbmUpIHtcblx0XHRcdGN0eC5yZWN0KDAsIDAsIHJlY3ROb2RlLndpZHRoLCByZWN0Tm9kZS5oZWlnaHQpO1xuXHRcdFx0Ly8gY3R4LmZpbGxSZWN0KDAsIDAsIDIwMCwgMjAwKTtcblx0XHQvLyB9XG5cdFx0Y3R4LnN0cm9rZSgpO1xuXHRcdGN0eC5maWxsKCk7XG5cblx0XHRyZWN0Tm9kZS5hZGRDb21wb25lbnQoY2MuQnV0dG9uKTtcblx0XHRyZWN0Tm9kZS5vbihcImNsaWNrXCIsICgpID0+IHtcblx0XHRcdGNvbnNvbGUubG9nKFwiIGluIHJlY3ROb2RlIGNsaWNrXCIpO1xuXG5cblx0XHRcdGNvbnN0IF94ID0gcmVjdE5vZGUueCAvIGJnLndpZHRoO1xuXHRcdFx0Y29uc3QgX3kgPSByZWN0Tm9kZS55IC8gYmcuaGVpZ2h0O1xuXHRcdFx0Y29uc3QgX3cgPSByZWN0Tm9kZS53aWR0aCAvIGJnLndpZHRoO1xuXHRcdFx0Y29uc3QgX2ggPSByZWN0Tm9kZS5oZWlnaHQgLyBiZy5oZWlnaHQ7XG5cblx0XHRcdGNvbnN0IHBvcyA9IHtcblx0XHRcdFx0eDogX3ggKyBfdyAvIDIgKyAwLjUsXG5cdFx0XHRcdHk6IC0oX3kgKyBfaCAvIDIgLSAwLjUpXG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24gPSB7XG5cdFx0XHRcdHBvczogcG9zLFxuXHRcdFx0XHRkaXJ0eTogdHJ1ZVxuXHRcdFx0fTtcblxuXHRcdH0pXG5cblx0fSxcblxuXHRpbml0QmcoKSB7XG5cdFx0Y29uc3QgYmdOb2RlID0gY2MuZmluZCgnQ2FudmFzL2JnJyk7XG5cdFx0YmdOb2RlLnNjYWxlID0gdGhpcy5fbWFwU2NhbGVNYXg7XG5cdFx0Y29uc29sZS5sb2coJ3RoaXMuX21hcFNjYWxlTWF4JywgdGhpcy5fbWFwU2NhbGVNYXgpO1xuXHR9LFxuXG5cdFxuXHRcblxuXHQvKmluaXRCdG4oKSB7XG5cblx0XHR0aGlzLmN1clBhZ2UgPSAwO1xuXHRcdGNvbnN0IGJvdHRvbVBhcnQgPSBjYy5maW5kKCdDYW52YXMvYm90dG9tUGFydCcpO1xuXHRcdGJvdHRvbVBhcnQuekluZGV4ID0gNTsgLy8g5o+Q6auY5bGC57qnXG5cblx0XHRib3R0b21QYXJ0LnggPSBib3R0b21QYXJ0LnBhcmVudC53aWR0aCAvIDI7XG5cdFx0Ym90dG9tUGFydC55ID0gLWJvdHRvbVBhcnQucGFyZW50LmhlaWdodCAvIDI7XG5cblx0XHRjb25zdCBsZWZ0QnRuTm9kZSA9IGJvdHRvbVBhcnQuZ2V0Q2hpbGRCeU5hbWUoJ2J0bl9sZWZ0Jyk7XG5cdFx0Ly/oioLngrnkuK3mt7vliqDkuoZidXR0b27nu4Tku7Yg5YiZ5Y+v5Lul5re75YqgY2xpY2vkuovku7bnm5HlkKxcblx0XHRsZWZ0QnRuTm9kZS5vbignY2xpY2snLCAoKSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMuX2NhbnRvdWNoKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmN1clBhZ2UgPT0gMCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmN1clBhZ2UgPSAwXG5cdFx0XHR0aGlzLmxlZnRNb3ZlKCk7XG5cblx0XHRcdC8vIOa4uOaIj+e7k+adn+aXtumcgOimgeiwg+eUqOi/meS4quaWueazlemAmuefpeezu+e7n+S9nOS4muWujOaIkFxuXHRcdFx0b25Ib21ld29ya0ZpbmlzaCgpO1xuXG5cdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5KHRoaXMuYXVkaW9CdG4uY2xpcCwgZmFsc2UsIDAuOClcblx0XHR9KVxuXG5cdFx0Y29uc3QgcmlnaHRCdG5Ob2RlID0gYm90dG9tUGFydC5nZXRDaGlsZEJ5TmFtZSgnYnRuX3JpZ2h0Jyk7XG5cdFx0Ly/oioLngrnkuK3mt7vliqDkuoZidXR0b27nu4Tku7Yg5YiZ5Y+v5Lul5re75YqgY2xpY2vkuovku7bnm5HlkKxcblx0XHRyaWdodEJ0bk5vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLl9jYW50b3VjaCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5jdXJQYWdlID09IDEpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmN1clBhZ2UgPSAxXG5cdFx0XHR0aGlzLnJpZ2h0TW92ZSgpO1xuXG5cdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5KHRoaXMuYXVkaW9CdG4uY2xpcCwgZmFsc2UsIDAuNSlcblx0XHR9KVxuXHR9LCovXG5cblxuXG5cblx0Ly8gdXBkYXRlIChkdCkge30sXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXHRfdGltZW91dElkczogbnVsbCxcblx0X2ludGVydmFsSWRzOiBudWxsLFxuXHQvLyDnlJ/lkb3lkajmnJ9cblx0b25EZXN0cm95KCkge1xuXHRcdGNvbnNvbGUubG9nKCdvcDE1IG9uRGVzdHJveScpO1xuXHRcdHRoaXMuX3RpbWVvdXRJZHMuZm9yRWFjaChpZCA9PiB7XG5cdFx0XHRjbGVhclRpbWVvdXQoaWQpO1xuXHRcdH0pO1xuXHRcdHRoaXMuX2ludGVydmFsSWRzLmZvckVhY2goaWQgPT4ge1xuXHRcdFx0Y2xlYXJJbnRlcnZhbChpZCk7XG5cdFx0fSk7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RvcENoaWxkKCk7XG5cdFx0dGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RvcCgpO1xuXHRcdGlmKHdpbmRvdy5jb3Vyc2V3YXJlICYmIHdpbmRvdy5jb3Vyc2V3YXJlLmNsb3NlT3Ntb0ZpbmdlclJlYWQpIHtcblx0XHRcdGlmICh0aGlzLmlzT3BlbmVkT3Ntb0ZpbmdlclJlYWQpIHtcblx0XHRcdFx0d2luZG93LmNvdXJzZXdhcmUuY2xvc2VPc21vRmluZ2VyUmVhZCgpXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cblxuXG5cbn0pO1xuIl19
//------QC-SOURCE-SPLIT------
limingzhe's avatar
limingzhe committed
2464

limingzhe's avatar
limingzhe committed
2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/OP15/script/state_OP15.js';
                    var __require = nodeEnv ? function (request) {
                        return cc.require(request);
                    } : function (request) {
                        return __quick_compile_project__.require(request, __filename);
                    };
                    function __define (exports, require, module) {
                        if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
cc._RF.push(module, '6acefvFAO9O7qvqEFnz5PJj', 'state_OP15');
// OP15/script/state_OP15.js
limingzhe's avatar
limingzhe committed
2478

limingzhe's avatar
limingzhe committed
2479
"use strict";
limingzhe's avatar
limingzhe committed
2480

limingzhe's avatar
limingzhe committed
2481 2482 2483 2484 2485
exports.__esModule = true;
exports.assign = o;
exports.createMachine = s;
exports.interpret = v;
exports.InterpreterStatus = void 0;
limingzhe's avatar
limingzhe committed
2486

limingzhe's avatar
limingzhe committed
2487 2488
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
limingzhe's avatar
limingzhe committed
2489

limingzhe's avatar
limingzhe committed
2490 2491
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
limingzhe's avatar
limingzhe committed
2492

limingzhe's avatar
limingzhe committed
2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function t(t, n) {
  var e = "function" == typeof Symbol && t[Symbol.iterator];
  if (!e) return t;
  var r,
      o,
      i = e.call(t),
      a = [];
limingzhe's avatar
limingzhe committed
2508

limingzhe's avatar
limingzhe committed
2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523
  try {
    for (; (void 0 === n || n-- > 0) && !(r = i.next()).done;) {
      a.push(r.value);
    }
  } catch (t) {
    o = {
      error: t
    };
  } finally {
    try {
      r && !r.done && (e = i["return"]) && e.call(i);
    } finally {
      if (o) throw o.error;
    }
  }
limingzhe's avatar
limingzhe committed
2524

limingzhe's avatar
limingzhe committed
2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589
  return a;
}

var n;
exports.InterpreterStatus = n;
!function (t) {
  t[t.NotStarted = 0] = "NotStarted", t[t.Running = 1] = "Running", t[t.Stopped = 2] = "Stopped";
}(n || (exports.InterpreterStatus = n = {}));
var e = {
  type: "xstate.init"
};

function r(t) {
  return void 0 === t ? [] : [].concat(t);
}

function o(t) {
  return {
    type: "xstate.assign",
    assignment: t
  };
}

function i(t, n) {
  return "string" == typeof (t = "string" == typeof t && n && n[t] ? n[t] : t) ? {
    type: t
  } : "function" == typeof t ? {
    type: t.name,
    exec: t
  } : t;
}

function a(t) {
  return function (n) {
    return t === n;
  };
}

function u(t) {
  return "string" == typeof t ? {
    type: t
  } : t;
}

function c(t, n) {
  return {
    value: t,
    context: n,
    actions: [],
    changed: !1,
    matches: a(t)
  };
}

function f(t, n, e) {
  var r = n,
      o = !1;
  return [t.filter(function (t) {
    if ("xstate.assign" === t.type) {
      o = !0;
      var n = Object.assign({}, r);
      return "function" == typeof t.assignment ? n = t.assignment(r, e) : Object.keys(t.assignment).forEach(function (o) {
        n[o] = "function" == typeof t.assignment[o] ? t.assignment[o](r, e) : t.assignment[o];
      }), r = n, !1;
    }
limingzhe's avatar
limingzhe committed
2590

limingzhe's avatar
limingzhe committed
2591 2592 2593
    return !0;
  }), r, o];
}
limingzhe's avatar
limingzhe committed
2594

limingzhe's avatar
limingzhe committed
2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621
function s(n, o) {
  void 0 === o && (o = {});
  var s = t(f(r(n.states[n.initial].entry).map(function (t) {
    return i(t, o.actions);
  }), n.context, e), 2),
      l = s[0],
      v = s[1],
      y = {
    config: n,
    _options: o,
    initialState: {
      value: n.initial,
      actions: l,
      context: v,
      matches: a(n.initial)
    },
    transition: function transition(e, o) {
      var s,
          l,
          v = "string" == typeof e ? {
        value: e,
        context: n.context
      } : e,
          p = v.value,
          g = v.context,
          d = u(o),
          x = n.states[p];
limingzhe's avatar
limingzhe committed
2622

limingzhe's avatar
limingzhe committed
2623 2624
      if (x.on) {
        var m = r(x.on[d.type]);
limingzhe's avatar
limingzhe committed
2625

limingzhe's avatar
limingzhe committed
2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637
        try {
          for (var h = function (t) {
            var n = "function" == typeof Symbol && Symbol.iterator,
                e = n && t[n],
                r = 0;
            if (e) return e.call(t);
            if (t && "number" == typeof t.length) return {
              next: function next() {
                return t && r >= t.length && (t = void 0), {
                  value: t && t[r++],
                  done: !t
                };
2638
              }
limingzhe's avatar
limingzhe committed
2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674
            };
            throw new TypeError(n ? "Object is not iterable." : "Symbol.iterator is not defined.");
          }(m), b = h.next(); !b.done; b = h.next()) {
            var S = b.value;
            if (void 0 === S) return c(p, g);

            var w = "string" == typeof S ? {
              target: S
            } : S,
                j = w.target,
                E = w.actions,
                R = void 0 === E ? [] : E,
                N = w.cond,
                O = void 0 === N ? function () {
              return !0;
            } : N,
                _ = void 0 === j,
                k = null != j ? j : p,
                T = n.states[k];

            if (O(g, d)) {
              var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter(function (t) {
                return t;
              })).map(function (t) {
                return i(t, y._options.actions);
              }), g, d), 3),
                  z = q[0],
                  A = q[1],
                  B = q[2],
                  C = null != j ? j : p;
              return {
                value: C,
                context: A,
                actions: z,
                changed: j !== p || z.length > 0 || B,
                matches: a(C)
2675 2676 2677
              };
            }
          }
limingzhe's avatar
limingzhe committed
2678 2679 2680
        } catch (t) {
          s = {
            error: t
2681 2682 2683
          };
        } finally {
          try {
limingzhe's avatar
limingzhe committed
2684
            b && !b.done && (l = h["return"]) && l.call(h);
2685
          } finally {
limingzhe's avatar
limingzhe committed
2686
            if (s) throw s.error;
2687 2688
          }
        }
limingzhe's avatar
limingzhe committed
2689
      }
limingzhe's avatar
limingzhe committed
2690

limingzhe's avatar
limingzhe committed
2691 2692 2693 2694 2695
      return c(p, g);
    }
  };
  return y;
}
limingzhe's avatar
limingzhe committed
2696

limingzhe's avatar
limingzhe committed
2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712
var l = function l(t, n) {
  return t.actions.forEach(function (e) {
    var r = e.exec;
    return r && r(t.context, n);
  });
};

function v(t) {
  var r = t.initialState,
      o = n.NotStarted,
      i = new Set(),
      c = {
    _machine: t,
    send: function send(e) {
      o === n.Running && (r = t.transition(r, e), l(r, u(e)), i.forEach(function (t) {
        return t(r);
2713
      }));
limingzhe's avatar
limingzhe committed
2714 2715 2716 2717 2718
    },
    subscribe: function subscribe(t) {
      return i.add(t), t(r), {
        unsubscribe: function unsubscribe() {
          return i["delete"](t);
2719
        }
limingzhe's avatar
limingzhe committed
2720 2721 2722 2723 2724 2725 2726
      };
    },
    start: function start(i) {
      if (i) {
        var u = "object" == typeof i ? i : {
          context: t.config.context,
          value: i
2727
        };
limingzhe's avatar
limingzhe committed
2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808
        r = {
          value: u.value,
          actions: [],
          context: u.context,
          matches: a(u.value)
        };
      }

      return o = n.Running, l(r, e), c;
    },
    stop: function stop() {
      return o = n.Stopped, i.clear(), c;
    },

    get state() {
      return r;
    },

    get status() {
      return o;
    }

  };
  return c;
}

cc._RF.pop();
                    }
                    if (nodeEnv) {
                        __define(__module.exports, __require, __module);
                    }
                    else {
                        __quick_compile_project__.registerModuleFunc(__filename, function () {
                            __define(__module.exports, __require, __module);
                        });
                    }
                })();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC9zdGF0ZV9PUDE1LmpzIl0sIm5hbWVzIjpbInQiLCJuIiwiZSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiciIsIm8iLCJpIiwiY2FsbCIsImEiLCJuZXh0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImVycm9yIiwiTm90U3RhcnRlZCIsIlJ1bm5pbmciLCJTdG9wcGVkIiwidHlwZSIsImNvbmNhdCIsImFzc2lnbm1lbnQiLCJuYW1lIiwiZXhlYyIsInUiLCJjIiwiY29udGV4dCIsImFjdGlvbnMiLCJjaGFuZ2VkIiwibWF0Y2hlcyIsImYiLCJmaWx0ZXIiLCJPYmplY3QiLCJhc3NpZ24iLCJrZXlzIiwiZm9yRWFjaCIsInMiLCJzdGF0ZXMiLCJpbml0aWFsIiwiZW50cnkiLCJtYXAiLCJsIiwidiIsInkiLCJjb25maWciLCJfb3B0aW9ucyIsImluaXRpYWxTdGF0ZSIsInRyYW5zaXRpb24iLCJwIiwiZyIsImQiLCJ4Iiwib24iLCJtIiwiaCIsImxlbmd0aCIsIlR5cGVFcnJvciIsImIiLCJTIiwidyIsInRhcmdldCIsImoiLCJFIiwiUiIsIk4iLCJjb25kIiwiTyIsIl8iLCJrIiwiVCIsInEiLCJleGl0IiwieiIsIkEiLCJCIiwiQyIsIlNldCIsIl9tYWNoaW5lIiwic2VuZCIsInN1YnNjcmliZSIsImFkZCIsInVuc3Vic2NyaWJlIiwic3RhcnQiLCJzdG9wIiwiY2xlYXIiLCJzdGF0ZSIsInN0YXR1cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsQ0FBVCxDQUFXQSxDQUFYLEVBQWFDLENBQWIsRUFBZTtBQUFDLE1BQUlDLENBQUMsR0FBQyxjQUFZLE9BQU9DLE1BQW5CLElBQTJCSCxDQUFDLENBQUNHLE1BQU0sQ0FBQ0MsUUFBUixDQUFsQztBQUFvRCxNQUFH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QUFBaEMsU0FBM0I7QUFBOERGLFFBQUFBLENBQUMsR0FBQztBQUFDUSxVQUFBQSxLQUFLLEVBQUNVLENBQUMsQ0FBQ1YsS0FBVDtBQUFlYSxVQUFBQSxPQUFPLEVBQUMsRUFBdkI7QUFBMEJELFVBQUFBLE9BQU8sRUFBQ0YsQ0FBQyxDQUFDRSxPQUFwQztBQUE0Q0csVUFBQUEsT0FBTyxFQUFDbkIsQ0FBQyxDQUFDYyxDQUFDLENBQUNWLEtBQUg7QUFBckQsU0FBRjtBQUFrRTs7QUFBQSxhQUFPUCxDQUFDLEdBQUNMLENBQUMsQ0FBQ2UsT0FBSixFQUFZd0IsQ0FBQyxDQUFDbkMsQ0FBRCxFQUFHSCxDQUFILENBQWIsRUFBbUJzQixDQUExQjtBQUE0QixLQUFoWTtBQUFpWTBELElBQUFBLElBQUksRUFBQyxnQkFBVTtBQUFDLGFBQU81RSxDQUFDLEdBQUNMLENBQUMsQ0FBQ2dCLE9BQUosRUFBWVYsQ0FBQyxDQUFDNEUsS0FBRixFQUFaLEVBQXNCM0QsQ0FBN0I7QUFBK0IsS0FBaGI7O0FBQWliLFFBQUk0RCxLQUFKLEdBQVc7QUFBQyxhQUFPL0UsQ0FBUDtBQUFTLEtBQXRjOztBQUF1YyxRQUFJZ0YsTUFBSixHQUFZO0FBQUMsYUFBTy9FLENBQVA7QUFBUzs7QUFBN2QsR0FBaEQ7QUFBK2dCLFNBQU9rQixDQUFQO0FBQVMiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXG5cblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxucHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXG5SRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxuTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1Jcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuZnVuY3Rpb24gdCh0LG4pe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFlKXJldHVybiB0O3ZhciByLG8saT1lLmNhbGwodCksYT1bXTt0cnl7Zm9yKDsodm9pZCAwPT09bnx8bi0tID4wKSYmIShyPWkubmV4dCgpKS5kb25lOylhLnB1c2goci52YWx1ZSl9Y2F0Y2godCl7bz17ZXJyb3I6dH19ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKGU9aS5yZXR1cm4pJiZlLmNhbGwoaSl9ZmluYWxseXtpZihvKXRocm93IG8uZXJyb3J9fXJldHVybiBhfXZhciBuOyFmdW5jdGlvbih0KXt0W3QuTm90U3RhcnRlZD0wXT1cIk5vdFN0YXJ0ZWRcIix0W3QuUnVubmluZz0xXT1cIlJ1bm5pbmdcIix0W3QuU3RvcHBlZD0yXT1cIlN0b3BwZWRcIn0obnx8KG49e30pKTt2YXIgZT17dHlwZTpcInhzdGF0ZS5pbml0XCJ9O2Z1bmN0aW9uIHIodCl7cmV0dXJuIHZvaWQgMD09PXQ/W106W10uY29uY2F0KHQpfWZ1bmN0aW9uIG8odCl7cmV0dXJue3R5cGU6XCJ4c3RhdGUuYXNzaWduXCIsYXNzaWdubWVudDp0fX1mdW5jdGlvbiBpKHQsbil7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mKHQ9XCJzdHJpbmdcIj09dHlwZW9mIHQmJm4mJm5bdF0/blt0XTp0KT97dHlwZTp0fTpcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3t0eXBlOnQubmFtZSxleGVjOnR9OnR9ZnVuY3Rpb24gYSh0KXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQ9PT1ufX1mdW5jdGlvbiB1KHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P3t0eXBlOnR9OnR9ZnVuY3Rpb24gYyh0LG4pe3JldHVybnt2YWx1ZTp0LGNvbnRleHQ6bixhY3Rpb25zOltdLGNoYW5nZWQ6ITEsbWF0Y2hlczphKHQpfX1mdW5jdGlvbiBmKHQsbixlKXt2YXIgcj1uLG89ITE7cmV0dXJuW3QuZmlsdGVyKChmdW5jdGlvbih0KXtpZihcInhzdGF0ZS5hc3NpZ25cIj09PXQudHlwZSl7bz0hMDt2YXIgbj1PYmplY3QuYXNzaWduKHt9LHIpO3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHQuYXNzaWdubWVudD9uPXQuYXNzaWdubWVudChyLGUpOk9iamVjdC5rZXlzKHQuYXNzaWdubWVudCkuZm9yRWFjaCgoZnVuY3Rpb24obyl7bltvXT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmFzc2lnbm1lbnRbb10/dC5hc3NpZ25tZW50W29dKHIsZSk6dC5hc3NpZ25tZW50W29dfSkpLHI9biwhMX1yZXR1cm4hMH0pKSxyLG9dfWZ1bmN0aW9uIHMobixvKXt2b2lkIDA9PT1vJiYobz17fSk7dmFyIHM9dChmKHIobi5zdGF0ZXNbbi5pbml0aWFsXS5lbnRyeSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gaSh0LG8uYWN0aW9ucyl9KSksbi5jb250ZXh0LGUpLDIpLGw9c1swXSx2PXNbMV0seT17Y29uZmlnOm4sX29wdGlvbnM6byxpbml0aWFsU3RhdGU6e3ZhbHVlOm4uaW5pdGlhbCxhY3Rpb25zOmwsY29udGV4dDp2LG1hdGNoZXM6YShuLmluaXRpYWwpfSx0cmFuc2l0aW9uOmZ1bmN0aW9uKGUsbyl7dmFyIHMsbCx2PVwic3RyaW5nXCI9PXR5cGVvZiBlP3t2YWx1ZTplLGNvbnRleHQ6bi5jb250ZXh0fTplLHA9di52YWx1ZSxnPXYuY29udGV4dCxkPXUobykseD1uLnN0YXRlc1twXTtpZih4Lm9uKXt2YXIgbT1yKHgub25bZC50eXBlXSk7dHJ5e2Zvcih2YXIgaD1mdW5jdGlvbih0KXt2YXIgbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcixlPW4mJnRbbl0scj0wO2lmKGUpcmV0dXJuIGUuY2FsbCh0KTtpZih0JiZcIm51bWJlclwiPT10eXBlb2YgdC5sZW5ndGgpcmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCYmcj49dC5sZW5ndGgmJih0PXZvaWQgMCkse3ZhbHVlOnQmJnRbcisrXSxkb25lOiF0fX19O3Rocm93IG5ldyBUeXBlRXJyb3Iobj9cIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCI6XCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpfShtKSxiPWgubmV4dCgpOyFiLmRvbmU7Yj1oLm5leHQoKSl7dmFyIFM9Yi52YWx1ZTtpZih2b2lkIDA9PT1TKXJldHVybiBjKHAsZyk7dmFyIHc9XCJzdHJpbmdcIj09dHlwZW9mIFM/e3RhcmdldDpTfTpTLGo9dy50YXJnZXQsRT13LmFjdGlvbnMsUj12b2lkIDA9PT1FP1tdOkUsTj13LmNvbmQsTz12b2lkIDA9PT1OP2Z1bmN0aW9uKCl7cmV0dXJuITB9Ok4sXz12b2lkIDA9PT1qLGs9bnVsbCE9aj9qOnAsVD1uLnN0YXRlc1trXTtpZihPKGcsZCkpe3ZhciBxPXQoZigoXz9yKFIpOltdLmNvbmNhdCh4LmV4aXQsUixULmVudHJ5KS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBpKHQseS5fb3B0aW9ucy5hY3Rpb25zKX0pKSxnLGQpLDMpLHo9cVswXSxBPXFbMV0sQj1xWzJdLEM9bnVsbCE9aj9qOnA7cmV0dXJue3ZhbHVlOkMsY29udGV4dDpBLGFjdGlvbnM6eixjaGFuZ2VkOmohPT1wfHx6Lmxlbmd0aD4wfHxCLG1hdGNoZXM6YShDKX19fX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtiJiYhYi5kb25lJiYobD1oLnJldHVybikmJmwuY2FsbChoKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19fXJldHVybiBjKHAsZyl9fTtyZXR1cm4geX12YXIgbD1mdW5jdGlvbih0LG4pe3JldHVybiB0LmFjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9ZS5leGVjO3JldHVybiByJiZyKHQuY29udGV4dCxuKX0pKX07ZnVuY3Rpb24gdih0KXt2YXIgcj10LmluaXRpYWxTdGF0ZSxvPW4uTm90U3RhcnRlZCxpPW5ldyBTZXQsYz17X21hY2hpbmU6dCxzZW5kOmZ1bmN0aW9uKGUpe289PT1uLlJ1bm5pbmcmJihyPXQudHJhbnNpdGlvbihyLGUpLGwocix1KGUpKSxpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0KHIpfSkpKX0sc3Vic2NyaWJlOmZ1bmN0aW9uKHQpe3JldHVybiBpLmFkZCh0KSx0KHIpLHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe3JldHVybiBpLmRlbGV0ZSh0KX19fSxzdGFydDpmdW5jdGlvbihpKXtpZihpKXt2YXIgdT1cIm9iamVjdFwiPT10eXBlb2YgaT9pOntjb250ZXh0OnQuY29uZmlnLmNvbnRleHQsdmFsdWU6aX07cj17dmFsdWU6dS52YWx1ZSxhY3Rpb25zOltdLGNvbnRleHQ6dS5jb250ZXh0LG1hdGNoZXM6YSh1LnZhbHVlKX19cmV0dXJuIG89bi5SdW5uaW5nLGwocixlKSxjfSxzdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIG89bi5TdG9wcGVkLGkuY2xlYXIoKSxjfSxnZXQgc3RhdGUoKXtyZXR1cm4gcn0sZ2V0IHN0YXR1cygpe3JldHVybiBvfX07cmV0dXJuIGN9ZXhwb3J0e24gYXMgSW50ZXJwcmV0ZXJTdGF0dXMsbyBhcyBhc3NpZ24scyBhcyBjcmVhdGVNYWNoaW5lLHYgYXMgaW50ZXJwcmV0fTtcbiJdfQ==
//------QC-SOURCE-SPLIT------

                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/OP15/script/xstate_OP15.js';
                    var __require = nodeEnv ? function (request) {
                        return cc.require(request);
                    } : function (request) {
                        return __quick_compile_project__.require(request, __filename);
                    };
                    function __define (exports, require, module) {
                        if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}(function (global){
"use strict";
cc._RF.push(module, 'ccc6ebxJZFI24GNYY/uty5V', 'xstate_OP15');
// OP15/script/xstate_OP15.js

"use strict";

!function (t, e) {
  "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).XState = {});
}(void 0, function (t) {
  "use strict";
  /*! *****************************************************************************
      Copyright (c) Microsoft Corporation.
  
      Permission to use, copy, modify, and/or distribute this software for any
      purpose with or without fee is hereby granted.
  
      THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
      REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
      AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
      INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
      LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
      OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
      PERFORMANCE OF THIS SOFTWARE.
      ***************************************************************************** */

  var _e = function e() {
    return (_e = Object.assign || function (t) {
      for (var e, n = 1, r = arguments.length; n < r; n++) {
        for (var i in e = arguments[n]) {
          Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]);
2809 2810
        }
      }
limingzhe's avatar
limingzhe committed
2811

limingzhe's avatar
limingzhe committed
2812 2813 2814
      return t;
    }).apply(this, arguments);
  };
limingzhe's avatar
limingzhe committed
2815

limingzhe's avatar
limingzhe committed
2816 2817 2818 2819 2820
  function n(t, e) {
    var n = {};

    for (var r in t) {
      Object.prototype.hasOwnProperty.call(t, r) && e.indexOf(r) < 0 && (n[r] = t[r]);
limingzhe's avatar
limingzhe committed
2821 2822
    }

limingzhe's avatar
limingzhe committed
2823 2824 2825 2826 2827
    if (null != t && "function" == typeof Object.getOwnPropertySymbols) {
      var i = 0;

      for (r = Object.getOwnPropertySymbols(t); i < r.length; i++) {
        e.indexOf(r[i]) < 0 && Object.prototype.propertyIsEnumerable.call(t, r[i]) && (n[r[i]] = t[r[i]]);
2828
      }
limingzhe's avatar
limingzhe committed
2829
    }
2830

limingzhe's avatar
limingzhe committed
2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844
    return n;
  }

  function r(t) {
    var e = "function" == typeof Symbol && Symbol.iterator,
        n = e && t[e],
        r = 0;
    if (n) return n.call(t);
    if (t && "number" == typeof t.length) return {
      next: function next() {
        return t && r >= t.length && (t = void 0), {
          value: t && t[r++],
          done: !t
        };
2845
      }
limingzhe's avatar
limingzhe committed
2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856
    };
    throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined.");
  }

  function i(t, e) {
    var n = "function" == typeof Symbol && t[Symbol.iterator];
    if (!n) return t;
    var r,
        i,
        o = n.call(t),
        a = [];
2857

limingzhe's avatar
limingzhe committed
2858 2859 2860 2861 2862 2863 2864 2865 2866
    try {
      for (; (void 0 === e || e-- > 0) && !(r = o.next()).done;) {
        a.push(r.value);
      }
    } catch (t) {
      i = {
        error: t
      };
    } finally {
2867
      try {
limingzhe's avatar
limingzhe committed
2868
        r && !r.done && (n = o["return"]) && n.call(o);
2869
      } finally {
limingzhe's avatar
limingzhe committed
2870
        if (i) throw i.error;
2871
      }
limingzhe's avatar
limingzhe committed
2872
    }
2873

limingzhe's avatar
limingzhe committed
2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917
    return a;
  }

  function o(t, e, n) {
    if (n || 2 === arguments.length) for (var r, i = 0, o = e.length; i < o; i++) {
      !r && i in e || (r || (r = Array.prototype.slice.call(e, 0, i)), r[i] = e[i]);
    }
    return t.concat(r || Array.prototype.slice.call(e));
  }

  var a = {};

  function s(t) {
    return Object.keys(t);
  }

  function c(t, e, n) {
    void 0 === n && (n = ".");
    var r = f(t, n),
        i = f(e, n);
    return A(i) ? !!A(r) && i === r : A(r) ? r in i : s(r).every(function (t) {
      return t in i && c(r[t], i[t]);
    });
  }

  function u(t) {
    try {
      return A(t) || "number" == typeof t ? "".concat(t) : t.type;
    } catch (t) {
      throw new Error("Events must be strings or objects with a string event.type property.");
    }
  }

  function h(t, e) {
    try {
      return T(t) ? t : t.toString().split(e);
    } catch (e) {
      throw new Error("'".concat(t, "' is not a valid state path."));
    }
  }

  function f(t, e) {
    return "object" == typeof (n = t) && "value" in n && "context" in n && "event" in n && "_event" in n ? t.value : T(t) ? l(t) : "string" != typeof t ? t : l(h(t, e));
    var n;
2918
  }
limingzhe's avatar
limingzhe committed
2919

limingzhe's avatar
limingzhe committed
2920 2921
  function l(t) {
    if (1 === t.length) return t[0];
limingzhe's avatar
limingzhe committed
2922

limingzhe's avatar
limingzhe committed
2923 2924
    for (var e = {}, n = e, r = 0; r < t.length - 1; r++) {
      r === t.length - 2 ? n[t[r]] = t[r + 1] : (n[t[r]] = {}, n = n[t[r]]);
limingzhe's avatar
limingzhe committed
2925
    }
limingzhe's avatar
limingzhe committed
2926 2927

    return e;
limingzhe's avatar
limingzhe committed
2928 2929
  }

limingzhe's avatar
limingzhe committed
2930 2931 2932 2933 2934
  function d(t, e) {
    for (var n = {}, r = s(t), i = 0; i < r.length; i++) {
      var o = r[i];
      n[o] = e(t[o], o, t, i);
    }
limingzhe's avatar
limingzhe committed
2935

limingzhe's avatar
limingzhe committed
2936
    return n;
limingzhe's avatar
limingzhe committed
2937 2938
  }

limingzhe's avatar
limingzhe committed
2939 2940 2941 2942
  function p(t, e, n) {
    var i,
        o,
        a = {};
limingzhe's avatar
limingzhe committed
2943

limingzhe's avatar
limingzhe committed
2944 2945 2946 2947 2948 2949 2950 2951 2952
    try {
      for (var c = r(s(t)), u = c.next(); !u.done; u = c.next()) {
        var h = u.value,
            f = t[h];
        n(f) && (a[h] = e(f, h, t));
      }
    } catch (t) {
      i = {
        error: t
2953
      };
limingzhe's avatar
limingzhe committed
2954 2955 2956 2957 2958 2959
    } finally {
      try {
        u && !u.done && (o = c["return"]) && o.call(c);
      } finally {
        if (i) throw i.error;
      }
limingzhe's avatar
limingzhe committed
2960 2961
    }

limingzhe's avatar
limingzhe committed
2962 2963 2964 2965 2966 2967 2968 2969
    return a;
  }

  var v = function v(t) {
    return function (e) {
      var n,
          i,
          o = e;
limingzhe's avatar
limingzhe committed
2970

2971
      try {
limingzhe's avatar
limingzhe committed
2972 2973
        for (var a = r(t), s = a.next(); !s.done; s = a.next()) {
          o = o[s.value];
2974 2975 2976 2977 2978 2979 2980
        }
      } catch (t) {
        n = {
          error: t
        };
      } finally {
        try {
limingzhe's avatar
limingzhe committed
2981
          s && !s.done && (i = a["return"]) && i.call(a);
2982 2983 2984 2985
        } finally {
          if (n) throw n.error;
        }
      }
limingzhe's avatar
limingzhe committed
2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076

      return o;
    };
  };

  function y(t) {
    return t ? A(t) ? [[t]] : g(s(t).map(function (e) {
      var n = t[e];
      return "string" == typeof n || n && Object.keys(n).length ? y(t[e]).map(function (t) {
        return [e].concat(t);
      }) : [[e]];
    })) : [[]];
  }

  function g(t) {
    var e;
    return (e = []).concat.apply(e, o([], i(t), !1));
  }

  function m(t) {
    return T(t) ? t : [t];
  }

  function S(t) {
    return void 0 === t ? [] : m(t);
  }

  function x(t, e, n) {
    var i, o;
    if (N(t)) return t(e, n.data);
    var a = {};

    try {
      for (var s = r(Object.keys(t)), c = s.next(); !c.done; c = s.next()) {
        var u = c.value,
            h = t[u];
        N(h) ? a[u] = h(e, n.data) : a[u] = h;
      }
    } catch (t) {
      i = {
        error: t
      };
    } finally {
      try {
        c && !c.done && (o = s["return"]) && o.call(s);
      } finally {
        if (i) throw i.error;
      }
    }

    return a;
  }

  function w(t) {
    return t instanceof Promise || !(null === t || !N(t) && "object" != typeof t || !N(t.then));
  }

  function b(t, e) {
    var n,
        o,
        a = i([[], []], 2),
        s = a[0],
        c = a[1];

    try {
      for (var u = r(t), h = u.next(); !h.done; h = u.next()) {
        var f = h.value;
        e(f) ? s.push(f) : c.push(f);
      }
    } catch (t) {
      n = {
        error: t
      };
    } finally {
      try {
        h && !h.done && (o = u["return"]) && o.call(u);
      } finally {
        if (n) throw n.error;
      }
    }

    return [s, c];
  }

  function _(t, e) {
    return d(t.states, function (t, n) {
      if (t) {
        var r = (A(e) ? void 0 : e[n]) || (t ? t.current : void 0);
        if (r) return {
          current: r,
          states: _(t, r)
3077 3078
        };
      }
limingzhe's avatar
limingzhe committed
3079 3080
    });
  }
limingzhe's avatar
limingzhe committed
3081

limingzhe's avatar
limingzhe committed
3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097
  function E(t, e, n, i) {
    return t ? n.reduce(function (t, n) {
      var o,
          a,
          c = n.assignment,
          u = {
        state: i,
        action: n,
        _event: e
      },
          h = {};
      if (N(c)) h = c(t, e.data, u);else try {
        for (var f = r(s(c)), l = f.next(); !l.done; l = f.next()) {
          var d = l.value,
              p = c[d];
          h[d] = N(p) ? p(t, e.data, u) : p;
3098 3099 3100 3101 3102 3103 3104
        }
      } catch (t) {
        o = {
          error: t
        };
      } finally {
        try {
limingzhe's avatar
limingzhe committed
3105
          l && !l.done && (a = f["return"]) && a.call(f);
3106 3107 3108 3109
        } finally {
          if (o) throw o.error;
        }
      }
limingzhe's avatar
limingzhe committed
3110 3111 3112
      return Object.assign({}, t, h);
    }, t) : t;
  }
limingzhe's avatar
limingzhe committed
3113

limingzhe's avatar
limingzhe committed
3114 3115 3116
  function T(t) {
    return Array.isArray(t);
  }
limingzhe's avatar
limingzhe committed
3117

limingzhe's avatar
limingzhe committed
3118 3119 3120
  function N(t) {
    return "function" == typeof t;
  }
limingzhe's avatar
limingzhe committed
3121

limingzhe's avatar
limingzhe committed
3122 3123 3124
  function A(t) {
    return "string" == typeof t;
  }
limingzhe's avatar
limingzhe committed
3125

limingzhe's avatar
limingzhe committed
3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136
  function O(t, e) {
    if (t) return A(t) ? {
      type: "xstate.guard",
      name: t,
      predicate: e ? e[t] : void 0
    } : N(t) ? {
      type: "xstate.guard",
      name: t.name,
      predicate: t
    } : t;
  }
limingzhe's avatar
limingzhe committed
3137

limingzhe's avatar
limingzhe committed
3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182
  var P = function () {
    return "function" == typeof Symbol && Symbol.observable || "@@observable";
  }();

  function k(t) {
    try {
      return "__xstatenode" in t;
    } catch (t) {
      return !1;
    }
  }

  var I,
      j,
      C = function () {
    var t = 0;
    return function () {
      return (++t).toString(16);
    };
  }();

  function V(t, n) {
    return A(t) || "number" == typeof t ? _e({
      type: t
    }, n) : t;
  }

  function L(t, n) {
    if (!A(t) && "$$type" in t && "scxml" === t.$$type) return t;
    var r = V(t);
    return _e({
      name: r.type,
      data: r,
      $$type: "scxml",
      type: "external"
    }, n);
  }

  function D(t, n) {
    return m(n).map(function (n) {
      return void 0 === n || "string" == typeof n || k(n) ? {
        target: n,
        event: t
      } : _e(_e({}, n), {
        event: t
3183
      });
limingzhe's avatar
limingzhe committed
3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245
    });
  }

  function R(t, e, n, r, i) {
    var o = t.options.guards,
        a = {
      state: i,
      cond: e,
      _event: r
    };
    if ("xstate.guard" === e.type) return ((null == o ? void 0 : o[e.name]) || e.predicate)(n, r.data, a);
    var s = o[e.type];
    if (!s) throw new Error("Guard '".concat(e.type, "' is not implemented on machine '").concat(t.id, "'."));
    return s(n, r.data, a);
  }

  function M(t) {
    return "string" == typeof t ? {
      type: t
    } : t;
  }

  function z(t, e, n) {
    if ("object" == typeof t) return t;

    var r = function r() {};

    return {
      next: t,
      error: e || r,
      complete: n || r
    };
  }

  (I = t.ActionTypes || (t.ActionTypes = {})).Start = "xstate.start", I.Stop = "xstate.stop", I.Raise = "xstate.raise", I.Send = "xstate.send", I.Cancel = "xstate.cancel", I.NullEvent = "", I.Assign = "xstate.assign", I.After = "xstate.after", I.DoneState = "done.state", I.DoneInvoke = "done.invoke", I.Log = "xstate.log", I.Init = "xstate.init", I.Invoke = "xstate.invoke", I.ErrorExecution = "error.execution", I.ErrorCommunication = "error.communication", I.ErrorPlatform = "error.platform", I.ErrorCustom = "xstate.error", I.Update = "xstate.update", I.Pure = "xstate.pure", I.Choose = "xstate.choose", (j = t.SpecialTargets || (t.SpecialTargets = {})).Parent = "#_parent", j.Internal = "#_internal";

  var F = function F(t) {
    return "atomic" === t.type || "final" === t.type;
  };

  function U(t) {
    return s(t.states).map(function (e) {
      return t.states[e];
    });
  }

  function B(t) {
    var e = [t];
    return F(t) ? e : e.concat(g(U(t).map(B)));
  }

  function J(t, e) {
    var n,
        i,
        o,
        a,
        s,
        c,
        u,
        h,
        f = q(new Set(t)),
        l = new Set(e);
limingzhe's avatar
limingzhe committed
3246

limingzhe's avatar
limingzhe committed
3247 3248 3249 3250
    try {
      for (var d = r(l), p = d.next(); !p.done; p = d.next()) {
        for (var v = (E = p.value).parent; v && !l.has(v);) {
          l.add(v), v = v.parent;
3251
        }
limingzhe's avatar
limingzhe committed
3252 3253 3254 3255 3256 3257 3258 3259
      }
    } catch (t) {
      n = {
        error: t
      };
    } finally {
      try {
        p && !p.done && (i = d["return"]) && i.call(d);
3260
      } finally {
limingzhe's avatar
limingzhe committed
3261
        if (n) throw n.error;
3262
      }
limingzhe's avatar
limingzhe committed
3263
    }
limingzhe's avatar
limingzhe committed
3264

limingzhe's avatar
limingzhe committed
3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300
    var y = q(l);

    try {
      for (var g = r(l), m = g.next(); !m.done; m = g.next()) {
        if ("compound" !== (E = m.value).type || y.get(E) && y.get(E).length) {
          if ("parallel" === E.type) try {
            for (var S = (s = void 0, r(U(E))), x = S.next(); !x.done; x = S.next()) {
              var w = x.value;
              "history" !== w.type && (l.has(w) || (l.add(w), f.get(w) ? f.get(w).forEach(function (t) {
                return l.add(t);
              }) : w.initialStateNodes.forEach(function (t) {
                return l.add(t);
              })));
            }
          } catch (t) {
            s = {
              error: t
            };
          } finally {
            try {
              x && !x.done && (c = S["return"]) && c.call(S);
            } finally {
              if (s) throw s.error;
            }
          }
        } else f.get(E) ? f.get(E).forEach(function (t) {
          return l.add(t);
        }) : E.initialStateNodes.forEach(function (t) {
          return l.add(t);
        });
      }
    } catch (t) {
      o = {
        error: t
      };
    } finally {
3301
      try {
limingzhe's avatar
limingzhe committed
3302
        m && !m.done && (a = g["return"]) && a.call(g);
3303
      } finally {
limingzhe's avatar
limingzhe committed
3304 3305 3306 3307 3308 3309 3310 3311 3312 3313
        if (o) throw o.error;
      }
    }

    try {
      for (var b = r(l), _ = b.next(); !_.done; _ = b.next()) {
        var E;

        for (v = (E = _.value).parent; v && !l.has(v);) {
          l.add(v), v = v.parent;
3314 3315
        }
      }
limingzhe's avatar
limingzhe committed
3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334
    } catch (t) {
      u = {
        error: t
      };
    } finally {
      try {
        _ && !_.done && (h = b["return"]) && h.call(b);
      } finally {
        if (u) throw u.error;
      }
    }

    return l;
  }

  function q(t) {
    var e,
        n,
        i = new Map();
limingzhe's avatar
limingzhe committed
3335

limingzhe's avatar
limingzhe committed
3336 3337 3338 3339 3340 3341 3342 3343 3344 3345
    try {
      for (var o = r(t), a = o.next(); !a.done; a = o.next()) {
        var s = a.value;
        i.has(s) || i.set(s, []), s.parent && (i.has(s.parent) || i.set(s.parent, []), i.get(s.parent).push(s));
      }
    } catch (t) {
      e = {
        error: t
      };
    } finally {
3346
      try {
limingzhe's avatar
limingzhe committed
3347
        a && !a.done && (n = o["return"]) && n.call(o);
3348
      } finally {
limingzhe's avatar
limingzhe committed
3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364
        if (e) throw e.error;
      }
    }

    return i;
  }

  function $(t, e) {
    return function t(e, n) {
      var r = n.get(e);
      if (!r) return {};

      if ("compound" === e.type) {
        var i = r[0];
        if (!i) return {};
        if (F(i)) return i.key;
3365
      }
limingzhe's avatar
limingzhe committed
3366

limingzhe's avatar
limingzhe committed
3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484
      var o = {};
      return r.forEach(function (e) {
        o[e.key] = t(e, n);
      }), o;
    }(t, q(J([t], e)));
  }

  function X(t, e) {
    return Array.isArray(t) ? t.some(function (t) {
      return t === e;
    }) : t instanceof Set && t.has(e);
  }

  function H(t, e) {
    return "compound" === e.type ? U(e).some(function (e) {
      return "final" === e.type && X(t, e);
    }) : "parallel" === e.type && U(e).every(function (e) {
      return H(t, e);
    });
  }

  function G(t) {
    return new Set(g(t.map(function (t) {
      return t.tags;
    })));
  }

  var K = t.ActionTypes.Start,
      Q = t.ActionTypes.Stop,
      W = t.ActionTypes.Raise,
      Y = t.ActionTypes.Send,
      Z = t.ActionTypes.Cancel,
      tt = t.ActionTypes.NullEvent,
      et = t.ActionTypes.Assign,
      nt = (t.ActionTypes.After, t.ActionTypes.DoneState, t.ActionTypes.Log),
      rt = t.ActionTypes.Init,
      it = t.ActionTypes.Invoke,
      ot = (t.ActionTypes.ErrorExecution, t.ActionTypes.ErrorPlatform),
      at = t.ActionTypes.ErrorCustom,
      st = t.ActionTypes.Update,
      ct = t.ActionTypes.Choose,
      ut = t.ActionTypes.Pure,
      ht = L({
    type: rt
  });

  function ft(t, e) {
    return e && e[t] || void 0;
  }

  function lt(t, n) {
    var r;
    if (A(t) || "number" == typeof t) r = N(i = ft(t, n)) ? {
      type: t,
      exec: i
    } : i || {
      type: t,
      exec: void 0
    };else if (N(t)) r = {
      type: t.name || t.toString(),
      exec: t
    };else {
      var i;
      if (N(i = ft(t.type, n))) r = _e(_e({}, t), {
        exec: i
      });else if (i) {
        var o = i.type || t.type;
        r = _e(_e(_e({}, i), t), {
          type: o
        });
      } else r = t;
    }
    return r;
  }

  var dt = function dt(t, e) {
    return t ? (T(t) ? t : [t]).map(function (t) {
      return lt(t, e);
    }) : [];
  };

  function pt(t) {
    var n = lt(t);
    return _e(_e({
      id: A(t) ? t : n.id
    }, n), {
      type: n.type
    });
  }

  function vt(e) {
    return A(e) ? {
      type: W,
      event: e
    } : yt(e, {
      to: t.SpecialTargets.Internal
    });
  }

  function yt(t, e) {
    return {
      to: e ? e.to : void 0,
      type: Y,
      event: N(t) ? t : V(t),
      delay: e ? e.delay : void 0,
      id: e && void 0 !== e.id ? e.id : N(t) ? t.name : u(t)
    };
  }

  function gt(n, r) {
    return yt(n, _e(_e({}, r), {
      to: t.SpecialTargets.Parent
    }));
  }

  function mt() {
    return gt(st);
  }
limingzhe's avatar
limingzhe committed
3485

limingzhe's avatar
limingzhe committed
3486 3487 3488 3489 3490 3491
  var St = function St(t, e) {
    return {
      context: t,
      event: e
    };
  };
limingzhe's avatar
limingzhe committed
3492

limingzhe's avatar
limingzhe committed
3493 3494 3495 3496 3497 3498
  var xt = function xt(t) {
    return {
      type: Z,
      sendId: t
    };
  };
limingzhe's avatar
limingzhe committed
3499

limingzhe's avatar
limingzhe committed
3500 3501 3502 3503 3504 3505 3506 3507
  function wt(e) {
    var n = pt(e);
    return {
      type: t.ActionTypes.Start,
      activity: n,
      exec: void 0
    };
  }
limingzhe's avatar
limingzhe committed
3508

limingzhe's avatar
limingzhe committed
3509 3510 3511 3512 3513 3514 3515 3516
  function bt(e) {
    var n = N(e) ? e : pt(e);
    return {
      type: t.ActionTypes.Stop,
      activity: n,
      exec: void 0
    };
  }
limingzhe's avatar
limingzhe committed
3517

limingzhe's avatar
limingzhe committed
3518 3519 3520 3521 3522 3523
  var _t = function _t(t) {
    return {
      type: et,
      assignment: t
    };
  };
limingzhe's avatar
limingzhe committed
3524

limingzhe's avatar
limingzhe committed
3525 3526 3527 3528
  function Et(e, n) {
    var r = n ? "#".concat(n) : "";
    return "".concat(t.ActionTypes.After, "(").concat(e, ")").concat(r);
  }
3529

limingzhe's avatar
limingzhe committed
3530 3531 3532 3533 3534 3535 3536
  function Tt(e, n) {
    var r = "".concat(t.ActionTypes.DoneState, ".").concat(e),
        i = {
      type: r,
      data: n,
      toString: function toString() {
        return r;
limingzhe's avatar
limingzhe committed
3537
      }
limingzhe's avatar
limingzhe committed
3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560
    };
    return i;
  }

  function Nt(e, n) {
    var r = "".concat(t.ActionTypes.DoneInvoke, ".").concat(e),
        i = {
      type: r,
      data: n,
      toString: function toString() {
        return r;
      }
    };
    return i;
  }

  function At(e, n) {
    var r = "".concat(t.ActionTypes.ErrorPlatform, ".").concat(e),
        i = {
      type: r,
      data: n,
      toString: function toString() {
        return r;
3561
      }
limingzhe's avatar
limingzhe committed
3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591
    };
    return i;
  }

  function Ot(t, n) {
    return yt(function (t, e) {
      return e;
    }, _e(_e({}, n), {
      to: t
    }));
  }

  function Pt(n, r, a, s, c, u) {
    void 0 === u && (u = !1);
    var h = i(u ? [[], c] : b(c, function (t) {
      return t.type === et;
    }), 2),
        f = h[0],
        l = h[1],
        d = f.length ? E(a, s, f, r) : a,
        p = u ? [a] : void 0;
    return [g(l.map(function (a) {
      var c;

      switch (a.type) {
        case W:
          return {
            type: W,
            _event: L(a.event)
          };
limingzhe's avatar
limingzhe committed
3592

3593
        case Y:
limingzhe's avatar
limingzhe committed
3594 3595 3596 3597 3598 3599
          return function (t, n, r, i) {
            var o,
                a = {
              _event: r
            },
                s = L(N(t.event) ? t.event(n, r.data, a) : t.event);
limingzhe's avatar
limingzhe committed
3600

limingzhe's avatar
limingzhe committed
3601 3602 3603 3604
            if (A(t.delay)) {
              var c = i && i[t.delay];
              o = N(c) ? c(n, r.data, a) : c;
            } else o = N(t.delay) ? t.delay(n, r.data, a) : t.delay;
limingzhe's avatar
limingzhe committed
3605

limingzhe's avatar
limingzhe committed
3606 3607 3608 3609 3610 3611 3612 3613
            var u = N(t.to) ? t.to(n, r.data, a) : t.to;
            return _e(_e({}, t), {
              to: u,
              _event: s,
              event: s.data,
              delay: o
            });
          }(a, d, s, n.options.delays);
limingzhe's avatar
limingzhe committed
3614

limingzhe's avatar
limingzhe committed
3615 3616 3617 3618 3619 3620 3621 3622
        case nt:
          return function (t, n, r) {
            return _e(_e({}, t), {
              value: A(t.expr) ? t.expr : t.expr(n, r.data, {
                _event: r
              })
            });
          }(a, d, s);
3623

limingzhe's avatar
limingzhe committed
3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640
        case ct:
          if (!(v = null === (c = a.conds.find(function (t) {
            var e = O(t.cond, n.options.guards);
            return !e || R(n, e, d, s, r);
          })) || void 0 === c ? void 0 : c.actions)) return [];
          var h = i(Pt(n, r, d, s, dt(S(v), n.options.actions), u), 2),
              f = h[0],
              l = h[1];
          return d = l, null == p || p.push(d), f;

        case ut:
          var v;
          if (!(v = a.get(d, s.data))) return [];
          var y = i(Pt(n, r, d, s, dt(S(v), n.options.actions), u), 2),
              g = y[0],
              m = y[1];
          return d = m, null == p || p.push(d), g;
3641 3642

        case Q:
limingzhe's avatar
limingzhe committed
3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655
          return function (e, n, r) {
            var i = N(e.activity) ? e.activity(n, r.data) : e.activity,
                o = "string" == typeof i ? {
              id: i
            } : i;
            return {
              type: t.ActionTypes.Stop,
              activity: o
            };
          }(a, d, s);

        case et:
          d = E(d, s, [a], r), null == p || p.push(d);
3656 3657
          break;

limingzhe's avatar
limingzhe committed
3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675
        default:
          var x = lt(a, n.options.actions),
              w = x.exec;

          if (w && p) {
            var b = p.length - 1;
            x = _e(_e({}, x), {
              exec: function exec(t) {
                for (var e = [], n = 1; n < arguments.length; n++) {
                  e[n - 1] = arguments[n];
                }

                w.apply(void 0, o([p[b]], i(e), !1));
              }
            });
          }

          return x;
limingzhe's avatar
limingzhe committed
3676
      }
limingzhe's avatar
limingzhe committed
3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695
    }).filter(function (t) {
      return !!t;
    })), d];
  }

  var kt = function () {
    function t(t) {
      var e,
          n,
          r = this;
      this.actions = [], this.activities = a, this.meta = {}, this.events = [], this.value = t.value, this.context = t.context, this._event = t._event, this._sessionid = t._sessionid, this.event = this._event.data, this.historyValue = t.historyValue, this.history = t.history, this.actions = t.actions || [], this.activities = t.activities || a, this.meta = (void 0 === (n = t.configuration) && (n = []), n.reduce(function (t, e) {
        return void 0 !== e.meta && (t[e.id] = e.meta), t;
      }, {})), this.events = t.events || [], this.matches = this.matches.bind(this), this.toStrings = this.toStrings.bind(this), this.configuration = t.configuration, this.transitions = t.transitions, this.children = t.children, this.done = !!t.done, this.tags = null !== (e = Array.isArray(t.tags) ? new Set(t.tags) : t.tags) && void 0 !== e ? e : new Set(), this.machine = t.machine, Object.defineProperty(this, "nextEvents", {
        get: function get() {
          return function (t) {
            return o([], i(new Set(g(o([], i(t.map(function (t) {
              return t.ownEvents;
            })), !1)))), !1);
          }(r.configuration);
3696
        }
limingzhe's avatar
limingzhe committed
3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799
      });
    }

    return t.from = function (e, n) {
      return e instanceof t ? e.context !== n ? new t({
        value: e.value,
        context: n,
        _event: e._event,
        _sessionid: null,
        historyValue: e.historyValue,
        history: e.history,
        actions: [],
        activities: e.activities,
        meta: {},
        events: [],
        configuration: [],
        transitions: [],
        children: {}
      }) : e : new t({
        value: e,
        context: n,
        _event: ht,
        _sessionid: null,
        historyValue: void 0,
        history: void 0,
        actions: [],
        activities: void 0,
        meta: void 0,
        events: [],
        configuration: [],
        transitions: [],
        children: {}
      });
    }, t.create = function (e) {
      return new t(e);
    }, t.inert = function (e, n) {
      if (e instanceof t) {
        if (!e.actions.length) return e;
        var r = ht;
        return new t({
          value: e.value,
          context: n,
          _event: r,
          _sessionid: null,
          historyValue: e.historyValue,
          history: e.history,
          activities: e.activities,
          configuration: e.configuration,
          transitions: [],
          children: {}
        });
      }

      return t.from(e, n);
    }, t.prototype.toStrings = function (t, e) {
      var n = this;
      if (void 0 === t && (t = this.value), void 0 === e && (e = "."), A(t)) return [t];
      var r = s(t);
      return r.concat.apply(r, o([], i(r.map(function (r) {
        return n.toStrings(t[r], e).map(function (t) {
          return r + e + t;
        });
      })), !1));
    }, t.prototype.toJSON = function () {
      var t = this,
          r = (t.configuration, t.transitions, t.tags),
          i = (t.machine, n(t, ["configuration", "transitions", "tags", "machine"]));
      return _e(_e({}, i), {
        tags: Array.from(r)
      });
    }, t.prototype.matches = function (t) {
      return c(t, this.value);
    }, t.prototype.hasTag = function (t) {
      return this.tags.has(t);
    }, t.prototype.can = function (t) {
      var e;
      return this.machine, !!(null === (e = this.machine) || void 0 === e ? void 0 : e.transition(this, t).changed);
    }, t;
  }(),
      It = [],
      jt = function jt(t, e) {
    It.push(t);
    var n = e(t);
    return It.pop(), n;
  };

  function Ct(t) {
    return {
      id: t,
      send: function send() {},
      subscribe: function subscribe() {
        return {
          unsubscribe: function unsubscribe() {}
        };
      },
      getSnapshot: function getSnapshot() {},
      toJSON: function toJSON() {
        return {
          id: t
        };
      }
    };
  }
limingzhe's avatar
limingzhe committed
3800

limingzhe's avatar
limingzhe committed
3801 3802
  function Vt(t, e, n) {
    var r = Ct(e);
limingzhe's avatar
limingzhe committed
3803

limingzhe's avatar
limingzhe committed
3804 3805 3806
    if (r.deferred = !0, k(t)) {
      var i = r.state = jt(void 0, function () {
        return (n ? t.withContext(n) : t).initialState;
3807
      });
limingzhe's avatar
limingzhe committed
3808

limingzhe's avatar
limingzhe committed
3809 3810
      r.getSnapshot = function () {
        return i;
3811
      };
limingzhe's avatar
limingzhe committed
3812
    }
limingzhe's avatar
limingzhe committed
3813

limingzhe's avatar
limingzhe committed
3814 3815
    return r;
  }
limingzhe's avatar
limingzhe committed
3816

limingzhe's avatar
limingzhe committed
3817 3818 3819 3820 3821 3822
  function Lt(t) {
    if ("string" == typeof t) {
      var e = {
        type: t,
        toString: function toString() {
          return t;
3823 3824
        }
      };
limingzhe's avatar
limingzhe committed
3825 3826
      return e;
    }
limingzhe's avatar
limingzhe committed
3827

limingzhe's avatar
limingzhe committed
3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841
    return t;
  }

  function Dt(t) {
    return _e(_e({
      type: it
    }, t), {
      toJSON: function toJSON() {
        t.onDone, t.onError;
        var r = n(t, ["onDone", "onError"]);
        return _e(_e({}, r), {
          type: it,
          src: Lt(t.src)
        });
limingzhe's avatar
limingzhe committed
3842
      }
limingzhe's avatar
limingzhe committed
3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888
    });
  }

  var Rt = {},
      Mt = function Mt(t) {
    return "#" === t[0];
  },
      zt = function () {
    function a(t, n, c) {
      var u,
          h = this;
      void 0 === c && (c = "context" in t ? t.context : void 0), this.config = t, this._context = c, this.order = -1, this.__xstatenode = !0, this.__cache = {
        events: void 0,
        relativeValue: new Map(),
        initialStateValue: void 0,
        initialState: void 0,
        on: void 0,
        transitions: void 0,
        candidates: {},
        delayedTransitions: void 0
      }, this.idMap = {}, this.tags = [], this.options = Object.assign({
        actions: {},
        guards: {},
        services: {},
        activities: {},
        delays: {}
      }, n), this.parent = this.options._parent, this.key = this.config.key || this.options._key || this.config.id || "(machine)", this.machine = this.parent ? this.parent.machine : this, this.path = this.parent ? this.parent.path.concat(this.key) : [], this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : "."), this.id = this.config.id || o([this.machine.key], i(this.path), !1).join(this.delimiter), this.version = this.parent ? this.parent.version : this.config.version, this.type = this.config.type || (this.config.parallel ? "parallel" : this.config.states && s(this.config.states).length ? "compound" : this.config.history ? "history" : "atomic"), this.schema = this.parent ? this.machine.schema : null !== (u = this.config.schema) && void 0 !== u ? u : {}, this.description = this.config.description, this.initial = this.config.initial, this.states = this.config.states ? d(this.config.states, function (t, n) {
        var r,
            i = new a(t, {
          _parent: h,
          _key: n
        });
        return Object.assign(h.idMap, _e(((r = {})[i.id] = i, r), i.idMap)), i;
      }) : Rt;
      var f = 0;
      !function t(e) {
        var n, i;
        e.order = f++;

        try {
          for (var o = r(U(e)), a = o.next(); !a.done; a = o.next()) {
            t(a.value);
          }
        } catch (t) {
          n = {
            error: t
3889
          };
limingzhe's avatar
limingzhe committed
3890 3891 3892 3893 3894 3895
        } finally {
          try {
            a && !a.done && (i = o["return"]) && i.call(o);
          } finally {
            if (n) throw n.error;
          }
limingzhe's avatar
limingzhe committed
3896
        }
limingzhe's avatar
limingzhe committed
3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912
      }(this), this.history = !0 === this.config.history ? "shallow" : this.config.history || !1, this._transient = !!this.config.always || !!this.config.on && (Array.isArray(this.config.on) ? this.config.on.some(function (t) {
        return "" === t.event;
      }) : "" in this.config.on), this.strict = !!this.config.strict, this.onEntry = S(this.config.entry || this.config.onEntry).map(function (t) {
        return lt(t);
      }), this.onExit = S(this.config.exit || this.config.onExit).map(function (t) {
        return lt(t);
      }), this.meta = this.config.meta, this.doneData = "final" === this.type ? this.config.data : void 0, this.invoke = S(this.config.invoke).map(function (t, n) {
        var r, i;
        if (k(t)) return h.machine.options.services = _e(((r = {})[t.id] = t, r), h.machine.options.services), Dt({
          src: t.id,
          id: t.id
        });
        if (A(t.src)) return Dt(_e(_e({}, t), {
          id: t.id || t.src,
          src: t.src
        }));
limingzhe's avatar
limingzhe committed
3913

limingzhe's avatar
limingzhe committed
3914 3915 3916 3917 3918 3919 3920
        if (k(t.src) || N(t.src)) {
          var o = "".concat(h.id, ":invocation[").concat(n, "]");
          return h.machine.options.services = _e(((i = {})[o] = t.src, i), h.machine.options.services), Dt(_e(_e({
            id: o
          }, t), {
            src: o
          }));
3921
        }
limingzhe's avatar
limingzhe committed
3922

limingzhe's avatar
limingzhe committed
3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029
        var a = t.src;
        return Dt(_e(_e({
          id: a.type
        }, t), {
          src: a
        }));
      }), this.activities = S(this.config.activities).concat(this.invoke).map(function (t) {
        return pt(t);
      }), this.transition = this.transition.bind(this), this.tags = S(this.config.tags);
    }

    return a.prototype._init = function () {
      this.__cache.transitions || B(this).forEach(function (t) {
        return t.on;
      });
    }, a.prototype.withConfig = function (t, n) {
      var r = this.options,
          i = r.actions,
          o = r.activities,
          s = r.guards,
          c = r.services,
          u = r.delays;
      return new a(this.config, {
        actions: _e(_e({}, i), t.actions),
        activities: _e(_e({}, o), t.activities),
        guards: _e(_e({}, s), t.guards),
        services: _e(_e({}, c), t.services),
        delays: _e(_e({}, u), t.delays)
      }, null != n ? n : this.context);
    }, a.prototype.withContext = function (t) {
      return new a(this.config, this.options, t);
    }, Object.defineProperty(a.prototype, "context", {
      get: function get() {
        return N(this._context) ? this._context() : this._context;
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "definition", {
      get: function get() {
        return {
          id: this.id,
          key: this.key,
          version: this.version,
          context: this.context,
          type: this.type,
          initial: this.initial,
          history: this.history,
          states: d(this.states, function (t) {
            return t.definition;
          }),
          on: this.on,
          transitions: this.transitions,
          entry: this.onEntry,
          exit: this.onExit,
          activities: this.activities || [],
          meta: this.meta,
          order: this.order || -1,
          data: this.doneData,
          invoke: this.invoke,
          description: this.description,
          tags: this.tags
        };
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.toJSON = function () {
      return this.definition;
    }, Object.defineProperty(a.prototype, "on", {
      get: function get() {
        if (this.__cache.on) return this.__cache.on;
        var t = this.transitions;
        return this.__cache.on = t.reduce(function (t, e) {
          return t[e.eventType] = t[e.eventType] || [], t[e.eventType].push(e), t;
        }, {});
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "after", {
      get: function get() {
        return this.__cache.delayedTransitions || (this.__cache.delayedTransitions = this.getDelayedTransitions(), this.__cache.delayedTransitions);
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "transitions", {
      get: function get() {
        return this.__cache.transitions || (this.__cache.transitions = this.formatTransitions(), this.__cache.transitions);
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.getCandidates = function (t) {
      if (this.__cache.candidates[t]) return this.__cache.candidates[t];
      var e = "" === t,
          n = this.transitions.filter(function (n) {
        var r = n.eventType === t;
        return e ? r : r || "*" === n.eventType;
      });
      return this.__cache.candidates[t] = n, n;
    }, a.prototype.getDelayedTransitions = function () {
      var t = this,
          n = this.config.after;
      if (!n) return [];

      var r = function r(e, n) {
        var r = Et(N(e) ? "".concat(t.id, ":delay[").concat(n, "]") : e, t.id);
        return t.onEntry.push(yt(r, {
          delay: e
        })), t.onExit.push(xt(r)), r;
4030
      };
limingzhe's avatar
limingzhe committed
4031

limingzhe's avatar
limingzhe committed
4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060
      return (T(n) ? n.map(function (t, n) {
        var i = r(t.delay, n);
        return _e(_e({}, t), {
          event: i
        });
      }) : g(s(n).map(function (t, i) {
        var o = n[t],
            a = A(o) ? {
          target: o
        } : o,
            s = isNaN(+t) ? t : +t,
            c = r(s, i);
        return S(a).map(function (t) {
          return _e(_e({}, t), {
            event: c,
            delay: s
          });
        });
      }))).map(function (n) {
        var r = n.delay;
        return _e(_e({}, t.formatTransition(n)), {
          delay: r
        });
      });
    }, a.prototype.getStateNodes = function (t) {
      var e,
          n = this;
      if (!t) return [];
      var r = t instanceof kt ? t.value : f(t, this.delimiter);
limingzhe's avatar
limingzhe committed
4061

limingzhe's avatar
limingzhe committed
4062 4063 4064 4065
      if (A(r)) {
        var i = this.getStateNode(r).initial;
        return void 0 !== i ? this.getStateNodes(((e = {})[r] = i, e)) : [this, this.states[r]];
      }
limingzhe's avatar
limingzhe committed
4066

limingzhe's avatar
limingzhe committed
4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097
      var o = s(r),
          a = o.map(function (t) {
        return n.getStateNode(t);
      });
      return a.push(this), a.concat(o.reduce(function (t, e) {
        var i = n.getStateNode(e).getStateNodes(r[e]);
        return t.concat(i);
      }, []));
    }, a.prototype.handles = function (t) {
      var e = u(t);
      return this.events.includes(e);
    }, a.prototype.resolveState = function (t) {
      var n = Array.from(J([], this.getStateNodes(t.value)));
      return new kt(_e(_e({}, t), {
        value: this.resolve(t.value),
        configuration: n,
        done: H(n, this),
        tags: G(n)
      }));
    }, a.prototype.transitionLeafNode = function (t, e, n) {
      var r = this.getStateNode(t).next(e, n);
      return r && r.transitions.length ? r : this.next(e, n);
    }, a.prototype.transitionCompoundNode = function (t, e, n) {
      var r = s(t),
          i = this.getStateNode(r[0])._transition(t[r[0]], e, n);

      return i && i.transitions.length ? i : this.next(e, n);
    }, a.prototype.transitionParallelNode = function (t, e, n) {
      var i,
          o,
          a = {};
limingzhe's avatar
limingzhe committed
4098

limingzhe's avatar
limingzhe committed
4099 4100 4101 4102
      try {
        for (var c = r(s(t)), u = c.next(); !u.done; u = c.next()) {
          var h = u.value,
              f = t[h];
limingzhe's avatar
limingzhe committed
4103

limingzhe's avatar
limingzhe committed
4104 4105
          if (f) {
            var l = this.getStateNode(h)._transition(f, e, n);
limingzhe's avatar
limingzhe committed
4106

limingzhe's avatar
limingzhe committed
4107 4108
            l && (a[h] = l);
          }
4109
        }
limingzhe's avatar
limingzhe committed
4110 4111 4112
      } catch (t) {
        i = {
          error: t
4113
        };
limingzhe's avatar
limingzhe committed
4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135
      } finally {
        try {
          u && !u.done && (o = c["return"]) && o.call(c);
        } finally {
          if (i) throw i.error;
        }
      }

      var d = s(a).map(function (t) {
        return a[t];
      }),
          p = g(d.map(function (t) {
        return t.transitions;
      }));
      if (!d.some(function (t) {
        return t.transitions.length > 0;
      })) return this.next(e, n);
      var v = g(d.map(function (t) {
        return t.entrySet;
      })),
          y = g(s(a).map(function (t) {
        return a[t].configuration;
4136 4137
      }));
      return {
limingzhe's avatar
limingzhe committed
4138 4139 4140 4141 4142 4143 4144 4145 4146 4147
        transitions: p,
        entrySet: v,
        exitSet: g(d.map(function (t) {
          return t.exitSet;
        })),
        configuration: y,
        source: e,
        actions: g(s(a).map(function (t) {
          return a[t].actions;
        }))
4148
      };
limingzhe's avatar
limingzhe committed
4149 4150 4151 4152 4153 4154 4155 4156 4157 4158
    }, a.prototype._transition = function (t, e, n) {
      return A(t) ? this.transitionLeafNode(t, e, n) : 1 === s(t).length ? this.transitionCompoundNode(t, e, n) : this.transitionParallelNode(t, e, n);
    }, a.prototype.next = function (t, e) {
      var n,
          a,
          s,
          u = this,
          h = e.name,
          l = [],
          d = [];
limingzhe's avatar
limingzhe committed
4159

4160
      try {
limingzhe's avatar
limingzhe committed
4161 4162 4163 4164 4165 4166 4167
        for (var p = r(this.getCandidates(h)), y = p.next(); !y.done; y = p.next()) {
          var m = y.value,
              S = m.cond,
              x = m["in"],
              w = t.context,
              b = !x || (A(x) && Mt(x) ? t.matches(f(this.getStateNodeById(x).path, this.delimiter)) : c(f(x, this.delimiter), v(this.path.slice(0, -2))(t.value))),
              _ = !1;
limingzhe's avatar
limingzhe committed
4168

limingzhe's avatar
limingzhe committed
4169 4170 4171 4172 4173
          try {
            _ = !S || R(this.machine, S, w, e, t);
          } catch (t) {
            throw new Error("Unable to evaluate guard '".concat(S.name || S.type, "' in transition for event '").concat(h, "' in state node '").concat(this.id, "':\n").concat(t.message));
          }
limingzhe's avatar
limingzhe committed
4174

limingzhe's avatar
limingzhe committed
4175 4176 4177 4178 4179 4180 4181 4182 4183
          if (_ && b) {
            void 0 !== m.target && (d = m.target), l.push.apply(l, o([], i(m.actions), !1)), s = m;
            break;
          }
        }
      } catch (t) {
        n = {
          error: t
        };
4184
      } finally {
limingzhe's avatar
limingzhe committed
4185 4186 4187 4188 4189
        try {
          y && !y.done && (a = p["return"]) && a.call(p);
        } finally {
          if (n) throw n.error;
        }
4190 4191
      }

limingzhe's avatar
limingzhe committed
4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217
      if (s) {
        if (!d.length) return {
          transitions: [s],
          entrySet: [],
          exitSet: [],
          configuration: t.value ? [this] : [],
          source: t,
          actions: l
        };
        var E = g(d.map(function (e) {
          return u.getRelativeStateNodes(e, t.historyValue);
        })),
            T = !!s.internal;
        return {
          transitions: [s],
          entrySet: T ? [] : g(E.map(function (t) {
            return u.nodesFromChild(t);
          })),
          exitSet: T ? [] : [this],
          configuration: E,
          source: t,
          actions: l
        };
      }
    }, a.prototype.nodesFromChild = function (t) {
      if (t.escapes(this)) return [];
4218

limingzhe's avatar
limingzhe committed
4219 4220 4221
      for (var e = [], n = t; n && n !== this;) {
        e.push(n), n = n.parent;
      }
limingzhe's avatar
limingzhe committed
4222

limingzhe's avatar
limingzhe committed
4223 4224 4225
      return e.push(this), e;
    }, a.prototype.escapes = function (t) {
      if (this === t) return !1;
4226

limingzhe's avatar
limingzhe committed
4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239
      for (var e = this.parent; e;) {
        if (e === t) return !1;
        e = e.parent;
      }

      return !0;
    }, a.prototype.getActions = function (t, e, n, a) {
      var s,
          c,
          u,
          h,
          f = J([], a ? this.getStateNodes(a.value) : [this]),
          l = t.configuration.length ? J(f, t.configuration) : f;
limingzhe's avatar
limingzhe committed
4240

limingzhe's avatar
limingzhe committed
4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255
      try {
        for (var d = r(l), p = d.next(); !p.done; p = d.next()) {
          X(f, m = p.value) || t.entrySet.push(m);
        }
      } catch (t) {
        s = {
          error: t
        };
      } finally {
        try {
          p && !p.done && (c = d["return"]) && c.call(d);
        } finally {
          if (s) throw s.error;
        }
      }
limingzhe's avatar
limingzhe committed
4256

limingzhe's avatar
limingzhe committed
4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272
      try {
        for (var v = r(f), y = v.next(); !y.done; y = v.next()) {
          var m;
          X(l, m = y.value) && !X(t.exitSet, m.parent) || t.exitSet.push(m);
        }
      } catch (t) {
        u = {
          error: t
        };
      } finally {
        try {
          y && !y.done && (h = v["return"]) && h.call(v);
        } finally {
          if (u) throw u.error;
        }
      }
limingzhe's avatar
limingzhe committed
4273

limingzhe's avatar
limingzhe committed
4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290
      t.source || (t.exitSet = [], t.entrySet.push(this));
      var S = g(t.entrySet.map(function (r) {
        var i = [];
        if ("final" !== r.type) return i;
        var o = r.parent;
        if (!o.parent) return i;
        i.push(Tt(r.id, r.doneData), Tt(o.id, r.doneData ? x(r.doneData, e, n) : void 0));
        var a = o.parent;
        return "parallel" === a.type && U(a).every(function (e) {
          return H(t.configuration, e);
        }) && i.push(Tt(a.id)), i;
      }));
      t.exitSet.sort(function (t, e) {
        return e.order - t.order;
      }), t.entrySet.sort(function (t, e) {
        return t.order - e.order;
      });
4291

limingzhe's avatar
limingzhe committed
4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304
      var w = new Set(t.entrySet),
          b = new Set(t.exitSet),
          _ = i([g(Array.from(w).map(function (t) {
        return o(o([], i(t.activities.map(function (t) {
          return wt(t);
        })), !1), i(t.onEntry), !1);
      })).concat(S.map(vt)), g(Array.from(b).map(function (t) {
        return o(o([], i(t.onExit), !1), i(t.activities.map(function (t) {
          return bt(t);
        })), !1);
      }))], 2),
          E = _[0],
          T = _[1];
4305

limingzhe's avatar
limingzhe committed
4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344
      return dt(T.concat(t.actions).concat(E), this.machine.options.actions);
    }, a.prototype.transition = function (t, e, n) {
      void 0 === t && (t = this.initialState);
      var r,
          a,
          s = L(e);
      if (t instanceof kt) r = void 0 === n ? t : this.resolveState(kt.from(t, n));else {
        var c = A(t) ? this.resolve(l(this.getResolvedPath(t))) : this.resolve(t),
            u = null != n ? n : this.machine.context;
        r = this.resolveState(kt.from(c, u));
      }
      if (this.strict && !this.events.includes(s.name) && (a = s.name, !/^(done|error)\./.test(a))) throw new Error("Machine '".concat(this.id, "' does not accept event '").concat(s.name, "'"));
      var h = this._transition(r.value, r, s) || {
        transitions: [],
        configuration: [],
        entrySet: [],
        exitSet: [],
        source: r,
        actions: []
      },
          f = J([], this.getStateNodes(r.value)),
          d = h.configuration.length ? J(f, h.configuration) : f;
      return h.configuration = o([], i(d), !1), this.resolveTransition(h, r, s);
    }, a.prototype.resolveRaisedTransition = function (t, e, n) {
      var r,
          a = t.actions;
      return (t = this.transition(t, e))._event = n, t.event = n.data, (r = t.actions).unshift.apply(r, o([], i(a), !1)), t;
    }, a.prototype.resolveTransition = function (n, o, a, c) {
      var u,
          h,
          f = this;
      void 0 === a && (a = ht), void 0 === c && (c = this.machine.context);
      var l = n.configuration,
          d = !o || n.transitions.length > 0,
          p = d ? $(this.machine, l) : void 0,
          v = o ? o.historyValue ? o.historyValue : n.source ? this.machine.historyValue(o.value) : void 0 : void 0,
          y = o ? o.context : c,
          g = this.getActions(n, y, a, o),
          m = o ? _e({}, o.activities) : {};
4345

limingzhe's avatar
limingzhe committed
4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449
      try {
        for (var S = r(g), w = S.next(); !w.done; w = S.next()) {
          var E = w.value;
          E.type === K ? m[E.activity.id || E.activity.type] = E : E.type === Q && (m[E.activity.id || E.activity.type] = !1);
        }
      } catch (t) {
        u = {
          error: t
        };
      } finally {
        try {
          w && !w.done && (h = S["return"]) && h.call(S);
        } finally {
          if (u) throw u.error;
        }
      }

      var T,
          N,
          O = i(Pt(this, o, y, a, g, this.machine.config.preserveActionOrder), 2),
          P = O[0],
          k = O[1],
          I = i(b(P, function (e) {
        return e.type === W || e.type === Y && e.to === t.SpecialTargets.Internal;
      }), 2),
          j = I[0],
          C = I[1],
          V = P.filter(function (t) {
        var e;
        return t.type === K && (null === (e = t.activity) || void 0 === e ? void 0 : e.type) === it;
      }).reduce(function (t, e) {
        return t[e.activity.id] = function (t, e, n, r) {
          var i,
              o = M(t.src),
              a = null === (i = null == e ? void 0 : e.options.services) || void 0 === i ? void 0 : i[o.type],
              s = t.data ? x(t.data, n, r) : void 0,
              c = a ? Vt(a, t.id, s) : Ct(t.id);
          return c.meta = t, c;
        }(e.activity, f.machine, k, a), t;
      }, o ? _e({}, o.children) : {}),
          L = p ? n.configuration : o ? o.configuration : [],
          D = H(L, this),
          R = new kt({
        value: p || o.value,
        context: k,
        _event: a,
        _sessionid: o ? o._sessionid : null,
        historyValue: p ? v ? (T = v, N = p, {
          current: N,
          states: _(T, N)
        }) : void 0 : o ? o.historyValue : void 0,
        history: !p || n.source ? o : void 0,
        actions: p ? C : [],
        activities: p ? m : o ? o.activities : {},
        events: [],
        configuration: L,
        transitions: n.transitions,
        children: V,
        done: D,
        tags: null == o ? void 0 : o.tags,
        machine: this
      }),
          z = y !== k;
      R.changed = a.name === st || z;
      var F = R.history;
      F && delete F.history;
      var U = !D && (this._transient || l.some(function (t) {
        return t._transient;
      }));
      if (!(d || U && "" !== a.name)) return R;
      var B = R;
      if (!D) for (U && (B = this.resolveRaisedTransition(B, {
        type: tt
      }, a)); j.length;) {
        var J = j.shift();
        B = this.resolveRaisedTransition(B, J._event, a);
      }
      var q = B.changed || (F ? !!B.actions.length || z || typeof F.value != typeof B.value || !function t(e, n) {
        if (e === n) return !0;
        if (void 0 === e || void 0 === n) return !1;
        if (A(e) || A(n)) return e === n;
        var r = s(e),
            i = s(n);
        return r.length === i.length && r.every(function (r) {
          return t(e[r], n[r]);
        });
      }(B.value, F.value) : void 0);
      return B.changed = q, B.history = F, B.tags = G(B.configuration), B;
    }, a.prototype.getStateNode = function (t) {
      if (Mt(t)) return this.machine.getStateNodeById(t);
      if (!this.states) throw new Error("Unable to retrieve child state '".concat(t, "' from '").concat(this.id, "'; no child states exist."));
      var e = this.states[t];
      if (!e) throw new Error("Child state '".concat(t, "' does not exist on '").concat(this.id, "'"));
      return e;
    }, a.prototype.getStateNodeById = function (t) {
      var e = Mt(t) ? t.slice("#".length) : t;
      if (e === this.id) return this;
      var n = this.machine.idMap[e];
      if (!n) throw new Error("Child state node '#".concat(e, "' does not exist on machine '").concat(this.id, "'"));
      return n;
    }, a.prototype.getStateNodeByPath = function (t) {
      if ("string" == typeof t && Mt(t)) try {
        return this.getStateNodeById(t.slice(1));
      } catch (t) {}
4450

limingzhe's avatar
limingzhe committed
4451 4452 4453 4454 4455
      for (var e = h(t, this.delimiter).slice(), n = this; e.length;) {
        var r = e.shift();
        if (!r.length) break;
        n = n.getStateNode(r);
      }
4456

limingzhe's avatar
limingzhe committed
4457 4458 4459 4460 4461
      return n;
    }, a.prototype.resolve = function (t) {
      var e,
          n = this;
      if (!t) return this.initialStateValue || Rt;
4462

limingzhe's avatar
limingzhe committed
4463 4464 4465 4466 4467
      switch (this.type) {
        case "parallel":
          return d(this.initialStateValue, function (e, r) {
            return e ? n.getStateNode(r).resolve(t[r] || e) : Rt;
          });
4468

limingzhe's avatar
limingzhe committed
4469 4470 4471 4472 4473
        case "compound":
          if (A(t)) {
            var r = this.getStateNode(t);
            return "parallel" === r.type || "compound" === r.type ? ((e = {})[t] = r.initialStateValue, e) : t;
          }
4474

limingzhe's avatar
limingzhe committed
4475 4476 4477
          return s(t).length ? d(t, function (t, e) {
            return t ? n.getStateNode(e).resolve(t) : Rt;
          }) : this.initialStateValue || {};
4478

limingzhe's avatar
limingzhe committed
4479 4480 4481 4482 4483 4484 4485 4486 4487
        default:
          return t || Rt;
      }
    }, a.prototype.getResolvedPath = function (t) {
      if (Mt(t)) {
        var e = this.machine.idMap[t.slice("#".length)];
        if (!e) throw new Error("Unable to find state node '".concat(t, "'"));
        return e.path;
      }
4488

limingzhe's avatar
limingzhe committed
4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518
      return h(t, this.delimiter);
    }, Object.defineProperty(a.prototype, "initialStateValue", {
      get: function get() {
        var t, e;
        if (this.__cache.initialStateValue) return this.__cache.initialStateValue;
        if ("parallel" === this.type) e = p(this.states, function (t) {
          return t.initialStateValue || Rt;
        }, function (t) {
          return !("history" === t.type);
        });else if (void 0 !== this.initial) {
          if (!this.states[this.initial]) throw new Error("Initial state '".concat(this.initial, "' not found on '").concat(this.key, "'"));
          e = F(this.states[this.initial]) ? this.initial : ((t = {})[this.initial] = this.states[this.initial].initialStateValue, t);
        } else e = {};
        return this.__cache.initialStateValue = e, this.__cache.initialStateValue;
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.getInitialState = function (t, e) {
      var n = this.getStateNodes(t);
      return this.resolveTransition({
        configuration: n,
        entrySet: n,
        exitSet: [],
        transitions: [],
        source: void 0,
        actions: []
      }, void 0, void 0, e);
    }, Object.defineProperty(a.prototype, "initialState", {
      get: function get() {
        this._init();
4519

limingzhe's avatar
limingzhe committed
4520 4521 4522 4523 4524 4525 4526 4527 4528
        var t = this.initialStateValue;
        if (!t) throw new Error("Cannot retrieve initial state from simple state '".concat(this.id, "'."));
        return this.getInitialState(t);
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "target", {
      get: function get() {
        var t;
4529

limingzhe's avatar
limingzhe committed
4530 4531 4532 4533
        if ("history" === this.type) {
          var e = this.config;
          t = A(e.target) && Mt(e.target) ? l(this.machine.getStateNodeById(e.target).path.slice(this.path.length - 1)) : e.target;
        }
4534

limingzhe's avatar
limingzhe committed
4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574
        return t;
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.getRelativeStateNodes = function (t, e, n) {
      return void 0 === n && (n = !0), n ? "history" === t.type ? t.resolveHistory(e) : t.initialStateNodes : [t];
    }, Object.defineProperty(a.prototype, "initialStateNodes", {
      get: function get() {
        var t = this;
        return F(this) ? [this] : "compound" !== this.type || this.initial ? g(y(this.initialStateValue).map(function (e) {
          return t.getFromRelativePath(e);
        })) : [this];
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.getFromRelativePath = function (t) {
      if (!t.length) return [this];
      var e = i(t),
          n = e[0],
          r = e.slice(1);
      if (!this.states) throw new Error("Cannot retrieve subPath '".concat(n, "' from node with no states"));
      var o = this.getStateNode(n);
      if ("history" === o.type) return o.resolveHistory();
      if (!this.states[n]) throw new Error("Child state '".concat(n, "' does not exist on '").concat(this.id, "'"));
      return this.states[n].getFromRelativePath(r);
    }, a.prototype.historyValue = function (t) {
      if (s(this.states).length) return {
        current: t || this.initialStateValue,
        states: p(this.states, function (e, n) {
          if (!t) return e.historyValue();
          var r = A(t) ? void 0 : t[n];
          return e.historyValue(r || e.initialStateValue);
        }, function (t) {
          return !t.history;
        })
      };
    }, a.prototype.resolveHistory = function (t) {
      var e = this;
      if ("history" !== this.type) return [this];
      var n = this.parent;
4575

limingzhe's avatar
limingzhe committed
4576 4577 4578 4579 4580 4581
      if (!t) {
        var i = this.target;
        return i ? g(y(i).map(function (t) {
          return n.getFromRelativePath(t);
        })) : n.initialStateNodes;
      }
4582

limingzhe's avatar
limingzhe committed
4583 4584 4585 4586 4587 4588
      var o,
          a,
          s = (o = n.path, a = "states", function (t) {
        var e,
            n,
            i = t;
4589

limingzhe's avatar
limingzhe committed
4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681
        try {
          for (var s = r(o), c = s.next(); !c.done; c = s.next()) {
            var u = c.value;
            i = i[a][u];
          }
        } catch (t) {
          e = {
            error: t
          };
        } finally {
          try {
            c && !c.done && (n = s["return"]) && n.call(s);
          } finally {
            if (e) throw e.error;
          }
        }

        return i;
      })(t).current;
      return A(s) ? [n.getStateNode(s)] : g(y(s).map(function (t) {
        return "deep" === e.history ? n.getFromRelativePath(t) : [n.states[t[0]]];
      }));
    }, Object.defineProperty(a.prototype, "stateIds", {
      get: function get() {
        var t = this,
            e = g(s(this.states).map(function (e) {
          return t.states[e].stateIds;
        }));
        return [this.id].concat(e);
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "events", {
      get: function get() {
        var t, e, n, i;
        if (this.__cache.events) return this.__cache.events;
        var o = this.states,
            a = new Set(this.ownEvents);
        if (o) try {
          for (var c = r(s(o)), u = c.next(); !u.done; u = c.next()) {
            var h = o[u.value];
            if (h.states) try {
              for (var f = (n = void 0, r(h.events)), l = f.next(); !l.done; l = f.next()) {
                var d = l.value;
                a.add("".concat(d));
              }
            } catch (t) {
              n = {
                error: t
              };
            } finally {
              try {
                l && !l.done && (i = f["return"]) && i.call(f);
              } finally {
                if (n) throw n.error;
              }
            }
          }
        } catch (e) {
          t = {
            error: e
          };
        } finally {
          try {
            u && !u.done && (e = c["return"]) && e.call(c);
          } finally {
            if (t) throw t.error;
          }
        }
        return this.__cache.events = Array.from(a);
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(a.prototype, "ownEvents", {
      get: function get() {
        var t = new Set(this.transitions.filter(function (t) {
          return !(!t.target && !t.actions.length && t.internal);
        }).map(function (t) {
          return t.eventType;
        }));
        return Array.from(t);
      },
      enumerable: !1,
      configurable: !0
    }), a.prototype.resolveTarget = function (t) {
      var e = this;
      if (void 0 !== t) return t.map(function (t) {
        if (!A(t)) return t;
        var n = t[0] === e.delimiter;
        if (n && !e.parent) return e.getStateNodeByPath(t.slice(1));
        var r = n ? e.key + t : t;
        if (!e.parent) return e.getStateNodeByPath(r);
4682

limingzhe's avatar
limingzhe committed
4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714
        try {
          return e.parent.getStateNodeByPath(r);
        } catch (t) {
          throw new Error("Invalid transition definition for state node '".concat(e.id, "':\n").concat(t.message));
        }
      });
    }, a.prototype.formatTransition = function (t) {
      var n = this,
          r = function (t) {
        if (void 0 !== t && "" !== t) return S(t);
      }(t.target),
          i = "internal" in t ? t.internal : !r || r.some(function (t) {
        return A(t) && t[0] === n.delimiter;
      }),
          o = this.machine.options.guards,
          a = this.resolveTarget(r),
          s = _e(_e({}, t), {
        actions: dt(S(t.actions)),
        cond: O(t.cond, o),
        target: a,
        source: this,
        internal: i,
        eventType: t.event,
        toJSON: function toJSON() {
          return _e(_e({}, s), {
            target: s.target ? s.target.map(function (t) {
              return "#".concat(t.id);
            }) : void 0,
            source: "#".concat(n.id)
          });
        }
      });
4715

limingzhe's avatar
limingzhe committed
4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744
      return s;
    }, a.prototype.formatTransitions = function () {
      var t,
          e,
          a,
          c = this;
      if (this.config.on) {
        if (Array.isArray(this.config.on)) a = this.config.on;else {
          var u = this.config.on,
              h = u["*"],
              f = void 0 === h ? [] : h,
              l = n(u, ["*"]);
          a = g(s(l).map(function (t) {
            return D(t, l[t]);
          }).concat(D("*", f)));
        }
      } else a = [];
      var d = this.config.always ? D("", this.config.always) : [],
          p = this.config.onDone ? D(String(Tt(this.id)), this.config.onDone) : [],
          v = g(this.invoke.map(function (t) {
        var e = [];
        return t.onDone && e.push.apply(e, o([], i(D(String(Nt(t.id)), t.onDone)), !1)), t.onError && e.push.apply(e, o([], i(D(String(At(t.id)), t.onError)), !1)), e;
      })),
          y = this.after,
          m = g(o(o(o(o([], i(p), !1), i(v), !1), i(a), !1), i(d), !1).map(function (t) {
        return S(t).map(function (t) {
          return c.formatTransition(t);
        });
      }));
4745

limingzhe's avatar
limingzhe committed
4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761
      try {
        for (var x = r(y), w = x.next(); !w.done; w = x.next()) {
          var b = w.value;
          m.push(b);
        }
      } catch (e) {
        t = {
          error: e
        };
      } finally {
        try {
          w && !w.done && (e = x["return"]) && e.call(x);
        } finally {
          if (t) throw t.error;
        }
      }
4762

limingzhe's avatar
limingzhe committed
4763 4764 4765
      return m;
    }, a;
  }();
4766

limingzhe's avatar
limingzhe committed
4767 4768 4769 4770 4771 4772 4773
  var Ft = {
    deferEvents: !1
  },
      Ut = function () {
    function t(t) {
      this.processingEvent = !1, this.queue = [], this.initialized = !1, this.options = _e(_e({}, Ft), t);
    }
4774

limingzhe's avatar
limingzhe committed
4775 4776 4777 4778 4779
    return t.prototype.initialize = function (t) {
      if (this.initialized = !0, t) {
        if (!this.options.deferEvents) return void this.schedule(t);
        this.process(t);
      }
4780

limingzhe's avatar
limingzhe committed
4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794
      this.flushEvents();
    }, t.prototype.schedule = function (t) {
      if (this.initialized && !this.processingEvent) {
        if (0 !== this.queue.length) throw new Error("Event queue should be empty when it is not processing events");
        this.process(t), this.flushEvents();
      } else this.queue.push(t);
    }, t.prototype.clear = function () {
      this.queue = [];
    }, t.prototype.flushEvents = function () {
      for (var t = this.queue.shift(); t;) {
        this.process(t), t = this.queue.shift();
      }
    }, t.prototype.process = function (t) {
      this.processingEvent = !0;
4795

limingzhe's avatar
limingzhe committed
4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818
      try {
        t();
      } catch (t) {
        throw this.clear(), t;
      } finally {
        this.processingEvent = !1;
      }
    }, t;
  }(),
      Bt = new Map(),
      Jt = 0,
      qt = function qt() {
    return "x:".concat(Jt++);
  },
      $t = function $t(t, e) {
    return Bt.set(t, e), t;
  },
      Xt = function Xt(t) {
    return Bt.get(t);
  },
      Ht = function Ht(t) {
    Bt["delete"](t);
  };
4819

limingzhe's avatar
limingzhe committed
4820 4821
  function Gt() {
    return "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0;
4822 4823
  }

limingzhe's avatar
limingzhe committed
4824 4825 4826 4827 4828 4829
  function Kt(t) {
    if (Gt()) {
      var e = function () {
        var t = Gt();
        if (t && "__xstate__" in t) return t.__xstate__;
      }();
4830

limingzhe's avatar
limingzhe committed
4831 4832
      e && e.register(t);
    }
4833 4834
  }

limingzhe's avatar
limingzhe committed
4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852
  function Qt(t, n) {
    void 0 === n && (n = {});
    var r,
        i = t.initialState,
        o = new Set(),
        a = [],
        s = !1,
        c = (r = {
      id: n.id,
      send: function send(e) {
        a.push(e), function () {
          if (!s) {
            for (s = !0; a.length > 0;) {
              var e = a.shift();
              i = t.transition(i, e, u), o.forEach(function (t) {
                return t.next(i);
              });
            }
4853

limingzhe's avatar
limingzhe committed
4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867
            s = !1;
          }
        }();
      },
      getSnapshot: function getSnapshot() {
        return i;
      },
      subscribe: function subscribe(t, e, n) {
        var r = z(t, e, n);
        return o.add(r), r.next(i), {
          unsubscribe: function unsubscribe() {
            o["delete"](r);
          }
        };
4868
      }
limingzhe's avatar
limingzhe committed
4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884
    }, _e({
      subscribe: function subscribe() {
        return {
          unsubscribe: function unsubscribe() {}
        };
      },
      id: "anonymous",
      getSnapshot: function getSnapshot() {}
    }, r)),
        u = {
      parent: n.parent,
      self: c,
      id: n.id || "anonymous",
      observers: o
    };
    return i = t.start ? t.start(u) : i, c;
4885 4886
  }

limingzhe's avatar
limingzhe committed
4887 4888 4889 4890 4891 4892
  var Wt,
      Yt = {
    sync: !1,
    autoForward: !1
  };
  (Wt = t.InterpreterStatus || (t.InterpreterStatus = {}))[Wt.NotStarted = 0] = "NotStarted", Wt[Wt.Running = 1] = "Running", Wt[Wt.Stopped = 2] = "Stopped";
4893

limingzhe's avatar
limingzhe committed
4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915
  var Zt = function () {
    function n(r, i) {
      var o = this;
      void 0 === i && (i = n.defaultOptions), this.machine = r, this.scheduler = new Ut(), this.delayedEventsMap = {}, this.listeners = new Set(), this.contextListeners = new Set(), this.stopListeners = new Set(), this.doneListeners = new Set(), this.eventListeners = new Set(), this.sendListeners = new Set(), this.initialized = !1, this.status = t.InterpreterStatus.NotStarted, this.children = new Map(), this.forwardTo = new Set(), this.init = this.start, this.send = function (e, n) {
        if (T(e)) return o.batch(e), o.state;
        var r = L(V(e, n));
        if (o.status === t.InterpreterStatus.Stopped) return o.state;
        if (o.status !== t.InterpreterStatus.Running && !o.options.deferEvents) throw new Error('Event "'.concat(r.name, '" was sent to uninitialized service "').concat(o.machine.id, '". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\nEvent: ').concat(JSON.stringify(r.data)));
        return o.scheduler.schedule(function () {
          o.forward(r);
          var t = o.nextState(r);
          o.update(t, r);
        }), o._state;
      }, this.sendTo = function (n, r) {
        var i,
            a = o.parent && (r === t.SpecialTargets.Parent || o.parent.id === r),
            s = a ? o.parent : A(r) ? o.children.get(r) || Xt(r) : (i = r) && "function" == typeof i.send ? r : void 0;
        if (s) "machine" in s ? s.send(_e(_e({}, n), {
          name: n.name === at ? "".concat(At(o.id)) : n.name,
          origin: o.sessionId
        })) : s.send(n.data);else if (!a) throw new Error("Unable to send event to child '".concat(r, "' from service '").concat(o.id, "'."));
      };
4916

limingzhe's avatar
limingzhe committed
4917 4918 4919 4920 4921 4922
      var a = _e(_e({}, n.defaultOptions), i),
          s = a.clock,
          c = a.logger,
          u = a.parent,
          h = a.id,
          f = void 0 !== h ? h : r.id;
4923

limingzhe's avatar
limingzhe committed
4924 4925 4926
      this.id = f, this.logger = c, this.clock = s, this.parent = u, this.options = a, this.scheduler = new Ut({
        deferEvents: this.options.deferEvents
      }), this.sessionId = qt();
limingzhe's avatar
limingzhe committed
4927
    }
4928

limingzhe's avatar
limingzhe committed
4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945
    return Object.defineProperty(n.prototype, "initialState", {
      get: function get() {
        var t = this;
        return this._initialState ? this._initialState : jt(this, function () {
          return t._initialState = t.machine.initialState, t._initialState;
        });
      },
      enumerable: !1,
      configurable: !0
    }), Object.defineProperty(n.prototype, "state", {
      get: function get() {
        return this._state;
      },
      enumerable: !1,
      configurable: !0
    }), n.prototype.execute = function (t, e) {
      var n, i;
4946

limingzhe's avatar
limingzhe committed
4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989
      try {
        for (var o = r(t.actions), a = o.next(); !a.done; a = o.next()) {
          var s = a.value;
          this.exec(s, t, e);
        }
      } catch (t) {
        n = {
          error: t
        };
      } finally {
        try {
          a && !a.done && (i = o["return"]) && i.call(o);
        } finally {
          if (n) throw n.error;
        }
      }
    }, n.prototype.update = function (t, e) {
      var n,
          i,
          o,
          a,
          s,
          c,
          u,
          h,
          f = this;
      if (t._sessionid = this.sessionId, this._state = t, this.options.execute && this.execute(this.state), this.children.forEach(function (t) {
        f.state.children[t.id] = t;
      }), this.devTools && this.devTools.send(e.data, t), t.event) try {
        for (var l = r(this.eventListeners), d = l.next(); !d.done; d = l.next()) {
          (0, d.value)(t.event);
        }
      } catch (t) {
        n = {
          error: t
        };
      } finally {
        try {
          d && !d.done && (i = l["return"]) && i.call(l);
        } finally {
          if (n) throw n.error;
        }
      }
4990

limingzhe's avatar
limingzhe committed
4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005
      try {
        for (var p = r(this.listeners), v = p.next(); !v.done; v = p.next()) {
          (0, v.value)(t, t.event);
        }
      } catch (t) {
        o = {
          error: t
        };
      } finally {
        try {
          v && !v.done && (a = p["return"]) && a.call(p);
        } finally {
          if (o) throw o.error;
        }
      }
5006

limingzhe's avatar
limingzhe committed
5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021
      try {
        for (var y = r(this.contextListeners), g = y.next(); !g.done; g = y.next()) {
          (0, g.value)(this.state.context, this.state.history ? this.state.history.context : void 0);
        }
      } catch (t) {
        s = {
          error: t
        };
      } finally {
        try {
          g && !g.done && (c = y["return"]) && c.call(y);
        } finally {
          if (s) throw s.error;
        }
      }
5022

limingzhe's avatar
limingzhe committed
5023
      var m = H(t.configuration || [], this.machine);
5024

limingzhe's avatar
limingzhe committed
5025 5026 5027 5028 5029
      if (this.state.configuration && m) {
        var S = t.configuration.find(function (t) {
          return "final" === t.type && t.parent === f.machine;
        }),
            w = S && S.doneData ? x(S.doneData, t.context, e) : void 0;
5030

limingzhe's avatar
limingzhe committed
5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045
        try {
          for (var b = r(this.doneListeners), _ = b.next(); !_.done; _ = b.next()) {
            (0, _.value)(Nt(this.id, w));
          }
        } catch (t) {
          u = {
            error: t
          };
        } finally {
          try {
            _ && !_.done && (h = b["return"]) && h.call(b);
          } finally {
            if (u) throw u.error;
          }
        }
5046

limingzhe's avatar
limingzhe committed
5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097
        this.stop();
      }
    }, n.prototype.onTransition = function (e) {
      return this.listeners.add(e), this.status === t.InterpreterStatus.Running && e(this.state, this.state.event), this;
    }, n.prototype.subscribe = function (e, n, r) {
      var i,
          o = this;
      if (!e) return {
        unsubscribe: function unsubscribe() {}
      };
      var a = r;
      return "function" == typeof e ? i = e : (i = e.next.bind(e), a = e.complete.bind(e)), this.listeners.add(i), this.status === t.InterpreterStatus.Running && i(this.state), a && this.onDone(a), {
        unsubscribe: function unsubscribe() {
          i && o.listeners["delete"](i), a && o.doneListeners["delete"](a);
        }
      };
    }, n.prototype.onEvent = function (t) {
      return this.eventListeners.add(t), this;
    }, n.prototype.onSend = function (t) {
      return this.sendListeners.add(t), this;
    }, n.prototype.onChange = function (t) {
      return this.contextListeners.add(t), this;
    }, n.prototype.onStop = function (t) {
      return this.stopListeners.add(t), this;
    }, n.prototype.onDone = function (t) {
      return this.doneListeners.add(t), this;
    }, n.prototype.off = function (t) {
      return this.listeners["delete"](t), this.eventListeners["delete"](t), this.sendListeners["delete"](t), this.stopListeners["delete"](t), this.doneListeners["delete"](t), this.contextListeners["delete"](t), this;
    }, n.prototype.start = function (e) {
      var n = this;
      if (this.status === t.InterpreterStatus.Running) return this;
      $t(this.sessionId, this), this.initialized = !0, this.status = t.InterpreterStatus.Running;
      var r = void 0 === e ? this.initialState : jt(this, function () {
        return !A(t = e) && "value" in t && "history" in t ? n.machine.resolveState(e) : n.machine.resolveState(kt.from(e, n.machine.context));
        var t;
      });
      return this.options.devTools && this.attachDev(), this.scheduler.initialize(function () {
        n.update(r, ht);
      }), this;
    }, n.prototype.stop = function () {
      var e,
          n,
          i,
          o,
          a,
          c,
          u,
          h,
          f,
          l,
          d = this;
5098

limingzhe's avatar
limingzhe committed
5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112
      try {
        for (var p = r(this.listeners), v = p.next(); !v.done; v = p.next()) {
          var y = v.value;
          this.listeners["delete"](y);
        }
      } catch (t) {
        e = {
          error: t
        };
      } finally {
        try {
          v && !v.done && (n = p["return"]) && n.call(p);
        } finally {
          if (e) throw e.error;
5113 5114 5115
        }
      }

limingzhe's avatar
limingzhe committed
5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130
      try {
        for (var g = r(this.stopListeners), m = g.next(); !m.done; m = g.next()) {
          (y = m.value)(), this.stopListeners["delete"](y);
        }
      } catch (t) {
        i = {
          error: t
        };
      } finally {
        try {
          m && !m.done && (o = g["return"]) && o.call(g);
        } finally {
          if (i) throw i.error;
        }
      }
5131

limingzhe's avatar
limingzhe committed
5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147
      try {
        for (var S = r(this.contextListeners), x = S.next(); !x.done; x = S.next()) {
          y = x.value;
          this.contextListeners["delete"](y);
        }
      } catch (t) {
        a = {
          error: t
        };
      } finally {
        try {
          x && !x.done && (c = S["return"]) && c.call(S);
        } finally {
          if (a) throw a.error;
        }
      }
5148

limingzhe's avatar
limingzhe committed
5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164
      try {
        for (var w = r(this.doneListeners), b = w.next(); !b.done; b = w.next()) {
          y = b.value;
          this.doneListeners["delete"](y);
        }
      } catch (t) {
        u = {
          error: t
        };
      } finally {
        try {
          b && !b.done && (h = w["return"]) && h.call(w);
        } finally {
          if (u) throw u.error;
        }
      }
5165

limingzhe's avatar
limingzhe committed
5166 5167 5168
      if (!this.initialized) return this;
      this.state.configuration.forEach(function (t) {
        var e, n;
5169

limingzhe's avatar
limingzhe committed
5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188
        try {
          for (var i = r(t.definition.exit), o = i.next(); !o.done; o = i.next()) {
            var a = o.value;
            d.exec(a, d.state);
          }
        } catch (t) {
          e = {
            error: t
          };
        } finally {
          try {
            o && !o.done && (n = i["return"]) && n.call(i);
          } finally {
            if (e) throw e.error;
          }
        }
      }), this.children.forEach(function (t) {
        N(t.stop) && t.stop();
      });
5189

limingzhe's avatar
limingzhe committed
5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205
      try {
        for (var _ = r(s(this.delayedEventsMap)), E = _.next(); !E.done; E = _.next()) {
          var T = E.value;
          this.clock.clearTimeout(this.delayedEventsMap[T]);
        }
      } catch (t) {
        f = {
          error: t
        };
      } finally {
        try {
          E && !E.done && (l = _["return"]) && l.call(_);
        } finally {
          if (f) throw f.error;
        }
      }
5206

limingzhe's avatar
limingzhe committed
5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233
      return this.scheduler.clear(), this.initialized = !1, this.status = t.InterpreterStatus.Stopped, Ht(this.sessionId), this;
    }, n.prototype.batch = function (n) {
      var a = this;
      if (this.status === t.InterpreterStatus.NotStarted && this.options.deferEvents) ;else if (this.status !== t.InterpreterStatus.Running) throw new Error("".concat(n.length, ' event(s) were sent to uninitialized service "').concat(this.machine.id, '". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.'));
      this.scheduler.schedule(function () {
        var t,
            s,
            c = a.state,
            u = !1,
            h = [],
            f = function f(t) {
          var n = L(t);
          a.forward(n), c = jt(a, function () {
            return a.machine.transition(c, n);
          }), h.push.apply(h, o([], i(c.actions.map(function (t) {
            return r = c, i = (n = t).exec, _e(_e({}, n), {
              exec: void 0 !== i ? function () {
                return i(r.context, r.event, {
                  action: n,
                  state: r,
                  _event: r._event
                });
              } : void 0
            });
            var n, r, i;
          })), !1)), u = u || !!c.changed;
        };
5234

limingzhe's avatar
limingzhe committed
5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249
        try {
          for (var l = r(n), d = l.next(); !d.done; d = l.next()) {
            f(d.value);
          }
        } catch (e) {
          t = {
            error: e
          };
        } finally {
          try {
            d && !d.done && (s = l["return"]) && s.call(l);
          } finally {
            if (t) throw t.error;
          }
        }
5250

limingzhe's avatar
limingzhe committed
5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265
        c.changed = u, c.actions = h, a.update(c, L(n[n.length - 1]));
      });
    }, n.prototype.sender = function (t) {
      return this.send.bind(this, t);
    }, n.prototype.nextState = function (t) {
      var e = this,
          n = L(t);
      if (0 === n.name.indexOf(ot) && !this.state.nextEvents.some(function (t) {
        return 0 === t.indexOf(ot);
      })) throw n.data.data;
      return jt(this, function () {
        return e.machine.transition(e.state, n);
      });
    }, n.prototype.forward = function (t) {
      var e, n;
5266

limingzhe's avatar
limingzhe committed
5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282
      try {
        for (var i = r(this.forwardTo), o = i.next(); !o.done; o = i.next()) {
          var a = o.value,
              s = this.children.get(a);
          if (!s) throw new Error("Unable to forward event '".concat(t, "' from interpreter '").concat(this.id, "' to nonexistant child '").concat(a, "'."));
          s.send(t);
        }
      } catch (t) {
        e = {
          error: t
        };
      } finally {
        try {
          o && !o.done && (n = i["return"]) && n.call(i);
        } finally {
          if (e) throw e.error;
5283 5284
        }
      }
limingzhe's avatar
limingzhe committed
5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309
    }, n.prototype.defer = function (t) {
      var e = this;
      this.delayedEventsMap[t.id] = this.clock.setTimeout(function () {
        t.to ? e.sendTo(t._event, t.to) : e.send(t._event);
      }, t.delay);
    }, n.prototype.cancel = function (t) {
      this.clock.clearTimeout(this.delayedEventsMap[t]), delete this.delayedEventsMap[t];
    }, n.prototype.exec = function (e, n, r) {
      void 0 === r && (r = this.machine.options.actions);
      var i = n.context,
          o = n._event,
          a = e.exec || ft(e.type, r),
          s = N(a) ? a : a ? a.exec : e.exec;
      if (s) try {
        return s(i, o.data, {
          action: e,
          state: this.state,
          _event: o
        });
      } catch (t) {
        throw this.parent && this.parent.send({
          type: "xstate.error",
          data: t
        }), t;
      }
5310

limingzhe's avatar
limingzhe committed
5311 5312 5313 5314 5315 5316
      switch (e.type) {
        case Y:
          var c = e;
          if ("number" == typeof c.delay) return void this.defer(c);
          c.to ? this.sendTo(c._event, c.to) : this.send(c._event);
          break;
5317

limingzhe's avatar
limingzhe committed
5318 5319 5320
        case Z:
          this.cancel(e.sendId);
          break;
5321

limingzhe's avatar
limingzhe committed
5322 5323 5324
        case K:
          var u = e.activity;
          if (!this.state.activities[u.id || u.type]) break;
5325

limingzhe's avatar
limingzhe committed
5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356
          if (u.type === t.ActionTypes.Invoke) {
            var h = M(u.src),
                f = this.machine.options.services ? this.machine.options.services[h.type] : void 0,
                l = u.id,
                d = u.data,
                p = "autoForward" in u ? u.autoForward : !!u.forward;
            if (!f) return;
            var v = d ? x(d, i, o) : void 0;
            if ("string" == typeof f) return;
            var y = N(f) ? f(i, o.data, {
              data: v,
              src: h,
              meta: u.meta
            }) : f;
            if (!y) return;
            var g = void 0;
            k(y) && (y = v ? y.withContext(v) : y, g = {
              autoForward: p
            }), this.spawn(y, l, g);
          } else this.spawnActivity(u);

          break;

        case Q:
          this.stopChild(e.activity.id);
          break;

        case nt:
          var m = e.label,
              S = e.value;
          m ? this.logger(m, S) : this.logger(S);
5357
      }
limingzhe's avatar
limingzhe committed
5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389
    }, n.prototype.removeChild = function (t) {
      var e;
      this.children["delete"](t), this.forwardTo["delete"](t), null === (e = this.state) || void 0 === e || delete e.children[t];
    }, n.prototype.stopChild = function (t) {
      var e = this.children.get(t);
      e && (this.removeChild(t), N(e.stop) && e.stop());
    }, n.prototype.spawn = function (t, n, r) {
      if (w(t)) return this.spawnPromise(Promise.resolve(t), n);
      if (N(t)) return this.spawnCallback(t, n);
      if (function (t) {
        try {
          return "function" == typeof t.send;
        } catch (t) {
          return !1;
        }
      }(o = t) && "id" in o) return this.spawnActor(t, n);
      if (function (t) {
        try {
          return "subscribe" in t && N(t.subscribe);
        } catch (t) {
          return !1;
        }
      }(t)) return this.spawnObservable(t, n);
      if (k(t)) return this.spawnMachine(t, _e(_e({}, r), {
        id: n
      }));
      if (null !== (i = t) && "object" == typeof i && "transition" in i && "function" == typeof i.transition) return this.spawnBehavior(t, n);
      throw new Error('Unable to spawn entity "'.concat(n, '" of type "').concat(typeof t, '".'));
      var i, o;
    }, n.prototype.spawnMachine = function (t, r) {
      var i = this;
      void 0 === r && (r = {});
5390

limingzhe's avatar
limingzhe committed
5391 5392 5393 5394 5395
      var o = new n(t, _e(_e({}, this.options), {
        parent: this,
        id: r.id || t.id
      })),
          a = _e(_e({}, Yt), r);
5396

limingzhe's avatar
limingzhe committed
5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426
      a.sync && o.onTransition(function (t) {
        i.send(st, {
          state: t,
          id: o.id
        });
      });
      var s = o;
      return this.children.set(o.id, s), a.autoForward && this.forwardTo.add(o.id), o.onDone(function (t) {
        i.removeChild(o.id), i.send(L(t, {
          origin: o.id
        }));
      }).start(), s;
    }, n.prototype.spawnBehavior = function (t, e) {
      var n = Qt(t, {
        id: e,
        parent: this
      });
      return this.children.set(e, n), n;
    }, n.prototype.spawnPromise = function (t, e) {
      var n,
          r = this,
          i = !1;
      t.then(function (t) {
        i || (n = t, r.removeChild(e), r.send(L(Nt(e, t), {
          origin: e
        })));
      }, function (t) {
        if (!i) {
          r.removeChild(e);
          var n = At(e, t);
5427

limingzhe's avatar
limingzhe committed
5428 5429 5430
          try {
            r.send(L(n, {
              origin: e
5431
            }));
limingzhe's avatar
limingzhe committed
5432 5433 5434
          } catch (t) {
            r.devTools && r.devTools.send(n, r.state), r.machine.strict && r.stop();
          }
5435
        }
limingzhe's avatar
limingzhe committed
5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449
      });
      var o = {
        id: e,
        send: function send() {},
        subscribe: function subscribe(e, n, r) {
          var i = z(e, n, r),
              o = !1;
          return t.then(function (t) {
            o || (i.next(t), o || i.complete());
          }, function (t) {
            o || i.error(t);
          }), {
            unsubscribe: function unsubscribe() {
              return o = !0;
5450
            }
limingzhe's avatar
limingzhe committed
5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462
          };
        },
        stop: function stop() {
          i = !0;
        },
        toJSON: function toJSON() {
          return {
            id: e
          };
        },
        getSnapshot: function getSnapshot() {
          return n;
5463
        }
limingzhe's avatar
limingzhe committed
5464 5465 5466 5467 5468 5469 5470 5471 5472
      };
      return this.children.set(e, o), o;
    }, n.prototype.spawnCallback = function (t, e) {
      var n,
          r,
          i = this,
          o = !1,
          a = new Set(),
          s = new Set();
5473

limingzhe's avatar
limingzhe committed
5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486
      try {
        r = t(function (t) {
          n = t, s.forEach(function (e) {
            return e(t);
          }), o || i.send(L(t, {
            origin: e
          }));
        }, function (t) {
          a.add(t);
        });
      } catch (t) {
        this.send(At(e, t));
      }
5487

limingzhe's avatar
limingzhe committed
5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554
      if (w(r)) return this.spawnPromise(r, e);
      var c = {
        id: e,
        send: function send(t) {
          return a.forEach(function (e) {
            return e(t);
          });
        },
        subscribe: function subscribe(t) {
          return s.add(t), {
            unsubscribe: function unsubscribe() {
              s["delete"](t);
            }
          };
        },
        stop: function stop() {
          o = !0, N(r) && r();
        },
        toJSON: function toJSON() {
          return {
            id: e
          };
        },
        getSnapshot: function getSnapshot() {
          return n;
        }
      };
      return this.children.set(e, c), c;
    }, n.prototype.spawnObservable = function (t, e) {
      var n,
          r = this,
          i = t.subscribe(function (t) {
        n = t, r.send(L(t, {
          origin: e
        }));
      }, function (t) {
        r.removeChild(e), r.send(L(At(e, t), {
          origin: e
        }));
      }, function () {
        r.removeChild(e), r.send(L(Nt(e), {
          origin: e
        }));
      }),
          o = {
        id: e,
        send: function send() {},
        subscribe: function subscribe(e, n, r) {
          return t.subscribe(e, n, r);
        },
        stop: function stop() {
          return i.unsubscribe();
        },
        getSnapshot: function getSnapshot() {
          return n;
        },
        toJSON: function toJSON() {
          return {
            id: e
          };
        }
      };
      return this.children.set(e, o), o;
    }, n.prototype.spawnActor = function (t, e) {
      return this.children.set(e, t), t;
    }, n.prototype.spawnActivity = function (t) {
      var e = this.machine.options && this.machine.options.activities ? this.machine.options.activities[t.type] : void 0;
5555

limingzhe's avatar
limingzhe committed
5556 5557 5558
      if (e) {
        var n = e(this.state.context, t);
        this.spawnEffect(t.id, n);
5559
      }
limingzhe's avatar
limingzhe committed
5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578
    }, n.prototype.spawnEffect = function (t, e) {
      this.children.set(t, {
        id: t,
        send: function send() {},
        subscribe: function subscribe() {
          return {
            unsubscribe: function unsubscribe() {}
          };
        },
        stop: e || void 0,
        getSnapshot: function getSnapshot() {},
        toJSON: function toJSON() {
          return {
            id: t
          };
        }
      });
    }, n.prototype.attachDev = function () {
      var t = Gt();
5579

limingzhe's avatar
limingzhe committed
5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598
      if (this.options.devTools && t) {
        if (t.__REDUX_DEVTOOLS_EXTENSION__) {
          var n = "object" == typeof this.options.devTools ? this.options.devTools : void 0;
          this.devTools = t.__REDUX_DEVTOOLS_EXTENSION__.connect(_e(_e({
            name: this.id,
            autoPause: !0,
            stateSanitizer: function stateSanitizer(t) {
              return {
                value: t.value,
                context: t.context,
                actions: t.actions
              };
            }
          }, n), {
            features: _e({
              jump: !1,
              skip: !1
            }, n ? n.features : void 0)
          }), this.machine), this.devTools.init(this.state);
5599 5600
        }

limingzhe's avatar
limingzhe committed
5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619
        Kt(this);
      }
    }, n.prototype.toJSON = function () {
      return {
        id: this.id
      };
    }, n.prototype[P] = function () {
      return this;
    }, n.prototype.getSnapshot = function () {
      return this.status === t.InterpreterStatus.NotStarted ? this.initialState : this._state;
    }, n.defaultOptions = function (t) {
      return {
        execute: !0,
        deferEvents: !0,
        clock: {
          setTimeout: function (_setTimeout) {
            function setTimeout(_x, _x2) {
              return _setTimeout.apply(this, arguments);
            }
5620

limingzhe's avatar
limingzhe committed
5621 5622 5623
            setTimeout.toString = function () {
              return _setTimeout.toString();
            };
5624

limingzhe's avatar
limingzhe committed
5625 5626 5627 5628 5629 5630 5631 5632
            return setTimeout;
          }(function (t, e) {
            return setTimeout(t, e);
          }),
          clearTimeout: function (_clearTimeout) {
            function clearTimeout(_x3) {
              return _clearTimeout.apply(this, arguments);
            }
5633

limingzhe's avatar
limingzhe committed
5634 5635 5636
            clearTimeout.toString = function () {
              return _clearTimeout.toString();
            };
5637

limingzhe's avatar
limingzhe committed
5638 5639 5640 5641 5642 5643 5644 5645 5646 5647
            return clearTimeout;
          }(function (t) {
            return clearTimeout(t);
          })
        },
        logger: t.console.log.bind(console),
        devTools: !1
      };
    }("undefined" != typeof self ? self : global), n.interpret = te, n;
  }();
5648

limingzhe's avatar
limingzhe committed
5649 5650 5651
  function te(t, e) {
    return new Zt(t, e);
  }
5652

limingzhe's avatar
limingzhe committed
5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709
  var ee = {
    raise: vt,
    send: yt,
    sendParent: gt,
    sendUpdate: mt,
    log: function log(t, e) {
      return void 0 === t && (t = St), {
        type: nt,
        label: e,
        expr: t
      };
    },
    cancel: xt,
    start: wt,
    stop: bt,
    assign: _t,
    after: Et,
    done: Tt,
    respond: function respond(t, n) {
      return yt(t, _e(_e({}, n), {
        to: function to(t, e, n) {
          return n._event.origin;
        }
      }));
    },
    forwardTo: Ot,
    escalate: function escalate(n, r) {
      return gt(function (t, e, r) {
        return {
          type: at,
          data: N(n) ? n(t, e, r) : n
        };
      }, _e(_e({}, r), {
        to: t.SpecialTargets.Parent
      }));
    },
    choose: function choose(e) {
      return {
        type: t.ActionTypes.Choose,
        conds: e
      };
    },
    pure: function pure(e) {
      return {
        type: t.ActionTypes.Pure,
        get: e
      };
    }
  };
  t.Interpreter = Zt, t.Machine = function (t, e, n) {
    return void 0 === n && (n = t.context), new zt(t, e, n);
  }, t.State = kt, t.StateNode = zt, t.actions = ee, t.assign = _t, t.createMachine = function (t, e) {
    return new zt(t, e);
  }, t.createSchema = function (t) {
    return t;
  }, t.doneInvoke = Nt, t.forwardTo = Ot, t.interpret = te, t.mapState = function (t, e) {
    var n, i, o;
5710

limingzhe's avatar
limingzhe committed
5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726
    try {
      for (var a = r(s(t)), u = a.next(); !u.done; u = a.next()) {
        var h = u.value;
        c(h, e) && (!o || e.length > o.length) && (o = h);
      }
    } catch (t) {
      n = {
        error: t
      };
    } finally {
      try {
        u && !u.done && (i = a["return"]) && i.call(a);
      } finally {
        if (n) throw n.error;
      }
    }
5727

limingzhe's avatar
limingzhe committed
5728 5729 5730 5731 5732
    return t[o];
  }, t.matchState = function (t, e, n) {
    var o,
        a,
        s = kt.from(t, t instanceof kt ? t.context : void 0);
5733

limingzhe's avatar
limingzhe committed
5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751
    try {
      for (var c = r(e), u = c.next(); !u.done; u = c.next()) {
        var h = i(u.value, 2),
            f = h[0],
            l = h[1];
        if (s.matches(f)) return l(s);
      }
    } catch (t) {
      o = {
        error: t
      };
    } finally {
      try {
        u && !u.done && (a = c["return"]) && a.call(c);
      } finally {
        if (o) throw o.error;
      }
    }
5752

limingzhe's avatar
limingzhe committed
5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767
    return n(s);
  }, t.matchesState = c, t.send = yt, t.sendParent = gt, t.sendUpdate = mt, t.spawn = function (t, n) {
    var r = function (t) {
      return A(t) ? _e(_e({}, Yt), {
        name: t
      }) : _e(_e(_e({}, Yt), {
        name: C()
      }), t);
    }(n);

    return function (e) {
      return e ? e.spawn(t, r.name, r) : Vt(t, r.name);
    }(It[It.length - 1]);
  }, Object.defineProperty(t, "__esModule", {
    value: !0
5768
  });
limingzhe's avatar
limingzhe committed
5769
});
liujiaxin's avatar
liujiaxin committed
5770 5771

cc._RF.pop();
limingzhe's avatar
limingzhe committed
5772 5773

}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
liujiaxin's avatar
liujiaxin committed
5774 5775 5776 5777 5778 5779 5780 5781 5782 5783
                    }
                    if (nodeEnv) {
                        __define(__module.exports, __require, __module);
                    }
                    else {
                        __quick_compile_project__.registerModuleFunc(__filename, function () {
                            __define(__module.exports, __require, __module);
                        });
                    }
                })();
limingzhe's avatar
limingzhe committed
5784
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hc3NldHMvT1AxNS9zY3JpcHQveHN0YXRlX09QMTUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsQ0FBQyxVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWE7QUFBQyxjQUFVLE9BQU8sT0FBakIsSUFBMEIsZUFBYSxPQUFPLE1BQTlDLEdBQXFELENBQUMsQ0FBQyxPQUFELENBQXRELEdBQWdFLGNBQVksT0FBTyxNQUFuQixJQUEyQixNQUFNLENBQUMsR0FBbEMsR0FBc0MsTUFBTSxDQUFDLENBQUMsU0FBRCxDQUFELEVBQWEsQ0FBYixDQUE1QyxHQUE0RCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsZUFBYSxPQUFPLFVBQXBCLEdBQStCLFVBQS9CLEdBQTBDLENBQUMsSUFBRSxJQUFoRCxFQUFzRCxNQUF0RCxHQUE2RCxFQUE5RCxDQUE3SDtBQUErTCxDQUE3TSxTQUFvTixVQUFTLENBQVQsRUFBVztBQUFDO0FBQ2pPO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQW9GLE1BQUksRUFBQyxHQUFDLGFBQVU7QUFBQyxXQUFNLENBQUMsRUFBQyxHQUFDLE1BQU0sQ0FBQyxNQUFQLElBQWUsVUFBUyxDQUFULEVBQVc7QUFBQyxXQUFJLElBQUksQ0FBSixFQUFNLENBQUMsR0FBQyxDQUFSLEVBQVUsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxNQUExQixFQUFpQyxDQUFDLEdBQUMsQ0FBbkMsRUFBcUMsQ0FBQyxFQUF0QztBQUF5QyxhQUFJLElBQUksQ0FBUixJQUFhLENBQUMsR0FBQyxTQUFTLENBQUMsQ0FBRCxDQUF4QjtBQUE0QixVQUFBLE1BQU0sQ0FBQyxTQUFQLENBQWlCLGNBQWpCLENBQWdDLElBQWhDLENBQXFDLENBQXJDLEVBQXVDLENBQXZDLE1BQTRDLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxDQUFDLENBQUMsQ0FBRCxDQUFsRDtBQUE1QjtBQUF6Qzs7QUFBNEgsYUFBTyxDQUFQO0FBQVMsS0FBbkssRUFBcUssS0FBckssQ0FBMkssSUFBM0ssRUFBZ0wsU0FBaEwsQ0FBTjtBQUFpTSxHQUFsTjs7QUFBbU4sV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLFFBQUksQ0FBQyxHQUFDLEVBQU47O0FBQVMsU0FBSSxJQUFJLENBQVIsSUFBYSxDQUFiO0FBQWUsTUFBQSxNQUFNLENBQUMsU0FBUCxDQUFpQixjQUFqQixDQUFnQyxJQUFoQyxDQUFxQyxDQUFyQyxFQUF1QyxDQUF2QyxLQUEyQyxDQUFDLENBQUMsT0FBRixDQUFVLENBQVYsSUFBYSxDQUF4RCxLQUE0RCxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLENBQUQsQ0FBbEU7QUFBZjs7QUFBc0YsUUFBRyxRQUFNLENBQU4sSUFBUyxjQUFZLE9BQU8sTUFBTSxDQUFDLHFCQUF0QyxFQUE0RDtBQUFDLFVBQUksQ0FBQyxHQUFDLENBQU47O0FBQVEsV0FBSSxDQUFDLEdBQUMsTUFBTSxDQUFDLHFCQUFQLENBQTZCLENBQTdCLENBQU4sRUFBc0MsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUExQyxFQUFpRCxDQUFDLEVBQWxEO0FBQXFELFFBQUEsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxDQUFDLENBQUMsQ0FBRCxDQUFYLElBQWdCLENBQWhCLElBQW1CLE1BQU0sQ0FBQyxTQUFQLENBQWlCLG9CQUFqQixDQUFzQyxJQUF0QyxDQUEyQyxDQUEzQyxFQUE2QyxDQUFDLENBQUMsQ0FBRCxDQUE5QyxDQUFuQixLQUF3RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBRixDQUFELEdBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUYsQ0FBakY7QUFBckQ7QUFBOEk7O0FBQUEsV0FBTyxDQUFQO0FBQVM7O0FBQUEsV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhO0FBQUMsUUFBSSxDQUFDLEdBQUMsY0FBWSxPQUFPLE1BQW5CLElBQTJCLE1BQU0sQ0FBQyxRQUF4QztBQUFBLFFBQWlELENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUQsQ0FBdkQ7QUFBQSxRQUEyRCxDQUFDLEdBQUMsQ0FBN0Q7QUFBK0QsUUFBRyxDQUFILEVBQUssT0FBTyxDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBUDtBQUFpQixRQUFHLENBQUMsSUFBRSxZQUFVLE9BQU8sQ0FBQyxDQUFDLE1BQXpCLEVBQWdDLE9BQU07QUFBQyxNQUFBLElBQUksRUFBQyxnQkFBVTtBQUFDLGVBQU8sQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsTUFBUixLQUFpQixDQUFDLEdBQUMsS0FBSyxDQUF4QixHQUEyQjtBQUFDLFVBQUEsS0FBSyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFGLENBQVg7QUFBaUIsVUFBQSxJQUFJLEVBQUMsQ0FBQztBQUF2QixTQUFsQztBQUE0RDtBQUE3RSxLQUFOO0FBQXFGLFVBQU0sSUFBSSxTQUFKLENBQWMsQ0FBQyxHQUFDLHlCQUFELEdBQTJCLGlDQUExQyxDQUFOO0FBQW1GOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxRQUFJLENBQUMsR0FBQyxjQUFZLE9BQU8sTUFBbkIsSUFBMkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFSLENBQWxDO0FBQW9ELFFBQUcsQ0FBQyxDQUFKLEVBQU0sT0FBTyxDQUFQO0FBQVMsUUFBSSxDQUFKO0FBQUEsUUFBTSxDQUFOO0FBQUEsUUFBUSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQVY7QUFBQSxRQUFvQixDQUFDLEdBQUMsRUFBdEI7O0FBQXlCLFFBQUc7QUFBQyxhQUFLLENBQUMsS0FBSyxDQUFMLEtBQVMsQ0FBVCxJQUFZLENBQUMsS0FBSSxDQUFsQixLQUFzQixDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQUgsRUFBYSxJQUF6QztBQUErQyxRQUFBLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBQyxDQUFDLEtBQVQ7QUFBL0M7QUFBK0QsS0FBbkUsQ0FBbUUsT0FBTSxDQUFOLEVBQVE7QUFBQyxNQUFBLENBQUMsR0FBQztBQUFDLFFBQUEsS0FBSyxFQUFDO0FBQVAsT0FBRjtBQUFZLEtBQXhGLFNBQStGO0FBQUMsVUFBRztBQUFDLFFBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsT0FBeEMsU0FBK0M7QUFBQyxZQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxXQUFPLENBQVA7QUFBUzs7QUFBQSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWEsQ0FBYixFQUFlLENBQWYsRUFBaUI7QUFBQyxRQUFHLENBQUMsSUFBRSxNQUFJLFNBQVMsQ0FBQyxNQUFwQixFQUEyQixLQUFJLElBQUksQ0FBSixFQUFNLENBQUMsR0FBQyxDQUFSLEVBQVUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFsQixFQUF5QixDQUFDLEdBQUMsQ0FBM0IsRUFBNkIsQ0FBQyxFQUE5QjtBQUFpQyxPQUFDLENBQUQsSUFBSSxDQUFDLElBQUksQ0FBVCxLQUFhLENBQUMsS0FBRyxDQUFDLEdBQUMsS0FBSyxDQUFDLFNBQU4sQ0FBZ0IsS0FBaEIsQ0FBc0IsSUFBdEIsQ0FBMkIsQ0FBM0IsRUFBNkIsQ0FBN0IsRUFBK0IsQ0FBL0IsQ0FBTCxDQUFELEVBQXlDLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxDQUFDLENBQUMsQ0FBRCxDQUE1RDtBQUFqQztBQUFrRyxXQUFPLENBQUMsQ0FBQyxNQUFGLENBQVMsQ0FBQyxJQUFFLEtBQUssQ0FBQyxTQUFOLENBQWdCLEtBQWhCLENBQXNCLElBQXRCLENBQTJCLENBQTNCLENBQVosQ0FBUDtBQUFrRDs7QUFBQSxNQUFJLENBQUMsR0FBQyxFQUFOOztBQUFTLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFdBQU8sTUFBTSxDQUFDLElBQVAsQ0FBWSxDQUFaLENBQVA7QUFBc0I7O0FBQUEsV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZSxDQUFmLEVBQWlCO0FBQUMsU0FBSyxDQUFMLEtBQVMsQ0FBVCxLQUFhLENBQUMsR0FBQyxHQUFmO0FBQW9CLFFBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELEVBQUcsQ0FBSCxDQUFQO0FBQUEsUUFBYSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFILENBQWhCO0FBQXNCLFdBQU8sQ0FBQyxDQUFDLENBQUQsQ0FBRCxHQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFILElBQVEsQ0FBQyxLQUFHLENBQWpCLEdBQW1CLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxDQUFDLElBQUksQ0FBVixHQUFZLENBQUMsQ0FBQyxDQUFELENBQUQsQ0FBSyxLQUFMLENBQVksVUFBUyxDQUFULEVBQVc7QUFBQyxhQUFPLENBQUMsSUFBSSxDQUFMLElBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUYsRUFBTSxDQUFDLENBQUMsQ0FBRCxDQUFQLENBQWhCO0FBQTRCLEtBQXBELENBQXRDO0FBQTZGOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFFBQUc7QUFBQyxhQUFPLENBQUMsQ0FBQyxDQUFELENBQUQsSUFBTSxZQUFVLE9BQU8sQ0FBdkIsR0FBeUIsR0FBRyxNQUFILENBQVUsQ0FBVixDQUF6QixHQUFzQyxDQUFDLENBQUMsSUFBL0M7QUFBb0QsS0FBeEQsQ0FBd0QsT0FBTSxDQUFOLEVBQVE7QUFBQyxZQUFNLElBQUksS0FBSixDQUFVLHNFQUFWLENBQU47QUFBd0Y7QUFBQzs7QUFBQSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWEsQ0FBYixFQUFlO0FBQUMsUUFBRztBQUFDLGFBQU8sQ0FBQyxDQUFDLENBQUQsQ0FBRCxHQUFLLENBQUwsR0FBTyxDQUFDLENBQUMsUUFBRixHQUFhLEtBQWIsQ0FBbUIsQ0FBbkIsQ0FBZDtBQUFvQyxLQUF4QyxDQUF3QyxPQUFNLENBQU4sRUFBUTtBQUFDLFlBQU0sSUFBSSxLQUFKLENBQVUsSUFBSSxNQUFKLENBQVcsQ0FBWCxFQUFhLDhCQUFiLENBQVYsQ0FBTjtBQUE4RDtBQUFDOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxXQUFNLFlBQVUsUUFBTyxDQUFDLEdBQUMsQ0FBVCxDQUFWLElBQXVCLFdBQVUsQ0FBakMsSUFBb0MsYUFBWSxDQUFoRCxJQUFtRCxXQUFVLENBQTdELElBQWdFLFlBQVcsQ0FBM0UsR0FBNkUsQ0FBQyxDQUFDLEtBQS9FLEdBQXFGLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxDQUFDLENBQUMsQ0FBRCxDQUFOLEdBQVUsWUFBVSxPQUFPLENBQWpCLEdBQW1CLENBQW5CLEdBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBRixDQUEzSDtBQUFvSSxRQUFJLENBQUo7QUFBTTs7QUFBQSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWE7QUFBQyxRQUFHLE1BQUksQ0FBQyxDQUFDLE1BQVQsRUFBZ0IsT0FBTyxDQUFDLENBQUMsQ0FBRCxDQUFSOztBQUFZLFNBQUksSUFBSSxDQUFDLEdBQUMsRUFBTixFQUFTLENBQUMsR0FBQyxDQUFYLEVBQWEsQ0FBQyxHQUFDLENBQW5CLEVBQXFCLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBRixHQUFTLENBQWhDLEVBQWtDLENBQUMsRUFBbkM7QUFBc0MsTUFBQSxDQUFDLEtBQUcsQ0FBQyxDQUFDLE1BQUYsR0FBUyxDQUFiLEdBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUYsQ0FBRCxHQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBSCxDQUF4QixJQUErQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBRixDQUFELEdBQVEsRUFBUixFQUFXLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBRixDQUE3QztBQUF0Qzs7QUFBMkYsV0FBTyxDQUFQO0FBQVM7O0FBQUEsV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLFNBQUksSUFBSSxDQUFDLEdBQUMsRUFBTixFQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFaLEVBQWdCLENBQUMsR0FBQyxDQUF0QixFQUF3QixDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQTVCLEVBQW1DLENBQUMsRUFBcEMsRUFBdUM7QUFBQyxVQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFQO0FBQVcsTUFBQSxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUYsRUFBTSxDQUFOLEVBQVEsQ0FBUixFQUFVLENBQVYsQ0FBTjtBQUFtQjs7QUFBQSxXQUFPLENBQVA7QUFBUzs7QUFBQSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWEsQ0FBYixFQUFlLENBQWYsRUFBaUI7QUFBQyxRQUFJLENBQUo7QUFBQSxRQUFNLENBQU47QUFBQSxRQUFRLENBQUMsR0FBQyxFQUFWOztBQUFhLFFBQUc7QUFBQyxXQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFGLENBQVAsRUFBYyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBcEIsRUFBNkIsQ0FBQyxDQUFDLENBQUMsSUFBaEMsRUFBcUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQXZDLEVBQWdEO0FBQUMsWUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQVI7QUFBQSxZQUFjLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFqQjtBQUFxQixRQUFBLENBQUMsQ0FBQyxDQUFELENBQUQsS0FBTyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFILEVBQUssQ0FBTCxDQUFiO0FBQXNCO0FBQUMsS0FBakcsQ0FBaUcsT0FBTSxDQUFOLEVBQVE7QUFBQyxNQUFBLENBQUMsR0FBQztBQUFDLFFBQUEsS0FBSyxFQUFDO0FBQVAsT0FBRjtBQUFZLEtBQXRILFNBQTZIO0FBQUMsVUFBRztBQUFDLFFBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsT0FBeEMsU0FBK0M7QUFBQyxZQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxXQUFPLENBQVA7QUFBUzs7QUFBQSxNQUFJLENBQUMsR0FBQyxTQUFGLENBQUUsQ0FBUyxDQUFULEVBQVc7QUFBQyxXQUFPLFVBQVMsQ0FBVCxFQUFXO0FBQUMsVUFBSSxDQUFKO0FBQUEsVUFBTSxDQUFOO0FBQUEsVUFBUSxDQUFDLEdBQUMsQ0FBVjs7QUFBWSxVQUFHO0FBQUMsYUFBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFQLEVBQVcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQWpCLEVBQTBCLENBQUMsQ0FBQyxDQUFDLElBQTdCLEVBQWtDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFwQyxFQUE2QztBQUFDLFVBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSCxDQUFIO0FBQWE7QUFBQyxPQUFoRSxDQUFnRSxPQUFNLENBQU4sRUFBUTtBQUFDLFFBQUEsQ0FBQyxHQUFDO0FBQUMsVUFBQSxLQUFLLEVBQUM7QUFBUCxTQUFGO0FBQVksT0FBckYsU0FBNEY7QUFBQyxZQUFHO0FBQUMsVUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxTQUF4QyxTQUErQztBQUFDLGNBQUcsQ0FBSCxFQUFLLE1BQU0sQ0FBQyxDQUFDLEtBQVI7QUFBYztBQUFDOztBQUFBLGFBQU8sQ0FBUDtBQUFTLEtBQXpNO0FBQTBNLEdBQTVOOztBQUE2TixXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWE7QUFBQyxXQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLENBQUQsQ0FBRCxDQUFMLEdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUQsQ0FBSyxHQUFMLENBQVUsVUFBUyxDQUFULEVBQVc7QUFBQyxVQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFQO0FBQVcsYUFBTSxZQUFVLE9BQU8sQ0FBakIsSUFBb0IsQ0FBQyxJQUFFLE1BQU0sQ0FBQyxJQUFQLENBQVksQ0FBWixFQUFlLE1BQXRDLEdBQTZDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFGLENBQUQsQ0FBUSxHQUFSLENBQWEsVUFBUyxDQUFULEVBQVc7QUFBQyxlQUFNLENBQUMsQ0FBRCxFQUFJLE1BQUosQ0FBVyxDQUFYLENBQU47QUFBb0IsT0FBN0MsQ0FBN0MsR0FBNkYsQ0FBQyxDQUFDLENBQUQsQ0FBRCxDQUFuRztBQUF5RyxLQUExSSxDQUFELENBQWIsR0FBNEosQ0FBQyxFQUFELENBQXBLO0FBQXlLOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFFBQUksQ0FBSjtBQUFNLFdBQU0sQ0FBQyxDQUFDLEdBQUMsRUFBSCxFQUFPLE1BQVAsQ0FBYyxLQUFkLENBQW9CLENBQXBCLEVBQXNCLENBQUMsQ0FBQyxFQUFELEVBQUksQ0FBQyxDQUFDLENBQUQsQ0FBTCxFQUFTLENBQUMsQ0FBVixDQUF2QixDQUFOO0FBQTJDOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFdBQU8sQ0FBQyxDQUFDLENBQUQsQ0FBRCxHQUFLLENBQUwsR0FBTyxDQUFDLENBQUQsQ0FBZDtBQUFrQjs7QUFBQSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWE7QUFBQyxXQUFPLEtBQUssQ0FBTCxLQUFTLENBQVQsR0FBVyxFQUFYLEdBQWMsQ0FBQyxDQUFDLENBQUQsQ0FBdEI7QUFBMEI7O0FBQUEsV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZSxDQUFmLEVBQWlCO0FBQUMsUUFBSSxDQUFKLEVBQU0sQ0FBTjtBQUFRLFFBQUcsQ0FBQyxDQUFDLENBQUQsQ0FBSixFQUFRLE9BQU8sQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFDLENBQUMsSUFBTCxDQUFSO0FBQW1CLFFBQUksQ0FBQyxHQUFDLEVBQU47O0FBQVMsUUFBRztBQUFDLFdBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFQLENBQVksQ0FBWixDQUFELENBQVAsRUFBd0IsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQTlCLEVBQXVDLENBQUMsQ0FBQyxDQUFDLElBQTFDLEVBQStDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFqRCxFQUEwRDtBQUFDLFlBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFSO0FBQUEsWUFBYyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBakI7QUFBcUIsUUFBQSxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLENBQUQsQ0FBRCxHQUFLLENBQUMsQ0FBQyxDQUFELEVBQUcsQ0FBQyxDQUFDLElBQUwsQ0FBWCxHQUFzQixDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBM0I7QUFBNkI7QUFBQyxLQUFsSCxDQUFrSCxPQUFNLENBQU4sRUFBUTtBQUFDLE1BQUEsQ0FBQyxHQUFDO0FBQUMsUUFBQSxLQUFLLEVBQUM7QUFBUCxPQUFGO0FBQVksS0FBdkksU0FBOEk7QUFBQyxVQUFHO0FBQUMsUUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxPQUF4QyxTQUErQztBQUFDLFlBQUcsQ0FBSCxFQUFLLE1BQU0sQ0FBQyxDQUFDLEtBQVI7QUFBYztBQUFDOztBQUFBLFdBQU8sQ0FBUDtBQUFTOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFdBQU8sQ0FBQyxZQUFZLE9BQWIsSUFBc0IsRUFBRSxTQUFPLENBQVAsSUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUYsSUFBTyxZQUFVLE9BQU8sQ0FBbEMsSUFBcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUgsQ0FBekMsQ0FBN0I7QUFBZ0Y7O0FBQUEsV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLFFBQUksQ0FBSjtBQUFBLFFBQU0sQ0FBTjtBQUFBLFFBQVEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUQsRUFBSSxFQUFKLENBQUQsRUFBUyxDQUFULENBQVg7QUFBQSxRQUF1QixDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBMUI7QUFBQSxRQUE4QixDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBakM7O0FBQXFDLFFBQUc7QUFBQyxXQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQVAsRUFBVyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBakIsRUFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBN0IsRUFBa0MsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQXBDLEVBQTZDO0FBQUMsWUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQVI7QUFBYyxRQUFBLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBTCxHQUFlLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUFmO0FBQXlCO0FBQUMsS0FBMUYsQ0FBMEYsT0FBTSxDQUFOLEVBQVE7QUFBQyxNQUFBLENBQUMsR0FBQztBQUFDLFFBQUEsS0FBSyxFQUFDO0FBQVAsT0FBRjtBQUFZLEtBQS9HLFNBQXNIO0FBQUMsVUFBRztBQUFDLFFBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsT0FBeEMsU0FBK0M7QUFBQyxZQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxXQUFNLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBTjtBQUFZOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxXQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBSCxFQUFXLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFVBQUcsQ0FBSCxFQUFLO0FBQUMsWUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssS0FBSyxDQUFWLEdBQVksQ0FBQyxDQUFDLENBQUQsQ0FBZCxNQUFxQixDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQUgsR0FBVyxLQUFLLENBQXRDLENBQU47QUFBK0MsWUFBRyxDQUFILEVBQUssT0FBTTtBQUFDLFVBQUEsT0FBTyxFQUFDLENBQVQ7QUFBVyxVQUFBLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUg7QUFBbkIsU0FBTjtBQUFnQztBQUFDLEtBQXBILENBQVI7QUFBK0g7O0FBQUEsV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZSxDQUFmLEVBQWlCLENBQWpCLEVBQW1CO0FBQUMsV0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQUYsQ0FBVSxVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWE7QUFBQyxVQUFJLENBQUo7QUFBQSxVQUFNLENBQU47QUFBQSxVQUFRLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBWjtBQUFBLFVBQXVCLENBQUMsR0FBQztBQUFDLFFBQUEsS0FBSyxFQUFDLENBQVA7QUFBUyxRQUFBLE1BQU0sRUFBQyxDQUFoQjtBQUFrQixRQUFBLE1BQU0sRUFBQztBQUF6QixPQUF6QjtBQUFBLFVBQXFELENBQUMsR0FBQyxFQUF2RDtBQUEwRCxVQUFHLENBQUMsQ0FBQyxDQUFELENBQUosRUFBUSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFDLENBQUMsSUFBTCxFQUFVLENBQVYsQ0FBSCxDQUFSLEtBQTZCLElBQUc7QUFBQyxhQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFGLENBQVAsRUFBYyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBcEIsRUFBNkIsQ0FBQyxDQUFDLENBQUMsSUFBaEMsRUFBcUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQXZDLEVBQWdEO0FBQUMsY0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQVI7QUFBQSxjQUFjLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFqQjtBQUFxQixVQUFBLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFDLENBQUMsSUFBTCxFQUFVLENBQVYsQ0FBTixHQUFtQixDQUF4QjtBQUEwQjtBQUFDLE9BQXJHLENBQXFHLE9BQU0sQ0FBTixFQUFRO0FBQUMsUUFBQSxDQUFDLEdBQUM7QUFBQyxVQUFBLEtBQUssRUFBQztBQUFQLFNBQUY7QUFBWSxPQUExSCxTQUFpSTtBQUFDLFlBQUc7QUFBQyxVQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLFNBQXhDLFNBQStDO0FBQUMsY0FBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7QUFBQSxhQUFPLE1BQU0sQ0FBQyxNQUFQLENBQWMsRUFBZCxFQUFpQixDQUFqQixFQUFtQixDQUFuQixDQUFQO0FBQTZCLEtBQWxWLEVBQW9WLENBQXBWLENBQUQsR0FBd1YsQ0FBaFc7QUFBa1c7O0FBQUEsV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhO0FBQUMsV0FBTyxLQUFLLENBQUMsT0FBTixDQUFjLENBQWQsQ0FBUDtBQUF3Qjs7QUFBQSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWE7QUFBQyxXQUFNLGNBQVksT0FBTyxDQUF6QjtBQUEyQjs7QUFBQSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWE7QUFBQyxXQUFNLFlBQVUsT0FBTyxDQUF2QjtBQUF5Qjs7QUFBQSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWEsQ0FBYixFQUFlO0FBQUMsUUFBRyxDQUFILEVBQUssT0FBTyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUs7QUFBQyxNQUFBLElBQUksRUFBQyxjQUFOO0FBQXFCLE1BQUEsSUFBSSxFQUFDLENBQTFCO0FBQTRCLE1BQUEsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFGLEdBQU0sS0FBSztBQUFsRCxLQUFMLEdBQTBELENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSztBQUFDLE1BQUEsSUFBSSxFQUFDLGNBQU47QUFBcUIsTUFBQSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQTVCO0FBQWlDLE1BQUEsU0FBUyxFQUFDO0FBQTNDLEtBQUwsR0FBbUQsQ0FBcEg7QUFBc0g7O0FBQUEsTUFBSSxDQUFDLEdBQUMsWUFBVTtBQUFDLFdBQU0sY0FBWSxPQUFPLE1BQW5CLElBQTJCLE1BQU0sQ0FBQyxVQUFsQyxJQUE4QyxjQUFwRDtBQUFtRSxHQUE5RSxFQUFOOztBQUF1RixXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWE7QUFBQyxRQUFHO0FBQUMsYUFBTSxrQkFBaUIsQ0FBdkI7QUFBeUIsS0FBN0IsQ0FBNkIsT0FBTSxDQUFOLEVBQVE7QUFBQyxhQUFNLENBQUMsQ0FBUDtBQUFTO0FBQUM7O0FBQUEsTUFBSSxDQUFKO0FBQUEsTUFBTSxDQUFOO0FBQUEsTUFBUSxDQUFDLEdBQUMsWUFBVTtBQUFDLFFBQUksQ0FBQyxHQUFDLENBQU47QUFBUSxXQUFPLFlBQVU7QUFBQyxhQUFNLENBQUMsRUFBRSxDQUFILEVBQU0sUUFBTixDQUFlLEVBQWYsQ0FBTjtBQUF5QixLQUEzQztBQUE0QyxHQUEvRCxFQUFWOztBQUE0RSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWEsQ0FBYixFQUFlO0FBQUMsV0FBTyxDQUFDLENBQUMsQ0FBRCxDQUFELElBQU0sWUFBVSxPQUFPLENBQXZCLEdBQXlCLEVBQUMsQ0FBQztBQUFDLE1BQUEsSUFBSSxFQUFDO0FBQU4sS0FBRCxFQUFVLENBQVYsQ0FBMUIsR0FBdUMsQ0FBOUM7QUFBZ0Q7O0FBQUEsV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLFFBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFGLElBQU8sWUFBVyxDQUFsQixJQUFxQixZQUFVLENBQUMsQ0FBQyxNQUFwQyxFQUEyQyxPQUFPLENBQVA7QUFBUyxRQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFQO0FBQVcsV0FBTyxFQUFDLENBQUM7QUFBQyxNQUFBLElBQUksRUFBQyxDQUFDLENBQUMsSUFBUjtBQUFhLE1BQUEsSUFBSSxFQUFDLENBQWxCO0FBQW9CLE1BQUEsTUFBTSxFQUFDLE9BQTNCO0FBQW1DLE1BQUEsSUFBSSxFQUFDO0FBQXhDLEtBQUQsRUFBcUQsQ0FBckQsQ0FBUjtBQUFnRTs7QUFBQSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWEsQ0FBYixFQUFlO0FBQUMsV0FBTyxDQUFDLENBQUMsQ0FBRCxDQUFELENBQUssR0FBTCxDQUFVLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxLQUFLLENBQUwsS0FBUyxDQUFULElBQVksWUFBVSxPQUFPLENBQTdCLElBQWdDLENBQUMsQ0FBQyxDQUFELENBQWpDLEdBQXFDO0FBQUMsUUFBQSxNQUFNLEVBQUMsQ0FBUjtBQUFVLFFBQUEsS0FBSyxFQUFDO0FBQWhCLE9BQXJDLEdBQXdELEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLENBQUosQ0FBRixFQUFTO0FBQUMsUUFBQSxLQUFLLEVBQUM7QUFBUCxPQUFULENBQWhFO0FBQW9GLEtBQTFHLENBQVA7QUFBb0g7O0FBQUEsV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZSxDQUFmLEVBQWlCLENBQWpCLEVBQW1CLENBQW5CLEVBQXFCO0FBQUMsUUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxNQUFoQjtBQUFBLFFBQXVCLENBQUMsR0FBQztBQUFDLE1BQUEsS0FBSyxFQUFDLENBQVA7QUFBUyxNQUFBLElBQUksRUFBQyxDQUFkO0FBQWdCLE1BQUEsTUFBTSxFQUFDO0FBQXZCLEtBQXpCO0FBQW1ELFFBQUcsbUJBQWlCLENBQUMsQ0FBQyxJQUF0QixFQUEyQixPQUFNLENBQUMsQ0FBQyxRQUFNLENBQU4sR0FBUSxLQUFLLENBQWIsR0FBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUgsQ0FBakIsS0FBNEIsQ0FBQyxDQUFDLFNBQS9CLEVBQTBDLENBQTFDLEVBQTRDLENBQUMsQ0FBQyxJQUE5QyxFQUFtRCxDQUFuRCxDQUFOO0FBQTRELFFBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSCxDQUFQO0FBQWdCLFFBQUcsQ0FBQyxDQUFKLEVBQU0sTUFBTSxJQUFJLEtBQUosQ0FBVSxVQUFVLE1BQVYsQ0FBaUIsQ0FBQyxDQUFDLElBQW5CLEVBQXdCLG1DQUF4QixFQUE2RCxNQUE3RCxDQUFvRSxDQUFDLENBQUMsRUFBdEUsRUFBeUUsSUFBekUsQ0FBVixDQUFOO0FBQWdHLFdBQU8sQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFDLENBQUMsSUFBTCxFQUFVLENBQVYsQ0FBUjtBQUFxQjs7QUFBQSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWE7QUFBQyxXQUFNLFlBQVUsT0FBTyxDQUFqQixHQUFtQjtBQUFDLE1BQUEsSUFBSSxFQUFDO0FBQU4sS0FBbkIsR0FBNEIsQ0FBbEM7QUFBb0M7O0FBQUEsV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZSxDQUFmLEVBQWlCO0FBQUMsUUFBRyxZQUFVLE9BQU8sQ0FBcEIsRUFBc0IsT0FBTyxDQUFQOztBQUFTLFFBQUksQ0FBQyxHQUFDLFNBQUYsQ0FBRSxHQUFVLENBQUUsQ0FBbEI7O0FBQW1CLFdBQU07QUFBQyxNQUFBLElBQUksRUFBQyxDQUFOO0FBQVEsTUFBQSxLQUFLLEVBQUMsQ0FBQyxJQUFFLENBQWpCO0FBQW1CLE1BQUEsUUFBUSxFQUFDLENBQUMsSUFBRTtBQUEvQixLQUFOO0FBQXdDOztBQUFBLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFGLEtBQWdCLENBQUMsQ0FBQyxXQUFGLEdBQWMsRUFBOUIsQ0FBSCxFQUFzQyxLQUF0QyxHQUE0QyxjQUE1QyxFQUEyRCxDQUFDLENBQUMsSUFBRixHQUFPLGFBQWxFLEVBQWdGLENBQUMsQ0FBQyxLQUFGLEdBQVEsY0FBeEYsRUFBdUcsQ0FBQyxDQUFDLElBQUYsR0FBTyxhQUE5RyxFQUE0SCxDQUFDLENBQUMsTUFBRixHQUFTLGVBQXJJLEVBQXFKLENBQUMsQ0FBQyxTQUFGLEdBQVksRUFBakssRUFBb0ssQ0FBQyxDQUFDLE1BQUYsR0FBUyxlQUE3SyxFQUE2TCxDQUFDLENBQUMsS0FBRixHQUFRLGNBQXJNLEVBQW9OLENBQUMsQ0FBQyxTQUFGLEdBQVksWUFBaE8sRUFBNk8sQ0FBQyxDQUFDLFVBQUYsR0FBYSxhQUExUCxFQUF3USxDQUFDLENBQUMsR0FBRixHQUFNLFlBQTlRLEVBQTJSLENBQUMsQ0FBQyxJQUFGLEdBQU8sYUFBbFMsRUFBZ1QsQ0FBQyxDQUFDLE1BQUYsR0FBUyxlQUF6VCxFQUF5VSxDQUFDLENBQUMsY0FBRixHQUFpQixpQkFBMVYsRUFBNFcsQ0FBQyxDQUFDLGtCQUFGLEdBQXFCLHFCQUFqWSxFQUF1WixDQUFDLENBQUMsYUFBRixHQUFnQixnQkFBdmEsRUFBd2IsQ0FBQyxDQUFDLFdBQUYsR0FBYyxjQUF0YyxFQUFxZCxDQUFDLENBQUMsTUFBRixHQUFTLGVBQTlkLEVBQThlLENBQUMsQ0FBQyxJQUFGLEdBQU8sYUFBcmYsRUFBbWdCLENBQUMsQ0FBQyxNQUFGLEdBQVMsZUFBNWdCLEVBQTRoQixDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsY0FBRixLQUFtQixDQUFDLENBQUMsY0FBRixHQUFpQixFQUFwQyxDQUFILEVBQTRDLE1BQTVDLEdBQW1ELFVBQS9rQixFQUEwbEIsQ0FBQyxDQUFDLFFBQUYsR0FBVyxZQUFybUI7O0FBQWtuQixNQUFJLENBQUMsR0FBQyxTQUFGLENBQUUsQ0FBUyxDQUFULEVBQVc7QUFBQyxXQUFNLGFBQVcsQ0FBQyxDQUFDLElBQWIsSUFBbUIsWUFBVSxDQUFDLENBQUMsSUFBckM7QUFBMEMsR0FBNUQ7O0FBQTZELFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFdBQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFILENBQUQsQ0FBWSxHQUFaLENBQWlCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxDQUFDLENBQUMsTUFBRixDQUFTLENBQVQsQ0FBUDtBQUFtQixLQUFoRCxDQUFQO0FBQTBEOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFFBQUksQ0FBQyxHQUFDLENBQUMsQ0FBRCxDQUFOO0FBQVUsV0FBTyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBTCxHQUFPLENBQUMsQ0FBQyxNQUFGLENBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUQsQ0FBSyxHQUFMLENBQVMsQ0FBVCxDQUFELENBQVYsQ0FBZDtBQUF1Qzs7QUFBQSxXQUFTLENBQVQsQ0FBVyxDQUFYLEVBQWEsQ0FBYixFQUFlO0FBQUMsUUFBSSxDQUFKO0FBQUEsUUFBTSxDQUFOO0FBQUEsUUFBUSxDQUFSO0FBQUEsUUFBVSxDQUFWO0FBQUEsUUFBWSxDQUFaO0FBQUEsUUFBYyxDQUFkO0FBQUEsUUFBZ0IsQ0FBaEI7QUFBQSxRQUFrQixDQUFsQjtBQUFBLFFBQW9CLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxHQUFKLENBQVEsQ0FBUixDQUFELENBQXZCO0FBQUEsUUFBb0MsQ0FBQyxHQUFDLElBQUksR0FBSixDQUFRLENBQVIsQ0FBdEM7O0FBQWlELFFBQUc7QUFBQyxXQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQVAsRUFBVyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBakIsRUFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBN0IsRUFBa0MsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQXBDO0FBQTZDLGFBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUwsRUFBWSxNQUF0QixFQUE2QixDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sQ0FBakM7QUFBMkMsVUFBQSxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sR0FBUyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQWI7QUFBM0M7QUFBN0M7QUFBNEcsS0FBaEgsQ0FBZ0gsT0FBTSxDQUFOLEVBQVE7QUFBQyxNQUFBLENBQUMsR0FBQztBQUFDLFFBQUEsS0FBSyxFQUFDO0FBQVAsT0FBRjtBQUFZLEtBQXJJLFNBQTRJO0FBQUMsVUFBRztBQUFDLFFBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsT0FBeEMsU0FBK0M7QUFBQyxZQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxRQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFQOztBQUFXLFFBQUc7QUFBQyxXQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQVAsRUFBVyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBakIsRUFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBN0IsRUFBa0MsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQXBDLEVBQTZDO0FBQUMsWUFBRyxlQUFhLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFMLEVBQVksSUFBekIsSUFBK0IsQ0FBQyxDQUFDLEdBQUYsQ0FBTSxDQUFOLEtBQVUsQ0FBQyxDQUFDLEdBQUYsQ0FBTSxDQUFOLEVBQVMsTUFBckQsRUFBNEQ7QUFBQyxjQUFHLGVBQWEsQ0FBQyxDQUFDLElBQWxCLEVBQXVCLElBQUc7QUFBQyxpQkFBSSxJQUFJLENBQUMsSUFBRSxDQUFDLEdBQUMsS0FBSyxDQUFQLEVBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUYsQ0FBWixDQUFMLEVBQXlCLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUEvQixFQUF3QyxDQUFDLENBQUMsQ0FBQyxJQUEzQyxFQUFnRCxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBbEQsRUFBMkQ7QUFBQyxrQkFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQVI7QUFBYyw0QkFBWSxDQUFDLENBQUMsSUFBZCxLQUFxQixDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sTUFBVyxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sR0FBUyxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sSUFBUyxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sRUFBUyxPQUFULENBQWtCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsdUJBQU8sQ0FBQyxDQUFDLEdBQUYsQ0FBTSxDQUFOLENBQVA7QUFBZ0IsZUFBOUMsQ0FBVCxHQUEwRCxDQUFDLENBQUMsaUJBQUYsQ0FBb0IsT0FBcEIsQ0FBNkIsVUFBUyxDQUFULEVBQVc7QUFBQyx1QkFBTyxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sQ0FBUDtBQUFnQixlQUF6RCxDQUE5RSxDQUFyQjtBQUFpSztBQUFDLFdBQWhQLENBQWdQLE9BQU0sQ0FBTixFQUFRO0FBQUMsWUFBQSxDQUFDLEdBQUM7QUFBQyxjQUFBLEtBQUssRUFBQztBQUFQLGFBQUY7QUFBWSxXQUFyUSxTQUE0UTtBQUFDLGdCQUFHO0FBQUMsY0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxhQUF4QyxTQUErQztBQUFDLGtCQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQztBQUFDLFNBQXRhLE1BQTJhLENBQUMsQ0FBQyxHQUFGLENBQU0sQ0FBTixJQUFTLENBQUMsQ0FBQyxHQUFGLENBQU0sQ0FBTixFQUFTLE9BQVQsQ0FBa0IsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sQ0FBUDtBQUFnQixTQUE5QyxDQUFULEdBQTBELENBQUMsQ0FBQyxpQkFBRixDQUFvQixPQUFwQixDQUE2QixVQUFTLENBQVQsRUFBVztBQUFDLGlCQUFPLENBQUMsQ0FBQyxHQUFGLENBQU0sQ0FBTixDQUFQO0FBQWdCLFNBQXpELENBQTFEO0FBQXNIO0FBQUMsS0FBcGxCLENBQW9sQixPQUFNLENBQU4sRUFBUTtBQUFDLE1BQUEsQ0FBQyxHQUFDO0FBQUMsUUFBQSxLQUFLLEVBQUM7QUFBUCxPQUFGO0FBQVksS0FBem1CLFNBQWduQjtBQUFDLFVBQUc7QUFBQyxRQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLE9BQXhDLFNBQStDO0FBQUMsWUFBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7O0FBQUEsUUFBRztBQUFDLFdBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBUCxFQUFXLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFqQixFQUEwQixDQUFDLENBQUMsQ0FBQyxJQUE3QixFQUFrQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBcEMsRUFBNkM7QUFBQyxZQUFJLENBQUo7O0FBQU0sYUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUwsRUFBWSxNQUFsQixFQUF5QixDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sQ0FBN0I7QUFBdUMsVUFBQSxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sR0FBUyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQWI7QUFBdkM7QUFBMkQ7QUFBQyxLQUFwSCxDQUFvSCxPQUFNLENBQU4sRUFBUTtBQUFDLE1BQUEsQ0FBQyxHQUFDO0FBQUMsUUFBQSxLQUFLLEVBQUM7QUFBUCxPQUFGO0FBQVksS0FBekksU0FBZ0o7QUFBQyxVQUFHO0FBQUMsUUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxPQUF4QyxTQUErQztBQUFDLFlBQUcsQ0FBSCxFQUFLLE1BQU0sQ0FBQyxDQUFDLEtBQVI7QUFBYztBQUFDOztBQUFBLFdBQU8sQ0FBUDtBQUFTOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFFBQUksQ0FBSjtBQUFBLFFBQU0sQ0FBTjtBQUFBLFFBQVEsQ0FBQyxHQUFDLElBQUksR0FBSixFQUFWOztBQUFrQixRQUFHO0FBQUMsV0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFQLEVBQVcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQWpCLEVBQTBCLENBQUMsQ0FBQyxDQUFDLElBQTdCLEVBQWtDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFwQyxFQUE2QztBQUFDLFlBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFSO0FBQWMsUUFBQSxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sS0FBVSxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sRUFBUSxFQUFSLENBQVYsRUFBc0IsQ0FBQyxDQUFDLE1BQUYsS0FBVyxDQUFDLENBQUMsR0FBRixDQUFNLENBQUMsQ0FBQyxNQUFSLEtBQWlCLENBQUMsQ0FBQyxHQUFGLENBQU0sQ0FBQyxDQUFDLE1BQVIsRUFBZSxFQUFmLENBQWpCLEVBQW9DLENBQUMsQ0FBQyxHQUFGLENBQU0sQ0FBQyxDQUFDLE1BQVIsRUFBZ0IsSUFBaEIsQ0FBcUIsQ0FBckIsQ0FBL0MsQ0FBdEI7QUFBOEY7QUFBQyxLQUEvSixDQUErSixPQUFNLENBQU4sRUFBUTtBQUFDLE1BQUEsQ0FBQyxHQUFDO0FBQUMsUUFBQSxLQUFLLEVBQUM7QUFBUCxPQUFGO0FBQVksS0FBcEwsU0FBMkw7QUFBQyxVQUFHO0FBQUMsUUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxPQUF4QyxTQUErQztBQUFDLFlBQUcsQ0FBSCxFQUFLLE1BQU0sQ0FBQyxDQUFDLEtBQVI7QUFBYztBQUFDOztBQUFBLFdBQU8sQ0FBUDtBQUFTOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxXQUFPLFNBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxVQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sQ0FBTjtBQUFlLFVBQUcsQ0FBQyxDQUFKLEVBQU0sT0FBTSxFQUFOOztBQUFTLFVBQUcsZUFBYSxDQUFDLENBQUMsSUFBbEIsRUFBdUI7QUFBQyxZQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFQO0FBQVcsWUFBRyxDQUFDLENBQUosRUFBTSxPQUFNLEVBQU47QUFBUyxZQUFHLENBQUMsQ0FBQyxDQUFELENBQUosRUFBUSxPQUFPLENBQUMsQ0FBQyxHQUFUO0FBQWE7O0FBQUEsVUFBSSxDQUFDLEdBQUMsRUFBTjtBQUFTLGFBQU8sQ0FBQyxDQUFDLE9BQUYsQ0FBVyxVQUFTLENBQVQsRUFBVztBQUFDLFFBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFILENBQUQsR0FBUyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBVjtBQUFnQixPQUF2QyxHQUEwQyxDQUFqRDtBQUFtRCxLQUFqTCxDQUFrTCxDQUFsTCxFQUFvTCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFELEVBQUssQ0FBTCxDQUFGLENBQXJMLENBQVA7QUFBd007O0FBQUEsV0FBUyxDQUFULENBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLFdBQU8sS0FBSyxDQUFDLE9BQU4sQ0FBYyxDQUFkLElBQWlCLENBQUMsQ0FBQyxJQUFGLENBQVEsVUFBUyxDQUFULEVBQVc7QUFBQyxhQUFPLENBQUMsS0FBRyxDQUFYO0FBQWEsS0FBakMsQ0FBakIsR0FBcUQsQ0FBQyxZQUFZLEdBQWIsSUFBa0IsQ0FBQyxDQUFDLEdBQUYsQ0FBTSxDQUFOLENBQTlFO0FBQXVGOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxXQUFNLGVBQWEsQ0FBQyxDQUFDLElBQWYsR0FBb0IsQ0FBQyxDQUFDLENBQUQsQ0FBRCxDQUFLLElBQUwsQ0FBVyxVQUFTLENBQVQsRUFBVztBQUFDLGFBQU0sWUFBVSxDQUFDLENBQUMsSUFBWixJQUFrQixDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBekI7QUFBK0IsS0FBdEQsQ0FBcEIsR0FBNkUsZUFBYSxDQUFDLENBQUMsSUFBZixJQUFxQixDQUFDLENBQUMsQ0FBRCxDQUFELENBQUssS0FBTCxDQUFZLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBUjtBQUFjLEtBQXRDLENBQXhHO0FBQWlKOztBQUFBLFdBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFdBQU8sSUFBSSxHQUFKLENBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFGLENBQU8sVUFBUyxDQUFULEVBQVc7QUFBQyxhQUFPLENBQUMsQ0FBQyxJQUFUO0FBQWMsS0FBakMsQ0FBRCxDQUFULENBQVA7QUFBdUQ7O0FBQUEsTUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQUYsQ0FBYyxLQUFwQjtBQUFBLE1BQTBCLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBRixDQUFjLElBQTFDO0FBQUEsTUFBK0MsQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFGLENBQWMsS0FBL0Q7QUFBQSxNQUFxRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQUYsQ0FBYyxJQUFyRjtBQUFBLE1BQTBGLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBRixDQUFjLE1BQTFHO0FBQUEsTUFBaUgsRUFBRSxHQUFDLENBQUMsQ0FBQyxXQUFGLENBQWMsU0FBbEk7QUFBQSxNQUE0SSxFQUFFLEdBQUMsQ0FBQyxDQUFDLFdBQUYsQ0FBYyxNQUE3SjtBQUFBLE1BQW9LLEVBQUUsSUFBRSxDQUFDLENBQUMsV0FBRixDQUFjLEtBQWQsRUFBb0IsQ0FBQyxDQUFDLFdBQUYsQ0FBYyxTQUFsQyxFQUE0QyxDQUFDLENBQUMsV0FBRixDQUFjLEdBQTVELENBQXRLO0FBQUEsTUFBdU8sRUFBRSxHQUFDLENBQUMsQ0FBQyxXQUFGLENBQWMsSUFBeFA7QUFBQSxNQUE2UCxFQUFFLEdBQUMsQ0FBQyxDQUFDLFdBQUYsQ0FBYyxNQUE5UTtBQUFBLE1BQXFSLEVBQUUsSUFBRSxDQUFDLENBQUMsV0FBRixDQUFjLGNBQWQsRUFBNkIsQ0FBQyxDQUFDLFdBQUYsQ0FBYyxhQUE3QyxDQUF2UjtBQUFBLE1BQW1WLEVBQUUsR0FBQyxDQUFDLENBQUMsV0FBRixDQUFjLFdBQXBXO0FBQUEsTUFBZ1gsRUFBRSxHQUFDLENBQUMsQ0FBQyxXQUFGLENBQWMsTUFBalk7QUFBQSxNQUF3WSxFQUFFLEdBQUMsQ0FBQyxDQUFDLFdBQUYsQ0FBYyxNQUF6WjtBQUFBLE1BQWdhLEVBQUUsR0FBQyxDQUFDLENBQUMsV0FBRixDQUFjLElBQWpiO0FBQUEsTUFBc2IsRUFBRSxHQUFDLENBQUMsQ0FBQztBQUFDLElBQUEsSUFBSSxFQUFDO0FBQU4sR0FBRCxDQUExYjs7QUFBc2MsV0FBUyxFQUFULENBQVksQ0FBWixFQUFjLENBQWQsRUFBZ0I7QUFBQyxXQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBRCxDQUFKLElBQVMsS0FBSyxDQUFyQjtBQUF1Qjs7QUFBQSxXQUFTLEVBQVQsQ0FBWSxDQUFaLEVBQWMsQ0FBZCxFQUFnQjtBQUFDLFFBQUksQ0FBSjtBQUFNLFFBQUcsQ0FBQyxDQUFDLENBQUQsQ0FBRCxJQUFNLFlBQVUsT0FBTyxDQUExQixFQUE0QixDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBTCxDQUFELEdBQWE7QUFBQyxNQUFBLElBQUksRUFBQyxDQUFOO0FBQVEsTUFBQSxJQUFJLEVBQUM7QUFBYixLQUFiLEdBQTZCLENBQUMsSUFBRTtBQUFDLE1BQUEsSUFBSSxFQUFDLENBQU47QUFBUSxNQUFBLElBQUksRUFBQyxLQUFLO0FBQWxCLEtBQWxDLENBQTVCLEtBQXdGLElBQUcsQ0FBQyxDQUFDLENBQUQsQ0FBSixFQUFRLENBQUMsR0FBQztBQUFDLE1BQUEsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFGLElBQVEsQ0FBQyxDQUFDLFFBQUYsRUFBZDtBQUEyQixNQUFBLElBQUksRUFBQztBQUFoQyxLQUFGLENBQVIsS0FBaUQ7QUFBQyxVQUFJLENBQUo7QUFBTSxVQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFILEVBQVEsQ0FBUixDQUFMLENBQUosRUFBcUIsQ0FBQyxHQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLENBQUosQ0FBRixFQUFTO0FBQUMsUUFBQSxJQUFJLEVBQUM7QUFBTixPQUFULENBQUgsQ0FBckIsS0FBZ0QsSUFBRyxDQUFILEVBQUs7QUFBQyxZQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixJQUFRLENBQUMsQ0FBQyxJQUFoQjtBQUFxQixRQUFBLENBQUMsR0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFELEVBQUksQ0FBSixDQUFGLEVBQVMsQ0FBVCxDQUFGLEVBQWM7QUFBQyxVQUFBLElBQUksRUFBQztBQUFOLFNBQWQsQ0FBSDtBQUEyQixPQUF0RCxNQUEyRCxDQUFDLEdBQUMsQ0FBRjtBQUFJO0FBQUEsV0FBTyxDQUFQO0FBQVM7O0FBQUEsTUFBSSxFQUFFLEdBQUMsU0FBSCxFQUFHLENBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFdBQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBRCxHQUFLLENBQUwsR0FBTyxDQUFDLENBQUQsQ0FBUixFQUFhLEdBQWIsQ0FBa0IsVUFBUyxDQUFULEVBQVc7QUFBQyxhQUFPLEVBQUUsQ0FBQyxDQUFELEVBQUcsQ0FBSCxDQUFUO0FBQWUsS0FBN0MsQ0FBRCxHQUFpRCxFQUF6RDtBQUE0RCxHQUFqRjs7QUFBa0YsV0FBUyxFQUFULENBQVksQ0FBWixFQUFjO0FBQUMsUUFBSSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUQsQ0FBUjtBQUFZLFdBQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQztBQUFDLE1BQUEsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxDQUFMLEdBQU8sQ0FBQyxDQUFDO0FBQWIsS0FBRCxFQUFrQixDQUFsQixDQUFGLEVBQXVCO0FBQUMsTUFBQSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0FBQVIsS0FBdkIsQ0FBUjtBQUE4Qzs7QUFBQSxXQUFTLEVBQVQsQ0FBWSxDQUFaLEVBQWM7QUFBQyxXQUFPLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSztBQUFDLE1BQUEsSUFBSSxFQUFDLENBQU47QUFBUSxNQUFBLEtBQUssRUFBQztBQUFkLEtBQUwsR0FBc0IsRUFBRSxDQUFDLENBQUQsRUFBRztBQUFDLE1BQUEsRUFBRSxFQUFDLENBQUMsQ0FBQyxjQUFGLENBQWlCO0FBQXJCLEtBQUgsQ0FBL0I7QUFBa0U7O0FBQUEsV0FBUyxFQUFULENBQVksQ0FBWixFQUFjLENBQWQsRUFBZ0I7QUFBQyxXQUFNO0FBQUMsTUFBQSxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFILEdBQU0sS0FBSyxDQUFoQjtBQUFrQixNQUFBLElBQUksRUFBQyxDQUF2QjtBQUF5QixNQUFBLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBTCxHQUFPLENBQUMsQ0FBQyxDQUFELENBQXZDO0FBQTJDLE1BQUEsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSCxHQUFTLEtBQUssQ0FBaEU7QUFBa0UsTUFBQSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEtBQUssQ0FBTCxLQUFTLENBQUMsQ0FBQyxFQUFkLEdBQWlCLENBQUMsQ0FBQyxFQUFuQixHQUFzQixDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLElBQVAsR0FBWSxDQUFDLENBQUMsQ0FBRDtBQUF4RyxLQUFOO0FBQW1IOztBQUFBLFdBQVMsRUFBVCxDQUFZLENBQVosRUFBYyxDQUFkLEVBQWdCO0FBQUMsV0FBTyxFQUFFLENBQUMsQ0FBRCxFQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLENBQUosQ0FBRixFQUFTO0FBQUMsTUFBQSxFQUFFLEVBQUMsQ0FBQyxDQUFDLGNBQUYsQ0FBaUI7QUFBckIsS0FBVCxDQUFKLENBQVQ7QUFBcUQ7O0FBQUEsV0FBUyxFQUFULEdBQWE7QUFBQyxXQUFPLEVBQUUsQ0FBQyxFQUFELENBQVQ7QUFBYzs7QUFBQSxNQUFJLEVBQUUsR0FBQyxTQUFILEVBQUcsQ0FBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsV0FBTTtBQUFDLE1BQUEsT0FBTyxFQUFDLENBQVQ7QUFBVyxNQUFBLEtBQUssRUFBQztBQUFqQixLQUFOO0FBQTBCLEdBQS9DOztBQUFnRCxNQUFJLEVBQUUsR0FBQyxTQUFILEVBQUcsQ0FBUyxDQUFULEVBQVc7QUFBQyxXQUFNO0FBQUMsTUFBQSxJQUFJLEVBQUMsQ0FBTjtBQUFRLE1BQUEsTUFBTSxFQUFDO0FBQWYsS0FBTjtBQUF3QixHQUEzQzs7QUFBNEMsV0FBUyxFQUFULENBQVksQ0FBWixFQUFjO0FBQUMsUUFBSSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUQsQ0FBUjtBQUFZLFdBQU07QUFBQyxNQUFBLElBQUksRUFBQyxDQUFDLENBQUMsV0FBRixDQUFjLEtBQXBCO0FBQTBCLE1BQUEsUUFBUSxFQUFDLENBQW5DO0FBQXFDLE1BQUEsSUFBSSxFQUFDLEtBQUs7QUFBL0MsS0FBTjtBQUF3RDs7QUFBQSxXQUFTLEVBQVQsQ0FBWSxDQUFaLEVBQWM7QUFBQyxRQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBTCxHQUFPLEVBQUUsQ0FBQyxDQUFELENBQWY7QUFBbUIsV0FBTTtBQUFDLE1BQUEsSUFBSSxFQUFDLENBQUMsQ0FBQyxXQUFGLENBQWMsSUFBcEI7QUFBeUIsTUFBQSxRQUFRLEVBQUMsQ0FBbEM7QUFBb0MsTUFBQSxJQUFJLEVBQUMsS0FBSztBQUE5QyxLQUFOO0FBQXVEOztBQUFBLE1BQUksRUFBRSxHQUFDLFNBQUgsRUFBRyxDQUFTLENBQVQsRUFBVztBQUFDLFdBQU07QUFBQyxNQUFBLElBQUksRUFBQyxFQUFOO0FBQVMsTUFBQSxVQUFVLEVBQUM7QUFBcEIsS0FBTjtBQUE2QixHQUFoRDs7QUFBaUQsV0FBUyxFQUFULENBQVksQ0FBWixFQUFjLENBQWQsRUFBZ0I7QUFBQyxRQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxNQUFKLENBQVcsQ0FBWCxDQUFELEdBQWUsRUFBdEI7QUFBeUIsV0FBTSxHQUFHLE1BQUgsQ0FBVSxDQUFDLENBQUMsV0FBRixDQUFjLEtBQXhCLEVBQThCLEdBQTlCLEVBQW1DLE1BQW5DLENBQTBDLENBQTFDLEVBQTRDLEdBQTVDLEVBQWlELE1BQWpELENBQXdELENBQXhELENBQU47QUFBaUU7O0FBQUEsV0FBUyxFQUFULENBQVksQ0FBWixFQUFjLENBQWQsRUFBZ0I7QUFBQyxRQUFJLENBQUMsR0FBQyxHQUFHLE1BQUgsQ0FBVSxDQUFDLENBQUMsV0FBRixDQUFjLFNBQXhCLEVBQWtDLEdBQWxDLEVBQXVDLE1BQXZDLENBQThDLENBQTlDLENBQU47QUFBQSxRQUF1RCxDQUFDLEdBQUM7QUFBQyxNQUFBLElBQUksRUFBQyxDQUFOO0FBQVEsTUFBQSxJQUFJLEVBQUMsQ0FBYjtBQUFlLE1BQUEsUUFBUSxFQUFDLG9CQUFVO0FBQUMsZUFBTyxDQUFQO0FBQVM7QUFBNUMsS0FBekQ7QUFBdUcsV0FBTyxDQUFQO0FBQVM7O0FBQUEsV0FBUyxFQUFULENBQVksQ0FBWixFQUFjLENBQWQsRUFBZ0I7QUFBQyxRQUFJLENBQUMsR0FBQyxHQUFHLE1BQUgsQ0FBVSxDQUFDLENBQUMsV0FBRixDQUFjLFVBQXhCLEVBQW1DLEdBQW5DLEVBQXdDLE1BQXhDLENBQStDLENBQS9DLENBQU47QUFBQSxRQUF3RCxDQUFDLEdBQUM7QUFBQyxNQUFBLElBQUksRUFBQyxDQUFOO0FBQVEsTUFBQSxJQUFJLEVBQUMsQ0FBYjtBQUFlLE1BQUEsUUFBUSxFQUFDLG9CQUFVO0FBQUMsZUFBTyxDQUFQO0FBQVM7QUFBNUMsS0FBMUQ7QUFBd0csV0FBTyxDQUFQO0FBQVM7O0FBQUEsV0FBUyxFQUFULENBQVksQ0FBWixFQUFjLENBQWQsRUFBZ0I7QUFBQyxRQUFJLENBQUMsR0FBQyxHQUFHLE1BQUgsQ0FBVSxDQUFDLENBQUMsV0FBRixDQUFjLGFBQXhCLEVBQXNDLEdBQXRDLEVBQTJDLE1BQTNDLENBQWtELENBQWxELENBQU47QUFBQSxRQUEyRCxDQUFDLEdBQUM7QUFBQyxNQUFBLElBQUksRUFBQyxDQUFOO0FBQVEsTUFBQSxJQUFJLEVBQUMsQ0FBYjtBQUFlLE1BQUEsUUFBUSxFQUFDLG9CQUFVO0FBQUMsZUFBTyxDQUFQO0FBQVM7QUFBNUMsS0FBN0Q7QUFBMkcsV0FBTyxDQUFQO0FBQVM7O0FBQUEsV0FBUyxFQUFULENBQVksQ0FBWixFQUFjLENBQWQsRUFBZ0I7QUFBQyxXQUFPLEVBQUUsQ0FBRSxVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWE7QUFBQyxhQUFPLENBQVA7QUFBUyxLQUF6QixFQUEyQixFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxDQUFKLENBQUYsRUFBUztBQUFDLE1BQUEsRUFBRSxFQUFDO0FBQUosS0FBVCxDQUE1QixDQUFUO0FBQXVEOztBQUFBLFdBQVMsRUFBVCxDQUFZLENBQVosRUFBYyxDQUFkLEVBQWdCLENBQWhCLEVBQWtCLENBQWxCLEVBQW9CLENBQXBCLEVBQXNCLENBQXRCLEVBQXdCO0FBQUMsU0FBSyxDQUFMLEtBQVMsQ0FBVCxLQUFhLENBQUMsR0FBQyxDQUFDLENBQWhCO0FBQW1CLFFBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFELEVBQUksQ0FBSixDQUFELEdBQVEsQ0FBQyxDQUFDLENBQUQsRUFBSSxVQUFTLENBQVQsRUFBVztBQUFDLGFBQU8sQ0FBQyxDQUFDLElBQUYsS0FBUyxFQUFoQjtBQUFtQixLQUFuQyxDQUFYLEVBQWlELENBQWpELENBQVA7QUFBQSxRQUEyRCxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBOUQ7QUFBQSxRQUFrRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBckU7QUFBQSxRQUF5RSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQUYsR0FBUyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUgsRUFBSyxDQUFMLEVBQU8sQ0FBUCxDQUFWLEdBQW9CLENBQS9GO0FBQUEsUUFBaUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUQsQ0FBRCxHQUFLLEtBQUssQ0FBOUc7QUFBZ0gsV0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRixDQUFPLFVBQVMsQ0FBVCxFQUFXO0FBQUMsVUFBSSxDQUFKOztBQUFNLGNBQU8sQ0FBQyxDQUFDLElBQVQ7QUFBZSxhQUFLLENBQUw7QUFBTyxpQkFBTTtBQUFDLFlBQUEsSUFBSSxFQUFDLENBQU47QUFBUSxZQUFBLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUg7QUFBaEIsV0FBTjs7QUFBaUMsYUFBSyxDQUFMO0FBQU8saUJBQU8sVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZSxDQUFmLEVBQWlCO0FBQUMsZ0JBQUksQ0FBSjtBQUFBLGdCQUFNLENBQUMsR0FBQztBQUFDLGNBQUEsTUFBTSxFQUFDO0FBQVIsYUFBUjtBQUFBLGdCQUFtQixDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSCxDQUFELEdBQVcsQ0FBQyxDQUFDLEtBQUYsQ0FBUSxDQUFSLEVBQVUsQ0FBQyxDQUFDLElBQVosRUFBaUIsQ0FBakIsQ0FBWCxHQUErQixDQUFDLENBQUMsS0FBbEMsQ0FBdEI7O0FBQStELGdCQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSCxDQUFKLEVBQWM7QUFBQyxrQkFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSCxDQUFWO0FBQW9CLGNBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUMsQ0FBQyxJQUFMLEVBQVUsQ0FBVixDQUFOLEdBQW1CLENBQXJCO0FBQXVCLGFBQTFELE1BQStELENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUgsQ0FBRCxHQUFXLENBQUMsQ0FBQyxLQUFGLENBQVEsQ0FBUixFQUFVLENBQUMsQ0FBQyxJQUFaLEVBQWlCLENBQWpCLENBQVgsR0FBK0IsQ0FBQyxDQUFDLEtBQW5DOztBQUF5QyxnQkFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFILENBQUQsR0FBUSxDQUFDLENBQUMsRUFBRixDQUFLLENBQUwsRUFBTyxDQUFDLENBQUMsSUFBVCxFQUFjLENBQWQsQ0FBUixHQUF5QixDQUFDLENBQUMsRUFBakM7QUFBb0MsbUJBQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFELEVBQUksQ0FBSixDQUFGLEVBQVM7QUFBQyxjQUFBLEVBQUUsRUFBQyxDQUFKO0FBQU0sY0FBQSxNQUFNLEVBQUMsQ0FBYjtBQUFlLGNBQUEsS0FBSyxFQUFDLENBQUMsQ0FBQyxJQUF2QjtBQUE0QixjQUFBLEtBQUssRUFBQztBQUFsQyxhQUFULENBQVI7QUFBdUQsV0FBcFIsQ0FBcVIsQ0FBclIsRUFBdVIsQ0FBdlIsRUFBeVIsQ0FBelIsRUFBMlIsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxNQUFyUyxDQUFQOztBQUFvVCxhQUFLLEVBQUw7QUFBUSxpQkFBTyxVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWEsQ0FBYixFQUFlO0FBQUMsbUJBQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFELEVBQUksQ0FBSixDQUFGLEVBQVM7QUFBQyxjQUFBLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUgsQ0FBRCxHQUFVLENBQUMsQ0FBQyxJQUFaLEdBQWlCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxFQUFTLENBQUMsQ0FBQyxJQUFYLEVBQWdCO0FBQUMsZ0JBQUEsTUFBTSxFQUFDO0FBQVIsZUFBaEI7QUFBeEIsYUFBVCxDQUFSO0FBQXVFLFdBQXZGLENBQXdGLENBQXhGLEVBQTBGLENBQTFGLEVBQTRGLENBQTVGLENBQVA7O0FBQXNHLGFBQUssRUFBTDtBQUFRLGNBQUcsRUFBRSxDQUFDLEdBQUMsVUFBUSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUYsQ0FBUSxJQUFSLENBQWMsVUFBUyxDQUFULEVBQVc7QUFBQyxnQkFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFILEVBQVEsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxNQUFsQixDQUFQO0FBQWlDLG1CQUFNLENBQUMsQ0FBRCxJQUFJLENBQUMsQ0FBQyxDQUFELEVBQUcsQ0FBSCxFQUFLLENBQUwsRUFBTyxDQUFQLEVBQVMsQ0FBVCxDQUFYO0FBQXVCLFdBQWxGLENBQVYsS0FBaUcsS0FBSyxDQUFMLEtBQVMsQ0FBMUcsR0FBNEcsS0FBSyxDQUFqSCxHQUFtSCxDQUFDLENBQUMsT0FBekgsQ0FBSCxFQUFxSSxPQUFNLEVBQU47QUFBUyxjQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUQsRUFBRyxDQUFILEVBQUssQ0FBTCxFQUFPLENBQVAsRUFBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBRixFQUFNLENBQUMsQ0FBQyxPQUFGLENBQVUsT0FBaEIsQ0FBWCxFQUFvQyxDQUFwQyxDQUFILEVBQTBDLENBQTFDLENBQVA7QUFBQSxjQUFvRCxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBdkQ7QUFBQSxjQUEyRCxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBOUQ7QUFBa0UsaUJBQU8sQ0FBQyxHQUFDLENBQUYsRUFBSSxRQUFNLENBQU4sSUFBUyxDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBYixFQUF1QixDQUE5Qjs7QUFBZ0MsYUFBSyxFQUFMO0FBQVEsY0FBSSxDQUFKO0FBQU0sY0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sRUFBUSxDQUFDLENBQUMsSUFBVixDQUFKLENBQUgsRUFBd0IsT0FBTSxFQUFOO0FBQVMsY0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFELEVBQUcsQ0FBSCxFQUFLLENBQUwsRUFBTyxDQUFQLEVBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUYsRUFBTSxDQUFDLENBQUMsT0FBRixDQUFVLE9BQWhCLENBQVgsRUFBb0MsQ0FBcEMsQ0FBSCxFQUEwQyxDQUExQyxDQUFQO0FBQUEsY0FBb0QsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQXZEO0FBQUEsY0FBMkQsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQTlEO0FBQWtFLGlCQUFPLENBQUMsR0FBQyxDQUFGLEVBQUksUUFBTSxDQUFOLElBQVMsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQWIsRUFBdUIsQ0FBOUI7O0FBQWdDLGFBQUssQ0FBTDtBQUFPLGlCQUFPLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxnQkFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFILENBQUQsR0FBYyxDQUFDLENBQUMsUUFBRixDQUFXLENBQVgsRUFBYSxDQUFDLENBQUMsSUFBZixDQUFkLEdBQW1DLENBQUMsQ0FBQyxRQUEzQztBQUFBLGdCQUFvRCxDQUFDLEdBQUMsWUFBVSxPQUFPLENBQWpCLEdBQW1CO0FBQUMsY0FBQSxFQUFFLEVBQUM7QUFBSixhQUFuQixHQUEwQixDQUFoRjtBQUFrRixtQkFBTTtBQUFDLGNBQUEsSUFBSSxFQUFDLENBQUMsQ0FBQyxXQUFGLENBQWMsSUFBcEI7QUFBeUIsY0FBQSxRQUFRLEVBQUM7QUFBbEMsYUFBTjtBQUEyQyxXQUE3SSxDQUE4SSxDQUE5SSxFQUFnSixDQUFoSixFQUFrSixDQUFsSixDQUFQOztBQUE0SixhQUFLLEVBQUw7QUFBUSxVQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUgsRUFBSyxDQUFDLENBQUQsQ0FBTCxFQUFTLENBQVQsQ0FBSCxFQUFlLFFBQU0sQ0FBTixJQUFTLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUF4QjtBQUFrQzs7QUFBTTtBQUFRLGNBQUksQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFELEVBQUcsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxPQUFiLENBQVI7QUFBQSxjQUE4QixDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQWxDOztBQUF1QyxjQUFHLENBQUMsSUFBRSxDQUFOLEVBQVE7QUFBQyxnQkFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQUYsR0FBUyxDQUFmO0FBQWlCLFlBQUEsQ0FBQyxHQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLENBQUosQ0FBRixFQUFTO0FBQUMsY0FBQSxJQUFJLEVBQUMsY0FBUyxDQUFULEVBQVc7QUFBQyxxQkFBSSxJQUFJLENBQUMsR0FBQyxFQUFOLEVBQVMsQ0FBQyxHQUFDLENBQWYsRUFBaUIsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxNQUE3QixFQUFvQyxDQUFDLEVBQXJDO0FBQXdDLGtCQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBSCxDQUFELEdBQU8sU0FBUyxDQUFDLENBQUQsQ0FBaEI7QUFBeEM7O0FBQTRELGdCQUFBLENBQUMsQ0FBQyxLQUFGLENBQVEsS0FBSyxDQUFiLEVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBRixDQUFELEVBQVEsQ0FBQyxDQUFDLENBQUQsQ0FBVCxFQUFhLENBQUMsQ0FBZCxDQUFoQjtBQUFrQztBQUFoSCxhQUFULENBQUg7QUFBK0g7O0FBQUEsaUJBQU8sQ0FBUDtBQUFwd0M7QUFBOHdDLEtBQXZ5QyxFQUEweUMsTUFBMXlDLENBQWt6QyxVQUFTLENBQVQsRUFBVztBQUFDLGFBQU0sQ0FBQyxDQUFDLENBQVI7QUFBVSxLQUF4MEMsQ0FBRCxDQUFGLEVBQSswQyxDQUEvMEMsQ0FBTjtBQUF3MUM7O0FBQUEsTUFBSSxFQUFFLEdBQUMsWUFBVTtBQUFDLGFBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFVBQUksQ0FBSjtBQUFBLFVBQU0sQ0FBTjtBQUFBLFVBQVEsQ0FBQyxHQUFDLElBQVY7QUFBZSxXQUFLLE9BQUwsR0FBYSxFQUFiLEVBQWdCLEtBQUssVUFBTCxHQUFnQixDQUFoQyxFQUFrQyxLQUFLLElBQUwsR0FBVSxFQUE1QyxFQUErQyxLQUFLLE1BQUwsR0FBWSxFQUEzRCxFQUE4RCxLQUFLLEtBQUwsR0FBVyxDQUFDLENBQUMsS0FBM0UsRUFBaUYsS0FBSyxPQUFMLEdBQWEsQ0FBQyxDQUFDLE9BQWhHLEVBQXdHLEtBQUssTUFBTCxHQUFZLENBQUMsQ0FBQyxNQUF0SCxFQUE2SCxLQUFLLFVBQUwsR0FBZ0IsQ0FBQyxDQUFDLFVBQS9JLEVBQTBKLEtBQUssS0FBTCxHQUFXLEtBQUssTUFBTCxDQUFZLElBQWpMLEVBQXNMLEtBQUssWUFBTCxHQUFrQixDQUFDLENBQUMsWUFBMU0sRUFBdU4sS0FBSyxPQUFMLEdBQWEsQ0FBQyxDQUFDLE9BQXRPLEVBQThPLEtBQUssT0FBTCxHQUFhLENBQUMsQ0FBQyxPQUFGLElBQVcsRUFBdFEsRUFBeVEsS0FBSyxVQUFMLEdBQWdCLENBQUMsQ0FBQyxVQUFGLElBQWMsQ0FBdlMsRUFBeVMsS0FBSyxJQUFMLElBQVcsS0FBSyxDQUFMLE1BQVUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxhQUFkLE1BQStCLENBQUMsR0FBQyxFQUFqQyxHQUFxQyxDQUFDLENBQUMsTUFBRixDQUFVLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLGVBQU8sS0FBSyxDQUFMLEtBQVMsQ0FBQyxDQUFDLElBQVgsS0FBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFILENBQUQsR0FBUSxDQUFDLENBQUMsSUFBNUIsR0FBa0MsQ0FBekM7QUFBMkMsT0FBbkUsRUFBcUUsRUFBckUsQ0FBaEQsQ0FBelMsRUFBbWEsS0FBSyxNQUFMLEdBQVksQ0FBQyxDQUFDLE1BQUYsSUFBVSxFQUF6YixFQUE0YixLQUFLLE9BQUwsR0FBYSxLQUFLLE9BQUwsQ0FBYSxJQUFiLENBQWtCLElBQWxCLENBQXpjLEVBQWllLEtBQUssU0FBTCxHQUFlLEtBQUssU0FBTCxDQUFlLElBQWYsQ0FBb0IsSUFBcEIsQ0FBaGYsRUFBMGdCLEtBQUssYUFBTCxHQUFtQixDQUFDLENBQUMsYUFBL2hCLEVBQTZpQixLQUFLLFdBQUwsR0FBaUIsQ0FBQyxDQUFDLFdBQWhrQixFQUE0a0IsS0FBSyxRQUFMLEdBQWMsQ0FBQyxDQUFDLFFBQTVsQixFQUFxbUIsS0FBSyxJQUFMLEdBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFubkIsRUFBd25CLEtBQUssSUFBTCxHQUFVLFVBQVEsQ0FBQyxHQUFDLEtBQUssQ0FBQyxPQUFOLENBQWMsQ0FBQyxDQUFDLElBQWhCLElBQXNCLElBQUksR0FBSixDQUFRLENBQUMsQ0FBQyxJQUFWLENBQXRCLEdBQXNDLENBQUMsQ0FBQyxJQUFsRCxLQUF5RCxLQUFLLENBQUwsS0FBUyxDQUFsRSxHQUFvRSxDQUFwRSxHQUFzRSxJQUFJLEdBQUosRUFBeHNCLEVBQWd0QixLQUFLLE9BQUwsR0FBYSxDQUFDLENBQUMsT0FBL3RCLEVBQXV1QixNQUFNLENBQUMsY0FBUCxDQUFzQixJQUF0QixFQUEyQixZQUEzQixFQUF3QztBQUFDLFFBQUEsR0FBRyxFQUFDLGVBQVU7QUFBQyxpQkFBTyxVQUFTLENBQVQsRUFBVztBQUFDLG1CQUFPLENBQUMsQ0FBQyxFQUFELEVBQUksQ0FBQyxDQUFDLElBQUksR0FBSixDQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRCxFQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRixDQUFPLFVBQVMsQ0FBVCxFQUFXO0FBQUMscUJBQU8sQ0FBQyxDQUFDLFNBQVQ7QUFBbUIsYUFBdEMsQ0FBRCxDQUFMLEVBQWdELENBQUMsQ0FBakQsQ0FBRixDQUFULENBQUQsQ0FBTCxFQUF3RSxDQUFDLENBQXpFLENBQVI7QUFBb0YsV0FBaEcsQ0FBaUcsQ0FBQyxDQUFDLGFBQW5HLENBQVA7QUFBeUg7QUFBekksT0FBeEMsQ0FBdnVCO0FBQTI1Qjs7QUFBQSxXQUFPLENBQUMsQ0FBQyxJQUFGLEdBQU8sVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsYUFBTyxDQUFDLFlBQVksQ0FBYixHQUFlLENBQUMsQ0FBQyxPQUFGLEtBQVksQ0FBWixHQUFjLElBQUksQ0FBSixDQUFNO0FBQUMsUUFBQSxLQUFLLEVBQUMsQ0FBQyxDQUFDLEtBQVQ7QUFBZSxRQUFBLE9BQU8sRUFBQyxDQUF2QjtBQUF5QixRQUFBLE1BQU0sRUFBQyxDQUFDLENBQUMsTUFBbEM7QUFBeUMsUUFBQSxVQUFVLEVBQUMsSUFBcEQ7QUFBeUQsUUFBQSxZQUFZLEVBQUMsQ0FBQyxDQUFDLFlBQXhFO0FBQXFGLFFBQUEsT0FBTyxFQUFDLENBQUMsQ0FBQyxPQUEvRjtBQUF1RyxRQUFBLE9BQU8sRUFBQyxFQUEvRztBQUFrSCxRQUFBLFVBQVUsRUFBQyxDQUFDLENBQUMsVUFBL0g7QUFBMEksUUFBQSxJQUFJLEVBQUMsRUFBL0k7QUFBa0osUUFBQSxNQUFNLEVBQUMsRUFBeko7QUFBNEosUUFBQSxhQUFhLEVBQUMsRUFBMUs7QUFBNkssUUFBQSxXQUFXLEVBQUMsRUFBekw7QUFBNEwsUUFBQSxRQUFRLEVBQUM7QUFBck0sT0FBTixDQUFkLEdBQThOLENBQTdPLEdBQStPLElBQUksQ0FBSixDQUFNO0FBQUMsUUFBQSxLQUFLLEVBQUMsQ0FBUDtBQUFTLFFBQUEsT0FBTyxFQUFDLENBQWpCO0FBQW1CLFFBQUEsTUFBTSxFQUFDLEVBQTFCO0FBQTZCLFFBQUEsVUFBVSxFQUFDLElBQXhDO0FBQTZDLFFBQUEsWUFBWSxFQUFDLEtBQUssQ0FBL0Q7QUFBaUUsUUFBQSxPQUFPLEVBQUMsS0FBSyxDQUE5RTtBQUFnRixRQUFBLE9BQU8sRUFBQyxFQUF4RjtBQUEyRixRQUFBLFVBQVUsRUFBQyxLQUFLLENBQTNHO0FBQTZHLFFBQUEsSUFBSSxFQUFDLEtBQUssQ0FBdkg7QUFBeUgsUUFBQSxNQUFNLEVBQUMsRUFBaEk7QUFBbUksUUFBQSxhQUFhLEVBQUMsRUFBako7QUFBb0osUUFBQSxXQUFXLEVBQUMsRUFBaEs7QUFBbUssUUFBQSxRQUFRLEVBQUM7QUFBNUssT0FBTixDQUF0UDtBQUE2YSxLQUFsYyxFQUFtYyxDQUFDLENBQUMsTUFBRixHQUFTLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxJQUFJLENBQUosQ0FBTSxDQUFOLENBQVA7QUFBZ0IsS0FBeGUsRUFBeWUsQ0FBQyxDQUFDLEtBQUYsR0FBUSxVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWE7QUFBQyxVQUFHLENBQUMsWUFBWSxDQUFoQixFQUFrQjtBQUFDLFlBQUcsQ0FBQyxDQUFDLENBQUMsT0FBRixDQUFVLE1BQWQsRUFBcUIsT0FBTyxDQUFQO0FBQVMsWUFBSSxDQUFDLEdBQUMsRUFBTjtBQUFTLGVBQU8sSUFBSSxDQUFKLENBQU07QUFBQyxVQUFBLEtBQUssRUFBQyxDQUFDLENBQUMsS0FBVDtBQUFlLFVBQUEsT0FBTyxFQUFDLENBQXZCO0FBQXlCLFVBQUEsTUFBTSxFQUFDLENBQWhDO0FBQWtDLFVBQUEsVUFBVSxFQUFDLElBQTdDO0FBQWtELFVBQUEsWUFBWSxFQUFDLENBQUMsQ0FBQyxZQUFqRTtBQUE4RSxVQUFBLE9BQU8sRUFBQyxDQUFDLENBQUMsT0FBeEY7QUFBZ0csVUFBQSxVQUFVLEVBQUMsQ0FBQyxDQUFDLFVBQTdHO0FBQXdILFVBQUEsYUFBYSxFQUFDLENBQUMsQ0FBQyxhQUF4STtBQUFzSixVQUFBLFdBQVcsRUFBQyxFQUFsSztBQUFxSyxVQUFBLFFBQVEsRUFBQztBQUE5SyxTQUFOLENBQVA7QUFBZ007O0FBQUEsYUFBTyxDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsRUFBUyxDQUFULENBQVA7QUFBbUIsS0FBNXdCLEVBQTZ3QixDQUFDLENBQUMsU0FBRixDQUFZLFNBQVosR0FBc0IsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsVUFBSSxDQUFDLEdBQUMsSUFBTjtBQUFXLFVBQUcsS0FBSyxDQUFMLEtBQVMsQ0FBVCxLQUFhLENBQUMsR0FBQyxLQUFLLEtBQXBCLEdBQTJCLEtBQUssQ0FBTCxLQUFTLENBQVQsS0FBYSxDQUFDLEdBQUMsR0FBZixDQUEzQixFQUErQyxDQUFDLENBQUMsQ0FBRCxDQUFuRCxFQUF1RCxPQUFNLENBQUMsQ0FBRCxDQUFOO0FBQVUsVUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBUDtBQUFXLGFBQU8sQ0FBQyxDQUFDLE1BQUYsQ0FBUyxLQUFULENBQWUsQ0FBZixFQUFpQixDQUFDLENBQUMsRUFBRCxFQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRixDQUFPLFVBQVMsQ0FBVCxFQUFXO0FBQUMsZUFBTyxDQUFDLENBQUMsU0FBRixDQUFZLENBQUMsQ0FBQyxDQUFELENBQWIsRUFBaUIsQ0FBakIsRUFBb0IsR0FBcEIsQ0FBeUIsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxDQUFDLEdBQUMsQ0FBRixHQUFJLENBQVg7QUFBYSxTQUFsRCxDQUFQO0FBQTRELE9BQS9FLENBQUQsQ0FBTCxFQUF5RixDQUFDLENBQTFGLENBQWxCLENBQVA7QUFBdUgsS0FBLy9CLEVBQWdnQyxDQUFDLENBQUMsU0FBRixDQUFZLE1BQVosR0FBbUIsWUFBVTtBQUFDLFVBQUksQ0FBQyxHQUFDLElBQU47QUFBQSxVQUFXLENBQUMsSUFBRSxDQUFDLENBQUMsYUFBRixFQUFnQixDQUFDLENBQUMsV0FBbEIsRUFBOEIsQ0FBQyxDQUFDLElBQWxDLENBQVo7QUFBQSxVQUFvRCxDQUFDLElBQUUsQ0FBQyxDQUFDLE9BQUYsRUFBVSxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUMsZUFBRCxFQUFpQixhQUFqQixFQUErQixNQUEvQixFQUFzQyxTQUF0QyxDQUFILENBQWIsQ0FBckQ7QUFBd0gsYUFBTyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxDQUFKLENBQUYsRUFBUztBQUFDLFFBQUEsSUFBSSxFQUFDLEtBQUssQ0FBQyxJQUFOLENBQVcsQ0FBWDtBQUFOLE9BQVQsQ0FBUjtBQUF1QyxLQUE3ckMsRUFBOHJDLENBQUMsQ0FBQyxTQUFGLENBQVksT0FBWixHQUFvQixVQUFTLENBQVQsRUFBVztBQUFDLGFBQU8sQ0FBQyxDQUFDLENBQUQsRUFBRyxLQUFLLEtBQVIsQ0FBUjtBQUF1QixLQUFydkMsRUFBc3ZDLENBQUMsQ0FBQyxTQUFGLENBQVksTUFBWixHQUFtQixVQUFTLENBQVQsRUFBVztBQUFDLGFBQU8sS0FBSyxJQUFMLENBQVUsR0FBVixDQUFjLENBQWQsQ0FBUDtBQUF3QixLQUE3eUMsRUFBOHlDLENBQUMsQ0FBQyxTQUFGLENBQVksR0FBWixHQUFnQixVQUFTLENBQVQsRUFBVztBQUFDLFVBQUksQ0FBSjtBQUFNLGFBQU8sS0FBSyxPQUFMLEVBQWEsQ0FBQyxFQUFFLFVBQVEsQ0FBQyxHQUFDLEtBQUssT0FBZixLQUF5QixLQUFLLENBQUwsS0FBUyxDQUFsQyxHQUFvQyxLQUFLLENBQXpDLEdBQTJDLENBQUMsQ0FBQyxVQUFGLENBQWEsSUFBYixFQUFrQixDQUFsQixFQUFxQixPQUFsRSxDQUFyQjtBQUFnRyxLQUFoN0MsRUFBaTdDLENBQXg3QztBQUEwN0MsR0FBNzNFLEVBQVA7QUFBQSxNQUF1NEUsRUFBRSxHQUFDLEVBQTE0RTtBQUFBLE1BQTY0RSxFQUFFLEdBQUMsU0FBSCxFQUFHLENBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLElBQUEsRUFBRSxDQUFDLElBQUgsQ0FBUSxDQUFSO0FBQVcsUUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBUDtBQUFXLFdBQU8sRUFBRSxDQUFDLEdBQUgsSUFBUyxDQUFoQjtBQUFrQixHQUF0OEU7O0FBQXU4RSxXQUFTLEVBQVQsQ0FBWSxDQUFaLEVBQWM7QUFBQyxXQUFNO0FBQUMsTUFBQSxFQUFFLEVBQUMsQ0FBSjtBQUFNLE1BQUEsSUFBSSxFQUFDLGdCQUFVLENBQUUsQ0FBdkI7QUFBd0IsTUFBQSxTQUFTLEVBQUMscUJBQVU7QUFBQyxlQUFNO0FBQUMsVUFBQSxXQUFXLEVBQUMsdUJBQVUsQ0FBRTtBQUF6QixTQUFOO0FBQWlDLE9BQTlFO0FBQStFLE1BQUEsV0FBVyxFQUFDLHVCQUFVLENBQUUsQ0FBdkc7QUFBd0csTUFBQSxNQUFNLEVBQUMsa0JBQVU7QUFBQyxlQUFNO0FBQUMsVUFBQSxFQUFFLEVBQUM7QUFBSixTQUFOO0FBQWE7QUFBdkksS0FBTjtBQUErSTs7QUFBQSxXQUFTLEVBQVQsQ0FBWSxDQUFaLEVBQWMsQ0FBZCxFQUFnQixDQUFoQixFQUFrQjtBQUFDLFFBQUksQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFELENBQVI7O0FBQVksUUFBRyxDQUFDLENBQUMsUUFBRixHQUFXLENBQUMsQ0FBWixFQUFjLENBQUMsQ0FBQyxDQUFELENBQWxCLEVBQXNCO0FBQUMsVUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUYsR0FBUSxFQUFFLENBQUMsS0FBSyxDQUFOLEVBQVMsWUFBVTtBQUFDLGVBQU0sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQUYsQ0FBYyxDQUFkLENBQUQsR0FBa0IsQ0FBcEIsRUFBdUIsWUFBN0I7QUFBMEMsT0FBOUQsQ0FBaEI7O0FBQWlGLE1BQUEsQ0FBQyxDQUFDLFdBQUYsR0FBYyxZQUFVO0FBQUMsZUFBTyxDQUFQO0FBQVMsT0FBbEM7QUFBbUM7O0FBQUEsV0FBTyxDQUFQO0FBQVM7O0FBQUEsV0FBUyxFQUFULENBQVksQ0FBWixFQUFjO0FBQUMsUUFBRyxZQUFVLE9BQU8sQ0FBcEIsRUFBc0I7QUFBQyxVQUFJLENBQUMsR0FBQztBQUFDLFFBQUEsSUFBSSxFQUFDLENBQU47QUFBUSxRQUFBLFFBQVEsRUFBQyxvQkFBVTtBQUFDLGlCQUFPLENBQVA7QUFBUztBQUFyQyxPQUFOO0FBQTZDLGFBQU8sQ0FBUDtBQUFTOztBQUFBLFdBQU8sQ0FBUDtBQUFTOztBQUFBLFdBQVMsRUFBVCxDQUFZLENBQVosRUFBYztBQUFDLFdBQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQztBQUFDLE1BQUEsSUFBSSxFQUFDO0FBQU4sS0FBRCxFQUFXLENBQVgsQ0FBRixFQUFnQjtBQUFDLE1BQUEsTUFBTSxFQUFDLGtCQUFVO0FBQUMsUUFBQSxDQUFDLENBQUMsTUFBRixFQUFTLENBQUMsQ0FBQyxPQUFYO0FBQW1CLFlBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELEVBQUcsQ0FBQyxRQUFELEVBQVUsU0FBVixDQUFILENBQVA7QUFBZ0MsZUFBTyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxDQUFKLENBQUYsRUFBUztBQUFDLFVBQUEsSUFBSSxFQUFDLEVBQU47QUFBUyxVQUFBLEdBQUcsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUg7QUFBZixTQUFULENBQVI7QUFBMEM7QUFBaEgsS0FBaEIsQ0FBUjtBQUEySTs7QUFBQSxNQUFJLEVBQUUsR0FBQyxFQUFQO0FBQUEsTUFBVSxFQUFFLEdBQUMsU0FBSCxFQUFHLENBQVMsQ0FBVCxFQUFXO0FBQUMsV0FBTSxRQUFNLENBQUMsQ0FBQyxDQUFELENBQWI7QUFBaUIsR0FBMUM7QUFBQSxNQUEyQyxFQUFFLEdBQUMsWUFBVTtBQUFDLGFBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYSxDQUFiLEVBQWUsQ0FBZixFQUFpQjtBQUFDLFVBQUksQ0FBSjtBQUFBLFVBQU0sQ0FBQyxHQUFDLElBQVI7QUFBYSxXQUFLLENBQUwsS0FBUyxDQUFULEtBQWEsQ0FBQyxHQUFDLGFBQVksQ0FBWixHQUFjLENBQUMsQ0FBQyxPQUFoQixHQUF3QixLQUFLLENBQTVDLEdBQStDLEtBQUssTUFBTCxHQUFZLENBQTNELEVBQTZELEtBQUssUUFBTCxHQUFjLENBQTNFLEVBQTZFLEtBQUssS0FBTCxHQUFXLENBQUMsQ0FBekYsRUFBMkYsS0FBSyxZQUFMLEdBQWtCLENBQUMsQ0FBOUcsRUFBZ0gsS0FBSyxPQUFMLEdBQWE7QUFBQyxRQUFBLE1BQU0sRUFBQyxLQUFLLENBQWI7QUFBZSxRQUFBLGFBQWEsRUFBQyxJQUFJLEdBQUosRUFBN0I7QUFBcUMsUUFBQSxpQkFBaUIsRUFBQyxLQUFLLENBQTVEO0FBQThELFFBQUEsWUFBWSxFQUFDLEtBQUssQ0FBaEY7QUFBa0YsUUFBQSxFQUFFLEVBQUMsS0FBSyxDQUExRjtBQUE0RixRQUFBLFdBQVcsRUFBQyxLQUFLLENBQTdHO0FBQStHLFFBQUEsVUFBVSxFQUFDLEVBQTFIO0FBQTZILFFBQUEsa0JBQWtCLEVBQUMsS0FBSztBQUFySixPQUE3SCxFQUFxUixLQUFLLEtBQUwsR0FBVyxFQUFoUyxFQUFtUyxLQUFLLElBQUwsR0FBVSxFQUE3UyxFQUFnVCxLQUFLLE9BQUwsR0FBYSxNQUFNLENBQUMsTUFBUCxDQUFjO0FBQUMsUUFBQSxPQUFPLEVBQUMsRUFBVDtBQUFZLFFBQUEsTUFBTSxFQUFDLEVBQW5CO0FBQXNCLFFBQUEsUUFBUSxFQUFDLEVBQS9CO0FBQWtDLFFBQUEsVUFBVSxFQUFDLEVBQTdDO0FBQWdELFFBQUEsTUFBTSxFQUFDO0FBQXZELE9BQWQsRUFBeUUsQ0FBekUsQ0FBN1QsRUFBeVksS0FBSyxNQUFMLEdBQVksS0FBSyxPQUFMLENBQWEsT0FBbGEsRUFBMGEsS0FBSyxHQUFMLEdBQVMsS0FBSyxNQUFMLENBQVksR0FBWixJQUFpQixLQUFLLE9BQUwsQ0FBYSxJQUE5QixJQUFvQyxLQUFLLE1BQUwsQ0FBWSxFQUFoRCxJQUFvRCxXQUF2ZSxFQUFtZixLQUFLLE9BQUwsR0FBYSxLQUFLLE1BQUwsR0FBWSxLQUFLLE1BQUwsQ0FBWSxPQUF4QixHQUFnQyxJQUFoaUIsRUFBcWlCLEtBQUssSUFBTCxHQUFVLEtBQUssTUFBTCxHQUFZLEtBQUssTUFBTCxDQUFZLElBQVosQ0FBaUIsTUFBakIsQ0FBd0IsS0FBSyxHQUE3QixDQUFaLEdBQThDLEVBQTdsQixFQUFnbUIsS0FBSyxTQUFMLEdBQWUsS0FBSyxNQUFMLENBQVksU0FBWixLQUF3QixLQUFLLE1BQUwsR0FBWSxLQUFLLE1BQUwsQ0FBWSxTQUF4QixHQUFrQyxHQUExRCxDQUEvbUIsRUFBOHFCLEtBQUssRUFBTCxHQUFRLEtBQUssTUFBTCxDQUFZLEVBQVosSUFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFMLENBQWEsR0FBZCxDQUFELEVBQW9CLENBQUMsQ0FBQyxLQUFLLElBQU4sQ0FBckIsRUFBaUMsQ0FBQyxDQUFsQyxDQUFELENBQXNDLElBQXRDLENBQTJDLEtBQUssU0FBaEQsQ0FBdHNCLEVBQWl3QixLQUFLLE9BQUwsR0FBYSxLQUFLLE1BQUwsR0FBWSxLQUFLLE1BQUwsQ0FBWSxPQUF4QixHQUFnQyxLQUFLLE1BQUwsQ0FBWSxPQUExekIsRUFBazBCLEtBQUssSUFBTCxHQUFVLEtBQUssTUFBTCxDQUFZLElBQVosS0FBbUIsS0FBSyxNQUFMLENBQVksUUFBWixHQUFxQixVQUFyQixHQUFnQyxLQUFLLE1BQUwsQ0FBWSxNQUFaLElBQW9CLENBQUMsQ0FBQyxLQUFLLE1BQUwsQ0FBWSxNQUFiLENBQUQsQ0FBc0IsTUFBMUMsR0FBaUQsVUFBakQsR0FBNEQsS0FBSyxNQUFMLENBQVksT0FBWixHQUFvQixTQUFwQixHQUE4QixRQUE3SSxDQUE1MEIsRUFBbStCLEtBQUssTUFBTCxHQUFZLEtBQUssTUFBTCxHQUFZLEtBQUssT0FBTCxDQUFhLE1BQXpCLEdBQWdDLFVBQVEsQ0FBQyxHQUFDLEtBQUssTUFBTCxDQUFZLE1BQXRCLEtBQStCLEtBQUssQ0FBTCxLQUFTLENBQXhDLEdBQTBDLENBQTFDLEdBQTRDLEVBQTNqQyxFQUE4akMsS0FBSyxXQUFMLEdBQWlCLEtBQUssTUFBTCxDQUFZLFdBQTNsQyxFQUF1bUMsS0FBSyxPQUFMLEdBQWEsS0FBSyxNQUFMLENBQVksT0FBaG9DLEVBQXdvQyxLQUFLLE1BQUwsR0FBWSxLQUFLLE1BQUwsQ0FBWSxNQUFaLEdBQW1CLENBQUMsQ0FBQyxLQUFLLE1BQUwsQ0FBWSxNQUFiLEVBQXFCLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFlBQUksQ0FBSjtBQUFBLFlBQU0sQ0FBQyxHQUFDLElBQUksQ0FBSixDQUFNLENBQU4sRUFBUTtBQUFDLFVBQUEsT0FBTyxFQUFDLENBQVQ7QUFBVyxVQUFBLElBQUksRUFBQztBQUFoQixTQUFSLENBQVI7QUFBb0MsZUFBTyxNQUFNLENBQUMsTUFBUCxDQUFjLENBQUMsQ0FBQyxLQUFoQixFQUFzQixFQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUMsRUFBSCxFQUFPLENBQUMsQ0FBQyxFQUFULElBQWEsQ0FBYixFQUFlLENBQWpCLEdBQW9CLENBQUMsQ0FBQyxLQUF0QixDQUF2QixHQUFxRCxDQUE1RDtBQUE4RCxPQUFySSxDQUFwQixHQUE0SixFQUFoekM7QUFBbXpDLFVBQUksQ0FBQyxHQUFDLENBQU47QUFBUSxPQUFDLFNBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFlBQUksQ0FBSixFQUFNLENBQU47QUFBUSxRQUFBLENBQUMsQ0FBQyxLQUFGLEdBQVEsQ0FBQyxFQUFUOztBQUFZLFlBQUc7QUFBQyxlQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFGLENBQVAsRUFBYyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBcEIsRUFBNkIsQ0FBQyxDQUFDLENBQUMsSUFBaEMsRUFBcUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQXZDLEVBQWdEO0FBQUMsWUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUgsQ0FBRDtBQUFXO0FBQUMsU0FBakUsQ0FBaUUsT0FBTSxDQUFOLEVBQVE7QUFBQyxVQUFBLENBQUMsR0FBQztBQUFDLFlBQUEsS0FBSyxFQUFDO0FBQVAsV0FBRjtBQUFZLFNBQXRGLFNBQTZGO0FBQUMsY0FBRztBQUFDLFlBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsV0FBeEMsU0FBK0M7QUFBQyxnQkFBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7QUFBQyxPQUFyTSxDQUFzTSxJQUF0TSxDQUFELEVBQTZNLEtBQUssT0FBTCxHQUFhLENBQUMsQ0FBRCxLQUFLLEtBQUssTUFBTCxDQUFZLE9BQWpCLEdBQXlCLFNBQXpCLEdBQW1DLEtBQUssTUFBTCxDQUFZLE9BQVosSUFBcUIsQ0FBQyxDQUFuUixFQUFxUixLQUFLLFVBQUwsR0FBZ0IsQ0FBQyxDQUFDLEtBQUssTUFBTCxDQUFZLE1BQWQsSUFBc0IsQ0FBQyxDQUFDLEtBQUssTUFBTCxDQUFZLEVBQWQsS0FBbUIsS0FBSyxDQUFDLE9BQU4sQ0FBYyxLQUFLLE1BQUwsQ0FBWSxFQUExQixJQUE4QixLQUFLLE1BQUwsQ0FBWSxFQUFaLENBQWUsSUFBZixDQUFxQixVQUFTLENBQVQsRUFBVztBQUFDLGVBQU0sT0FBSyxDQUFDLENBQUMsS0FBYjtBQUFtQixPQUFwRCxDQUE5QixHQUFxRixNQUFLLEtBQUssTUFBTCxDQUFZLEVBQXpILENBQTNULEVBQXdiLEtBQUssTUFBTCxHQUFZLENBQUMsQ0FBQyxLQUFLLE1BQUwsQ0FBWSxNQUFsZCxFQUF5ZCxLQUFLLE9BQUwsR0FBYSxDQUFDLENBQUMsS0FBSyxNQUFMLENBQVksS0FBWixJQUFtQixLQUFLLE1BQUwsQ0FBWSxPQUFoQyxDQUFELENBQTBDLEdBQTFDLENBQStDLFVBQVMsQ0FBVCxFQUFXO0FBQUMsZUFBTyxFQUFFLENBQUMsQ0FBRCxDQUFUO0FBQWEsT0FBeEUsQ0FBdGUsRUFBaWpCLEtBQUssTUFBTCxHQUFZLENBQUMsQ0FBQyxLQUFLLE1BQUwsQ0FBWSxJQUFaLElBQWtCLEtBQUssTUFBTCxDQUFZLE1BQS9CLENBQUQsQ0FBd0MsR0FBeEMsQ0FBNkMsVUFBUyxDQUFULEVBQVc7QUFBQyxlQUFPLEVBQUUsQ0FBQyxDQUFELENBQVQ7QUFBYSxPQUF0RSxDQUE3akIsRUFBc29CLEtBQUssSUFBTCxHQUFVLEtBQUssTUFBTCxDQUFZLElBQTVwQixFQUFpcUIsS0FBSyxRQUFMLEdBQWMsWUFBVSxLQUFLLElBQWYsR0FBb0IsS0FBSyxNQUFMLENBQVksSUFBaEMsR0FBcUMsS0FBSyxDQUF6dEIsRUFBMnRCLEtBQUssTUFBTCxHQUFZLENBQUMsQ0FBQyxLQUFLLE1BQUwsQ0FBWSxNQUFiLENBQUQsQ0FBc0IsR0FBdEIsQ0FBMkIsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsWUFBSSxDQUFKLEVBQU0sQ0FBTjtBQUFRLFlBQUcsQ0FBQyxDQUFDLENBQUQsQ0FBSixFQUFRLE9BQU8sQ0FBQyxDQUFDLE9BQUYsQ0FBVSxPQUFWLENBQWtCLFFBQWxCLEdBQTJCLEVBQUMsRUFBRSxDQUFDLENBQUMsR0FBQyxFQUFILEVBQU8sQ0FBQyxDQUFDLEVBQVQsSUFBYSxDQUFiLEVBQWUsQ0FBakIsR0FBb0IsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxPQUFWLENBQWtCLFFBQXRDLENBQTVCLEVBQTRFLEVBQUUsQ0FBQztBQUFDLFVBQUEsR0FBRyxFQUFDLENBQUMsQ0FBQyxFQUFQO0FBQVUsVUFBQSxFQUFFLEVBQUMsQ0FBQyxDQUFDO0FBQWYsU0FBRCxDQUFyRjtBQUEwRyxZQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBSCxDQUFKLEVBQVksT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFELEVBQUksQ0FBSixDQUFGLEVBQVM7QUFBQyxVQUFBLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRixJQUFNLENBQUMsQ0FBQyxHQUFaO0FBQWdCLFVBQUEsR0FBRyxFQUFDLENBQUMsQ0FBQztBQUF0QixTQUFULENBQUYsQ0FBVDs7QUFBaUQsWUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUgsQ0FBRCxJQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBSCxDQUFkLEVBQXNCO0FBQUMsY0FBSSxDQUFDLEdBQUMsR0FBRyxNQUFILENBQVUsQ0FBQyxDQUFDLEVBQVosRUFBZSxjQUFmLEVBQStCLE1BQS9CLENBQXNDLENBQXRDLEVBQXdDLEdBQXhDLENBQU47QUFBbUQsaUJBQU8sQ0FBQyxDQUFDLE9BQUYsQ0FBVSxPQUFWLENBQWtCLFFBQWxCLEdBQTJCLEVBQUMsRUFBRSxDQUFDLENBQUMsR0FBQyxFQUFILEVBQU8sQ0FBUCxJQUFVLENBQUMsQ0FBQyxHQUFaLEVBQWdCLENBQWxCLEdBQXFCLENBQUMsQ0FBQyxPQUFGLENBQVUsT0FBVixDQUFrQixRQUF2QyxDQUE1QixFQUE2RSxFQUFFLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztBQUFDLFlBQUEsRUFBRSxFQUFDO0FBQUosV0FBRCxFQUFRLENBQVIsQ0FBRixFQUFhO0FBQUMsWUFBQSxHQUFHLEVBQUM7QUFBTCxXQUFiLENBQUYsQ0FBdEY7QUFBK0c7O0FBQUEsWUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQVI7QUFBWSxlQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO0FBQUMsVUFBQSxFQUFFLEVBQUMsQ0FBQyxDQUFDO0FBQU4sU0FBRCxFQUFhLENBQWIsQ0FBRixFQUFrQjtBQUFDLFVBQUEsR0FBRyxFQUFDO0FBQUwsU0FBbEIsQ0FBRixDQUFUO0FBQXVDLE9BQTVjLENBQXZ1QixFQUFzckMsS0FBSyxVQUFMLEdBQWdCLENBQUMsQ0FBQyxLQUFLLE1BQUwsQ0FBWSxVQUFiLENBQUQsQ0FBMEIsTUFBMUIsQ0FBaUMsS0FBSyxNQUF0QyxFQUE4QyxHQUE5QyxDQUFtRCxVQUFTLENBQVQsRUFBVztBQUFDLGVBQU8sRUFBRSxDQUFDLENBQUQsQ0FBVDtBQUFhLE9BQTVFLENBQXRzQyxFQUFxeEMsS0FBSyxVQUFMLEdBQWdCLEtBQUssVUFBTCxDQUFnQixJQUFoQixDQUFxQixJQUFyQixDQUFyeUMsRUFBZzBDLEtBQUssSUFBTCxHQUFVLENBQUMsQ0FBQyxLQUFLLE1BQUwsQ0FBWSxJQUFiLENBQTMwQztBQUE4MUM7O0FBQUEsV0FBTyxDQUFDLENBQUMsU0FBRixDQUFZLEtBQVosR0FBa0IsWUFBVTtBQUFDLFdBQUssT0FBTCxDQUFhLFdBQWIsSUFBMEIsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRLE9BQVIsQ0FBaUIsVUFBUyxDQUFULEVBQVc7QUFBQyxlQUFPLENBQUMsQ0FBQyxFQUFUO0FBQVksT0FBekMsQ0FBMUI7QUFBc0UsS0FBbkcsRUFBb0csQ0FBQyxDQUFDLFNBQUYsQ0FBWSxVQUFaLEdBQXVCLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFVBQUksQ0FBQyxHQUFDLEtBQUssT0FBWDtBQUFBLFVBQW1CLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBdkI7QUFBQSxVQUErQixDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQW5DO0FBQUEsVUFBOEMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFsRDtBQUFBLFVBQXlELENBQUMsR0FBQyxDQUFDLENBQUMsUUFBN0Q7QUFBQSxVQUFzRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQTFFO0FBQWlGLGFBQU8sSUFBSSxDQUFKLENBQU0sS0FBSyxNQUFYLEVBQWtCO0FBQUMsUUFBQSxPQUFPLEVBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFELEVBQUksQ0FBSixDQUFGLEVBQVMsQ0FBQyxDQUFDLE9BQVgsQ0FBVjtBQUE4QixRQUFBLFVBQVUsRUFBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxDQUFKLENBQUYsRUFBUyxDQUFDLENBQUMsVUFBWCxDQUExQztBQUFpRSxRQUFBLE1BQU0sRUFBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxDQUFKLENBQUYsRUFBUyxDQUFDLENBQUMsTUFBWCxDQUF6RTtBQUE0RixRQUFBLFFBQVEsRUFBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxDQUFKLENBQUYsRUFBUyxDQUFDLENBQUMsUUFBWCxDQUF0RztBQUEySCxRQUFBLE1BQU0sRUFBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxDQUFKLENBQUYsRUFBUyxDQUFDLENBQUMsTUFBWDtBQUFuSSxPQUFsQixFQUF5SyxRQUFNLENBQU4sR0FBUSxDQUFSLEdBQVUsS0FBSyxPQUF4TCxDQUFQO0FBQXdNLEtBQWxhLEVBQW1hLENBQUMsQ0FBQyxTQUFGLENBQVksV0FBWixHQUF3QixVQUFTLENBQVQsRUFBVztBQUFDLGFBQU8sSUFBSSxDQUFKLENBQU0sS0FBSyxNQUFYLEVBQWtCLEtBQUssT0FBdkIsRUFBK0IsQ0FBL0IsQ0FBUDtBQUF5QyxLQUFoZixFQUFpZixNQUFNLENBQUMsY0FBUCxDQUFzQixDQUFDLENBQUMsU0FBeEIsRUFBa0MsU0FBbEMsRUFBNEM7QUFBQyxNQUFBLEdBQUcsRUFBQyxlQUFVO0FBQUMsZUFBTyxDQUFDLENBQUMsS0FBSyxRQUFOLENBQUQsR0FBaUIsS0FBSyxRQUFMLEVBQWpCLEdBQWlDLEtBQUssUUFBN0M7QUFBc0QsT0FBdEU7QUFBdUUsTUFBQSxVQUFVLEVBQUMsQ0FBQyxDQUFuRjtBQUFxRixNQUFBLFlBQVksRUFBQyxDQUFDO0FBQW5HLEtBQTVDLENBQWpmLEVBQW9vQixNQUFNLENBQUMsY0FBUCxDQUFzQixDQUFDLENBQUMsU0FBeEIsRUFBa0MsWUFBbEMsRUFBK0M7QUFBQyxNQUFBLEdBQUcsRUFBQyxlQUFVO0FBQUMsZUFBTTtBQUFDLFVBQUEsRUFBRSxFQUFDLEtBQUssRUFBVDtBQUFZLFVBQUEsR0FBRyxFQUFDLEtBQUssR0FBckI7QUFBeUIsVUFBQSxPQUFPLEVBQUMsS0FBSyxPQUF0QztBQUE4QyxVQUFBLE9BQU8sRUFBQyxLQUFLLE9BQTNEO0FBQW1FLFVBQUEsSUFBSSxFQUFDLEtBQUssSUFBN0U7QUFBa0YsVUFBQSxPQUFPLEVBQUMsS0FBSyxPQUEvRjtBQUF1RyxVQUFBLE9BQU8sRUFBQyxLQUFLLE9BQXBIO0FBQTRILFVBQUEsTUFBTSxFQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU4sRUFBYyxVQUFTLENBQVQsRUFBVztBQUFDLG1CQUFPLENBQUMsQ0FBQyxVQUFUO0FBQW9CLFdBQTlDLENBQXBJO0FBQXFMLFVBQUEsRUFBRSxFQUFDLEtBQUssRUFBN0w7QUFBZ00sVUFBQSxXQUFXLEVBQUMsS0FBSyxXQUFqTjtBQUE2TixVQUFBLEtBQUssRUFBQyxLQUFLLE9BQXhPO0FBQWdQLFVBQUEsSUFBSSxFQUFDLEtBQUssTUFBMVA7QUFBaVEsVUFBQSxVQUFVLEVBQUMsS0FBSyxVQUFMLElBQWlCLEVBQTdSO0FBQWdTLFVBQUEsSUFBSSxFQUFDLEtBQUssSUFBMVM7QUFBK1MsVUFBQSxLQUFLLEVBQUMsS0FBSyxLQUFMLElBQVksQ0FBQyxDQUFsVTtBQUFvVSxVQUFBLElBQUksRUFBQyxLQUFLLFFBQTlVO0FBQXVWLFVBQUEsTUFBTSxFQUFDLEtBQUssTUFBblc7QUFBMFcsVUFBQSxXQUFXLEVBQUMsS0FBSyxXQUEzWDtBQUF1WSxVQUFBLElBQUksRUFBQyxLQUFLO0FBQWpaLFNBQU47QUFBNlosT0FBN2E7QUFBOGEsTUFBQSxVQUFVLEVBQUMsQ0FBQyxDQUExYjtBQUE0YixNQUFBLFlBQVksRUFBQyxDQUFDO0FBQTFjLEtBQS9DLENBQXBvQixFQUFpb0MsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxNQUFaLEdBQW1CLFlBQVU7QUFBQyxhQUFPLEtBQUssVUFBWjtBQUF1QixLQUF0ckMsRUFBdXJDLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQUMsQ0FBQyxTQUF4QixFQUFrQyxJQUFsQyxFQUF1QztBQUFDLE1BQUEsR0FBRyxFQUFDLGVBQVU7QUFBQyxZQUFHLEtBQUssT0FBTCxDQUFhLEVBQWhCLEVBQW1CLE9BQU8sS0FBSyxPQUFMLENBQWEsRUFBcEI7QUFBdUIsWUFBSSxDQUFDLEdBQUMsS0FBSyxXQUFYO0FBQXVCLGVBQU8sS0FBSyxPQUFMLENBQWEsRUFBYixHQUFnQixDQUFDLENBQUMsTUFBRixDQUFVLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLGlCQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBSCxDQUFELEdBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFILENBQUQsSUFBZ0IsRUFBL0IsRUFBa0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFILENBQUQsQ0FBZSxJQUFmLENBQW9CLENBQXBCLENBQWxDLEVBQXlELENBQWhFO0FBQWtFLFNBQTFGLEVBQTRGLEVBQTVGLENBQXZCO0FBQXVILE9BQXhNO0FBQXlNLE1BQUEsVUFBVSxFQUFDLENBQUMsQ0FBck47QUFBdU4sTUFBQSxZQUFZLEVBQUMsQ0FBQztBQUFyTyxLQUF2QyxDQUF2ckMsRUFBdThDLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQUMsQ0FBQyxTQUF4QixFQUFrQyxPQUFsQyxFQUEwQztBQUFDLE1BQUEsR0FBRyxFQUFDLGVBQVU7QUFBQyxlQUFPLEtBQUssT0FBTCxDQUFhLGtCQUFiLEtBQWtDLEtBQUssT0FBTCxDQUFhLGtCQUFiLEdBQWdDLEtBQUsscUJBQUwsRUFBaEMsRUFBNkQsS0FBSyxPQUFMLENBQWEsa0JBQTVHLENBQVA7QUFBdUksT0FBdko7QUFBd0osTUFBQSxVQUFVLEVBQUMsQ0FBQyxDQUFwSztBQUFzSyxNQUFBLFlBQVksRUFBQyxDQUFDO0FBQXBMLEtBQTFDLENBQXY4QyxFQUF5cUQsTUFBTSxDQUFDLGNBQVAsQ0FBc0IsQ0FBQyxDQUFDLFNBQXhCLEVBQWtDLGFBQWxDLEVBQWdEO0FBQUMsTUFBQSxHQUFHLEVBQUMsZUFBVTtBQUFDLGVBQU8sS0FBSyxPQUFMLENBQWEsV0FBYixLQUEyQixLQUFLLE9BQUwsQ0FBYSxXQUFiLEdBQXlCLEtBQUssaUJBQUwsRUFBekIsRUFBa0QsS0FBSyxPQUFMLENBQWEsV0FBMUYsQ0FBUDtBQUE4RyxPQUE5SDtBQUErSCxNQUFBLFVBQVUsRUFBQyxDQUFDLENBQTNJO0FBQTZJLE1BQUEsWUFBWSxFQUFDLENBQUM7QUFBM0osS0FBaEQsQ0FBenFELEVBQXczRCxDQUFDLENBQUMsU0FBRixDQUFZLGFBQVosR0FBMEIsVUFBUyxDQUFULEVBQVc7QUFBQyxVQUFHLEtBQUssT0FBTCxDQUFhLFVBQWIsQ0FBd0IsQ0FBeEIsQ0FBSCxFQUE4QixPQUFPLEtBQUssT0FBTCxDQUFhLFVBQWIsQ0FBd0IsQ0FBeEIsQ0FBUDtBQUFrQyxVQUFJLENBQUMsR0FBQyxPQUFLLENBQVg7QUFBQSxVQUFhLENBQUMsR0FBQyxLQUFLLFdBQUwsQ0FBaUIsTUFBakIsQ0FBeUIsVUFBUyxDQUFULEVBQVc7QUFBQyxZQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBRixLQUFjLENBQXBCO0FBQXNCLGVBQU8sQ0FBQyxHQUFDLENBQUQsR0FBRyxDQUFDLElBQUUsUUFBTSxDQUFDLENBQUMsU0FBdEI7QUFBZ0MsT0FBM0YsQ0FBZjtBQUE2RyxhQUFPLEtBQUssT0FBTCxDQUFhLFVBQWIsQ0FBd0IsQ0FBeEIsSUFBMkIsQ0FBM0IsRUFBNkIsQ0FBcEM7QUFBc0MsS0FBam5FLEVBQWtuRSxDQUFDLENBQUMsU0FBRixDQUFZLHFCQUFaLEdBQWtDLFlBQVU7QUFBQyxVQUFJLENBQUMsR0FBQyxJQUFOO0FBQUEsVUFBVyxDQUFDLEdBQUMsS0FBSyxNQUFMLENBQVksS0FBekI7QUFBK0IsVUFBRyxDQUFDLENBQUosRUFBTSxPQUFNLEVBQU47O0FBQVMsVUFBSSxDQUFDLEdBQUMsV0FBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsWUFBSSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxHQUFHLE1BQUgsQ0FBVSxDQUFDLENBQUMsRUFBWixFQUFlLFNBQWYsRUFBMEIsTUFBMUIsQ0FBaUMsQ0FBakMsRUFBbUMsR0FBbkMsQ0FBTCxHQUE2QyxDQUE5QyxFQUFnRCxDQUFDLENBQUMsRUFBbEQsQ0FBUjtBQUE4RCxlQUFPLENBQUMsQ0FBQyxPQUFGLENBQVUsSUFBVixDQUFlLEVBQUUsQ0FBQyxDQUFELEVBQUc7QUFBQyxVQUFBLEtBQUssRUFBQztBQUFQLFNBQUgsQ0FBakIsR0FBZ0MsQ0FBQyxDQUFDLE1BQUYsQ0FBUyxJQUFULENBQWMsRUFBRSxDQUFDLENBQUQsQ0FBaEIsQ0FBaEMsRUFBcUQsQ0FBNUQ7QUFBOEQsT0FBaEo7O0FBQWlKLGFBQU0sQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLEdBQUYsQ0FBTyxVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWE7QUFBQyxZQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUgsRUFBUyxDQUFULENBQVA7QUFBbUIsZUFBTyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxDQUFKLENBQUYsRUFBUztBQUFDLFVBQUEsS0FBSyxFQUFDO0FBQVAsU0FBVCxDQUFSO0FBQTRCLE9BQXBFLENBQUwsR0FBNEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUQsQ0FBSyxHQUFMLENBQVUsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsWUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBUDtBQUFBLFlBQVcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSztBQUFDLFVBQUEsTUFBTSxFQUFDO0FBQVIsU0FBTCxHQUFnQixDQUE3QjtBQUFBLFlBQStCLENBQUMsR0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFGLENBQUwsR0FBVSxDQUFWLEdBQVksQ0FBQyxDQUE5QztBQUFBLFlBQWdELENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBbkQ7QUFBeUQsZUFBTyxDQUFDLENBQUMsQ0FBRCxDQUFELENBQUssR0FBTCxDQUFVLFVBQVMsQ0FBVCxFQUFXO0FBQUMsaUJBQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFELEVBQUksQ0FBSixDQUFGLEVBQVM7QUFBQyxZQUFBLEtBQUssRUFBQyxDQUFQO0FBQVMsWUFBQSxLQUFLLEVBQUM7QUFBZixXQUFULENBQVI7QUFBb0MsU0FBMUQsQ0FBUDtBQUFvRSxPQUFySixDQUFELENBQTlFLEVBQXlPLEdBQXpPLENBQThPLFVBQVMsQ0FBVCxFQUFXO0FBQUMsWUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQVI7QUFBYyxlQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLENBQUMsQ0FBQyxnQkFBRixDQUFtQixDQUFuQixDQUFKLENBQUYsRUFBNkI7QUFBQyxVQUFBLEtBQUssRUFBQztBQUFQLFNBQTdCLENBQVI7QUFBZ0QsT0FBeFQsQ0FBTjtBQUFpVSxLQUEvcEYsRUFBZ3FGLENBQUMsQ0FBQyxTQUFGLENBQVksYUFBWixHQUEwQixVQUFTLENBQVQsRUFBVztBQUFDLFVBQUksQ0FBSjtBQUFBLFVBQU0sQ0FBQyxHQUFDLElBQVI7QUFBYSxVQUFHLENBQUMsQ0FBSixFQUFNLE9BQU0sRUFBTjtBQUFTLFVBQUksQ0FBQyxHQUFDLENBQUMsWUFBWSxFQUFiLEdBQWdCLENBQUMsQ0FBQyxLQUFsQixHQUF3QixDQUFDLENBQUMsQ0FBRCxFQUFHLEtBQUssU0FBUixDQUEvQjs7QUFBa0QsVUFBRyxDQUFDLENBQUMsQ0FBRCxDQUFKLEVBQVE7QUFBQyxZQUFJLENBQUMsR0FBQyxLQUFLLFlBQUwsQ0FBa0IsQ0FBbEIsRUFBcUIsT0FBM0I7QUFBbUMsZUFBTyxLQUFLLENBQUwsS0FBUyxDQUFULEdBQVcsS0FBSyxhQUFMLEVBQW9CLENBQUMsQ0FBQyxHQUFDLEVBQUgsRUFBTyxDQUFQLElBQVUsQ0FBVixFQUFZLENBQWhDLEVBQVgsR0FBK0MsQ0FBQyxJQUFELEVBQU0sS0FBSyxNQUFMLENBQVksQ0FBWixDQUFOLENBQXREO0FBQTRFOztBQUFBLFVBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQVA7QUFBQSxVQUFXLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRixDQUFPLFVBQVMsQ0FBVCxFQUFXO0FBQUMsZUFBTyxDQUFDLENBQUMsWUFBRixDQUFlLENBQWYsQ0FBUDtBQUF5QixPQUE1QyxDQUFiO0FBQTRELGFBQU8sQ0FBQyxDQUFDLElBQUYsQ0FBTyxJQUFQLEdBQWEsQ0FBQyxDQUFDLE1BQUYsQ0FBUyxDQUFDLENBQUMsTUFBRixDQUFVLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFlBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxZQUFGLENBQWUsQ0FBZixFQUFrQixhQUFsQixDQUFnQyxDQUFDLENBQUMsQ0FBRCxDQUFqQyxDQUFOO0FBQTRDLGVBQU8sQ0FBQyxDQUFDLE1BQUYsQ0FBUyxDQUFULENBQVA7QUFBbUIsT0FBdkYsRUFBeUYsRUFBekYsQ0FBVCxDQUFwQjtBQUEySCxLQUFua0csRUFBb2tHLENBQUMsQ0FBQyxTQUFGLENBQVksT0FBWixHQUFvQixVQUFTLENBQVQsRUFBVztBQUFDLFVBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQVA7QUFBVyxhQUFPLEtBQUssTUFBTCxDQUFZLFFBQVosQ0FBcUIsQ0FBckIsQ0FBUDtBQUErQixLQUE5b0csRUFBK29HLENBQUMsQ0FBQyxTQUFGLENBQVksWUFBWixHQUF5QixVQUFTLENBQVQsRUFBVztBQUFDLFVBQUksQ0FBQyxHQUFDLEtBQUssQ0FBQyxJQUFOLENBQVcsQ0FBQyxDQUFDLEVBQUQsRUFBSSxLQUFLLGFBQUwsQ0FBbUIsQ0FBQyxDQUFDLEtBQXJCLENBQUosQ0FBWixDQUFOO0FBQW9ELGFBQU8sSUFBSSxFQUFKLENBQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFELEVBQUksQ0FBSixDQUFGLEVBQVM7QUFBQyxRQUFBLEtBQUssRUFBQyxLQUFLLE9BQUwsQ0FBYSxDQUFDLENBQUMsS0FBZixDQUFQO0FBQTZCLFFBQUEsYUFBYSxFQUFDLENBQTNDO0FBQTZDLFFBQUEsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFELEVBQUcsSUFBSCxDQUFuRDtBQUE0RCxRQUFBLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBRDtBQUFsRSxPQUFULENBQVIsQ0FBUDtBQUFpRyxLQUF6MEcsRUFBMDBHLENBQUMsQ0FBQyxTQUFGLENBQVksa0JBQVosR0FBK0IsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLFVBQUksQ0FBQyxHQUFDLEtBQUssWUFBTCxDQUFrQixDQUFsQixFQUFxQixJQUFyQixDQUEwQixDQUExQixFQUE0QixDQUE1QixDQUFOO0FBQXFDLGFBQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxXQUFGLENBQWMsTUFBakIsR0FBd0IsQ0FBeEIsR0FBMEIsS0FBSyxJQUFMLENBQVUsQ0FBVixFQUFZLENBQVosQ0FBakM7QUFBZ0QsS0FBOThHLEVBQSs4RyxDQUFDLENBQUMsU0FBRixDQUFZLHNCQUFaLEdBQW1DLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxVQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFQO0FBQUEsVUFBVyxDQUFDLEdBQUMsS0FBSyxZQUFMLENBQWtCLENBQUMsQ0FBQyxDQUFELENBQW5CLEVBQXdCLFdBQXhCLENBQW9DLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFGLENBQXJDLEVBQTRDLENBQTVDLEVBQThDLENBQTlDLENBQWI7O0FBQThELGFBQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxXQUFGLENBQWMsTUFBakIsR0FBd0IsQ0FBeEIsR0FBMEIsS0FBSyxJQUFMLENBQVUsQ0FBVixFQUFZLENBQVosQ0FBakM7QUFBZ0QsS0FBaG5ILEVBQWluSCxDQUFDLENBQUMsU0FBRixDQUFZLHNCQUFaLEdBQW1DLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxVQUFJLENBQUo7QUFBQSxVQUFNLENBQU47QUFBQSxVQUFRLENBQUMsR0FBQyxFQUFWOztBQUFhLFVBQUc7QUFBQyxhQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFGLENBQVAsRUFBYyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBcEIsRUFBNkIsQ0FBQyxDQUFDLENBQUMsSUFBaEMsRUFBcUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQXZDLEVBQWdEO0FBQUMsY0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQVI7QUFBQSxjQUFjLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFqQjs7QUFBcUIsY0FBRyxDQUFILEVBQUs7QUFBQyxnQkFBSSxDQUFDLEdBQUMsS0FBSyxZQUFMLENBQWtCLENBQWxCLEVBQXFCLFdBQXJCLENBQWlDLENBQWpDLEVBQW1DLENBQW5DLEVBQXFDLENBQXJDLENBQU47O0FBQThDLFlBQUEsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxDQUFSLENBQUQ7QUFBWTtBQUFDO0FBQUMsT0FBNUksQ0FBNEksT0FBTSxDQUFOLEVBQVE7QUFBQyxRQUFBLENBQUMsR0FBQztBQUFDLFVBQUEsS0FBSyxFQUFDO0FBQVAsU0FBRjtBQUFZLE9BQWpLLFNBQXdLO0FBQUMsWUFBRztBQUFDLFVBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsU0FBeEMsU0FBK0M7QUFBQyxjQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxVQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFELENBQUssR0FBTCxDQUFVLFVBQVMsQ0FBVCxFQUFXO0FBQUMsZUFBTyxDQUFDLENBQUMsQ0FBRCxDQUFSO0FBQVksT0FBbEMsQ0FBTjtBQUFBLFVBQTJDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUYsQ0FBTyxVQUFTLENBQVQsRUFBVztBQUFDLGVBQU8sQ0FBQyxDQUFDLFdBQVQ7QUFBcUIsT0FBeEMsQ0FBRCxDQUE5QztBQUEyRixVQUFHLENBQUMsQ0FBQyxDQUFDLElBQUYsQ0FBUSxVQUFTLENBQVQsRUFBVztBQUFDLGVBQU8sQ0FBQyxDQUFDLFdBQUYsQ0FBYyxNQUFkLEdBQXFCLENBQTVCO0FBQThCLE9BQWxELENBQUosRUFBeUQsT0FBTyxLQUFLLElBQUwsQ0FBVSxDQUFWLEVBQVksQ0FBWixDQUFQO0FBQXNCLFVBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRixDQUFPLFVBQVMsQ0FBVCxFQUFXO0FBQUMsZUFBTyxDQUFDLENBQUMsUUFBVDtBQUFrQixPQUFyQyxDQUFELENBQVA7QUFBQSxVQUFpRCxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUQsQ0FBSyxHQUFMLENBQVUsVUFBUyxDQUFULEVBQVc7QUFBQyxlQUFPLENBQUMsQ0FBQyxDQUFELENBQUQsQ0FBSyxhQUFaO0FBQTBCLE9BQWhELENBQUQsQ0FBcEQ7QUFBeUcsYUFBTTtBQUFDLFFBQUEsV0FBVyxFQUFDLENBQWI7QUFBZSxRQUFBLFFBQVEsRUFBQyxDQUF4QjtBQUEwQixRQUFBLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUYsQ0FBTyxVQUFTLENBQVQsRUFBVztBQUFDLGlCQUFPLENBQUMsQ0FBQyxPQUFUO0FBQWlCLFNBQXBDLENBQUQsQ0FBbkM7QUFBNEUsUUFBQSxhQUFhLEVBQUMsQ0FBMUY7QUFBNEYsUUFBQSxNQUFNLEVBQUMsQ0FBbkc7QUFBcUcsUUFBQSxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUQsQ0FBSyxHQUFMLENBQVUsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxDQUFDLENBQUMsQ0FBRCxDQUFELENBQUssT0FBWjtBQUFvQixTQUExQyxDQUFEO0FBQTlHLE9BQU47QUFBb0ssS0FBcjFJLEVBQXMxSSxDQUFDLENBQUMsU0FBRixDQUFZLFdBQVosR0FBd0IsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLGFBQU8sQ0FBQyxDQUFDLENBQUQsQ0FBRCxHQUFLLEtBQUssa0JBQUwsQ0FBd0IsQ0FBeEIsRUFBMEIsQ0FBMUIsRUFBNEIsQ0FBNUIsQ0FBTCxHQUFvQyxNQUFJLENBQUMsQ0FBQyxDQUFELENBQUQsQ0FBSyxNQUFULEdBQWdCLEtBQUssc0JBQUwsQ0FBNEIsQ0FBNUIsRUFBOEIsQ0FBOUIsRUFBZ0MsQ0FBaEMsQ0FBaEIsR0FBbUQsS0FBSyxzQkFBTCxDQUE0QixDQUE1QixFQUE4QixDQUE5QixFQUFnQyxDQUFoQyxDQUE5RjtBQUFpSSxLQUEvL0ksRUFBZ2dKLENBQUMsQ0FBQyxTQUFGLENBQVksSUFBWixHQUFpQixVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWE7QUFBQyxVQUFJLENBQUo7QUFBQSxVQUFNLENBQU47QUFBQSxVQUFRLENBQVI7QUFBQSxVQUFVLENBQUMsR0FBQyxJQUFaO0FBQUEsVUFBaUIsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFyQjtBQUFBLFVBQTBCLENBQUMsR0FBQyxFQUE1QjtBQUFBLFVBQStCLENBQUMsR0FBQyxFQUFqQzs7QUFBb0MsVUFBRztBQUFDLGFBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssYUFBTCxDQUFtQixDQUFuQixDQUFELENBQVAsRUFBK0IsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQXJDLEVBQThDLENBQUMsQ0FBQyxDQUFDLElBQWpELEVBQXNELENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUF4RCxFQUFpRTtBQUFDLGNBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFSO0FBQUEsY0FBYyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQWxCO0FBQUEsY0FBdUIsQ0FBQyxHQUFDLENBQUMsTUFBMUI7QUFBQSxjQUE4QixDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQWxDO0FBQUEsY0FBMEMsQ0FBQyxHQUFDLENBQUMsQ0FBRCxLQUFLLENBQUMsQ0FBQyxDQUFELENBQUQsSUFBTSxFQUFFLENBQUMsQ0FBRCxDQUFSLEdBQVksQ0FBQyxDQUFDLE9BQUYsQ0FBVSxDQUFDLENBQUMsS0FBSyxnQkFBTCxDQUFzQixDQUF0QixFQUF5QixJQUExQixFQUErQixLQUFLLFNBQXBDLENBQVgsQ0FBWixHQUF1RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUQsRUFBRyxLQUFLLFNBQVIsQ0FBRixFQUFxQixDQUFDLENBQUMsS0FBSyxJQUFMLENBQVUsS0FBVixDQUFnQixDQUFoQixFQUFrQixDQUFDLENBQW5CLENBQUQsQ0FBRCxDQUF5QixDQUFDLENBQUMsS0FBM0IsQ0FBckIsQ0FBN0UsQ0FBNUM7QUFBQSxjQUFrTCxDQUFDLEdBQUMsQ0FBQyxDQUFyTDs7QUFBdUwsY0FBRztBQUFDLFlBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBRCxJQUFJLENBQUMsQ0FBQyxLQUFLLE9BQU4sRUFBYyxDQUFkLEVBQWdCLENBQWhCLEVBQWtCLENBQWxCLEVBQW9CLENBQXBCLENBQVA7QUFBOEIsV0FBbEMsQ0FBa0MsT0FBTSxDQUFOLEVBQVE7QUFBQyxrQkFBTSxJQUFJLEtBQUosQ0FBVSw2QkFBNkIsTUFBN0IsQ0FBb0MsQ0FBQyxDQUFDLElBQUYsSUFBUSxDQUFDLENBQUMsSUFBOUMsRUFBbUQsNkJBQW5ELEVBQWtGLE1BQWxGLENBQXlGLENBQXpGLEVBQTJGLG1CQUEzRixFQUFnSCxNQUFoSCxDQUF1SCxLQUFLLEVBQTVILEVBQStILE1BQS9ILEVBQXVJLE1BQXZJLENBQThJLENBQUMsQ0FBQyxPQUFoSixDQUFWLENBQU47QUFBMEs7O0FBQUEsY0FBRyxDQUFDLElBQUUsQ0FBTixFQUFRO0FBQUMsaUJBQUssQ0FBTCxLQUFTLENBQUMsQ0FBQyxNQUFYLEtBQW9CLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBeEIsR0FBZ0MsQ0FBQyxDQUFDLElBQUYsQ0FBTyxLQUFQLENBQWEsQ0FBYixFQUFlLENBQUMsQ0FBQyxFQUFELEVBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFILENBQUwsRUFBaUIsQ0FBQyxDQUFsQixDQUFoQixDQUFoQyxFQUFzRSxDQUFDLEdBQUMsQ0FBeEU7QUFBMEU7QUFBTTtBQUFDO0FBQUMsT0FBN2lCLENBQTZpQixPQUFNLENBQU4sRUFBUTtBQUFDLFFBQUEsQ0FBQyxHQUFDO0FBQUMsVUFBQSxLQUFLLEVBQUM7QUFBUCxTQUFGO0FBQVksT0FBbGtCLFNBQXlrQjtBQUFDLFlBQUc7QUFBQyxVQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLFNBQXhDLFNBQStDO0FBQUMsY0FBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7O0FBQUEsVUFBRyxDQUFILEVBQUs7QUFBQyxZQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU4sRUFBYSxPQUFNO0FBQUMsVUFBQSxXQUFXLEVBQUMsQ0FBQyxDQUFELENBQWI7QUFBaUIsVUFBQSxRQUFRLEVBQUMsRUFBMUI7QUFBNkIsVUFBQSxPQUFPLEVBQUMsRUFBckM7QUFBd0MsVUFBQSxhQUFhLEVBQUMsQ0FBQyxDQUFDLEtBQUYsR0FBUSxDQUFDLElBQUQsQ0FBUixHQUFlLEVBQXJFO0FBQXdFLFVBQUEsTUFBTSxFQUFDLENBQS9FO0FBQWlGLFVBQUEsT0FBTyxFQUFDO0FBQXpGLFNBQU47QUFBa0csWUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFGLENBQU8sVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxDQUFDLENBQUMscUJBQUYsQ0FBd0IsQ0FBeEIsRUFBMEIsQ0FBQyxDQUFDLFlBQTVCLENBQVA7QUFBaUQsU0FBcEUsQ0FBRCxDQUFQO0FBQUEsWUFBZ0YsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBdEY7QUFBK0YsZUFBTTtBQUFDLFVBQUEsV0FBVyxFQUFDLENBQUMsQ0FBRCxDQUFiO0FBQWlCLFVBQUEsUUFBUSxFQUFDLENBQUMsR0FBQyxFQUFELEdBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFGLENBQU8sVUFBUyxDQUFULEVBQVc7QUFBQyxtQkFBTyxDQUFDLENBQUMsY0FBRixDQUFpQixDQUFqQixDQUFQO0FBQTJCLFdBQTlDLENBQUQsQ0FBaEM7QUFBbUYsVUFBQSxPQUFPLEVBQUMsQ0FBQyxHQUFDLEVBQUQsR0FBSSxDQUFDLElBQUQsQ0FBaEc7QUFBdUcsVUFBQSxhQUFhLEVBQUMsQ0FBckg7QUFBdUgsVUFBQSxNQUFNLEVBQUMsQ0FBOUg7QUFBZ0ksVUFBQSxPQUFPLEVBQUM7QUFBeEksU0FBTjtBQUFpSjtBQUFDLEtBQXZqTCxFQUF3akwsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxjQUFaLEdBQTJCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsVUFBRyxDQUFDLENBQUMsT0FBRixDQUFVLElBQVYsQ0FBSCxFQUFtQixPQUFNLEVBQU47O0FBQVMsV0FBSSxJQUFJLENBQUMsR0FBQyxFQUFOLEVBQVMsQ0FBQyxHQUFDLENBQWYsRUFBaUIsQ0FBQyxJQUFFLENBQUMsS0FBRyxJQUF4QjtBQUE4QixRQUFBLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxHQUFVLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBZDtBQUE5Qjs7QUFBbUQsYUFBTyxDQUFDLENBQUMsSUFBRixDQUFPLElBQVAsR0FBYSxDQUFwQjtBQUFzQixLQUFwc0wsRUFBcXNMLENBQUMsQ0FBQyxTQUFGLENBQVksT0FBWixHQUFvQixVQUFTLENBQVQsRUFBVztBQUFDLFVBQUcsU0FBTyxDQUFWLEVBQVksT0FBTSxDQUFDLENBQVA7O0FBQVMsV0FBSSxJQUFJLENBQUMsR0FBQyxLQUFLLE1BQWYsRUFBc0IsQ0FBdEIsR0FBeUI7QUFBQyxZQUFHLENBQUMsS0FBRyxDQUFQLEVBQVMsT0FBTSxDQUFDLENBQVA7QUFBUyxRQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBSjtBQUFXOztBQUFBLGFBQU0sQ0FBQyxDQUFQO0FBQVMsS0FBMXpMLEVBQTJ6TCxDQUFDLENBQUMsU0FBRixDQUFZLFVBQVosR0FBdUIsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZSxDQUFmLEVBQWlCO0FBQUMsVUFBSSxDQUFKO0FBQUEsVUFBTSxDQUFOO0FBQUEsVUFBUSxDQUFSO0FBQUEsVUFBVSxDQUFWO0FBQUEsVUFBWSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUQsRUFBSSxDQUFDLEdBQUMsS0FBSyxhQUFMLENBQW1CLENBQUMsQ0FBQyxLQUFyQixDQUFELEdBQTZCLENBQUMsSUFBRCxDQUFsQyxDQUFmO0FBQUEsVUFBeUQsQ0FBQyxHQUFDLENBQUMsQ0FBQyxhQUFGLENBQWdCLE1BQWhCLEdBQXVCLENBQUMsQ0FBQyxDQUFELEVBQUcsQ0FBQyxDQUFDLGFBQUwsQ0FBeEIsR0FBNEMsQ0FBdkc7O0FBQXlHLFVBQUc7QUFBQyxhQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQVAsRUFBVyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBakIsRUFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBN0IsRUFBa0MsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQXBDLEVBQTZDO0FBQUMsVUFBQSxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBUCxDQUFELElBQWdCLENBQUMsQ0FBQyxRQUFGLENBQVcsSUFBWCxDQUFnQixDQUFoQixDQUFoQjtBQUFtQztBQUFDLE9BQXRGLENBQXNGLE9BQU0sQ0FBTixFQUFRO0FBQUMsUUFBQSxDQUFDLEdBQUM7QUFBQyxVQUFBLEtBQUssRUFBQztBQUFQLFNBQUY7QUFBWSxPQUEzRyxTQUFrSDtBQUFDLFlBQUc7QUFBQyxVQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLFNBQXhDLFNBQStDO0FBQUMsY0FBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7O0FBQUEsVUFBRztBQUFDLGFBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBUCxFQUFXLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFqQixFQUEwQixDQUFDLENBQUMsQ0FBQyxJQUE3QixFQUFrQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBcEMsRUFBNkM7QUFBQyxjQUFJLENBQUo7QUFBTSxVQUFBLENBQUMsQ0FBQyxDQUFELEVBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFQLENBQUQsSUFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUgsRUFBVyxDQUFDLENBQUMsTUFBYixDQUFsQixJQUF3QyxDQUFDLENBQUMsT0FBRixDQUFVLElBQVYsQ0FBZSxDQUFmLENBQXhDO0FBQTBEO0FBQUMsT0FBbkgsQ0FBbUgsT0FBTSxDQUFOLEVBQVE7QUFBQyxRQUFBLENBQUMsR0FBQztBQUFDLFVBQUEsS0FBSyxFQUFDO0FBQVAsU0FBRjtBQUFZLE9BQXhJLFNBQStJO0FBQUMsWUFBRztBQUFDLFVBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsU0FBeEMsU0FBK0M7QUFBQyxjQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxNQUFBLENBQUMsQ0FBQyxNQUFGLEtBQVcsQ0FBQyxDQUFDLE9BQUYsR0FBVSxFQUFWLEVBQWEsQ0FBQyxDQUFDLFFBQUYsQ0FBVyxJQUFYLENBQWdCLElBQWhCLENBQXhCO0FBQStDLFVBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBRixDQUFXLEdBQVgsQ0FBZ0IsVUFBUyxDQUFULEVBQVc7QUFBQyxZQUFJLENBQUMsR0FBQyxFQUFOO0FBQVMsWUFBRyxZQUFVLENBQUMsQ0FBQyxJQUFmLEVBQW9CLE9BQU8sQ0FBUDtBQUFTLFlBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFSO0FBQWUsWUFBRyxDQUFDLENBQUMsQ0FBQyxNQUFOLEVBQWEsT0FBTyxDQUFQO0FBQVMsUUFBQSxDQUFDLENBQUMsSUFBRixDQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBSCxFQUFNLENBQUMsQ0FBQyxRQUFSLENBQVQsRUFBMkIsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFILEVBQU0sQ0FBQyxDQUFDLFFBQUYsR0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQUgsRUFBWSxDQUFaLEVBQWMsQ0FBZCxDQUFaLEdBQTZCLEtBQUssQ0FBeEMsQ0FBN0I7QUFBeUUsWUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQVI7QUFBZSxlQUFNLGVBQWEsQ0FBQyxDQUFDLElBQWYsSUFBcUIsQ0FBQyxDQUFDLENBQUQsQ0FBRCxDQUFLLEtBQUwsQ0FBWSxVQUFTLENBQVQsRUFBVztBQUFDLGlCQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBSCxFQUFpQixDQUFqQixDQUFSO0FBQTRCLFNBQXBELENBQXJCLElBQTZFLENBQUMsQ0FBQyxJQUFGLENBQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFILENBQVQsQ0FBN0UsRUFBOEYsQ0FBcEc7QUFBc0csT0FBclMsQ0FBRCxDQUFQO0FBQWlULE1BQUEsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxJQUFWLENBQWdCLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLGVBQU8sQ0FBQyxDQUFDLEtBQUYsR0FBUSxDQUFDLENBQUMsS0FBakI7QUFBdUIsT0FBckQsR0FBd0QsQ0FBQyxDQUFDLFFBQUYsQ0FBVyxJQUFYLENBQWlCLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLGVBQU8sQ0FBQyxDQUFDLEtBQUYsR0FBUSxDQUFDLENBQUMsS0FBakI7QUFBdUIsT0FBdEQsQ0FBeEQ7O0FBQWlILFVBQUksQ0FBQyxHQUFDLElBQUksR0FBSixDQUFRLENBQUMsQ0FBQyxRQUFWLENBQU47QUFBQSxVQUEwQixDQUFDLEdBQUMsSUFBSSxHQUFKLENBQVEsQ0FBQyxDQUFDLE9BQVYsQ0FBNUI7QUFBQSxVQUErQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFOLENBQVcsQ0FBWCxFQUFjLEdBQWQsQ0FBbUIsVUFBUyxDQUFULEVBQVc7QUFBQyxlQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRCxFQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBRixDQUFhLEdBQWIsQ0FBa0IsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxFQUFFLENBQUMsQ0FBRCxDQUFUO0FBQWEsU0FBM0MsQ0FBRCxDQUFMLEVBQXFELENBQUMsQ0FBdEQsQ0FBRixFQUEyRCxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUgsQ0FBNUQsRUFBd0UsQ0FBQyxDQUF6RSxDQUFSO0FBQW9GLE9BQW5ILENBQUQsQ0FBRCxDQUF5SCxNQUF6SCxDQUFnSSxDQUFDLENBQUMsR0FBRixDQUFNLEVBQU4sQ0FBaEksQ0FBRCxFQUE0SSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQU4sQ0FBVyxDQUFYLEVBQWMsR0FBZCxDQUFtQixVQUFTLENBQVQsRUFBVztBQUFDLGVBQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFELEVBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFILENBQUwsRUFBZ0IsQ0FBQyxDQUFqQixDQUFGLEVBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBRixDQUFhLEdBQWIsQ0FBa0IsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxFQUFFLENBQUMsQ0FBRCxDQUFUO0FBQWEsU0FBM0MsQ0FBRCxDQUF2QixFQUF1RSxDQUFDLENBQXhFLENBQVI7QUFBbUYsT0FBbEgsQ0FBRCxDQUE3SSxDQUFELEVBQXNRLENBQXRRLENBQWxEO0FBQUEsVUFBMlQsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQTlUO0FBQUEsVUFBa1UsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQXJVOztBQUF5VSxhQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBRixDQUFTLENBQUMsQ0FBQyxPQUFYLEVBQW9CLE1BQXBCLENBQTJCLENBQTNCLENBQUQsRUFBK0IsS0FBSyxPQUFMLENBQWEsT0FBYixDQUFxQixPQUFwRCxDQUFUO0FBQXNFLEtBQXhyTyxFQUF5ck8sQ0FBQyxDQUFDLFNBQUYsQ0FBWSxVQUFaLEdBQXVCLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxXQUFLLENBQUwsS0FBUyxDQUFULEtBQWEsQ0FBQyxHQUFDLEtBQUssWUFBcEI7QUFBa0MsVUFBSSxDQUFKO0FBQUEsVUFBTSxDQUFOO0FBQUEsVUFBUSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBWDtBQUFlLFVBQUcsQ0FBQyxZQUFZLEVBQWhCLEVBQW1CLENBQUMsR0FBQyxLQUFLLENBQUwsS0FBUyxDQUFULEdBQVcsQ0FBWCxHQUFhLEtBQUssWUFBTCxDQUFrQixFQUFFLENBQUMsSUFBSCxDQUFRLENBQVIsRUFBVSxDQUFWLENBQWxCLENBQWYsQ0FBbkIsS0FBc0U7QUFBQyxZQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssS0FBSyxPQUFMLENBQWEsQ0FBQyxDQUFDLEtBQUssZUFBTCxDQUFxQixDQUFyQixDQUFELENBQWQsQ0FBTCxHQUE4QyxLQUFLLE9BQUwsQ0FBYSxDQUFiLENBQXBEO0FBQUEsWUFBb0UsQ0FBQyxHQUFDLFFBQU0sQ0FBTixHQUFRLENBQVIsR0FBVSxLQUFLLE9BQUwsQ0FBYSxPQUE3RjtBQUFxRyxRQUFBLENBQUMsR0FBQyxLQUFLLFlBQUwsQ0FBa0IsRUFBRSxDQUFDLElBQUgsQ0FBUSxDQUFSLEVBQVUsQ0FBVixDQUFsQixDQUFGO0FBQWtDO0FBQUEsVUFBRyxLQUFLLE1BQUwsSUFBYSxDQUFDLEtBQUssTUFBTCxDQUFZLFFBQVosQ0FBcUIsQ0FBQyxDQUFDLElBQXZCLENBQWQsS0FBNkMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFKLEVBQVMsQ0FBQyxrQkFBa0IsSUFBbEIsQ0FBdUIsQ0FBdkIsQ0FBdkQsQ0FBSCxFQUFxRixNQUFNLElBQUksS0FBSixDQUFVLFlBQVksTUFBWixDQUFtQixLQUFLLEVBQXhCLEVBQTJCLDJCQUEzQixFQUF3RCxNQUF4RCxDQUErRCxDQUFDLENBQUMsSUFBakUsRUFBc0UsR0FBdEUsQ0FBVixDQUFOO0FBQTRGLFVBQUksQ0FBQyxHQUFDLEtBQUssV0FBTCxDQUFpQixDQUFDLENBQUMsS0FBbkIsRUFBeUIsQ0FBekIsRUFBMkIsQ0FBM0IsS0FBK0I7QUFBQyxRQUFBLFdBQVcsRUFBQyxFQUFiO0FBQWdCLFFBQUEsYUFBYSxFQUFDLEVBQTlCO0FBQWlDLFFBQUEsUUFBUSxFQUFDLEVBQTFDO0FBQTZDLFFBQUEsT0FBTyxFQUFDLEVBQXJEO0FBQXdELFFBQUEsTUFBTSxFQUFDLENBQS9EO0FBQWlFLFFBQUEsT0FBTyxFQUFDO0FBQXpFLE9BQXJDO0FBQUEsVUFBa0gsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFELEVBQUksS0FBSyxhQUFMLENBQW1CLENBQUMsQ0FBQyxLQUFyQixDQUFKLENBQXJIO0FBQUEsVUFBc0osQ0FBQyxHQUFDLENBQUMsQ0FBQyxhQUFGLENBQWdCLE1BQWhCLEdBQXVCLENBQUMsQ0FBQyxDQUFELEVBQUcsQ0FBQyxDQUFDLGFBQUwsQ0FBeEIsR0FBNEMsQ0FBcE07QUFBc00sYUFBTyxDQUFDLENBQUMsYUFBRixHQUFnQixDQUFDLENBQUMsRUFBRCxFQUFJLENBQUMsQ0FBQyxDQUFELENBQUwsRUFBUyxDQUFDLENBQVYsQ0FBakIsRUFBOEIsS0FBSyxpQkFBTCxDQUF1QixDQUF2QixFQUF5QixDQUF6QixFQUEyQixDQUEzQixDQUFyQztBQUFtRSxLQUF6NVAsRUFBMDVQLENBQUMsQ0FBQyxTQUFGLENBQVksdUJBQVosR0FBb0MsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLFVBQUksQ0FBSjtBQUFBLFVBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFWO0FBQWtCLGFBQU0sQ0FBQyxDQUFDLEdBQUMsS0FBSyxVQUFMLENBQWdCLENBQWhCLEVBQWtCLENBQWxCLENBQUgsRUFBeUIsTUFBekIsR0FBZ0MsQ0FBaEMsRUFBa0MsQ0FBQyxDQUFDLEtBQUYsR0FBUSxDQUFDLENBQUMsSUFBNUMsRUFBaUQsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQUwsRUFBYyxPQUFkLENBQXNCLEtBQXRCLENBQTRCLENBQTVCLEVBQThCLENBQUMsQ0FBQyxFQUFELEVBQUksQ0FBQyxDQUFDLENBQUQsQ0FBTCxFQUFTLENBQUMsQ0FBVixDQUEvQixDQUFqRCxFQUE4RixDQUFwRztBQUFzRyxLQUF0a1EsRUFBdWtRLENBQUMsQ0FBQyxTQUFGLENBQVksaUJBQVosR0FBOEIsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZSxDQUFmLEVBQWlCO0FBQUMsVUFBSSxDQUFKO0FBQUEsVUFBTSxDQUFOO0FBQUEsVUFBUSxDQUFDLEdBQUMsSUFBVjtBQUFlLFdBQUssQ0FBTCxLQUFTLENBQVQsS0FBYSxDQUFDLEdBQUMsRUFBZixHQUFtQixLQUFLLENBQUwsS0FBUyxDQUFULEtBQWEsQ0FBQyxHQUFDLEtBQUssT0FBTCxDQUFhLE9BQTVCLENBQW5CO0FBQXdELFVBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxhQUFSO0FBQUEsVUFBc0IsQ0FBQyxHQUFDLENBQUMsQ0FBRCxJQUFJLENBQUMsQ0FBQyxXQUFGLENBQWMsTUFBZCxHQUFxQixDQUFqRDtBQUFBLFVBQW1ELENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssT0FBTixFQUFjLENBQWQsQ0FBRixHQUFtQixLQUFLLENBQTlFO0FBQUEsVUFBZ0YsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsWUFBRixHQUFlLENBQUMsQ0FBQyxZQUFqQixHQUE4QixDQUFDLENBQUMsTUFBRixHQUFTLEtBQUssT0FBTCxDQUFhLFlBQWIsQ0FBMEIsQ0FBQyxDQUFDLEtBQTVCLENBQVQsR0FBNEMsS0FBSyxDQUFoRixHQUFrRixLQUFLLENBQTFLO0FBQUEsVUFBNEssQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBSCxHQUFXLENBQTFMO0FBQUEsVUFBNEwsQ0FBQyxHQUFDLEtBQUssVUFBTCxDQUFnQixDQUFoQixFQUFrQixDQUFsQixFQUFvQixDQUFwQixFQUFzQixDQUF0QixDQUE5TDtBQUFBLFVBQXVOLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxDQUFDLENBQUMsVUFBTixDQUFGLEdBQW9CLEVBQTlPOztBQUFpUCxVQUFHO0FBQUMsYUFBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFQLEVBQVcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQWpCLEVBQTBCLENBQUMsQ0FBQyxDQUFDLElBQTdCLEVBQWtDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFwQyxFQUE2QztBQUFDLGNBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFSO0FBQWMsVUFBQSxDQUFDLENBQUMsSUFBRixLQUFTLENBQVQsR0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQUYsQ0FBVyxFQUFYLElBQWUsQ0FBQyxDQUFDLFFBQUYsQ0FBVyxJQUEzQixDQUFELEdBQWtDLENBQTdDLEdBQStDLENBQUMsQ0FBQyxJQUFGLEtBQVMsQ0FBVCxLQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBRixDQUFXLEVBQVgsSUFBZSxDQUFDLENBQUMsUUFBRixDQUFXLElBQTNCLENBQUQsR0FBa0MsQ0FBQyxDQUFoRCxDQUEvQztBQUFrRztBQUFDLE9BQW5LLENBQW1LLE9BQU0sQ0FBTixFQUFRO0FBQUMsUUFBQSxDQUFDLEdBQUM7QUFBQyxVQUFBLEtBQUssRUFBQztBQUFQLFNBQUY7QUFBWSxPQUF4TCxTQUErTDtBQUFDLFlBQUc7QUFBQyxVQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLFNBQXhDLFNBQStDO0FBQUMsY0FBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7O0FBQUEsVUFBSSxDQUFKO0FBQUEsVUFBTSxDQUFOO0FBQUEsVUFBUSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFELEVBQU0sQ0FBTixFQUFRLENBQVIsRUFBVSxDQUFWLEVBQVksQ0FBWixFQUFjLEtBQUssT0FBTCxDQUFhLE1BQWIsQ0FBb0IsbUJBQWxDLENBQUgsRUFBMEQsQ0FBMUQsQ0FBWDtBQUFBLFVBQXdFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUEzRTtBQUFBLFVBQStFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFsRjtBQUFBLFVBQXNGLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUQsRUFBSSxVQUFTLENBQVQsRUFBVztBQUFDLGVBQU8sQ0FBQyxDQUFDLElBQUYsS0FBUyxDQUFULElBQVksQ0FBQyxDQUFDLElBQUYsS0FBUyxDQUFULElBQVksQ0FBQyxDQUFDLEVBQUYsS0FBTyxDQUFDLENBQUMsY0FBRixDQUFpQixRQUF2RDtBQUFnRSxPQUFoRixDQUFGLEVBQXFGLENBQXJGLENBQXpGO0FBQUEsVUFBaUwsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQXBMO0FBQUEsVUFBd0wsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQTNMO0FBQUEsVUFBK0wsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFGLENBQVUsVUFBUyxDQUFULEVBQVc7QUFBQyxZQUFJLENBQUo7QUFBTSxlQUFPLENBQUMsQ0FBQyxJQUFGLEtBQVMsQ0FBVCxJQUFZLENBQUMsVUFBUSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVosS0FBdUIsS0FBSyxDQUFMLEtBQVMsQ0FBaEMsR0FBa0MsS0FBSyxDQUF2QyxHQUF5QyxDQUFDLENBQUMsSUFBNUMsTUFBb0QsRUFBdkU7QUFBMEUsT0FBdEcsRUFBeUcsTUFBekcsQ0FBaUgsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsZUFBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQUYsQ0FBVyxFQUFaLENBQUQsR0FBaUIsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZSxDQUFmLEVBQWlCO0FBQUMsY0FBSSxDQUFKO0FBQUEsY0FBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFILENBQVQ7QUFBQSxjQUFpQixDQUFDLEdBQUMsVUFBUSxDQUFDLEdBQUMsUUFBTSxDQUFOLEdBQVEsS0FBSyxDQUFiLEdBQWUsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxRQUFuQyxLQUE4QyxLQUFLLENBQUwsS0FBUyxDQUF2RCxHQUF5RCxLQUFLLENBQTlELEdBQWdFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSCxDQUFwRjtBQUFBLGNBQTZGLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixHQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSCxFQUFRLENBQVIsRUFBVSxDQUFWLENBQVIsR0FBcUIsS0FBSyxDQUF6SDtBQUFBLGNBQTJILENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUQsRUFBRyxDQUFDLENBQUMsRUFBTCxFQUFRLENBQVIsQ0FBSCxHQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBSCxDQUE5STtBQUFxSixpQkFBTyxDQUFDLENBQUMsSUFBRixHQUFPLENBQVAsRUFBUyxDQUFoQjtBQUFrQixTQUF6TCxDQUEwTCxDQUFDLENBQUMsUUFBNUwsRUFBcU0sQ0FBQyxDQUFDLE9BQXZNLEVBQStNLENBQS9NLEVBQWlOLENBQWpOLENBQWpCLEVBQXFPLENBQTVPO0FBQThPLE9BQTdXLEVBQStXLENBQUMsR0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLENBQUMsQ0FBQyxRQUFOLENBQUYsR0FBa0IsRUFBbFksQ0FBak07QUFBQSxVQUF1a0IsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsYUFBSCxHQUFpQixDQUFDLEdBQUMsQ0FBQyxDQUFDLGFBQUgsR0FBaUIsRUFBN21CO0FBQUEsVUFBZ25CLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxFQUFHLElBQUgsQ0FBbm5CO0FBQUEsVUFBNG5CLENBQUMsR0FBQyxJQUFJLEVBQUosQ0FBTztBQUFDLFFBQUEsS0FBSyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBWjtBQUFrQixRQUFBLE9BQU8sRUFBQyxDQUExQjtBQUE0QixRQUFBLE1BQU0sRUFBQyxDQUFuQztBQUFxQyxRQUFBLFVBQVUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQUgsR0FBYyxJQUEvRDtBQUFvRSxRQUFBLFlBQVksRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFGLEVBQUksQ0FBQyxHQUFDLENBQU4sRUFBUTtBQUFDLFVBQUEsT0FBTyxFQUFDLENBQVQ7QUFBVyxVQUFBLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUg7QUFBbkIsU0FBVixJQUFxQyxLQUFLLENBQTVDLEdBQThDLENBQUMsR0FBQyxDQUFDLENBQUMsWUFBSCxHQUFnQixLQUFLLENBQXRKO0FBQXdKLFFBQUEsT0FBTyxFQUFDLENBQUMsQ0FBRCxJQUFJLENBQUMsQ0FBQyxNQUFOLEdBQWEsQ0FBYixHQUFlLEtBQUssQ0FBcEw7QUFBc0wsUUFBQSxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUQsR0FBRyxFQUFsTTtBQUFxTSxRQUFBLFVBQVUsRUFBQyxDQUFDLEdBQUMsQ0FBRCxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBSCxHQUFjLEVBQW5PO0FBQXNPLFFBQUEsTUFBTSxFQUFDLEVBQTdPO0FBQWdQLFFBQUEsYUFBYSxFQUFDLENBQTlQO0FBQWdRLFFBQUEsV0FBVyxFQUFDLENBQUMsQ0FBQyxXQUE5UTtBQUEwUixRQUFBLFFBQVEsRUFBQyxDQUFuUztBQUFxUyxRQUFBLElBQUksRUFBQyxDQUExUztBQUE0UyxRQUFBLElBQUksRUFBQyxRQUFNLENBQU4sR0FBUSxLQUFLLENBQWIsR0FBZSxDQUFDLENBQUMsSUFBbFU7QUFBdVUsUUFBQSxPQUFPLEVBQUM7QUFBL1UsT0FBUCxDQUE5bkI7QUFBQSxVQUEyOUIsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFqK0I7QUFBbStCLE1BQUEsQ0FBQyxDQUFDLE9BQUYsR0FBVSxDQUFDLENBQUMsSUFBRixLQUFTLEVBQVQsSUFBYSxDQUF2QjtBQUF5QixVQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBUjtBQUFnQixNQUFBLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFaO0FBQW9CLFVBQUksQ0FBQyxHQUFDLENBQUMsQ0FBRCxLQUFLLEtBQUssVUFBTCxJQUFpQixDQUFDLENBQUMsSUFBRixDQUFRLFVBQVMsQ0FBVCxFQUFXO0FBQUMsZUFBTyxDQUFDLENBQUMsVUFBVDtBQUFvQixPQUF4QyxDQUF0QixDQUFOO0FBQXdFLFVBQUcsRUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLE9BQUssQ0FBQyxDQUFDLElBQWYsQ0FBSCxFQUF3QixPQUFPLENBQVA7QUFBUyxVQUFJLENBQUMsR0FBQyxDQUFOO0FBQVEsVUFBRyxDQUFDLENBQUosRUFBTSxLQUFJLENBQUMsS0FBRyxDQUFDLEdBQUMsS0FBSyx1QkFBTCxDQUE2QixDQUE3QixFQUErQjtBQUFDLFFBQUEsSUFBSSxFQUFDO0FBQU4sT0FBL0IsRUFBeUMsQ0FBekMsQ0FBTCxDQUFMLEVBQXVELENBQUMsQ0FBQyxNQUF6RCxHQUFpRTtBQUFDLFlBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFGLEVBQU47QUFBZ0IsUUFBQSxDQUFDLEdBQUMsS0FBSyx1QkFBTCxDQUE2QixDQUE3QixFQUErQixDQUFDLENBQUMsTUFBakMsRUFBd0MsQ0FBeEMsQ0FBRjtBQUE2QztBQUFBLFVBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFGLEtBQVksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBRixDQUFVLE1BQVosSUFBb0IsQ0FBcEIsSUFBdUIsT0FBTyxDQUFDLENBQUMsS0FBVCxJQUFnQixPQUFPLENBQUMsQ0FBQyxLQUFoRCxJQUF1RCxDQUFDLFNBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxZQUFHLENBQUMsS0FBRyxDQUFQLEVBQVMsT0FBTSxDQUFDLENBQVA7QUFBUyxZQUFHLEtBQUssQ0FBTCxLQUFTLENBQVQsSUFBWSxLQUFLLENBQUwsS0FBUyxDQUF4QixFQUEwQixPQUFNLENBQUMsQ0FBUDtBQUFTLFlBQUcsQ0FBQyxDQUFDLENBQUQsQ0FBRCxJQUFNLENBQUMsQ0FBQyxDQUFELENBQVYsRUFBYyxPQUFPLENBQUMsS0FBRyxDQUFYO0FBQWEsWUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBUDtBQUFBLFlBQVcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQWQ7QUFBa0IsZUFBTyxDQUFDLENBQUMsTUFBRixLQUFXLENBQUMsQ0FBQyxNQUFiLElBQXFCLENBQUMsQ0FBQyxLQUFGLENBQVMsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBRixFQUFNLENBQUMsQ0FBQyxDQUFELENBQVAsQ0FBUjtBQUFvQixTQUF6QyxDQUE1QjtBQUF3RSxPQUExTCxDQUEyTCxDQUFDLENBQUMsS0FBN0wsRUFBbU0sQ0FBQyxDQUFDLEtBQXJNLENBQXpELEdBQXFRLEtBQUssQ0FBdlIsQ0FBTjtBQUFnUyxhQUFPLENBQUMsQ0FBQyxPQUFGLEdBQVUsQ0FBVixFQUFZLENBQUMsQ0FBQyxPQUFGLEdBQVUsQ0FBdEIsRUFBd0IsQ0FBQyxDQUFDLElBQUYsR0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQUgsQ0FBaEMsRUFBa0QsQ0FBekQ7QUFBMkQsS0FBcHlVLEVBQXF5VSxDQUFDLENBQUMsU0FBRixDQUFZLFlBQVosR0FBeUIsVUFBUyxDQUFULEVBQVc7QUFBQyxVQUFHLEVBQUUsQ0FBQyxDQUFELENBQUwsRUFBUyxPQUFPLEtBQUssT0FBTCxDQUFhLGdCQUFiLENBQThCLENBQTlCLENBQVA7QUFBd0MsVUFBRyxDQUFDLEtBQUssTUFBVCxFQUFnQixNQUFNLElBQUksS0FBSixDQUFVLG1DQUFtQyxNQUFuQyxDQUEwQyxDQUExQyxFQUE0QyxVQUE1QyxFQUF3RCxNQUF4RCxDQUErRCxLQUFLLEVBQXBFLEVBQXVFLDJCQUF2RSxDQUFWLENBQU47QUFBcUgsVUFBSSxDQUFDLEdBQUMsS0FBSyxNQUFMLENBQVksQ0FBWixDQUFOO0FBQXFCLFVBQUcsQ0FBQyxDQUFKLEVBQU0sTUFBTSxJQUFJLEtBQUosQ0FBVSxnQkFBZ0IsTUFBaEIsQ0FBdUIsQ0FBdkIsRUFBeUIsdUJBQXpCLEVBQWtELE1BQWxELENBQXlELEtBQUssRUFBOUQsRUFBaUUsR0FBakUsQ0FBVixDQUFOO0FBQXVGLGFBQU8sQ0FBUDtBQUFTLEtBQTNuVixFQUE0blYsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxnQkFBWixHQUE2QixVQUFTLENBQVQsRUFBVztBQUFDLFVBQUksQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFELENBQUYsR0FBTSxDQUFDLENBQUMsS0FBRixDQUFRLElBQUksTUFBWixDQUFOLEdBQTBCLENBQWhDO0FBQWtDLFVBQUcsQ0FBQyxLQUFHLEtBQUssRUFBWixFQUFlLE9BQU8sSUFBUDtBQUFZLFVBQUksQ0FBQyxHQUFDLEtBQUssT0FBTCxDQUFhLEtBQWIsQ0FBbUIsQ0FBbkIsQ0FBTjtBQUE0QixVQUFHLENBQUMsQ0FBSixFQUFNLE1BQU0sSUFBSSxLQUFKLENBQVUsc0JBQXNCLE1BQXRCLENBQTZCLENBQTdCLEVBQStCLCtCQUEvQixFQUFnRSxNQUFoRSxDQUF1RSxLQUFLLEVBQTVFLEVBQStFLEdBQS9FLENBQVYsQ0FBTjtBQUFxRyxhQUFPLENBQVA7QUFBUyxLQUFsM1YsRUFBbTNWLENBQUMsQ0FBQyxTQUFGLENBQVksa0JBQVosR0FBK0IsVUFBUyxDQUFULEVBQVc7QUFBQyxVQUFHLFlBQVUsT0FBTyxDQUFqQixJQUFvQixFQUFFLENBQUMsQ0FBRCxDQUF6QixFQUE2QixJQUFHO0FBQUMsZUFBTyxLQUFLLGdCQUFMLENBQXNCLENBQUMsQ0FBQyxLQUFGLENBQVEsQ0FBUixDQUF0QixDQUFQO0FBQXlDLE9BQTdDLENBQTZDLE9BQU0sQ0FBTixFQUFRLENBQUU7O0FBQUEsV0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxFQUFHLEtBQUssU0FBUixDQUFELENBQW9CLEtBQXBCLEVBQU4sRUFBa0MsQ0FBQyxHQUFDLElBQXhDLEVBQTZDLENBQUMsQ0FBQyxNQUEvQyxHQUF1RDtBQUFDLFlBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFGLEVBQU47QUFBZ0IsWUFBRyxDQUFDLENBQUMsQ0FBQyxNQUFOLEVBQWE7QUFBTSxRQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsWUFBRixDQUFlLENBQWYsQ0FBRjtBQUFvQjs7QUFBQSxhQUFPLENBQVA7QUFBUyxLQUExbVcsRUFBMm1XLENBQUMsQ0FBQyxTQUFGLENBQVksT0FBWixHQUFvQixVQUFTLENBQVQsRUFBVztBQUFDLFVBQUksQ0FBSjtBQUFBLFVBQU0sQ0FBQyxHQUFDLElBQVI7QUFBYSxVQUFHLENBQUMsQ0FBSixFQUFNLE9BQU8sS0FBSyxpQkFBTCxJQUF3QixFQUEvQjs7QUFBa0MsY0FBTyxLQUFLLElBQVo7QUFBa0IsYUFBSSxVQUFKO0FBQWUsaUJBQU8sQ0FBQyxDQUFDLEtBQUssaUJBQU4sRUFBeUIsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsbUJBQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxZQUFGLENBQWUsQ0FBZixFQUFrQixPQUFsQixDQUEwQixDQUFDLENBQUMsQ0FBRCxDQUFELElBQU0sQ0FBaEMsQ0FBRCxHQUFvQyxFQUE1QztBQUErQyxXQUF0RixDQUFSOztBQUFpRyxhQUFJLFVBQUo7QUFBZSxjQUFHLENBQUMsQ0FBQyxDQUFELENBQUosRUFBUTtBQUFDLGdCQUFJLENBQUMsR0FBQyxLQUFLLFlBQUwsQ0FBa0IsQ0FBbEIsQ0FBTjtBQUEyQixtQkFBTSxlQUFhLENBQUMsQ0FBQyxJQUFmLElBQXFCLGVBQWEsQ0FBQyxDQUFDLElBQXBDLElBQTBDLENBQUMsQ0FBQyxHQUFDLEVBQUgsRUFBTyxDQUFQLElBQVUsQ0FBQyxDQUFDLGlCQUFaLEVBQThCLENBQXhFLElBQTJFLENBQWpGO0FBQW1GOztBQUFBLGlCQUFPLENBQUMsQ0FBQyxDQUFELENBQUQsQ0FBSyxNQUFMLEdBQVksQ0FBQyxDQUFDLENBQUQsRUFBSSxVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWE7QUFBQyxtQkFBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFlBQUYsQ0FBZSxDQUFmLEVBQWtCLE9BQWxCLENBQTBCLENBQTFCLENBQUQsR0FBOEIsRUFBdEM7QUFBeUMsV0FBM0QsQ0FBYixHQUEyRSxLQUFLLGlCQUFMLElBQXdCLEVBQTFHOztBQUE2RztBQUFRLGlCQUFPLENBQUMsSUFBRSxFQUFWO0FBQTdYO0FBQTJZLEtBQTNrWCxFQUE0a1gsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxlQUFaLEdBQTRCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsVUFBRyxFQUFFLENBQUMsQ0FBRCxDQUFMLEVBQVM7QUFBQyxZQUFJLENBQUMsR0FBQyxLQUFLLE9BQUwsQ0FBYSxLQUFiLENBQW1CLENBQUMsQ0FBQyxLQUFGLENBQVEsSUFBSSxNQUFaLENBQW5CLENBQU47QUFBOEMsWUFBRyxDQUFDLENBQUosRUFBTSxNQUFNLElBQUksS0FBSixDQUFVLDhCQUE4QixNQUE5QixDQUFxQyxDQUFyQyxFQUF1QyxHQUF2QyxDQUFWLENBQU47QUFBNkQsZUFBTyxDQUFDLENBQUMsSUFBVDtBQUFjOztBQUFBLGFBQU8sQ0FBQyxDQUFDLENBQUQsRUFBRyxLQUFLLFNBQVIsQ0FBUjtBQUEyQixLQUF4eFgsRUFBeXhYLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQUMsQ0FBQyxTQUF4QixFQUFrQyxtQkFBbEMsRUFBc0Q7QUFBQyxNQUFBLEdBQUcsRUFBQyxlQUFVO0FBQUMsWUFBSSxDQUFKLEVBQU0sQ0FBTjtBQUFRLFlBQUcsS0FBSyxPQUFMLENBQWEsaUJBQWhCLEVBQWtDLE9BQU8sS0FBSyxPQUFMLENBQWEsaUJBQXBCO0FBQXNDLFlBQUcsZUFBYSxLQUFLLElBQXJCLEVBQTBCLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxNQUFOLEVBQWMsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxDQUFDLENBQUMsaUJBQUYsSUFBcUIsRUFBNUI7QUFBK0IsU0FBekQsRUFBNEQsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTSxFQUFFLGNBQVksQ0FBQyxDQUFDLElBQWhCLENBQU47QUFBNEIsU0FBcEcsQ0FBSCxDQUExQixLQUF5SSxJQUFHLEtBQUssQ0FBTCxLQUFTLEtBQUssT0FBakIsRUFBeUI7QUFBQyxjQUFHLENBQUMsS0FBSyxNQUFMLENBQVksS0FBSyxPQUFqQixDQUFKLEVBQThCLE1BQU0sSUFBSSxLQUFKLENBQVUsa0JBQWtCLE1BQWxCLENBQXlCLEtBQUssT0FBOUIsRUFBc0Msa0JBQXRDLEVBQTBELE1BQTFELENBQWlFLEtBQUssR0FBdEUsRUFBMEUsR0FBMUUsQ0FBVixDQUFOO0FBQWdHLFVBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLE1BQUwsQ0FBWSxLQUFLLE9BQWpCLENBQUQsQ0FBRCxHQUE2QixLQUFLLE9BQWxDLElBQTJDLENBQUMsQ0FBQyxHQUFDLEVBQUgsRUFBTyxLQUFLLE9BQVosSUFBcUIsS0FBSyxNQUFMLENBQVksS0FBSyxPQUFqQixFQUEwQixpQkFBL0MsRUFBaUUsQ0FBNUcsQ0FBRjtBQUFpSCxTQUF6USxNQUE4USxDQUFDLEdBQUMsRUFBRjtBQUFLLGVBQU8sS0FBSyxPQUFMLENBQWEsaUJBQWIsR0FBK0IsQ0FBL0IsRUFBaUMsS0FBSyxPQUFMLENBQWEsaUJBQXJEO0FBQXVFLE9BQW5rQjtBQUFva0IsTUFBQSxVQUFVLEVBQUMsQ0FBQyxDQUFobEI7QUFBa2xCLE1BQUEsWUFBWSxFQUFDLENBQUM7QUFBaG1CLEtBQXRELENBQXp4WCxFQUFtN1ksQ0FBQyxDQUFDLFNBQUYsQ0FBWSxlQUFaLEdBQTRCLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFVBQUksQ0FBQyxHQUFDLEtBQUssYUFBTCxDQUFtQixDQUFuQixDQUFOO0FBQTRCLGFBQU8sS0FBSyxpQkFBTCxDQUF1QjtBQUFDLFFBQUEsYUFBYSxFQUFDLENBQWY7QUFBaUIsUUFBQSxRQUFRLEVBQUMsQ0FBMUI7QUFBNEIsUUFBQSxPQUFPLEVBQUMsRUFBcEM7QUFBdUMsUUFBQSxXQUFXLEVBQUMsRUFBbkQ7QUFBc0QsUUFBQSxNQUFNLEVBQUMsS0FBSyxDQUFsRTtBQUFvRSxRQUFBLE9BQU8sRUFBQztBQUE1RSxPQUF2QixFQUF1RyxLQUFLLENBQTVHLEVBQThHLEtBQUssQ0FBbkgsRUFBcUgsQ0FBckgsQ0FBUDtBQUErSCxLQUF4blosRUFBeW5aLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQUMsQ0FBQyxTQUF4QixFQUFrQyxjQUFsQyxFQUFpRDtBQUFDLE1BQUEsR0FBRyxFQUFDLGVBQVU7QUFBQyxhQUFLLEtBQUw7O0FBQWEsWUFBSSxDQUFDLEdBQUMsS0FBSyxpQkFBWDtBQUE2QixZQUFHLENBQUMsQ0FBSixFQUFNLE1BQU0sSUFBSSxLQUFKLENBQVUsb0RBQW9ELE1BQXBELENBQTJELEtBQUssRUFBaEUsRUFBbUUsSUFBbkUsQ0FBVixDQUFOO0FBQTBGLGVBQU8sS0FBSyxlQUFMLENBQXFCLENBQXJCLENBQVA7QUFBK0IsT0FBekw7QUFBMEwsTUFBQSxVQUFVLEVBQUMsQ0FBQyxDQUF0TTtBQUF3TSxNQUFBLFlBQVksRUFBQyxDQUFDO0FBQXROLEtBQWpELENBQXpuWixFQUFvNFosTUFBTSxDQUFDLGNBQVAsQ0FBc0IsQ0FBQyxDQUFDLFNBQXhCLEVBQWtDLFFBQWxDLEVBQTJDO0FBQUMsTUFBQSxHQUFHLEVBQUMsZUFBVTtBQUFDLFlBQUksQ0FBSjs7QUFBTSxZQUFHLGNBQVksS0FBSyxJQUFwQixFQUF5QjtBQUFDLGNBQUksQ0FBQyxHQUFDLEtBQUssTUFBWDtBQUFrQixVQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQUgsQ0FBRCxJQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBSCxDQUFmLEdBQTBCLENBQUMsQ0FBQyxLQUFLLE9BQUwsQ0FBYSxnQkFBYixDQUE4QixDQUFDLENBQUMsTUFBaEMsRUFBd0MsSUFBeEMsQ0FBNkMsS0FBN0MsQ0FBbUQsS0FBSyxJQUFMLENBQVUsTUFBVixHQUFpQixDQUFwRSxDQUFELENBQTNCLEdBQW9HLENBQUMsQ0FBQyxNQUF4RztBQUErRzs7QUFBQSxlQUFPLENBQVA7QUFBUyxPQUExTDtBQUEyTCxNQUFBLFVBQVUsRUFBQyxDQUFDLENBQXZNO0FBQXlNLE1BQUEsWUFBWSxFQUFDLENBQUM7QUFBdk4sS0FBM0MsQ0FBcDRaLEVBQTBvYSxDQUFDLENBQUMsU0FBRixDQUFZLHFCQUFaLEdBQWtDLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxhQUFPLEtBQUssQ0FBTCxLQUFTLENBQVQsS0FBYSxDQUFDLEdBQUMsQ0FBQyxDQUFoQixHQUFtQixDQUFDLEdBQUMsY0FBWSxDQUFDLENBQUMsSUFBZCxHQUFtQixDQUFDLENBQUMsY0FBRixDQUFpQixDQUFqQixDQUFuQixHQUF1QyxDQUFDLENBQUMsaUJBQTFDLEdBQTRELENBQUMsQ0FBRCxDQUF2RjtBQUEyRixLQUF2eGEsRUFBd3hhLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQUMsQ0FBQyxTQUF4QixFQUFrQyxtQkFBbEMsRUFBc0Q7QUFBQyxNQUFBLEdBQUcsRUFBQyxlQUFVO0FBQUMsWUFBSSxDQUFDLEdBQUMsSUFBTjtBQUFXLGVBQU8sQ0FBQyxDQUFDLElBQUQsQ0FBRCxHQUFRLENBQUMsSUFBRCxDQUFSLEdBQWUsZUFBYSxLQUFLLElBQWxCLElBQXdCLEtBQUssT0FBN0IsR0FBcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLGlCQUFOLENBQUQsQ0FBMEIsR0FBMUIsQ0FBK0IsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxDQUFDLENBQUMsbUJBQUYsQ0FBc0IsQ0FBdEIsQ0FBUDtBQUFnQyxTQUEzRSxDQUFELENBQXRDLEdBQXNILENBQUMsSUFBRCxDQUE1STtBQUFtSixPQUE5SztBQUErSyxNQUFBLFVBQVUsRUFBQyxDQUFDLENBQTNMO0FBQTZMLE1BQUEsWUFBWSxFQUFDLENBQUM7QUFBM00sS0FBdEQsQ0FBeHhhLEVBQTZoYixDQUFDLENBQUMsU0FBRixDQUFZLG1CQUFaLEdBQWdDLFVBQVMsQ0FBVCxFQUFXO0FBQUMsVUFBRyxDQUFDLENBQUMsQ0FBQyxNQUFOLEVBQWEsT0FBTSxDQUFDLElBQUQsQ0FBTjtBQUFhLFVBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFELENBQVA7QUFBQSxVQUFXLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFkO0FBQUEsVUFBa0IsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFGLENBQVEsQ0FBUixDQUFwQjtBQUErQixVQUFHLENBQUMsS0FBSyxNQUFULEVBQWdCLE1BQU0sSUFBSSxLQUFKLENBQVUsNEJBQTRCLE1BQTVCLENBQW1DLENBQW5DLEVBQXFDLDRCQUFyQyxDQUFWLENBQU47QUFBb0YsVUFBSSxDQUFDLEdBQUMsS0FBSyxZQUFMLENBQWtCLENBQWxCLENBQU47QUFBMkIsVUFBRyxjQUFZLENBQUMsQ0FBQyxJQUFqQixFQUFzQixPQUFPLENBQUMsQ0FBQyxjQUFGLEVBQVA7QUFBMEIsVUFBRyxDQUFDLEtBQUssTUFBTCxDQUFZLENBQVosQ0FBSixFQUFtQixNQUFNLElBQUksS0FBSixDQUFVLGdCQUFnQixNQUFoQixDQUF1QixDQUF2QixFQUF5Qix1QkFBekIsRUFBa0QsTUFBbEQsQ0FBeUQsS0FBSyxFQUE5RCxFQUFpRSxHQUFqRSxDQUFWLENBQU47QUFBdUYsYUFBTyxLQUFLLE1BQUwsQ0FBWSxDQUFaLEVBQWUsbUJBQWYsQ0FBbUMsQ0FBbkMsQ0FBUDtBQUE2QyxLQUF4OGIsRUFBeThiLENBQUMsQ0FBQyxTQUFGLENBQVksWUFBWixHQUF5QixVQUFTLENBQVQsRUFBVztBQUFDLFVBQUcsQ0FBQyxDQUFDLEtBQUssTUFBTixDQUFELENBQWUsTUFBbEIsRUFBeUIsT0FBTTtBQUFDLFFBQUEsT0FBTyxFQUFDLENBQUMsSUFBRSxLQUFLLGlCQUFqQjtBQUFtQyxRQUFBLE1BQU0sRUFBQyxDQUFDLENBQUMsS0FBSyxNQUFOLEVBQWMsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsY0FBRyxDQUFDLENBQUosRUFBTSxPQUFPLENBQUMsQ0FBQyxZQUFGLEVBQVA7QUFBd0IsY0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBRCxHQUFLLEtBQUssQ0FBVixHQUFZLENBQUMsQ0FBQyxDQUFELENBQW5CO0FBQXVCLGlCQUFPLENBQUMsQ0FBQyxZQUFGLENBQWUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxpQkFBcEIsQ0FBUDtBQUE4QyxTQUEvSCxFQUFrSSxVQUFTLENBQVQsRUFBVztBQUFDLGlCQUFNLENBQUMsQ0FBQyxDQUFDLE9BQVQ7QUFBaUIsU0FBL0o7QUFBM0MsT0FBTjtBQUFvTixLQUEzdGMsRUFBNHRjLENBQUMsQ0FBQyxTQUFGLENBQVksY0FBWixHQUEyQixVQUFTLENBQVQsRUFBVztBQUFDLFVBQUksQ0FBQyxHQUFDLElBQU47QUFBVyxVQUFHLGNBQVksS0FBSyxJQUFwQixFQUF5QixPQUFNLENBQUMsSUFBRCxDQUFOO0FBQWEsVUFBSSxDQUFDLEdBQUMsS0FBSyxNQUFYOztBQUFrQixVQUFHLENBQUMsQ0FBSixFQUFNO0FBQUMsWUFBSSxDQUFDLEdBQUMsS0FBSyxNQUFYO0FBQWtCLGVBQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFELENBQUssR0FBTCxDQUFVLFVBQVMsQ0FBVCxFQUFXO0FBQUMsaUJBQU8sQ0FBQyxDQUFDLG1CQUFGLENBQXNCLENBQXRCLENBQVA7QUFBZ0MsU0FBdEQsQ0FBRCxDQUFGLEdBQTZELENBQUMsQ0FBQyxpQkFBdkU7QUFBeUY7O0FBQUEsVUFBSSxDQUFKO0FBQUEsVUFBTSxDQUFOO0FBQUEsVUFBUSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUosRUFBUyxDQUFDLEdBQUMsUUFBWCxFQUFvQixVQUFTLENBQVQsRUFBVztBQUFDLFlBQUksQ0FBSjtBQUFBLFlBQU0sQ0FBTjtBQUFBLFlBQVEsQ0FBQyxHQUFDLENBQVY7O0FBQVksWUFBRztBQUFDLGVBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBUCxFQUFXLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFqQixFQUEwQixDQUFDLENBQUMsQ0FBQyxJQUE3QixFQUFrQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBcEMsRUFBNkM7QUFBQyxnQkFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQVI7QUFBYyxZQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFELENBQUssQ0FBTCxDQUFGO0FBQVU7QUFBQyxTQUEzRSxDQUEyRSxPQUFNLENBQU4sRUFBUTtBQUFDLFVBQUEsQ0FBQyxHQUFDO0FBQUMsWUFBQSxLQUFLLEVBQUM7QUFBUCxXQUFGO0FBQVksU0FBaEcsU0FBdUc7QUFBQyxjQUFHO0FBQUMsWUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxXQUF4QyxTQUErQztBQUFDLGdCQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxlQUFPLENBQVA7QUFBUyxPQUFsTyxFQUFvTyxDQUFwTyxFQUF1TyxPQUFqUDtBQUF5UCxhQUFPLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFGLENBQWUsQ0FBZixDQUFELENBQUwsR0FBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUQsQ0FBSyxHQUFMLENBQVUsVUFBUyxDQUFULEVBQVc7QUFBQyxlQUFNLFdBQVMsQ0FBQyxDQUFDLE9BQVgsR0FBbUIsQ0FBQyxDQUFDLG1CQUFGLENBQXNCLENBQXRCLENBQW5CLEdBQTRDLENBQUMsQ0FBQyxDQUFDLE1BQUYsQ0FBUyxDQUFDLENBQUMsQ0FBRCxDQUFWLENBQUQsQ0FBbEQ7QUFBbUUsT0FBekYsQ0FBRCxDQUFqQztBQUErSCxLQUFoemQsRUFBaXpkLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQUMsQ0FBQyxTQUF4QixFQUFrQyxVQUFsQyxFQUE2QztBQUFDLE1BQUEsR0FBRyxFQUFDLGVBQVU7QUFBQyxZQUFJLENBQUMsR0FBQyxJQUFOO0FBQUEsWUFBVyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU4sQ0FBRCxDQUFlLEdBQWYsQ0FBb0IsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxDQUFDLENBQUMsTUFBRixDQUFTLENBQVQsRUFBWSxRQUFuQjtBQUE0QixTQUE1RCxDQUFELENBQWQ7QUFBK0UsZUFBTSxDQUFDLEtBQUssRUFBTixFQUFVLE1BQVYsQ0FBaUIsQ0FBakIsQ0FBTjtBQUEwQixPQUF6SDtBQUEwSCxNQUFBLFVBQVUsRUFBQyxDQUFDLENBQXRJO0FBQXdJLE1BQUEsWUFBWSxFQUFDLENBQUM7QUFBdEosS0FBN0MsQ0FBanpkLEVBQXcvZCxNQUFNLENBQUMsY0FBUCxDQUFzQixDQUFDLENBQUMsU0FBeEIsRUFBa0MsUUFBbEMsRUFBMkM7QUFBQyxNQUFBLEdBQUcsRUFBQyxlQUFVO0FBQUMsWUFBSSxDQUFKLEVBQU0sQ0FBTixFQUFRLENBQVIsRUFBVSxDQUFWO0FBQVksWUFBRyxLQUFLLE9BQUwsQ0FBYSxNQUFoQixFQUF1QixPQUFPLEtBQUssT0FBTCxDQUFhLE1BQXBCO0FBQTJCLFlBQUksQ0FBQyxHQUFDLEtBQUssTUFBWDtBQUFBLFlBQWtCLENBQUMsR0FBQyxJQUFJLEdBQUosQ0FBUSxLQUFLLFNBQWIsQ0FBcEI7QUFBNEMsWUFBRyxDQUFILEVBQUssSUFBRztBQUFDLGVBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUYsQ0FBUCxFQUFjLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFwQixFQUE2QixDQUFDLENBQUMsQ0FBQyxJQUFoQyxFQUFxQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBdkMsRUFBZ0Q7QUFBQyxnQkFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFILENBQVA7QUFBaUIsZ0JBQUcsQ0FBQyxDQUFDLE1BQUwsRUFBWSxJQUFHO0FBQUMsbUJBQUksSUFBSSxDQUFDLElBQUUsQ0FBQyxHQUFDLEtBQUssQ0FBUCxFQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBSCxDQUFaLENBQUwsRUFBNkIsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQW5DLEVBQTRDLENBQUMsQ0FBQyxDQUFDLElBQS9DLEVBQW9ELENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUF0RCxFQUErRDtBQUFDLG9CQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBUjtBQUFjLGdCQUFBLENBQUMsQ0FBQyxHQUFGLENBQU0sR0FBRyxNQUFILENBQVUsQ0FBVixDQUFOO0FBQW9CO0FBQUMsYUFBdkcsQ0FBdUcsT0FBTSxDQUFOLEVBQVE7QUFBQyxjQUFBLENBQUMsR0FBQztBQUFDLGdCQUFBLEtBQUssRUFBQztBQUFQLGVBQUY7QUFBWSxhQUE1SCxTQUFtSTtBQUFDLGtCQUFHO0FBQUMsZ0JBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsZUFBeEMsU0FBK0M7QUFBQyxvQkFBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7QUFBQztBQUFDLFNBQTVSLENBQTRSLE9BQU0sQ0FBTixFQUFRO0FBQUMsVUFBQSxDQUFDLEdBQUM7QUFBQyxZQUFBLEtBQUssRUFBQztBQUFQLFdBQUY7QUFBWSxTQUFqVCxTQUF3VDtBQUFDLGNBQUc7QUFBQyxZQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLFdBQXhDLFNBQStDO0FBQUMsZ0JBQUcsQ0FBSCxFQUFLLE1BQU0sQ0FBQyxDQUFDLEtBQVI7QUFBYztBQUFDO0FBQUEsZUFBTyxLQUFLLE9BQUwsQ0FBYSxNQUFiLEdBQW9CLEtBQUssQ0FBQyxJQUFOLENBQVcsQ0FBWCxDQUEzQjtBQUF5QyxPQUFyaUI7QUFBc2lCLE1BQUEsVUFBVSxFQUFDLENBQUMsQ0FBbGpCO0FBQW9qQixNQUFBLFlBQVksRUFBQyxDQUFDO0FBQWxrQixLQUEzQyxDQUF4L2QsRUFBeW1mLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQUMsQ0FBQyxTQUF4QixFQUFrQyxXQUFsQyxFQUE4QztBQUFDLE1BQUEsR0FBRyxFQUFDLGVBQVU7QUFBQyxZQUFJLENBQUMsR0FBQyxJQUFJLEdBQUosQ0FBUSxLQUFLLFdBQUwsQ0FBaUIsTUFBakIsQ0FBeUIsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQUgsSUFBVyxDQUFDLENBQUMsQ0FBQyxPQUFGLENBQVUsTUFBdEIsSUFBOEIsQ0FBQyxDQUFDLFFBQWxDLENBQU47QUFBa0QsU0FBdkYsRUFBMEYsR0FBMUYsQ0FBK0YsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxDQUFDLENBQUMsU0FBVDtBQUFtQixTQUE5SCxDQUFSLENBQU47QUFBZ0osZUFBTyxLQUFLLENBQUMsSUFBTixDQUFXLENBQVgsQ0FBUDtBQUFxQixPQUFyTDtBQUFzTCxNQUFBLFVBQVUsRUFBQyxDQUFDLENBQWxNO0FBQW9NLE1BQUEsWUFBWSxFQUFDLENBQUM7QUFBbE4sS0FBOUMsQ0FBem1mLEVBQTYyZixDQUFDLENBQUMsU0FBRixDQUFZLGFBQVosR0FBMEIsVUFBUyxDQUFULEVBQVc7QUFBQyxVQUFJLENBQUMsR0FBQyxJQUFOO0FBQVcsVUFBRyxLQUFLLENBQUwsS0FBUyxDQUFaLEVBQWMsT0FBTyxDQUFDLENBQUMsR0FBRixDQUFPLFVBQVMsQ0FBVCxFQUFXO0FBQUMsWUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFELENBQUwsRUFBUyxPQUFPLENBQVA7QUFBUyxZQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFELEtBQU8sQ0FBQyxDQUFDLFNBQWY7QUFBeUIsWUFBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsTUFBVCxFQUFnQixPQUFPLENBQUMsQ0FBQyxrQkFBRixDQUFxQixDQUFDLENBQUMsS0FBRixDQUFRLENBQVIsQ0FBckIsQ0FBUDtBQUF3QyxZQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUYsR0FBTSxDQUFQLEdBQVMsQ0FBaEI7QUFBa0IsWUFBRyxDQUFDLENBQUMsQ0FBQyxNQUFOLEVBQWEsT0FBTyxDQUFDLENBQUMsa0JBQUYsQ0FBcUIsQ0FBckIsQ0FBUDs7QUFBK0IsWUFBRztBQUFDLGlCQUFPLENBQUMsQ0FBQyxNQUFGLENBQVMsa0JBQVQsQ0FBNEIsQ0FBNUIsQ0FBUDtBQUFzQyxTQUExQyxDQUEwQyxPQUFNLENBQU4sRUFBUTtBQUFDLGdCQUFNLElBQUksS0FBSixDQUFVLGlEQUFpRCxNQUFqRCxDQUF3RCxDQUFDLENBQUMsRUFBMUQsRUFBNkQsTUFBN0QsRUFBcUUsTUFBckUsQ0FBNEUsQ0FBQyxDQUFDLE9BQTlFLENBQVYsQ0FBTjtBQUF3RztBQUFDLE9BQWhWLENBQVA7QUFBMFYsS0FBdHdnQixFQUF1d2dCLENBQUMsQ0FBQyxTQUFGLENBQVksZ0JBQVosR0FBNkIsVUFBUyxDQUFULEVBQVc7QUFBQyxVQUFJLENBQUMsR0FBQyxJQUFOO0FBQUEsVUFBVyxDQUFDLEdBQUMsVUFBUyxDQUFULEVBQVc7QUFBQyxZQUFHLEtBQUssQ0FBTCxLQUFTLENBQVQsSUFBWSxPQUFLLENBQXBCLEVBQXNCLE9BQU8sQ0FBQyxDQUFDLENBQUQsQ0FBUjtBQUFZLE9BQTlDLENBQStDLENBQUMsQ0FBQyxNQUFqRCxDQUFiO0FBQUEsVUFBc0UsQ0FBQyxHQUFDLGNBQWEsQ0FBYixHQUFlLENBQUMsQ0FBQyxRQUFqQixHQUEwQixDQUFDLENBQUQsSUFBSSxDQUFDLENBQUMsSUFBRixDQUFRLFVBQVMsQ0FBVCxFQUFXO0FBQUMsZUFBTyxDQUFDLENBQUMsQ0FBRCxDQUFELElBQU0sQ0FBQyxDQUFDLENBQUQsQ0FBRCxLQUFPLENBQUMsQ0FBQyxTQUF0QjtBQUFnQyxPQUFwRCxDQUF0RztBQUFBLFVBQTZKLENBQUMsR0FBQyxLQUFLLE9BQUwsQ0FBYSxPQUFiLENBQXFCLE1BQXBMO0FBQUEsVUFBMkwsQ0FBQyxHQUFDLEtBQUssYUFBTCxDQUFtQixDQUFuQixDQUE3TDtBQUFBLFVBQW1OLENBQUMsR0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxDQUFKLENBQUYsRUFBUztBQUFDLFFBQUEsT0FBTyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUgsQ0FBRixDQUFYO0FBQTBCLFFBQUEsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSCxFQUFRLENBQVIsQ0FBaEM7QUFBMkMsUUFBQSxNQUFNLEVBQUMsQ0FBbEQ7QUFBb0QsUUFBQSxNQUFNLEVBQUMsSUFBM0Q7QUFBZ0UsUUFBQSxRQUFRLEVBQUMsQ0FBekU7QUFBMkUsUUFBQSxTQUFTLEVBQUMsQ0FBQyxDQUFDLEtBQXZGO0FBQTZGLFFBQUEsTUFBTSxFQUFDLGtCQUFVO0FBQUMsaUJBQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFELEVBQUksQ0FBSixDQUFGLEVBQVM7QUFBQyxZQUFBLE1BQU0sRUFBQyxDQUFDLENBQUMsTUFBRixHQUFTLENBQUMsQ0FBQyxNQUFGLENBQVMsR0FBVCxDQUFjLFVBQVMsQ0FBVCxFQUFXO0FBQUMscUJBQU0sSUFBSSxNQUFKLENBQVcsQ0FBQyxDQUFDLEVBQWIsQ0FBTjtBQUF1QixhQUFqRCxDQUFULEdBQTZELEtBQUssQ0FBMUU7QUFBNEUsWUFBQSxNQUFNLEVBQUMsSUFBSSxNQUFKLENBQVcsQ0FBQyxDQUFDLEVBQWI7QUFBbkYsV0FBVCxDQUFSO0FBQXVIO0FBQXRPLE9BQVQsQ0FBdE47O0FBQXdjLGFBQU8sQ0FBUDtBQUFTLEtBQWp3aEIsRUFBa3doQixDQUFDLENBQUMsU0FBRixDQUFZLGlCQUFaLEdBQThCLFlBQVU7QUFBQyxVQUFJLENBQUo7QUFBQSxVQUFNLENBQU47QUFBQSxVQUFRLENBQVI7QUFBQSxVQUFVLENBQUMsR0FBQyxJQUFaO0FBQWlCLFVBQUcsS0FBSyxNQUFMLENBQVksRUFBZjtBQUFrQixZQUFHLEtBQUssQ0FBQyxPQUFOLENBQWMsS0FBSyxNQUFMLENBQVksRUFBMUIsQ0FBSCxFQUFpQyxDQUFDLEdBQUMsS0FBSyxNQUFMLENBQVksRUFBZCxDQUFqQyxLQUFzRDtBQUFDLGNBQUksQ0FBQyxHQUFDLEtBQUssTUFBTCxDQUFZLEVBQWxCO0FBQUEsY0FBcUIsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFELENBQXhCO0FBQUEsY0FBOEIsQ0FBQyxHQUFDLEtBQUssQ0FBTCxLQUFTLENBQVQsR0FBVyxFQUFYLEdBQWMsQ0FBOUM7QUFBQSxjQUFnRCxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFDLEdBQUQsQ0FBSCxDQUFuRDtBQUE2RCxVQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBRCxDQUFLLEdBQUwsQ0FBVSxVQUFTLENBQVQsRUFBVztBQUFDLG1CQUFPLENBQUMsQ0FBQyxDQUFELEVBQUcsQ0FBQyxDQUFDLENBQUQsQ0FBSixDQUFSO0FBQWlCLFdBQXZDLEVBQTBDLE1BQTFDLENBQWlELENBQUMsQ0FBQyxHQUFELEVBQUssQ0FBTCxDQUFsRCxDQUFELENBQUg7QUFBZ0U7QUFBdE0sYUFBMk0sQ0FBQyxHQUFDLEVBQUY7QUFBSyxVQUFJLENBQUMsR0FBQyxLQUFLLE1BQUwsQ0FBWSxNQUFaLEdBQW1CLENBQUMsQ0FBQyxFQUFELEVBQUksS0FBSyxNQUFMLENBQVksTUFBaEIsQ0FBcEIsR0FBNEMsRUFBbEQ7QUFBQSxVQUFxRCxDQUFDLEdBQUMsS0FBSyxNQUFMLENBQVksTUFBWixHQUFtQixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQU4sQ0FBSCxDQUFQLEVBQXFCLEtBQUssTUFBTCxDQUFZLE1BQWpDLENBQXBCLEdBQTZELEVBQXBIO0FBQUEsVUFBdUgsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLE1BQUwsQ0FBWSxHQUFaLENBQWlCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsWUFBSSxDQUFDLEdBQUMsRUFBTjtBQUFTLGVBQU8sQ0FBQyxDQUFDLE1BQUYsSUFBVSxDQUFDLENBQUMsSUFBRixDQUFPLEtBQVAsQ0FBYSxDQUFiLEVBQWUsQ0FBQyxDQUFDLEVBQUQsRUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUgsQ0FBSCxDQUFQLEVBQWtCLENBQUMsQ0FBQyxNQUFwQixDQUFGLENBQUwsRUFBb0MsQ0FBQyxDQUFyQyxDQUFoQixDQUFWLEVBQW1FLENBQUMsQ0FBQyxPQUFGLElBQVcsQ0FBQyxDQUFDLElBQUYsQ0FBTyxLQUFQLENBQWEsQ0FBYixFQUFlLENBQUMsQ0FBQyxFQUFELEVBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFILENBQUgsQ0FBUCxFQUFrQixDQUFDLENBQUMsT0FBcEIsQ0FBRixDQUFMLEVBQXFDLENBQUMsQ0FBdEMsQ0FBaEIsQ0FBOUUsRUFBd0ksQ0FBL0k7QUFBaUosT0FBdkwsQ0FBRCxDQUExSDtBQUFBLFVBQXNULENBQUMsR0FBQyxLQUFLLEtBQTdUO0FBQUEsVUFBbVUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRCxFQUFJLENBQUMsQ0FBQyxDQUFELENBQUwsRUFBUyxDQUFDLENBQVYsQ0FBRixFQUFlLENBQUMsQ0FBQyxDQUFELENBQWhCLEVBQW9CLENBQUMsQ0FBckIsQ0FBRixFQUEwQixDQUFDLENBQUMsQ0FBRCxDQUEzQixFQUErQixDQUFDLENBQWhDLENBQUYsRUFBcUMsQ0FBQyxDQUFDLENBQUQsQ0FBdEMsRUFBMEMsQ0FBQyxDQUEzQyxDQUFELENBQStDLEdBQS9DLENBQW9ELFVBQVMsQ0FBVCxFQUFXO0FBQUMsZUFBTyxDQUFDLENBQUMsQ0FBRCxDQUFELENBQUssR0FBTCxDQUFVLFVBQVMsQ0FBVCxFQUFXO0FBQUMsaUJBQU8sQ0FBQyxDQUFDLGdCQUFGLENBQW1CLENBQW5CLENBQVA7QUFBNkIsU0FBbkQsQ0FBUDtBQUE2RCxPQUE3SCxDQUFELENBQXRVOztBQUF3YyxVQUFHO0FBQUMsYUFBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFQLEVBQVcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQWpCLEVBQTBCLENBQUMsQ0FBQyxDQUFDLElBQTdCLEVBQWtDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFwQyxFQUE2QztBQUFDLGNBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFSO0FBQWMsVUFBQSxDQUFDLENBQUMsSUFBRixDQUFPLENBQVA7QUFBVTtBQUFDLE9BQTNFLENBQTJFLE9BQU0sQ0FBTixFQUFRO0FBQUMsUUFBQSxDQUFDLEdBQUM7QUFBQyxVQUFBLEtBQUssRUFBQztBQUFQLFNBQUY7QUFBWSxPQUFoRyxTQUF1RztBQUFDLFlBQUc7QUFBQyxVQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLFNBQXhDLFNBQStDO0FBQUMsY0FBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7O0FBQUEsYUFBTyxDQUFQO0FBQVMsS0FBem9qQixFQUEwb2pCLENBQWpwakI7QUFBbXBqQixHQUF0MW9CLEVBQTlDOztBQUF1NG9CLE1BQUksRUFBRSxHQUFDO0FBQUMsSUFBQSxXQUFXLEVBQUMsQ0FBQztBQUFkLEdBQVA7QUFBQSxNQUF3QixFQUFFLEdBQUMsWUFBVTtBQUFDLGFBQVMsQ0FBVCxDQUFXLENBQVgsRUFBYTtBQUFDLFdBQUssZUFBTCxHQUFxQixDQUFDLENBQXRCLEVBQXdCLEtBQUssS0FBTCxHQUFXLEVBQW5DLEVBQXNDLEtBQUssV0FBTCxHQUFpQixDQUFDLENBQXhELEVBQTBELEtBQUssT0FBTCxHQUFhLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLEVBQUosQ0FBRixFQUFVLENBQVYsQ0FBeEU7QUFBcUY7O0FBQUEsV0FBTyxDQUFDLENBQUMsU0FBRixDQUFZLFVBQVosR0FBdUIsVUFBUyxDQUFULEVBQVc7QUFBQyxVQUFHLEtBQUssV0FBTCxHQUFpQixDQUFDLENBQWxCLEVBQW9CLENBQXZCLEVBQXlCO0FBQUMsWUFBRyxDQUFDLEtBQUssT0FBTCxDQUFhLFdBQWpCLEVBQTZCLE9BQU8sS0FBSyxLQUFLLFFBQUwsQ0FBYyxDQUFkLENBQVo7QUFBNkIsYUFBSyxPQUFMLENBQWEsQ0FBYjtBQUFnQjs7QUFBQSxXQUFLLFdBQUw7QUFBbUIsS0FBMUosRUFBMkosQ0FBQyxDQUFDLFNBQUYsQ0FBWSxRQUFaLEdBQXFCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsVUFBRyxLQUFLLFdBQUwsSUFBa0IsQ0FBQyxLQUFLLGVBQTNCLEVBQTJDO0FBQUMsWUFBRyxNQUFJLEtBQUssS0FBTCxDQUFXLE1BQWxCLEVBQXlCLE1BQU0sSUFBSSxLQUFKLENBQVUsOERBQVYsQ0FBTjtBQUFnRixhQUFLLE9BQUwsQ0FBYSxDQUFiLEdBQWdCLEtBQUssV0FBTCxFQUFoQjtBQUFtQyxPQUF4TCxNQUE2TCxLQUFLLEtBQUwsQ0FBVyxJQUFYLENBQWdCLENBQWhCO0FBQW1CLEtBQTVZLEVBQTZZLENBQUMsQ0FBQyxTQUFGLENBQVksS0FBWixHQUFrQixZQUFVO0FBQUMsV0FBSyxLQUFMLEdBQVcsRUFBWDtBQUFjLEtBQXhiLEVBQXliLENBQUMsQ0FBQyxTQUFGLENBQVksV0FBWixHQUF3QixZQUFVO0FBQUMsV0FBSSxJQUFJLENBQUMsR0FBQyxLQUFLLEtBQUwsQ0FBVyxLQUFYLEVBQVYsRUFBNkIsQ0FBN0I7QUFBZ0MsYUFBSyxPQUFMLENBQWEsQ0FBYixHQUFnQixDQUFDLEdBQUMsS0FBSyxLQUFMLENBQVcsS0FBWCxFQUFsQjtBQUFoQztBQUFxRSxLQUFqaUIsRUFBa2lCLENBQUMsQ0FBQyxTQUFGLENBQVksT0FBWixHQUFvQixVQUFTLENBQVQsRUFBVztBQUFDLFdBQUssZUFBTCxHQUFxQixDQUFDLENBQXRCOztBQUF3QixVQUFHO0FBQUMsUUFBQSxDQUFDO0FBQUcsT0FBUixDQUFRLE9BQU0sQ0FBTixFQUFRO0FBQUMsY0FBTSxLQUFLLEtBQUwsSUFBYSxDQUFuQjtBQUFxQixPQUF0QyxTQUE2QztBQUFDLGFBQUssZUFBTCxHQUFxQixDQUFDLENBQXRCO0FBQXdCO0FBQUMsS0FBanFCLEVBQWtxQixDQUF6cUI7QUFBMnFCLEdBQXp4QixFQUEzQjtBQUFBLE1BQXV6QixFQUFFLEdBQUMsSUFBSSxHQUFKLEVBQTF6QjtBQUFBLE1BQWswQixFQUFFLEdBQUMsQ0FBcjBCO0FBQUEsTUFBdTBCLEVBQUUsR0FBQyxTQUFILEVBQUcsR0FBVTtBQUFDLFdBQU0sS0FBSyxNQUFMLENBQVksRUFBRSxFQUFkLENBQU47QUFBd0IsR0FBNzJCO0FBQUEsTUFBODJCLEVBQUUsR0FBQyxTQUFILEVBQUcsQ0FBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsV0FBTyxFQUFFLENBQUMsR0FBSCxDQUFPLENBQVAsRUFBUyxDQUFULEdBQVksQ0FBbkI7QUFBcUIsR0FBcDVCO0FBQUEsTUFBcTVCLEVBQUUsR0FBQyxTQUFILEVBQUcsQ0FBUyxDQUFULEVBQVc7QUFBQyxXQUFPLEVBQUUsQ0FBQyxHQUFILENBQU8sQ0FBUCxDQUFQO0FBQWlCLEdBQXI3QjtBQUFBLE1BQXM3QixFQUFFLEdBQUMsU0FBSCxFQUFHLENBQVMsQ0FBVCxFQUFXO0FBQUMsSUFBQSxFQUFFLFVBQUYsQ0FBVSxDQUFWO0FBQWEsR0FBbDlCOztBQUFtOUIsV0FBUyxFQUFULEdBQWE7QUFBQyxXQUFNLGVBQWEsT0FBTyxVQUFwQixHQUErQixVQUEvQixHQUEwQyxlQUFhLE9BQU8sSUFBcEIsR0FBeUIsSUFBekIsR0FBOEIsZUFBYSxPQUFPLE1BQXBCLEdBQTJCLE1BQTNCLEdBQWtDLGVBQWEsT0FBTyxNQUFwQixHQUEyQixNQUEzQixHQUFrQyxLQUFLLENBQXZKO0FBQXlKOztBQUFBLFdBQVMsRUFBVCxDQUFZLENBQVosRUFBYztBQUFDLFFBQUcsRUFBRSxFQUFMLEVBQVE7QUFBQyxVQUFJLENBQUMsR0FBQyxZQUFVO0FBQUMsWUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFSO0FBQVcsWUFBRyxDQUFDLElBQUUsZ0JBQWUsQ0FBckIsRUFBdUIsT0FBTyxDQUFDLENBQUMsVUFBVDtBQUFvQixPQUFqRSxFQUFOOztBQUEwRSxNQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsUUFBRixDQUFXLENBQVgsQ0FBSDtBQUFpQjtBQUFDOztBQUFBLFdBQVMsRUFBVCxDQUFZLENBQVosRUFBYyxDQUFkLEVBQWdCO0FBQUMsU0FBSyxDQUFMLEtBQVMsQ0FBVCxLQUFhLENBQUMsR0FBQyxFQUFmO0FBQW1CLFFBQUksQ0FBSjtBQUFBLFFBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxZQUFWO0FBQUEsUUFBdUIsQ0FBQyxHQUFDLElBQUksR0FBSixFQUF6QjtBQUFBLFFBQWlDLENBQUMsR0FBQyxFQUFuQztBQUFBLFFBQXNDLENBQUMsR0FBQyxDQUFDLENBQXpDO0FBQUEsUUFBMkMsQ0FBQyxJQUFFLENBQUMsR0FBQztBQUFDLE1BQUEsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFOO0FBQVMsTUFBQSxJQUFJLEVBQUMsY0FBUyxDQUFULEVBQVc7QUFBQyxRQUFBLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxHQUFVLFlBQVU7QUFBQyxjQUFHLENBQUMsQ0FBSixFQUFNO0FBQUMsaUJBQUksQ0FBQyxHQUFDLENBQUMsQ0FBUCxFQUFTLENBQUMsQ0FBQyxNQUFGLEdBQVMsQ0FBbEIsR0FBcUI7QUFBQyxrQkFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUYsRUFBTjtBQUFnQixjQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBRixDQUFhLENBQWIsRUFBZSxDQUFmLEVBQWlCLENBQWpCLENBQUYsRUFBc0IsQ0FBQyxDQUFDLE9BQUYsQ0FBVyxVQUFTLENBQVQsRUFBVztBQUFDLHVCQUFPLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUFQO0FBQWlCLGVBQXhDLENBQXRCO0FBQWlFOztBQUFBLFlBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBSDtBQUFLO0FBQUMsU0FBL0gsRUFBVjtBQUE0SSxPQUF0SztBQUF1SyxNQUFBLFdBQVcsRUFBQyx1QkFBVTtBQUFDLGVBQU8sQ0FBUDtBQUFTLE9BQXZNO0FBQXdNLE1BQUEsU0FBUyxFQUFDLG1CQUFTLENBQVQsRUFBVyxDQUFYLEVBQWEsQ0FBYixFQUFlO0FBQUMsWUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFILEVBQUssQ0FBTCxDQUFQO0FBQWUsZUFBTyxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sR0FBUyxDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBVCxFQUFtQjtBQUFDLFVBQUEsV0FBVyxFQUFDLHVCQUFVO0FBQUMsWUFBQSxDQUFDLFVBQUQsQ0FBUyxDQUFUO0FBQVk7QUFBcEMsU0FBMUI7QUFBZ0U7QUFBalQsS0FBRixFQUFxVCxFQUFDLENBQUM7QUFBQyxNQUFBLFNBQVMsRUFBQyxxQkFBVTtBQUFDLGVBQU07QUFBQyxVQUFBLFdBQVcsRUFBQyx1QkFBVSxDQUFFO0FBQXpCLFNBQU47QUFBaUMsT0FBdkQ7QUFBd0QsTUFBQSxFQUFFLEVBQUMsV0FBM0Q7QUFBdUUsTUFBQSxXQUFXLEVBQUMsdUJBQVUsQ0FBRTtBQUEvRixLQUFELEVBQWtHLENBQWxHLENBQXhULENBQTVDO0FBQUEsUUFBMGMsQ0FBQyxHQUFDO0FBQUMsTUFBQSxNQUFNLEVBQUMsQ0FBQyxDQUFDLE1BQVY7QUFBaUIsTUFBQSxJQUFJLEVBQUMsQ0FBdEI7QUFBd0IsTUFBQSxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUYsSUFBTSxXQUFqQztBQUE2QyxNQUFBLFNBQVMsRUFBQztBQUF2RCxLQUE1YztBQUFzZ0IsV0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUYsR0FBUSxDQUFDLENBQUMsS0FBRixDQUFRLENBQVIsQ0FBUixHQUFtQixDQUFyQixFQUF1QixDQUE5QjtBQUFnQzs7QUFBQSxNQUFJLEVBQUo7QUFBQSxNQUFPLEVBQUUsR0FBQztBQUFDLElBQUEsSUFBSSxFQUFDLENBQUMsQ0FBUDtBQUFTLElBQUEsV0FBVyxFQUFDLENBQUM7QUFBdEIsR0FBVjtBQUFtQyxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsaUJBQUYsS0FBc0IsQ0FBQyxDQUFDLGlCQUFGLEdBQW9CLEVBQTFDLENBQUosRUFBbUQsRUFBRSxDQUFDLFVBQUgsR0FBYyxDQUFqRSxJQUFvRSxZQUFwRSxFQUFpRixFQUFFLENBQUMsRUFBRSxDQUFDLE9BQUgsR0FBVyxDQUFaLENBQUYsR0FBaUIsU0FBbEcsRUFBNEcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFILEdBQVcsQ0FBWixDQUFGLEdBQWlCLFNBQTdIOztBQUF1SSxNQUFJLEVBQUUsR0FBQyxZQUFVO0FBQUMsYUFBUyxDQUFULENBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLFVBQUksQ0FBQyxHQUFDLElBQU47QUFBVyxXQUFLLENBQUwsS0FBUyxDQUFULEtBQWEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxjQUFqQixHQUFpQyxLQUFLLE9BQUwsR0FBYSxDQUE5QyxFQUFnRCxLQUFLLFNBQUwsR0FBZSxJQUFJLEVBQUosRUFBL0QsRUFBc0UsS0FBSyxnQkFBTCxHQUFzQixFQUE1RixFQUErRixLQUFLLFNBQUwsR0FBZSxJQUFJLEdBQUosRUFBOUcsRUFBc0gsS0FBSyxnQkFBTCxHQUFzQixJQUFJLEdBQUosRUFBNUksRUFBb0osS0FBSyxhQUFMLEdBQW1CLElBQUksR0FBSixFQUF2SyxFQUErSyxLQUFLLGFBQUwsR0FBbUIsSUFBSSxHQUFKLEVBQWxNLEVBQTBNLEtBQUssY0FBTCxHQUFvQixJQUFJLEdBQUosRUFBOU4sRUFBc08sS0FBSyxhQUFMLEdBQW1CLElBQUksR0FBSixFQUF6UCxFQUFpUSxLQUFLLFdBQUwsR0FBaUIsQ0FBQyxDQUFuUixFQUFxUixLQUFLLE1BQUwsR0FBWSxDQUFDLENBQUMsaUJBQUYsQ0FBb0IsVUFBclQsRUFBZ1UsS0FBSyxRQUFMLEdBQWMsSUFBSSxHQUFKLEVBQTlVLEVBQXNWLEtBQUssU0FBTCxHQUFlLElBQUksR0FBSixFQUFyVyxFQUE2VyxLQUFLLElBQUwsR0FBVSxLQUFLLEtBQTVYLEVBQWtZLEtBQUssSUFBTCxHQUFVLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFlBQUcsQ0FBQyxDQUFDLENBQUQsQ0FBSixFQUFRLE9BQU8sQ0FBQyxDQUFDLEtBQUYsQ0FBUSxDQUFSLEdBQVcsQ0FBQyxDQUFDLEtBQXBCO0FBQTBCLFlBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBRixDQUFQO0FBQWdCLFlBQUcsQ0FBQyxDQUFDLE1BQUYsS0FBVyxDQUFDLENBQUMsaUJBQUYsQ0FBb0IsT0FBbEMsRUFBMEMsT0FBTyxDQUFDLENBQUMsS0FBVDtBQUFlLFlBQUcsQ0FBQyxDQUFDLE1BQUYsS0FBVyxDQUFDLENBQUMsaUJBQUYsQ0FBb0IsT0FBL0IsSUFBd0MsQ0FBQyxDQUFDLENBQUMsT0FBRixDQUFVLFdBQXRELEVBQWtFLE1BQU0sSUFBSSxLQUFKLENBQVUsVUFBVSxNQUFWLENBQWlCLENBQUMsQ0FBQyxJQUFuQixFQUF3Qix1Q0FBeEIsRUFBaUUsTUFBakUsQ0FBd0UsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxFQUFsRixFQUFxRixpSEFBckYsRUFBd00sTUFBeE0sQ0FBK00sSUFBSSxDQUFDLFNBQUwsQ0FBZSxDQUFDLENBQUMsSUFBakIsQ0FBL00sQ0FBVixDQUFOO0FBQXdQLGVBQU8sQ0FBQyxDQUFDLFNBQUYsQ0FBWSxRQUFaLENBQXNCLFlBQVU7QUFBQyxVQUFBLENBQUMsQ0FBQyxPQUFGLENBQVUsQ0FBVjtBQUFhLGNBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFGLENBQVksQ0FBWixDQUFOO0FBQXFCLFVBQUEsQ0FBQyxDQUFDLE1BQUYsQ0FBUyxDQUFULEVBQVcsQ0FBWDtBQUFjLFNBQWpGLEdBQW9GLENBQUMsQ0FBQyxNQUE3RjtBQUFvRyxPQUFuNkIsRUFBbzZCLEtBQUssTUFBTCxHQUFZLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFlBQUksQ0FBSjtBQUFBLFlBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFGLEtBQVcsQ0FBQyxLQUFHLENBQUMsQ0FBQyxjQUFGLENBQWlCLE1BQXJCLElBQTZCLENBQUMsQ0FBQyxNQUFGLENBQVMsRUFBVCxLQUFjLENBQXRELENBQVI7QUFBQSxZQUFpRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFILEdBQVUsQ0FBQyxDQUFDLENBQUQsQ0FBRCxHQUFLLENBQUMsQ0FBQyxRQUFGLENBQVcsR0FBWCxDQUFlLENBQWYsS0FBbUIsRUFBRSxDQUFDLENBQUQsQ0FBMUIsR0FBOEIsQ0FBQyxDQUFDLEdBQUMsQ0FBSCxLQUFPLGNBQVksT0FBTyxDQUFDLENBQUMsSUFBNUIsR0FBaUMsQ0FBakMsR0FBbUMsS0FBSyxDQUFwSjtBQUFzSixZQUFHLENBQUgsRUFBSyxhQUFZLENBQVosR0FBYyxDQUFDLENBQUMsSUFBRixDQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLENBQUosQ0FBRixFQUFTO0FBQUMsVUFBQSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUYsS0FBUyxFQUFULEdBQVksR0FBRyxNQUFILENBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFILENBQVosQ0FBWixHQUFnQyxDQUFDLENBQUMsSUFBeEM7QUFBNkMsVUFBQSxNQUFNLEVBQUMsQ0FBQyxDQUFDO0FBQXRELFNBQVQsQ0FBUixDQUFkLEdBQWtHLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBQyxDQUFDLElBQVQsQ0FBbEcsQ0FBTCxLQUEySCxJQUFHLENBQUMsQ0FBSixFQUFNLE1BQU0sSUFBSSxLQUFKLENBQVUsa0NBQWtDLE1BQWxDLENBQXlDLENBQXpDLEVBQTJDLGtCQUEzQyxFQUErRCxNQUEvRCxDQUFzRSxDQUFDLENBQUMsRUFBeEUsRUFBMkUsSUFBM0UsQ0FBVixDQUFOO0FBQWtHLE9BQXZ6Qzs7QUFBd3pDLFVBQUksQ0FBQyxHQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLENBQUMsQ0FBQyxjQUFOLENBQUYsRUFBd0IsQ0FBeEIsQ0FBUDtBQUFBLFVBQWtDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBdEM7QUFBQSxVQUE0QyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQWhEO0FBQUEsVUFBdUQsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUEzRDtBQUFBLFVBQWtFLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBdEU7QUFBQSxVQUF5RSxDQUFDLEdBQUMsS0FBSyxDQUFMLEtBQVMsQ0FBVCxHQUFXLENBQVgsR0FBYSxDQUFDLENBQUMsRUFBMUY7O0FBQTZGLFdBQUssRUFBTCxHQUFRLENBQVIsRUFBVSxLQUFLLE1BQUwsR0FBWSxDQUF0QixFQUF3QixLQUFLLEtBQUwsR0FBVyxDQUFuQyxFQUFxQyxLQUFLLE1BQUwsR0FBWSxDQUFqRCxFQUFtRCxLQUFLLE9BQUwsR0FBYSxDQUFoRSxFQUFrRSxLQUFLLFNBQUwsR0FBZSxJQUFJLEVBQUosQ0FBTztBQUFDLFFBQUEsV0FBVyxFQUFDLEtBQUssT0FBTCxDQUFhO0FBQTFCLE9BQVAsQ0FBakYsRUFBZ0ksS0FBSyxTQUFMLEdBQWUsRUFBRSxFQUFqSjtBQUFvSjs7QUFBQSxXQUFPLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQUMsQ0FBQyxTQUF4QixFQUFrQyxjQUFsQyxFQUFpRDtBQUFDLE1BQUEsR0FBRyxFQUFDLGVBQVU7QUFBQyxZQUFJLENBQUMsR0FBQyxJQUFOO0FBQVcsZUFBTyxLQUFLLGFBQUwsR0FBbUIsS0FBSyxhQUF4QixHQUFzQyxFQUFFLENBQUMsSUFBRCxFQUFPLFlBQVU7QUFBQyxpQkFBTyxDQUFDLENBQUMsYUFBRixHQUFnQixDQUFDLENBQUMsT0FBRixDQUFVLFlBQTFCLEVBQXVDLENBQUMsQ0FBQyxhQUFoRDtBQUE4RCxTQUFoRixDQUEvQztBQUFrSSxPQUE3SjtBQUE4SixNQUFBLFVBQVUsRUFBQyxDQUFDLENBQTFLO0FBQTRLLE1BQUEsWUFBWSxFQUFDLENBQUM7QUFBMUwsS0FBakQsR0FBK08sTUFBTSxDQUFDLGNBQVAsQ0FBc0IsQ0FBQyxDQUFDLFNBQXhCLEVBQWtDLE9BQWxDLEVBQTBDO0FBQUMsTUFBQSxHQUFHLEVBQUMsZUFBVTtBQUFDLGVBQU8sS0FBSyxNQUFaO0FBQW1CLE9BQW5DO0FBQW9DLE1BQUEsVUFBVSxFQUFDLENBQUMsQ0FBaEQ7QUFBa0QsTUFBQSxZQUFZLEVBQUMsQ0FBQztBQUFoRSxLQUExQyxDQUEvTyxFQUE2VixDQUFDLENBQUMsU0FBRixDQUFZLE9BQVosR0FBb0IsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsVUFBSSxDQUFKLEVBQU0sQ0FBTjs7QUFBUSxVQUFHO0FBQUMsYUFBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUgsQ0FBUCxFQUFtQixDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBekIsRUFBa0MsQ0FBQyxDQUFDLENBQUMsSUFBckMsRUFBMEMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQTVDLEVBQXFEO0FBQUMsY0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQVI7QUFBYyxlQUFLLElBQUwsQ0FBVSxDQUFWLEVBQVksQ0FBWixFQUFjLENBQWQ7QUFBaUI7QUFBQyxPQUExRixDQUEwRixPQUFNLENBQU4sRUFBUTtBQUFDLFFBQUEsQ0FBQyxHQUFDO0FBQUMsVUFBQSxLQUFLLEVBQUM7QUFBUCxTQUFGO0FBQVksT0FBL0csU0FBc0g7QUFBQyxZQUFHO0FBQUMsVUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxTQUF4QyxTQUErQztBQUFDLGNBQUcsQ0FBSCxFQUFLLE1BQU0sQ0FBQyxDQUFDLEtBQVI7QUFBYztBQUFDO0FBQUMsS0FBbmtCLEVBQW9rQixDQUFDLENBQUMsU0FBRixDQUFZLE1BQVosR0FBbUIsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsVUFBSSxDQUFKO0FBQUEsVUFBTSxDQUFOO0FBQUEsVUFBUSxDQUFSO0FBQUEsVUFBVSxDQUFWO0FBQUEsVUFBWSxDQUFaO0FBQUEsVUFBYyxDQUFkO0FBQUEsVUFBZ0IsQ0FBaEI7QUFBQSxVQUFrQixDQUFsQjtBQUFBLFVBQW9CLENBQUMsR0FBQyxJQUF0QjtBQUEyQixVQUFHLENBQUMsQ0FBQyxVQUFGLEdBQWEsS0FBSyxTQUFsQixFQUE0QixLQUFLLE1BQUwsR0FBWSxDQUF4QyxFQUEwQyxLQUFLLE9BQUwsQ0FBYSxPQUFiLElBQXNCLEtBQUssT0FBTCxDQUFhLEtBQUssS0FBbEIsQ0FBaEUsRUFBeUYsS0FBSyxRQUFMLENBQWMsT0FBZCxDQUF1QixVQUFTLENBQVQsRUFBVztBQUFDLFFBQUEsQ0FBQyxDQUFDLEtBQUYsQ0FBUSxRQUFSLENBQWlCLENBQUMsQ0FBQyxFQUFuQixJQUF1QixDQUF2QjtBQUF5QixPQUE1RCxDQUF6RixFQUF3SixLQUFLLFFBQUwsSUFBZSxLQUFLLFFBQUwsQ0FBYyxJQUFkLENBQW1CLENBQUMsQ0FBQyxJQUFyQixFQUEwQixDQUExQixDQUF2SyxFQUFvTSxDQUFDLENBQUMsS0FBek0sRUFBK00sSUFBRztBQUFDLGFBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssY0FBTixDQUFQLEVBQTZCLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFuQyxFQUE0QyxDQUFDLENBQUMsQ0FBQyxJQUEvQyxFQUFvRCxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBdEQsRUFBK0Q7QUFBQyxXQUFDLEdBQUUsQ0FBQyxDQUFDLEtBQUwsRUFBWSxDQUFDLENBQUMsS0FBZDtBQUFxQjtBQUFDLE9BQTFGLENBQTBGLE9BQU0sQ0FBTixFQUFRO0FBQUMsUUFBQSxDQUFDLEdBQUM7QUFBQyxVQUFBLEtBQUssRUFBQztBQUFQLFNBQUY7QUFBWSxPQUEvRyxTQUFzSDtBQUFDLFlBQUc7QUFBQyxVQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLFNBQXhDLFNBQStDO0FBQUMsY0FBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7O0FBQUEsVUFBRztBQUFDLGFBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssU0FBTixDQUFQLEVBQXdCLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUE5QixFQUF1QyxDQUFDLENBQUMsQ0FBQyxJQUExQyxFQUErQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBakQsRUFBMEQ7QUFBQyxXQUFDLEdBQUUsQ0FBQyxDQUFDLEtBQUwsRUFBWSxDQUFaLEVBQWMsQ0FBQyxDQUFDLEtBQWhCO0FBQXVCO0FBQUMsT0FBdkYsQ0FBdUYsT0FBTSxDQUFOLEVBQVE7QUFBQyxRQUFBLENBQUMsR0FBQztBQUFDLFVBQUEsS0FBSyxFQUFDO0FBQVAsU0FBRjtBQUFZLE9BQTVHLFNBQW1IO0FBQUMsWUFBRztBQUFDLFVBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsU0FBeEMsU0FBK0M7QUFBQyxjQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxVQUFHO0FBQUMsYUFBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxnQkFBTixDQUFQLEVBQStCLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFyQyxFQUE4QyxDQUFDLENBQUMsQ0FBQyxJQUFqRCxFQUFzRCxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBeEQsRUFBaUU7QUFBQyxXQUFDLEdBQUUsQ0FBQyxDQUFDLEtBQUwsRUFBWSxLQUFLLEtBQUwsQ0FBVyxPQUF2QixFQUErQixLQUFLLEtBQUwsQ0FBVyxPQUFYLEdBQW1CLEtBQUssS0FBTCxDQUFXLE9BQVgsQ0FBbUIsT0FBdEMsR0FBOEMsS0FBSyxDQUFsRjtBQUFxRjtBQUFDLE9BQTVKLENBQTRKLE9BQU0sQ0FBTixFQUFRO0FBQUMsUUFBQSxDQUFDLEdBQUM7QUFBQyxVQUFBLEtBQUssRUFBQztBQUFQLFNBQUY7QUFBWSxPQUFqTCxTQUF3TDtBQUFDLFlBQUc7QUFBQyxVQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLFNBQXhDLFNBQStDO0FBQUMsY0FBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7O0FBQUEsVUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFGLElBQWlCLEVBQWxCLEVBQXFCLEtBQUssT0FBMUIsQ0FBUDs7QUFBMEMsVUFBRyxLQUFLLEtBQUwsQ0FBVyxhQUFYLElBQTBCLENBQTdCLEVBQStCO0FBQUMsWUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLGFBQUYsQ0FBZ0IsSUFBaEIsQ0FBc0IsVUFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTSxZQUFVLENBQUMsQ0FBQyxJQUFaLElBQWtCLENBQUMsQ0FBQyxNQUFGLEtBQVcsQ0FBQyxDQUFDLE9BQXJDO0FBQTZDLFNBQS9FLENBQU47QUFBQSxZQUF3RixDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxRQUFMLEdBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFILEVBQVksQ0FBQyxDQUFDLE9BQWQsRUFBc0IsQ0FBdEIsQ0FBZixHQUF3QyxLQUFLLENBQXZJOztBQUF5SSxZQUFHO0FBQUMsZUFBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxhQUFOLENBQVAsRUFBNEIsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQWxDLEVBQTJDLENBQUMsQ0FBQyxDQUFDLElBQTlDLEVBQW1ELENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFyRCxFQUE4RDtBQUFDLGFBQUMsR0FBRSxDQUFDLENBQUMsS0FBTCxFQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQU4sRUFBUyxDQUFULENBQWQ7QUFBMkI7QUFBQyxTQUEvRixDQUErRixPQUFNLENBQU4sRUFBUTtBQUFDLFVBQUEsQ0FBQyxHQUFDO0FBQUMsWUFBQSxLQUFLLEVBQUM7QUFBUCxXQUFGO0FBQVksU0FBcEgsU0FBMkg7QUFBQyxjQUFHO0FBQUMsWUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxXQUF4QyxTQUErQztBQUFDLGdCQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxhQUFLLElBQUw7QUFBWTtBQUFDLEtBQS8xRCxFQUFnMkQsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxZQUFaLEdBQXlCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxLQUFLLFNBQUwsQ0FBZSxHQUFmLENBQW1CLENBQW5CLEdBQXNCLEtBQUssTUFBTCxLQUFjLENBQUMsQ0FBQyxpQkFBRixDQUFvQixPQUFsQyxJQUEyQyxDQUFDLENBQUMsS0FBSyxLQUFOLEVBQVksS0FBSyxLQUFMLENBQVcsS0FBdkIsQ0FBbEUsRUFBZ0csSUFBdkc7QUFBNEcsS0FBai9ELEVBQWsvRCxDQUFDLENBQUMsU0FBRixDQUFZLFNBQVosR0FBc0IsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLFVBQUksQ0FBSjtBQUFBLFVBQU0sQ0FBQyxHQUFDLElBQVI7QUFBYSxVQUFHLENBQUMsQ0FBSixFQUFNLE9BQU07QUFBQyxRQUFBLFdBQVcsRUFBQyx1QkFBVSxDQUFFO0FBQXpCLE9BQU47QUFBaUMsVUFBSSxDQUFDLEdBQUMsQ0FBTjtBQUFRLGFBQU0sY0FBWSxPQUFPLENBQW5CLEdBQXFCLENBQUMsR0FBQyxDQUF2QixJQUEwQixDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsQ0FBTyxJQUFQLENBQVksQ0FBWixDQUFGLEVBQWlCLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBRixDQUFXLElBQVgsQ0FBZ0IsQ0FBaEIsQ0FBN0MsR0FBaUUsS0FBSyxTQUFMLENBQWUsR0FBZixDQUFtQixDQUFuQixDQUFqRSxFQUF1RixLQUFLLE1BQUwsS0FBYyxDQUFDLENBQUMsaUJBQUYsQ0FBb0IsT0FBbEMsSUFBMkMsQ0FBQyxDQUFDLEtBQUssS0FBTixDQUFuSSxFQUFnSixDQUFDLElBQUUsS0FBSyxNQUFMLENBQVksQ0FBWixDQUFuSixFQUFrSztBQUFDLFFBQUEsV0FBVyxFQUFDLHVCQUFVO0FBQUMsVUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLFNBQUYsV0FBbUIsQ0FBbkIsQ0FBSCxFQUF5QixDQUFDLElBQUUsQ0FBQyxDQUFDLGFBQUYsV0FBdUIsQ0FBdkIsQ0FBNUI7QUFBc0Q7QUFBOUUsT0FBeEs7QUFBd1AsS0FBNTBFLEVBQTYwRSxDQUFDLENBQUMsU0FBRixDQUFZLE9BQVosR0FBb0IsVUFBUyxDQUFULEVBQVc7QUFBQyxhQUFPLEtBQUssY0FBTCxDQUFvQixHQUFwQixDQUF3QixDQUF4QixHQUEyQixJQUFsQztBQUF1QyxLQUFwNUUsRUFBcTVFLENBQUMsQ0FBQyxTQUFGLENBQVksTUFBWixHQUFtQixVQUFTLENBQVQsRUFBVztBQUFDLGFBQU8sS0FBSyxhQUFMLENBQW1CLEdBQW5CLENBQXVCLENBQXZCLEdBQTBCLElBQWpDO0FBQXNDLEtBQTE5RSxFQUEyOUUsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxRQUFaLEdBQXFCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxLQUFLLGdCQUFMLENBQXNCLEdBQXRCLENBQTBCLENBQTFCLEdBQTZCLElBQXBDO0FBQXlDLEtBQXJpRixFQUFzaUYsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxNQUFaLEdBQW1CLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxLQUFLLGFBQUwsQ0FBbUIsR0FBbkIsQ0FBdUIsQ0FBdkIsR0FBMEIsSUFBakM7QUFBc0MsS0FBM21GLEVBQTRtRixDQUFDLENBQUMsU0FBRixDQUFZLE1BQVosR0FBbUIsVUFBUyxDQUFULEVBQVc7QUFBQyxhQUFPLEtBQUssYUFBTCxDQUFtQixHQUFuQixDQUF1QixDQUF2QixHQUEwQixJQUFqQztBQUFzQyxLQUFqckYsRUFBa3JGLENBQUMsQ0FBQyxTQUFGLENBQVksR0FBWixHQUFnQixVQUFTLENBQVQsRUFBVztBQUFDLGFBQU8sS0FBSyxTQUFMLFdBQXNCLENBQXRCLEdBQXlCLEtBQUssY0FBTCxXQUEyQixDQUEzQixDQUF6QixFQUF1RCxLQUFLLGFBQUwsV0FBMEIsQ0FBMUIsQ0FBdkQsRUFBb0YsS0FBSyxhQUFMLFdBQTBCLENBQTFCLENBQXBGLEVBQWlILEtBQUssYUFBTCxXQUEwQixDQUExQixDQUFqSCxFQUE4SSxLQUFLLGdCQUFMLFdBQTZCLENBQTdCLENBQTlJLEVBQThLLElBQXJMO0FBQTBMLEtBQXg0RixFQUF5NEYsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxLQUFaLEdBQWtCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsVUFBSSxDQUFDLEdBQUMsSUFBTjtBQUFXLFVBQUcsS0FBSyxNQUFMLEtBQWMsQ0FBQyxDQUFDLGlCQUFGLENBQW9CLE9BQXJDLEVBQTZDLE9BQU8sSUFBUDtBQUFZLE1BQUEsRUFBRSxDQUFDLEtBQUssU0FBTixFQUFnQixJQUFoQixDQUFGLEVBQXdCLEtBQUssV0FBTCxHQUFpQixDQUFDLENBQTFDLEVBQTRDLEtBQUssTUFBTCxHQUFZLENBQUMsQ0FBQyxpQkFBRixDQUFvQixPQUE1RTtBQUFvRixVQUFJLENBQUMsR0FBQyxLQUFLLENBQUwsS0FBUyxDQUFULEdBQVcsS0FBSyxZQUFoQixHQUE2QixFQUFFLENBQUMsSUFBRCxFQUFPLFlBQVU7QUFBQyxlQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFILENBQUYsSUFBUyxXQUFVLENBQW5CLElBQXNCLGFBQVksQ0FBbEMsR0FBb0MsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxZQUFWLENBQXVCLENBQXZCLENBQXBDLEdBQThELENBQUMsQ0FBQyxPQUFGLENBQVUsWUFBVixDQUF1QixFQUFFLENBQUMsSUFBSCxDQUFRLENBQVIsRUFBVSxDQUFDLENBQUMsT0FBRixDQUFVLE9BQXBCLENBQXZCLENBQXBFO0FBQXlILFlBQUksQ0FBSjtBQUFNLE9BQWpKLENBQXJDO0FBQXlMLGFBQU8sS0FBSyxPQUFMLENBQWEsUUFBYixJQUF1QixLQUFLLFNBQUwsRUFBdkIsRUFBd0MsS0FBSyxTQUFMLENBQWUsVUFBZixDQUEyQixZQUFVO0FBQUMsUUFBQSxDQUFDLENBQUMsTUFBRixDQUFTLENBQVQsRUFBVyxFQUFYO0FBQWUsT0FBckQsQ0FBeEMsRUFBZ0csSUFBdkc7QUFBNEcsS0FBcDJHLEVBQXEyRyxDQUFDLENBQUMsU0FBRixDQUFZLElBQVosR0FBaUIsWUFBVTtBQUFDLFVBQUksQ0FBSjtBQUFBLFVBQU0sQ0FBTjtBQUFBLFVBQVEsQ0FBUjtBQUFBLFVBQVUsQ0FBVjtBQUFBLFVBQVksQ0FBWjtBQUFBLFVBQWMsQ0FBZDtBQUFBLFVBQWdCLENBQWhCO0FBQUEsVUFBa0IsQ0FBbEI7QUFBQSxVQUFvQixDQUFwQjtBQUFBLFVBQXNCLENBQXRCO0FBQUEsVUFBd0IsQ0FBQyxHQUFDLElBQTFCOztBQUErQixVQUFHO0FBQUMsYUFBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxTQUFOLENBQVAsRUFBd0IsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQTlCLEVBQXVDLENBQUMsQ0FBQyxDQUFDLElBQTFDLEVBQStDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFqRCxFQUEwRDtBQUFDLGNBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFSO0FBQWMsZUFBSyxTQUFMLFdBQXNCLENBQXRCO0FBQXlCO0FBQUMsT0FBdkcsQ0FBdUcsT0FBTSxDQUFOLEVBQVE7QUFBQyxRQUFBLENBQUMsR0FBQztBQUFDLFVBQUEsS0FBSyxFQUFDO0FBQVAsU0FBRjtBQUFZLE9BQTVILFNBQW1JO0FBQUMsWUFBRztBQUFDLFVBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsU0FBeEMsU0FBK0M7QUFBQyxjQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxVQUFHO0FBQUMsYUFBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxhQUFOLENBQVAsRUFBNEIsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQWxDLEVBQTJDLENBQUMsQ0FBQyxDQUFDLElBQTlDLEVBQW1ELENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFyRCxFQUE4RDtBQUFDLFdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFMLEtBQWMsS0FBSyxhQUFMLFdBQTBCLENBQTFCLENBQWQ7QUFBMkM7QUFBQyxPQUEvRyxDQUErRyxPQUFNLENBQU4sRUFBUTtBQUFDLFFBQUEsQ0FBQyxHQUFDO0FBQUMsVUFBQSxLQUFLLEVBQUM7QUFBUCxTQUFGO0FBQVksT0FBcEksU0FBMkk7QUFBQyxZQUFHO0FBQUMsVUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxTQUF4QyxTQUErQztBQUFDLGNBQUcsQ0FBSCxFQUFLLE1BQU0sQ0FBQyxDQUFDLEtBQVI7QUFBYztBQUFDOztBQUFBLFVBQUc7QUFBQyxhQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLGdCQUFOLENBQVAsRUFBK0IsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQXJDLEVBQThDLENBQUMsQ0FBQyxDQUFDLElBQWpELEVBQXNELENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUF4RCxFQUFpRTtBQUFDLFVBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFKO0FBQVUsZUFBSyxnQkFBTCxXQUE2QixDQUE3QjtBQUFnQztBQUFDLE9BQWpILENBQWlILE9BQU0sQ0FBTixFQUFRO0FBQUMsUUFBQSxDQUFDLEdBQUM7QUFBQyxVQUFBLEtBQUssRUFBQztBQUFQLFNBQUY7QUFBWSxPQUF0SSxTQUE2STtBQUFDLFlBQUc7QUFBQyxVQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLFNBQXhDLFNBQStDO0FBQUMsY0FBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7O0FBQUEsVUFBRztBQUFDLGFBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssYUFBTixDQUFQLEVBQTRCLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFsQyxFQUEyQyxDQUFDLENBQUMsQ0FBQyxJQUE5QyxFQUFtRCxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBckQsRUFBOEQ7QUFBQyxVQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSjtBQUFVLGVBQUssYUFBTCxXQUEwQixDQUExQjtBQUE2QjtBQUFDLE9BQTNHLENBQTJHLE9BQU0sQ0FBTixFQUFRO0FBQUMsUUFBQSxDQUFDLEdBQUM7QUFBQyxVQUFBLEtBQUssRUFBQztBQUFQLFNBQUY7QUFBWSxPQUFoSSxTQUF1STtBQUFDLFlBQUc7QUFBQyxVQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLFNBQXhDLFNBQStDO0FBQUMsY0FBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7O0FBQUEsVUFBRyxDQUFDLEtBQUssV0FBVCxFQUFxQixPQUFPLElBQVA7QUFBWSxXQUFLLEtBQUwsQ0FBVyxhQUFYLENBQXlCLE9BQXpCLENBQWtDLFVBQVMsQ0FBVCxFQUFXO0FBQUMsWUFBSSxDQUFKLEVBQU0sQ0FBTjs7QUFBUSxZQUFHO0FBQUMsZUFBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQUYsQ0FBYSxJQUFkLENBQVAsRUFBMkIsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQWpDLEVBQTBDLENBQUMsQ0FBQyxDQUFDLElBQTdDLEVBQWtELENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFwRCxFQUE2RDtBQUFDLGdCQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBUjtBQUFjLFlBQUEsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLEVBQVMsQ0FBQyxDQUFDLEtBQVg7QUFBa0I7QUFBQyxTQUFuRyxDQUFtRyxPQUFNLENBQU4sRUFBUTtBQUFDLFVBQUEsQ0FBQyxHQUFDO0FBQUMsWUFBQSxLQUFLLEVBQUM7QUFBUCxXQUFGO0FBQVksU0FBeEgsU0FBK0g7QUFBQyxjQUFHO0FBQUMsWUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxXQUF4QyxTQUErQztBQUFDLGdCQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQztBQUFDLE9BQTNQLEdBQThQLEtBQUssUUFBTCxDQUFjLE9BQWQsQ0FBdUIsVUFBUyxDQUFULEVBQVc7QUFBQyxRQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSCxDQUFELElBQVcsQ0FBQyxDQUFDLElBQUYsRUFBWDtBQUFvQixPQUF2RCxDQUE5UDs7QUFBd1QsVUFBRztBQUFDLGFBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLGdCQUFOLENBQUYsQ0FBUCxFQUFrQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBeEMsRUFBaUQsQ0FBQyxDQUFDLENBQUMsSUFBcEQsRUFBeUQsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQTNELEVBQW9FO0FBQUMsY0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQVI7QUFBYyxlQUFLLEtBQUwsQ0FBVyxZQUFYLENBQXdCLEtBQUssZ0JBQUwsQ0FBc0IsQ0FBdEIsQ0FBeEI7QUFBa0Q7QUFBQyxPQUExSSxDQUEwSSxPQUFNLENBQU4sRUFBUTtBQUFDLFFBQUEsQ0FBQyxHQUFDO0FBQUMsVUFBQSxLQUFLLEVBQUM7QUFBUCxTQUFGO0FBQVksT0FBL0osU0FBc0s7QUFBQyxZQUFHO0FBQUMsVUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxTQUF4QyxTQUErQztBQUFDLGNBQUcsQ0FBSCxFQUFLLE1BQU0sQ0FBQyxDQUFDLEtBQVI7QUFBYztBQUFDOztBQUFBLGFBQU8sS0FBSyxTQUFMLENBQWUsS0FBZixJQUF1QixLQUFLLFdBQUwsR0FBaUIsQ0FBQyxDQUF6QyxFQUEyQyxLQUFLLE1BQUwsR0FBWSxDQUFDLENBQUMsaUJBQUYsQ0FBb0IsT0FBM0UsRUFBbUYsRUFBRSxDQUFDLEtBQUssU0FBTixDQUFyRixFQUFzRyxJQUE3RztBQUFrSCxLQUE1NEosRUFBNjRKLENBQUMsQ0FBQyxTQUFGLENBQVksS0FBWixHQUFrQixVQUFTLENBQVQsRUFBVztBQUFDLFVBQUksQ0FBQyxHQUFDLElBQU47QUFBVyxVQUFHLEtBQUssTUFBTCxLQUFjLENBQUMsQ0FBQyxpQkFBRixDQUFvQixVQUFsQyxJQUE4QyxLQUFLLE9BQUwsQ0FBYSxXQUE5RCxFQUEwRSxDQUExRSxLQUFnRixJQUFHLEtBQUssTUFBTCxLQUFjLENBQUMsQ0FBQyxpQkFBRixDQUFvQixPQUFyQyxFQUE2QyxNQUFNLElBQUksS0FBSixDQUFVLEdBQUcsTUFBSCxDQUFVLENBQUMsQ0FBQyxNQUFaLEVBQW1CLGdEQUFuQixFQUFxRSxNQUFyRSxDQUE0RSxLQUFLLE9BQUwsQ0FBYSxFQUF6RixFQUE0Rix3R0FBNUYsQ0FBVixDQUFOO0FBQXVOLFdBQUssU0FBTCxDQUFlLFFBQWYsQ0FBeUIsWUFBVTtBQUFDLFlBQUksQ0FBSjtBQUFBLFlBQU0sQ0FBTjtBQUFBLFlBQVEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFaO0FBQUEsWUFBa0IsQ0FBQyxHQUFDLENBQUMsQ0FBckI7QUFBQSxZQUF1QixDQUFDLEdBQUMsRUFBekI7QUFBQSxZQUE0QixDQUFDLEdBQUMsU0FBRixDQUFFLENBQVMsQ0FBVCxFQUFXO0FBQUMsY0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBUDtBQUFXLFVBQUEsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxDQUFWLEdBQWEsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFELEVBQUksWUFBVTtBQUFDLG1CQUFPLENBQUMsQ0FBQyxPQUFGLENBQVUsVUFBVixDQUFxQixDQUFyQixFQUF1QixDQUF2QixDQUFQO0FBQWlDLFdBQWhELENBQWpCLEVBQW9FLENBQUMsQ0FBQyxJQUFGLENBQU8sS0FBUCxDQUFhLENBQWIsRUFBZSxDQUFDLENBQUMsRUFBRCxFQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBRixDQUFVLEdBQVYsQ0FBZSxVQUFTLENBQVQsRUFBVztBQUFDLG1CQUFPLENBQUMsR0FBQyxDQUFGLEVBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUgsRUFBTSxJQUFaLEVBQWlCLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLENBQUosQ0FBRixFQUFTO0FBQUMsY0FBQSxJQUFJLEVBQUMsS0FBSyxDQUFMLEtBQVMsQ0FBVCxHQUFXLFlBQVU7QUFBQyx1QkFBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUgsRUFBVyxDQUFDLENBQUMsS0FBYixFQUFtQjtBQUFDLGtCQUFBLE1BQU0sRUFBQyxDQUFSO0FBQVUsa0JBQUEsS0FBSyxFQUFDLENBQWhCO0FBQWtCLGtCQUFBLE1BQU0sRUFBQyxDQUFDLENBQUM7QUFBM0IsaUJBQW5CLENBQVI7QUFBK0QsZUFBckYsR0FBc0YsS0FBSztBQUFqRyxhQUFULENBQXpCO0FBQXVJLGdCQUFJLENBQUosRUFBTSxDQUFOLEVBQVEsQ0FBUjtBQUFVLFdBQTVLLENBQUQsQ0FBTCxFQUFzTCxDQUFDLENBQXZMLENBQWhCLENBQXBFLEVBQStRLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUF4UjtBQUFnUyxTQUFyVjs7QUFBc1YsWUFBRztBQUFDLGVBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBUCxFQUFXLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFqQixFQUEwQixDQUFDLENBQUMsQ0FBQyxJQUE3QixFQUFrQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBcEMsRUFBNkM7QUFBQyxZQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSCxDQUFEO0FBQVc7QUFBQyxTQUE5RCxDQUE4RCxPQUFNLENBQU4sRUFBUTtBQUFDLFVBQUEsQ0FBQyxHQUFDO0FBQUMsWUFBQSxLQUFLLEVBQUM7QUFBUCxXQUFGO0FBQVksU0FBbkYsU0FBMEY7QUFBQyxjQUFHO0FBQUMsWUFBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBTixLQUFhLENBQUMsR0FBQyxDQUFDLFVBQWhCLEtBQTBCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUCxDQUExQjtBQUFvQyxXQUF4QyxTQUErQztBQUFDLGdCQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxRQUFBLENBQUMsQ0FBQyxPQUFGLEdBQVUsQ0FBVixFQUFZLENBQUMsQ0FBQyxPQUFGLEdBQVUsQ0FBdEIsRUFBd0IsQ0FBQyxDQUFDLE1BQUYsQ0FBUyxDQUFULEVBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBRixHQUFTLENBQVYsQ0FBRixDQUFaLENBQXhCO0FBQXFELE9BQTlrQjtBQUFpbEIsS0FBMzFMLEVBQTQxTCxDQUFDLENBQUMsU0FBRixDQUFZLE1BQVosR0FBbUIsVUFBUyxDQUFULEVBQVc7QUFBQyxhQUFPLEtBQUssSUFBTCxDQUFVLElBQVYsQ0FBZSxJQUFmLEVBQW9CLENBQXBCLENBQVA7QUFBOEIsS0FBejVMLEVBQTA1TCxDQUFDLENBQUMsU0FBRixDQUFZLFNBQVosR0FBc0IsVUFBUyxDQUFULEVBQVc7QUFBQyxVQUFJLENBQUMsR0FBQyxJQUFOO0FBQUEsVUFBVyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBZDtBQUFrQixVQUFHLE1BQUksQ0FBQyxDQUFDLElBQUYsQ0FBTyxPQUFQLENBQWUsRUFBZixDQUFKLElBQXdCLENBQUMsS0FBSyxLQUFMLENBQVcsVUFBWCxDQUFzQixJQUF0QixDQUE0QixVQUFTLENBQVQsRUFBVztBQUFDLGVBQU8sTUFBSSxDQUFDLENBQUMsT0FBRixDQUFVLEVBQVYsQ0FBWDtBQUF5QixPQUFqRSxDQUE1QixFQUFnRyxNQUFNLENBQUMsQ0FBQyxJQUFGLENBQU8sSUFBYjtBQUFrQixhQUFPLEVBQUUsQ0FBQyxJQUFELEVBQU8sWUFBVTtBQUFDLGVBQU8sQ0FBQyxDQUFDLE9BQUYsQ0FBVSxVQUFWLENBQXFCLENBQUMsQ0FBQyxLQUF2QixFQUE2QixDQUE3QixDQUFQO0FBQXVDLE9BQXpELENBQVQ7QUFBcUUsS0FBcm9NLEVBQXNvTSxDQUFDLENBQUMsU0FBRixDQUFZLE9BQVosR0FBb0IsVUFBUyxDQUFULEVBQVc7QUFBQyxVQUFJLENBQUosRUFBTSxDQUFOOztBQUFRLFVBQUc7QUFBQyxhQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLFNBQU4sQ0FBUCxFQUF3QixDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUYsRUFBOUIsRUFBdUMsQ0FBQyxDQUFDLENBQUMsSUFBMUMsRUFBK0MsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQWpELEVBQTBEO0FBQUMsY0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQVI7QUFBQSxjQUFjLENBQUMsR0FBQyxLQUFLLFFBQUwsQ0FBYyxHQUFkLENBQWtCLENBQWxCLENBQWhCO0FBQXFDLGNBQUcsQ0FBQyxDQUFKLEVBQU0sTUFBTSxJQUFJLEtBQUosQ0FBVSw0QkFBNEIsTUFBNUIsQ0FBbUMsQ0FBbkMsRUFBcUMsc0JBQXJDLEVBQTZELE1BQTdELENBQW9FLEtBQUssRUFBekUsRUFBNEUsMEJBQTVFLEVBQXdHLE1BQXhHLENBQStHLENBQS9HLEVBQWlILElBQWpILENBQVYsQ0FBTjtBQUF3SSxVQUFBLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBUDtBQUFVO0FBQUMsT0FBN1AsQ0FBNlAsT0FBTSxDQUFOLEVBQVE7QUFBQyxRQUFBLENBQUMsR0FBQztBQUFDLFVBQUEsS0FBSyxFQUFDO0FBQVAsU0FBRjtBQUFZLE9BQWxSLFNBQXlSO0FBQUMsWUFBRztBQUFDLFVBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsU0FBeEMsU0FBK0M7QUFBQyxjQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQztBQUFDLEtBQTdnTixFQUE4Z04sQ0FBQyxDQUFDLFNBQUYsQ0FBWSxLQUFaLEdBQWtCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsVUFBSSxDQUFDLEdBQUMsSUFBTjtBQUFXLFdBQUssZ0JBQUwsQ0FBc0IsQ0FBQyxDQUFDLEVBQXhCLElBQTRCLEtBQUssS0FBTCxDQUFXLFVBQVgsQ0FBdUIsWUFBVTtBQUFDLFFBQUEsQ0FBQyxDQUFDLEVBQUYsR0FBSyxDQUFDLENBQUMsTUFBRixDQUFTLENBQUMsQ0FBQyxNQUFYLEVBQWtCLENBQUMsQ0FBQyxFQUFwQixDQUFMLEdBQTZCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBQyxDQUFDLE1BQVQsQ0FBN0I7QUFBOEMsT0FBaEYsRUFBa0YsQ0FBQyxDQUFDLEtBQXBGLENBQTVCO0FBQXVILEtBQTlxTixFQUErcU4sQ0FBQyxDQUFDLFNBQUYsQ0FBWSxNQUFaLEdBQW1CLFVBQVMsQ0FBVCxFQUFXO0FBQUMsV0FBSyxLQUFMLENBQVcsWUFBWCxDQUF3QixLQUFLLGdCQUFMLENBQXNCLENBQXRCLENBQXhCLEdBQWtELE9BQU8sS0FBSyxnQkFBTCxDQUFzQixDQUF0QixDQUF6RDtBQUFrRixLQUFoeU4sRUFBaXlOLENBQUMsQ0FBQyxTQUFGLENBQVksSUFBWixHQUFpQixVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWEsQ0FBYixFQUFlO0FBQUMsV0FBSyxDQUFMLEtBQVMsQ0FBVCxLQUFhLENBQUMsR0FBQyxLQUFLLE9BQUwsQ0FBYSxPQUFiLENBQXFCLE9BQXBDO0FBQTZDLFVBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFSO0FBQUEsVUFBZ0IsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFwQjtBQUFBLFVBQTJCLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixJQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSCxFQUFRLENBQVIsQ0FBdkM7QUFBQSxVQUFrRCxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBRCxHQUFLLENBQUwsR0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUgsR0FBUSxDQUFDLENBQUMsSUFBdEU7QUFBMkUsVUFBRyxDQUFILEVBQUssSUFBRztBQUFDLGVBQU8sQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFDLENBQUMsSUFBTCxFQUFVO0FBQUMsVUFBQSxNQUFNLEVBQUMsQ0FBUjtBQUFVLFVBQUEsS0FBSyxFQUFDLEtBQUssS0FBckI7QUFBMkIsVUFBQSxNQUFNLEVBQUM7QUFBbEMsU0FBVixDQUFSO0FBQXdELE9BQTVELENBQTRELE9BQU0sQ0FBTixFQUFRO0FBQUMsY0FBTSxLQUFLLE1BQUwsSUFBYSxLQUFLLE1BQUwsQ0FBWSxJQUFaLENBQWlCO0FBQUMsVUFBQSxJQUFJLEVBQUMsY0FBTjtBQUFxQixVQUFBLElBQUksRUFBQztBQUExQixTQUFqQixDQUFiLEVBQTRELENBQWxFO0FBQW9FOztBQUFBLGNBQU8sQ0FBQyxDQUFDLElBQVQ7QUFBZSxhQUFLLENBQUw7QUFBTyxjQUFJLENBQUMsR0FBQyxDQUFOO0FBQVEsY0FBRyxZQUFVLE9BQU8sQ0FBQyxDQUFDLEtBQXRCLEVBQTRCLE9BQU8sS0FBSyxLQUFLLEtBQUwsQ0FBVyxDQUFYLENBQVo7QUFBMEIsVUFBQSxDQUFDLENBQUMsRUFBRixHQUFLLEtBQUssTUFBTCxDQUFZLENBQUMsQ0FBQyxNQUFkLEVBQXFCLENBQUMsQ0FBQyxFQUF2QixDQUFMLEdBQWdDLEtBQUssSUFBTCxDQUFVLENBQUMsQ0FBQyxNQUFaLENBQWhDO0FBQW9EOztBQUFNLGFBQUssQ0FBTDtBQUFPLGVBQUssTUFBTCxDQUFZLENBQUMsQ0FBQyxNQUFkO0FBQXNCOztBQUFNLGFBQUssQ0FBTDtBQUFPLGNBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFSO0FBQWlCLGNBQUcsQ0FBQyxLQUFLLEtBQUwsQ0FBVyxVQUFYLENBQXNCLENBQUMsQ0FBQyxFQUFGLElBQU0sQ0FBQyxDQUFDLElBQTlCLENBQUosRUFBd0M7O0FBQU0sY0FBRyxDQUFDLENBQUMsSUFBRixLQUFTLENBQUMsQ0FBQyxXQUFGLENBQWMsTUFBMUIsRUFBaUM7QUFBQyxnQkFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFILENBQVA7QUFBQSxnQkFBZSxDQUFDLEdBQUMsS0FBSyxPQUFMLENBQWEsT0FBYixDQUFxQixRQUFyQixHQUE4QixLQUFLLE9BQUwsQ0FBYSxPQUFiLENBQXFCLFFBQXJCLENBQThCLENBQUMsQ0FBQyxJQUFoQyxDQUE5QixHQUFvRSxLQUFLLENBQTFGO0FBQUEsZ0JBQTRGLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBaEc7QUFBQSxnQkFBbUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUF2RztBQUFBLGdCQUE0RyxDQUFDLEdBQUMsaUJBQWdCLENBQWhCLEdBQWtCLENBQUMsQ0FBQyxXQUFwQixHQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQWxKO0FBQTBKLGdCQUFHLENBQUMsQ0FBSixFQUFNO0FBQU8sZ0JBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUgsRUFBSyxDQUFMLENBQUYsR0FBVSxLQUFLLENBQXRCO0FBQXdCLGdCQUFHLFlBQVUsT0FBTyxDQUFwQixFQUFzQjtBQUFPLGdCQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFDLENBQUMsSUFBTCxFQUFVO0FBQUMsY0FBQSxJQUFJLEVBQUMsQ0FBTjtBQUFRLGNBQUEsR0FBRyxFQUFDLENBQVo7QUFBYyxjQUFBLElBQUksRUFBQyxDQUFDLENBQUM7QUFBckIsYUFBVixDQUFOLEdBQTRDLENBQWxEO0FBQW9ELGdCQUFHLENBQUMsQ0FBSixFQUFNO0FBQU8sZ0JBQUksQ0FBQyxHQUFDLEtBQUssQ0FBWDtBQUFhLFlBQUEsQ0FBQyxDQUFDLENBQUQsQ0FBRCxLQUFPLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQUYsQ0FBYyxDQUFkLENBQUQsR0FBa0IsQ0FBckIsRUFBdUIsQ0FBQyxHQUFDO0FBQUMsY0FBQSxXQUFXLEVBQUM7QUFBYixhQUFoQyxHQUFpRCxLQUFLLEtBQUwsQ0FBVyxDQUFYLEVBQWEsQ0FBYixFQUFlLENBQWYsQ0FBakQ7QUFBbUUsV0FBL1ksTUFBb1osS0FBSyxhQUFMLENBQW1CLENBQW5COztBQUFzQjs7QUFBTSxhQUFLLENBQUw7QUFBTyxlQUFLLFNBQUwsQ0FBZSxDQUFDLENBQUMsUUFBRixDQUFXLEVBQTFCO0FBQThCOztBQUFNLGFBQUssRUFBTDtBQUFRLGNBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFSO0FBQUEsY0FBYyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQWxCO0FBQXdCLFVBQUEsQ0FBQyxHQUFDLEtBQUssTUFBTCxDQUFZLENBQVosRUFBYyxDQUFkLENBQUQsR0FBa0IsS0FBSyxNQUFMLENBQVksQ0FBWixDQUFuQjtBQUFsdkI7QUFBcXhCLEtBQTcxUCxFQUE4MVAsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxXQUFaLEdBQXdCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsVUFBSSxDQUFKO0FBQU0sV0FBSyxRQUFMLFdBQXFCLENBQXJCLEdBQXdCLEtBQUssU0FBTCxXQUFzQixDQUF0QixDQUF4QixFQUFpRCxVQUFRLENBQUMsR0FBQyxLQUFLLEtBQWYsS0FBdUIsS0FBSyxDQUFMLEtBQVMsQ0FBaEMsSUFBbUMsT0FBTyxDQUFDLENBQUMsUUFBRixDQUFXLENBQVgsQ0FBM0Y7QUFBeUcsS0FBai9QLEVBQWsvUCxDQUFDLENBQUMsU0FBRixDQUFZLFNBQVosR0FBc0IsVUFBUyxDQUFULEVBQVc7QUFBQyxVQUFJLENBQUMsR0FBQyxLQUFLLFFBQUwsQ0FBYyxHQUFkLENBQWtCLENBQWxCLENBQU47QUFBMkIsTUFBQSxDQUFDLEtBQUcsS0FBSyxXQUFMLENBQWlCLENBQWpCLEdBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSCxDQUFELElBQVcsQ0FBQyxDQUFDLElBQUYsRUFBbEMsQ0FBRDtBQUE2QyxLQUE1bFEsRUFBNmxRLENBQUMsQ0FBQyxTQUFGLENBQVksS0FBWixHQUFrQixVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWEsQ0FBYixFQUFlO0FBQUMsVUFBRyxDQUFDLENBQUMsQ0FBRCxDQUFKLEVBQVEsT0FBTyxLQUFLLFlBQUwsQ0FBa0IsT0FBTyxDQUFDLE9BQVIsQ0FBZ0IsQ0FBaEIsQ0FBbEIsRUFBcUMsQ0FBckMsQ0FBUDtBQUErQyxVQUFHLENBQUMsQ0FBQyxDQUFELENBQUosRUFBUSxPQUFPLEtBQUssYUFBTCxDQUFtQixDQUFuQixFQUFxQixDQUFyQixDQUFQO0FBQStCLFVBQUcsVUFBUyxDQUFULEVBQVc7QUFBQyxZQUFHO0FBQUMsaUJBQU0sY0FBWSxPQUFPLENBQUMsQ0FBQyxJQUEzQjtBQUFnQyxTQUFwQyxDQUFvQyxPQUFNLENBQU4sRUFBUTtBQUFDLGlCQUFNLENBQUMsQ0FBUDtBQUFTO0FBQUMsT0FBbkUsQ0FBb0UsQ0FBQyxHQUFDLENBQXRFLEtBQTBFLFFBQU8sQ0FBcEYsRUFBc0YsT0FBTyxLQUFLLFVBQUwsQ0FBZ0IsQ0FBaEIsRUFBa0IsQ0FBbEIsQ0FBUDtBQUE0QixVQUFHLFVBQVMsQ0FBVCxFQUFXO0FBQUMsWUFBRztBQUFDLGlCQUFNLGVBQWMsQ0FBZCxJQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQUgsQ0FBeEI7QUFBc0MsU0FBMUMsQ0FBMEMsT0FBTSxDQUFOLEVBQVE7QUFBQyxpQkFBTSxDQUFDLENBQVA7QUFBUztBQUFDLE9BQXpFLENBQTBFLENBQTFFLENBQUgsRUFBZ0YsT0FBTyxLQUFLLGVBQUwsQ0FBcUIsQ0FBckIsRUFBdUIsQ0FBdkIsQ0FBUDtBQUFpQyxVQUFHLENBQUMsQ0FBQyxDQUFELENBQUosRUFBUSxPQUFPLEtBQUssWUFBTCxDQUFrQixDQUFsQixFQUFvQixFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxDQUFKLENBQUYsRUFBUztBQUFDLFFBQUEsRUFBRSxFQUFDO0FBQUosT0FBVCxDQUFyQixDQUFQO0FBQThDLFVBQUcsVUFBUSxDQUFDLEdBQUMsQ0FBVixLQUFjLFlBQVUsT0FBTyxDQUEvQixJQUFrQyxnQkFBZSxDQUFqRCxJQUFvRCxjQUFZLE9BQU8sQ0FBQyxDQUFDLFVBQTVFLEVBQXVGLE9BQU8sS0FBSyxhQUFMLENBQW1CLENBQW5CLEVBQXFCLENBQXJCLENBQVA7QUFBK0IsWUFBTSxJQUFJLEtBQUosQ0FBVSwyQkFBMkIsTUFBM0IsQ0FBa0MsQ0FBbEMsRUFBb0MsYUFBcEMsRUFBbUQsTUFBbkQsQ0FBMEQsT0FBTyxDQUFqRSxFQUFtRSxJQUFuRSxDQUFWLENBQU47QUFBMEYsVUFBSSxDQUFKLEVBQU0sQ0FBTjtBQUFRLEtBQTlzUixFQUErc1IsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxZQUFaLEdBQXlCLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFVBQUksQ0FBQyxHQUFDLElBQU47QUFBVyxXQUFLLENBQUwsS0FBUyxDQUFULEtBQWEsQ0FBQyxHQUFDLEVBQWY7O0FBQW1CLFVBQUksQ0FBQyxHQUFDLElBQUksQ0FBSixDQUFNLENBQU4sRUFBUSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUQsRUFBSSxLQUFLLE9BQVQsQ0FBRixFQUFvQjtBQUFDLFFBQUEsTUFBTSxFQUFDLElBQVI7QUFBYSxRQUFBLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRixJQUFNLENBQUMsQ0FBQztBQUF4QixPQUFwQixDQUFULENBQU47QUFBQSxVQUFpRSxDQUFDLEdBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFELEVBQUksRUFBSixDQUFGLEVBQVUsQ0FBVixDQUFwRTs7QUFBaUYsTUFBQSxDQUFDLENBQUMsSUFBRixJQUFRLENBQUMsQ0FBQyxZQUFGLENBQWdCLFVBQVMsQ0FBVCxFQUFXO0FBQUMsUUFBQSxDQUFDLENBQUMsSUFBRixDQUFPLEVBQVAsRUFBVTtBQUFDLFVBQUEsS0FBSyxFQUFDLENBQVA7QUFBUyxVQUFBLEVBQUUsRUFBQyxDQUFDLENBQUM7QUFBZCxTQUFWO0FBQTZCLE9BQXpELENBQVI7QUFBb0UsVUFBSSxDQUFDLEdBQUMsQ0FBTjtBQUFRLGFBQU8sS0FBSyxRQUFMLENBQWMsR0FBZCxDQUFrQixDQUFDLENBQUMsRUFBcEIsRUFBdUIsQ0FBdkIsR0FBMEIsQ0FBQyxDQUFDLFdBQUYsSUFBZSxLQUFLLFNBQUwsQ0FBZSxHQUFmLENBQW1CLENBQUMsQ0FBQyxFQUFyQixDQUF6QyxFQUFrRSxDQUFDLENBQUMsTUFBRixDQUFVLFVBQVMsQ0FBVCxFQUFXO0FBQUMsUUFBQSxDQUFDLENBQUMsV0FBRixDQUFjLENBQUMsQ0FBQyxFQUFoQixHQUFvQixDQUFDLENBQUMsSUFBRixDQUFPLENBQUMsQ0FBQyxDQUFELEVBQUc7QUFBQyxVQUFBLE1BQU0sRUFBQyxDQUFDLENBQUM7QUFBVixTQUFILENBQVIsQ0FBcEI7QUFBK0MsT0FBckUsRUFBd0UsS0FBeEUsRUFBbEUsRUFBa0osQ0FBeko7QUFBMkosS0FBNWtTLEVBQTZrUyxDQUFDLENBQUMsU0FBRixDQUFZLGFBQVosR0FBMEIsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsVUFBSSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUQsRUFBRztBQUFDLFFBQUEsRUFBRSxFQUFDLENBQUo7QUFBTSxRQUFBLE1BQU0sRUFBQztBQUFiLE9BQUgsQ0FBUjtBQUErQixhQUFPLEtBQUssUUFBTCxDQUFjLEdBQWQsQ0FBa0IsQ0FBbEIsRUFBb0IsQ0FBcEIsR0FBdUIsQ0FBOUI7QUFBZ0MsS0FBcHJTLEVBQXFyUyxDQUFDLENBQUMsU0FBRixDQUFZLFlBQVosR0FBeUIsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsVUFBSSxDQUFKO0FBQUEsVUFBTSxDQUFDLEdBQUMsSUFBUjtBQUFBLFVBQWEsQ0FBQyxHQUFDLENBQUMsQ0FBaEI7QUFBa0IsTUFBQSxDQUFDLENBQUMsSUFBRixDQUFRLFVBQVMsQ0FBVCxFQUFXO0FBQUMsUUFBQSxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUYsRUFBSSxDQUFDLENBQUMsV0FBRixDQUFjLENBQWQsQ0FBSixFQUFxQixDQUFDLENBQUMsSUFBRixDQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBSCxFQUFTO0FBQUMsVUFBQSxNQUFNLEVBQUM7QUFBUixTQUFULENBQVIsQ0FBeEIsQ0FBRDtBQUF3RCxPQUE1RSxFQUErRSxVQUFTLENBQVQsRUFBVztBQUFDLFlBQUcsQ0FBQyxDQUFKLEVBQU07QUFBQyxVQUFBLENBQUMsQ0FBQyxXQUFGLENBQWMsQ0FBZDtBQUFpQixjQUFJLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBUjs7QUFBYyxjQUFHO0FBQUMsWUFBQSxDQUFDLENBQUMsSUFBRixDQUFPLENBQUMsQ0FBQyxDQUFELEVBQUc7QUFBQyxjQUFBLE1BQU0sRUFBQztBQUFSLGFBQUgsQ0FBUjtBQUF3QixXQUE1QixDQUE0QixPQUFNLENBQU4sRUFBUTtBQUFDLFlBQUEsQ0FBQyxDQUFDLFFBQUYsSUFBWSxDQUFDLENBQUMsUUFBRixDQUFXLElBQVgsQ0FBZ0IsQ0FBaEIsRUFBa0IsQ0FBQyxDQUFDLEtBQXBCLENBQVosRUFBdUMsQ0FBQyxDQUFDLE9BQUYsQ0FBVSxNQUFWLElBQWtCLENBQUMsQ0FBQyxJQUFGLEVBQXpEO0FBQWtFO0FBQUM7QUFBQyxPQUExTztBQUE2TyxVQUFJLENBQUMsR0FBQztBQUFDLFFBQUEsRUFBRSxFQUFDLENBQUo7QUFBTSxRQUFBLElBQUksRUFBQyxnQkFBVSxDQUFFLENBQXZCO0FBQXdCLFFBQUEsU0FBUyxFQUFDLG1CQUFTLENBQVQsRUFBVyxDQUFYLEVBQWEsQ0FBYixFQUFlO0FBQUMsY0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFILEVBQUssQ0FBTCxDQUFQO0FBQUEsY0FBZSxDQUFDLEdBQUMsQ0FBQyxDQUFsQjtBQUFvQixpQkFBTyxDQUFDLENBQUMsSUFBRixDQUFRLFVBQVMsQ0FBVCxFQUFXO0FBQUMsWUFBQSxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLEdBQVUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxRQUFGLEVBQWhCLENBQUQ7QUFBK0IsV0FBbkQsRUFBc0QsVUFBUyxDQUFULEVBQVc7QUFBQyxZQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBRixDQUFRLENBQVIsQ0FBSDtBQUFjLFdBQWhGLEdBQW1GO0FBQUMsWUFBQSxXQUFXLEVBQUMsdUJBQVU7QUFBQyxxQkFBTyxDQUFDLEdBQUMsQ0FBQyxDQUFWO0FBQVk7QUFBcEMsV0FBMUY7QUFBZ0ksU0FBdE07QUFBdU0sUUFBQSxJQUFJLEVBQUMsZ0JBQVU7QUFBQyxVQUFBLENBQUMsR0FBQyxDQUFDLENBQUg7QUFBSyxTQUE1TjtBQUE2TixRQUFBLE1BQU0sRUFBQyxrQkFBVTtBQUFDLGlCQUFNO0FBQUMsWUFBQSxFQUFFLEVBQUM7QUFBSixXQUFOO0FBQWEsU0FBNVA7QUFBNlAsUUFBQSxXQUFXLEVBQUMsdUJBQVU7QUFBQyxpQkFBTyxDQUFQO0FBQVM7QUFBN1IsT0FBTjtBQUFxUyxhQUFPLEtBQUssUUFBTCxDQUFjLEdBQWQsQ0FBa0IsQ0FBbEIsRUFBb0IsQ0FBcEIsR0FBdUIsQ0FBOUI7QUFBZ0MsS0FBaHlULEVBQWl5VCxDQUFDLENBQUMsU0FBRixDQUFZLGFBQVosR0FBMEIsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsVUFBSSxDQUFKO0FBQUEsVUFBTSxDQUFOO0FBQUEsVUFBUSxDQUFDLEdBQUMsSUFBVjtBQUFBLFVBQWUsQ0FBQyxHQUFDLENBQUMsQ0FBbEI7QUFBQSxVQUFvQixDQUFDLEdBQUMsSUFBSSxHQUFKLEVBQXRCO0FBQUEsVUFBOEIsQ0FBQyxHQUFDLElBQUksR0FBSixFQUFoQzs7QUFBd0MsVUFBRztBQUFDLFFBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBRSxVQUFTLENBQVQsRUFBVztBQUFDLFVBQUEsQ0FBQyxHQUFDLENBQUYsRUFBSSxDQUFDLENBQUMsT0FBRixDQUFXLFVBQVMsQ0FBVCxFQUFXO0FBQUMsbUJBQU8sQ0FBQyxDQUFDLENBQUQsQ0FBUjtBQUFZLFdBQW5DLENBQUosRUFBMEMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBQyxDQUFDLENBQUQsRUFBRztBQUFDLFlBQUEsTUFBTSxFQUFDO0FBQVIsV0FBSCxDQUFSLENBQTdDO0FBQXFFLFNBQW5GLEVBQXNGLFVBQVMsQ0FBVCxFQUFXO0FBQUMsVUFBQSxDQUFDLENBQUMsR0FBRixDQUFNLENBQU47QUFBUyxTQUEzRyxDQUFIO0FBQWlILE9BQXJILENBQXFILE9BQU0sQ0FBTixFQUFRO0FBQUMsYUFBSyxJQUFMLENBQVUsRUFBRSxDQUFDLENBQUQsRUFBRyxDQUFILENBQVo7QUFBbUI7O0FBQUEsVUFBRyxDQUFDLENBQUMsQ0FBRCxDQUFKLEVBQVEsT0FBTyxLQUFLLFlBQUwsQ0FBa0IsQ0FBbEIsRUFBb0IsQ0FBcEIsQ0FBUDtBQUE4QixVQUFJLENBQUMsR0FBQztBQUFDLFFBQUEsRUFBRSxFQUFDLENBQUo7QUFBTSxRQUFBLElBQUksRUFBQyxjQUFTLENBQVQsRUFBVztBQUFDLGlCQUFPLENBQUMsQ0FBQyxPQUFGLENBQVcsVUFBUyxDQUFULEVBQVc7QUFBQyxtQkFBTyxDQUFDLENBQUMsQ0FBRCxDQUFSO0FBQVksV0FBbkMsQ0FBUDtBQUE2QyxTQUFwRTtBQUFxRSxRQUFBLFNBQVMsRUFBQyxtQkFBUyxDQUFULEVBQVc7QUFBQyxpQkFBTyxDQUFDLENBQUMsR0FBRixDQUFNLENBQU4sR0FBUztBQUFDLFlBQUEsV0FBVyxFQUFDLHVCQUFVO0FBQUMsY0FBQSxDQUFDLFVBQUQsQ0FBUyxDQUFUO0FBQVk7QUFBcEMsV0FBaEI7QUFBc0QsU0FBako7QUFBa0osUUFBQSxJQUFJLEVBQUMsZ0JBQVU7QUFBQyxVQUFBLENBQUMsR0FBQyxDQUFDLENBQUgsRUFBSyxDQUFDLENBQUMsQ0FBRCxDQUFELElBQU0sQ0FBQyxFQUFaO0FBQWUsU0FBakw7QUFBa0wsUUFBQSxNQUFNLEVBQUMsa0JBQVU7QUFBQyxpQkFBTTtBQUFDLFlBQUEsRUFBRSxFQUFDO0FBQUosV0FBTjtBQUFhLFNBQWpOO0FBQWtOLFFBQUEsV0FBVyxFQUFDLHVCQUFVO0FBQUMsaUJBQU8sQ0FBUDtBQUFTO0FBQWxQLE9BQU47QUFBMFAsYUFBTyxLQUFLLFFBQUwsQ0FBYyxHQUFkLENBQWtCLENBQWxCLEVBQW9CLENBQXBCLEdBQXVCLENBQTlCO0FBQWdDLEtBQWwwVSxFQUFtMFUsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxlQUFaLEdBQTRCLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFVBQUksQ0FBSjtBQUFBLFVBQU0sQ0FBQyxHQUFDLElBQVI7QUFBQSxVQUFhLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBRixDQUFhLFVBQVMsQ0FBVCxFQUFXO0FBQUMsUUFBQSxDQUFDLEdBQUMsQ0FBRixFQUFJLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBQyxDQUFDLENBQUQsRUFBRztBQUFDLFVBQUEsTUFBTSxFQUFDO0FBQVIsU0FBSCxDQUFSLENBQUo7QUFBNEIsT0FBckQsRUFBd0QsVUFBUyxDQUFULEVBQVc7QUFBQyxRQUFBLENBQUMsQ0FBQyxXQUFGLENBQWMsQ0FBZCxHQUFpQixDQUFDLENBQUMsSUFBRixDQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBSCxFQUFTO0FBQUMsVUFBQSxNQUFNLEVBQUM7QUFBUixTQUFULENBQVIsQ0FBakI7QUFBK0MsT0FBbkgsRUFBc0gsWUFBVTtBQUFDLFFBQUEsQ0FBQyxDQUFDLFdBQUYsQ0FBYyxDQUFkLEdBQWlCLENBQUMsQ0FBQyxJQUFGLENBQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFELENBQUgsRUFBTztBQUFDLFVBQUEsTUFBTSxFQUFDO0FBQVIsU0FBUCxDQUFSLENBQWpCO0FBQTZDLE9BQTlLLENBQWY7QUFBQSxVQUFnTSxDQUFDLEdBQUM7QUFBQyxRQUFBLEVBQUUsRUFBQyxDQUFKO0FBQU0sUUFBQSxJQUFJLEVBQUMsZ0JBQVUsQ0FBRSxDQUF2QjtBQUF3QixRQUFBLFNBQVMsRUFBQyxtQkFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLGlCQUFPLENBQUMsQ0FBQyxTQUFGLENBQVksQ0FBWixFQUFjLENBQWQsRUFBZ0IsQ0FBaEIsQ0FBUDtBQUEwQixTQUE1RTtBQUE2RSxRQUFBLElBQUksRUFBQyxnQkFBVTtBQUFDLGlCQUFPLENBQUMsQ0FBQyxXQUFGLEVBQVA7QUFBdUIsU0FBcEg7QUFBcUgsUUFBQSxXQUFXLEVBQUMsdUJBQVU7QUFBQyxpQkFBTyxDQUFQO0FBQVMsU0FBcko7QUFBc0osUUFBQSxNQUFNLEVBQUMsa0JBQVU7QUFBQyxpQkFBTTtBQUFDLFlBQUEsRUFBRSxFQUFDO0FBQUosV0FBTjtBQUFhO0FBQXJMLE9BQWxNO0FBQXlYLGFBQU8sS0FBSyxRQUFMLENBQWMsR0FBZCxDQUFrQixDQUFsQixFQUFvQixDQUFwQixHQUF1QixDQUE5QjtBQUFnQyxLQUF0d1YsRUFBdXdWLENBQUMsQ0FBQyxTQUFGLENBQVksVUFBWixHQUF1QixVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWE7QUFBQyxhQUFPLEtBQUssUUFBTCxDQUFjLEdBQWQsQ0FBa0IsQ0FBbEIsRUFBb0IsQ0FBcEIsR0FBdUIsQ0FBOUI7QUFBZ0MsS0FBNTBWLEVBQTYwVixDQUFDLENBQUMsU0FBRixDQUFZLGFBQVosR0FBMEIsVUFBUyxDQUFULEVBQVc7QUFBQyxVQUFJLENBQUMsR0FBQyxLQUFLLE9BQUwsQ0FBYSxPQUFiLElBQXNCLEtBQUssT0FBTCxDQUFhLE9BQWIsQ0FBcUIsVUFBM0MsR0FBc0QsS0FBSyxPQUFMLENBQWEsT0FBYixDQUFxQixVQUFyQixDQUFnQyxDQUFDLENBQUMsSUFBbEMsQ0FBdEQsR0FBOEYsS0FBSyxDQUF6Rzs7QUFBMkcsVUFBRyxDQUFILEVBQUs7QUFBQyxZQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxLQUFMLENBQVcsT0FBWixFQUFvQixDQUFwQixDQUFQO0FBQThCLGFBQUssV0FBTCxDQUFpQixDQUFDLENBQUMsRUFBbkIsRUFBc0IsQ0FBdEI7QUFBeUI7QUFBQyxLQUE1aFcsRUFBNmhXLENBQUMsQ0FBQyxTQUFGLENBQVksV0FBWixHQUF3QixVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWE7QUFBQyxXQUFLLFFBQUwsQ0FBYyxHQUFkLENBQWtCLENBQWxCLEVBQW9CO0FBQUMsUUFBQSxFQUFFLEVBQUMsQ0FBSjtBQUFNLFFBQUEsSUFBSSxFQUFDLGdCQUFVLENBQUUsQ0FBdkI7QUFBd0IsUUFBQSxTQUFTLEVBQUMscUJBQVU7QUFBQyxpQkFBTTtBQUFDLFlBQUEsV0FBVyxFQUFDLHVCQUFVLENBQUU7QUFBekIsV0FBTjtBQUFpQyxTQUE5RTtBQUErRSxRQUFBLElBQUksRUFBQyxDQUFDLElBQUUsS0FBSyxDQUE1RjtBQUE4RixRQUFBLFdBQVcsRUFBQyx1QkFBVSxDQUFFLENBQXRIO0FBQXVILFFBQUEsTUFBTSxFQUFDLGtCQUFVO0FBQUMsaUJBQU07QUFBQyxZQUFBLEVBQUUsRUFBQztBQUFKLFdBQU47QUFBYTtBQUF0SixPQUFwQjtBQUE2SyxLQUFodlcsRUFBaXZXLENBQUMsQ0FBQyxTQUFGLENBQVksU0FBWixHQUFzQixZQUFVO0FBQUMsVUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFSOztBQUFXLFVBQUcsS0FBSyxPQUFMLENBQWEsUUFBYixJQUF1QixDQUExQixFQUE0QjtBQUFDLFlBQUcsQ0FBQyxDQUFDLDRCQUFMLEVBQWtDO0FBQUMsY0FBSSxDQUFDLEdBQUMsWUFBVSxPQUFPLEtBQUssT0FBTCxDQUFhLFFBQTlCLEdBQXVDLEtBQUssT0FBTCxDQUFhLFFBQXBELEdBQTZELEtBQUssQ0FBeEU7QUFBMEUsZUFBSyxRQUFMLEdBQWMsQ0FBQyxDQUFDLDRCQUFGLENBQStCLE9BQS9CLENBQXVDLEVBQUMsQ0FBQyxFQUFDLENBQUM7QUFBQyxZQUFBLElBQUksRUFBQyxLQUFLLEVBQVg7QUFBYyxZQUFBLFNBQVMsRUFBQyxDQUFDLENBQXpCO0FBQTJCLFlBQUEsY0FBYyxFQUFDLHdCQUFTLENBQVQsRUFBVztBQUFDLHFCQUFNO0FBQUMsZ0JBQUEsS0FBSyxFQUFDLENBQUMsQ0FBQyxLQUFUO0FBQWUsZ0JBQUEsT0FBTyxFQUFDLENBQUMsQ0FBQyxPQUF6QjtBQUFpQyxnQkFBQSxPQUFPLEVBQUMsQ0FBQyxDQUFDO0FBQTNDLGVBQU47QUFBMEQ7QUFBaEgsV0FBRCxFQUFtSCxDQUFuSCxDQUFGLEVBQXdIO0FBQUMsWUFBQSxRQUFRLEVBQUMsRUFBQyxDQUFDO0FBQUMsY0FBQSxJQUFJLEVBQUMsQ0FBQyxDQUFQO0FBQVMsY0FBQSxJQUFJLEVBQUMsQ0FBQztBQUFmLGFBQUQsRUFBbUIsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFILEdBQVksS0FBSyxDQUFyQztBQUFYLFdBQXhILENBQXhDLEVBQXFOLEtBQUssT0FBMU4sQ0FBZCxFQUFpUCxLQUFLLFFBQUwsQ0FBYyxJQUFkLENBQW1CLEtBQUssS0FBeEIsQ0FBalA7QUFBZ1I7O0FBQUEsUUFBQSxFQUFFLENBQUMsSUFBRCxDQUFGO0FBQVM7QUFBQyxLQUFqc1gsRUFBa3NYLENBQUMsQ0FBQyxTQUFGLENBQVksTUFBWixHQUFtQixZQUFVO0FBQUMsYUFBTTtBQUFDLFFBQUEsRUFBRSxFQUFDLEtBQUs7QUFBVCxPQUFOO0FBQW1CLEtBQW52WCxFQUFvdlgsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxDQUFaLElBQWUsWUFBVTtBQUFDLGFBQU8sSUFBUDtBQUFZLEtBQTF4WCxFQUEyeFgsQ0FBQyxDQUFDLFNBQUYsQ0FBWSxXQUFaLEdBQXdCLFlBQVU7QUFBQyxhQUFPLEtBQUssTUFBTCxLQUFjLENBQUMsQ0FBQyxpQkFBRixDQUFvQixVQUFsQyxHQUE2QyxLQUFLLFlBQWxELEdBQStELEtBQUssTUFBM0U7QUFBa0YsS0FBaDVYLEVBQWk1WCxDQUFDLENBQUMsY0FBRixHQUFpQixVQUFTLENBQVQsRUFBVztBQUFDLGFBQU07QUFBQyxRQUFBLE9BQU8sRUFBQyxDQUFDLENBQVY7QUFBWSxRQUFBLFdBQVcsRUFBQyxDQUFDLENBQXpCO0FBQTJCLFFBQUEsS0FBSyxFQUFDO0FBQUMsVUFBQSxVQUFVO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLFlBQUMsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsbUJBQU8sVUFBVSxDQUFDLENBQUQsRUFBRyxDQUFILENBQWpCO0FBQXVCLFdBQXRDLENBQVg7QUFBa0QsVUFBQSxZQUFZO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLFlBQUMsVUFBUyxDQUFULEVBQVc7QUFBQyxtQkFBTyxZQUFZLENBQUMsQ0FBRCxDQUFuQjtBQUF1QixXQUFwQztBQUE5RCxTQUFqQztBQUFxSSxRQUFBLE1BQU0sRUFBQyxDQUFDLENBQUMsT0FBRixDQUFVLEdBQVYsQ0FBYyxJQUFkLENBQW1CLE9BQW5CLENBQTVJO0FBQXdLLFFBQUEsUUFBUSxFQUFDLENBQUM7QUFBbEwsT0FBTjtBQUEyTCxLQUF2TSxDQUF3TSxlQUFhLE9BQU8sSUFBcEIsR0FBeUIsSUFBekIsR0FBOEIsTUFBdE8sQ0FBbDZYLEVBQWdwWSxDQUFDLENBQUMsU0FBRixHQUFZLEVBQTVwWSxFQUErcFksQ0FBdHFZO0FBQXdxWSxHQUF2dmIsRUFBUDs7QUFBaXdiLFdBQVMsRUFBVCxDQUFZLENBQVosRUFBYyxDQUFkLEVBQWdCO0FBQUMsV0FBTyxJQUFJLEVBQUosQ0FBTyxDQUFQLEVBQVMsQ0FBVCxDQUFQO0FBQW1COztBQUFBLE1BQUksRUFBRSxHQUFDO0FBQUMsSUFBQSxLQUFLLEVBQUMsRUFBUDtBQUFVLElBQUEsSUFBSSxFQUFDLEVBQWY7QUFBa0IsSUFBQSxVQUFVLEVBQUMsRUFBN0I7QUFBZ0MsSUFBQSxVQUFVLEVBQUMsRUFBM0M7QUFBOEMsSUFBQSxHQUFHLEVBQUMsYUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsYUFBTyxLQUFLLENBQUwsS0FBUyxDQUFULEtBQWEsQ0FBQyxHQUFDLEVBQWYsR0FBbUI7QUFBQyxRQUFBLElBQUksRUFBQyxFQUFOO0FBQVMsUUFBQSxLQUFLLEVBQUMsQ0FBZjtBQUFpQixRQUFBLElBQUksRUFBQztBQUF0QixPQUExQjtBQUFtRCxLQUFuSDtBQUFvSCxJQUFBLE1BQU0sRUFBQyxFQUEzSDtBQUE4SCxJQUFBLEtBQUssRUFBQyxFQUFwSTtBQUF1SSxJQUFBLElBQUksRUFBQyxFQUE1STtBQUErSSxJQUFBLE1BQU0sRUFBQyxFQUF0SjtBQUF5SixJQUFBLEtBQUssRUFBQyxFQUEvSjtBQUFrSyxJQUFBLElBQUksRUFBQyxFQUF2SztBQUEwSyxJQUFBLE9BQU8sRUFBQyxpQkFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsYUFBTyxFQUFFLENBQUMsQ0FBRCxFQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLENBQUosQ0FBRixFQUFTO0FBQUMsUUFBQSxFQUFFLEVBQUMsWUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZTtBQUFDLGlCQUFPLENBQUMsQ0FBQyxNQUFGLENBQVMsTUFBaEI7QUFBdUI7QUFBM0MsT0FBVCxDQUFKLENBQVQ7QUFBcUUsS0FBclE7QUFBc1EsSUFBQSxTQUFTLEVBQUMsRUFBaFI7QUFBbVIsSUFBQSxRQUFRLEVBQUMsa0JBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLGFBQU8sRUFBRSxDQUFFLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxlQUFNO0FBQUMsVUFBQSxJQUFJLEVBQUMsRUFBTjtBQUFTLFVBQUEsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFELENBQUQsR0FBSyxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUgsRUFBSyxDQUFMLENBQU4sR0FBYztBQUE1QixTQUFOO0FBQXFDLE9BQXZELEVBQXlELEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLENBQUosQ0FBRixFQUFTO0FBQUMsUUFBQSxFQUFFLEVBQUMsQ0FBQyxDQUFDLGNBQUYsQ0FBaUI7QUFBckIsT0FBVCxDQUExRCxDQUFUO0FBQTJHLEtBQXJaO0FBQXNaLElBQUEsTUFBTSxFQUFDLGdCQUFTLENBQVQsRUFBVztBQUFDLGFBQU07QUFBQyxRQUFBLElBQUksRUFBQyxDQUFDLENBQUMsV0FBRixDQUFjLE1BQXBCO0FBQTJCLFFBQUEsS0FBSyxFQUFDO0FBQWpDLE9BQU47QUFBMEMsS0FBbmQ7QUFBb2QsSUFBQSxJQUFJLEVBQUMsY0FBUyxDQUFULEVBQVc7QUFBQyxhQUFNO0FBQUMsUUFBQSxJQUFJLEVBQUMsQ0FBQyxDQUFDLFdBQUYsQ0FBYyxJQUFwQjtBQUF5QixRQUFBLEdBQUcsRUFBQztBQUE3QixPQUFOO0FBQXNDO0FBQTNnQixHQUFQO0FBQW9oQixFQUFBLENBQUMsQ0FBQyxXQUFGLEdBQWMsRUFBZCxFQUFpQixDQUFDLENBQUMsT0FBRixHQUFVLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxXQUFPLEtBQUssQ0FBTCxLQUFTLENBQVQsS0FBYSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQWpCLEdBQTBCLElBQUksRUFBSixDQUFPLENBQVAsRUFBUyxDQUFULEVBQVcsQ0FBWCxDQUFqQztBQUErQyxHQUExRixFQUEyRixDQUFDLENBQUMsS0FBRixHQUFRLEVBQW5HLEVBQXNHLENBQUMsQ0FBQyxTQUFGLEdBQVksRUFBbEgsRUFBcUgsQ0FBQyxDQUFDLE9BQUYsR0FBVSxFQUEvSCxFQUFrSSxDQUFDLENBQUMsTUFBRixHQUFTLEVBQTNJLEVBQThJLENBQUMsQ0FBQyxhQUFGLEdBQWdCLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFdBQU8sSUFBSSxFQUFKLENBQU8sQ0FBUCxFQUFTLENBQVQsQ0FBUDtBQUFtQixHQUEvTCxFQUFnTSxDQUFDLENBQUMsWUFBRixHQUFlLFVBQVMsQ0FBVCxFQUFXO0FBQUMsV0FBTyxDQUFQO0FBQVMsR0FBcE8sRUFBcU8sQ0FBQyxDQUFDLFVBQUYsR0FBYSxFQUFsUCxFQUFxUCxDQUFDLENBQUMsU0FBRixHQUFZLEVBQWpRLEVBQW9RLENBQUMsQ0FBQyxTQUFGLEdBQVksRUFBaFIsRUFBbVIsQ0FBQyxDQUFDLFFBQUYsR0FBVyxVQUFTLENBQVQsRUFBVyxDQUFYLEVBQWE7QUFBQyxRQUFJLENBQUosRUFBTSxDQUFOLEVBQVEsQ0FBUjs7QUFBVSxRQUFHO0FBQUMsV0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUQsQ0FBRixDQUFQLEVBQWMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQXBCLEVBQTZCLENBQUMsQ0FBQyxDQUFDLElBQWhDLEVBQXFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUF2QyxFQUFnRDtBQUFDLFlBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFSO0FBQWMsUUFBQSxDQUFDLENBQUMsQ0FBRCxFQUFHLENBQUgsQ0FBRCxLQUFTLENBQUMsQ0FBRCxJQUFJLENBQUMsQ0FBQyxNQUFGLEdBQVMsQ0FBQyxDQUFDLE1BQXhCLE1BQWtDLENBQUMsR0FBQyxDQUFwQztBQUF1QztBQUFDLEtBQTNHLENBQTJHLE9BQU0sQ0FBTixFQUFRO0FBQUMsTUFBQSxDQUFDLEdBQUM7QUFBQyxRQUFBLEtBQUssRUFBQztBQUFQLE9BQUY7QUFBWSxLQUFoSSxTQUF1STtBQUFDLFVBQUc7QUFBQyxRQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFOLEtBQWEsQ0FBQyxHQUFDLENBQUMsVUFBaEIsS0FBMEIsQ0FBQyxDQUFDLElBQUYsQ0FBTyxDQUFQLENBQTFCO0FBQW9DLE9BQXhDLFNBQStDO0FBQUMsWUFBRyxDQUFILEVBQUssTUFBTSxDQUFDLENBQUMsS0FBUjtBQUFjO0FBQUM7O0FBQUEsV0FBTyxDQUFDLENBQUMsQ0FBRCxDQUFSO0FBQVksR0FBOWdCLEVBQStnQixDQUFDLENBQUMsVUFBRixHQUFhLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYSxDQUFiLEVBQWU7QUFBQyxRQUFJLENBQUo7QUFBQSxRQUFNLENBQU47QUFBQSxRQUFRLENBQUMsR0FBQyxFQUFFLENBQUMsSUFBSCxDQUFRLENBQVIsRUFBVSxDQUFDLFlBQVksRUFBYixHQUFnQixDQUFDLENBQUMsT0FBbEIsR0FBMEIsS0FBSyxDQUF6QyxDQUFWOztBQUFzRCxRQUFHO0FBQUMsV0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUFQLEVBQVcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFGLEVBQWpCLEVBQTBCLENBQUMsQ0FBQyxDQUFDLElBQTdCLEVBQWtDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRixFQUFwQyxFQUE2QztBQUFDLFlBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSCxFQUFTLENBQVQsQ0FBUDtBQUFBLFlBQW1CLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUF0QjtBQUFBLFlBQTBCLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBRCxDQUE3QjtBQUFpQyxZQUFHLENBQUMsQ0FBQyxPQUFGLENBQVUsQ0FBVixDQUFILEVBQWdCLE9BQU8sQ0FBQyxDQUFDLENBQUQsQ0FBUjtBQUFZO0FBQUMsS0FBaEgsQ0FBZ0gsT0FBTSxDQUFOLEVBQVE7QUFBQyxNQUFBLENBQUMsR0FBQztBQUFDLFFBQUEsS0FBSyxFQUFDO0FBQVAsT0FBRjtBQUFZLEtBQXJJLFNBQTRJO0FBQUMsVUFBRztBQUFDLFFBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQU4sS0FBYSxDQUFDLEdBQUMsQ0FBQyxVQUFoQixLQUEwQixDQUFDLENBQUMsSUFBRixDQUFPLENBQVAsQ0FBMUI7QUFBb0MsT0FBeEMsU0FBK0M7QUFBQyxZQUFHLENBQUgsRUFBSyxNQUFNLENBQUMsQ0FBQyxLQUFSO0FBQWM7QUFBQzs7QUFBQSxXQUFPLENBQUMsQ0FBQyxDQUFELENBQVI7QUFBWSxHQUEvekIsRUFBZzBCLENBQUMsQ0FBQyxZQUFGLEdBQWUsQ0FBLzBCLEVBQWkxQixDQUFDLENBQUMsSUFBRixHQUFPLEVBQXgxQixFQUEyMUIsQ0FBQyxDQUFDLFVBQUYsR0FBYSxFQUF4MkIsRUFBMjJCLENBQUMsQ0FBQyxVQUFGLEdBQWEsRUFBeDNCLEVBQTIzQixDQUFDLENBQUMsS0FBRixHQUFRLFVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYTtBQUFDLFFBQUksQ0FBQyxHQUFDLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFELEVBQUksRUFBSixDQUFGLEVBQVU7QUFBQyxRQUFBLElBQUksRUFBQztBQUFOLE9BQVYsQ0FBTixHQUEwQixFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFELEVBQUksRUFBSixDQUFGLEVBQVU7QUFBQyxRQUFBLElBQUksRUFBQyxDQUFDO0FBQVAsT0FBVixDQUFGLEVBQXdCLENBQXhCLENBQWxDO0FBQTZELEtBQXpFLENBQTBFLENBQTFFLENBQU47O0FBQW1GLFdBQU8sVUFBUyxDQUFULEVBQVc7QUFBQyxhQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRixDQUFRLENBQVIsRUFBVSxDQUFDLENBQUMsSUFBWixFQUFpQixDQUFqQixDQUFELEdBQXFCLEVBQUUsQ0FBQyxDQUFELEVBQUcsQ0FBQyxDQUFDLElBQUwsQ0FBL0I7QUFBMEMsS0FBdEQsQ0FBdUQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFILEdBQVUsQ0FBWCxDQUF6RCxDQUFQO0FBQStFLEdBQW5qQyxFQUFvakMsTUFBTSxDQUFDLGNBQVAsQ0FBc0IsQ0FBdEIsRUFBd0IsWUFBeEIsRUFBcUM7QUFBQyxJQUFBLEtBQUssRUFBQyxDQUFDO0FBQVIsR0FBckMsQ0FBcGpDO0FBQXFtQyxDQWRoZ3BELENBQUQiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIiFmdW5jdGlvbih0LGUpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP2UoZXhwb3J0cyk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXCJleHBvcnRzXCJdLGUpOmUoKHQ9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczp0fHxzZWxmKS5YU3RhdGU9e30pfSh0aGlzLChmdW5jdGlvbih0KXtcInVzZSBzdHJpY3RcIjtcbi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxuXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxuXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovdmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4oZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKWZvcih2YXIgaSBpbiBlPWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKHRbaV09ZVtpXSk7cmV0dXJuIHR9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIG4odCxlKXt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmZS5pbmRleE9mKHIpPDAmJihuW3JdPXRbcl0pO2lmKG51bGwhPXQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPTA7Zm9yKHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPHIubGVuZ3RoO2krKyllLmluZGV4T2YocltpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQscltpXSkmJihuW3JbaV1dPXRbcltpXV0pfXJldHVybiBufWZ1bmN0aW9uIHIodCl7dmFyIGU9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3Isbj1lJiZ0W2VdLHI9MDtpZihuKXJldHVybiBuLmNhbGwodCk7aWYodCYmXCJudW1iZXJcIj09dHlwZW9mIHQubGVuZ3RoKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJnI+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W3IrK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKGU/XCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiOlwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKX1mdW5jdGlvbiBpKHQsZSl7dmFyIG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIHQ7dmFyIHIsaSxvPW4uY2FsbCh0KSxhPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1lfHxlLS0gPjApJiYhKHI9by5uZXh0KCkpLmRvbmU7KWEucHVzaChyLnZhbHVlKX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtyJiYhci5kb25lJiYobj1vLnJldHVybikmJm4uY2FsbChvKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIGF9ZnVuY3Rpb24gbyh0LGUsbil7aWYobnx8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciByLGk9MCxvPWUubGVuZ3RoO2k8bztpKyspIXImJmkgaW4gZXx8KHJ8fChyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMCxpKSkscltpXT1lW2ldKTtyZXR1cm4gdC5jb25jYXQocnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpfXZhciBhPXt9O2Z1bmN0aW9uIHModCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpfWZ1bmN0aW9uIGModCxlLG4pe3ZvaWQgMD09PW4mJihuPVwiLlwiKTt2YXIgcj1mKHQsbiksaT1mKGUsbik7cmV0dXJuIEEoaSk/ISFBKHIpJiZpPT09cjpBKHIpP3IgaW4gaTpzKHIpLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdCBpbiBpJiZjKHJbdF0saVt0XSl9KSl9ZnVuY3Rpb24gdSh0KXt0cnl7cmV0dXJuIEEodCl8fFwibnVtYmVyXCI9PXR5cGVvZiB0P1wiXCIuY29uY2F0KHQpOnQudHlwZX1jYXRjaCh0KXt0aHJvdyBuZXcgRXJyb3IoXCJFdmVudHMgbXVzdCBiZSBzdHJpbmdzIG9yIG9iamVjdHMgd2l0aCBhIHN0cmluZyBldmVudC50eXBlIHByb3BlcnR5LlwiKX19ZnVuY3Rpb24gaCh0LGUpe3RyeXtyZXR1cm4gVCh0KT90OnQudG9TdHJpbmcoKS5zcGxpdChlKX1jYXRjaChlKXt0aHJvdyBuZXcgRXJyb3IoXCInXCIuY29uY2F0KHQsXCInIGlzIG5vdCBhIHZhbGlkIHN0YXRlIHBhdGguXCIpKX19ZnVuY3Rpb24gZih0LGUpe3JldHVyblwib2JqZWN0XCI9PXR5cGVvZihuPXQpJiZcInZhbHVlXCJpbiBuJiZcImNvbnRleHRcImluIG4mJlwiZXZlbnRcImluIG4mJlwiX2V2ZW50XCJpbiBuP3QudmFsdWU6VCh0KT9sKHQpOlwic3RyaW5nXCIhPXR5cGVvZiB0P3Q6bChoKHQsZSkpO3ZhciBufWZ1bmN0aW9uIGwodCl7aWYoMT09PXQubGVuZ3RoKXJldHVybiB0WzBdO2Zvcih2YXIgZT17fSxuPWUscj0wO3I8dC5sZW5ndGgtMTtyKyspcj09PXQubGVuZ3RoLTI/blt0W3JdXT10W3IrMV06KG5bdFtyXV09e30sbj1uW3Rbcl1dKTtyZXR1cm4gZX1mdW5jdGlvbiBkKHQsZSl7Zm9yKHZhciBuPXt9LHI9cyh0KSxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07bltvXT1lKHRbb10sbyx0LGkpfXJldHVybiBufWZ1bmN0aW9uIHAodCxlLG4pe3ZhciBpLG8sYT17fTt0cnl7Zm9yKHZhciBjPXIocyh0KSksdT1jLm5leHQoKTshdS5kb25lO3U9Yy5uZXh0KCkpe3ZhciBoPXUudmFsdWUsZj10W2hdO24oZikmJihhW2hdPWUoZixoLHQpKX19Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7dSYmIXUuZG9uZSYmKG89Yy5yZXR1cm4pJiZvLmNhbGwoYyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiBhfXZhciB2PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbixpLG89ZTt0cnl7Zm9yKHZhciBhPXIodCkscz1hLm5leHQoKTshcy5kb25lO3M9YS5uZXh0KCkpe289b1tzLnZhbHVlXX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7cyYmIXMuZG9uZSYmKGk9YS5yZXR1cm4pJiZpLmNhbGwoYSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiBvfX07ZnVuY3Rpb24geSh0KXtyZXR1cm4gdD9BKHQpP1tbdF1dOmcocyh0KS5tYXAoKGZ1bmN0aW9uKGUpe3ZhciBuPXRbZV07cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIG58fG4mJk9iamVjdC5rZXlzKG4pLmxlbmd0aD95KHRbZV0pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuW2VdLmNvbmNhdCh0KX0pKTpbW2VdXX0pKSk6W1tdXX1mdW5jdGlvbiBnKHQpe3ZhciBlO3JldHVybihlPVtdKS5jb25jYXQuYXBwbHkoZSxvKFtdLGkodCksITEpKX1mdW5jdGlvbiBtKHQpe3JldHVybiBUKHQpP3Q6W3RdfWZ1bmN0aW9uIFModCl7cmV0dXJuIHZvaWQgMD09PXQ/W106bSh0KX1mdW5jdGlvbiB4KHQsZSxuKXt2YXIgaSxvO2lmKE4odCkpcmV0dXJuIHQoZSxuLmRhdGEpO3ZhciBhPXt9O3RyeXtmb3IodmFyIHM9cihPYmplY3Qua2V5cyh0KSksYz1zLm5leHQoKTshYy5kb25lO2M9cy5uZXh0KCkpe3ZhciB1PWMudmFsdWUsaD10W3VdO04oaCk/YVt1XT1oKGUsbi5kYXRhKTphW3VdPWh9fWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2MmJiFjLmRvbmUmJihvPXMucmV0dXJuKSYmby5jYWxsKHMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gYX1mdW5jdGlvbiB3KHQpe3JldHVybiB0IGluc3RhbmNlb2YgUHJvbWlzZXx8IShudWxsPT09dHx8IU4odCkmJlwib2JqZWN0XCIhPXR5cGVvZiB0fHwhTih0LnRoZW4pKX1mdW5jdGlvbiBiKHQsZSl7dmFyIG4sbyxhPWkoW1tdLFtdXSwyKSxzPWFbMF0sYz1hWzFdO3RyeXtmb3IodmFyIHU9cih0KSxoPXUubmV4dCgpOyFoLmRvbmU7aD11Lm5leHQoKSl7dmFyIGY9aC52YWx1ZTtlKGYpP3MucHVzaChmKTpjLnB1c2goZil9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2gmJiFoLmRvbmUmJihvPXUucmV0dXJuKSYmby5jYWxsKHUpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX1yZXR1cm5bcyxjXX1mdW5jdGlvbiBfKHQsZSl7cmV0dXJuIGQodC5zdGF0ZXMsKGZ1bmN0aW9uKHQsbil7aWYodCl7dmFyIHI9KEEoZSk/dm9pZCAwOmVbbl0pfHwodD90LmN1cnJlbnQ6dm9pZCAwKTtpZihyKXJldHVybntjdXJyZW50OnIsc3RhdGVzOl8odCxyKX19fSkpfWZ1bmN0aW9uIEUodCxlLG4saSl7cmV0dXJuIHQ/bi5yZWR1Y2UoKGZ1bmN0aW9uKHQsbil7dmFyIG8sYSxjPW4uYXNzaWdubWVudCx1PXtzdGF0ZTppLGFjdGlvbjpuLF9ldmVudDplfSxoPXt9O2lmKE4oYykpaD1jKHQsZS5kYXRhLHUpO2Vsc2UgdHJ5e2Zvcih2YXIgZj1yKHMoYykpLGw9Zi5uZXh0KCk7IWwuZG9uZTtsPWYubmV4dCgpKXt2YXIgZD1sLnZhbHVlLHA9Y1tkXTtoW2RdPU4ocCk/cCh0LGUuZGF0YSx1KTpwfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYoYT1mLnJldHVybikmJmEuY2FsbChmKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sdCxoKX0pLHQpOnR9ZnVuY3Rpb24gVCh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KX1mdW5jdGlvbiBOKHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHR9ZnVuY3Rpb24gQSh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdH1mdW5jdGlvbiBPKHQsZSl7aWYodClyZXR1cm4gQSh0KT97dHlwZTpcInhzdGF0ZS5ndWFyZFwiLG5hbWU6dCxwcmVkaWNhdGU6ZT9lW3RdOnZvaWQgMH06Tih0KT97dHlwZTpcInhzdGF0ZS5ndWFyZFwiLG5hbWU6dC5uYW1lLHByZWRpY2F0ZTp0fTp0fXZhciBQPWZ1bmN0aW9uKCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wub2JzZXJ2YWJsZXx8XCJAQG9ic2VydmFibGVcIn0oKTtmdW5jdGlvbiBrKHQpe3RyeXtyZXR1cm5cIl9feHN0YXRlbm9kZVwiaW4gdH1jYXRjaCh0KXtyZXR1cm4hMX19dmFyIEksaixDPWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4oKyt0KS50b1N0cmluZygxNil9fSgpO2Z1bmN0aW9uIFYodCxuKXtyZXR1cm4gQSh0KXx8XCJudW1iZXJcIj09dHlwZW9mIHQ/ZSh7dHlwZTp0fSxuKTp0fWZ1bmN0aW9uIEwodCxuKXtpZighQSh0KSYmXCIkJHR5cGVcImluIHQmJlwic2N4bWxcIj09PXQuJCR0eXBlKXJldHVybiB0O3ZhciByPVYodCk7cmV0dXJuIGUoe25hbWU6ci50eXBlLGRhdGE6ciwkJHR5cGU6XCJzY3htbFwiLHR5cGU6XCJleHRlcm5hbFwifSxuKX1mdW5jdGlvbiBEKHQsbil7cmV0dXJuIG0obikubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gdm9pZCAwPT09bnx8XCJzdHJpbmdcIj09dHlwZW9mIG58fGsobik/e3RhcmdldDpuLGV2ZW50OnR9OmUoZSh7fSxuKSx7ZXZlbnQ6dH0pfSkpfWZ1bmN0aW9uIFIodCxlLG4scixpKXt2YXIgbz10Lm9wdGlvbnMuZ3VhcmRzLGE9e3N0YXRlOmksY29uZDplLF9ldmVudDpyfTtpZihcInhzdGF0ZS5ndWFyZFwiPT09ZS50eXBlKXJldHVybigobnVsbD09bz92b2lkIDA6b1tlLm5hbWVdKXx8ZS5wcmVkaWNhdGUpKG4sci5kYXRhLGEpO3ZhciBzPW9bZS50eXBlXTtpZighcyl0aHJvdyBuZXcgRXJyb3IoXCJHdWFyZCAnXCIuY29uY2F0KGUudHlwZSxcIicgaXMgbm90IGltcGxlbWVudGVkIG9uIG1hY2hpbmUgJ1wiKS5jb25jYXQodC5pZCxcIicuXCIpKTtyZXR1cm4gcyhuLHIuZGF0YSxhKX1mdW5jdGlvbiBNKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P3t0eXBlOnR9OnR9ZnVuY3Rpb24geih0LGUsbil7aWYoXCJvYmplY3RcIj09dHlwZW9mIHQpcmV0dXJuIHQ7dmFyIHI9ZnVuY3Rpb24oKXt9O3JldHVybntuZXh0OnQsZXJyb3I6ZXx8cixjb21wbGV0ZTpufHxyfX0oST10LkFjdGlvblR5cGVzfHwodC5BY3Rpb25UeXBlcz17fSkpLlN0YXJ0PVwieHN0YXRlLnN0YXJ0XCIsSS5TdG9wPVwieHN0YXRlLnN0b3BcIixJLlJhaXNlPVwieHN0YXRlLnJhaXNlXCIsSS5TZW5kPVwieHN0YXRlLnNlbmRcIixJLkNhbmNlbD1cInhzdGF0ZS5jYW5jZWxcIixJLk51bGxFdmVudD1cIlwiLEkuQXNzaWduPVwieHN0YXRlLmFzc2lnblwiLEkuQWZ0ZXI9XCJ4c3RhdGUuYWZ0ZXJcIixJLkRvbmVTdGF0ZT1cImRvbmUuc3RhdGVcIixJLkRvbmVJbnZva2U9XCJkb25lLmludm9rZVwiLEkuTG9nPVwieHN0YXRlLmxvZ1wiLEkuSW5pdD1cInhzdGF0ZS5pbml0XCIsSS5JbnZva2U9XCJ4c3RhdGUuaW52b2tlXCIsSS5FcnJvckV4ZWN1dGlvbj1cImVycm9yLmV4ZWN1dGlvblwiLEkuRXJyb3JDb21tdW5pY2F0aW9uPVwiZXJyb3IuY29tbXVuaWNhdGlvblwiLEkuRXJyb3JQbGF0Zm9ybT1cImVycm9yLnBsYXRmb3JtXCIsSS5FcnJvckN1c3RvbT1cInhzdGF0ZS5lcnJvclwiLEkuVXBkYXRlPVwieHN0YXRlLnVwZGF0ZVwiLEkuUHVyZT1cInhzdGF0ZS5wdXJlXCIsSS5DaG9vc2U9XCJ4c3RhdGUuY2hvb3NlXCIsKGo9dC5TcGVjaWFsVGFyZ2V0c3x8KHQuU3BlY2lhbFRhcmdldHM9e30pKS5QYXJlbnQ9XCIjX3BhcmVudFwiLGouSW50ZXJuYWw9XCIjX2ludGVybmFsXCI7dmFyIEY9ZnVuY3Rpb24odCl7cmV0dXJuXCJhdG9taWNcIj09PXQudHlwZXx8XCJmaW5hbFwiPT09dC50eXBlfTtmdW5jdGlvbiBVKHQpe3JldHVybiBzKHQuc3RhdGVzKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0LnN0YXRlc1tlXX0pKX1mdW5jdGlvbiBCKHQpe3ZhciBlPVt0XTtyZXR1cm4gRih0KT9lOmUuY29uY2F0KGcoVSh0KS5tYXAoQikpKX1mdW5jdGlvbiBKKHQsZSl7dmFyIG4saSxvLGEscyxjLHUsaCxmPXEobmV3IFNldCh0KSksbD1uZXcgU2V0KGUpO3RyeXtmb3IodmFyIGQ9cihsKSxwPWQubmV4dCgpOyFwLmRvbmU7cD1kLm5leHQoKSlmb3IodmFyIHY9KEU9cC52YWx1ZSkucGFyZW50O3YmJiFsLmhhcyh2KTspbC5hZGQodiksdj12LnBhcmVudH1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtwJiYhcC5kb25lJiYoaT1kLnJldHVybikmJmkuY2FsbChkKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19dmFyIHk9cShsKTt0cnl7Zm9yKHZhciBnPXIobCksbT1nLm5leHQoKTshbS5kb25lO209Zy5uZXh0KCkpe2lmKFwiY29tcG91bmRcIiE9PShFPW0udmFsdWUpLnR5cGV8fHkuZ2V0KEUpJiZ5LmdldChFKS5sZW5ndGgpe2lmKFwicGFyYWxsZWxcIj09PUUudHlwZSl0cnl7Zm9yKHZhciBTPShzPXZvaWQgMCxyKFUoRSkpKSx4PVMubmV4dCgpOyF4LmRvbmU7eD1TLm5leHQoKSl7dmFyIHc9eC52YWx1ZTtcImhpc3RvcnlcIiE9PXcudHlwZSYmKGwuaGFzKHcpfHwobC5hZGQodyksZi5nZXQodyk/Zi5nZXQodykuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGwuYWRkKHQpfSkpOncuaW5pdGlhbFN0YXRlTm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGwuYWRkKHQpfSkpKSl9fWNhdGNoKHQpe3M9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3gmJiF4LmRvbmUmJihjPVMucmV0dXJuKSYmYy5jYWxsKFMpfWZpbmFsbHl7aWYocyl0aHJvdyBzLmVycm9yfX19ZWxzZSBmLmdldChFKT9mLmdldChFKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gbC5hZGQodCl9KSk6RS5pbml0aWFsU3RhdGVOb2Rlcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gbC5hZGQodCl9KSl9fWNhdGNoKHQpe289e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e20mJiFtLmRvbmUmJihhPWcucmV0dXJuKSYmYS5jYWxsKGcpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX10cnl7Zm9yKHZhciBiPXIobCksXz1iLm5leHQoKTshXy5kb25lO189Yi5uZXh0KCkpe3ZhciBFO2Zvcih2PShFPV8udmFsdWUpLnBhcmVudDt2JiYhbC5oYXModik7KWwuYWRkKHYpLHY9di5wYXJlbnR9fWNhdGNoKHQpe3U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e18mJiFfLmRvbmUmJihoPWIucmV0dXJuKSYmaC5jYWxsKGIpfWZpbmFsbHl7aWYodSl0aHJvdyB1LmVycm9yfX1yZXR1cm4gbH1mdW5jdGlvbiBxKHQpe3ZhciBlLG4saT1uZXcgTWFwO3RyeXtmb3IodmFyIG89cih0KSxhPW8ubmV4dCgpOyFhLmRvbmU7YT1vLm5leHQoKSl7dmFyIHM9YS52YWx1ZTtpLmhhcyhzKXx8aS5zZXQocyxbXSkscy5wYXJlbnQmJihpLmhhcyhzLnBhcmVudCl8fGkuc2V0KHMucGFyZW50LFtdKSxpLmdldChzLnBhcmVudCkucHVzaChzKSl9fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihuPW8ucmV0dXJuKSYmbi5jYWxsKG8pfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1yZXR1cm4gaX1mdW5jdGlvbiAkKHQsZSl7cmV0dXJuIGZ1bmN0aW9uIHQoZSxuKXt2YXIgcj1uLmdldChlKTtpZighcilyZXR1cm57fTtpZihcImNvbXBvdW5kXCI9PT1lLnR5cGUpe3ZhciBpPXJbMF07aWYoIWkpcmV0dXJue307aWYoRihpKSlyZXR1cm4gaS5rZXl9dmFyIG89e307cmV0dXJuIHIuZm9yRWFjaCgoZnVuY3Rpb24oZSl7b1tlLmtleV09dChlLG4pfSkpLG99KHQscShKKFt0XSxlKSkpfWZ1bmN0aW9uIFgodCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90LnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0PT09ZX0pKTp0IGluc3RhbmNlb2YgU2V0JiZ0LmhhcyhlKX1mdW5jdGlvbiBIKHQsZSl7cmV0dXJuXCJjb21wb3VuZFwiPT09ZS50eXBlP1UoZSkuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuXCJmaW5hbFwiPT09ZS50eXBlJiZYKHQsZSl9KSk6XCJwYXJhbGxlbFwiPT09ZS50eXBlJiZVKGUpLmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gSCh0LGUpfSkpfWZ1bmN0aW9uIEcodCl7cmV0dXJuIG5ldyBTZXQoZyh0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudGFnc30pKSkpfXZhciBLPXQuQWN0aW9uVHlwZXMuU3RhcnQsUT10LkFjdGlvblR5cGVzLlN0b3AsVz10LkFjdGlvblR5cGVzLlJhaXNlLFk9dC5BY3Rpb25UeXBlcy5TZW5kLFo9dC5BY3Rpb25UeXBlcy5DYW5jZWwsdHQ9dC5BY3Rpb25UeXBlcy5OdWxsRXZlbnQsZXQ9dC5BY3Rpb25UeXBlcy5Bc3NpZ24sbnQ9KHQuQWN0aW9uVHlwZXMuQWZ0ZXIsdC5BY3Rpb25UeXBlcy5Eb25lU3RhdGUsdC5BY3Rpb25UeXBlcy5Mb2cpLHJ0PXQuQWN0aW9uVHlwZXMuSW5pdCxpdD10LkFjdGlvblR5cGVzLkludm9rZSxvdD0odC5BY3Rpb25UeXBlcy5FcnJvckV4ZWN1dGlvbix0LkFjdGlvblR5cGVzLkVycm9yUGxhdGZvcm0pLGF0PXQuQWN0aW9uVHlwZXMuRXJyb3JDdXN0b20sc3Q9dC5BY3Rpb25UeXBlcy5VcGRhdGUsY3Q9dC5BY3Rpb25UeXBlcy5DaG9vc2UsdXQ9dC5BY3Rpb25UeXBlcy5QdXJlLGh0PUwoe3R5cGU6cnR9KTtmdW5jdGlvbiBmdCh0LGUpe3JldHVybiBlJiZlW3RdfHx2b2lkIDB9ZnVuY3Rpb24gbHQodCxuKXt2YXIgcjtpZihBKHQpfHxcIm51bWJlclwiPT10eXBlb2YgdClyPU4oaT1mdCh0LG4pKT97dHlwZTp0LGV4ZWM6aX06aXx8e3R5cGU6dCxleGVjOnZvaWQgMH07ZWxzZSBpZihOKHQpKXI9e3R5cGU6dC5uYW1lfHx0LnRvU3RyaW5nKCksZXhlYzp0fTtlbHNle3ZhciBpO2lmKE4oaT1mdCh0LnR5cGUsbikpKXI9ZShlKHt9LHQpLHtleGVjOml9KTtlbHNlIGlmKGkpe3ZhciBvPWkudHlwZXx8dC50eXBlO3I9ZShlKGUoe30saSksdCkse3R5cGU6b30pfWVsc2Ugcj10fXJldHVybiByfXZhciBkdD1mdW5jdGlvbih0LGUpe3JldHVybiB0PyhUKHQpP3Q6W3RdKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBsdCh0LGUpfSkpOltdfTtmdW5jdGlvbiBwdCh0KXt2YXIgbj1sdCh0KTtyZXR1cm4gZShlKHtpZDpBKHQpP3Q6bi5pZH0sbikse3R5cGU6bi50eXBlfSl9ZnVuY3Rpb24gdnQoZSl7cmV0dXJuIEEoZSk/e3R5cGU6VyxldmVudDplfTp5dChlLHt0bzp0LlNwZWNpYWxUYXJnZXRzLkludGVybmFsfSl9ZnVuY3Rpb24geXQodCxlKXtyZXR1cm57dG86ZT9lLnRvOnZvaWQgMCx0eXBlOlksZXZlbnQ6Tih0KT90OlYodCksZGVsYXk6ZT9lLmRlbGF5OnZvaWQgMCxpZDplJiZ2b2lkIDAhPT1lLmlkP2UuaWQ6Tih0KT90Lm5hbWU6dSh0KX19ZnVuY3Rpb24gZ3QobixyKXtyZXR1cm4geXQobixlKGUoe30scikse3RvOnQuU3BlY2lhbFRhcmdldHMuUGFyZW50fSkpfWZ1bmN0aW9uIG10KCl7cmV0dXJuIGd0KHN0KX12YXIgU3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm57Y29udGV4dDp0LGV2ZW50OmV9fTt2YXIgeHQ9ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6WixzZW5kSWQ6dH19O2Z1bmN0aW9uIHd0KGUpe3ZhciBuPXB0KGUpO3JldHVybnt0eXBlOnQuQWN0aW9uVHlwZXMuU3RhcnQsYWN0aXZpdHk6bixleGVjOnZvaWQgMH19ZnVuY3Rpb24gYnQoZSl7dmFyIG49TihlKT9lOnB0KGUpO3JldHVybnt0eXBlOnQuQWN0aW9uVHlwZXMuU3RvcCxhY3Rpdml0eTpuLGV4ZWM6dm9pZCAwfX12YXIgX3Q9ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6ZXQsYXNzaWdubWVudDp0fX07ZnVuY3Rpb24gRXQoZSxuKXt2YXIgcj1uP1wiI1wiLmNvbmNhdChuKTpcIlwiO3JldHVyblwiXCIuY29uY2F0KHQuQWN0aW9uVHlwZXMuQWZ0ZXIsXCIoXCIpLmNvbmNhdChlLFwiKVwiKS5jb25jYXQocil9ZnVuY3Rpb24gVHQoZSxuKXt2YXIgcj1cIlwiLmNvbmNhdCh0LkFjdGlvblR5cGVzLkRvbmVTdGF0ZSxcIi5cIikuY29uY2F0KGUpLGk9e3R5cGU6cixkYXRhOm4sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gcn19O3JldHVybiBpfWZ1bmN0aW9uIE50KGUsbil7dmFyIHI9XCJcIi5jb25jYXQodC5BY3Rpb25UeXBlcy5Eb25lSW52b2tlLFwiLlwiKS5jb25jYXQoZSksaT17dHlwZTpyLGRhdGE6bix0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiByfX07cmV0dXJuIGl9ZnVuY3Rpb24gQXQoZSxuKXt2YXIgcj1cIlwiLmNvbmNhdCh0LkFjdGlvblR5cGVzLkVycm9yUGxhdGZvcm0sXCIuXCIpLmNvbmNhdChlKSxpPXt0eXBlOnIsZGF0YTpuLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fTtyZXR1cm4gaX1mdW5jdGlvbiBPdCh0LG4pe3JldHVybiB5dCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZX0pLGUoZSh7fSxuKSx7dG86dH0pKX1mdW5jdGlvbiBQdChuLHIsYSxzLGMsdSl7dm9pZCAwPT09dSYmKHU9ITEpO3ZhciBoPWkodT9bW10sY106YihjLChmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlPT09ZXR9KSksMiksZj1oWzBdLGw9aFsxXSxkPWYubGVuZ3RoP0UoYSxzLGYscik6YSxwPXU/W2FdOnZvaWQgMDtyZXR1cm5bZyhsLm1hcCgoZnVuY3Rpb24oYSl7dmFyIGM7c3dpdGNoKGEudHlwZSl7Y2FzZSBXOnJldHVybnt0eXBlOlcsX2V2ZW50OkwoYS5ldmVudCl9O2Nhc2UgWTpyZXR1cm4gZnVuY3Rpb24odCxuLHIsaSl7dmFyIG8sYT17X2V2ZW50OnJ9LHM9TChOKHQuZXZlbnQpP3QuZXZlbnQobixyLmRhdGEsYSk6dC5ldmVudCk7aWYoQSh0LmRlbGF5KSl7dmFyIGM9aSYmaVt0LmRlbGF5XTtvPU4oYyk/YyhuLHIuZGF0YSxhKTpjfWVsc2Ugbz1OKHQuZGVsYXkpP3QuZGVsYXkobixyLmRhdGEsYSk6dC5kZWxheTt2YXIgdT1OKHQudG8pP3QudG8obixyLmRhdGEsYSk6dC50bztyZXR1cm4gZShlKHt9LHQpLHt0bzp1LF9ldmVudDpzLGV2ZW50OnMuZGF0YSxkZWxheTpvfSl9KGEsZCxzLG4ub3B0aW9ucy5kZWxheXMpO2Nhc2UgbnQ6cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gZShlKHt9LHQpLHt2YWx1ZTpBKHQuZXhwcik/dC5leHByOnQuZXhwcihuLHIuZGF0YSx7X2V2ZW50OnJ9KX0pfShhLGQscyk7Y2FzZSBjdDppZighKHY9bnVsbD09PShjPWEuY29uZHMuZmluZCgoZnVuY3Rpb24odCl7dmFyIGU9Tyh0LmNvbmQsbi5vcHRpb25zLmd1YXJkcyk7cmV0dXJuIWV8fFIobixlLGQscyxyKX0pKSl8fHZvaWQgMD09PWM/dm9pZCAwOmMuYWN0aW9ucykpcmV0dXJuW107dmFyIGg9aShQdChuLHIsZCxzLGR0KFModiksbi5vcHRpb25zLmFjdGlvbnMpLHUpLDIpLGY9aFswXSxsPWhbMV07cmV0dXJuIGQ9bCxudWxsPT1wfHxwLnB1c2goZCksZjtjYXNlIHV0OnZhciB2O2lmKCEodj1hLmdldChkLHMuZGF0YSkpKXJldHVybltdO3ZhciB5PWkoUHQobixyLGQscyxkdChTKHYpLG4ub3B0aW9ucy5hY3Rpb25zKSx1KSwyKSxnPXlbMF0sbT15WzFdO3JldHVybiBkPW0sbnVsbD09cHx8cC5wdXNoKGQpLGc7Y2FzZSBROnJldHVybiBmdW5jdGlvbihlLG4scil7dmFyIGk9TihlLmFjdGl2aXR5KT9lLmFjdGl2aXR5KG4sci5kYXRhKTplLmFjdGl2aXR5LG89XCJzdHJpbmdcIj09dHlwZW9mIGk/e2lkOml9Omk7cmV0dXJue3R5cGU6dC5BY3Rpb25UeXBlcy5TdG9wLGFjdGl2aXR5Om99fShhLGQscyk7Y2FzZSBldDpkPUUoZCxzLFthXSxyKSxudWxsPT1wfHxwLnB1c2goZCk7YnJlYWs7ZGVmYXVsdDp2YXIgeD1sdChhLG4ub3B0aW9ucy5hY3Rpb25zKSx3PXguZXhlYztpZih3JiZwKXt2YXIgYj1wLmxlbmd0aC0xO3g9ZShlKHt9LHgpLHtleGVjOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW24tMV09YXJndW1lbnRzW25dO3cuYXBwbHkodm9pZCAwLG8oW3BbYl1dLGkoZSksITEpKX19KX1yZXR1cm4geH19KSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hIXR9KSkpLGRdfXZhciBrdD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGUsbixyPXRoaXM7dGhpcy5hY3Rpb25zPVtdLHRoaXMuYWN0aXZpdGllcz1hLHRoaXMubWV0YT17fSx0aGlzLmV2ZW50cz1bXSx0aGlzLnZhbHVlPXQudmFsdWUsdGhpcy5jb250ZXh0PXQuY29udGV4dCx0aGlzLl9ldmVudD10Ll9ldmVudCx0aGlzLl9zZXNzaW9uaWQ9dC5fc2Vzc2lvbmlkLHRoaXMuZXZlbnQ9dGhpcy5fZXZlbnQuZGF0YSx0aGlzLmhpc3RvcnlWYWx1ZT10Lmhpc3RvcnlWYWx1ZSx0aGlzLmhpc3Rvcnk9dC5oaXN0b3J5LHRoaXMuYWN0aW9ucz10LmFjdGlvbnN8fFtdLHRoaXMuYWN0aXZpdGllcz10LmFjdGl2aXRpZXN8fGEsdGhpcy5tZXRhPSh2b2lkIDA9PT0obj10LmNvbmZpZ3VyYXRpb24pJiYobj1bXSksbi5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWUubWV0YSYmKHRbZS5pZF09ZS5tZXRhKSx0fSkse30pKSx0aGlzLmV2ZW50cz10LmV2ZW50c3x8W10sdGhpcy5tYXRjaGVzPXRoaXMubWF0Y2hlcy5iaW5kKHRoaXMpLHRoaXMudG9TdHJpbmdzPXRoaXMudG9TdHJpbmdzLmJpbmQodGhpcyksdGhpcy5jb25maWd1cmF0aW9uPXQuY29uZmlndXJhdGlvbix0aGlzLnRyYW5zaXRpb25zPXQudHJhbnNpdGlvbnMsdGhpcy5jaGlsZHJlbj10LmNoaWxkcmVuLHRoaXMuZG9uZT0hIXQuZG9uZSx0aGlzLnRhZ3M9bnVsbCE9PShlPUFycmF5LmlzQXJyYXkodC50YWdzKT9uZXcgU2V0KHQudGFncyk6dC50YWdzKSYmdm9pZCAwIT09ZT9lOm5ldyBTZXQsdGhpcy5tYWNoaW5lPXQubWFjaGluZSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIm5leHRFdmVudHNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBvKFtdLGkobmV3IFNldChnKG8oW10saSh0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQub3duRXZlbnRzfSkpKSwhMSkpKSksITEpfShyLmNvbmZpZ3VyYXRpb24pfX0pfXJldHVybiB0LmZyb209ZnVuY3Rpb24oZSxuKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHQ/ZS5jb250ZXh0IT09bj9uZXcgdCh7dmFsdWU6ZS52YWx1ZSxjb250ZXh0Om4sX2V2ZW50OmUuX2V2ZW50LF9zZXNzaW9uaWQ6bnVsbCxoaXN0b3J5VmFsdWU6ZS5oaXN0b3J5VmFsdWUsaGlzdG9yeTplLmhpc3RvcnksYWN0aW9uczpbXSxhY3Rpdml0aWVzOmUuYWN0aXZpdGllcyxtZXRhOnt9LGV2ZW50czpbXSxjb25maWd1cmF0aW9uOltdLHRyYW5zaXRpb25zOltdLGNoaWxkcmVuOnt9fSk6ZTpuZXcgdCh7dmFsdWU6ZSxjb250ZXh0Om4sX2V2ZW50Omh0LF9zZXNzaW9uaWQ6bnVsbCxoaXN0b3J5VmFsdWU6dm9pZCAwLGhpc3Rvcnk6dm9pZCAwLGFjdGlvbnM6W10sYWN0aXZpdGllczp2b2lkIDAsbWV0YTp2b2lkIDAsZXZlbnRzOltdLGNvbmZpZ3VyYXRpb246W10sdHJhbnNpdGlvbnM6W10sY2hpbGRyZW46e319KX0sdC5jcmVhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KGUpfSx0LmluZXJ0PWZ1bmN0aW9uKGUsbil7aWYoZSBpbnN0YW5jZW9mIHQpe2lmKCFlLmFjdGlvbnMubGVuZ3RoKXJldHVybiBlO3ZhciByPWh0O3JldHVybiBuZXcgdCh7dmFsdWU6ZS52YWx1ZSxjb250ZXh0Om4sX2V2ZW50OnIsX3Nlc3Npb25pZDpudWxsLGhpc3RvcnlWYWx1ZTplLmhpc3RvcnlWYWx1ZSxoaXN0b3J5OmUuaGlzdG9yeSxhY3Rpdml0aWVzOmUuYWN0aXZpdGllcyxjb25maWd1cmF0aW9uOmUuY29uZmlndXJhdGlvbix0cmFuc2l0aW9uczpbXSxjaGlsZHJlbjp7fX0pfXJldHVybiB0LmZyb20oZSxuKX0sdC5wcm90b3R5cGUudG9TdHJpbmdzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpZih2b2lkIDA9PT10JiYodD10aGlzLnZhbHVlKSx2b2lkIDA9PT1lJiYoZT1cIi5cIiksQSh0KSlyZXR1cm5bdF07dmFyIHI9cyh0KTtyZXR1cm4gci5jb25jYXQuYXBwbHkocixvKFtdLGkoci5tYXAoKGZ1bmN0aW9uKHIpe3JldHVybiBuLnRvU3RyaW5ncyh0W3JdLGUpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHIrZSt0fSkpfSkpKSwhMSkpfSx0LnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXt2YXIgdD10aGlzLHI9KHQuY29uZmlndXJhdGlvbix0LnRyYW5zaXRpb25zLHQudGFncyksaT0odC5tYWNoaW5lLG4odCxbXCJjb25maWd1cmF0aW9uXCIsXCJ0cmFuc2l0aW9uc1wiLFwidGFnc1wiLFwibWFjaGluZVwiXSkpO3JldHVybiBlKGUoe30saSkse3RhZ3M6QXJyYXkuZnJvbShyKX0pfSx0LnByb3RvdHlwZS5tYXRjaGVzPWZ1bmN0aW9uKHQpe3JldHVybiBjKHQsdGhpcy52YWx1ZSl9LHQucHJvdG90eXBlLmhhc1RhZz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50YWdzLmhhcyh0KX0sdC5wcm90b3R5cGUuY2FuPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0aGlzLm1hY2hpbmUsISEobnVsbD09PShlPXRoaXMubWFjaGluZSl8fHZvaWQgMD09PWU/dm9pZCAwOmUudHJhbnNpdGlvbih0aGlzLHQpLmNoYW5nZWQpfSx0fSgpLEl0PVtdLGp0PWZ1bmN0aW9uKHQsZSl7SXQucHVzaCh0KTt2YXIgbj1lKHQpO3JldHVybiBJdC5wb3AoKSxufTtmdW5jdGlvbiBDdCh0KXtyZXR1cm57aWQ6dCxzZW5kOmZ1bmN0aW9uKCl7fSxzdWJzY3JpYmU6ZnVuY3Rpb24oKXtyZXR1cm57dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXt9fX0sZ2V0U25hcHNob3Q6ZnVuY3Rpb24oKXt9LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybntpZDp0fX19fWZ1bmN0aW9uIFZ0KHQsZSxuKXt2YXIgcj1DdChlKTtpZihyLmRlZmVycmVkPSEwLGsodCkpe3ZhciBpPXIuc3RhdGU9anQodm9pZCAwLChmdW5jdGlvbigpe3JldHVybihuP3Qud2l0aENvbnRleHQobik6dCkuaW5pdGlhbFN0YXRlfSkpO3IuZ2V0U25hcHNob3Q9ZnVuY3Rpb24oKXtyZXR1cm4gaX19cmV0dXJuIHJ9ZnVuY3Rpb24gTHQodCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpe3ZhciBlPXt0eXBlOnQsdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdH19O3JldHVybiBlfXJldHVybiB0fWZ1bmN0aW9uIER0KHQpe3JldHVybiBlKGUoe3R5cGU6aXR9LHQpLHt0b0pTT046ZnVuY3Rpb24oKXt0Lm9uRG9uZSx0Lm9uRXJyb3I7dmFyIHI9bih0LFtcIm9uRG9uZVwiLFwib25FcnJvclwiXSk7cmV0dXJuIGUoZSh7fSxyKSx7dHlwZTppdCxzcmM6THQodC5zcmMpfSl9fSl9dmFyIFJ0PXt9LE10PWZ1bmN0aW9uKHQpe3JldHVyblwiI1wiPT09dFswXX0senQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKHQsbixjKXt2YXIgdSxoPXRoaXM7dm9pZCAwPT09YyYmKGM9XCJjb250ZXh0XCJpbiB0P3QuY29udGV4dDp2b2lkIDApLHRoaXMuY29uZmlnPXQsdGhpcy5fY29udGV4dD1jLHRoaXMub3JkZXI9LTEsdGhpcy5fX3hzdGF0ZW5vZGU9ITAsdGhpcy5fX2NhY2hlPXtldmVudHM6dm9pZCAwLHJlbGF0aXZlVmFsdWU6bmV3IE1hcCxpbml0aWFsU3RhdGVWYWx1ZTp2b2lkIDAsaW5pdGlhbFN0YXRlOnZvaWQgMCxvbjp2b2lkIDAsdHJhbnNpdGlvbnM6dm9pZCAwLGNhbmRpZGF0ZXM6e30sZGVsYXllZFRyYW5zaXRpb25zOnZvaWQgMH0sdGhpcy5pZE1hcD17fSx0aGlzLnRhZ3M9W10sdGhpcy5vcHRpb25zPU9iamVjdC5hc3NpZ24oe2FjdGlvbnM6e30sZ3VhcmRzOnt9LHNlcnZpY2VzOnt9LGFjdGl2aXRpZXM6e30sZGVsYXlzOnt9fSxuKSx0aGlzLnBhcmVudD10aGlzLm9wdGlvbnMuX3BhcmVudCx0aGlzLmtleT10aGlzLmNvbmZpZy5rZXl8fHRoaXMub3B0aW9ucy5fa2V5fHx0aGlzLmNvbmZpZy5pZHx8XCIobWFjaGluZSlcIix0aGlzLm1hY2hpbmU9dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQubWFjaGluZTp0aGlzLHRoaXMucGF0aD10aGlzLnBhcmVudD90aGlzLnBhcmVudC5wYXRoLmNvbmNhdCh0aGlzLmtleSk6W10sdGhpcy5kZWxpbWl0ZXI9dGhpcy5jb25maWcuZGVsaW1pdGVyfHwodGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQuZGVsaW1pdGVyOlwiLlwiKSx0aGlzLmlkPXRoaXMuY29uZmlnLmlkfHxvKFt0aGlzLm1hY2hpbmUua2V5XSxpKHRoaXMucGF0aCksITEpLmpvaW4odGhpcy5kZWxpbWl0ZXIpLHRoaXMudmVyc2lvbj10aGlzLnBhcmVudD90aGlzLnBhcmVudC52ZXJzaW9uOnRoaXMuY29uZmlnLnZlcnNpb24sdGhpcy50eXBlPXRoaXMuY29uZmlnLnR5cGV8fCh0aGlzLmNvbmZpZy5wYXJhbGxlbD9cInBhcmFsbGVsXCI6dGhpcy5jb25maWcuc3RhdGVzJiZzKHRoaXMuY29uZmlnLnN0YXRlcykubGVuZ3RoP1wiY29tcG91bmRcIjp0aGlzLmNvbmZpZy5oaXN0b3J5P1wiaGlzdG9yeVwiOlwiYXRvbWljXCIpLHRoaXMuc2NoZW1hPXRoaXMucGFyZW50P3RoaXMubWFjaGluZS5zY2hlbWE6bnVsbCE9PSh1PXRoaXMuY29uZmlnLnNjaGVtYSkmJnZvaWQgMCE9PXU/dTp7fSx0aGlzLmRlc2NyaXB0aW9uPXRoaXMuY29uZmlnLmRlc2NyaXB0aW9uLHRoaXMuaW5pdGlhbD10aGlzLmNvbmZpZy5pbml0aWFsLHRoaXMuc3RhdGVzPXRoaXMuY29uZmlnLnN0YXRlcz9kKHRoaXMuY29uZmlnLnN0YXRlcywoZnVuY3Rpb24odCxuKXt2YXIgcixpPW5ldyBhKHQse19wYXJlbnQ6aCxfa2V5Om59KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihoLmlkTWFwLGUoKChyPXt9KVtpLmlkXT1pLHIpLGkuaWRNYXApKSxpfSkpOlJ0O3ZhciBmPTA7IWZ1bmN0aW9uIHQoZSl7dmFyIG4saTtlLm9yZGVyPWYrKzt0cnl7Zm9yKHZhciBvPXIoVShlKSksYT1vLm5leHQoKTshYS5kb25lO2E9by5uZXh0KCkpe3QoYS52YWx1ZSl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihpPW8ucmV0dXJuKSYmaS5jYWxsKG8pfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19KHRoaXMpLHRoaXMuaGlzdG9yeT0hMD09PXRoaXMuY29uZmlnLmhpc3Rvcnk/XCJzaGFsbG93XCI6dGhpcy5jb25maWcuaGlzdG9yeXx8ITEsdGhpcy5fdHJhbnNpZW50PSEhdGhpcy5jb25maWcuYWx3YXlzfHwhIXRoaXMuY29uZmlnLm9uJiYoQXJyYXkuaXNBcnJheSh0aGlzLmNvbmZpZy5vbik/dGhpcy5jb25maWcub24uc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuXCJcIj09PXQuZXZlbnR9KSk6XCJcImluIHRoaXMuY29uZmlnLm9uKSx0aGlzLnN0cmljdD0hIXRoaXMuY29uZmlnLnN0cmljdCx0aGlzLm9uRW50cnk9Uyh0aGlzLmNvbmZpZy5lbnRyeXx8dGhpcy5jb25maWcub25FbnRyeSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbHQodCl9KSksdGhpcy5vbkV4aXQ9Uyh0aGlzLmNvbmZpZy5leGl0fHx0aGlzLmNvbmZpZy5vbkV4aXQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGx0KHQpfSkpLHRoaXMubWV0YT10aGlzLmNvbmZpZy5tZXRhLHRoaXMuZG9uZURhdGE9XCJmaW5hbFwiPT09dGhpcy50eXBlP3RoaXMuY29uZmlnLmRhdGE6dm9pZCAwLHRoaXMuaW52b2tlPVModGhpcy5jb25maWcuaW52b2tlKS5tYXAoKGZ1bmN0aW9uKHQsbil7dmFyIHIsaTtpZihrKHQpKXJldHVybiBoLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlcz1lKCgocj17fSlbdC5pZF09dCxyKSxoLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlcyksRHQoe3NyYzp0LmlkLGlkOnQuaWR9KTtpZihBKHQuc3JjKSlyZXR1cm4gRHQoZShlKHt9LHQpLHtpZDp0LmlkfHx0LnNyYyxzcmM6dC5zcmN9KSk7aWYoayh0LnNyYyl8fE4odC5zcmMpKXt2YXIgbz1cIlwiLmNvbmNhdChoLmlkLFwiOmludm9jYXRpb25bXCIpLmNvbmNhdChuLFwiXVwiKTtyZXR1cm4gaC5tYWNoaW5lLm9wdGlvbnMuc2VydmljZXM9ZSgoKGk9e30pW29dPXQuc3JjLGkpLGgubWFjaGluZS5vcHRpb25zLnNlcnZpY2VzKSxEdChlKGUoe2lkOm99LHQpLHtzcmM6b30pKX12YXIgYT10LnNyYztyZXR1cm4gRHQoZShlKHtpZDphLnR5cGV9LHQpLHtzcmM6YX0pKX0pKSx0aGlzLmFjdGl2aXRpZXM9Uyh0aGlzLmNvbmZpZy5hY3Rpdml0aWVzKS5jb25jYXQodGhpcy5pbnZva2UpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHB0KHQpfSkpLHRoaXMudHJhbnNpdGlvbj10aGlzLnRyYW5zaXRpb24uYmluZCh0aGlzKSx0aGlzLnRhZ3M9Uyh0aGlzLmNvbmZpZy50YWdzKX1yZXR1cm4gYS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oKXt0aGlzLl9fY2FjaGUudHJhbnNpdGlvbnN8fEIodGhpcykuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQub259KSl9LGEucHJvdG90eXBlLndpdGhDb25maWc9ZnVuY3Rpb24odCxuKXt2YXIgcj10aGlzLm9wdGlvbnMsaT1yLmFjdGlvbnMsbz1yLmFjdGl2aXRpZXMscz1yLmd1YXJkcyxjPXIuc2VydmljZXMsdT1yLmRlbGF5cztyZXR1cm4gbmV3IGEodGhpcy5jb25maWcse2FjdGlvbnM6ZShlKHt9LGkpLHQuYWN0aW9ucyksYWN0aXZpdGllczplKGUoe30sbyksdC5hY3Rpdml0aWVzKSxndWFyZHM6ZShlKHt9LHMpLHQuZ3VhcmRzKSxzZXJ2aWNlczplKGUoe30sYyksdC5zZXJ2aWNlcyksZGVsYXlzOmUoZSh7fSx1KSx0LmRlbGF5cyl9LG51bGwhPW4/bjp0aGlzLmNvbnRleHQpfSxhLnByb3RvdHlwZS53aXRoQ29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGEodGhpcy5jb25maWcsdGhpcy5vcHRpb25zLHQpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJjb250ZXh0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiBOKHRoaXMuX2NvbnRleHQpP3RoaXMuX2NvbnRleHQoKTp0aGlzLl9jb250ZXh0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImRlZmluaXRpb25cIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJue2lkOnRoaXMuaWQsa2V5OnRoaXMua2V5LHZlcnNpb246dGhpcy52ZXJzaW9uLGNvbnRleHQ6dGhpcy5jb250ZXh0LHR5cGU6dGhpcy50eXBlLGluaXRpYWw6dGhpcy5pbml0aWFsLGhpc3Rvcnk6dGhpcy5oaXN0b3J5LHN0YXRlczpkKHRoaXMuc3RhdGVzLChmdW5jdGlvbih0KXtyZXR1cm4gdC5kZWZpbml0aW9ufSkpLG9uOnRoaXMub24sdHJhbnNpdGlvbnM6dGhpcy50cmFuc2l0aW9ucyxlbnRyeTp0aGlzLm9uRW50cnksZXhpdDp0aGlzLm9uRXhpdCxhY3Rpdml0aWVzOnRoaXMuYWN0aXZpdGllc3x8W10sbWV0YTp0aGlzLm1ldGEsb3JkZXI6dGhpcy5vcmRlcnx8LTEsZGF0YTp0aGlzLmRvbmVEYXRhLGludm9rZTp0aGlzLmludm9rZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLHRhZ3M6dGhpcy50YWdzfX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWZpbml0aW9ufSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJvblwiLHtnZXQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9fY2FjaGUub24pcmV0dXJuIHRoaXMuX19jYWNoZS5vbjt2YXIgdD10aGlzLnRyYW5zaXRpb25zO3JldHVybiB0aGlzLl9fY2FjaGUub249dC5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZS5ldmVudFR5cGVdPXRbZS5ldmVudFR5cGVdfHxbXSx0W2UuZXZlbnRUeXBlXS5wdXNoKGUpLHR9KSx7fSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwiYWZ0ZXJcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19jYWNoZS5kZWxheWVkVHJhbnNpdGlvbnN8fCh0aGlzLl9fY2FjaGUuZGVsYXllZFRyYW5zaXRpb25zPXRoaXMuZ2V0RGVsYXllZFRyYW5zaXRpb25zKCksdGhpcy5fX2NhY2hlLmRlbGF5ZWRUcmFuc2l0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwidHJhbnNpdGlvbnNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19jYWNoZS50cmFuc2l0aW9uc3x8KHRoaXMuX19jYWNoZS50cmFuc2l0aW9ucz10aGlzLmZvcm1hdFRyYW5zaXRpb25zKCksdGhpcy5fX2NhY2hlLnRyYW5zaXRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhLnByb3RvdHlwZS5nZXRDYW5kaWRhdGVzPWZ1bmN0aW9uKHQpe2lmKHRoaXMuX19jYWNoZS5jYW5kaWRhdGVzW3RdKXJldHVybiB0aGlzLl9fY2FjaGUuY2FuZGlkYXRlc1t0XTt2YXIgZT1cIlwiPT09dCxuPXRoaXMudHJhbnNpdGlvbnMuZmlsdGVyKChmdW5jdGlvbihuKXt2YXIgcj1uLmV2ZW50VHlwZT09PXQ7cmV0dXJuIGU/cjpyfHxcIipcIj09PW4uZXZlbnRUeXBlfSkpO3JldHVybiB0aGlzLl9fY2FjaGUuY2FuZGlkYXRlc1t0XT1uLG59LGEucHJvdG90eXBlLmdldERlbGF5ZWRUcmFuc2l0aW9ucz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLmNvbmZpZy5hZnRlcjtpZighbilyZXR1cm5bXTt2YXIgcj1mdW5jdGlvbihlLG4pe3ZhciByPUV0KE4oZSk/XCJcIi5jb25jYXQodC5pZCxcIjpkZWxheVtcIikuY29uY2F0KG4sXCJdXCIpOmUsdC5pZCk7cmV0dXJuIHQub25FbnRyeS5wdXNoKHl0KHIse2RlbGF5OmV9KSksdC5vbkV4aXQucHVzaCh4dChyKSkscn07cmV0dXJuKFQobik/bi5tYXAoKGZ1bmN0aW9uKHQsbil7dmFyIGk9cih0LmRlbGF5LG4pO3JldHVybiBlKGUoe30sdCkse2V2ZW50Oml9KX0pKTpnKHMobikubWFwKChmdW5jdGlvbih0LGkpe3ZhciBvPW5bdF0sYT1BKG8pP3t0YXJnZXQ6b306byxzPWlzTmFOKCt0KT90Oit0LGM9cihzLGkpO3JldHVybiBTKGEpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUoZSh7fSx0KSx7ZXZlbnQ6YyxkZWxheTpzfSl9KSl9KSkpKS5tYXAoKGZ1bmN0aW9uKG4pe3ZhciByPW4uZGVsYXk7cmV0dXJuIGUoZSh7fSx0LmZvcm1hdFRyYW5zaXRpb24obikpLHtkZWxheTpyfSl9KSl9LGEucHJvdG90eXBlLmdldFN0YXRlTm9kZXM9ZnVuY3Rpb24odCl7dmFyIGUsbj10aGlzO2lmKCF0KXJldHVybltdO3ZhciByPXQgaW5zdGFuY2VvZiBrdD90LnZhbHVlOmYodCx0aGlzLmRlbGltaXRlcik7aWYoQShyKSl7dmFyIGk9dGhpcy5nZXRTdGF0ZU5vZGUocikuaW5pdGlhbDtyZXR1cm4gdm9pZCAwIT09aT90aGlzLmdldFN0YXRlTm9kZXMoKChlPXt9KVtyXT1pLGUpKTpbdGhpcyx0aGlzLnN0YXRlc1tyXV19dmFyIG89cyhyKSxhPW8ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbi5nZXRTdGF0ZU5vZGUodCl9KSk7cmV0dXJuIGEucHVzaCh0aGlzKSxhLmNvbmNhdChvLnJlZHVjZSgoZnVuY3Rpb24odCxlKXt2YXIgaT1uLmdldFN0YXRlTm9kZShlKS5nZXRTdGF0ZU5vZGVzKHJbZV0pO3JldHVybiB0LmNvbmNhdChpKX0pLFtdKSl9LGEucHJvdG90eXBlLmhhbmRsZXM9ZnVuY3Rpb24odCl7dmFyIGU9dSh0KTtyZXR1cm4gdGhpcy5ldmVudHMuaW5jbHVkZXMoZSl9LGEucHJvdG90eXBlLnJlc29sdmVTdGF0ZT1mdW5jdGlvbih0KXt2YXIgbj1BcnJheS5mcm9tKEooW10sdGhpcy5nZXRTdGF0ZU5vZGVzKHQudmFsdWUpKSk7cmV0dXJuIG5ldyBrdChlKGUoe30sdCkse3ZhbHVlOnRoaXMucmVzb2x2ZSh0LnZhbHVlKSxjb25maWd1cmF0aW9uOm4sZG9uZTpIKG4sdGhpcyksdGFnczpHKG4pfSkpfSxhLnByb3RvdHlwZS50cmFuc2l0aW9uTGVhZk5vZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMuZ2V0U3RhdGVOb2RlKHQpLm5leHQoZSxuKTtyZXR1cm4gciYmci50cmFuc2l0aW9ucy5sZW5ndGg/cjp0aGlzLm5leHQoZSxuKX0sYS5wcm90b3R5cGUudHJhbnNpdGlvbkNvbXBvdW5kTm9kZT1mdW5jdGlvbih0LGUsbil7dmFyIHI9cyh0KSxpPXRoaXMuZ2V0U3RhdGVOb2RlKHJbMF0pLl90cmFuc2l0aW9uKHRbclswXV0sZSxuKTtyZXR1cm4gaSYmaS50cmFuc2l0aW9ucy5sZW5ndGg/aTp0aGlzLm5leHQoZSxuKX0sYS5wcm90b3R5cGUudHJhbnNpdGlvblBhcmFsbGVsTm9kZT1mdW5jdGlvbih0LGUsbil7dmFyIGksbyxhPXt9O3RyeXtmb3IodmFyIGM9cihzKHQpKSx1PWMubmV4dCgpOyF1LmRvbmU7dT1jLm5leHQoKSl7dmFyIGg9dS52YWx1ZSxmPXRbaF07aWYoZil7dmFyIGw9dGhpcy5nZXRTdGF0ZU5vZGUoaCkuX3RyYW5zaXRpb24oZixlLG4pO2wmJihhW2hdPWwpfX19Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7dSYmIXUuZG9uZSYmKG89Yy5yZXR1cm4pJiZvLmNhbGwoYyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXZhciBkPXMoYSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gYVt0XX0pKSxwPWcoZC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRyYW5zaXRpb25zfSkpKTtpZighZC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC50cmFuc2l0aW9ucy5sZW5ndGg+MH0pKSlyZXR1cm4gdGhpcy5uZXh0KGUsbik7dmFyIHY9ZyhkLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZW50cnlTZXR9KSkpLHk9ZyhzKGEpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGFbdF0uY29uZmlndXJhdGlvbn0pKSk7cmV0dXJue3RyYW5zaXRpb25zOnAsZW50cnlTZXQ6dixleGl0U2V0OmcoZC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmV4aXRTZXR9KSkpLGNvbmZpZ3VyYXRpb246eSxzb3VyY2U6ZSxhY3Rpb25zOmcocyhhKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBhW3RdLmFjdGlvbnN9KSkpfX0sYS5wcm90b3R5cGUuX3RyYW5zaXRpb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiBBKHQpP3RoaXMudHJhbnNpdGlvbkxlYWZOb2RlKHQsZSxuKToxPT09cyh0KS5sZW5ndGg/dGhpcy50cmFuc2l0aW9uQ29tcG91bmROb2RlKHQsZSxuKTp0aGlzLnRyYW5zaXRpb25QYXJhbGxlbE5vZGUodCxlLG4pfSxhLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQsZSl7dmFyIG4sYSxzLHU9dGhpcyxoPWUubmFtZSxsPVtdLGQ9W107dHJ5e2Zvcih2YXIgcD1yKHRoaXMuZ2V0Q2FuZGlkYXRlcyhoKSkseT1wLm5leHQoKTsheS5kb25lO3k9cC5uZXh0KCkpe3ZhciBtPXkudmFsdWUsUz1tLmNvbmQseD1tLmluLHc9dC5jb250ZXh0LGI9IXh8fChBKHgpJiZNdCh4KT90Lm1hdGNoZXMoZih0aGlzLmdldFN0YXRlTm9kZUJ5SWQoeCkucGF0aCx0aGlzLmRlbGltaXRlcikpOmMoZih4LHRoaXMuZGVsaW1pdGVyKSx2KHRoaXMucGF0aC5zbGljZSgwLC0yKSkodC52YWx1ZSkpKSxfPSExO3RyeXtfPSFTfHxSKHRoaXMubWFjaGluZSxTLHcsZSx0KX1jYXRjaCh0KXt0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gZXZhbHVhdGUgZ3VhcmQgJ1wiLmNvbmNhdChTLm5hbWV8fFMudHlwZSxcIicgaW4gdHJhbnNpdGlvbiBmb3IgZXZlbnQgJ1wiKS5jb25jYXQoaCxcIicgaW4gc3RhdGUgbm9kZSAnXCIpLmNvbmNhdCh0aGlzLmlkLFwiJzpcXG5cIikuY29uY2F0KHQubWVzc2FnZSkpfWlmKF8mJmIpe3ZvaWQgMCE9PW0udGFyZ2V0JiYoZD1tLnRhcmdldCksbC5wdXNoLmFwcGx5KGwsbyhbXSxpKG0uYWN0aW9ucyksITEpKSxzPW07YnJlYWt9fX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt5JiYheS5kb25lJiYoYT1wLnJldHVybikmJmEuY2FsbChwKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19aWYocyl7aWYoIWQubGVuZ3RoKXJldHVybnt0cmFuc2l0aW9uczpbc10sZW50cnlTZXQ6W10sZXhpdFNldDpbXSxjb25maWd1cmF0aW9uOnQudmFsdWU/W3RoaXNdOltdLHNvdXJjZTp0LGFjdGlvbnM6bH07dmFyIEU9ZyhkLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHUuZ2V0UmVsYXRpdmVTdGF0ZU5vZGVzKGUsdC5oaXN0b3J5VmFsdWUpfSkpKSxUPSEhcy5pbnRlcm5hbDtyZXR1cm57dHJhbnNpdGlvbnM6W3NdLGVudHJ5U2V0OlQ/W106ZyhFLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHUubm9kZXNGcm9tQ2hpbGQodCl9KSkpLGV4aXRTZXQ6VD9bXTpbdGhpc10sY29uZmlndXJhdGlvbjpFLHNvdXJjZTp0LGFjdGlvbnM6bH19fSxhLnByb3RvdHlwZS5ub2Rlc0Zyb21DaGlsZD1mdW5jdGlvbih0KXtpZih0LmVzY2FwZXModGhpcykpcmV0dXJuW107Zm9yKHZhciBlPVtdLG49dDtuJiZuIT09dGhpczspZS5wdXNoKG4pLG49bi5wYXJlbnQ7cmV0dXJuIGUucHVzaCh0aGlzKSxlfSxhLnByb3RvdHlwZS5lc2NhcGVzPWZ1bmN0aW9uKHQpe2lmKHRoaXM9PT10KXJldHVybiExO2Zvcih2YXIgZT10aGlzLnBhcmVudDtlOyl7aWYoZT09PXQpcmV0dXJuITE7ZT1lLnBhcmVudH1yZXR1cm4hMH0sYS5wcm90b3R5cGUuZ2V0QWN0aW9ucz1mdW5jdGlvbih0LGUsbixhKXt2YXIgcyxjLHUsaCxmPUooW10sYT90aGlzLmdldFN0YXRlTm9kZXMoYS52YWx1ZSk6W3RoaXNdKSxsPXQuY29uZmlndXJhdGlvbi5sZW5ndGg/SihmLHQuY29uZmlndXJhdGlvbik6Zjt0cnl7Zm9yKHZhciBkPXIobCkscD1kLm5leHQoKTshcC5kb25lO3A9ZC5uZXh0KCkpe1goZixtPXAudmFsdWUpfHx0LmVudHJ5U2V0LnB1c2gobSl9fWNhdGNoKHQpe3M9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3AmJiFwLmRvbmUmJihjPWQucmV0dXJuKSYmYy5jYWxsKGQpfWZpbmFsbHl7aWYocyl0aHJvdyBzLmVycm9yfX10cnl7Zm9yKHZhciB2PXIoZikseT12Lm5leHQoKTsheS5kb25lO3k9di5uZXh0KCkpe3ZhciBtO1gobCxtPXkudmFsdWUpJiYhWCh0LmV4aXRTZXQsbS5wYXJlbnQpfHx0LmV4aXRTZXQucHVzaChtKX19Y2F0Y2godCl7dT17ZXJyb3I6dH19ZmluYWxseXt0cnl7eSYmIXkuZG9uZSYmKGg9di5yZXR1cm4pJiZoLmNhbGwodil9ZmluYWxseXtpZih1KXRocm93IHUuZXJyb3J9fXQuc291cmNlfHwodC5leGl0U2V0PVtdLHQuZW50cnlTZXQucHVzaCh0aGlzKSk7dmFyIFM9Zyh0LmVudHJ5U2V0Lm1hcCgoZnVuY3Rpb24ocil7dmFyIGk9W107aWYoXCJmaW5hbFwiIT09ci50eXBlKXJldHVybiBpO3ZhciBvPXIucGFyZW50O2lmKCFvLnBhcmVudClyZXR1cm4gaTtpLnB1c2goVHQoci5pZCxyLmRvbmVEYXRhKSxUdChvLmlkLHIuZG9uZURhdGE/eChyLmRvbmVEYXRhLGUsbik6dm9pZCAwKSk7dmFyIGE9by5wYXJlbnQ7cmV0dXJuXCJwYXJhbGxlbFwiPT09YS50eXBlJiZVKGEpLmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gSCh0LmNvbmZpZ3VyYXRpb24sZSl9KSkmJmkucHVzaChUdChhLmlkKSksaX0pKSk7dC5leGl0U2V0LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUub3JkZXItdC5vcmRlcn0pKSx0LmVudHJ5U2V0LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQub3JkZXItZS5vcmRlcn0pKTt2YXIgdz1uZXcgU2V0KHQuZW50cnlTZXQpLGI9bmV3IFNldCh0LmV4aXRTZXQpLF89aShbZyhBcnJheS5mcm9tKHcpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG8obyhbXSxpKHQuYWN0aXZpdGllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB3dCh0KX0pKSksITEpLGkodC5vbkVudHJ5KSwhMSl9KSkpLmNvbmNhdChTLm1hcCh2dCkpLGcoQXJyYXkuZnJvbShiKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvKG8oW10saSh0Lm9uRXhpdCksITEpLGkodC5hY3Rpdml0aWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGJ0KHQpfSkpKSwhMSl9KSkpXSwyKSxFPV9bMF0sVD1fWzFdO3JldHVybiBkdChULmNvbmNhdCh0LmFjdGlvbnMpLmNvbmNhdChFKSx0aGlzLm1hY2hpbmUub3B0aW9ucy5hY3Rpb25zKX0sYS5wcm90b3R5cGUudHJhbnNpdGlvbj1mdW5jdGlvbih0LGUsbil7dm9pZCAwPT09dCYmKHQ9dGhpcy5pbml0aWFsU3RhdGUpO3ZhciByLGEscz1MKGUpO2lmKHQgaW5zdGFuY2VvZiBrdClyPXZvaWQgMD09PW4/dDp0aGlzLnJlc29sdmVTdGF0ZShrdC5mcm9tKHQsbikpO2Vsc2V7dmFyIGM9QSh0KT90aGlzLnJlc29sdmUobCh0aGlzLmdldFJlc29sdmVkUGF0aCh0KSkpOnRoaXMucmVzb2x2ZSh0KSx1PW51bGwhPW4/bjp0aGlzLm1hY2hpbmUuY29udGV4dDtyPXRoaXMucmVzb2x2ZVN0YXRlKGt0LmZyb20oYyx1KSl9aWYodGhpcy5zdHJpY3QmJiF0aGlzLmV2ZW50cy5pbmNsdWRlcyhzLm5hbWUpJiYoYT1zLm5hbWUsIS9eKGRvbmV8ZXJyb3IpXFwuLy50ZXN0KGEpKSl0aHJvdyBuZXcgRXJyb3IoXCJNYWNoaW5lICdcIi5jb25jYXQodGhpcy5pZCxcIicgZG9lcyBub3QgYWNjZXB0IGV2ZW50ICdcIikuY29uY2F0KHMubmFtZSxcIidcIikpO3ZhciBoPXRoaXMuX3RyYW5zaXRpb24oci52YWx1ZSxyLHMpfHx7dHJhbnNpdGlvbnM6W10sY29uZmlndXJhdGlvbjpbXSxlbnRyeVNldDpbXSxleGl0U2V0OltdLHNvdXJjZTpyLGFjdGlvbnM6W119LGY9SihbXSx0aGlzLmdldFN0YXRlTm9kZXMoci52YWx1ZSkpLGQ9aC5jb25maWd1cmF0aW9uLmxlbmd0aD9KKGYsaC5jb25maWd1cmF0aW9uKTpmO3JldHVybiBoLmNvbmZpZ3VyYXRpb249byhbXSxpKGQpLCExKSx0aGlzLnJlc29sdmVUcmFuc2l0aW9uKGgscixzKX0sYS5wcm90b3R5cGUucmVzb2x2ZVJhaXNlZFRyYW5zaXRpb249ZnVuY3Rpb24odCxlLG4pe3ZhciByLGE9dC5hY3Rpb25zO3JldHVybih0PXRoaXMudHJhbnNpdGlvbih0LGUpKS5fZXZlbnQ9bix0LmV2ZW50PW4uZGF0YSwocj10LmFjdGlvbnMpLnVuc2hpZnQuYXBwbHkocixvKFtdLGkoYSksITEpKSx0fSxhLnByb3RvdHlwZS5yZXNvbHZlVHJhbnNpdGlvbj1mdW5jdGlvbihuLG8sYSxjKXt2YXIgdSxoLGY9dGhpczt2b2lkIDA9PT1hJiYoYT1odCksdm9pZCAwPT09YyYmKGM9dGhpcy5tYWNoaW5lLmNvbnRleHQpO3ZhciBsPW4uY29uZmlndXJhdGlvbixkPSFvfHxuLnRyYW5zaXRpb25zLmxlbmd0aD4wLHA9ZD8kKHRoaXMubWFjaGluZSxsKTp2b2lkIDAsdj1vP28uaGlzdG9yeVZhbHVlP28uaGlzdG9yeVZhbHVlOm4uc291cmNlP3RoaXMubWFjaGluZS5oaXN0b3J5VmFsdWUoby52YWx1ZSk6dm9pZCAwOnZvaWQgMCx5PW8/by5jb250ZXh0OmMsZz10aGlzLmdldEFjdGlvbnMobix5LGEsbyksbT1vP2Uoe30sby5hY3Rpdml0aWVzKTp7fTt0cnl7Zm9yKHZhciBTPXIoZyksdz1TLm5leHQoKTshdy5kb25lO3c9Uy5uZXh0KCkpe3ZhciBFPXcudmFsdWU7RS50eXBlPT09Sz9tW0UuYWN0aXZpdHkuaWR8fEUuYWN0aXZpdHkudHlwZV09RTpFLnR5cGU9PT1RJiYobVtFLmFjdGl2aXR5LmlkfHxFLmFjdGl2aXR5LnR5cGVdPSExKX19Y2F0Y2godCl7dT17ZXJyb3I6dH19ZmluYWxseXt0cnl7dyYmIXcuZG9uZSYmKGg9Uy5yZXR1cm4pJiZoLmNhbGwoUyl9ZmluYWxseXtpZih1KXRocm93IHUuZXJyb3J9fXZhciBULE4sTz1pKFB0KHRoaXMsbyx5LGEsZyx0aGlzLm1hY2hpbmUuY29uZmlnLnByZXNlcnZlQWN0aW9uT3JkZXIpLDIpLFA9T1swXSxrPU9bMV0sST1pKGIoUCwoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PVd8fGUudHlwZT09PVkmJmUudG89PT10LlNwZWNpYWxUYXJnZXRzLkludGVybmFsfSkpLDIpLGo9SVswXSxDPUlbMV0sVj1QLmZpbHRlcigoZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHQudHlwZT09PUsmJihudWxsPT09KGU9dC5hY3Rpdml0eSl8fHZvaWQgMD09PWU/dm9pZCAwOmUudHlwZSk9PT1pdH0pKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZS5hY3Rpdml0eS5pZF09ZnVuY3Rpb24odCxlLG4scil7dmFyIGksbz1NKHQuc3JjKSxhPW51bGw9PT0oaT1udWxsPT1lP3ZvaWQgMDplLm9wdGlvbnMuc2VydmljZXMpfHx2b2lkIDA9PT1pP3ZvaWQgMDppW28udHlwZV0scz10LmRhdGE/eCh0LmRhdGEsbixyKTp2b2lkIDAsYz1hP1Z0KGEsdC5pZCxzKTpDdCh0LmlkKTtyZXR1cm4gYy5tZXRhPXQsY30oZS5hY3Rpdml0eSxmLm1hY2hpbmUsayxhKSx0fSksbz9lKHt9LG8uY2hpbGRyZW4pOnt9KSxMPXA/bi5jb25maWd1cmF0aW9uOm8/by5jb25maWd1cmF0aW9uOltdLEQ9SChMLHRoaXMpLFI9bmV3IGt0KHt2YWx1ZTpwfHxvLnZhbHVlLGNvbnRleHQ6ayxfZXZlbnQ6YSxfc2Vzc2lvbmlkOm8/by5fc2Vzc2lvbmlkOm51bGwsaGlzdG9yeVZhbHVlOnA/dj8oVD12LE49cCx7Y3VycmVudDpOLHN0YXRlczpfKFQsTil9KTp2b2lkIDA6bz9vLmhpc3RvcnlWYWx1ZTp2b2lkIDAsaGlzdG9yeTohcHx8bi5zb3VyY2U/bzp2b2lkIDAsYWN0aW9uczpwP0M6W10sYWN0aXZpdGllczpwP206bz9vLmFjdGl2aXRpZXM6e30sZXZlbnRzOltdLGNvbmZpZ3VyYXRpb246TCx0cmFuc2l0aW9uczpuLnRyYW5zaXRpb25zLGNoaWxkcmVuOlYsZG9uZTpELHRhZ3M6bnVsbD09bz92b2lkIDA6by50YWdzLG1hY2hpbmU6dGhpc30pLHo9eSE9PWs7Ui5jaGFuZ2VkPWEubmFtZT09PXN0fHx6O3ZhciBGPVIuaGlzdG9yeTtGJiZkZWxldGUgRi5oaXN0b3J5O3ZhciBVPSFEJiYodGhpcy5fdHJhbnNpZW50fHxsLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0Ll90cmFuc2llbnR9KSkpO2lmKCEoZHx8VSYmXCJcIiE9PWEubmFtZSkpcmV0dXJuIFI7dmFyIEI9UjtpZighRClmb3IoVSYmKEI9dGhpcy5yZXNvbHZlUmFpc2VkVHJhbnNpdGlvbihCLHt0eXBlOnR0fSxhKSk7ai5sZW5ndGg7KXt2YXIgSj1qLnNoaWZ0KCk7Qj10aGlzLnJlc29sdmVSYWlzZWRUcmFuc2l0aW9uKEIsSi5fZXZlbnQsYSl9dmFyIHE9Qi5jaGFuZ2VkfHwoRj8hIUIuYWN0aW9ucy5sZW5ndGh8fHp8fHR5cGVvZiBGLnZhbHVlIT10eXBlb2YgQi52YWx1ZXx8IWZ1bmN0aW9uIHQoZSxuKXtpZihlPT09bilyZXR1cm4hMDtpZih2b2lkIDA9PT1lfHx2b2lkIDA9PT1uKXJldHVybiExO2lmKEEoZSl8fEEobikpcmV0dXJuIGU9PT1uO3ZhciByPXMoZSksaT1zKG4pO3JldHVybiByLmxlbmd0aD09PWkubGVuZ3RoJiZyLmV2ZXJ5KChmdW5jdGlvbihyKXtyZXR1cm4gdChlW3JdLG5bcl0pfSkpfShCLnZhbHVlLEYudmFsdWUpOnZvaWQgMCk7cmV0dXJuIEIuY2hhbmdlZD1xLEIuaGlzdG9yeT1GLEIudGFncz1HKEIuY29uZmlndXJhdGlvbiksQn0sYS5wcm90b3R5cGUuZ2V0U3RhdGVOb2RlPWZ1bmN0aW9uKHQpe2lmKE10KHQpKXJldHVybiB0aGlzLm1hY2hpbmUuZ2V0U3RhdGVOb2RlQnlJZCh0KTtpZighdGhpcy5zdGF0ZXMpdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIHJldHJpZXZlIGNoaWxkIHN0YXRlICdcIi5jb25jYXQodCxcIicgZnJvbSAnXCIpLmNvbmNhdCh0aGlzLmlkLFwiJzsgbm8gY2hpbGQgc3RhdGVzIGV4aXN0LlwiKSk7dmFyIGU9dGhpcy5zdGF0ZXNbdF07aWYoIWUpdGhyb3cgbmV3IEVycm9yKFwiQ2hpbGQgc3RhdGUgJ1wiLmNvbmNhdCh0LFwiJyBkb2VzIG5vdCBleGlzdCBvbiAnXCIpLmNvbmNhdCh0aGlzLmlkLFwiJ1wiKSk7cmV0dXJuIGV9LGEucHJvdG90eXBlLmdldFN0YXRlTm9kZUJ5SWQ9ZnVuY3Rpb24odCl7dmFyIGU9TXQodCk/dC5zbGljZShcIiNcIi5sZW5ndGgpOnQ7aWYoZT09PXRoaXMuaWQpcmV0dXJuIHRoaXM7dmFyIG49dGhpcy5tYWNoaW5lLmlkTWFwW2VdO2lmKCFuKXRocm93IG5ldyBFcnJvcihcIkNoaWxkIHN0YXRlIG5vZGUgJyNcIi5jb25jYXQoZSxcIicgZG9lcyBub3QgZXhpc3Qgb24gbWFjaGluZSAnXCIpLmNvbmNhdCh0aGlzLmlkLFwiJ1wiKSk7cmV0dXJuIG59LGEucHJvdG90eXBlLmdldFN0YXRlTm9kZUJ5UGF0aD1mdW5jdGlvbih0KXtpZihcInN0cmluZ1wiPT10eXBlb2YgdCYmTXQodCkpdHJ5e3JldHVybiB0aGlzLmdldFN0YXRlTm9kZUJ5SWQodC5zbGljZSgxKSl9Y2F0Y2godCl7fWZvcih2YXIgZT1oKHQsdGhpcy5kZWxpbWl0ZXIpLnNsaWNlKCksbj10aGlzO2UubGVuZ3RoOyl7dmFyIHI9ZS5zaGlmdCgpO2lmKCFyLmxlbmd0aClicmVhaztuPW4uZ2V0U3RhdGVOb2RlKHIpfXJldHVybiBufSxhLnByb3RvdHlwZS5yZXNvbHZlPWZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcztpZighdClyZXR1cm4gdGhpcy5pbml0aWFsU3RhdGVWYWx1ZXx8UnQ7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVwicGFyYWxsZWxcIjpyZXR1cm4gZCh0aGlzLmluaXRpYWxTdGF0ZVZhbHVlLChmdW5jdGlvbihlLHIpe3JldHVybiBlP24uZ2V0U3RhdGVOb2RlKHIpLnJlc29sdmUodFtyXXx8ZSk6UnR9KSk7Y2FzZVwiY29tcG91bmRcIjppZihBKHQpKXt2YXIgcj10aGlzLmdldFN0YXRlTm9kZSh0KTtyZXR1cm5cInBhcmFsbGVsXCI9PT1yLnR5cGV8fFwiY29tcG91bmRcIj09PXIudHlwZT8oKGU9e30pW3RdPXIuaW5pdGlhbFN0YXRlVmFsdWUsZSk6dH1yZXR1cm4gcyh0KS5sZW5ndGg/ZCh0LChmdW5jdGlvbih0LGUpe3JldHVybiB0P24uZ2V0U3RhdGVOb2RlKGUpLnJlc29sdmUodCk6UnR9KSk6dGhpcy5pbml0aWFsU3RhdGVWYWx1ZXx8e307ZGVmYXVsdDpyZXR1cm4gdHx8UnR9fSxhLnByb3RvdHlwZS5nZXRSZXNvbHZlZFBhdGg9ZnVuY3Rpb24odCl7aWYoTXQodCkpe3ZhciBlPXRoaXMubWFjaGluZS5pZE1hcFt0LnNsaWNlKFwiI1wiLmxlbmd0aCldO2lmKCFlKXRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byBmaW5kIHN0YXRlIG5vZGUgJ1wiLmNvbmNhdCh0LFwiJ1wiKSk7cmV0dXJuIGUucGF0aH1yZXR1cm4gaCh0LHRoaXMuZGVsaW1pdGVyKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwiaW5pdGlhbFN0YXRlVmFsdWVcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQsZTtpZih0aGlzLl9fY2FjaGUuaW5pdGlhbFN0YXRlVmFsdWUpcmV0dXJuIHRoaXMuX19jYWNoZS5pbml0aWFsU3RhdGVWYWx1ZTtpZihcInBhcmFsbGVsXCI9PT10aGlzLnR5cGUpZT1wKHRoaXMuc3RhdGVzLChmdW5jdGlvbih0KXtyZXR1cm4gdC5pbml0aWFsU3RhdGVWYWx1ZXx8UnR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIShcImhpc3RvcnlcIj09PXQudHlwZSl9KSk7ZWxzZSBpZih2b2lkIDAhPT10aGlzLmluaXRpYWwpe2lmKCF0aGlzLnN0YXRlc1t0aGlzLmluaXRpYWxdKXRocm93IG5ldyBFcnJvcihcIkluaXRpYWwgc3RhdGUgJ1wiLmNvbmNhdCh0aGlzLmluaXRpYWwsXCInIG5vdCBmb3VuZCBvbiAnXCIpLmNvbmNhdCh0aGlzLmtleSxcIidcIikpO2U9Rih0aGlzLnN0YXRlc1t0aGlzLmluaXRpYWxdKT90aGlzLmluaXRpYWw6KCh0PXt9KVt0aGlzLmluaXRpYWxdPXRoaXMuc3RhdGVzW3RoaXMuaW5pdGlhbF0uaW5pdGlhbFN0YXRlVmFsdWUsdCl9ZWxzZSBlPXt9O3JldHVybiB0aGlzLl9fY2FjaGUuaW5pdGlhbFN0YXRlVmFsdWU9ZSx0aGlzLl9fY2FjaGUuaW5pdGlhbFN0YXRlVmFsdWV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUuZ2V0SW5pdGlhbFN0YXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5nZXRTdGF0ZU5vZGVzKHQpO3JldHVybiB0aGlzLnJlc29sdmVUcmFuc2l0aW9uKHtjb25maWd1cmF0aW9uOm4sZW50cnlTZXQ6bixleGl0U2V0OltdLHRyYW5zaXRpb25zOltdLHNvdXJjZTp2b2lkIDAsYWN0aW9uczpbXX0sdm9pZCAwLHZvaWQgMCxlKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwiaW5pdGlhbFN0YXRlXCIse2dldDpmdW5jdGlvbigpe3RoaXMuX2luaXQoKTt2YXIgdD10aGlzLmluaXRpYWxTdGF0ZVZhbHVlO2lmKCF0KXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCByZXRyaWV2ZSBpbml0aWFsIHN0YXRlIGZyb20gc2ltcGxlIHN0YXRlICdcIi5jb25jYXQodGhpcy5pZCxcIicuXCIpKTtyZXR1cm4gdGhpcy5nZXRJbml0aWFsU3RhdGUodCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwidGFyZ2V0XCIse2dldDpmdW5jdGlvbigpe3ZhciB0O2lmKFwiaGlzdG9yeVwiPT09dGhpcy50eXBlKXt2YXIgZT10aGlzLmNvbmZpZzt0PUEoZS50YXJnZXQpJiZNdChlLnRhcmdldCk/bCh0aGlzLm1hY2hpbmUuZ2V0U3RhdGVOb2RlQnlJZChlLnRhcmdldCkucGF0aC5zbGljZSh0aGlzLnBhdGgubGVuZ3RoLTEpKTplLnRhcmdldH1yZXR1cm4gdH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhLnByb3RvdHlwZS5nZXRSZWxhdGl2ZVN0YXRlTm9kZXM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj0hMCksbj9cImhpc3RvcnlcIj09PXQudHlwZT90LnJlc29sdmVIaXN0b3J5KGUpOnQuaW5pdGlhbFN0YXRlTm9kZXM6W3RdfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJpbml0aWFsU3RhdGVOb2Rlc1wiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBGKHRoaXMpP1t0aGlzXTpcImNvbXBvdW5kXCIhPT10aGlzLnR5cGV8fHRoaXMuaW5pdGlhbD9nKHkodGhpcy5pbml0aWFsU3RhdGVWYWx1ZSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5nZXRGcm9tUmVsYXRpdmVQYXRoKGUpfSkpKTpbdGhpc119LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUuZ2V0RnJvbVJlbGF0aXZlUGF0aD1mdW5jdGlvbih0KXtpZighdC5sZW5ndGgpcmV0dXJuW3RoaXNdO3ZhciBlPWkodCksbj1lWzBdLHI9ZS5zbGljZSgxKTtpZighdGhpcy5zdGF0ZXMpdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHJldHJpZXZlIHN1YlBhdGggJ1wiLmNvbmNhdChuLFwiJyBmcm9tIG5vZGUgd2l0aCBubyBzdGF0ZXNcIikpO3ZhciBvPXRoaXMuZ2V0U3RhdGVOb2RlKG4pO2lmKFwiaGlzdG9yeVwiPT09by50eXBlKXJldHVybiBvLnJlc29sdmVIaXN0b3J5KCk7aWYoIXRoaXMuc3RhdGVzW25dKXRocm93IG5ldyBFcnJvcihcIkNoaWxkIHN0YXRlICdcIi5jb25jYXQobixcIicgZG9lcyBub3QgZXhpc3Qgb24gJ1wiKS5jb25jYXQodGhpcy5pZCxcIidcIikpO3JldHVybiB0aGlzLnN0YXRlc1tuXS5nZXRGcm9tUmVsYXRpdmVQYXRoKHIpfSxhLnByb3RvdHlwZS5oaXN0b3J5VmFsdWU9ZnVuY3Rpb24odCl7aWYocyh0aGlzLnN0YXRlcykubGVuZ3RoKXJldHVybntjdXJyZW50OnR8fHRoaXMuaW5pdGlhbFN0YXRlVmFsdWUsc3RhdGVzOnAodGhpcy5zdGF0ZXMsKGZ1bmN0aW9uKGUsbil7aWYoIXQpcmV0dXJuIGUuaGlzdG9yeVZhbHVlKCk7dmFyIHI9QSh0KT92b2lkIDA6dFtuXTtyZXR1cm4gZS5oaXN0b3J5VmFsdWUocnx8ZS5pbml0aWFsU3RhdGVWYWx1ZSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIXQuaGlzdG9yeX0pKX19LGEucHJvdG90eXBlLnJlc29sdmVIaXN0b3J5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoXCJoaXN0b3J5XCIhPT10aGlzLnR5cGUpcmV0dXJuW3RoaXNdO3ZhciBuPXRoaXMucGFyZW50O2lmKCF0KXt2YXIgaT10aGlzLnRhcmdldDtyZXR1cm4gaT9nKHkoaSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbi5nZXRGcm9tUmVsYXRpdmVQYXRoKHQpfSkpKTpuLmluaXRpYWxTdGF0ZU5vZGVzfXZhciBvLGEscz0obz1uLnBhdGgsYT1cInN0YXRlc1wiLGZ1bmN0aW9uKHQpe3ZhciBlLG4saT10O3RyeXtmb3IodmFyIHM9cihvKSxjPXMubmV4dCgpOyFjLmRvbmU7Yz1zLm5leHQoKSl7dmFyIHU9Yy52YWx1ZTtpPWlbYV1bdV19fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2MmJiFjLmRvbmUmJihuPXMucmV0dXJuKSYmbi5jYWxsKHMpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1yZXR1cm4gaX0pKHQpLmN1cnJlbnQ7cmV0dXJuIEEocyk/W24uZ2V0U3RhdGVOb2RlKHMpXTpnKHkocykubWFwKChmdW5jdGlvbih0KXtyZXR1cm5cImRlZXBcIj09PWUuaGlzdG9yeT9uLmdldEZyb21SZWxhdGl2ZVBhdGgodCk6W24uc3RhdGVzW3RbMF1dXX0pKSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcInN0YXRlSWRzXCIse2dldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1nKHModGhpcy5zdGF0ZXMpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuc3RhdGVzW2VdLnN0YXRlSWRzfSkpKTtyZXR1cm5bdGhpcy5pZF0uY29uY2F0KGUpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImV2ZW50c1wiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdCxlLG4saTtpZih0aGlzLl9fY2FjaGUuZXZlbnRzKXJldHVybiB0aGlzLl9fY2FjaGUuZXZlbnRzO3ZhciBvPXRoaXMuc3RhdGVzLGE9bmV3IFNldCh0aGlzLm93bkV2ZW50cyk7aWYobyl0cnl7Zm9yKHZhciBjPXIocyhvKSksdT1jLm5leHQoKTshdS5kb25lO3U9Yy5uZXh0KCkpe3ZhciBoPW9bdS52YWx1ZV07aWYoaC5zdGF0ZXMpdHJ5e2Zvcih2YXIgZj0obj12b2lkIDAscihoLmV2ZW50cykpLGw9Zi5uZXh0KCk7IWwuZG9uZTtsPWYubmV4dCgpKXt2YXIgZD1sLnZhbHVlO2EuYWRkKFwiXCIuY29uY2F0KGQpKX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKGk9Zi5yZXR1cm4pJiZpLmNhbGwoZil9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7dSYmIXUuZG9uZSYmKGU9Yy5yZXR1cm4pJiZlLmNhbGwoYyl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fXJldHVybiB0aGlzLl9fY2FjaGUuZXZlbnRzPUFycmF5LmZyb20oYSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwib3duRXZlbnRzXCIse2dldDpmdW5jdGlvbigpe3ZhciB0PW5ldyBTZXQodGhpcy50cmFuc2l0aW9ucy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiEoIXQudGFyZ2V0JiYhdC5hY3Rpb25zLmxlbmd0aCYmdC5pbnRlcm5hbCl9KSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5ldmVudFR5cGV9KSkpO3JldHVybiBBcnJheS5mcm9tKHQpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGEucHJvdG90eXBlLnJlc29sdmVUYXJnZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih2b2lkIDAhPT10KXJldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7aWYoIUEodCkpcmV0dXJuIHQ7dmFyIG49dFswXT09PWUuZGVsaW1pdGVyO2lmKG4mJiFlLnBhcmVudClyZXR1cm4gZS5nZXRTdGF0ZU5vZGVCeVBhdGgodC5zbGljZSgxKSk7dmFyIHI9bj9lLmtleSt0OnQ7aWYoIWUucGFyZW50KXJldHVybiBlLmdldFN0YXRlTm9kZUJ5UGF0aChyKTt0cnl7cmV0dXJuIGUucGFyZW50LmdldFN0YXRlTm9kZUJ5UGF0aChyKX1jYXRjaCh0KXt0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHRyYW5zaXRpb24gZGVmaW5pdGlvbiBmb3Igc3RhdGUgbm9kZSAnXCIuY29uY2F0KGUuaWQsXCInOlxcblwiKS5jb25jYXQodC5tZXNzYWdlKSl9fSkpfSxhLnByb3RvdHlwZS5mb3JtYXRUcmFuc2l0aW9uPWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMscj1mdW5jdGlvbih0KXtpZih2b2lkIDAhPT10JiZcIlwiIT09dClyZXR1cm4gUyh0KX0odC50YXJnZXQpLGk9XCJpbnRlcm5hbFwiaW4gdD90LmludGVybmFsOiFyfHxyLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiBBKHQpJiZ0WzBdPT09bi5kZWxpbWl0ZXJ9KSksbz10aGlzLm1hY2hpbmUub3B0aW9ucy5ndWFyZHMsYT10aGlzLnJlc29sdmVUYXJnZXQocikscz1lKGUoe30sdCkse2FjdGlvbnM6ZHQoUyh0LmFjdGlvbnMpKSxjb25kOk8odC5jb25kLG8pLHRhcmdldDphLHNvdXJjZTp0aGlzLGludGVybmFsOmksZXZlbnRUeXBlOnQuZXZlbnQsdG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJuIGUoZSh7fSxzKSx7dGFyZ2V0OnMudGFyZ2V0P3MudGFyZ2V0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuXCIjXCIuY29uY2F0KHQuaWQpfSkpOnZvaWQgMCxzb3VyY2U6XCIjXCIuY29uY2F0KG4uaWQpfSl9fSk7cmV0dXJuIHN9LGEucHJvdG90eXBlLmZvcm1hdFRyYW5zaXRpb25zPWZ1bmN0aW9uKCl7dmFyIHQsZSxhLGM9dGhpcztpZih0aGlzLmNvbmZpZy5vbilpZihBcnJheS5pc0FycmF5KHRoaXMuY29uZmlnLm9uKSlhPXRoaXMuY29uZmlnLm9uO2Vsc2V7dmFyIHU9dGhpcy5jb25maWcub24saD11W1wiKlwiXSxmPXZvaWQgMD09PWg/W106aCxsPW4odSxbXCIqXCJdKTthPWcocyhsKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBEKHQsbFt0XSl9KSkuY29uY2F0KEQoXCIqXCIsZikpKX1lbHNlIGE9W107dmFyIGQ9dGhpcy5jb25maWcuYWx3YXlzP0QoXCJcIix0aGlzLmNvbmZpZy5hbHdheXMpOltdLHA9dGhpcy5jb25maWcub25Eb25lP0QoU3RyaW5nKFR0KHRoaXMuaWQpKSx0aGlzLmNvbmZpZy5vbkRvbmUpOltdLHY9Zyh0aGlzLmludm9rZS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiB0Lm9uRG9uZSYmZS5wdXNoLmFwcGx5KGUsbyhbXSxpKEQoU3RyaW5nKE50KHQuaWQpKSx0Lm9uRG9uZSkpLCExKSksdC5vbkVycm9yJiZlLnB1c2guYXBwbHkoZSxvKFtdLGkoRChTdHJpbmcoQXQodC5pZCkpLHQub25FcnJvcikpLCExKSksZX0pKSkseT10aGlzLmFmdGVyLG09ZyhvKG8obyhvKFtdLGkocCksITEpLGkodiksITEpLGkoYSksITEpLGkoZCksITEpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFModCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gYy5mb3JtYXRUcmFuc2l0aW9uKHQpfSkpfSkpKTt0cnl7Zm9yKHZhciB4PXIoeSksdz14Lm5leHQoKTshdy5kb25lO3c9eC5uZXh0KCkpe3ZhciBiPXcudmFsdWU7bS5wdXNoKGIpfX1jYXRjaChlKXt0PXtlcnJvcjplfX1maW5hbGx5e3RyeXt3JiYhdy5kb25lJiYoZT14LnJldHVybikmJmUuY2FsbCh4KX1maW5hbGx5e2lmKHQpdGhyb3cgdC5lcnJvcn19cmV0dXJuIG19LGF9KCk7dmFyIEZ0PXtkZWZlckV2ZW50czohMX0sVXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMucHJvY2Vzc2luZ0V2ZW50PSExLHRoaXMucXVldWU9W10sdGhpcy5pbml0aWFsaXplZD0hMSx0aGlzLm9wdGlvbnM9ZShlKHt9LEZ0KSx0KX1yZXR1cm4gdC5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtpZih0aGlzLmluaXRpYWxpemVkPSEwLHQpe2lmKCF0aGlzLm9wdGlvbnMuZGVmZXJFdmVudHMpcmV0dXJuIHZvaWQgdGhpcy5zY2hlZHVsZSh0KTt0aGlzLnByb2Nlc3ModCl9dGhpcy5mbHVzaEV2ZW50cygpfSx0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbih0KXtpZih0aGlzLmluaXRpYWxpemVkJiYhdGhpcy5wcm9jZXNzaW5nRXZlbnQpe2lmKDAhPT10aGlzLnF1ZXVlLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoXCJFdmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkgd2hlbiBpdCBpcyBub3QgcHJvY2Vzc2luZyBldmVudHNcIik7dGhpcy5wcm9jZXNzKHQpLHRoaXMuZmx1c2hFdmVudHMoKX1lbHNlIHRoaXMucXVldWUucHVzaCh0KX0sdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnF1ZXVlPVtdfSx0LnByb3RvdHlwZS5mbHVzaEV2ZW50cz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnF1ZXVlLnNoaWZ0KCk7dDspdGhpcy5wcm9jZXNzKHQpLHQ9dGhpcy5xdWV1ZS5zaGlmdCgpfSx0LnByb3RvdHlwZS5wcm9jZXNzPWZ1bmN0aW9uKHQpe3RoaXMucHJvY2Vzc2luZ0V2ZW50PSEwO3RyeXt0KCl9Y2F0Y2godCl7dGhyb3cgdGhpcy5jbGVhcigpLHR9ZmluYWxseXt0aGlzLnByb2Nlc3NpbmdFdmVudD0hMX19LHR9KCksQnQ9bmV3IE1hcCxKdD0wLHF0PWZ1bmN0aW9uKCl7cmV0dXJuXCJ4OlwiLmNvbmNhdChKdCsrKX0sJHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gQnQuc2V0KHQsZSksdH0sWHQ9ZnVuY3Rpb24odCl7cmV0dXJuIEJ0LmdldCh0KX0sSHQ9ZnVuY3Rpb24odCl7QnQuZGVsZXRlKHQpfTtmdW5jdGlvbiBHdCgpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjpcInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93P3dpbmRvdzpcInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDp2b2lkIDB9ZnVuY3Rpb24gS3QodCl7aWYoR3QoKSl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgdD1HdCgpO2lmKHQmJlwiX194c3RhdGVfX1wiaW4gdClyZXR1cm4gdC5fX3hzdGF0ZV9ffSgpO2UmJmUucmVnaXN0ZXIodCl9fWZ1bmN0aW9uIFF0KHQsbil7dm9pZCAwPT09biYmKG49e30pO3ZhciByLGk9dC5pbml0aWFsU3RhdGUsbz1uZXcgU2V0LGE9W10scz0hMSxjPShyPXtpZDpuLmlkLHNlbmQ6ZnVuY3Rpb24oZSl7YS5wdXNoKGUpLGZ1bmN0aW9uKCl7aWYoIXMpe2ZvcihzPSEwO2EubGVuZ3RoPjA7KXt2YXIgZT1hLnNoaWZ0KCk7aT10LnRyYW5zaXRpb24oaSxlLHUpLG8uZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubmV4dChpKX0pKX1zPSExfX0oKX0sZ2V0U25hcHNob3Q6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sc3Vic2NyaWJlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj16KHQsZSxuKTtyZXR1cm4gby5hZGQociksci5uZXh0KGkpLHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe28uZGVsZXRlKHIpfX19fSxlKHtzdWJzY3JpYmU6ZnVuY3Rpb24oKXtyZXR1cm57dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXt9fX0saWQ6XCJhbm9ueW1vdXNcIixnZXRTbmFwc2hvdDpmdW5jdGlvbigpe319LHIpKSx1PXtwYXJlbnQ6bi5wYXJlbnQsc2VsZjpjLGlkOm4uaWR8fFwiYW5vbnltb3VzXCIsb2JzZXJ2ZXJzOm99O3JldHVybiBpPXQuc3RhcnQ/dC5zdGFydCh1KTppLGN9dmFyIFd0LFl0PXtzeW5jOiExLGF1dG9Gb3J3YXJkOiExfTsoV3Q9dC5JbnRlcnByZXRlclN0YXR1c3x8KHQuSW50ZXJwcmV0ZXJTdGF0dXM9e30pKVtXdC5Ob3RTdGFydGVkPTBdPVwiTm90U3RhcnRlZFwiLFd0W1d0LlJ1bm5pbmc9MV09XCJSdW5uaW5nXCIsV3RbV3QuU3RvcHBlZD0yXT1cIlN0b3BwZWRcIjt2YXIgWnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHIsaSl7dmFyIG89dGhpczt2b2lkIDA9PT1pJiYoaT1uLmRlZmF1bHRPcHRpb25zKSx0aGlzLm1hY2hpbmU9cix0aGlzLnNjaGVkdWxlcj1uZXcgVXQsdGhpcy5kZWxheWVkRXZlbnRzTWFwPXt9LHRoaXMubGlzdGVuZXJzPW5ldyBTZXQsdGhpcy5jb250ZXh0TGlzdGVuZXJzPW5ldyBTZXQsdGhpcy5zdG9wTGlzdGVuZXJzPW5ldyBTZXQsdGhpcy5kb25lTGlzdGVuZXJzPW5ldyBTZXQsdGhpcy5ldmVudExpc3RlbmVycz1uZXcgU2V0LHRoaXMuc2VuZExpc3RlbmVycz1uZXcgU2V0LHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5zdGF0dXM9dC5JbnRlcnByZXRlclN0YXR1cy5Ob3RTdGFydGVkLHRoaXMuY2hpbGRyZW49bmV3IE1hcCx0aGlzLmZvcndhcmRUbz1uZXcgU2V0LHRoaXMuaW5pdD10aGlzLnN0YXJ0LHRoaXMuc2VuZD1mdW5jdGlvbihlLG4pe2lmKFQoZSkpcmV0dXJuIG8uYmF0Y2goZSksby5zdGF0ZTt2YXIgcj1MKFYoZSxuKSk7aWYoby5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLlN0b3BwZWQpcmV0dXJuIG8uc3RhdGU7aWYoby5zdGF0dXMhPT10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmcmJiFvLm9wdGlvbnMuZGVmZXJFdmVudHMpdGhyb3cgbmV3IEVycm9yKCdFdmVudCBcIicuY29uY2F0KHIubmFtZSwnXCIgd2FzIHNlbnQgdG8gdW5pbml0aWFsaXplZCBzZXJ2aWNlIFwiJykuY29uY2F0KG8ubWFjaGluZS5pZCwnXCIuIE1ha2Ugc3VyZSAuc3RhcnQoKSBpcyBjYWxsZWQgZm9yIHRoaXMgc2VydmljZSwgb3Igc2V0IHsgZGVmZXJFdmVudHM6IHRydWUgfSBpbiB0aGUgc2VydmljZSBvcHRpb25zLlxcbkV2ZW50OiAnKS5jb25jYXQoSlNPTi5zdHJpbmdpZnkoci5kYXRhKSkpO3JldHVybiBvLnNjaGVkdWxlci5zY2hlZHVsZSgoZnVuY3Rpb24oKXtvLmZvcndhcmQocik7dmFyIHQ9by5uZXh0U3RhdGUocik7by51cGRhdGUodCxyKX0pKSxvLl9zdGF0ZX0sdGhpcy5zZW5kVG89ZnVuY3Rpb24obixyKXt2YXIgaSxhPW8ucGFyZW50JiYocj09PXQuU3BlY2lhbFRhcmdldHMuUGFyZW50fHxvLnBhcmVudC5pZD09PXIpLHM9YT9vLnBhcmVudDpBKHIpP28uY2hpbGRyZW4uZ2V0KHIpfHxYdChyKTooaT1yKSYmXCJmdW5jdGlvblwiPT10eXBlb2YgaS5zZW5kP3I6dm9pZCAwO2lmKHMpXCJtYWNoaW5lXCJpbiBzP3Muc2VuZChlKGUoe30sbikse25hbWU6bi5uYW1lPT09YXQ/XCJcIi5jb25jYXQoQXQoby5pZCkpOm4ubmFtZSxvcmlnaW46by5zZXNzaW9uSWR9KSk6cy5zZW5kKG4uZGF0YSk7ZWxzZSBpZighYSl0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gc2VuZCBldmVudCB0byBjaGlsZCAnXCIuY29uY2F0KHIsXCInIGZyb20gc2VydmljZSAnXCIpLmNvbmNhdChvLmlkLFwiJy5cIikpfTt2YXIgYT1lKGUoe30sbi5kZWZhdWx0T3B0aW9ucyksaSkscz1hLmNsb2NrLGM9YS5sb2dnZXIsdT1hLnBhcmVudCxoPWEuaWQsZj12b2lkIDAhPT1oP2g6ci5pZDt0aGlzLmlkPWYsdGhpcy5sb2dnZXI9Yyx0aGlzLmNsb2NrPXMsdGhpcy5wYXJlbnQ9dSx0aGlzLm9wdGlvbnM9YSx0aGlzLnNjaGVkdWxlcj1uZXcgVXQoe2RlZmVyRXZlbnRzOnRoaXMub3B0aW9ucy5kZWZlckV2ZW50c30pLHRoaXMuc2Vzc2lvbklkPXF0KCl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcImluaXRpYWxTdGF0ZVwiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9pbml0aWFsU3RhdGU/dGhpcy5faW5pdGlhbFN0YXRlOmp0KHRoaXMsKGZ1bmN0aW9uKCl7cmV0dXJuIHQuX2luaXRpYWxTdGF0ZT10Lm1hY2hpbmUuaW5pdGlhbFN0YXRlLHQuX2luaXRpYWxTdGF0ZX0pKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJzdGF0ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RhdGV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbih0LGUpe3ZhciBuLGk7dHJ5e2Zvcih2YXIgbz1yKHQuYWN0aW9ucyksYT1vLm5leHQoKTshYS5kb25lO2E9by5uZXh0KCkpe3ZhciBzPWEudmFsdWU7dGhpcy5leGVjKHMsdCxlKX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7YSYmIWEuZG9uZSYmKGk9by5yZXR1cm4pJiZpLmNhbGwobyl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fX0sbi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxvLGEscyxjLHUsaCxmPXRoaXM7aWYodC5fc2Vzc2lvbmlkPXRoaXMuc2Vzc2lvbklkLHRoaXMuX3N0YXRlPXQsdGhpcy5vcHRpb25zLmV4ZWN1dGUmJnRoaXMuZXhlY3V0ZSh0aGlzLnN0YXRlKSx0aGlzLmNoaWxkcmVuLmZvckVhY2goKGZ1bmN0aW9uKHQpe2Yuc3RhdGUuY2hpbGRyZW5bdC5pZF09dH0pKSx0aGlzLmRldlRvb2xzJiZ0aGlzLmRldlRvb2xzLnNlbmQoZS5kYXRhLHQpLHQuZXZlbnQpdHJ5e2Zvcih2YXIgbD1yKHRoaXMuZXZlbnRMaXN0ZW5lcnMpLGQ9bC5uZXh0KCk7IWQuZG9uZTtkPWwubmV4dCgpKXsoMCxkLnZhbHVlKSh0LmV2ZW50KX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7ZCYmIWQuZG9uZSYmKGk9bC5yZXR1cm4pJiZpLmNhbGwobCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXRyeXtmb3IodmFyIHA9cih0aGlzLmxpc3RlbmVycyksdj1wLm5leHQoKTshdi5kb25lO3Y9cC5uZXh0KCkpeygwLHYudmFsdWUpKHQsdC5ldmVudCl9fWNhdGNoKHQpe289e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3YmJiF2LmRvbmUmJihhPXAucmV0dXJuKSYmYS5jYWxsKHApfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX10cnl7Zm9yKHZhciB5PXIodGhpcy5jb250ZXh0TGlzdGVuZXJzKSxnPXkubmV4dCgpOyFnLmRvbmU7Zz15Lm5leHQoKSl7KDAsZy52YWx1ZSkodGhpcy5zdGF0ZS5jb250ZXh0LHRoaXMuc3RhdGUuaGlzdG9yeT90aGlzLnN0YXRlLmhpc3RvcnkuY29udGV4dDp2b2lkIDApfX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtnJiYhZy5kb25lJiYoYz15LnJldHVybikmJmMuY2FsbCh5KX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19dmFyIG09SCh0LmNvbmZpZ3VyYXRpb258fFtdLHRoaXMubWFjaGluZSk7aWYodGhpcy5zdGF0ZS5jb25maWd1cmF0aW9uJiZtKXt2YXIgUz10LmNvbmZpZ3VyYXRpb24uZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuXCJmaW5hbFwiPT09dC50eXBlJiZ0LnBhcmVudD09PWYubWFjaGluZX0pKSx3PVMmJlMuZG9uZURhdGE/eChTLmRvbmVEYXRhLHQuY29udGV4dCxlKTp2b2lkIDA7dHJ5e2Zvcih2YXIgYj1yKHRoaXMuZG9uZUxpc3RlbmVycyksXz1iLm5leHQoKTshXy5kb25lO189Yi5uZXh0KCkpeygwLF8udmFsdWUpKE50KHRoaXMuaWQsdykpfX1jYXRjaCh0KXt1PXtlcnJvcjp0fX1maW5hbGx5e3RyeXtfJiYhXy5kb25lJiYoaD1iLnJldHVybikmJmguY2FsbChiKX1maW5hbGx5e2lmKHUpdGhyb3cgdS5lcnJvcn19dGhpcy5zdG9wKCl9fSxuLnByb3RvdHlwZS5vblRyYW5zaXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubGlzdGVuZXJzLmFkZChlKSx0aGlzLnN0YXR1cz09PXQuSW50ZXJwcmV0ZXJTdGF0dXMuUnVubmluZyYmZSh0aGlzLnN0YXRlLHRoaXMuc3RhdGUuZXZlbnQpLHRoaXN9LG4ucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihlLG4scil7dmFyIGksbz10aGlzO2lmKCFlKXJldHVybnt1bnN1YnNjcmliZTpmdW5jdGlvbigpe319O3ZhciBhPXI7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZT9pPWU6KGk9ZS5uZXh0LmJpbmQoZSksYT1lLmNvbXBsZXRlLmJpbmQoZSkpLHRoaXMubGlzdGVuZXJzLmFkZChpKSx0aGlzLnN0YXR1cz09PXQuSW50ZXJwcmV0ZXJTdGF0dXMuUnVubmluZyYmaSh0aGlzLnN0YXRlKSxhJiZ0aGlzLm9uRG9uZShhKSx7dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXtpJiZvLmxpc3RlbmVycy5kZWxldGUoaSksYSYmby5kb25lTGlzdGVuZXJzLmRlbGV0ZShhKX19fSxuLnByb3RvdHlwZS5vbkV2ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmV2ZW50TGlzdGVuZXJzLmFkZCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vblNlbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VuZExpc3RlbmVycy5hZGQodCksdGhpc30sbi5wcm90b3R5cGUub25DaGFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29udGV4dExpc3RlbmVycy5hZGQodCksdGhpc30sbi5wcm90b3R5cGUub25TdG9wPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0b3BMaXN0ZW5lcnMuYWRkKHQpLHRoaXN9LG4ucHJvdG90eXBlLm9uRG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kb25lTGlzdGVuZXJzLmFkZCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vZmY9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGlzdGVuZXJzLmRlbGV0ZSh0KSx0aGlzLmV2ZW50TGlzdGVuZXJzLmRlbGV0ZSh0KSx0aGlzLnNlbmRMaXN0ZW5lcnMuZGVsZXRlKHQpLHRoaXMuc3RvcExpc3RlbmVycy5kZWxldGUodCksdGhpcy5kb25lTGlzdGVuZXJzLmRlbGV0ZSh0KSx0aGlzLmNvbnRleHRMaXN0ZW5lcnMuZGVsZXRlKHQpLHRoaXN9LG4ucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7aWYodGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmcpcmV0dXJuIHRoaXM7JHQodGhpcy5zZXNzaW9uSWQsdGhpcyksdGhpcy5pbml0aWFsaXplZD0hMCx0aGlzLnN0YXR1cz10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmc7dmFyIHI9dm9pZCAwPT09ZT90aGlzLmluaXRpYWxTdGF0ZTpqdCh0aGlzLChmdW5jdGlvbigpe3JldHVybiFBKHQ9ZSkmJlwidmFsdWVcImluIHQmJlwiaGlzdG9yeVwiaW4gdD9uLm1hY2hpbmUucmVzb2x2ZVN0YXRlKGUpOm4ubWFjaGluZS5yZXNvbHZlU3RhdGUoa3QuZnJvbShlLG4ubWFjaGluZS5jb250ZXh0KSk7dmFyIHR9KSk7cmV0dXJuIHRoaXMub3B0aW9ucy5kZXZUb29scyYmdGhpcy5hdHRhY2hEZXYoKSx0aGlzLnNjaGVkdWxlci5pbml0aWFsaXplKChmdW5jdGlvbigpe24udXBkYXRlKHIsaHQpfSkpLHRoaXN9LG4ucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oKXt2YXIgZSxuLGksbyxhLGMsdSxoLGYsbCxkPXRoaXM7dHJ5e2Zvcih2YXIgcD1yKHRoaXMubGlzdGVuZXJzKSx2PXAubmV4dCgpOyF2LmRvbmU7dj1wLm5leHQoKSl7dmFyIHk9di52YWx1ZTt0aGlzLmxpc3RlbmVycy5kZWxldGUoeSl9fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3YmJiF2LmRvbmUmJihuPXAucmV0dXJuKSYmbi5jYWxsKHApfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX10cnl7Zm9yKHZhciBnPXIodGhpcy5zdG9wTGlzdGVuZXJzKSxtPWcubmV4dCgpOyFtLmRvbmU7bT1nLm5leHQoKSl7KHk9bS52YWx1ZSkoKSx0aGlzLnN0b3BMaXN0ZW5lcnMuZGVsZXRlKHkpfX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXttJiYhbS5kb25lJiYobz1nLnJldHVybikmJm8uY2FsbChnKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19dHJ5e2Zvcih2YXIgUz1yKHRoaXMuY29udGV4dExpc3RlbmVycykseD1TLm5leHQoKTsheC5kb25lO3g9Uy5uZXh0KCkpe3k9eC52YWx1ZTt0aGlzLmNvbnRleHRMaXN0ZW5lcnMuZGVsZXRlKHkpfX1jYXRjaCh0KXthPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt4JiYheC5kb25lJiYoYz1TLnJldHVybikmJmMuY2FsbChTKX1maW5hbGx5e2lmKGEpdGhyb3cgYS5lcnJvcn19dHJ5e2Zvcih2YXIgdz1yKHRoaXMuZG9uZUxpc3RlbmVycyksYj13Lm5leHQoKTshYi5kb25lO2I9dy5uZXh0KCkpe3k9Yi52YWx1ZTt0aGlzLmRvbmVMaXN0ZW5lcnMuZGVsZXRlKHkpfX1jYXRjaCh0KXt1PXtlcnJvcjp0fX1maW5hbGx5e3RyeXtiJiYhYi5kb25lJiYoaD13LnJldHVybikmJmguY2FsbCh3KX1maW5hbGx5e2lmKHUpdGhyb3cgdS5lcnJvcn19aWYoIXRoaXMuaW5pdGlhbGl6ZWQpcmV0dXJuIHRoaXM7dGhpcy5zdGF0ZS5jb25maWd1cmF0aW9uLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlLG47dHJ5e2Zvcih2YXIgaT1yKHQuZGVmaW5pdGlvbi5leGl0KSxvPWkubmV4dCgpOyFvLmRvbmU7bz1pLm5leHQoKSl7dmFyIGE9by52YWx1ZTtkLmV4ZWMoYSxkLnN0YXRlKX19Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fX0pKSx0aGlzLmNoaWxkcmVuLmZvckVhY2goKGZ1bmN0aW9uKHQpe04odC5zdG9wKSYmdC5zdG9wKCl9KSk7dHJ5e2Zvcih2YXIgXz1yKHModGhpcy5kZWxheWVkRXZlbnRzTWFwKSksRT1fLm5leHQoKTshRS5kb25lO0U9Xy5uZXh0KCkpe3ZhciBUPUUudmFsdWU7dGhpcy5jbG9jay5jbGVhclRpbWVvdXQodGhpcy5kZWxheWVkRXZlbnRzTWFwW1RdKX19Y2F0Y2godCl7Zj17ZXJyb3I6dH19ZmluYWxseXt0cnl7RSYmIUUuZG9uZSYmKGw9Xy5yZXR1cm4pJiZsLmNhbGwoXyl9ZmluYWxseXtpZihmKXRocm93IGYuZXJyb3J9fXJldHVybiB0aGlzLnNjaGVkdWxlci5jbGVhcigpLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5zdGF0dXM9dC5JbnRlcnByZXRlclN0YXR1cy5TdG9wcGVkLEh0KHRoaXMuc2Vzc2lvbklkKSx0aGlzfSxuLnByb3RvdHlwZS5iYXRjaD1mdW5jdGlvbihuKXt2YXIgYT10aGlzO2lmKHRoaXMuc3RhdHVzPT09dC5JbnRlcnByZXRlclN0YXR1cy5Ob3RTdGFydGVkJiZ0aGlzLm9wdGlvbnMuZGVmZXJFdmVudHMpO2Vsc2UgaWYodGhpcy5zdGF0dXMhPT10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmcpdGhyb3cgbmV3IEVycm9yKFwiXCIuY29uY2F0KG4ubGVuZ3RoLCcgZXZlbnQocykgd2VyZSBzZW50IHRvIHVuaW5pdGlhbGl6ZWQgc2VydmljZSBcIicpLmNvbmNhdCh0aGlzLm1hY2hpbmUuaWQsJ1wiLiBNYWtlIHN1cmUgLnN0YXJ0KCkgaXMgY2FsbGVkIGZvciB0aGlzIHNlcnZpY2UsIG9yIHNldCB7IGRlZmVyRXZlbnRzOiB0cnVlIH0gaW4gdGhlIHNlcnZpY2Ugb3B0aW9ucy4nKSk7dGhpcy5zY2hlZHVsZXIuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7dmFyIHQscyxjPWEuc3RhdGUsdT0hMSxoPVtdLGY9ZnVuY3Rpb24odCl7dmFyIG49TCh0KTthLmZvcndhcmQobiksYz1qdChhLChmdW5jdGlvbigpe3JldHVybiBhLm1hY2hpbmUudHJhbnNpdGlvbihjLG4pfSkpLGgucHVzaC5hcHBseShoLG8oW10saShjLmFjdGlvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcj1jLGk9KG49dCkuZXhlYyxlKGUoe30sbikse2V4ZWM6dm9pZCAwIT09aT9mdW5jdGlvbigpe3JldHVybiBpKHIuY29udGV4dCxyLmV2ZW50LHthY3Rpb246bixzdGF0ZTpyLF9ldmVudDpyLl9ldmVudH0pfTp2b2lkIDB9KTt2YXIgbixyLGl9KSkpLCExKSksdT11fHwhIWMuY2hhbmdlZH07dHJ5e2Zvcih2YXIgbD1yKG4pLGQ9bC5uZXh0KCk7IWQuZG9uZTtkPWwubmV4dCgpKXtmKGQudmFsdWUpfX1jYXRjaChlKXt0PXtlcnJvcjplfX1maW5hbGx5e3RyeXtkJiYhZC5kb25lJiYocz1sLnJldHVybikmJnMuY2FsbChsKX1maW5hbGx5e2lmKHQpdGhyb3cgdC5lcnJvcn19Yy5jaGFuZ2VkPXUsYy5hY3Rpb25zPWgsYS51cGRhdGUoYyxMKG5bbi5sZW5ndGgtMV0pKX0pKX0sbi5wcm90b3R5cGUuc2VuZGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlbmQuYmluZCh0aGlzLHQpfSxuLnByb3RvdHlwZS5uZXh0U3RhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPUwodCk7aWYoMD09PW4ubmFtZS5pbmRleE9mKG90KSYmIXRoaXMuc3RhdGUubmV4dEV2ZW50cy5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQuaW5kZXhPZihvdCl9KSkpdGhyb3cgbi5kYXRhLmRhdGE7cmV0dXJuIGp0KHRoaXMsKGZ1bmN0aW9uKCl7cmV0dXJuIGUubWFjaGluZS50cmFuc2l0aW9uKGUuc3RhdGUsbil9KSl9LG4ucHJvdG90eXBlLmZvcndhcmQ9ZnVuY3Rpb24odCl7dmFyIGUsbjt0cnl7Zm9yKHZhciBpPXIodGhpcy5mb3J3YXJkVG8pLG89aS5uZXh0KCk7IW8uZG9uZTtvPWkubmV4dCgpKXt2YXIgYT1vLnZhbHVlLHM9dGhpcy5jaGlsZHJlbi5nZXQoYSk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGZvcndhcmQgZXZlbnQgJ1wiLmNvbmNhdCh0LFwiJyBmcm9tIGludGVycHJldGVyICdcIikuY29uY2F0KHRoaXMuaWQsXCInIHRvIG5vbmV4aXN0YW50IGNoaWxkICdcIikuY29uY2F0KGEsXCInLlwiKSk7cy5zZW5kKHQpfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtvJiYhby5kb25lJiYobj1pLnJldHVybikmJm4uY2FsbChpKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19fSxuLnByb3RvdHlwZS5kZWZlcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZGVsYXllZEV2ZW50c01hcFt0LmlkXT10aGlzLmNsb2NrLnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dC50bz9lLnNlbmRUbyh0Ll9ldmVudCx0LnRvKTplLnNlbmQodC5fZXZlbnQpfSksdC5kZWxheSl9LG4ucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbih0KXt0aGlzLmNsb2NrLmNsZWFyVGltZW91dCh0aGlzLmRlbGF5ZWRFdmVudHNNYXBbdF0pLGRlbGV0ZSB0aGlzLmRlbGF5ZWRFdmVudHNNYXBbdF19LG4ucHJvdG90eXBlLmV4ZWM9ZnVuY3Rpb24oZSxuLHIpe3ZvaWQgMD09PXImJihyPXRoaXMubWFjaGluZS5vcHRpb25zLmFjdGlvbnMpO3ZhciBpPW4uY29udGV4dCxvPW4uX2V2ZW50LGE9ZS5leGVjfHxmdChlLnR5cGUscikscz1OKGEpP2E6YT9hLmV4ZWM6ZS5leGVjO2lmKHMpdHJ5e3JldHVybiBzKGksby5kYXRhLHthY3Rpb246ZSxzdGF0ZTp0aGlzLnN0YXRlLF9ldmVudDpvfSl9Y2F0Y2godCl7dGhyb3cgdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LnNlbmQoe3R5cGU6XCJ4c3RhdGUuZXJyb3JcIixkYXRhOnR9KSx0fXN3aXRjaChlLnR5cGUpe2Nhc2UgWTp2YXIgYz1lO2lmKFwibnVtYmVyXCI9PXR5cGVvZiBjLmRlbGF5KXJldHVybiB2b2lkIHRoaXMuZGVmZXIoYyk7Yy50bz90aGlzLnNlbmRUbyhjLl9ldmVudCxjLnRvKTp0aGlzLnNlbmQoYy5fZXZlbnQpO2JyZWFrO2Nhc2UgWjp0aGlzLmNhbmNlbChlLnNlbmRJZCk7YnJlYWs7Y2FzZSBLOnZhciB1PWUuYWN0aXZpdHk7aWYoIXRoaXMuc3RhdGUuYWN0aXZpdGllc1t1LmlkfHx1LnR5cGVdKWJyZWFrO2lmKHUudHlwZT09PXQuQWN0aW9uVHlwZXMuSW52b2tlKXt2YXIgaD1NKHUuc3JjKSxmPXRoaXMubWFjaGluZS5vcHRpb25zLnNlcnZpY2VzP3RoaXMubWFjaGluZS5vcHRpb25zLnNlcnZpY2VzW2gudHlwZV06dm9pZCAwLGw9dS5pZCxkPXUuZGF0YSxwPVwiYXV0b0ZvcndhcmRcImluIHU/dS5hdXRvRm9yd2FyZDohIXUuZm9yd2FyZDtpZighZilyZXR1cm47dmFyIHY9ZD94KGQsaSxvKTp2b2lkIDA7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGYpcmV0dXJuO3ZhciB5PU4oZik/ZihpLG8uZGF0YSx7ZGF0YTp2LHNyYzpoLG1ldGE6dS5tZXRhfSk6ZjtpZigheSlyZXR1cm47dmFyIGc9dm9pZCAwO2soeSkmJih5PXY/eS53aXRoQ29udGV4dCh2KTp5LGc9e2F1dG9Gb3J3YXJkOnB9KSx0aGlzLnNwYXduKHksbCxnKX1lbHNlIHRoaXMuc3Bhd25BY3Rpdml0eSh1KTticmVhaztjYXNlIFE6dGhpcy5zdG9wQ2hpbGQoZS5hY3Rpdml0eS5pZCk7YnJlYWs7Y2FzZSBudDp2YXIgbT1lLmxhYmVsLFM9ZS52YWx1ZTttP3RoaXMubG9nZ2VyKG0sUyk6dGhpcy5sb2dnZXIoUyl9fSxuLnByb3RvdHlwZS5yZW1vdmVDaGlsZD1mdW5jdGlvbih0KXt2YXIgZTt0aGlzLmNoaWxkcmVuLmRlbGV0ZSh0KSx0aGlzLmZvcndhcmRUby5kZWxldGUodCksbnVsbD09PShlPXRoaXMuc3RhdGUpfHx2b2lkIDA9PT1lfHxkZWxldGUgZS5jaGlsZHJlblt0XX0sbi5wcm90b3R5cGUuc3RvcENoaWxkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY2hpbGRyZW4uZ2V0KHQpO2UmJih0aGlzLnJlbW92ZUNoaWxkKHQpLE4oZS5zdG9wKSYmZS5zdG9wKCkpfSxuLnByb3RvdHlwZS5zcGF3bj1mdW5jdGlvbih0LG4scil7aWYodyh0KSlyZXR1cm4gdGhpcy5zcGF3blByb21pc2UoUHJvbWlzZS5yZXNvbHZlKHQpLG4pO2lmKE4odCkpcmV0dXJuIHRoaXMuc3Bhd25DYWxsYmFjayh0LG4pO2lmKGZ1bmN0aW9uKHQpe3RyeXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnNlbmR9Y2F0Y2godCl7cmV0dXJuITF9fShvPXQpJiZcImlkXCJpbiBvKXJldHVybiB0aGlzLnNwYXduQWN0b3IodCxuKTtpZihmdW5jdGlvbih0KXt0cnl7cmV0dXJuXCJzdWJzY3JpYmVcImluIHQmJk4odC5zdWJzY3JpYmUpfWNhdGNoKHQpe3JldHVybiExfX0odCkpcmV0dXJuIHRoaXMuc3Bhd25PYnNlcnZhYmxlKHQsbik7aWYoayh0KSlyZXR1cm4gdGhpcy5zcGF3bk1hY2hpbmUodCxlKGUoe30scikse2lkOm59KSk7aWYobnVsbCE9PShpPXQpJiZcIm9iamVjdFwiPT10eXBlb2YgaSYmXCJ0cmFuc2l0aW9uXCJpbiBpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBpLnRyYW5zaXRpb24pcmV0dXJuIHRoaXMuc3Bhd25CZWhhdmlvcih0LG4pO3Rocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHNwYXduIGVudGl0eSBcIicuY29uY2F0KG4sJ1wiIG9mIHR5cGUgXCInKS5jb25jYXQodHlwZW9mIHQsJ1wiLicpKTt2YXIgaSxvfSxuLnByb3RvdHlwZS5zcGF3bk1hY2hpbmU9ZnVuY3Rpb24odCxyKXt2YXIgaT10aGlzO3ZvaWQgMD09PXImJihyPXt9KTt2YXIgbz1uZXcgbih0LGUoZSh7fSx0aGlzLm9wdGlvbnMpLHtwYXJlbnQ6dGhpcyxpZDpyLmlkfHx0LmlkfSkpLGE9ZShlKHt9LFl0KSxyKTthLnN5bmMmJm8ub25UcmFuc2l0aW9uKChmdW5jdGlvbih0KXtpLnNlbmQoc3Qse3N0YXRlOnQsaWQ6by5pZH0pfSkpO3ZhciBzPW87cmV0dXJuIHRoaXMuY2hpbGRyZW4uc2V0KG8uaWQscyksYS5hdXRvRm9yd2FyZCYmdGhpcy5mb3J3YXJkVG8uYWRkKG8uaWQpLG8ub25Eb25lKChmdW5jdGlvbih0KXtpLnJlbW92ZUNoaWxkKG8uaWQpLGkuc2VuZChMKHQse29yaWdpbjpvLmlkfSkpfSkpLnN0YXJ0KCksc30sbi5wcm90b3R5cGUuc3Bhd25CZWhhdmlvcj1mdW5jdGlvbih0LGUpe3ZhciBuPVF0KHQse2lkOmUscGFyZW50OnRoaXN9KTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSxuKSxufSxuLnByb3RvdHlwZS5zcGF3blByb21pc2U9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXRoaXMsaT0hMTt0LnRoZW4oKGZ1bmN0aW9uKHQpe2l8fChuPXQsci5yZW1vdmVDaGlsZChlKSxyLnNlbmQoTChOdChlLHQpLHtvcmlnaW46ZX0pKSl9KSwoZnVuY3Rpb24odCl7aWYoIWkpe3IucmVtb3ZlQ2hpbGQoZSk7dmFyIG49QXQoZSx0KTt0cnl7ci5zZW5kKEwobix7b3JpZ2luOmV9KSl9Y2F0Y2godCl7ci5kZXZUb29scyYmci5kZXZUb29scy5zZW5kKG4sci5zdGF0ZSksci5tYWNoaW5lLnN0cmljdCYmci5zdG9wKCl9fX0pKTt2YXIgbz17aWQ6ZSxzZW5kOmZ1bmN0aW9uKCl7fSxzdWJzY3JpYmU6ZnVuY3Rpb24oZSxuLHIpe3ZhciBpPXooZSxuLHIpLG89ITE7cmV0dXJuIHQudGhlbigoZnVuY3Rpb24odCl7b3x8KGkubmV4dCh0KSxvfHxpLmNvbXBsZXRlKCkpfSksKGZ1bmN0aW9uKHQpe298fGkuZXJyb3IodCl9KSkse3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0dXJuIG89ITB9fX0sc3RvcDpmdW5jdGlvbigpe2k9ITB9LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybntpZDplfX0sZ2V0U25hcHNob3Q6ZnVuY3Rpb24oKXtyZXR1cm4gbn19O3JldHVybiB0aGlzLmNoaWxkcmVuLnNldChlLG8pLG99LG4ucHJvdG90eXBlLnNwYXduQ2FsbGJhY2s9ZnVuY3Rpb24odCxlKXt2YXIgbixyLGk9dGhpcyxvPSExLGE9bmV3IFNldCxzPW5ldyBTZXQ7dHJ5e3I9dCgoZnVuY3Rpb24odCl7bj10LHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSksb3x8aS5zZW5kKEwodCx7b3JpZ2luOmV9KSl9KSwoZnVuY3Rpb24odCl7YS5hZGQodCl9KSl9Y2F0Y2godCl7dGhpcy5zZW5kKEF0KGUsdCkpfWlmKHcocikpcmV0dXJuIHRoaXMuc3Bhd25Qcm9taXNlKHIsZSk7dmFyIGM9e2lkOmUsc2VuZDpmdW5jdGlvbih0KXtyZXR1cm4gYS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZSh0KX0pKX0sc3Vic2NyaWJlOmZ1bmN0aW9uKHQpe3JldHVybiBzLmFkZCh0KSx7dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXtzLmRlbGV0ZSh0KX19fSxzdG9wOmZ1bmN0aW9uKCl7bz0hMCxOKHIpJiZyKCl9LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybntpZDplfX0sZ2V0U25hcHNob3Q6ZnVuY3Rpb24oKXtyZXR1cm4gbn19O3JldHVybiB0aGlzLmNoaWxkcmVuLnNldChlLGMpLGN9LG4ucHJvdG90eXBlLnNwYXduT2JzZXJ2YWJsZT1mdW5jdGlvbih0LGUpe3ZhciBuLHI9dGhpcyxpPXQuc3Vic2NyaWJlKChmdW5jdGlvbih0KXtuPXQsci5zZW5kKEwodCx7b3JpZ2luOmV9KSl9KSwoZnVuY3Rpb24odCl7ci5yZW1vdmVDaGlsZChlKSxyLnNlbmQoTChBdChlLHQpLHtvcmlnaW46ZX0pKX0pLChmdW5jdGlvbigpe3IucmVtb3ZlQ2hpbGQoZSksci5zZW5kKEwoTnQoZSkse29yaWdpbjplfSkpfSkpLG89e2lkOmUsc2VuZDpmdW5jdGlvbigpe30sc3Vic2NyaWJlOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdC5zdWJzY3JpYmUoZSxuLHIpfSxzdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIGkudW5zdWJzY3JpYmUoKX0sZ2V0U25hcHNob3Q6ZnVuY3Rpb24oKXtyZXR1cm4gbn0sdG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue2lkOmV9fX07cmV0dXJuIHRoaXMuY2hpbGRyZW4uc2V0KGUsbyksb30sbi5wcm90b3R5cGUuc3Bhd25BY3Rvcj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmNoaWxkcmVuLnNldChlLHQpLHR9LG4ucHJvdG90eXBlLnNwYXduQWN0aXZpdHk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5tYWNoaW5lLm9wdGlvbnMmJnRoaXMubWFjaGluZS5vcHRpb25zLmFjdGl2aXRpZXM/dGhpcy5tYWNoaW5lLm9wdGlvbnMuYWN0aXZpdGllc1t0LnR5cGVdOnZvaWQgMDtpZihlKXt2YXIgbj1lKHRoaXMuc3RhdGUuY29udGV4dCx0KTt0aGlzLnNwYXduRWZmZWN0KHQuaWQsbil9fSxuLnByb3RvdHlwZS5zcGF3bkVmZmVjdD1mdW5jdGlvbih0LGUpe3RoaXMuY2hpbGRyZW4uc2V0KHQse2lkOnQsc2VuZDpmdW5jdGlvbigpe30sc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0dXJue3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7fX19LHN0b3A6ZXx8dm9pZCAwLGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7fSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6dH19fSl9LG4ucHJvdG90eXBlLmF0dGFjaERldj1mdW5jdGlvbigpe3ZhciB0PUd0KCk7aWYodGhpcy5vcHRpb25zLmRldlRvb2xzJiZ0KXtpZih0Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18pe3ZhciBuPVwib2JqZWN0XCI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuZGV2VG9vbHM/dGhpcy5vcHRpb25zLmRldlRvb2xzOnZvaWQgMDt0aGlzLmRldlRvb2xzPXQuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXy5jb25uZWN0KGUoZSh7bmFtZTp0aGlzLmlkLGF1dG9QYXVzZTohMCxzdGF0ZVNhbml0aXplcjpmdW5jdGlvbih0KXtyZXR1cm57dmFsdWU6dC52YWx1ZSxjb250ZXh0OnQuY29udGV4dCxhY3Rpb25zOnQuYWN0aW9uc319fSxuKSx7ZmVhdHVyZXM6ZSh7anVtcDohMSxza2lwOiExfSxuP24uZmVhdHVyZXM6dm9pZCAwKX0pLHRoaXMubWFjaGluZSksdGhpcy5kZXZUb29scy5pbml0KHRoaXMuc3RhdGUpfUt0KHRoaXMpfX0sbi5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue2lkOnRoaXMuaWR9fSxuLnByb3RvdHlwZVtQXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxuLnByb3RvdHlwZS5nZXRTbmFwc2hvdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXR1cz09PXQuSW50ZXJwcmV0ZXJTdGF0dXMuTm90U3RhcnRlZD90aGlzLmluaXRpYWxTdGF0ZTp0aGlzLl9zdGF0ZX0sbi5kZWZhdWx0T3B0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm57ZXhlY3V0ZTohMCxkZWZlckV2ZW50czohMCxjbG9jazp7c2V0VGltZW91dDpmdW5jdGlvbih0LGUpe3JldHVybiBzZXRUaW1lb3V0KHQsZSl9LGNsZWFyVGltZW91dDpmdW5jdGlvbih0KXtyZXR1cm4gY2xlYXJUaW1lb3V0KHQpfX0sbG9nZ2VyOnQuY29uc29sZS5sb2cuYmluZChjb25zb2xlKSxkZXZUb29sczohMX19KFwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZWxmP3NlbGY6Z2xvYmFsKSxuLmludGVycHJldD10ZSxufSgpO2Z1bmN0aW9uIHRlKHQsZSl7cmV0dXJuIG5ldyBadCh0LGUpfXZhciBlZT17cmFpc2U6dnQsc2VuZDp5dCxzZW5kUGFyZW50Omd0LHNlbmRVcGRhdGU6bXQsbG9nOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PXQmJih0PVN0KSx7dHlwZTpudCxsYWJlbDplLGV4cHI6dH19LGNhbmNlbDp4dCxzdGFydDp3dCxzdG9wOmJ0LGFzc2lnbjpfdCxhZnRlcjpFdCxkb25lOlR0LHJlc3BvbmQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4geXQodCxlKGUoe30sbikse3RvOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbi5fZXZlbnQub3JpZ2lufX0pKX0sZm9yd2FyZFRvOk90LGVzY2FsYXRlOmZ1bmN0aW9uKG4scil7cmV0dXJuIGd0KChmdW5jdGlvbih0LGUscil7cmV0dXJue3R5cGU6YXQsZGF0YTpOKG4pP24odCxlLHIpOm59fSksZShlKHt9LHIpLHt0bzp0LlNwZWNpYWxUYXJnZXRzLlBhcmVudH0pKX0sY2hvb3NlOmZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOnQuQWN0aW9uVHlwZXMuQ2hvb3NlLGNvbmRzOmV9fSxwdXJlOmZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOnQuQWN0aW9uVHlwZXMuUHVyZSxnZXQ6ZX19fTt0LkludGVycHJldGVyPVp0LHQuTWFjaGluZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPXQuY29udGV4dCksbmV3IHp0KHQsZSxuKX0sdC5TdGF0ZT1rdCx0LlN0YXRlTm9kZT16dCx0LmFjdGlvbnM9ZWUsdC5hc3NpZ249X3QsdC5jcmVhdGVNYWNoaW5lPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyB6dCh0LGUpfSx0LmNyZWF0ZVNjaGVtYT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sdC5kb25lSW52b2tlPU50LHQuZm9yd2FyZFRvPU90LHQuaW50ZXJwcmV0PXRlLHQubWFwU3RhdGU9ZnVuY3Rpb24odCxlKXt2YXIgbixpLG87dHJ5e2Zvcih2YXIgYT1yKHModCkpLHU9YS5uZXh0KCk7IXUuZG9uZTt1PWEubmV4dCgpKXt2YXIgaD11LnZhbHVlO2MoaCxlKSYmKCFvfHxlLmxlbmd0aD5vLmxlbmd0aCkmJihvPWgpfX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt1JiYhdS5kb25lJiYoaT1hLnJldHVybikmJmkuY2FsbChhKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19cmV0dXJuIHRbb119LHQubWF0Y2hTdGF0ZT1mdW5jdGlvbih0LGUsbil7dmFyIG8sYSxzPWt0LmZyb20odCx0IGluc3RhbmNlb2Yga3Q/dC5jb250ZXh0OnZvaWQgMCk7dHJ5e2Zvcih2YXIgYz1yKGUpLHU9Yy5uZXh0KCk7IXUuZG9uZTt1PWMubmV4dCgpKXt2YXIgaD1pKHUudmFsdWUsMiksZj1oWzBdLGw9aFsxXTtpZihzLm1hdGNoZXMoZikpcmV0dXJuIGwocyl9fWNhdGNoKHQpe289e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihhPWMucmV0dXJuKSYmYS5jYWxsKGMpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1yZXR1cm4gbihzKX0sdC5tYXRjaGVzU3RhdGU9Yyx0LnNlbmQ9eXQsdC5zZW5kUGFyZW50PWd0LHQuc2VuZFVwZGF0ZT1tdCx0LnNwYXduPWZ1bmN0aW9uKHQsbil7dmFyIHI9ZnVuY3Rpb24odCl7cmV0dXJuIEEodCk/ZShlKHt9LFl0KSx7bmFtZTp0fSk6ZShlKGUoe30sWXQpLHtuYW1lOkMoKX0pLHQpfShuKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGU/ZS5zcGF3bih0LHIubmFtZSxyKTpWdCh0LHIubmFtZSl9KEl0W0l0Lmxlbmd0aC0xXSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pfSkpO1xuIl19
liujiaxin's avatar
liujiaxin committed
5785
//------QC-SOURCE-SPLIT------