@projectcor/maia-components 2.11.10-1 → 2.11.10-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,7 @@ export var SCChip = styled.div.withConfig({
11
11
  export var ChipContainer = styled.div.withConfig({
12
12
  displayName: "styles__ChipContainer",
13
13
  componentId: "sc-jreudr-2"
14
- })(["cursor:default;display:flex;max-width:264px;width:100%;"]);
14
+ })(["cursor:default;display:flex;max-width:264px;"]);
15
15
  export var ChipContent = styled.div.withConfig({
16
16
  displayName: "styles__ChipContent",
17
17
  componentId: "sc-jreudr-3"
@@ -28,4 +28,4 @@ export var ItemText = styled.div.withConfig({
28
28
  displayName: "styles__ItemText",
29
29
  componentId: "sc-jreudr-6"
30
30
  })(["white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:132px;color:rgba(102,102,102,1);"]);
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjb2xvcnMiLCJTdHlsZWRDaGlwIiwidWwiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsInRleHQiLCJkaXNhYmxlZCIsIlNDQ2hpcCIsImRpdiIsIkNoaXBDb250YWluZXIiLCJDaGlwQ29udGVudCIsInNlY29uZGFyeSIsIkl0ZW1Db250YWluZXIiLCJTZXBhcmF0b3IiLCJzcGFuIiwiSXRlbVRleHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9DaGlwL3N0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDaGlwID0gc3R5bGVkLnVsYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IDhweDtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCAke2NvbG9ycy50ZXh0LmRpc2FibGVkfTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgcGFkZGluZzogNnB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcblxuICBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGNvbG9yOiAjNjY2O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTMwJTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDaGlwID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBDaGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDI2NHB4O1xuICB3aWR0aDogMTAwJTtcbmBcblxuZXhwb3J0IGNvbnN0IENoaXBDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCAjYmZiZmJmO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBwYWRkaW5nOiA2cHg7XG4gIGdhcDogNHB4O1xuICBtaW4td2lkdGg6IGZpdC1jb250ZW50O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnMuc2Vjb25kYXJ5fTtcbiAgaGVpZ2h0OiAzMHB4O1xuYFxuXG5leHBvcnQgY29uc3QgSXRlbUNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNlcGFyYXRvciA9IHN0eWxlZC5zcGFuYFxuICBtYXJnaW46IDAgNHB4O1xuICBjb2xvcjogJHtjb2xvcnMuc2Vjb25kYXJ5fTtcbmBcblxuZXhwb3J0IGNvbnN0IEl0ZW1UZXh0ID0gc3R5bGVkLmRpdmBcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiAxMzJweDtcbiAgY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMSk7XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsTUFBTSxNQUFNLG1DQUFtQztBQUV0RCxPQUFPLElBQU1DLFVBQVUsR0FBR0YsTUFBTSxDQUFDRyxFQUFFLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbVBBSVhMLE1BQU0sQ0FBQ00sSUFBSSxDQUFDQyxRQUFRLENBYzNDO0FBRUQsT0FBTyxJQUFNQyxNQUFNLEdBQUdULE1BQU0sQ0FBQ1UsR0FBRyxDQUFBTixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHNDQUcvQjtBQUVELE9BQU8sSUFBTUssYUFBYSxHQUFHWCxNQUFNLENBQUNVLEdBQUcsQ0FBQU4sVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrREFLdEM7QUFFRCxPQUFPLElBQU1NLFdBQVcsR0FBR1osTUFBTSxDQUFDVSxHQUFHLENBQUFOLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsa0xBVTFCTCxNQUFNLENBQUNZLFNBQVMsQ0FFMUI7QUFFRCxPQUFPLElBQU1DLGFBQWEsR0FBR2QsTUFBTSxDQUFDVSxHQUFHLENBQUFOLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsb0RBSXRDO0FBRUQsT0FBTyxJQUFNUyxTQUFTLEdBQUdmLE1BQU0sQ0FBQ2dCLElBQUksQ0FBQVosVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxpQ0FFekJMLE1BQU0sQ0FBQ1ksU0FBUyxDQUMxQjtBQUVELE9BQU8sSUFBTUksUUFBUSxHQUFHakIsTUFBTSxDQUFDVSxHQUFHLENBQUFOLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsd0hBT2pDIiwiaWdub3JlTGlzdCI6W119
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjb2xvcnMiLCJTdHlsZWRDaGlwIiwidWwiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsInRleHQiLCJkaXNhYmxlZCIsIlNDQ2hpcCIsImRpdiIsIkNoaXBDb250YWluZXIiLCJDaGlwQ29udGVudCIsInNlY29uZGFyeSIsIkl0ZW1Db250YWluZXIiLCJTZXBhcmF0b3IiLCJzcGFuIiwiSXRlbVRleHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9DaGlwL3N0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDaGlwID0gc3R5bGVkLnVsYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IDhweDtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCAke2NvbG9ycy50ZXh0LmRpc2FibGVkfTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgcGFkZGluZzogNnB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcblxuICBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGNvbG9yOiAjNjY2O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTMwJTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDaGlwID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBDaGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDI2NHB4O1xuYFxuXG5leHBvcnQgY29uc3QgQ2hpcENvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDAuNXB4IHNvbGlkICNiZmJmYmY7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIHBhZGRpbmc6IDZweDtcbiAgZ2FwOiA0cHg7XG4gIG1pbi13aWR0aDogZml0LWNvbnRlbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9ycy5zZWNvbmRhcnl9O1xuICBoZWlnaHQ6IDMwcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBJdGVtQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU2VwYXJhdG9yID0gc3R5bGVkLnNwYW5gXG4gIG1hcmdpbjogMCA0cHg7XG4gIGNvbG9yOiAke2NvbG9ycy5zZWNvbmRhcnl9O1xuYFxuXG5leHBvcnQgY29uc3QgSXRlbVRleHQgPSBzdHlsZWQuZGl2YFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IDEzMnB4O1xuICBjb2xvcjogcmdiYSgxMDIsIDEwMiwgMTAyLCAxKTtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBRXRELE9BQU8sSUFBTUMsVUFBVSxHQUFHRixNQUFNLENBQUNHLEVBQUUsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxtUEFJWEwsTUFBTSxDQUFDTSxJQUFJLENBQUNDLFFBQVEsQ0FjM0M7QUFFRCxPQUFPLElBQU1DLE1BQU0sR0FBR1QsTUFBTSxDQUFDVSxHQUFHLENBQUFOLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0NBRy9CO0FBRUQsT0FBTyxJQUFNSyxhQUFhLEdBQUdYLE1BQU0sQ0FBQ1UsR0FBRyxDQUFBTixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9EQUl0QztBQUVELE9BQU8sSUFBTU0sV0FBVyxHQUFHWixNQUFNLENBQUNVLEdBQUcsQ0FBQU4sVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxrTEFVMUJMLE1BQU0sQ0FBQ1ksU0FBUyxDQUUxQjtBQUVELE9BQU8sSUFBTUMsYUFBYSxHQUFHZCxNQUFNLENBQUNVLEdBQUcsQ0FBQU4sVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxvREFJdEM7QUFFRCxPQUFPLElBQU1TLFNBQVMsR0FBR2YsTUFBTSxDQUFDZ0IsSUFBSSxDQUFBWixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGlDQUV6QkwsTUFBTSxDQUFDWSxTQUFTLENBQzFCO0FBRUQsT0FBTyxJQUFNSSxRQUFRLEdBQUdqQixNQUFNLENBQUNVLEdBQUcsQ0FBQU4sVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx3SEFPakMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -7,7 +7,7 @@ export var SCESContainer = styled.div.withConfig({
7
7
  export var SCESWrapper = styled.div.withConfig({
8
8
  displayName: "EntitySelectorstyles__SCESWrapper",
9
9
  componentId: "sc-1d6qmu7-1"
10
- })(["border:1px solid #bfbfbf;background-size:200% 100%;animation:", " 3s ease infinite;border-radius:4px;&:focus-within{outline:none;background:linear-gradient(180deg,#ffffff 0%,#ffffff 100%) padding-box,linear-gradient(90deg,#ff43ca 0%,#ba43ff 59.62%,#e7c4ff 100%) border-box;border:1px solid transparent;background-size:200% 100%;animation:", " 3s ease infinite;}width:100%;"], flow, flow);
10
+ })(["border:1px solid #bfbfbf;background-size:200% 100%;animation:", " 3s ease infinite;border-radius:4px;&:focus-within{outline:none;background:linear-gradient(180deg,#fef2ff 0%,#fef2ff 100%) padding-box,linear-gradient(90deg,#ff43ca 0%,#ba43ff 59.62%,#e7c4ff 100%) border-box;border:1px solid transparent;background-size:200% 100%;animation:", " 3s ease infinite;}width:100%;"], flow, flow);
11
11
  export var SCESSelectContainer = styled.div.withConfig({
12
12
  displayName: "EntitySelectorstyles__SCESSelectContainer",
13
13
  componentId: "sc-1d6qmu7-2"
@@ -54,4 +54,4 @@ export var SCESRecentItemIcon = styled.div.withConfig({
54
54
  displayName: "EntitySelectorstyles__SCESRecentItemIcon",
55
55
  componentId: "sc-1d6qmu7-12"
56
56
  })(["display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity 0.2s ease;", ":hover &{opacity:1;}"], SCESRecentItem);
57
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJmbG93IiwiU0NFU0NvbnRhaW5lciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiU0NFU1dyYXBwZXIiLCJTQ0VTU2VsZWN0Q29udGFpbmVyIiwiU0NFU1Jlc3VsdENvbnRhaW5lciIsIlNDRVNJbnB1dCIsImlucHV0IiwiU0NFU1JlY2VudFRpdGxlIiwiU0NFU1JlY2VudExpc3QiLCJwcm9wcyIsIiRyZWNlbnRJdGVtcyIsIlNDRVNJdGVtc0xpc3QiLCJTQ0VTUmVjZW50SXRlbSIsIlNDRVNSZWNlbnRJdGVtSW5mbyIsIlNDRVNSZWNlbnRJdGVtU2Vjb25kYXJ5IiwiU0NFU1JlY2VudEl0ZW1QcmltYXJ5IiwiU0NFU1JlY2VudEl0ZW1JY29uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvRW50aXR5U2VsZWN0b3IvRW50aXR5U2VsZWN0b3Iuc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgZmxvdyB9IGZyb20gJy4uL01BSUFJbnB1dC9zdHlsZXMnXG5cbmV4cG9ydCBjb25zdCBTQ0VTQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0VTV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlcjogMXB4IHNvbGlkICNiZmJmYmY7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICBhbmltYXRpb246ICR7Zmxvd30gM3MgZWFzZSBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZmZmZiAwJSwgI2ZmZmZmZiAxMDAlKSBwYWRkaW5nLWJveCxcbiAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2ZmNDNjYSAwJSwgI2JhNDNmZiA1OS42MiUsICNlN2M0ZmYgMTAwJSkgYm9yZGVyLWJveDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgICBhbmltYXRpb246ICR7Zmxvd30gM3MgZWFzZSBpbmZpbml0ZTtcbiAgfVxuICB3aWR0aDogMTAwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNTZWxlY3RDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0MzRweDtcbiAgcGFkZGluZzogOHB4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNSZXN1bHRDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGdhcDogOHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NFU0lucHV0ID0gc3R5bGVkLmlucHV0YFxuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1UZXh0LVNlY29uZGFyeS1EYXJrLCAjNjY2KTtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4yMXB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgb3V0bGluZTogbm9uZTtcbiAgZmxleDogMTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHZhcigtLVRleHQtU2Vjb25kYXJ5LURhcmssICM2NjYpO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0VTUmVjZW50VGl0bGUgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogdmFyKC0tR3JheS00MDAsICM4YzhjOGMpO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNSZWNlbnRMaXN0ID0gc3R5bGVkLmRpdjx7ICRyZWNlbnRJdGVtcz86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDhweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgbWF4LWhlaWdodDogJHtwcm9wcyA9PiAocHJvcHMuJHJlY2VudEl0ZW1zID8gJzIzMnB4JyA6ICcyMTZweCcpfTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNnB4O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6ICNkMGQwZDA7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNiMGIwYjA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNJdGVtc0xpc3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIG1heC1oZWlnaHQ6IDIxMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA2cHg7XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogI2QwZDBkMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2IwYjBiMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NFU1JlY2VudEl0ZW0gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAwIDVweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLUNvbG9yLUxpZ2h0LUdyYXksICNlMGUwZTApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmM3NWNlO1xuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNSZWNlbnRJdGVtSW5mbyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMnB4O1xuICBmbGV4OiAxO1xuYFxuXG5leHBvcnQgY29uc3QgU0NFU1JlY2VudEl0ZW1TZWNvbmRhcnkgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDJweDtcbiAgY29sb3I6IHZhcigtLVRleHQtTWVkaXVtLUdyYXksICM5OTkpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMjAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMXB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NFU1JlY2VudEl0ZW1QcmltYXJ5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1UZXh0LVByaW1hcnktRGFyaywgIzIwMjAxZik7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNSZWNlbnRJdGVtSWNvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcblxuICAke1NDRVNSZWNlbnRJdGVtfTpob3ZlciAmIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUUxQyxPQUFPLElBQU1DLGFBQWEsR0FBR0YsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNEdBT3RDO0FBRUQsT0FBTyxJQUFNQyxXQUFXLEdBQUdQLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDZYQUd0QkwsSUFBSSxFQVNGQSxJQUFJLENBR3BCO0FBRUQsT0FBTyxJQUFNTyxtQkFBbUIsR0FBR1IsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0pBVTVDO0FBRUQsT0FBTyxJQUFNRyxtQkFBbUIsR0FBR1QsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaUdBTTVDO0FBRUQsT0FBTyxJQUFNSSxTQUFTLEdBQUdWLE1BQU0sQ0FBQ1csS0FBSyxDQUFBUCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRRQWdCcEM7QUFFRCxPQUFPLElBQU1NLGVBQWUsR0FBR1osTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNExBVXhDO0FBRUQsT0FBTyxJQUFNTyxjQUFjLEdBQUdiLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHlWQU14QixVQUFBUSxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDQyxZQUFZLEdBQUcsT0FBTyxHQUFHLE9BQU87QUFBQSxDQUFDLENBb0JoRTtBQUVELE9BQU8sSUFBTUMsYUFBYSxHQUFHaEIsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEseVZBMEJ0QztBQUVELE9BQU8sSUFBTVcsY0FBYyxHQUFHakIsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsK1FBZXZDO0FBRUQsT0FBTyxJQUFNWSxrQkFBa0IsR0FBR2xCLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHNIQVEzQztBQUVELE9BQU8sSUFBTWEsdUJBQXVCLEdBQUduQixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx3T0FhaEQ7QUFFRCxPQUFPLElBQU1jLHFCQUFxQixHQUFHcEIsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaU5BVzlDO0FBRUQsT0FBTyxJQUFNZSxrQkFBa0IsR0FBR3JCLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLCtIQU94Q1csY0FBYyxDQUdqQiIsImlnbm9yZUxpc3QiOltdfQ==
57
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJmbG93IiwiU0NFU0NvbnRhaW5lciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiU0NFU1dyYXBwZXIiLCJTQ0VTU2VsZWN0Q29udGFpbmVyIiwiU0NFU1Jlc3VsdENvbnRhaW5lciIsIlNDRVNJbnB1dCIsImlucHV0IiwiU0NFU1JlY2VudFRpdGxlIiwiU0NFU1JlY2VudExpc3QiLCJwcm9wcyIsIiRyZWNlbnRJdGVtcyIsIlNDRVNJdGVtc0xpc3QiLCJTQ0VTUmVjZW50SXRlbSIsIlNDRVNSZWNlbnRJdGVtSW5mbyIsIlNDRVNSZWNlbnRJdGVtU2Vjb25kYXJ5IiwiU0NFU1JlY2VudEl0ZW1QcmltYXJ5IiwiU0NFU1JlY2VudEl0ZW1JY29uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvRW50aXR5U2VsZWN0b3IvRW50aXR5U2VsZWN0b3Iuc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgZmxvdyB9IGZyb20gJy4uL01BSUFJbnB1dC9zdHlsZXMnXG5cbmV4cG9ydCBjb25zdCBTQ0VTQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0VTV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlcjogMXB4IHNvbGlkICNiZmJmYmY7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICBhbmltYXRpb246ICR7Zmxvd30gM3MgZWFzZSBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZlZjJmZiAwJSwgI2ZlZjJmZiAxMDAlKSBwYWRkaW5nLWJveCxcbiAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2ZmNDNjYSAwJSwgI2JhNDNmZiA1OS42MiUsICNlN2M0ZmYgMTAwJSkgYm9yZGVyLWJveDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgICBhbmltYXRpb246ICR7Zmxvd30gM3MgZWFzZSBpbmZpbml0ZTtcbiAgfVxuICB3aWR0aDogMTAwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNTZWxlY3RDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0MzRweDtcbiAgcGFkZGluZzogOHB4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNSZXN1bHRDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGdhcDogOHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NFU0lucHV0ID0gc3R5bGVkLmlucHV0YFxuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1UZXh0LVNlY29uZGFyeS1EYXJrLCAjNjY2KTtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4yMXB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgb3V0bGluZTogbm9uZTtcbiAgZmxleDogMTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHZhcigtLVRleHQtU2Vjb25kYXJ5LURhcmssICM2NjYpO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0VTUmVjZW50VGl0bGUgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogdmFyKC0tR3JheS00MDAsICM4YzhjOGMpO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNSZWNlbnRMaXN0ID0gc3R5bGVkLmRpdjx7ICRyZWNlbnRJdGVtcz86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDhweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgbWF4LWhlaWdodDogJHtwcm9wcyA9PiAocHJvcHMuJHJlY2VudEl0ZW1zID8gJzIzMnB4JyA6ICcyMTZweCcpfTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNnB4O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6ICNkMGQwZDA7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNiMGIwYjA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNJdGVtc0xpc3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIG1heC1oZWlnaHQ6IDIxMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA2cHg7XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogI2QwZDBkMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2IwYjBiMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NFU1JlY2VudEl0ZW0gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAwIDVweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLUNvbG9yLUxpZ2h0LUdyYXksICNlMGUwZTApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmM3NWNlO1xuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNSZWNlbnRJdGVtSW5mbyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMnB4O1xuICBmbGV4OiAxO1xuYFxuXG5leHBvcnQgY29uc3QgU0NFU1JlY2VudEl0ZW1TZWNvbmRhcnkgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDJweDtcbiAgY29sb3I6IHZhcigtLVRleHQtTWVkaXVtLUdyYXksICM5OTkpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMjAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMXB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NFU1JlY2VudEl0ZW1QcmltYXJ5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1UZXh0LVByaW1hcnktRGFyaywgIzIwMjAxZik7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRVNSZWNlbnRJdGVtSWNvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcblxuICAke1NDRVNSZWNlbnRJdGVtfTpob3ZlciAmIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUUxQyxPQUFPLElBQU1DLGFBQWEsR0FBR0YsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNEdBT3RDO0FBRUQsT0FBTyxJQUFNQyxXQUFXLEdBQUdQLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDZYQUd0QkwsSUFBSSxFQVNGQSxJQUFJLENBR3BCO0FBRUQsT0FBTyxJQUFNTyxtQkFBbUIsR0FBR1IsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0pBVTVDO0FBRUQsT0FBTyxJQUFNRyxtQkFBbUIsR0FBR1QsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaUdBTTVDO0FBRUQsT0FBTyxJQUFNSSxTQUFTLEdBQUdWLE1BQU0sQ0FBQ1csS0FBSyxDQUFBUCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRRQWdCcEM7QUFFRCxPQUFPLElBQU1NLGVBQWUsR0FBR1osTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNExBVXhDO0FBRUQsT0FBTyxJQUFNTyxjQUFjLEdBQUdiLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHlWQU14QixVQUFBUSxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDQyxZQUFZLEdBQUcsT0FBTyxHQUFHLE9BQU87QUFBQSxDQUFDLENBb0JoRTtBQUVELE9BQU8sSUFBTUMsYUFBYSxHQUFHaEIsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEseVZBMEJ0QztBQUVELE9BQU8sSUFBTVcsY0FBYyxHQUFHakIsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsK1FBZXZDO0FBRUQsT0FBTyxJQUFNWSxrQkFBa0IsR0FBR2xCLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHNIQVEzQztBQUVELE9BQU8sSUFBTWEsdUJBQXVCLEdBQUduQixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx3T0FhaEQ7QUFFRCxPQUFPLElBQU1jLHFCQUFxQixHQUFHcEIsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaU5BVzlDO0FBRUQsT0FBTyxJQUFNZSxrQkFBa0IsR0FBR3JCLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLCtIQU94Q1csY0FBYyxDQUdqQiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -663,4 +663,4 @@ var ChatAIMessagesInner = function ChatAIMessagesInner(_ref8) {
663
663
  });
664
664
  };
665
665
  export var ChatAIMessages = /*#__PURE__*/React.memo(ChatAIMessagesInner);
666
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwiY3JlYXRlRWxlbWVudCIsIl9jcmVhdGVFbGVtZW50IiwiU3RyZWFtZG93biIsImNyZWF0ZUNvZGVQbHVnaW4iLCJBcnJvd1NtYWxsRG93biIsIkF0dGFjaG1lbnRDYXJkIiwiQXBwcm92YWxCb3giLCJBdHRhY2htZW50UHJldmlld01vZGFsIiwiQXR0YWNobWVudENhcmRBdWRpbyIsIkNoYXRIaXN0b3J5Um9sZSIsInVzZVVzZXIiLCJ1c2VUIiwidXNlQ2hhdE1hbmFnZXIiLCJ1c2VUYXNrUGFuZWwiLCJMb2FkaW5nVGV4dCIsIkxvYWRlciIsIk1lc3NhZ2VGcm9tVXNlciIsIk1lc3NhZ2VGcm9tT3RoZXIiLCJNZXNzYWdlQ29udGVudEZyb21Vc2VyIiwiTWVzc2FnZUNvbnRlbnRGcm9tT3RoZXIiLCJNZXNzYWdlRmVlZGJhY2siLCJTQ0NBSU1lc3NhZ2VXcmFwcGVyIiwiU2Nyb2xsVG9Cb3R0b21CdXR0b24iLCJTQ01lc3NhZ2VzT3V0ZXIiLCJTQ01lc3NhZ2VzU2Nyb2xsIiwiU0NNZXNzYWdlc0lubmVyIiwiU0NMb2FkaW5nTWVzc2FnZXNDb2x1bW4iLCJTQ09wdGlvbnNMaXN0IiwiU0NPcHRpb25JdGVtIiwiU0NBc3Npc3RhbnRNZXNzYWdlSGVhZGVyIiwiU0NBc3Npc3RhbnROYW1lIiwiU0NBc3Npc3RhbnRBdmF0YXIiLCJTQ1Rhc2tMaW5rIiwiU0NNZXNzYWdlSXRlbVdyYXBwZXIiLCJTQ01lc3NhZ2VJdGVtSW5uZXIiLCJTQ0F0dGFjaG1lbnRzUm93IiwiU0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4iLCJGZWVkYmFjayIsInVzZUdsb2JhbENvbnRleHQiLCJNQUlBSXNvbG9nbyIsIlRBU0tfVVJMX1JFR0VYX1BBVFRFUk4iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJjb2RlIiwidGhlbWVzIiwiQXNzaXN0YW50QXZhdGFyIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9jYWxBZ2VudCIsInNldExvY2FsQWdlbnQiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiY2hpbGRyZW4iLCJ0eXBlIiwid2lkdGgiLCJoZWlnaHQiLCJlbW9qaSIsIk1lc3NhZ2VXcmFwcGVyIiwiX3JlZiIsImlzQ3VycmVudFVzZXIiLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIk1lc3NhZ2VDb21wb25lbnQiLCJfb2JqZWN0U3ByZWFkIiwiTWVzc2FnZUNvbnRlbnRXcmFwcGVyIiwiX3JlZjIiLCJfZXhjbHVkZWQyIiwiTWVzc2FnZUNvbnRlbnRDb21wb25lbnQiLCJNZXNzYWdlT3B0aW9ucyIsIl9yZWYzIiwib3B0aW9ucyIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2VsZWN0ZWRPcHRpb24iLCJzZXRTZWxlY3RlZE9wdGlvbiIsImhhbmRsZVNlbGVjdCIsIm9wdGlvbiIsIm1hcCIsIiRoYXNTZWxlY3Rpb24iLCIkZGltbWVkIiwiaWQiLCJvbkNsaWNrIiwibmFtZSIsIkFzc2lzdGFudE1lc3NhZ2VIZWFkZXIiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIl91c2VHbG9iYWxDb250ZXh0MiIsImdldFRhYlNlZ21lbnRGcm9tSHJlZiIsImhyZWYiLCJtYXRjaCIsInRlc3QiLCJUYXNrTGluayIsIl9yZWY0IiwidGFza0lkIiwidGFiU2VnbWVudCIsIl91c2VUYXNrUGFuZWwiLCJidWlsZE9wZW5UYXNrIiwib3BlblRhc2siLCJoYW5kbGVDbGljayIsImUiLCJtZXRhS2V5IiwiY3RybEtleSIsInByZXZlbnREZWZhdWx0IiwiQ3VzdG9tTGluayIsIl9yZWY1IiwicmVzdCIsIl9leGNsdWRlZDMiLCJ0YXNrTWF0Y2giLCJSZWdFeHAiLCJNZXNzYWdlSXRlbSIsIl9yZWY2IiwiX3JlZjciLCJ1c2VyIiwibWVzc2FnZSIsImlzRXJyb3IiLCJhdXRoVXNlciIsImlzQ2hhbmdlUHJvamVjdCIsImhhbmRsZUZlZWRiYWNrIiwiaGFuZGxlQXBwcm92YWxEZWNpc2lvbiIsImRpc2FibGVGZWVkYmFjayIsInJvbGUiLCJzb3VyY2VzIiwiYXR0YWNobWVudHMiLCJhcHByb3ZhbCIsImFwcHJvdmFsU3RhdHVzIiwiZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UiLCJ0YXNrVXJsUmVnZXgiLCJ0YXNrcyIsInNlZW5JZHMiLCJTZXQiLCJleGVjIiwidXJsIiwiaGFzIiwiYWRkIiwibWFya2Rvd25MaW5rUmVnZXgiLCJjb25jYXQiLCJyZXBsYWNlIiwibGlua01hdGNoIiwidGl0bGUiLCJwdXNoIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJwcmV2aWV3QXR0YWNobWVudCIsInNldFByZXZpZXdBdHRhY2htZW50IiwiVVNFUiIsInRvU3RyaW5nIiwiaXNBc3Npc3RhbnQiLCJBU1NJU1RBTlQiLCJoYW5kbGVBdHRhY2htZW50Q2xpY2siLCJhdHRhY2htZW50IiwiZmlsZSIsIkZpbGUiLCJvcmlnaW5hbEZpbGUiLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiLCJoYW5kbGVDbG9zZVByZXZpZXciLCJoYXNGZWVkYmFjayIsIiRpc0Fzc2lzdGFudCIsIm1lc3NhZ2VFeHRyYUNvbnRlbnQiLCJoYW5kbGVGZWVkYmFja0NsaWNrIiwiZmVlZGJhY2siLCJzZXNzaW9uSWQiLCJzcGxpdCIsImZpbHRlciIsInF1ZXN0aW9uSWQiLCJqb2luIiwibGVuZ3RoIiwiaW5kZXgiLCJfYXR0YWNobWVudCR0eXBlIiwiX2F0dGFjaG1lbnQkbmFtZSIsImF0dGFjaG1lbnRUeXBlIiwidG9Mb3dlckNhc2UiLCJhdHRhY2htZW50TmFtZSIsImlzQXVkaW9GaWxlIiwic3RhcnRzV2l0aCIsImluY2x1ZGVzIiwic29tZSIsImV4dCIsImVuZHNXaXRoIiwicG9zaXRpb25JbmRleCIsInBlbmRpbmdfYWN0aW9ucyIsImFjdGlvbiIsIl9wcm9wcyRwcm9qZWN0TWV0YWRhdCIsInN0YXR1cyIsIm9uQXBwcm92ZSIsInRocmVhZElkIiwib25SZWplY3QiLCJpc1Byb2plY3REZWxldGVkIiwicHJvamVjdE1ldGFkYXRhIiwiaXNfZGVsZXRlZCIsImlzRXhwYW5kZWQiLCJleHBhbmRlZCIsInRocmVhZF9pZCIsInRvb2xfY2FsbF9pZCIsImlzRnJvbnRlbmRDYW5jZWxsZWQiLCJjbGFzc05hbWUiLCJwbHVnaW5zIiwiY29tcG9uZW50cyIsImEiLCJsaW5rU2FmZXR5IiwiZW5hYmxlZCIsImlzQW5pbWF0aW5nIiwiaXNTdHJlYW1pbmciLCJzaGlraVRoZW1lIiwiY29udHJvbHMiLCJ0YWJsZSIsImNvbnRlbnQiLCJpc09wZW4iLCJvbkNsb3NlIiwiQ2hhdEFJTWVzc2FnZXNJbm5lciIsIl9yZWY4IiwidXNlckluaXRpYWxNZXNzYWdlIiwiaW5pdGlhbENoYXRJZCIsIm9uRXJyb3IiLCJvblNlbmRNZXNzYWdlUmVhZHkiLCJvblNjcm9sbFRvQm90dG9tIiwiYWdlbnRzIiwiX3VzZVQiLCJ0IiwiX3VzZUdsb2JhbENvbnRleHQzIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJtZXNzYWdlc1JlZiIsImNoYXRJbml0aWFsaXplZFJlZiIsImlzTG9hZGluZ01vcmVSZWYiLCJ1c2VyU2Nyb2xsaW5nUmVmIiwic2Nyb2xsVGhyZXNob2xkUmVmIiwibGFzdFNjcm9sbFRvcFJlZiIsInNob3dTY3JvbGxUb0JvdHRvbVJlZiIsInNjcm9sbFJhZlJlZiIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic2hvd1Njcm9sbFRvQm90dG9tIiwic2V0U2hvd1Njcm9sbFRvQm90dG9tIiwiX3VzZUNoYXRNYW5hZ2VyIiwiY2hhdElkIiwidW5kZWZpbmVkIiwibWVzc2FnZXMiLCJsb2FkaW5nTWVzc2FnZXMiLCJpc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJ3YWl0aW5nUmVzcG9uc2UiLCJpc1dyaXRpbmciLCJsb2FkaW5nTWVzc2FnZSIsImFjdGl2ZUxvYWRpbmdzIiwic2VuZE1lc3NhZ2UiLCJjaGFuZ2VQcm9qZWN0IiwiaW5pdGlhbGl6ZUNoYXQiLCJoYW5kbGVTY3JvbGwiLCJzdG9wR2VuZXJhdGlvbiIsImhhbmRsZUNsaWNrU2Nyb2xsVG9Cb3R0b20iLCJjdXJyZW50Iiwic2Nyb2xsVG8iLCJ0b3AiLCJzY3JvbGxIZWlnaHQiLCJiZWhhdmlvciIsInNldFRpbWVvdXQiLCJfbWVzc2FnZXNSZWYkY3VycmVudCIsInNjcm9sbFRvcCIsImNsaWVudEhlaWdodCIsImRpc3RhbmNlRnJvbUJvdHRvbSIsInNob3VsZFNob3ciLCJoYW5kbGVTY3JvbGxUb0JvdHRvbSIsImNvbnRhaW5lciIsImN1cnJlbnRUYXJnZXQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlzU2Nyb2xsaW5nVXAiLCJpc05lYXJCb3R0b20iLCJkaWRTZXRTdGF0ZSIsInNlbmRNZXNzYWdlUmVmIiwic3RvcEdlbmVyYXRpb25SZWYiLCJvblNlbmRNZXNzYWdlUmVhZHlSZWYiLCJsYXN0TWVzc2FnZSIsImhhc0FwcHJvdmFsIiwiaXNBdEJvdHRvbSIsInNjcm9sbFRvQm90dG9tIiwiX21lc3NhZ2VzUmVmJGN1cnJlbnQyIiwiaXNOZXdBbnN3ZXJNZXNzYWdlIiwiaXNOZXdVc2VyTWVzc2FnZSIsImlzTmV3QXBwcm92YWxNZXNzYWdlIiwiaGFzTWVzc2FnZXMiLCJpc05vdEluaXRpYWxNZXNzYWdlIiwibXNnIiwic2Nyb2xsRGVsYXkiLCJkb1Njcm9sbCIsIl9tZXNzYWdlc1JlZiRjdXJyZW50MyIsIl9tZXNzYWdlc1JlZiRjdXJyZW50NCIsImxhc3RVc2VyTWVzc2FnZSIsImF0IiwiaGFzQXR0YWNobWVudHMiLCJBcnJheSIsImlzQXJyYXkiLCJpc1Njcm9sbE9uUGFyZW50IiwibWVzc2FnZXNDb250ZW50IiwidGV4dCIsIl9tZXNzYWdlJGF0dGFjaG1lbnRzIiwiX21lc3NhZ2Ukc291cmNlcyIsIl9tZXNzYWdlJHByb2plY3QiLCJwcm9qZWN0IiwibWVzc2FnZUZlZWRiYWNrIiwid2FzSGVscGZ1bCIsIlRIVU1CU19VUCIsIlRIVU1CU19ET1dOIiwiaXNBc3Npc3RhbnRNZXNzYWdlIiwiaXNMYXN0TWVzc2FnZSIsImtleSIsImRhdGUiLCJPYmplY3QiLCJrZXlzIiwiZW50cmllcyIsIl9yZWY5IiwiX3JlZjAiLCIkc2Nyb2xsT25QYXJlbnQiLCJyZWYiLCJvblNjcm9sbCIsImNvbG9yIiwiQ2hhdEFJTWVzc2FnZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvQ2hhdEFJTWVzc2FnZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tdW5zdGFibGUtbmVzdGVkLWNvbXBvbmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgUmVhY3QsIHsgRkMsIG1lbW8sIFJlYWN0Tm9kZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgU3RyZWFtZG93biB9IGZyb20gJ3N0cmVhbWRvd24nXG5pbXBvcnQgeyBjcmVhdGVDb2RlUGx1Z2luIH0gZnJvbSAnQHN0cmVhbWRvd24vY29kZSdcbmltcG9ydCB7IEFycm93U21hbGxEb3duIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXJyb3dTbWFsbERvd24nXG5cbmltcG9ydCB7IEF0dGFjaG1lbnRDYXJkIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudENhcmQvQXR0YWNobWVudENhcmQnXG5pbXBvcnQgeyBBcHByb3ZhbEJveCB9IGZyb20gJy4uLy4uL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94J1xuaW1wb3J0IHsgQXR0YWNobWVudFByZXZpZXdNb2RhbCB9IGZyb20gJy4uLy4uL2F0b21zL0F0dGFjaG1lbnRQcmV2aWV3TW9kYWwnXG5pbXBvcnQgeyBBdHRhY2htZW50Q2FyZEF1ZGlvIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudENhcmQvQXR0YWNobWVudENhcmRBdWRpbydcbmltcG9ydCB7IE1BSUFNZXNzYWdlUHJvcHMgfSBmcm9tICcuLi8uLi9hdG9tcy9NQUlBTWVzc2FnZS9NQUlBTWVzc2FnZS5pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIENoYXRIaXN0b3J5Um9sZSwgVGFza0luZm8gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuXG5pbXBvcnQgeyBDT1JVc2VyLCB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VDaGF0TWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUNoYXRNYW5hZ2VyL3VzZUNoYXRNYW5hZ2VyJ1xuaW1wb3J0IHsgdXNlVGFza1BhbmVsIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVGFza1BhbmVsJ1xuXG5pbXBvcnQgeyBMb2FkaW5nVGV4dCB9IGZyb20gJy4uLy4uL2F0b21zL0xvYWRpbmdUZXh0J1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvUHJvamVjdCdcblxuaW1wb3J0IHsgTWVzc2FnZUZyb21Vc2VyLCBNZXNzYWdlRnJvbU90aGVyLCBNZXNzYWdlQ29udGVudEZyb21Vc2VyLCBNZXNzYWdlQ29udGVudEZyb21PdGhlciB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgTWVzc2FnZUZlZWRiYWNrIH0gZnJvbSAnLi4vTWVzc2FnZUZlZWRiYWNrJ1xuaW1wb3J0IHtcbiAgU0NDQUlNZXNzYWdlV3JhcHBlcixcbiAgU2Nyb2xsVG9Cb3R0b21CdXR0b24sXG4gIFNDTWVzc2FnZXNPdXRlcixcbiAgU0NNZXNzYWdlc1Njcm9sbCxcbiAgU0NNZXNzYWdlc0lubmVyLFxuICBTQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbixcbiAgU0NPcHRpb25zTGlzdCxcbiAgU0NPcHRpb25JdGVtLFxuICBTQ0Fzc2lzdGFudE1lc3NhZ2VIZWFkZXIsXG4gIFNDQXNzaXN0YW50TmFtZSxcbiAgU0NBc3Npc3RhbnRBdmF0YXIsXG4gIFNDVGFza0xpbmssXG4gIFNDTWVzc2FnZUl0ZW1XcmFwcGVyLFxuICBTQ01lc3NhZ2VJdGVtSW5uZXIsXG4gIFNDQXR0YWNobWVudHNSb3csXG4gIFNDQXBwcm92YWxBY3Rpb25zQ29sdW1uLFxufSBmcm9tICcuL25ld1N0eWxlcydcbmltcG9ydCB7IEZlZWRiYWNrIH0gZnJvbSAnLi4vTWVzc2FnZUZlZWRiYWNrL01lc3NhZ2VGZWVkYmFjaydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5cbmNvbnN0IGNvZGUgPSBjcmVhdGVDb2RlUGx1Z2luKHsgdGhlbWVzOiBbJ2dpdGh1Yi1saWdodCcsICdnaXRodWItbGlnaHQnXSB9KVxuXG5jb25zdCBBc3Npc3RhbnRBdmF0YXIgPSAoKSA9PiB7XG4gIGNvbnN0IFtsb2NhbEFnZW50LCBzZXRMb2NhbEFnZW50XSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMb2NhbEFnZW50KGFnZW50KVxuICB9LCBbYWdlbnRdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQXNzaXN0YW50QXZhdGFyPlxuICAgICAge2xvY2FsQWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgPyA8TUFJQUlzb2xvZ28gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPiA6IGxvY2FsQWdlbnQ/LmVtb2ppfVxuICAgIDwvU0NBc3Npc3RhbnRBdmF0YXI+XG4gIClcbn1cblxudHlwZSBDaGF0QUlNZXNzYWdlc1Byb3BzID0ge1xuICB1c2VySW5pdGlhbE1lc3NhZ2U6IHsgbWVzc2FnZTogc3RyaW5nOyBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXTsgZmFxSWQ/OiBzdHJpbmcgfVxuICBpbml0aWFsQ2hhdElkOiBzdHJpbmcgfCBudWxsXG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgb25TZW5kTWVzc2FnZVJlYWR5PzogKFxuICAgIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkLFxuICAgIHN0b3BHZW5lcmF0aW9uOiAoKSA9PiB2b2lkLFxuICAgIGlzU3RyZWFtaW5nOiBib29sZWFuLFxuICAgIGlzV3JpdGluZzogYm9vbGVhblxuICApID0+IHZvaWRcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TY3JvbGxUb0JvdHRvbT86ICgpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGFnZW50cz86IEFnZW50W11cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG59XG5cbnR5cGUgTWVzc2FnZUl0ZW1Qcm9wcyA9IENoYXRNZXNzYWdlICYge1xuICBhdXRoVXNlcjogQ09SVXNlclxuICBoYW5kbGVTZWxlY3RPcHRpb246IChvcHRpb246IFByb2plY3QpID0+IHZvaWRcbiAgaGFuZGxlRmVlZGJhY2s6IChmZWVkYmFjazogRmVlZGJhY2ssIGNoYXRNZXNzYWdlSWQ6IHN0cmluZykgPT4gdm9pZFxuICBoYW5kbGVBcHByb3ZhbERlY2lzaW9uOiAodGhyZWFkSWQ6IHN0cmluZywgZGVjaXNpb246ICdhcHByb3ZlJyB8ICdyZWplY3QnKSA9PiB2b2lkXG4gIGRpc2FibGVGZWVkYmFjaz86IEZlZWRiYWNrIHwgbnVsbFxuICBzb3VyY2VzPzogYW55XG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG59XG5cbmludGVyZmFjZSBNZXNzYWdlV3JhcHBlclByb3BzIHtcbiAgaXNDdXJyZW50VXNlcjogYm9vbGVhblxuICBjaGlsZHJlbjogUmVhY3ROb2RlXG4gICdkYXRhLW1lc3NhZ2UtaWQnPzogc3RyaW5nXG4gIGhhc0ZlZWRiYWNrPzogYm9vbGVhblxufVxuXG50eXBlIE1lc3NhZ2VDb250ZW50V3JhcHBlclByb3BzID0gTUFJQU1lc3NhZ2VQcm9wcyAmIHtcbiAgaXNDdXJyZW50VXNlcjogYm9vbGVhblxuICBpc0Vycm9yPzogYm9vbGVhblxuICBpc0NoYW5nZVByb2plY3Q/OiBib29sZWFuXG59XG5cbmNvbnN0IE1lc3NhZ2VXcmFwcGVyOiBGQzxNZXNzYWdlV3JhcHBlclByb3BzPiA9ICh7IGlzQ3VycmVudFVzZXIsIGNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IE1lc3NhZ2VDb21wb25lbnQgPSBpc0N1cnJlbnRVc2VyID8gTWVzc2FnZUZyb21Vc2VyIDogTWVzc2FnZUZyb21PdGhlclxuICByZXR1cm4gPE1lc3NhZ2VDb21wb25lbnQgey4uLnByb3BzfT57Y2hpbGRyZW59PC9NZXNzYWdlQ29tcG9uZW50PlxufVxuXG5jb25zdCBNZXNzYWdlQ29udGVudFdyYXBwZXI6IEZDPE1lc3NhZ2VDb250ZW50V3JhcHBlclByb3BzPiA9ICh7IGlzQ3VycmVudFVzZXIsIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgTWVzc2FnZUNvbnRlbnRDb21wb25lbnQgPSBpc0N1cnJlbnRVc2VyID8gTWVzc2FnZUNvbnRlbnRGcm9tVXNlciA6IE1lc3NhZ2VDb250ZW50RnJvbU90aGVyXG4gIHJldHVybiA8TWVzc2FnZUNvbnRlbnRDb21wb25lbnQgey4uLnByb3BzfSAvPlxufVxuXG5mdW5jdGlvbiBNZXNzYWdlT3B0aW9ucyh7XG4gIG9wdGlvbnMsXG4gIGhhbmRsZVNlbGVjdE9wdGlvbixcbn06IHtcbiAgb3B0aW9uczogUHJvamVjdFtdIHwgbnVsbFxuICBoYW5kbGVTZWxlY3RPcHRpb246IChvcHRpb246IFByb2plY3QpID0+IHZvaWRcbn0pIHtcbiAgY29uc3QgW3NlbGVjdGVkT3B0aW9uLCBzZXRTZWxlY3RlZE9wdGlvbl0gPSB1c2VTdGF0ZTxQcm9qZWN0IHwgbnVsbD4obnVsbClcblxuICBjb25zdCBoYW5kbGVTZWxlY3QgPSAob3B0aW9uOiBQcm9qZWN0KSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkT3B0aW9uKSByZXR1cm5cbiAgICBzZXRTZWxlY3RlZE9wdGlvbihvcHRpb24pXG4gICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbilcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDT3B0aW9uc0xpc3Q+XG4gICAgICB7KG9wdGlvbnMgfHwgW10pLm1hcChvcHRpb24gPT4gKFxuICAgICAgICA8U0NPcHRpb25JdGVtXG4gICAgICAgICAgJGhhc1NlbGVjdGlvbj17ISFzZWxlY3RlZE9wdGlvbn1cbiAgICAgICAgICAkZGltbWVkPXshIXNlbGVjdGVkT3B0aW9uICYmIHNlbGVjdGVkT3B0aW9uPy5pZCAhPT0gb3B0aW9uLmlkfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNlbGVjdChvcHRpb24pfVxuICAgICAgICAgIGtleT17b3B0aW9uLmlkfVxuICAgICAgICA+XG4gICAgICAgICAge29wdGlvbi5uYW1lfVxuICAgICAgICA8L1NDT3B0aW9uSXRlbT5cbiAgICAgICkpfVxuICAgIDwvU0NPcHRpb25zTGlzdD5cbiAgKVxufVxuXG5jb25zdCBBc3Npc3RhbnRNZXNzYWdlSGVhZGVyID0gKCkgPT4ge1xuICBjb25zdCBbbG9jYWxBZ2VudCwgc2V0TG9jYWxBZ2VudF0gPSB1c2VTdGF0ZTxBZ2VudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHsgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0TG9jYWxBZ2VudChhZ2VudClcbiAgfSwgW2FnZW50XSlcblxuICByZXR1cm4gKFxuICAgIDxTQ0Fzc2lzdGFudE1lc3NhZ2VIZWFkZXI+XG4gICAgICA8QXNzaXN0YW50QXZhdGFyIC8+XG4gICAgICB7bG9jYWxBZ2VudD8ubmFtZSAmJiAoXG4gICAgICAgIDxTQ0Fzc2lzdGFudE5hbWU+e2xvY2FsQWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgPyAnTUFJQScgOiBsb2NhbEFnZW50Py5uYW1lfTwvU0NBc3Npc3RhbnROYW1lPlxuICAgICAgKX1cbiAgICA8L1NDQXNzaXN0YW50TWVzc2FnZUhlYWRlcj5cbiAgKVxufVxuXG4vLyBFeHRyYWUgZWwgc2VnbWVudG8gZGUgdGFiIChkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKSBkZWwgaHJlZiBwYXJhIGFicmlyIGVsIG1vZGFsIGNvbiBlbCB0YWIgY29ycmVjdG9cbmNvbnN0IGdldFRhYlNlZ21lbnRGcm9tSHJlZiA9IChocmVmOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBtYXRjaCA9IGhyZWYubWF0Y2goL1xcL3Rhc2tzXFwvXFxkK1xcLyhbXi8/XSspLylcbiAgcmV0dXJuIG1hdGNoICYmIC9eKGRldGFpbHxtZXNzYWdlfG1lc3NhZ2VzfGZpbGVzfGhpc3Rvcnl8aG91cnMpJC8udGVzdChtYXRjaFsxXSkgPyBtYXRjaFsxXSA6ICdkZXRhaWwnXG59XG5cbi8vIENvbXBvbmVudCBmb3IgdGFzayBsaW5rcyB0aGF0IHVzZXMgdGhlIHVzZVRhc2tQYW5lbCBob29rXG5jb25zdCBUYXNrTGluazogRkM8eyBocmVmOiBzdHJpbmc7IHRhc2tJZDogc3RyaW5nOyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+ID0gKHsgaHJlZiwgdGFza0lkLCBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IHRhYlNlZ21lbnQgPSBnZXRUYWJTZWdtZW50RnJvbUhyZWYoaHJlZilcbiAgY29uc3QgeyBidWlsZE9wZW5UYXNrIH0gPSB1c2VUYXNrUGFuZWwodGFza0lkLCB0YWJTZWdtZW50KVxuICBjb25zdCBvcGVuVGFzayA9IGJ1aWxkT3BlblRhc2soKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gU2kgZXMgQ21kL0N0cmwgKyBjbGljaywgZGVqYXIgcXVlIHNlIGFicmEgZW4gbnVldmEgcGVzdGHDsWEgKGNvbXBvcnRhbWllbnRvIHBvciBkZWZlY3RvKVxuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFzaygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ1Rhc2tMaW5rIGhyZWY9e2hyZWZ9IG9uQ2xpY2s9e2hhbmRsZUNsaWNrfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1NDVGFza0xpbms+XG4gIClcbn1cblxuLy8gQ3VzdG9tIGxpbmsgY29tcG9uZW50IGZvciBTdHJlYW1kb3duOiB0YXNrIFVSTHMgb3BlbiB0aGUgdGFzayBwYW5lbCwgb3RoZXIgbGlua3MgcmVuZGVyIG5vcm1hbGx5XG50eXBlIEN1c3RvbUxpbmtQcm9wcyA9IFJlYWN0LkFuY2hvckhUTUxBdHRyaWJ1dGVzPEhUTUxBbmNob3JFbGVtZW50PiAmIHsgbm9kZT86IHVua25vd24gfVxuY29uc3QgQ3VzdG9tTGluazogRkM8Q3VzdG9tTGlua1Byb3BzPiA9ICh7IGhyZWYsIGNoaWxkcmVuLCAuLi5yZXN0IH0pID0+IHtcbiAgaWYgKCFocmVmIHx8IHR5cGVvZiBocmVmICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiAoXG4gICAgICA8YSBocmVmPXtocmVmfSB7Li4ucmVzdH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYT5cbiAgICApXG4gIH1cbiAgY29uc3QgdGFza01hdGNoID0gaHJlZi5tYXRjaChuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4pKVxuICBpZiAodGFza01hdGNoKSB7XG4gICAgY29uc3QgdGFza0lkID0gdGFza01hdGNoWzFdXG4gICAgcmV0dXJuIChcbiAgICAgIDxUYXNrTGluayBocmVmPXtocmVmfSB0YXNrSWQ9e3Rhc2tJZH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvVGFza0xpbms+XG4gICAgKVxuICB9XG4gIHJldHVybiAoXG4gICAgPGEgaHJlZj17aHJlZn0gey4uLnJlc3R9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYT5cbiAgKVxufVxuXG5jb25zdCBNZXNzYWdlSXRlbSA9IG1lbW8oKHByb3BzOiBNZXNzYWdlSXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICB1c2VyLFxuICAgIG1lc3NhZ2UsXG4gICAgaXNFcnJvcixcbiAgICBhdXRoVXNlcixcbiAgICBvcHRpb25zLFxuICAgIGlzQ2hhbmdlUHJvamVjdCxcbiAgICBoYW5kbGVTZWxlY3RPcHRpb24sXG4gICAgaGFuZGxlRmVlZGJhY2ssXG4gICAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbixcbiAgICBkaXNhYmxlRmVlZGJhY2ssXG4gICAgcm9sZSxcbiAgICBzb3VyY2VzLFxuICAgIGF0dGFjaG1lbnRzLFxuICAgIGFwcHJvdmFsLFxuICAgIGFwcHJvdmFsU3RhdHVzLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBleHRyYWN0VGFza3NGcm9tTWVzc2FnZSA9IChtZXNzYWdlOiBzdHJpbmcpOiBUYXNrSW5mb1tdID0+IHtcbiAgICBpZiAoIW1lc3NhZ2UpIHJldHVybiBbXVxuXG4gICAgLy8gTWF0Y2ggVVJMcyBsaWtlOiAuLi4vdGFza3MvMTIzNDU2LyhkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKVxuICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgIGNvbnN0IHRhc2tzOiBUYXNrSW5mb1tdID0gW11cbiAgICBjb25zdCBzZWVuSWRzID0gbmV3IFNldDxzdHJpbmc+KClcblxuICAgIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IG51bGxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ25cbiAgICB3aGlsZSAoKG1hdGNoID0gdGFza1VybFJlZ2V4LmV4ZWMobWVzc2FnZSkpICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0YXNrSWQgPSBtYXRjaFsxXVxuICAgICAgY29uc3QgdXJsID0gbWF0Y2hbMF1cblxuICAgICAgaWYgKCFzZWVuSWRzLmhhcyh0YXNrSWQpKSB7XG4gICAgICAgIHNlZW5JZHMuYWRkKHRhc2tJZClcblxuICAgICAgICAvLyBUcnkgdG8gZXh0cmFjdCB0aGUgdGFzayB0aXRsZSBmcm9tIG1hcmtkb3duIGxpbmsgW3RpdGxlXSh1cmwpXG4gICAgICAgIGNvbnN0IG1hcmtkb3duTGlua1JlZ2V4ID0gbmV3IFJlZ0V4cChgXFxcXFsoW15cXFxcXV0rKVxcXFxdXFxcXCgke3VybC5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpfVxcXFwpYClcbiAgICAgICAgY29uc3QgbGlua01hdGNoID0gbWVzc2FnZS5tYXRjaChtYXJrZG93bkxpbmtSZWdleClcbiAgICAgICAgY29uc3QgdGl0bGUgPSBsaW5rTWF0Y2ggPyBsaW5rTWF0Y2hbMV0gOiBgVGFyZWEgIyR7dGFza0lkfWBcblxuICAgICAgICB0YXNrcy5wdXNoKHtcbiAgICAgICAgICBpZDogdGFza0lkLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgIHVybCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFza3NcbiAgfVxuXG4gIGNvbnN0IFtwcmV2aWV3QXR0YWNobWVudCwgc2V0UHJldmlld0F0dGFjaG1lbnRdID0gdXNlU3RhdGU8QXR0YWNobWVudEZpbGUgfCBudWxsPihudWxsKVxuICBjb25zdCBpc0N1cnJlbnRVc2VyID0gcm9sZSA9PT0gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgfHwgdXNlci5pZCA9PT0gYXV0aFVzZXIuaWQudG9TdHJpbmcoKVxuICBjb25zdCBpc0Fzc2lzdGFudCA9IHJvbGUgPT09IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQgfHwgdXNlci5pZCA9PT0gJ2Fzc2lzdGFudCdcblxuICBjb25zdCBoYW5kbGVBdHRhY2htZW50Q2xpY2sgPSAoYXR0YWNobWVudDogQXR0YWNobWVudEZpbGUpID0+IHtcbiAgICAvLyBQZXJtaXRpciBwcmV2aXN1YWxpemFjacOzbiBzaSB0aWVuZSBhcmNoaXZvIGxvY2FsIG8gVVJMcyBkZWwgYmFja2VuZFxuICAgIGlmIChcbiAgICAgIGF0dGFjaG1lbnQuZmlsZSBpbnN0YW5jZW9mIEZpbGUgfHxcbiAgICAgIGF0dGFjaG1lbnQub3JpZ2luYWxGaWxlIGluc3RhbmNlb2YgRmlsZSB8fFxuICAgICAgYXR0YWNobWVudC51cmxfdGh1bWJuYWlsIHx8XG4gICAgICBhdHRhY2htZW50LnVybF9vcmlnaW5hbCB8fFxuICAgICAgYXR0YWNobWVudC51cmxfZmlsZVxuICAgICkge1xuICAgICAgc2V0UHJldmlld0F0dGFjaG1lbnQoYXR0YWNobWVudClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDbG9zZVByZXZpZXcgPSAoKSA9PiB7XG4gICAgc2V0UHJldmlld0F0dGFjaG1lbnQobnVsbClcbiAgfVxuXG4gIGlmIChpc0NoYW5nZVByb2plY3QgJiYgb3B0aW9ucykge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVzc2FnZVdyYXBwZXIga2V5PXtpZH0gaXNDdXJyZW50VXNlcj17aXNDdXJyZW50VXNlcn0gZGF0YS1tZXNzYWdlLWlkPXtpZH0gaGFzRmVlZGJhY2s9e2ZhbHNlfT5cbiAgICAgICAgPFNDTWVzc2FnZUl0ZW1XcmFwcGVyICRpc0Fzc2lzdGFudD17aXNBc3Npc3RhbnR9PlxuICAgICAgICAgIHtpc0Fzc2lzdGFudCAmJiA8QXNzaXN0YW50TWVzc2FnZUhlYWRlciAvPn1cbiAgICAgICAgICA8TWVzc2FnZUNvbnRlbnRXcmFwcGVyXG4gICAgICAgICAgICBpc0NoYW5nZVByb2plY3Q9e2lzQ2hhbmdlUHJvamVjdH1cbiAgICAgICAgICAgIG1lc3NhZ2U9e21lc3NhZ2V9XG4gICAgICAgICAgICBpc0N1cnJlbnRVc2VyPXtpc0N1cnJlbnRVc2VyfVxuICAgICAgICAgICAgaXNFcnJvcj17aXNFcnJvcn1cbiAgICAgICAgICAgIG1lc3NhZ2VFeHRyYUNvbnRlbnQ9ezxNZXNzYWdlT3B0aW9ucyBvcHRpb25zPXtvcHRpb25zIGFzIGFueX0gaGFuZGxlU2VsZWN0T3B0aW9uPXtoYW5kbGVTZWxlY3RPcHRpb259IC8+fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU0NNZXNzYWdlSXRlbVdyYXBwZXI+XG4gICAgICA8L01lc3NhZ2VXcmFwcGVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZlZWRiYWNrQ2xpY2sgPSAoZmVlZGJhY2s6IEZlZWRiYWNrKSA9PiB7XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gaWRcbiAgICAgIC5zcGxpdCgnLScpXG4gICAgICAuZmlsdGVyKHF1ZXN0aW9uSWQgPT4gcXVlc3Rpb25JZCAhPT0gJ2Fuc3dlcicpXG4gICAgICAuam9pbignLScpXG4gICAgaGFuZGxlRmVlZGJhY2s/LihmZWVkYmFjaywgc2Vzc2lvbklkKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NNZXNzYWdlSXRlbVdyYXBwZXIgJGlzQXNzaXN0YW50PXtpc0Fzc2lzdGFudH0+XG4gICAgICB7aXNBc3Npc3RhbnQgJiYgPEFzc2lzdGFudE1lc3NhZ2VIZWFkZXIgLz59XG4gICAgICA8U0NNZXNzYWdlSXRlbUlubmVyPlxuICAgICAgICB7ISEoYXR0YWNobWVudHMgfHwgc291cmNlcyk/Lmxlbmd0aCAmJiAhaXNBc3Npc3RhbnQgJiYgKFxuICAgICAgICAgIDxTQ0F0dGFjaG1lbnRzUm93PlxuICAgICAgICAgICAgeyhhdHRhY2htZW50cyB8fCBzb3VyY2VzKT8ubWFwKChhdHRhY2htZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAvLyBEZXRlY3RhciBzaSBlcyB1biBhcmNoaXZvIGRlIGF1ZGlvXG4gICAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnRUeXBlID0gYXR0YWNobWVudD8udHlwZT8udG9Mb3dlckNhc2UoKSB8fCAnJ1xuICAgICAgICAgICAgICBjb25zdCBhdHRhY2htZW50TmFtZSA9IGF0dGFjaG1lbnQ/Lm5hbWU/LnRvTG93ZXJDYXNlKCkgfHwgJydcbiAgICAgICAgICAgICAgY29uc3QgaXNBdWRpb0ZpbGUgPVxuICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRUeXBlLnN0YXJ0c1dpdGgoJ2F1ZGlvLycpIHx8XG4gICAgICAgICAgICAgICAgWydmbGFjJywgJ200YScsICdtcDMnLCAnbXA0JywgJ29nYScsICdvZ2cnLCAnd2F2JywgJ3dlYm0nXS5pbmNsdWRlcyhhdHRhY2htZW50VHlwZSkgfHxcbiAgICAgICAgICAgICAgICBbJy5mbGFjJywgJy5tNGEnLCAnLm1wMycsICcubXA0JywgJy5vZ2EnLCAnLm9nZycsICcud2F2JywgJy53ZWJtJ10uc29tZShleHQgPT5cbiAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnROYW1lLmVuZHNXaXRoKGV4dClcbiAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgaWYgKGlzQXVkaW9GaWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxBdHRhY2htZW50Q2FyZEF1ZGlvIGtleT17YCR7YXR0YWNobWVudC5pZH0tJHthdHRhY2htZW50Lm5hbWV9YH0gYXR0YWNobWVudD17YXR0YWNobWVudH0gLz5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEF0dGFjaG1lbnRDYXJkXG4gICAgICAgICAgICAgICAgICBrZXk9e2Ake2F0dGFjaG1lbnQuaWR9LSR7YXR0YWNobWVudC5uYW1lfWB9XG4gICAgICAgICAgICAgICAgICBhdHRhY2htZW50PXthdHRhY2htZW50fVxuICAgICAgICAgICAgICAgICAgcG9zaXRpb25JbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVBdHRhY2htZW50Q2xpY2soYXR0YWNobWVudCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9TQ0F0dGFjaG1lbnRzUm93PlxuICAgICAgICApfVxuICAgICAgICB7YXBwcm92YWwgJiYgYXBwcm92YWwucGVuZGluZ19hY3Rpb25zICYmIChcbiAgICAgICAgICA8U0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4+XG4gICAgICAgICAgICB7YXBwcm92YWwucGVuZGluZ19hY3Rpb25zLm1hcChhY3Rpb24gPT4gKFxuICAgICAgICAgICAgICA8QXBwcm92YWxCb3hcbiAgICAgICAgICAgICAgICBrZXk9e2Ake2FjdGlvbi50aHJlYWRfaWR9LSR7YWN0aW9uLnRvb2xfY2FsbF9pZH1gfVxuICAgICAgICAgICAgICAgIGFjdGlvbj17YWN0aW9ufVxuICAgICAgICAgICAgICAgIHN0YXR1cz17YXBwcm92YWxTdGF0dXN9XG4gICAgICAgICAgICAgICAgb25BcHByb3ZlPXt0aHJlYWRJZCA9PiBoYW5kbGVBcHByb3ZhbERlY2lzaW9uKHRocmVhZElkLCAnYXBwcm92ZScpfVxuICAgICAgICAgICAgICAgIG9uUmVqZWN0PXt0aHJlYWRJZCA9PiBoYW5kbGVBcHByb3ZhbERlY2lzaW9uKHRocmVhZElkLCAncmVqZWN0Jyl9XG4gICAgICAgICAgICAgICAgaXNQcm9qZWN0RGVsZXRlZD17cHJvcHMucHJvamVjdE1ldGFkYXRhPy5pc19kZWxldGVkID09PSB0cnVlfVxuICAgICAgICAgICAgICAgIGlzRXhwYW5kZWQ9e3Byb3BzLmV4cGFuZGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9TQ0FwcHJvdmFsQWN0aW9uc0NvbHVtbj5cbiAgICAgICAgKX1cbiAgICAgICAgeyEhbWVzc2FnZSAmJlxuICAgICAgICAgIC8vIFNpIGhheSBhcHByb3ZhbCAoZGlzdGludG8gZGUgbnVsbCksIG5vIHJlbmRlcml6YXIgZWwgYW5zd2VyIGVuIGVzdGUgbWVuc2FqZVxuICAgICAgICAgIC8vIEVsIG1lbnNhamUgZGUgcmVjaGF6byBzZSByZW5kZXJpemEgY29tbyBtZW5zYWplIHNlcGFyYWRvXG4gICAgICAgICAgIWFwcHJvdmFsICYmIChcbiAgICAgICAgICAgIDxTQ0NBSU1lc3NhZ2VXcmFwcGVyXG4gICAgICAgICAgICAgIGlzQ3VycmVudFVzZXI9e2lzQ3VycmVudFVzZXJ9XG4gICAgICAgICAgICAgIGlzRnJvbnRlbmRDYW5jZWxsZWQ9e3Byb3BzLmlzRnJvbnRlbmRDYW5jZWxsZWR9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17aXNBc3Npc3RhbnQgJiYgZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UobWVzc2FnZSkubGVuZ3RoID4gMCA/ICdoYXMtdGFzay1saW5rcycgOiAnJ31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgey8qIGxpbmtTYWZldHkgbW9kYWwgZGVzaGFiaWxpdGFkbyBwb3IgZWwgbW9tZW50bzogbGlua1NhZmV0eT17eyBlbmFibGVkOiB0cnVlIH19ICovfVxuICAgICAgICAgICAgICA8U3RyZWFtZG93blxuICAgICAgICAgICAgICAgIHBsdWdpbnM9e3sgY29kZSB9fVxuICAgICAgICAgICAgICAgIGNvbXBvbmVudHM9e3sgYTogQ3VzdG9tTGluayB9IGFzIFBhcmFtZXRlcnM8dHlwZW9mIFN0cmVhbWRvd24+WzBdWydjb21wb25lbnRzJ119XG4gICAgICAgICAgICAgICAgbGlua1NhZmV0eT17eyBlbmFibGVkOiBmYWxzZSB9fVxuICAgICAgICAgICAgICAgIGlzQW5pbWF0aW5nPXshIXByb3BzLmlzU3RyZWFtaW5nfVxuICAgICAgICAgICAgICAgIHNoaWtpVGhlbWU9e1snZ2l0aHViLWxpZ2h0JywgJ2dpdGh1Yi1saWdodCddfVxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPXt7IHRhYmxlOiBmYWxzZSwgY29kZTogZmFsc2UgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHttZXNzYWdlfVxuICAgICAgICAgICAgICA8L1N0cmVhbWRvd24+XG4gICAgICAgICAgICA8L1NDQ0FJTWVzc2FnZVdyYXBwZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAge2lzQXNzaXN0YW50ICYmICFpc0Vycm9yICYmICFwcm9wcy5pc0Zyb250ZW5kQ2FuY2VsbGVkICYmICFhcHByb3ZhbCAmJiAoXG4gICAgICAgICAgPE1lc3NhZ2VGZWVkYmFja1xuICAgICAgICAgICAgY29udGVudD17bWVzc2FnZX1cbiAgICAgICAgICAgIHNvdXJjZXM9e3NvdXJjZXN9XG4gICAgICAgICAgICBoYW5kbGVGZWVkYmFjaz17aGFuZGxlRmVlZGJhY2tDbGlja31cbiAgICAgICAgICAgIGRpc2FibGVGZWVkYmFjaz17ZGlzYWJsZUZlZWRiYWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1NDTWVzc2FnZUl0ZW1Jbm5lcj5cbiAgICAgIDxBdHRhY2htZW50UHJldmlld01vZGFsXG4gICAgICAgIGlzT3Blbj17ISFwcmV2aWV3QXR0YWNobWVudH1cbiAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2VQcmV2aWV3fVxuICAgICAgICBhdHRhY2htZW50PXtwcmV2aWV3QXR0YWNobWVudH1cbiAgICAgIC8+XG4gICAgPC9TQ01lc3NhZ2VJdGVtV3JhcHBlcj5cbiAgKVxufSlcblxuY29uc3QgQ2hhdEFJTWVzc2FnZXNJbm5lciA9ICh7XG4gIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgaW5pdGlhbENoYXRJZCxcbiAgb25FcnJvcixcbiAgb25TZW5kTWVzc2FnZVJlYWR5LFxuICBvblNjcm9sbFRvQm90dG9tLFxuICBhdHRhY2htZW50cyxcbiAgYWdlbnRzLFxuICBleHBhbmRlZCxcbn06IENoYXRBSU1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgYXV0aFVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgbWVzc2FnZXNSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGNoYXRJbml0aWFsaXplZFJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgaXNMb2FkaW5nTW9yZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgdXNlclNjcm9sbGluZ1JlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGhyZXNob2xkUmVmID0gdXNlUmVmKDM5KVxuICBjb25zdCBsYXN0U2Nyb2xsVG9wUmVmID0gdXNlUmVmKDApXG4gIGNvbnN0IHNob3dTY3JvbGxUb0JvdHRvbVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsUmFmUmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzaG93U2Nyb2xsVG9Cb3R0b20sIHNldFNob3dTY3JvbGxUb0JvdHRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCB7XG4gICAgbWVzc2FnZXMsXG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICB3YWl0aW5nUmVzcG9uc2UsXG4gICAgaXNXcml0aW5nLFxuICAgIGxvYWRpbmdNZXNzYWdlLFxuICAgIGFjdGl2ZUxvYWRpbmdzLFxuICAgIHNlbmRNZXNzYWdlLFxuICAgIGNoYW5nZVByb2plY3QsXG4gICAgaGFuZGxlRmVlZGJhY2ssXG4gICAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbixcbiAgICBpbml0aWFsaXplQ2hhdCxcbiAgICBoYW5kbGVTY3JvbGwsXG4gICAgc3RvcEdlbmVyYXRpb24sXG4gIH0gPSB1c2VDaGF0TWFuYWdlcih7XG4gICAgY2hhdElkOiBpbml0aWFsQ2hhdElkIHx8IHVuZGVmaW5lZCxcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gICAgb25FcnJvcixcbiAgICBhdHRhY2htZW50cyxcbiAgICBhZ2VudHMsXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gKG9wdGlvbjogUHJvamVjdCkgPT4ge1xuICAgIGNoYW5nZVByb2plY3Qob3B0aW9uKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2tTY3JvbGxUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUbyh7XG4gICAgICAgIHRvcDogbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxIZWlnaHQsXG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgIH0pXG4gICAgICAvLyBBY3R1YWxpemFyIGVzdGFkbyBkZXNwdcOpcyBkZSB1biBicmV2ZSBkZWxheSBwYXJhIHBlcm1pdGlyIHF1ZSBlbCBzY3JvbGwgc2UgY29tcGxldGVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9LCA1MDApXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVTY3JvbGxUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5VSUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyID0gZS5jdXJyZW50VGFyZ2V0XG5cbiAgICAgIGlmIChzY3JvbGxSYWZSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShzY3JvbGxSYWZSZWYuY3VycmVudClcbiAgICAgIH1cblxuICAgICAgc2Nyb2xsUmFmUmVmLmN1cnJlbnQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBzY3JvbGxSYWZSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcblxuICAgICAgICBjb25zdCBpc1Njcm9sbGluZ1VwID0gc2Nyb2xsVG9wIDwgbGFzdFNjcm9sbFRvcFJlZi5jdXJyZW50XG5cbiAgICAgICAgaWYgKGlzU2Nyb2xsaW5nVXApIHtcbiAgICAgICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDE1XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc05lYXJCb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHQgPCBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChpc05lYXJCb3R0b20pIHtcbiAgICAgICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDM5XG4gICAgICAgIH1cblxuICAgICAgICB1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQgPSAhaXNOZWFyQm90dG9tXG4gICAgICAgIGxhc3RTY3JvbGxUb3BSZWYuY3VycmVudCA9IHNjcm9sbFRvcFxuXG4gICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICBjb25zdCBzaG91bGRTaG93ID0gZGlzdGFuY2VGcm9tQm90dG9tID4gNTBcbiAgICAgICAgY29uc3QgZGlkU2V0U3RhdGUgPSBzaG93U2Nyb2xsVG9Cb3R0b21SZWYuY3VycmVudCAhPT0gc2hvdWxkU2hvd1xuICAgICAgICBpZiAoZGlkU2V0U3RhdGUpIHtcbiAgICAgICAgICBzaG93U2Nyb2xsVG9Cb3R0b21SZWYuY3VycmVudCA9IHNob3VsZFNob3dcbiAgICAgICAgICBzZXRTaG93U2Nyb2xsVG9Cb3R0b20oc2hvdWxkU2hvdylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc05lYXJCb3R0b20gJiYgb25TY3JvbGxUb0JvdHRvbSkge1xuICAgICAgICAgIG9uU2Nyb2xsVG9Cb3R0b20oKVxuICAgICAgICB9XG5cbiAgICAgICAgaGFuZGxlU2Nyb2xsKGNvbnRhaW5lcilcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbb25TY3JvbGxUb0JvdHRvbSwgaGFuZGxlU2Nyb2xsXVxuICApXG5cbiAgLy8gcmVmcyB0byBzdGFiaWxpemUgZnVuY3Rpb25zIGFuZCBhdm9pZCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXG4gIGNvbnN0IHNlbmRNZXNzYWdlUmVmID0gdXNlUmVmKHNlbmRNZXNzYWdlKVxuICBjb25zdCBzdG9wR2VuZXJhdGlvblJlZiA9IHVzZVJlZihzdG9wR2VuZXJhdGlvbilcbiAgY29uc3Qgb25TZW5kTWVzc2FnZVJlYWR5UmVmID0gdXNlUmVmKG9uU2VuZE1lc3NhZ2VSZWFkeSlcblxuICAvLyB1cGRhdGUgcmVmcyB3aGVuIGZ1bmN0aW9ucyBjaGFuZ2VcbiAgc2VuZE1lc3NhZ2VSZWYuY3VycmVudCA9IHNlbmRNZXNzYWdlXG4gIHN0b3BHZW5lcmF0aW9uUmVmLmN1cnJlbnQgPSBzdG9wR2VuZXJhdGlvblxuICBvblNlbmRNZXNzYWdlUmVhZHlSZWYuY3VycmVudCA9IG9uU2VuZE1lc3NhZ2VSZWFkeVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG9uU2VuZE1lc3NhZ2VSZWFkeVJlZi5jdXJyZW50KSB7XG4gICAgICBvblNlbmRNZXNzYWdlUmVhZHlSZWYuY3VycmVudChzZW5kTWVzc2FnZVJlZi5jdXJyZW50LCBzdG9wR2VuZXJhdGlvblJlZi5jdXJyZW50LCB3YWl0aW5nUmVzcG9uc2UsIGlzV3JpdGluZylcbiAgICB9XG4gIH0sIFt3YWl0aW5nUmVzcG9uc2UsIGlzV3JpdGluZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBpc0xvYWRpbmdNb3JlTWVzc2FnZXNcbiAgfSwgW2lzTG9hZGluZ01vcmVNZXNzYWdlc10pXG5cbiAgLy8gQ3VhbmRvIGVsIGFnZW50ZSBlbXBpZXphIGEgcmVzcG9uZGVyLCByZXNldGVhciBlbCBmbGFnIHkgZWwgdW1icmFsIHBhcmEgYWN0aXZhciBlbCBhdXRvLXNjcm9sbFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3YWl0aW5nUmVzcG9uc2UpIHtcbiAgICAgIHVzZXJTY3JvbGxpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDM5XG4gICAgfVxuICB9LCBbd2FpdGluZ1Jlc3BvbnNlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghY2hhdEluaXRpYWxpemVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNoYXRJbml0aWFsaXplZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgaW5pdGlhbGl6ZUNoYXQoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLy8gU2Nyb2xsIGN1YW5kbyBsbGVnYSB1biBtZW5zYWplIGRlIGFwcm9iYWNpw7NuIChBcHByb3ZhbEJveCkuIFNpbiBSZXNpemVPYnNlcnZlciBlbiBlbFxuICAvLyBjb250ZW5lZG9yOiBvYnNlcnZhcmxvIGRpc3BhcmFiYSBjYWxsYmFja3MgYWwgY2FtYmlhciBlbCBsYXlvdXQvc2Nyb2xsYmFyIHkgY2FkYSB1bm9cbiAgLy8gbGxhbWFiYSBzY3JvbGxUb0JvdHRvbSgpLCBwcm92b2NhbmRvIHRpcm9uZXMgYWwgc2Nyb2xsZWFyLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWVzc2FnZXNSZWYuY3VycmVudCB8fCBsb2FkaW5nTWVzc2FnZXMgfHwgaXNMb2FkaW5nTW9yZU1lc3NhZ2VzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgbGFzdE1lc3NhZ2UgPSBtZXNzYWdlc1ttZXNzYWdlcy5sZW5ndGggLSAxXVxuICAgIGNvbnN0IGhhc0FwcHJvdmFsID0gbGFzdE1lc3NhZ2UgJiYgKGxhc3RNZXNzYWdlLmlkLnN0YXJ0c1dpdGgoJ2FwcHJvdmFsLScpIHx8ICEhbGFzdE1lc3NhZ2UuYXBwcm92YWwpXG5cbiAgICBpZiAoIWhhc0FwcHJvdmFsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0IC0gY29udGFpbmVyLnNjcm9sbFRvcCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMTAwXG5cbiAgICBpZiAoIShpc0F0Qm90dG9tIHx8ICF1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsVG9Cb3R0b20gPSAoKSA9PiB7XG4gICAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgICBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbFRvcCA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuc2Nyb2xsSGVpZ2h0XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VjdWVuY2lhIGluaWNpYWwgZGUgc2Nyb2xsIHBhcmEgY3VhbmRvIGVsIEFwcHJvdmFsQm94IGFjYWJhIGRlIHJlbmRlcml6YXJzZVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBzY3JvbGxUb0JvdHRvbSgpXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBzY3JvbGxUb0JvdHRvbSgpXG4gICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVG9Cb3R0b20sIDEwMClcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW21lc3NhZ2VzLCBsb2FkaW5nTWVzc2FnZXMsIGlzTG9hZGluZ01vcmVNZXNzYWdlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBTaSBlbCB1c3VhcmlvIGVzdMOhIHNjcm9sbGVhbmRvIG1hbnVhbG1lbnRlLCBubyBoYWNlciBhdXRvIHNjcm9sbFxuICAgIGlmICh1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQgJiYgd2FpdGluZ1Jlc3BvbnNlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAod2FpdGluZ1Jlc3BvbnNlICYmIG1lc3NhZ2VzUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUb3AgPSBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbEhlaWdodFxuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFtZXNzYWdlc1JlZi5jdXJyZW50IHx8IGxvYWRpbmdNZXNzYWdlcyB8fCBpc0xvYWRpbmdNb3JlTWVzc2FnZXMgfHwgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IG1lc3NhZ2VzUmVmLmN1cnJlbnRcbiAgICBjb25zdCBsYXN0TWVzc2FnZSA9IG1lc3NhZ2VzW21lc3NhZ2VzLmxlbmd0aCAtIDFdXG5cbiAgICBjb25zdCBpc05ld0Fuc3dlck1lc3NhZ2UgPSBsYXN0TWVzc2FnZSAmJiBsYXN0TWVzc2FnZS5pZC5zdGFydHNXaXRoKCdhbnN3ZXItJylcbiAgICBjb25zdCBpc05ld1VzZXJNZXNzYWdlID0gbGFzdE1lc3NhZ2UgJiYgbGFzdE1lc3NhZ2UuaWQuc3RhcnRzV2l0aCgncXVlc3Rpb24tJylcbiAgICBjb25zdCBpc05ld0FwcHJvdmFsTWVzc2FnZSA9IGxhc3RNZXNzYWdlICYmIChsYXN0TWVzc2FnZS5pZC5zdGFydHNXaXRoKCdhcHByb3ZhbC0nKSB8fCAhIWxhc3RNZXNzYWdlLmFwcHJvdmFsKVxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0IC0gY29udGFpbmVyLnNjcm9sbFRvcCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMTAwXG4gICAgY29uc3QgaGFzTWVzc2FnZXMgPSAhIW1lc3NhZ2VzLmxlbmd0aFxuICAgIGNvbnN0IGlzTm90SW5pdGlhbE1lc3NhZ2UgPSAhbWVzc2FnZXMuc29tZShtc2cgPT4gbXNnLmlkID09PSAndXNlci1pbml0aWFsLW1lc3NhZ2UnKVxuXG4gICAgaWYgKChpc05ld0Fuc3dlck1lc3NhZ2UgfHwgaXNOZXdVc2VyTWVzc2FnZSB8fCBpc05ld0FwcHJvdmFsTWVzc2FnZSkgJiYgaXNBdEJvdHRvbSkge1xuICAgICAgLy8gUGFyYSBtZW5zYWplcyBkZSBhcHJvYmFjacOzbiwgdXNhciB1biBwZXF1ZcOxbyBkZWxheSBwYXJhIGFzZWd1cmFyIHF1ZSBlbCBBcHByb3ZhbEJveCBzZSBoYXlhIHJlbmRlcml6YWRvXG4gICAgICBjb25zdCBzY3JvbGxEZWxheSA9IGlzTmV3QXBwcm92YWxNZXNzYWdlID8gMTAwIDogMFxuICAgICAgY29uc3QgZG9TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKG1lc3NhZ2VzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG1lc3NhZ2VzUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxIZWlnaHRcbiAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2VGcm9tQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0XG4gICAgICAgICAgICBjb25zdCBzaG91bGRTaG93ID0gZGlzdGFuY2VGcm9tQm90dG9tID4gNTBcbiAgICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgICAgc2V0U2hvd1Njcm9sbFRvQm90dG9tKHNob3VsZFNob3cpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaWYgKHNjcm9sbERlbGF5ID4gMCkge1xuICAgICAgICBzZXRUaW1lb3V0KGRvU2Nyb2xsLCBzY3JvbGxEZWxheSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvU2Nyb2xsKClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgaGFzTWVzc2FnZXMgJiZcbiAgICAgIGlzTm90SW5pdGlhbE1lc3NhZ2UgJiZcbiAgICAgICFpc05ld0Fuc3dlck1lc3NhZ2UgJiZcbiAgICAgICFpc05ld1VzZXJNZXNzYWdlICYmXG4gICAgICAhaXNOZXdBcHByb3ZhbE1lc3NhZ2VcbiAgICApIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUb3AgPSBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbEhlaWdodFxuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSwgW21lc3NhZ2VzLCBsb2FkaW5nTWVzc2FnZXMsIGlzTG9hZGluZ01vcmVNZXNzYWdlcywgd2FpdGluZ1Jlc3BvbnNlXSlcblxuICAvLyBWZXJpZmljYXIgZWwgZXN0YWRvIGluaWNpYWwgZGVsIHNjcm9sbFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50ICYmICFsb2FkaW5nTWVzc2FnZXMpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IG1lc3NhZ2VzUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBkaXN0YW5jZUZyb21Cb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHRcbiAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgc2hvd1Njcm9sbFRvQm90dG9tUmVmLmN1cnJlbnQgPSBzaG91bGRTaG93XG4gICAgICBzZXRTaG93U2Nyb2xsVG9Cb3R0b20oc2hvdWxkU2hvdylcbiAgICB9XG4gIH0sIFtsb2FkaW5nTWVzc2FnZXMsIG1lc3NhZ2VzLmxlbmd0aF0pXG5cbiAgLy8gT2J0ZW5lciBlbCDDumx0aW1vIG1lbnNhamUgZGVsIHVzdWFyaW8gcGFyYSB2ZXJpZmljYXIgc2kgdGllbmUgYXR0YWNobWVudHNcbiAgY29uc3QgbGFzdFVzZXJNZXNzYWdlID0gbWVzc2FnZXNcbiAgICAuZmlsdGVyKG1zZyA9PiBtc2cucm9sZSA9PT0gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgfHwgbXNnLnVzZXIuaWQgPT09IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCkpXG4gICAgLmF0KC0xKVxuXG4gIGNvbnN0IGhhc0F0dGFjaG1lbnRzID1cbiAgICAoQXJyYXkuaXNBcnJheShsYXN0VXNlck1lc3NhZ2U/LmF0dGFjaG1lbnRzKSAmJiBsYXN0VXNlck1lc3NhZ2UuYXR0YWNobWVudHMubGVuZ3RoKSB8fFxuICAgIChBcnJheS5pc0FycmF5KGxhc3RVc2VyTWVzc2FnZT8uc291cmNlcykgJiYgbGFzdFVzZXJNZXNzYWdlLnNvdXJjZXMubGVuZ3RoKVxuXG4gIGNvbnN0IGlzU2Nyb2xsT25QYXJlbnQgPSAhIWV4cGFuZGVkXG5cbiAgY29uc3QgbWVzc2FnZXNDb250ZW50ID0gKFxuICAgIDw+XG4gICAgICB7aXNMb2FkaW5nTW9yZU1lc3NhZ2VzICYmIDxMb2FkaW5nVGV4dCB0ZXh0PXt0KCdjaGF0LmxvYWRpbmdNb3JlJyl9IC8+fVxuICAgICAge21lc3NhZ2VzLm1hcCgobWVzc2FnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICEobWVzc2FnZS5hdHRhY2htZW50cz8ubGVuZ3RoIHx8IG1lc3NhZ2Uuc291cmNlcz8ubGVuZ3RoKSAmJlxuICAgICAgICAgICFtZXNzYWdlLm1lc3NhZ2UgJiZcbiAgICAgICAgICAhbWVzc2FnZS5wcm9qZWN0Py5uYW1lICYmXG4gICAgICAgICAgIW1lc3NhZ2UuYXBwcm92YWxcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIGNvbnN0IG1lc3NhZ2VGZWVkYmFjayA9XG4gICAgICAgICAgbWVzc2FnZT8ud2FzSGVscGZ1bCA9PT0gdW5kZWZpbmVkIHx8IG1lc3NhZ2Uud2FzSGVscGZ1bCA9PT0gbnVsbFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IG1lc3NhZ2Uud2FzSGVscGZ1bFxuICAgICAgICAgICAgICA/IEZlZWRiYWNrLlRIVU1CU19VUFxuICAgICAgICAgICAgICA6IEZlZWRiYWNrLlRIVU1CU19ET1dOXG5cbiAgICAgICAgY29uc3QgaXNBc3Npc3RhbnRNZXNzYWdlID0gbWVzc2FnZS5yb2xlID09PSBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5UIHx8IG1lc3NhZ2UudXNlci5pZCA9PT0gJ2Fzc2lzdGFudCdcbiAgICAgICAgY29uc3QgaXNMYXN0TWVzc2FnZSA9IGluZGV4ID09PSBtZXNzYWdlcy5sZW5ndGggLSAxXG4gICAgICAgIGNvbnN0IGlzU3RyZWFtaW5nID0gaXNBc3Npc3RhbnRNZXNzYWdlICYmIGlzTGFzdE1lc3NhZ2UgJiYgKHdhaXRpbmdSZXNwb25zZSB8fCBpc1dyaXRpbmcpXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TWVzc2FnZUl0ZW1cbiAgICAgICAgICAgIHsuLi5tZXNzYWdlfVxuICAgICAgICAgICAga2V5PXttZXNzYWdlLmlkICE9IG51bGwgPyBgJHttZXNzYWdlLmlkfS0ke21lc3NhZ2UuZGF0ZX1gIDogYG1zZy0ke2luZGV4fWB9XG4gICAgICAgICAgICBhdXRoVXNlcj17YXV0aFVzZXJ9XG4gICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249e2hhbmRsZVNlbGVjdE9wdGlvbn1cbiAgICAgICAgICAgIGhhbmRsZUZlZWRiYWNrPXtoYW5kbGVGZWVkYmFja31cbiAgICAgICAgICAgIGhhbmRsZUFwcHJvdmFsRGVjaXNpb249e2hhbmRsZUFwcHJvdmFsRGVjaXNpb259XG4gICAgICAgICAgICBkaXNhYmxlRmVlZGJhY2s9e21lc3NhZ2VGZWVkYmFja31cbiAgICAgICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICAgIHsod2FpdGluZ1Jlc3BvbnNlIHx8IGxvYWRpbmdNZXNzYWdlIHx8IE9iamVjdC5rZXlzKGFjdGl2ZUxvYWRpbmdzIHx8IHt9KS5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgIDxTQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbj5cbiAgICAgICAgICB7KHdhaXRpbmdSZXNwb25zZSB8fCBsb2FkaW5nTWVzc2FnZSkgJiYgKFxuICAgICAgICAgICAgPExvYWRpbmdUZXh0XG4gICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgIGxvYWRpbmdNZXNzYWdlIHx8XG4gICAgICAgICAgICAgICAgKGlzV2ViU2VhcmNoQWN0aXZlXG4gICAgICAgICAgICAgICAgICA/ICdCdXNjYW5kbyBlbiBsYSB3ZWInXG4gICAgICAgICAgICAgICAgICA6IGlzRGVlcFNlYXJjaEFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICA/IHQoJ2NoYXQuZ2VuZXJhdGluZ0RlZXBTZWFyY2gnKVxuICAgICAgICAgICAgICAgICAgICA6IGhhc0F0dGFjaG1lbnRzXG4gICAgICAgICAgICAgICAgICAgICAgPyB0KCdjaGF0LmdlbmVyYXRpbmdBdHRhY2htZW50JylcbiAgICAgICAgICAgICAgICAgICAgICA6IHQoJ2NoYXQuZ2VuZXJhdGluZycpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKGFjdGl2ZUxvYWRpbmdzIHx8IHt9KS5tYXAoKFt0aHJlYWRJZCwgbWVzc2FnZV0pID0+IChcbiAgICAgICAgICAgIDxMb2FkaW5nVGV4dCBrZXk9e2Bsb2FkaW5nLSR7dGhyZWFkSWR9YH0gdGV4dD17bWVzc2FnZX0gLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9TQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbj5cbiAgICAgICl9XG4gICAgPC8+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTQ01lc3NhZ2VzT3V0ZXIgJHNjcm9sbE9uUGFyZW50PXtpc1Njcm9sbE9uUGFyZW50fT5cbiAgICAgIHtpc1Njcm9sbE9uUGFyZW50ID8gKFxuICAgICAgICA8U0NNZXNzYWdlc1Njcm9sbCByZWY9e21lc3NhZ2VzUmVmfSBvblNjcm9sbD17aGFuZGxlU2Nyb2xsVG9Cb3R0b219PlxuICAgICAgICAgIDxTQ01lc3NhZ2VzSW5uZXIgJHNjcm9sbE9uUGFyZW50PXtpc1Njcm9sbE9uUGFyZW50fT57bWVzc2FnZXNDb250ZW50fTwvU0NNZXNzYWdlc0lubmVyPlxuICAgICAgICA8L1NDTWVzc2FnZXNTY3JvbGw+XG4gICAgICApIDogKFxuICAgICAgICA8U0NNZXNzYWdlc0lubmVyIHJlZj17bWVzc2FnZXNSZWZ9IG9uU2Nyb2xsPXtoYW5kbGVTY3JvbGxUb0JvdHRvbX0gJHNjcm9sbE9uUGFyZW50PXtmYWxzZX0+XG4gICAgICAgICAge21lc3NhZ2VzQ29udGVudH1cbiAgICAgICAgPC9TQ01lc3NhZ2VzSW5uZXI+XG4gICAgICApfVxuXG4gICAgICB7c2hvd1Njcm9sbFRvQm90dG9tICYmIChcbiAgICAgICAgPFNjcm9sbFRvQm90dG9tQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVDbGlja1Njcm9sbFRvQm90dG9tfT5cbiAgICAgICAgICA8QXJyb3dTbWFsbERvd24gY29sb3I9XCIjNjY2XCIgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiIC8+XG4gICAgICAgIDwvU2Nyb2xsVG9Cb3R0b21CdXR0b24+XG4gICAgICApfVxuXG4gICAgICB7bG9hZGluZ01lc3NhZ2VzICYmIDxMb2FkZXIgLz59XG4gICAgPC9TQ01lc3NhZ2VzT3V0ZXI+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU1lc3NhZ2VzID0gUmVhY3QubWVtbyhDaGF0QUlNZXNzYWdlc0lubmVyKVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFLLElBQVFDLElBQUksRUFBYUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFBQyxhQUFBLElBQUFDLGNBQUEsUUFBUSxPQUFPO0FBQzVGLFNBQVNDLFVBQVUsUUFBUSxZQUFZO0FBQ3ZDLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQUNuRCxTQUFTQyxjQUFjLFFBQVEsaURBQWlEO0FBRWhGLFNBQVNDLGNBQWMsUUFBUSwyQ0FBMkM7QUFDMUUsU0FBU0MsV0FBVyxRQUFRLHFDQUFxQztBQUNqRSxTQUFTQyxzQkFBc0IsUUFBUSxvQ0FBb0M7QUFDM0UsU0FBU0MsbUJBQW1CLFFBQVEsZ0RBQWdEO0FBRXBGLFNBQXNCQyxlQUFlLFFBQWtCLHFCQUFxQjtBQUU1RSxTQUFrQkMsT0FBTyxRQUFRLDJCQUEyQjtBQUU1RCxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLGNBQWMsUUFBUSw4Q0FBOEM7QUFDN0UsU0FBU0MsWUFBWSxRQUFRLDZCQUE2QjtBQUUxRCxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFJM0MsU0FBU0MsZUFBZSxFQUFFQyxnQkFBZ0IsRUFBRUMsc0JBQXNCLEVBQUVDLHVCQUF1QixRQUFRLFVBQVU7QUFDN0csU0FBU0MsZUFBZSxRQUFRLG9CQUFvQjtBQUNwRCxTQUNFQyxtQkFBbUIsRUFDbkJDLG9CQUFvQixFQUNwQkMsZUFBZSxFQUNmQyxnQkFBZ0IsRUFDaEJDLGVBQWUsRUFDZkMsdUJBQXVCLEVBQ3ZCQyxhQUFhLEVBQ2JDLFlBQVksRUFDWkMsd0JBQXdCLEVBQ3hC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
666
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwiY3JlYXRlRWxlbWVudCIsIl9jcmVhdGVFbGVtZW50IiwiU3RyZWFtZG93biIsImNyZWF0ZUNvZGVQbHVnaW4iLCJBcnJvd1NtYWxsRG93biIsIkF0dGFjaG1lbnRDYXJkIiwiQXBwcm92YWxCb3giLCJBdHRhY2htZW50UHJldmlld01vZGFsIiwiQXR0YWNobWVudENhcmRBdWRpbyIsIkNoYXRIaXN0b3J5Um9sZSIsInVzZVVzZXIiLCJ1c2VUIiwidXNlQ2hhdE1hbmFnZXIiLCJ1c2VUYXNrUGFuZWwiLCJMb2FkaW5nVGV4dCIsIkxvYWRlciIsIk1lc3NhZ2VGcm9tVXNlciIsIk1lc3NhZ2VGcm9tT3RoZXIiLCJNZXNzYWdlQ29udGVudEZyb21Vc2VyIiwiTWVzc2FnZUNvbnRlbnRGcm9tT3RoZXIiLCJNZXNzYWdlRmVlZGJhY2siLCJTQ0NBSU1lc3NhZ2VXcmFwcGVyIiwiU2Nyb2xsVG9Cb3R0b21CdXR0b24iLCJTQ01lc3NhZ2VzT3V0ZXIiLCJTQ01lc3NhZ2VzU2Nyb2xsIiwiU0NNZXNzYWdlc0lubmVyIiwiU0NMb2FkaW5nTWVzc2FnZXNDb2x1bW4iLCJTQ09wdGlvbnNMaXN0IiwiU0NPcHRpb25JdGVtIiwiU0NBc3Npc3RhbnRNZXNzYWdlSGVhZGVyIiwiU0NBc3Npc3RhbnROYW1lIiwiU0NBc3Npc3RhbnRBdmF0YXIiLCJTQ1Rhc2tMaW5rIiwiU0NNZXNzYWdlSXRlbVdyYXBwZXIiLCJTQ01lc3NhZ2VJdGVtSW5uZXIiLCJTQ0F0dGFjaG1lbnRzUm93IiwiU0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4iLCJGZWVkYmFjayIsInVzZUdsb2JhbENvbnRleHQiLCJNQUlBSXNvbG9nbyIsIlRBU0tfVVJMX1JFR0VYX1BBVFRFUk4iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJjb2RlIiwidGhlbWVzIiwiQXNzaXN0YW50QXZhdGFyIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9jYWxBZ2VudCIsInNldExvY2FsQWdlbnQiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiY2hpbGRyZW4iLCJ0eXBlIiwid2lkdGgiLCJoZWlnaHQiLCJlbW9qaSIsIk1lc3NhZ2VXcmFwcGVyIiwiX3JlZiIsImlzQ3VycmVudFVzZXIiLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIk1lc3NhZ2VDb21wb25lbnQiLCJfb2JqZWN0U3ByZWFkIiwiTWVzc2FnZUNvbnRlbnRXcmFwcGVyIiwiX3JlZjIiLCJfZXhjbHVkZWQyIiwiTWVzc2FnZUNvbnRlbnRDb21wb25lbnQiLCJNZXNzYWdlT3B0aW9ucyIsIl9yZWYzIiwib3B0aW9ucyIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2VsZWN0ZWRPcHRpb24iLCJzZXRTZWxlY3RlZE9wdGlvbiIsImhhbmRsZVNlbGVjdCIsIm9wdGlvbiIsIm1hcCIsIiRoYXNTZWxlY3Rpb24iLCIkZGltbWVkIiwiaWQiLCJvbkNsaWNrIiwibmFtZSIsIkFzc2lzdGFudE1lc3NhZ2VIZWFkZXIiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIl91c2VHbG9iYWxDb250ZXh0MiIsImdldFRhYlNlZ21lbnRGcm9tSHJlZiIsImhyZWYiLCJtYXRjaCIsInRlc3QiLCJUYXNrTGluayIsIl9yZWY0IiwidGFza0lkIiwidGFiU2VnbWVudCIsIl91c2VUYXNrUGFuZWwiLCJidWlsZE9wZW5UYXNrIiwib3BlblRhc2siLCJoYW5kbGVDbGljayIsImUiLCJtZXRhS2V5IiwiY3RybEtleSIsInByZXZlbnREZWZhdWx0IiwiQ3VzdG9tTGluayIsIl9yZWY1IiwicmVzdCIsIl9leGNsdWRlZDMiLCJ0YXNrTWF0Y2giLCJSZWdFeHAiLCJNZXNzYWdlSXRlbSIsIl9yZWY2IiwiX3JlZjciLCJ1c2VyIiwibWVzc2FnZSIsImlzRXJyb3IiLCJhdXRoVXNlciIsImlzQ2hhbmdlUHJvamVjdCIsImhhbmRsZUZlZWRiYWNrIiwiaGFuZGxlQXBwcm92YWxEZWNpc2lvbiIsImRpc2FibGVGZWVkYmFjayIsInJvbGUiLCJzb3VyY2VzIiwiYXR0YWNobWVudHMiLCJhcHByb3ZhbCIsImFwcHJvdmFsU3RhdHVzIiwiZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UiLCJ0YXNrVXJsUmVnZXgiLCJ0YXNrcyIsInNlZW5JZHMiLCJTZXQiLCJleGVjIiwidXJsIiwiaGFzIiwiYWRkIiwibWFya2Rvd25MaW5rUmVnZXgiLCJjb25jYXQiLCJyZXBsYWNlIiwibGlua01hdGNoIiwidGl0bGUiLCJwdXNoIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJwcmV2aWV3QXR0YWNobWVudCIsInNldFByZXZpZXdBdHRhY2htZW50IiwiVVNFUiIsInRvU3RyaW5nIiwiaXNBc3Npc3RhbnQiLCJBU1NJU1RBTlQiLCJoYW5kbGVBdHRhY2htZW50Q2xpY2siLCJhdHRhY2htZW50IiwiZmlsZSIsIkZpbGUiLCJvcmlnaW5hbEZpbGUiLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiLCJoYW5kbGVDbG9zZVByZXZpZXciLCJoYXNGZWVkYmFjayIsIiRpc0Fzc2lzdGFudCIsIm1lc3NhZ2VFeHRyYUNvbnRlbnQiLCJoYW5kbGVGZWVkYmFja0NsaWNrIiwiZmVlZGJhY2siLCJzZXNzaW9uSWQiLCJzcGxpdCIsImZpbHRlciIsInF1ZXN0aW9uSWQiLCJqb2luIiwibGVuZ3RoIiwiaW5kZXgiLCJfYXR0YWNobWVudCR0eXBlIiwiX2F0dGFjaG1lbnQkbmFtZSIsImF0dGFjaG1lbnRUeXBlIiwidG9Mb3dlckNhc2UiLCJhdHRhY2htZW50TmFtZSIsImlzQXVkaW9GaWxlIiwic3RhcnRzV2l0aCIsImluY2x1ZGVzIiwic29tZSIsImV4dCIsImVuZHNXaXRoIiwicG9zaXRpb25JbmRleCIsInBlbmRpbmdfYWN0aW9ucyIsImFjdGlvbiIsIl9wcm9wcyRwcm9qZWN0TWV0YWRhdCIsInN0YXR1cyIsIm9uQXBwcm92ZSIsInRocmVhZElkIiwib25SZWplY3QiLCJpc1Byb2plY3REZWxldGVkIiwicHJvamVjdE1ldGFkYXRhIiwiaXNfZGVsZXRlZCIsImlzRXhwYW5kZWQiLCJleHBhbmRlZCIsInRocmVhZF9pZCIsInRvb2xfY2FsbF9pZCIsImlzRnJvbnRlbmRDYW5jZWxsZWQiLCJjbGFzc05hbWUiLCJwbHVnaW5zIiwiY29tcG9uZW50cyIsImEiLCJsaW5rU2FmZXR5IiwiZW5hYmxlZCIsImlzQW5pbWF0aW5nIiwiaXNTdHJlYW1pbmciLCJzaGlraVRoZW1lIiwiY29udHJvbHMiLCJ0YWJsZSIsImNvbnRlbnQiLCJpc09wZW4iLCJvbkNsb3NlIiwiQ2hhdEFJTWVzc2FnZXNJbm5lciIsIl9yZWY4IiwidXNlckluaXRpYWxNZXNzYWdlIiwiaW5pdGlhbENoYXRJZCIsIm9uRXJyb3IiLCJvblNlbmRNZXNzYWdlUmVhZHkiLCJvblNjcm9sbFRvQm90dG9tIiwiYWdlbnRzIiwiX3VzZVQiLCJ0IiwiX3VzZUdsb2JhbENvbnRleHQzIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJtZXNzYWdlc1JlZiIsImNoYXRJbml0aWFsaXplZFJlZiIsImlzTG9hZGluZ01vcmVSZWYiLCJ1c2VyU2Nyb2xsaW5nUmVmIiwic2Nyb2xsVGhyZXNob2xkUmVmIiwibGFzdFNjcm9sbFRvcFJlZiIsInNob3dTY3JvbGxUb0JvdHRvbVJlZiIsInNjcm9sbFJhZlJlZiIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic2hvd1Njcm9sbFRvQm90dG9tIiwic2V0U2hvd1Njcm9sbFRvQm90dG9tIiwiX3VzZUNoYXRNYW5hZ2VyIiwiY2hhdElkIiwidW5kZWZpbmVkIiwibWVzc2FnZXMiLCJsb2FkaW5nTWVzc2FnZXMiLCJpc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJ3YWl0aW5nUmVzcG9uc2UiLCJpc1dyaXRpbmciLCJsb2FkaW5nTWVzc2FnZSIsImFjdGl2ZUxvYWRpbmdzIiwic2VuZE1lc3NhZ2UiLCJjaGFuZ2VQcm9qZWN0IiwiaW5pdGlhbGl6ZUNoYXQiLCJoYW5kbGVTY3JvbGwiLCJzdG9wR2VuZXJhdGlvbiIsImhhbmRsZUNsaWNrU2Nyb2xsVG9Cb3R0b20iLCJjdXJyZW50Iiwic2Nyb2xsVG8iLCJ0b3AiLCJzY3JvbGxIZWlnaHQiLCJiZWhhdmlvciIsInNldFRpbWVvdXQiLCJfbWVzc2FnZXNSZWYkY3VycmVudCIsInNjcm9sbFRvcCIsImNsaWVudEhlaWdodCIsImRpc3RhbmNlRnJvbUJvdHRvbSIsInNob3VsZFNob3ciLCJoYW5kbGVTY3JvbGxUb0JvdHRvbSIsImNvbnRhaW5lciIsImN1cnJlbnRUYXJnZXQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlzU2Nyb2xsaW5nVXAiLCJpc05lYXJCb3R0b20iLCJkaWRTZXRTdGF0ZSIsInNlbmRNZXNzYWdlUmVmIiwic3RvcEdlbmVyYXRpb25SZWYiLCJvblNlbmRNZXNzYWdlUmVhZHlSZWYiLCJsYXN0TWVzc2FnZSIsImhhc0FwcHJvdmFsIiwiaXNBdEJvdHRvbSIsInNjcm9sbFRvQm90dG9tIiwiX21lc3NhZ2VzUmVmJGN1cnJlbnQyIiwiaXNOZXdBbnN3ZXJNZXNzYWdlIiwiaXNOZXdVc2VyTWVzc2FnZSIsImlzTmV3QXBwcm92YWxNZXNzYWdlIiwiaGFzTWVzc2FnZXMiLCJpc05vdEluaXRpYWxNZXNzYWdlIiwibXNnIiwic2Nyb2xsRGVsYXkiLCJkb1Njcm9sbCIsIl9tZXNzYWdlc1JlZiRjdXJyZW50MyIsIl9tZXNzYWdlc1JlZiRjdXJyZW50NCIsImxhc3RVc2VyTWVzc2FnZSIsImF0IiwiaGFzQXR0YWNobWVudHMiLCJBcnJheSIsImlzQXJyYXkiLCJpc1Njcm9sbE9uUGFyZW50IiwibWVzc2FnZXNDb250ZW50IiwidGV4dCIsIl9tZXNzYWdlJGF0dGFjaG1lbnRzIiwiX21lc3NhZ2Ukc291cmNlcyIsIl9tZXNzYWdlJHByb2plY3QiLCJwcm9qZWN0IiwibWVzc2FnZUZlZWRiYWNrIiwid2FzSGVscGZ1bCIsIlRIVU1CU19VUCIsIlRIVU1CU19ET1dOIiwiaXNBc3Npc3RhbnRNZXNzYWdlIiwiaXNMYXN0TWVzc2FnZSIsImtleSIsImRhdGUiLCJPYmplY3QiLCJrZXlzIiwiZW50cmllcyIsIl9yZWY5IiwiX3JlZjAiLCIkc2Nyb2xsT25QYXJlbnQiLCJyZWYiLCJvblNjcm9sbCIsImNvbG9yIiwiQ2hhdEFJTWVzc2FnZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvQ2hhdEFJTWVzc2FnZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tdW5zdGFibGUtbmVzdGVkLWNvbXBvbmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgUmVhY3QsIHsgRkMsIG1lbW8sIFJlYWN0Tm9kZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgU3RyZWFtZG93biB9IGZyb20gJ3N0cmVhbWRvd24nXG5pbXBvcnQgeyBjcmVhdGVDb2RlUGx1Z2luIH0gZnJvbSAnQHN0cmVhbWRvd24vY29kZSdcbmltcG9ydCB7IEFycm93U21hbGxEb3duIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXJyb3dTbWFsbERvd24nXG5cbmltcG9ydCB7IEF0dGFjaG1lbnRDYXJkIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudENhcmQvQXR0YWNobWVudENhcmQnXG5pbXBvcnQgeyBBcHByb3ZhbEJveCB9IGZyb20gJy4uLy4uL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94J1xuaW1wb3J0IHsgQXR0YWNobWVudFByZXZpZXdNb2RhbCB9IGZyb20gJy4uLy4uL2F0b21zL0F0dGFjaG1lbnRQcmV2aWV3TW9kYWwnXG5pbXBvcnQgeyBBdHRhY2htZW50Q2FyZEF1ZGlvIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudENhcmQvQXR0YWNobWVudENhcmRBdWRpbydcbmltcG9ydCB7IE1BSUFNZXNzYWdlUHJvcHMgfSBmcm9tICcuLi8uLi9hdG9tcy9NQUlBTWVzc2FnZS9NQUlBTWVzc2FnZS5pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIENoYXRIaXN0b3J5Um9sZSwgVGFza0luZm8gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuXG5pbXBvcnQgeyBDT1JVc2VyLCB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VDaGF0TWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUNoYXRNYW5hZ2VyL3VzZUNoYXRNYW5hZ2VyJ1xuaW1wb3J0IHsgdXNlVGFza1BhbmVsIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVGFza1BhbmVsJ1xuXG5pbXBvcnQgeyBMb2FkaW5nVGV4dCB9IGZyb20gJy4uLy4uL2F0b21zL0xvYWRpbmdUZXh0J1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvUHJvamVjdCdcblxuaW1wb3J0IHsgTWVzc2FnZUZyb21Vc2VyLCBNZXNzYWdlRnJvbU90aGVyLCBNZXNzYWdlQ29udGVudEZyb21Vc2VyLCBNZXNzYWdlQ29udGVudEZyb21PdGhlciB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgTWVzc2FnZUZlZWRiYWNrIH0gZnJvbSAnLi4vTWVzc2FnZUZlZWRiYWNrJ1xuaW1wb3J0IHtcbiAgU0NDQUlNZXNzYWdlV3JhcHBlcixcbiAgU2Nyb2xsVG9Cb3R0b21CdXR0b24sXG4gIFNDTWVzc2FnZXNPdXRlcixcbiAgU0NNZXNzYWdlc1Njcm9sbCxcbiAgU0NNZXNzYWdlc0lubmVyLFxuICBTQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbixcbiAgU0NPcHRpb25zTGlzdCxcbiAgU0NPcHRpb25JdGVtLFxuICBTQ0Fzc2lzdGFudE1lc3NhZ2VIZWFkZXIsXG4gIFNDQXNzaXN0YW50TmFtZSxcbiAgU0NBc3Npc3RhbnRBdmF0YXIsXG4gIFNDVGFza0xpbmssXG4gIFNDTWVzc2FnZUl0ZW1XcmFwcGVyLFxuICBTQ01lc3NhZ2VJdGVtSW5uZXIsXG4gIFNDQXR0YWNobWVudHNSb3csXG4gIFNDQXBwcm92YWxBY3Rpb25zQ29sdW1uLFxufSBmcm9tICcuL25ld1N0eWxlcydcbmltcG9ydCB7IEZlZWRiYWNrIH0gZnJvbSAnLi4vTWVzc2FnZUZlZWRiYWNrL01lc3NhZ2VGZWVkYmFjaydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5cbmNvbnN0IGNvZGUgPSBjcmVhdGVDb2RlUGx1Z2luKHsgdGhlbWVzOiBbJ2dpdGh1Yi1saWdodCcsICdnaXRodWItbGlnaHQnXSB9KVxuXG5jb25zdCBBc3Npc3RhbnRBdmF0YXIgPSAoKSA9PiB7XG4gIGNvbnN0IFtsb2NhbEFnZW50LCBzZXRMb2NhbEFnZW50XSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMb2NhbEFnZW50KGFnZW50KVxuICB9LCBbYWdlbnRdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQXNzaXN0YW50QXZhdGFyPlxuICAgICAge2xvY2FsQWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgPyA8TUFJQUlzb2xvZ28gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPiA6IGxvY2FsQWdlbnQ/LmVtb2ppfVxuICAgIDwvU0NBc3Npc3RhbnRBdmF0YXI+XG4gIClcbn1cblxudHlwZSBDaGF0QUlNZXNzYWdlc1Byb3BzID0ge1xuICB1c2VySW5pdGlhbE1lc3NhZ2U6IHsgbWVzc2FnZTogc3RyaW5nOyBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXTsgZmFxSWQ/OiBzdHJpbmcgfVxuICBpbml0aWFsQ2hhdElkOiBzdHJpbmcgfCBudWxsXG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgb25TZW5kTWVzc2FnZVJlYWR5PzogKFxuICAgIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sIGZhcUlkPzogc3RyaW5nKSA9PiB2b2lkLFxuICAgIHN0b3BHZW5lcmF0aW9uOiAoKSA9PiB2b2lkLFxuICAgIGlzU3RyZWFtaW5nOiBib29sZWFuLFxuICAgIGlzV3JpdGluZzogYm9vbGVhblxuICApID0+IHZvaWRcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TY3JvbGxUb0JvdHRvbT86ICgpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGFnZW50cz86IEFnZW50W11cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG59XG5cbnR5cGUgTWVzc2FnZUl0ZW1Qcm9wcyA9IENoYXRNZXNzYWdlICYge1xuICBhdXRoVXNlcjogQ09SVXNlclxuICBoYW5kbGVTZWxlY3RPcHRpb246IChvcHRpb246IFByb2plY3QpID0+IHZvaWRcbiAgaGFuZGxlRmVlZGJhY2s6IChmZWVkYmFjazogRmVlZGJhY2ssIGNoYXRNZXNzYWdlSWQ6IHN0cmluZykgPT4gdm9pZFxuICBoYW5kbGVBcHByb3ZhbERlY2lzaW9uOiAodGhyZWFkSWQ6IHN0cmluZywgZGVjaXNpb246ICdhcHByb3ZlJyB8ICdyZWplY3QnKSA9PiB2b2lkXG4gIGRpc2FibGVGZWVkYmFjaz86IEZlZWRiYWNrIHwgbnVsbFxuICBzb3VyY2VzPzogYW55XG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG59XG5cbmludGVyZmFjZSBNZXNzYWdlV3JhcHBlclByb3BzIHtcbiAgaXNDdXJyZW50VXNlcjogYm9vbGVhblxuICBjaGlsZHJlbjogUmVhY3ROb2RlXG4gICdkYXRhLW1lc3NhZ2UtaWQnPzogc3RyaW5nXG4gIGhhc0ZlZWRiYWNrPzogYm9vbGVhblxufVxuXG50eXBlIE1lc3NhZ2VDb250ZW50V3JhcHBlclByb3BzID0gTUFJQU1lc3NhZ2VQcm9wcyAmIHtcbiAgaXNDdXJyZW50VXNlcjogYm9vbGVhblxuICBpc0Vycm9yPzogYm9vbGVhblxuICBpc0NoYW5nZVByb2plY3Q/OiBib29sZWFuXG59XG5cbmNvbnN0IE1lc3NhZ2VXcmFwcGVyOiBGQzxNZXNzYWdlV3JhcHBlclByb3BzPiA9ICh7IGlzQ3VycmVudFVzZXIsIGNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IE1lc3NhZ2VDb21wb25lbnQgPSBpc0N1cnJlbnRVc2VyID8gTWVzc2FnZUZyb21Vc2VyIDogTWVzc2FnZUZyb21PdGhlclxuICByZXR1cm4gPE1lc3NhZ2VDb21wb25lbnQgey4uLnByb3BzfT57Y2hpbGRyZW59PC9NZXNzYWdlQ29tcG9uZW50PlxufVxuXG5jb25zdCBNZXNzYWdlQ29udGVudFdyYXBwZXI6IEZDPE1lc3NhZ2VDb250ZW50V3JhcHBlclByb3BzPiA9ICh7IGlzQ3VycmVudFVzZXIsIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgTWVzc2FnZUNvbnRlbnRDb21wb25lbnQgPSBpc0N1cnJlbnRVc2VyID8gTWVzc2FnZUNvbnRlbnRGcm9tVXNlciA6IE1lc3NhZ2VDb250ZW50RnJvbU90aGVyXG4gIHJldHVybiA8TWVzc2FnZUNvbnRlbnRDb21wb25lbnQgey4uLnByb3BzfSAvPlxufVxuXG5mdW5jdGlvbiBNZXNzYWdlT3B0aW9ucyh7XG4gIG9wdGlvbnMsXG4gIGhhbmRsZVNlbGVjdE9wdGlvbixcbn06IHtcbiAgb3B0aW9uczogUHJvamVjdFtdIHwgbnVsbFxuICBoYW5kbGVTZWxlY3RPcHRpb246IChvcHRpb246IFByb2plY3QpID0+IHZvaWRcbn0pIHtcbiAgY29uc3QgW3NlbGVjdGVkT3B0aW9uLCBzZXRTZWxlY3RlZE9wdGlvbl0gPSB1c2VTdGF0ZTxQcm9qZWN0IHwgbnVsbD4obnVsbClcblxuICBjb25zdCBoYW5kbGVTZWxlY3QgPSAob3B0aW9uOiBQcm9qZWN0KSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkT3B0aW9uKSByZXR1cm5cbiAgICBzZXRTZWxlY3RlZE9wdGlvbihvcHRpb24pXG4gICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbilcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDT3B0aW9uc0xpc3Q+XG4gICAgICB7KG9wdGlvbnMgfHwgW10pLm1hcChvcHRpb24gPT4gKFxuICAgICAgICA8U0NPcHRpb25JdGVtXG4gICAgICAgICAgJGhhc1NlbGVjdGlvbj17ISFzZWxlY3RlZE9wdGlvbn1cbiAgICAgICAgICAkZGltbWVkPXshIXNlbGVjdGVkT3B0aW9uICYmIHNlbGVjdGVkT3B0aW9uPy5pZCAhPT0gb3B0aW9uLmlkfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNlbGVjdChvcHRpb24pfVxuICAgICAgICAgIGtleT17b3B0aW9uLmlkfVxuICAgICAgICA+XG4gICAgICAgICAge29wdGlvbi5uYW1lfVxuICAgICAgICA8L1NDT3B0aW9uSXRlbT5cbiAgICAgICkpfVxuICAgIDwvU0NPcHRpb25zTGlzdD5cbiAgKVxufVxuXG5jb25zdCBBc3Npc3RhbnRNZXNzYWdlSGVhZGVyID0gKCkgPT4ge1xuICBjb25zdCBbbG9jYWxBZ2VudCwgc2V0TG9jYWxBZ2VudF0gPSB1c2VTdGF0ZTxBZ2VudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHsgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0TG9jYWxBZ2VudChhZ2VudClcbiAgfSwgW2FnZW50XSlcblxuICByZXR1cm4gKFxuICAgIDxTQ0Fzc2lzdGFudE1lc3NhZ2VIZWFkZXI+XG4gICAgICA8QXNzaXN0YW50QXZhdGFyIC8+XG4gICAgICB7bG9jYWxBZ2VudD8ubmFtZSAmJiAoXG4gICAgICAgIDxTQ0Fzc2lzdGFudE5hbWU+e2xvY2FsQWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgPyAnTUFJQScgOiBsb2NhbEFnZW50Py5uYW1lfTwvU0NBc3Npc3RhbnROYW1lPlxuICAgICAgKX1cbiAgICA8L1NDQXNzaXN0YW50TWVzc2FnZUhlYWRlcj5cbiAgKVxufVxuXG4vLyBFeHRyYWUgZWwgc2VnbWVudG8gZGUgdGFiIChkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKSBkZWwgaHJlZiBwYXJhIGFicmlyIGVsIG1vZGFsIGNvbiBlbCB0YWIgY29ycmVjdG9cbmNvbnN0IGdldFRhYlNlZ21lbnRGcm9tSHJlZiA9IChocmVmOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBtYXRjaCA9IGhyZWYubWF0Y2goL1xcL3Rhc2tzXFwvXFxkK1xcLyhbXi8/XSspLylcbiAgcmV0dXJuIG1hdGNoICYmIC9eKGRldGFpbHxtZXNzYWdlfG1lc3NhZ2VzfGZpbGVzfGhpc3Rvcnl8aG91cnMpJC8udGVzdChtYXRjaFsxXSkgPyBtYXRjaFsxXSA6ICdkZXRhaWwnXG59XG5cbi8vIENvbXBvbmVudCBmb3IgdGFzayBsaW5rcyB0aGF0IHVzZXMgdGhlIHVzZVRhc2tQYW5lbCBob29rXG5jb25zdCBUYXNrTGluazogRkM8eyBocmVmOiBzdHJpbmc7IHRhc2tJZDogc3RyaW5nOyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+ID0gKHsgaHJlZiwgdGFza0lkLCBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IHRhYlNlZ21lbnQgPSBnZXRUYWJTZWdtZW50RnJvbUhyZWYoaHJlZilcbiAgY29uc3QgeyBidWlsZE9wZW5UYXNrIH0gPSB1c2VUYXNrUGFuZWwodGFza0lkLCB0YWJTZWdtZW50KVxuICBjb25zdCBvcGVuVGFzayA9IGJ1aWxkT3BlblRhc2soKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gU2kgZXMgQ21kL0N0cmwgKyBjbGljaywgZGVqYXIgcXVlIHNlIGFicmEgZW4gbnVldmEgcGVzdGHDsWEgKGNvbXBvcnRhbWllbnRvIHBvciBkZWZlY3RvKVxuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFzaygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ1Rhc2tMaW5rIGhyZWY9e2hyZWZ9IG9uQ2xpY2s9e2hhbmRsZUNsaWNrfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1NDVGFza0xpbms+XG4gIClcbn1cblxuLy8gQ3VzdG9tIGxpbmsgY29tcG9uZW50IGZvciBTdHJlYW1kb3duOiB0YXNrIFVSTHMgb3BlbiB0aGUgdGFzayBwYW5lbCwgb3RoZXIgbGlua3MgcmVuZGVyIG5vcm1hbGx5XG50eXBlIEN1c3RvbUxpbmtQcm9wcyA9IFJlYWN0LkFuY2hvckhUTUxBdHRyaWJ1dGVzPEhUTUxBbmNob3JFbGVtZW50PiAmIHsgbm9kZT86IHVua25vd24gfVxuY29uc3QgQ3VzdG9tTGluazogRkM8Q3VzdG9tTGlua1Byb3BzPiA9ICh7IGhyZWYsIGNoaWxkcmVuLCAuLi5yZXN0IH0pID0+IHtcbiAgaWYgKCFocmVmIHx8IHR5cGVvZiBocmVmICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiAoXG4gICAgICA8YSBocmVmPXtocmVmfSB7Li4ucmVzdH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYT5cbiAgICApXG4gIH1cbiAgY29uc3QgdGFza01hdGNoID0gaHJlZi5tYXRjaChuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4pKVxuICBpZiAodGFza01hdGNoKSB7XG4gICAgY29uc3QgdGFza0lkID0gdGFza01hdGNoWzFdXG4gICAgcmV0dXJuIChcbiAgICAgIDxUYXNrTGluayBocmVmPXtocmVmfSB0YXNrSWQ9e3Rhc2tJZH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvVGFza0xpbms+XG4gICAgKVxuICB9XG4gIHJldHVybiAoXG4gICAgPGEgaHJlZj17aHJlZn0gey4uLnJlc3R9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYT5cbiAgKVxufVxuXG5jb25zdCBNZXNzYWdlSXRlbSA9IG1lbW8oKHByb3BzOiBNZXNzYWdlSXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICB1c2VyLFxuICAgIG1lc3NhZ2UsXG4gICAgaXNFcnJvcixcbiAgICBhdXRoVXNlcixcbiAgICBvcHRpb25zLFxuICAgIGlzQ2hhbmdlUHJvamVjdCxcbiAgICBoYW5kbGVTZWxlY3RPcHRpb24sXG4gICAgaGFuZGxlRmVlZGJhY2ssXG4gICAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbixcbiAgICBkaXNhYmxlRmVlZGJhY2ssXG4gICAgcm9sZSxcbiAgICBzb3VyY2VzLFxuICAgIGF0dGFjaG1lbnRzLFxuICAgIGFwcHJvdmFsLFxuICAgIGFwcHJvdmFsU3RhdHVzLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBleHRyYWN0VGFza3NGcm9tTWVzc2FnZSA9IChtZXNzYWdlOiBzdHJpbmcpOiBUYXNrSW5mb1tdID0+IHtcbiAgICBpZiAoIW1lc3NhZ2UpIHJldHVybiBbXVxuXG4gICAgLy8gTWF0Y2ggVVJMcyBsaWtlOiAuLi4vdGFza3MvMTIzNDU2LyhkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKVxuICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgIGNvbnN0IHRhc2tzOiBUYXNrSW5mb1tdID0gW11cbiAgICBjb25zdCBzZWVuSWRzID0gbmV3IFNldDxzdHJpbmc+KClcblxuICAgIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IG51bGxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ25cbiAgICB3aGlsZSAoKG1hdGNoID0gdGFza1VybFJlZ2V4LmV4ZWMobWVzc2FnZSkpICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0YXNrSWQgPSBtYXRjaFsxXVxuICAgICAgY29uc3QgdXJsID0gbWF0Y2hbMF1cblxuICAgICAgaWYgKCFzZWVuSWRzLmhhcyh0YXNrSWQpKSB7XG4gICAgICAgIHNlZW5JZHMuYWRkKHRhc2tJZClcblxuICAgICAgICAvLyBUcnkgdG8gZXh0cmFjdCB0aGUgdGFzayB0aXRsZSBmcm9tIG1hcmtkb3duIGxpbmsgW3RpdGxlXSh1cmwpXG4gICAgICAgIGNvbnN0IG1hcmtkb3duTGlua1JlZ2V4ID0gbmV3IFJlZ0V4cChgXFxcXFsoW15cXFxcXV0rKVxcXFxdXFxcXCgke3VybC5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpfVxcXFwpYClcbiAgICAgICAgY29uc3QgbGlua01hdGNoID0gbWVzc2FnZS5tYXRjaChtYXJrZG93bkxpbmtSZWdleClcbiAgICAgICAgY29uc3QgdGl0bGUgPSBsaW5rTWF0Y2ggPyBsaW5rTWF0Y2hbMV0gOiBgVGFyZWEgIyR7dGFza0lkfWBcblxuICAgICAgICB0YXNrcy5wdXNoKHtcbiAgICAgICAgICBpZDogdGFza0lkLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgIHVybCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFza3NcbiAgfVxuXG4gIGNvbnN0IFtwcmV2aWV3QXR0YWNobWVudCwgc2V0UHJldmlld0F0dGFjaG1lbnRdID0gdXNlU3RhdGU8QXR0YWNobWVudEZpbGUgfCBudWxsPihudWxsKVxuICBjb25zdCBpc0N1cnJlbnRVc2VyID0gcm9sZSA9PT0gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgfHwgdXNlci5pZCA9PT0gYXV0aFVzZXIuaWQudG9TdHJpbmcoKVxuICBjb25zdCBpc0Fzc2lzdGFudCA9IHJvbGUgPT09IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQgfHwgdXNlci5pZCA9PT0gJ2Fzc2lzdGFudCdcblxuICBjb25zdCBoYW5kbGVBdHRhY2htZW50Q2xpY2sgPSAoYXR0YWNobWVudDogQXR0YWNobWVudEZpbGUpID0+IHtcbiAgICAvLyBQZXJtaXRpciBwcmV2aXN1YWxpemFjacOzbiBzaSB0aWVuZSBhcmNoaXZvIGxvY2FsIG8gVVJMcyBkZWwgYmFja2VuZFxuICAgIGlmIChcbiAgICAgIGF0dGFjaG1lbnQuZmlsZSBpbnN0YW5jZW9mIEZpbGUgfHxcbiAgICAgIGF0dGFjaG1lbnQub3JpZ2luYWxGaWxlIGluc3RhbmNlb2YgRmlsZSB8fFxuICAgICAgYXR0YWNobWVudC51cmxfdGh1bWJuYWlsIHx8XG4gICAgICBhdHRhY2htZW50LnVybF9vcmlnaW5hbCB8fFxuICAgICAgYXR0YWNobWVudC51cmxfZmlsZVxuICAgICkge1xuICAgICAgc2V0UHJldmlld0F0dGFjaG1lbnQoYXR0YWNobWVudClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDbG9zZVByZXZpZXcgPSAoKSA9PiB7XG4gICAgc2V0UHJldmlld0F0dGFjaG1lbnQobnVsbClcbiAgfVxuXG4gIGlmIChpc0NoYW5nZVByb2plY3QgJiYgb3B0aW9ucykge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVzc2FnZVdyYXBwZXIga2V5PXtpZH0gaXNDdXJyZW50VXNlcj17aXNDdXJyZW50VXNlcn0gZGF0YS1tZXNzYWdlLWlkPXtpZH0gaGFzRmVlZGJhY2s9e2ZhbHNlfT5cbiAgICAgICAgPFNDTWVzc2FnZUl0ZW1XcmFwcGVyICRpc0Fzc2lzdGFudD17aXNBc3Npc3RhbnR9PlxuICAgICAgICAgIHtpc0Fzc2lzdGFudCAmJiA8QXNzaXN0YW50TWVzc2FnZUhlYWRlciAvPn1cbiAgICAgICAgICA8TWVzc2FnZUNvbnRlbnRXcmFwcGVyXG4gICAgICAgICAgICBpc0NoYW5nZVByb2plY3Q9e2lzQ2hhbmdlUHJvamVjdH1cbiAgICAgICAgICAgIG1lc3NhZ2U9e21lc3NhZ2V9XG4gICAgICAgICAgICBpc0N1cnJlbnRVc2VyPXtpc0N1cnJlbnRVc2VyfVxuICAgICAgICAgICAgaXNFcnJvcj17aXNFcnJvcn1cbiAgICAgICAgICAgIG1lc3NhZ2VFeHRyYUNvbnRlbnQ9ezxNZXNzYWdlT3B0aW9ucyBvcHRpb25zPXtvcHRpb25zIGFzIGFueX0gaGFuZGxlU2VsZWN0T3B0aW9uPXtoYW5kbGVTZWxlY3RPcHRpb259IC8+fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU0NNZXNzYWdlSXRlbVdyYXBwZXI+XG4gICAgICA8L01lc3NhZ2VXcmFwcGVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZlZWRiYWNrQ2xpY2sgPSAoZmVlZGJhY2s6IEZlZWRiYWNrKSA9PiB7XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gaWRcbiAgICAgIC5zcGxpdCgnLScpXG4gICAgICAuZmlsdGVyKHF1ZXN0aW9uSWQgPT4gcXVlc3Rpb25JZCAhPT0gJ2Fuc3dlcicpXG4gICAgICAuam9pbignLScpXG4gICAgaGFuZGxlRmVlZGJhY2s/LihmZWVkYmFjaywgc2Vzc2lvbklkKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NNZXNzYWdlSXRlbVdyYXBwZXIgJGlzQXNzaXN0YW50PXtpc0Fzc2lzdGFudH0+XG4gICAgICB7aXNBc3Npc3RhbnQgJiYgPEFzc2lzdGFudE1lc3NhZ2VIZWFkZXIgLz59XG4gICAgICA8U0NNZXNzYWdlSXRlbUlubmVyPlxuICAgICAgICB7ISEoYXR0YWNobWVudHMgfHwgc291cmNlcyk/Lmxlbmd0aCAmJiAhaXNBc3Npc3RhbnQgJiYgKFxuICAgICAgICAgIDxTQ0F0dGFjaG1lbnRzUm93PlxuICAgICAgICAgICAgeyhhdHRhY2htZW50cyB8fCBzb3VyY2VzKT8ubWFwKChhdHRhY2htZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAvLyBEZXRlY3RhciBzaSBlcyB1biBhcmNoaXZvIGRlIGF1ZGlvXG4gICAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnRUeXBlID0gYXR0YWNobWVudD8udHlwZT8udG9Mb3dlckNhc2UoKSB8fCAnJ1xuICAgICAgICAgICAgICBjb25zdCBhdHRhY2htZW50TmFtZSA9IGF0dGFjaG1lbnQ/Lm5hbWU/LnRvTG93ZXJDYXNlKCkgfHwgJydcbiAgICAgICAgICAgICAgY29uc3QgaXNBdWRpb0ZpbGUgPVxuICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRUeXBlLnN0YXJ0c1dpdGgoJ2F1ZGlvLycpIHx8XG4gICAgICAgICAgICAgICAgWydmbGFjJywgJ200YScsICdtcDMnLCAnbXA0JywgJ29nYScsICdvZ2cnLCAnd2F2JywgJ3dlYm0nXS5pbmNsdWRlcyhhdHRhY2htZW50VHlwZSkgfHxcbiAgICAgICAgICAgICAgICBbJy5mbGFjJywgJy5tNGEnLCAnLm1wMycsICcubXA0JywgJy5vZ2EnLCAnLm9nZycsICcud2F2JywgJy53ZWJtJ10uc29tZShleHQgPT5cbiAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnROYW1lLmVuZHNXaXRoKGV4dClcbiAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgaWYgKGlzQXVkaW9GaWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxBdHRhY2htZW50Q2FyZEF1ZGlvIGtleT17YCR7YXR0YWNobWVudC5pZH0tJHthdHRhY2htZW50Lm5hbWV9YH0gYXR0YWNobWVudD17YXR0YWNobWVudH0gLz5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEF0dGFjaG1lbnRDYXJkXG4gICAgICAgICAgICAgICAgICBrZXk9e2Ake2F0dGFjaG1lbnQuaWR9LSR7YXR0YWNobWVudC5uYW1lfWB9XG4gICAgICAgICAgICAgICAgICBhdHRhY2htZW50PXthdHRhY2htZW50fVxuICAgICAgICAgICAgICAgICAgcG9zaXRpb25JbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVBdHRhY2htZW50Q2xpY2soYXR0YWNobWVudCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9TQ0F0dGFjaG1lbnRzUm93PlxuICAgICAgICApfVxuICAgICAgICB7YXBwcm92YWwgJiYgYXBwcm92YWwucGVuZGluZ19hY3Rpb25zICYmIChcbiAgICAgICAgICA8U0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4+XG4gICAgICAgICAgICB7YXBwcm92YWwucGVuZGluZ19hY3Rpb25zLm1hcChhY3Rpb24gPT4gKFxuICAgICAgICAgICAgICA8QXBwcm92YWxCb3hcbiAgICAgICAgICAgICAgICBrZXk9e2Ake2FjdGlvbi50aHJlYWRfaWR9LSR7YWN0aW9uLnRvb2xfY2FsbF9pZH1gfVxuICAgICAgICAgICAgICAgIGFjdGlvbj17YWN0aW9ufVxuICAgICAgICAgICAgICAgIHN0YXR1cz17YXBwcm92YWxTdGF0dXN9XG4gICAgICAgICAgICAgICAgb25BcHByb3ZlPXt0aHJlYWRJZCA9PiBoYW5kbGVBcHByb3ZhbERlY2lzaW9uKHRocmVhZElkLCAnYXBwcm92ZScpfVxuICAgICAgICAgICAgICAgIG9uUmVqZWN0PXt0aHJlYWRJZCA9PiBoYW5kbGVBcHByb3ZhbERlY2lzaW9uKHRocmVhZElkLCAncmVqZWN0Jyl9XG4gICAgICAgICAgICAgICAgaXNQcm9qZWN0RGVsZXRlZD17cHJvcHMucHJvamVjdE1ldGFkYXRhPy5pc19kZWxldGVkID09PSB0cnVlfVxuICAgICAgICAgICAgICAgIGlzRXhwYW5kZWQ9e3Byb3BzLmV4cGFuZGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9TQ0FwcHJvdmFsQWN0aW9uc0NvbHVtbj5cbiAgICAgICAgKX1cbiAgICAgICAgeyEhbWVzc2FnZSAmJlxuICAgICAgICAgIC8vIFNpIGhheSBhcHByb3ZhbCAoZGlzdGludG8gZGUgbnVsbCksIG5vIHJlbmRlcml6YXIgZWwgYW5zd2VyIGVuIGVzdGUgbWVuc2FqZVxuICAgICAgICAgIC8vIEVsIG1lbnNhamUgZGUgcmVjaGF6byBzZSByZW5kZXJpemEgY29tbyBtZW5zYWplIHNlcGFyYWRvXG4gICAgICAgICAgIWFwcHJvdmFsICYmIChcbiAgICAgICAgICAgIDxTQ0NBSU1lc3NhZ2VXcmFwcGVyXG4gICAgICAgICAgICAgIGlzQ3VycmVudFVzZXI9e2lzQ3VycmVudFVzZXJ9XG4gICAgICAgICAgICAgIGlzRnJvbnRlbmRDYW5jZWxsZWQ9e3Byb3BzLmlzRnJvbnRlbmRDYW5jZWxsZWR9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17aXNBc3Npc3RhbnQgJiYgZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UobWVzc2FnZSkubGVuZ3RoID4gMCA/ICdoYXMtdGFzay1saW5rcycgOiAnJ31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgey8qIGxpbmtTYWZldHkgbW9kYWwgZGVzaGFiaWxpdGFkbyBwb3IgZWwgbW9tZW50bzogbGlua1NhZmV0eT17eyBlbmFibGVkOiB0cnVlIH19ICovfVxuICAgICAgICAgICAgICA8U3RyZWFtZG93blxuICAgICAgICAgICAgICAgIHBsdWdpbnM9e3sgY29kZSB9fVxuICAgICAgICAgICAgICAgIGNvbXBvbmVudHM9e3sgYTogQ3VzdG9tTGluayB9IGFzIFBhcmFtZXRlcnM8dHlwZW9mIFN0cmVhbWRvd24+WzBdWydjb21wb25lbnRzJ119XG4gICAgICAgICAgICAgICAgbGlua1NhZmV0eT17eyBlbmFibGVkOiBmYWxzZSB9fVxuICAgICAgICAgICAgICAgIGlzQW5pbWF0aW5nPXshIXByb3BzLmlzU3RyZWFtaW5nfVxuICAgICAgICAgICAgICAgIHNoaWtpVGhlbWU9e1snZ2l0aHViLWxpZ2h0JywgJ2dpdGh1Yi1saWdodCddfVxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPXt7IHRhYmxlOiBmYWxzZSwgY29kZTogZmFsc2UgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHttZXNzYWdlfVxuICAgICAgICAgICAgICA8L1N0cmVhbWRvd24+XG4gICAgICAgICAgICA8L1NDQ0FJTWVzc2FnZVdyYXBwZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAge2lzQXNzaXN0YW50ICYmICFpc0Vycm9yICYmICFwcm9wcy5pc0Zyb250ZW5kQ2FuY2VsbGVkICYmICFhcHByb3ZhbCAmJiAoXG4gICAgICAgICAgPE1lc3NhZ2VGZWVkYmFja1xuICAgICAgICAgICAgY29udGVudD17bWVzc2FnZX1cbiAgICAgICAgICAgIHNvdXJjZXM9e3NvdXJjZXN9XG4gICAgICAgICAgICBoYW5kbGVGZWVkYmFjaz17aGFuZGxlRmVlZGJhY2tDbGlja31cbiAgICAgICAgICAgIGRpc2FibGVGZWVkYmFjaz17ZGlzYWJsZUZlZWRiYWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1NDTWVzc2FnZUl0ZW1Jbm5lcj5cbiAgICAgIDxBdHRhY2htZW50UHJldmlld01vZGFsXG4gICAgICAgIGlzT3Blbj17ISFwcmV2aWV3QXR0YWNobWVudH1cbiAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2VQcmV2aWV3fVxuICAgICAgICBhdHRhY2htZW50PXtwcmV2aWV3QXR0YWNobWVudH1cbiAgICAgIC8+XG4gICAgPC9TQ01lc3NhZ2VJdGVtV3JhcHBlcj5cbiAgKVxufSlcblxuY29uc3QgQ2hhdEFJTWVzc2FnZXNJbm5lciA9ICh7XG4gIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgaW5pdGlhbENoYXRJZCxcbiAgb25FcnJvcixcbiAgb25TZW5kTWVzc2FnZVJlYWR5LFxuICBvblNjcm9sbFRvQm90dG9tLFxuICBhdHRhY2htZW50cyxcbiAgYWdlbnRzLFxuICBleHBhbmRlZCxcbn06IENoYXRBSU1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgYXV0aFVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgbWVzc2FnZXNSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGNoYXRJbml0aWFsaXplZFJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgaXNMb2FkaW5nTW9yZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgdXNlclNjcm9sbGluZ1JlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGhyZXNob2xkUmVmID0gdXNlUmVmKDM5KVxuICBjb25zdCBsYXN0U2Nyb2xsVG9wUmVmID0gdXNlUmVmKDApXG4gIGNvbnN0IHNob3dTY3JvbGxUb0JvdHRvbVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsUmFmUmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzaG93U2Nyb2xsVG9Cb3R0b20sIHNldFNob3dTY3JvbGxUb0JvdHRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCB7XG4gICAgbWVzc2FnZXMsXG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICB3YWl0aW5nUmVzcG9uc2UsXG4gICAgaXNXcml0aW5nLFxuICAgIGxvYWRpbmdNZXNzYWdlLFxuICAgIGFjdGl2ZUxvYWRpbmdzLFxuICAgIHNlbmRNZXNzYWdlLFxuICAgIGNoYW5nZVByb2plY3QsXG4gICAgaGFuZGxlRmVlZGJhY2ssXG4gICAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbixcbiAgICBpbml0aWFsaXplQ2hhdCxcbiAgICBoYW5kbGVTY3JvbGwsXG4gICAgc3RvcEdlbmVyYXRpb24sXG4gIH0gPSB1c2VDaGF0TWFuYWdlcih7XG4gICAgY2hhdElkOiBpbml0aWFsQ2hhdElkIHx8IHVuZGVmaW5lZCxcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gICAgb25FcnJvcixcbiAgICBhdHRhY2htZW50cyxcbiAgICBhZ2VudHMsXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gKG9wdGlvbjogUHJvamVjdCkgPT4ge1xuICAgIGNoYW5nZVByb2plY3Qob3B0aW9uKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2tTY3JvbGxUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUbyh7XG4gICAgICAgIHRvcDogbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxIZWlnaHQsXG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgIH0pXG4gICAgICAvLyBBY3R1YWxpemFyIGVzdGFkbyBkZXNwdcOpcyBkZSB1biBicmV2ZSBkZWxheSBwYXJhIHBlcm1pdGlyIHF1ZSBlbCBzY3JvbGwgc2UgY29tcGxldGVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9LCA1MDApXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVTY3JvbGxUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5VSUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyID0gZS5jdXJyZW50VGFyZ2V0XG5cbiAgICAgIGlmIChzY3JvbGxSYWZSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShzY3JvbGxSYWZSZWYuY3VycmVudClcbiAgICAgIH1cblxuICAgICAgc2Nyb2xsUmFmUmVmLmN1cnJlbnQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBzY3JvbGxSYWZSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcblxuICAgICAgICBjb25zdCBpc1Njcm9sbGluZ1VwID0gc2Nyb2xsVG9wIDwgbGFzdFNjcm9sbFRvcFJlZi5jdXJyZW50XG5cbiAgICAgICAgaWYgKGlzU2Nyb2xsaW5nVXApIHtcbiAgICAgICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDE1XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc05lYXJCb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHQgPCBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChpc05lYXJCb3R0b20pIHtcbiAgICAgICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDM5XG4gICAgICAgIH1cblxuICAgICAgICB1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQgPSAhaXNOZWFyQm90dG9tXG4gICAgICAgIGxhc3RTY3JvbGxUb3BSZWYuY3VycmVudCA9IHNjcm9sbFRvcFxuXG4gICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICBjb25zdCBzaG91bGRTaG93ID0gZGlzdGFuY2VGcm9tQm90dG9tID4gNTBcbiAgICAgICAgY29uc3QgZGlkU2V0U3RhdGUgPSBzaG93U2Nyb2xsVG9Cb3R0b21SZWYuY3VycmVudCAhPT0gc2hvdWxkU2hvd1xuICAgICAgICBpZiAoZGlkU2V0U3RhdGUpIHtcbiAgICAgICAgICBzaG93U2Nyb2xsVG9Cb3R0b21SZWYuY3VycmVudCA9IHNob3VsZFNob3dcbiAgICAgICAgICBzZXRTaG93U2Nyb2xsVG9Cb3R0b20oc2hvdWxkU2hvdylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc05lYXJCb3R0b20gJiYgb25TY3JvbGxUb0JvdHRvbSkge1xuICAgICAgICAgIG9uU2Nyb2xsVG9Cb3R0b20oKVxuICAgICAgICB9XG5cbiAgICAgICAgaGFuZGxlU2Nyb2xsKGNvbnRhaW5lcilcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbb25TY3JvbGxUb0JvdHRvbSwgaGFuZGxlU2Nyb2xsXVxuICApXG5cbiAgLy8gcmVmcyB0byBzdGFiaWxpemUgZnVuY3Rpb25zIGFuZCBhdm9pZCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXG4gIGNvbnN0IHNlbmRNZXNzYWdlUmVmID0gdXNlUmVmKHNlbmRNZXNzYWdlKVxuICBjb25zdCBzdG9wR2VuZXJhdGlvblJlZiA9IHVzZVJlZihzdG9wR2VuZXJhdGlvbilcbiAgY29uc3Qgb25TZW5kTWVzc2FnZVJlYWR5UmVmID0gdXNlUmVmKG9uU2VuZE1lc3NhZ2VSZWFkeSlcblxuICAvLyB1cGRhdGUgcmVmcyB3aGVuIGZ1bmN0aW9ucyBjaGFuZ2VcbiAgc2VuZE1lc3NhZ2VSZWYuY3VycmVudCA9IHNlbmRNZXNzYWdlXG4gIHN0b3BHZW5lcmF0aW9uUmVmLmN1cnJlbnQgPSBzdG9wR2VuZXJhdGlvblxuICBvblNlbmRNZXNzYWdlUmVhZHlSZWYuY3VycmVudCA9IG9uU2VuZE1lc3NhZ2VSZWFkeVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG9uU2VuZE1lc3NhZ2VSZWFkeVJlZi5jdXJyZW50KSB7XG4gICAgICBvblNlbmRNZXNzYWdlUmVhZHlSZWYuY3VycmVudChzZW5kTWVzc2FnZVJlZi5jdXJyZW50LCBzdG9wR2VuZXJhdGlvblJlZi5jdXJyZW50LCB3YWl0aW5nUmVzcG9uc2UsIGlzV3JpdGluZylcbiAgICB9XG4gIH0sIFt3YWl0aW5nUmVzcG9uc2UsIGlzV3JpdGluZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBpc0xvYWRpbmdNb3JlTWVzc2FnZXNcbiAgfSwgW2lzTG9hZGluZ01vcmVNZXNzYWdlc10pXG5cbiAgLy8gQ3VhbmRvIGVsIGFnZW50ZSBlbXBpZXphIGEgcmVzcG9uZGVyLCByZXNldGVhciBlbCBmbGFnIHkgZWwgdW1icmFsIHBhcmEgYWN0aXZhciBlbCBhdXRvLXNjcm9sbFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3YWl0aW5nUmVzcG9uc2UpIHtcbiAgICAgIHVzZXJTY3JvbGxpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDM5XG4gICAgfVxuICB9LCBbd2FpdGluZ1Jlc3BvbnNlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghY2hhdEluaXRpYWxpemVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNoYXRJbml0aWFsaXplZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgaW5pdGlhbGl6ZUNoYXQoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLy8gU2Nyb2xsIGN1YW5kbyBsbGVnYSB1biBtZW5zYWplIGRlIGFwcm9iYWNpw7NuIChBcHByb3ZhbEJveCkuIFNpbiBSZXNpemVPYnNlcnZlciBlbiBlbFxuICAvLyBjb250ZW5lZG9yOiBvYnNlcnZhcmxvIGRpc3BhcmFiYSBjYWxsYmFja3MgYWwgY2FtYmlhciBlbCBsYXlvdXQvc2Nyb2xsYmFyIHkgY2FkYSB1bm9cbiAgLy8gbGxhbWFiYSBzY3JvbGxUb0JvdHRvbSgpLCBwcm92b2NhbmRvIHRpcm9uZXMgYWwgc2Nyb2xsZWFyLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWVzc2FnZXNSZWYuY3VycmVudCB8fCBsb2FkaW5nTWVzc2FnZXMgfHwgaXNMb2FkaW5nTW9yZU1lc3NhZ2VzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgbGFzdE1lc3NhZ2UgPSBtZXNzYWdlc1ttZXNzYWdlcy5sZW5ndGggLSAxXVxuICAgIGNvbnN0IGhhc0FwcHJvdmFsID0gbGFzdE1lc3NhZ2UgJiYgKGxhc3RNZXNzYWdlLmlkLnN0YXJ0c1dpdGgoJ2FwcHJvdmFsLScpIHx8ICEhbGFzdE1lc3NhZ2UuYXBwcm92YWwpXG5cbiAgICBpZiAoIWhhc0FwcHJvdmFsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0IC0gY29udGFpbmVyLnNjcm9sbFRvcCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMTAwXG5cbiAgICBpZiAoIShpc0F0Qm90dG9tIHx8ICF1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsVG9Cb3R0b20gPSAoKSA9PiB7XG4gICAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgICBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbFRvcCA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuc2Nyb2xsSGVpZ2h0XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VjdWVuY2lhIGluaWNpYWwgZGUgc2Nyb2xsIHBhcmEgY3VhbmRvIGVsIEFwcHJvdmFsQm94IGFjYWJhIGRlIHJlbmRlcml6YXJzZVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBzY3JvbGxUb0JvdHRvbSgpXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBzY3JvbGxUb0JvdHRvbSgpXG4gICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVG9Cb3R0b20sIDEwMClcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW21lc3NhZ2VzLCBsb2FkaW5nTWVzc2FnZXMsIGlzTG9hZGluZ01vcmVNZXNzYWdlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBTaSBlbCB1c3VhcmlvIGVzdMOhIHNjcm9sbGVhbmRvIG1hbnVhbG1lbnRlLCBubyBoYWNlciBhdXRvIHNjcm9sbFxuICAgIGlmICh1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQgJiYgd2FpdGluZ1Jlc3BvbnNlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAod2FpdGluZ1Jlc3BvbnNlICYmIG1lc3NhZ2VzUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUb3AgPSBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbEhlaWdodFxuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFtZXNzYWdlc1JlZi5jdXJyZW50IHx8IGxvYWRpbmdNZXNzYWdlcyB8fCBpc0xvYWRpbmdNb3JlTWVzc2FnZXMgfHwgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IG1lc3NhZ2VzUmVmLmN1cnJlbnRcbiAgICBjb25zdCBsYXN0TWVzc2FnZSA9IG1lc3NhZ2VzW21lc3NhZ2VzLmxlbmd0aCAtIDFdXG5cbiAgICBjb25zdCBpc05ld0Fuc3dlck1lc3NhZ2UgPSBsYXN0TWVzc2FnZSAmJiBsYXN0TWVzc2FnZS5pZC5zdGFydHNXaXRoKCdhbnN3ZXItJylcbiAgICBjb25zdCBpc05ld1VzZXJNZXNzYWdlID0gbGFzdE1lc3NhZ2UgJiYgbGFzdE1lc3NhZ2UuaWQuc3RhcnRzV2l0aCgncXVlc3Rpb24tJylcbiAgICBjb25zdCBpc05ld0FwcHJvdmFsTWVzc2FnZSA9IGxhc3RNZXNzYWdlICYmIChsYXN0TWVzc2FnZS5pZC5zdGFydHNXaXRoKCdhcHByb3ZhbC0nKSB8fCAhIWxhc3RNZXNzYWdlLmFwcHJvdmFsKVxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0IC0gY29udGFpbmVyLnNjcm9sbFRvcCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMTAwXG4gICAgY29uc3QgaGFzTWVzc2FnZXMgPSAhIW1lc3NhZ2VzLmxlbmd0aFxuICAgIGNvbnN0IGlzTm90SW5pdGlhbE1lc3NhZ2UgPSAhbWVzc2FnZXMuc29tZShtc2cgPT4gbXNnLmlkID09PSAndXNlci1pbml0aWFsLW1lc3NhZ2UnKVxuXG4gICAgaWYgKChpc05ld0Fuc3dlck1lc3NhZ2UgfHwgaXNOZXdVc2VyTWVzc2FnZSB8fCBpc05ld0FwcHJvdmFsTWVzc2FnZSkgJiYgaXNBdEJvdHRvbSkge1xuICAgICAgLy8gUGFyYSBtZW5zYWplcyBkZSBhcHJvYmFjacOzbiwgdXNhciB1biBwZXF1ZcOxbyBkZWxheSBwYXJhIGFzZWd1cmFyIHF1ZSBlbCBBcHByb3ZhbEJveCBzZSBoYXlhIHJlbmRlcml6YWRvXG4gICAgICBjb25zdCBzY3JvbGxEZWxheSA9IGlzTmV3QXBwcm92YWxNZXNzYWdlID8gMTAwIDogMFxuICAgICAgY29uc3QgZG9TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKG1lc3NhZ2VzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG1lc3NhZ2VzUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxIZWlnaHRcbiAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2VGcm9tQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0XG4gICAgICAgICAgICBjb25zdCBzaG91bGRTaG93ID0gZGlzdGFuY2VGcm9tQm90dG9tID4gNTBcbiAgICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgICAgc2V0U2hvd1Njcm9sbFRvQm90dG9tKHNob3VsZFNob3cpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaWYgKHNjcm9sbERlbGF5ID4gMCkge1xuICAgICAgICBzZXRUaW1lb3V0KGRvU2Nyb2xsLCBzY3JvbGxEZWxheSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvU2Nyb2xsKClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgaGFzTWVzc2FnZXMgJiZcbiAgICAgIGlzTm90SW5pdGlhbE1lc3NhZ2UgJiZcbiAgICAgICFpc05ld0Fuc3dlck1lc3NhZ2UgJiZcbiAgICAgICFpc05ld1VzZXJNZXNzYWdlICYmXG4gICAgICAhaXNOZXdBcHByb3ZhbE1lc3NhZ2VcbiAgICApIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUb3AgPSBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbEhlaWdodFxuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSwgW21lc3NhZ2VzLCBsb2FkaW5nTWVzc2FnZXMsIGlzTG9hZGluZ01vcmVNZXNzYWdlcywgd2FpdGluZ1Jlc3BvbnNlXSlcblxuICAvLyBWZXJpZmljYXIgZWwgZXN0YWRvIGluaWNpYWwgZGVsIHNjcm9sbFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50ICYmICFsb2FkaW5nTWVzc2FnZXMpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IG1lc3NhZ2VzUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBkaXN0YW5jZUZyb21Cb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHRcbiAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgc2hvd1Njcm9sbFRvQm90dG9tUmVmLmN1cnJlbnQgPSBzaG91bGRTaG93XG4gICAgICBzZXRTaG93U2Nyb2xsVG9Cb3R0b20oc2hvdWxkU2hvdylcbiAgICB9XG4gIH0sIFtsb2FkaW5nTWVzc2FnZXMsIG1lc3NhZ2VzLmxlbmd0aF0pXG5cbiAgLy8gT2J0ZW5lciBlbCDDumx0aW1vIG1lbnNhamUgZGVsIHVzdWFyaW8gcGFyYSB2ZXJpZmljYXIgc2kgdGllbmUgYXR0YWNobWVudHNcbiAgY29uc3QgbGFzdFVzZXJNZXNzYWdlID0gbWVzc2FnZXNcbiAgICAuZmlsdGVyKG1zZyA9PiBtc2cucm9sZSA9PT0gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgfHwgbXNnLnVzZXIuaWQgPT09IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCkpXG4gICAgLmF0KC0xKVxuXG4gIGNvbnN0IGhhc0F0dGFjaG1lbnRzID1cbiAgICAoQXJyYXkuaXNBcnJheShsYXN0VXNlck1lc3NhZ2U/LmF0dGFjaG1lbnRzKSAmJiBsYXN0VXNlck1lc3NhZ2UuYXR0YWNobWVudHMubGVuZ3RoKSB8fFxuICAgIChBcnJheS5pc0FycmF5KGxhc3RVc2VyTWVzc2FnZT8uc291cmNlcykgJiYgbGFzdFVzZXJNZXNzYWdlLnNvdXJjZXMubGVuZ3RoKVxuXG4gIGNvbnN0IGlzU2Nyb2xsT25QYXJlbnQgPSAhIWV4cGFuZGVkXG5cbiAgY29uc3QgbWVzc2FnZXNDb250ZW50ID0gKFxuICAgIDw+XG4gICAgICB7aXNMb2FkaW5nTW9yZU1lc3NhZ2VzICYmIDxMb2FkaW5nVGV4dCB0ZXh0PXt0KCdjaGF0LmxvYWRpbmdNb3JlJyl9IC8+fVxuICAgICAge21lc3NhZ2VzLm1hcCgobWVzc2FnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICEobWVzc2FnZS5hdHRhY2htZW50cz8ubGVuZ3RoIHx8IG1lc3NhZ2Uuc291cmNlcz8ubGVuZ3RoKSAmJlxuICAgICAgICAgICFtZXNzYWdlLm1lc3NhZ2UgJiZcbiAgICAgICAgICAhbWVzc2FnZS5wcm9qZWN0Py5uYW1lICYmXG4gICAgICAgICAgIW1lc3NhZ2UuYXBwcm92YWxcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIGNvbnN0IG1lc3NhZ2VGZWVkYmFjayA9XG4gICAgICAgICAgbWVzc2FnZT8ud2FzSGVscGZ1bCA9PT0gdW5kZWZpbmVkIHx8IG1lc3NhZ2Uud2FzSGVscGZ1bCA9PT0gbnVsbFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IG1lc3NhZ2Uud2FzSGVscGZ1bFxuICAgICAgICAgICAgICA/IEZlZWRiYWNrLlRIVU1CU19VUFxuICAgICAgICAgICAgICA6IEZlZWRiYWNrLlRIVU1CU19ET1dOXG5cbiAgICAgICAgY29uc3QgaXNBc3Npc3RhbnRNZXNzYWdlID0gbWVzc2FnZS5yb2xlID09PSBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5UIHx8IG1lc3NhZ2UudXNlci5pZCA9PT0gJ2Fzc2lzdGFudCdcbiAgICAgICAgY29uc3QgaXNMYXN0TWVzc2FnZSA9IGluZGV4ID09PSBtZXNzYWdlcy5sZW5ndGggLSAxXG4gICAgICAgIGNvbnN0IGlzU3RyZWFtaW5nID0gaXNBc3Npc3RhbnRNZXNzYWdlICYmIGlzTGFzdE1lc3NhZ2UgJiYgKHdhaXRpbmdSZXNwb25zZSB8fCBpc1dyaXRpbmcpXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TWVzc2FnZUl0ZW1cbiAgICAgICAgICAgIHsuLi5tZXNzYWdlfVxuICAgICAgICAgICAga2V5PXttZXNzYWdlLmlkICE9IG51bGwgPyBgJHttZXNzYWdlLmlkfS0ke21lc3NhZ2UuZGF0ZX1gIDogYG1zZy0ke2luZGV4fWB9XG4gICAgICAgICAgICBhdXRoVXNlcj17YXV0aFVzZXJ9XG4gICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249e2hhbmRsZVNlbGVjdE9wdGlvbn1cbiAgICAgICAgICAgIGhhbmRsZUZlZWRiYWNrPXtoYW5kbGVGZWVkYmFja31cbiAgICAgICAgICAgIGhhbmRsZUFwcHJvdmFsRGVjaXNpb249e2hhbmRsZUFwcHJvdmFsRGVjaXNpb259XG4gICAgICAgICAgICBkaXNhYmxlRmVlZGJhY2s9e21lc3NhZ2VGZWVkYmFja31cbiAgICAgICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICAgIHsod2FpdGluZ1Jlc3BvbnNlIHx8IGxvYWRpbmdNZXNzYWdlIHx8IE9iamVjdC5rZXlzKGFjdGl2ZUxvYWRpbmdzIHx8IHt9KS5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgIDxTQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbj5cbiAgICAgICAgICB7KHdhaXRpbmdSZXNwb25zZSB8fCBsb2FkaW5nTWVzc2FnZSkgJiYgKFxuICAgICAgICAgICAgPExvYWRpbmdUZXh0XG4gICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgIGxvYWRpbmdNZXNzYWdlIHx8XG4gICAgICAgICAgICAgICAgKGlzV2ViU2VhcmNoQWN0aXZlXG4gICAgICAgICAgICAgICAgICA/ICdCdXNjYW5kbyBlbiBsYSB3ZWInXG4gICAgICAgICAgICAgICAgICA6IGlzRGVlcFNlYXJjaEFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICA/IHQoJ2NoYXQuZ2VuZXJhdGluZ0RlZXBTZWFyY2gnKVxuICAgICAgICAgICAgICAgICAgICA6IGhhc0F0dGFjaG1lbnRzXG4gICAgICAgICAgICAgICAgICAgICAgPyB0KCdjaGF0LmdlbmVyYXRpbmdBdHRhY2htZW50JylcbiAgICAgICAgICAgICAgICAgICAgICA6IHQoJ2NoYXQuZ2VuZXJhdGluZycpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKGFjdGl2ZUxvYWRpbmdzIHx8IHt9KS5tYXAoKFt0aHJlYWRJZCwgbWVzc2FnZV0pID0+IChcbiAgICAgICAgICAgIDxMb2FkaW5nVGV4dCBrZXk9e2Bsb2FkaW5nLSR7dGhyZWFkSWR9YH0gdGV4dD17bWVzc2FnZX0gLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9TQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbj5cbiAgICAgICl9XG4gICAgPC8+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTQ01lc3NhZ2VzT3V0ZXIgJHNjcm9sbE9uUGFyZW50PXtpc1Njcm9sbE9uUGFyZW50fT5cbiAgICAgIHtpc1Njcm9sbE9uUGFyZW50ID8gKFxuICAgICAgICA8U0NNZXNzYWdlc1Njcm9sbCByZWY9e21lc3NhZ2VzUmVmfSBvblNjcm9sbD17aGFuZGxlU2Nyb2xsVG9Cb3R0b219PlxuICAgICAgICAgIDxTQ01lc3NhZ2VzSW5uZXIgJHNjcm9sbE9uUGFyZW50PXtpc1Njcm9sbE9uUGFyZW50fT57bWVzc2FnZXNDb250ZW50fTwvU0NNZXNzYWdlc0lubmVyPlxuICAgICAgICA8L1NDTWVzc2FnZXNTY3JvbGw+XG4gICAgICApIDogKFxuICAgICAgICA8U0NNZXNzYWdlc0lubmVyIHJlZj17bWVzc2FnZXNSZWZ9IG9uU2Nyb2xsPXtoYW5kbGVTY3JvbGxUb0JvdHRvbX0gJHNjcm9sbE9uUGFyZW50PXtmYWxzZX0+XG4gICAgICAgICAge21lc3NhZ2VzQ29udGVudH1cbiAgICAgICAgPC9TQ01lc3NhZ2VzSW5uZXI+XG4gICAgICApfVxuXG4gICAgICB7c2hvd1Njcm9sbFRvQm90dG9tICYmIChcbiAgICAgICAgPFNjcm9sbFRvQm90dG9tQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVDbGlja1Njcm9sbFRvQm90dG9tfT5cbiAgICAgICAgICA8QXJyb3dTbWFsbERvd24gY29sb3I9XCIjNjY2XCIgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiIC8+XG4gICAgICAgIDwvU2Nyb2xsVG9Cb3R0b21CdXR0b24+XG4gICAgICApfVxuXG4gICAgICB7bG9hZGluZ01lc3NhZ2VzICYmIDxMb2FkZXIgLz59XG4gICAgPC9TQ01lc3NhZ2VzT3V0ZXI+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU1lc3NhZ2VzID0gUmVhY3QubWVtbyhDaGF0QUlNZXNzYWdlc0lubmVyKVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFLLElBQVFDLElBQUksRUFBYUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFBQyxhQUFBLElBQUFDLGNBQUEsUUFBUSxPQUFPO0FBQzVGLFNBQVNDLFVBQVUsUUFBUSxZQUFZO0FBQ3ZDLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQUNuRCxTQUFTQyxjQUFjLFFBQVEsaURBQWlEO0FBRWhGLFNBQVNDLGNBQWMsUUFBUSwyQ0FBMkM7QUFDMUUsU0FBU0MsV0FBVyxRQUFRLHFDQUFxQztBQUNqRSxTQUFTQyxzQkFBc0IsUUFBUSxvQ0FBb0M7QUFDM0UsU0FBU0MsbUJBQW1CLFFBQVEsZ0RBQWdEO0FBRXBGLFNBQXNCQyxlQUFlLFFBQWtCLHFCQUFxQjtBQUU1RSxTQUFrQkMsT0FBTyxRQUFRLDJCQUEyQjtBQUU1RCxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLGNBQWMsUUFBUSw4Q0FBOEM7QUFDN0UsU0FBU0MsWUFBWSxRQUFRLDZCQUE2QjtBQUUxRCxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFJM0MsU0FBU0MsZUFBZSxFQUFFQyxnQkFBZ0IsRUFBRUMsc0JBQXNCLEVBQUVDLHVCQUF1QixRQUFRLFVBQVU7QUFDN0csU0FBU0MsZUFBZSxRQUFRLG9CQUFvQjtBQUNwRCxTQUNFQyxtQkFBbUIsRUFDbkJDLG9CQUFvQixFQUNwQkMsZUFBZSxFQUNmQyxnQkFBZ0IsRUFDaEJDLGVBQWUsRUFDZkMs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