atr-components 0.1.16 → 0.1.18

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.
@@ -1,3 +1,4 @@
1
+ import { HttpHeaders } from "@angular/common/http";
1
2
  export declare const atr_static_datas: {
2
3
  test: string;
3
4
  /**
@@ -12,6 +13,8 @@ export declare const atr_static_datas: {
12
13
  */
13
14
  login_router: string;
14
15
  SERVER_URL: string;
16
+ needNormalHeade: boolean;
17
+ getNormalHeader: (_headers: HttpHeaders) => HttpHeaders;
15
18
  };
16
19
  export declare class commonDatas {
17
20
  static letters: string[];
@@ -86,7 +89,7 @@ export declare interface AtrFormOpt {
86
89
  }
87
90
  export declare interface AtrFormDetail {
88
91
  label: string;
89
- type: 'cascader' | 'radio' | 'text' | 'image' | 'select' | 'date' | 'number' | 'telphone' | 'password' | 'checkbox' | 'editor' | 'textarea' | 'dateTime' | 'title' | 'dateRange' | 'selectc' | 'selectIcon' | 'treeSelect';
92
+ type: 'cascader' | 'radio' | 'text' | 'image' | 'select' | 'date' | 'number' | 'telphone' | 'password' | 'checkbox' | 'editor' | 'textarea' | 'dateTime' | 'title' | 'dateRange' | 'selectc' | 'selectIcon' | 'treeSelect' | 'switch';
90
93
  key: string;
91
94
  isHidden?: boolean;
92
95
  defaultValue?: any;
@@ -5,12 +5,18 @@ import * as i0 from "@angular/core";
5
5
  export declare class HttpService {
6
6
  private httpClient;
7
7
  constructor(httpClient: HttpClient);
8
+ getNormalHeader(_headers: HttpHeaders): HttpHeaders;
8
9
  /**
9
10
  *
10
11
  * @param url
11
12
  * @param params
12
13
  */
13
14
  post: (url: string, params?: any, options?: HttpOptions | undefined, headers?: HttpHeaders | undefined) => Observable<any>;
15
+ postPromAll(urls: {
16
+ url: string;
17
+ params?: {};
18
+ }[], options?: HttpOptions, headers?: HttpHeaders): Promise<any[]>;
19
+ postProm(url: string, params?: any, options?: HttpOptions, headers?: HttpHeaders): Promise<Object | undefined>;
14
20
  postBody: (url: string, params?: any, options?: HttpOptions | undefined, headers?: {} | undefined) => Observable<any>;
15
21
  getDefaultHeader(_headers: HttpHeaders): HttpHeaders;
16
22
  get: (url: string, params?: {} | undefined, options?: HttpOptions | undefined) => Observable<any>;
@@ -18,6 +24,7 @@ export declare class HttpService {
18
24
  private transformString;
19
25
  private parseObj;
20
26
  getOss: (url: string, params?: {} | undefined, responseType?: any, noError?: boolean) => Observable<any>;
27
+ downloadXls(url: string, params?: {}): void;
21
28
  static ɵfac: i0.ɵɵFactoryDeclaration<HttpService, never>;
22
29
  static ɵprov: i0.ɵɵInjectableDeclaration<HttpService>;
23
30
  }
@@ -12,6 +12,11 @@ export const atr_static_datas = {
12
12
  */
13
13
  login_router: '/p/login',
14
14
  SERVER_URL: '',
15
+ //http head是否默认head
16
+ needNormalHeade: false,
17
+ getNormalHeader: (_headers) => {
18
+ return _headers;
19
+ }
15
20
  };
16
21
  export class commonDatas {
17
22
  }
@@ -25,4 +30,4 @@ export var UserAction;
25
30
  UserAction[UserAction["QUERY"] = 3] = "QUERY";
26
31
  UserAction[UserAction["SUPPERADD"] = 4] = "SUPPERADD";
27
32
  })(UserAction || (UserAction = {}));
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvYmFzZS9hdHItY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLElBQUksRUFBRSxHQUFHO0lBQ1Q7O09BRUc7SUFDSCxPQUFPLEVBQUMsRUFBRTtJQUNWLFVBQVUsRUFBQyxxQkFBcUI7SUFDaEMsV0FBVyxFQUFDLEtBQUs7SUFDakIsUUFBUSxFQUFDLEVBQUU7SUFDWDs7T0FFRztJQUNILFlBQVksRUFBQyxVQUFVO0lBQ3ZCLFVBQVUsRUFBQyxFQUFFO0NBQ2QsQ0FBQztBQUNGLE1BQU0sT0FBTyxXQUFXOztBQUNmLG1CQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7QUFDNUksaUJBQUssR0FBRyxxOUhBQXE5SCxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQW1Dai9ILE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIseUNBQUcsQ0FBQTtJQUNILDJDQUFJLENBQUE7SUFDSix5Q0FBRyxDQUFBO0lBQ0gsNkNBQUssQ0FBQTtJQUNMLHFEQUFTLENBQUE7QUFDWCxDQUFDLEVBTlcsVUFBVSxLQUFWLFVBQVUsUUFNckIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgYXRyX3N0YXRpY19kYXRhcyA9IHtcclxuICB0ZXN0OiAnMScsXHJcbiAgLyoqXHJcbiAgICogb3Nz5Zyw5Z2A5YmN57yAXHJcbiAgICovXHJcbiAgT1NTX1VSTDonJyxcclxuICBPU1NfUE9MSUNZOid0aGlyZC9vc3MvZ2V0UG9saWN5JyxcclxuICBTVE9SQUdFX1BSRTonRFFfJyxcclxuICBtZW51X3VybDonJyxcclxuICAvKipcclxuICAgKiDnmbvlvZXot6/nlLFcclxuICAgKi9cclxuICBsb2dpbl9yb3V0ZXI6Jy9wL2xvZ2luJyxcclxuICBTRVJWRVJfVVJMOicnLFxyXG59O1xyXG5leHBvcnQgY2xhc3MgY29tbW9uRGF0YXMge1xyXG4gIHN0YXRpYyBsZXR0ZXJzID0gW1wiQVwiLCBcIkJcIiwgXCJDXCIsIFwiRFwiLCBcIkVcIiwgXCJGXCIsIFwiR1wiLCBcIkhcIiwgXCJJXCIsIFwiSlwiLCBcIktcIiwgXCJMXCIsIFwiTVwiLCBcIk5cIiwgXCJPXCIsIFwiUFwiLCBcIlFcIiwgXCJSXCIsIFwiU1wiLCBcIlRcIiwgXCJVXCIsIFwiVlwiLCBcIldcIiwgXCJYXCIsIFwiWVwiLCBcIlpcIl1cclxuICBzdGF0aWMgaWNvbnMgPSAnc3RlcC1iYWNrd2FyZCxzdGVwLWZvcndhcmQsZmFzdC1iYWNrd2FyZCxmYXN0LWZvcndhcmQsc2hyaW5rLGFycm93cy1hbHQsZG93bix1cCxsZWZ0LHJpZ2h0LGNhcmV0LXVwLGNhcmV0LWRvd24sY2FyZXQtbGVmdCxjYXJldC1yaWdodCx1cC1jaXJjbGUsZG93bi1jaXJjbGUsbGVmdC1jaXJjbGUscmlnaHQtY2lyY2xlLGRvdWJsZS1yaWdodCxkb3VibGUtbGVmdCx2ZXJ0aWNhbC1sZWZ0LHZlcnRpY2FsLXJpZ2h0LHZlcnRpY2FsLWFsaWduLXRvcCx2ZXJ0aWNhbC1hbGlnbi1taWRkbGUsdmVydGljYWwtYWxpZ24tYm90dG9tLGZvcndhcmQsYmFja3dhcmQscm9sbGJhY2ssZW50ZXIscmV0d2VldCxzd2FwLHN3YXAtbGVmdCxzd2FwLXJpZ2h0LGFycm93LXVwLGFycm93LWRvd24sYXJyb3ctbGVmdCxhcnJvdy1yaWdodCxwbGF5LWNpcmNsZSx1cC1zcXVhcmUsZG93bi1zcXVhcmUsbGVmdC1zcXVhcmUscmlnaHQtc3F1YXJlLGxvZ2luLGxvZ291dCxtZW51LWZvbGQsbWVudS11bmZvbGQsYm9yZGVyLWJvdHRvbSxib3JkZXItaG9yaXpvbnRhbCxib3JkZXItaW5uZXIsYm9yZGVyLW91dGVyLGJvcmRlci1sZWZ0LGJvcmRlci1yaWdodCxib3JkZXItdG9wLGJvcmRlci12ZXJ0aWNsZSxwaWMtY2VudGVyLHBpYy1sZWZ0LHBpYy1yaWdodCxyYWRpdXMtYm90dG9tbGVmdCxyYWRpdXMtYm90dG9tcmlnaHQscmFkaXVzLXVwbGVmdCxyYWRpdXMtdXByaWdodCxmdWxsc2NyZWVuLGZ1bGxzY3JlZW4tZXhpdCxxdWVzdGlvbixxdWVzdGlvbi1jaXJjbGUscGx1cyxwbHVzLWNpcmNsZSxwYXVzZSxwYXVzZS1jaXJjbGUsbWludXMsbWludXMtY2lyY2xlLHBsdXMtc3F1YXJlLG1pbnVzLXNxdWFyZSxpbmZvLGluZm8tY2lyY2xlLGV4Y2xhbWF0aW9uLGV4Y2xhbWF0aW9uLWNpcmNsZSxjbG9zZSxjbG9zZS1jaXJjbGUsY2xvc2Utc3F1YXJlLGNoZWNrLGNoZWNrLWNpcmNsZSxjaGVjay1zcXVhcmUsY2xvY2stY2lyY2xlLHdhcm5pbmcsaXNzdWVzLWNsb3NlLHN0b3AsZWRpdCxmb3JtLGNvcHksc2Npc3NvcixkZWxldGUsc25pcHBldHMsZGlmZixoaWdobGlnaHQsYWxpZ24tY2VudGVyLGFsaWduLWxlZnQsYWxpZ24tcmlnaHQsYmctY29sb3JzLGJvbGQsaXRhbGljLHVuZGVybGluZSxzdHJpa2V0aHJvdWdoLHJlZG8sdW5kbyx6b29tLWluLHpvb20tb3V0LGZvbnQtY29sb3JzLGZvbnQtc2l6ZSxsaW5lLWhlaWdodCxkYXNoLHNtYWxsLWRhc2gsc29ydC1hc2NlbmRpbmcsc29ydC1kZXNjZW5kaW5nLGRyYWcsb3JkZXJlZC1saXN0LHVub3JkZXJlZC1saXN0LHJhZGl1cy1zZXR0aW5nLGNvbHVtbi13aWR0aCxjb2x1bW4taGVpZ2h0LGFyZWEtY2hhcnQscGllLWNoYXJ0LGJhci1jaGFydCxkb3QtY2hhcnQsbGluZS1jaGFydCxyYWRhci1jaGFydCxoZWF0LW1hcCxmYWxsLHJpc2Usc3RvY2ssYm94LXBsb3QsZnVuZCxzbGlkZXJzLGFuZHJvaWQsYXBwbGUsd2luZG93cyxpZSxjaHJvbWUsZ2l0aHViLGFsaXdhbmd3YW5nLGRpbmdkaW5nLHdlaWJvLXNxdWFyZSx3ZWliby1jaXJjbGUsdGFvYmFvLWNpcmNsZSxodG1sNSx3ZWlibyx0d2l0dGVyLHdlY2hhdCx5b3V0dWJlLGFsaXBheS1jaXJjbGUsdGFvYmFvLHNreXBlLHFxLG1lZGl1bS13b3JrbWFyayxnaXRsYWIsbWVkaXVtLGxpbmtlZGluLGdvb2dsZS1wbHVzLGRyb3Bib3gsZmFjZWJvb2ssY29kZXBlbixjb2RlLXNhbmRib3gsYW1hem9uLGdvb2dsZSxjb2RlcGVuLWNpcmNsZSxhbGlwYXksYW50LWRlc2lnbixhbnQtY2xvdWQsYWxpeXVuLHpoaWh1LHNsYWNrLHNsYWNrLXNxdWFyZSxiZWhhbmNlLGJlaGFuY2Utc3F1YXJlLGRyaWJiYmxlLGRyaWJiYmxlLXNxdWFyZSxpbnN0YWdyYW0seXVxdWUsYWxpYmFiYSx5YWhvbyxyZWRkaXQsc2tldGNoLGFsZXJ0LGFpbSxhY2NvdW50LWJvb2ssYXBhcnRtZW50LGFwaSxhcHBzdG9yZSxhdWRpby1tdXRlZCxhdWRpdCxiYW5rLGJhcmNvZGUsYmFycyxibG9jayxib29rLGJlbGwsYXBwc3RvcmUtYWRkLGF1ZGlvLGJvcmRlcixib3JkZXJsZXNzLXRhYmxlLGJ1ZyxicmFuY2hlcyxjYW1lcmEsY2FsY3VsYXRvcixjYWxlbmRhcixidWlsZCxjYXJyeS1vdXQsYnVsYixjYXIsY2xlYXIsY2ksY2xvdWQtZG93bmxvYWQsY2xvdWQsY2xvdWQtc3luYyxjbG91ZC1zZXJ2ZXIsY2xvdWQtdXBsb2FkLGNvZGUsY29mZmVlLGNvbXByZXNzLGNvbXBhc3MsY29tbWVudCxjaS1jaXJjbGUsY29udGFpbmVyLGNvbnRyb2wsY29weXJpZ2h0LGNyZWRpdC1jYXJkLGNsdXN0ZXIsY3VzdG9tZXItc2VydmljZSxjb250YWN0cyxjb25zb2xlLXNxbCxkYXNoYm9hcmQsZGF0YWJhc2UsY29weXJpZ2h0LWNpcmNsZSxkZWxldGUtY29sdW1uLGRlc2t0b3AsZGVwbG95bWVudC11bml0LGRlbGl2ZXJlZC1wcm9jZWR1cmUsZGlzY29ubmVjdCxkaW5ndGFsayxkb2xsYXItY2lyY2xlLGRpc2xpa2UsZGVsZXRlLXJvdyxkb2xsYXIsY3Jvd24sZG93bmxvYWQsZWxsaXBzaXMsZW52aXJvbm1lbnQsZXVyby1jaXJjbGUsZXhjZXB0aW9uLGV4cGFuZC1hbHQsZXVybyxleHBlcmltZW50LGV4cG9ydCxleHBhbmQsZXllLWludmlzaWJsZSxleWUsZmlsZS1hZGQsZmllbGQtc3RyaW5nLGZpbGUtZXhjbGFtYXRpb24sZmlsZS1kb25lLGZpZWxkLXRpbWUsZmlsZS1leGNlbCxmaWVsZC1iaW5hcnksZmlsZS1naWYsZmlsZS1pbWFnZSxmaWxlLGZpbGUtbWFya2Rvd24sZmlsZS1wcHQsZmlsZS1wZGYsZmllbGQtbnVtYmVyLGZpbGUtc2VhcmNoLGZpbGUtc3luYyxmaWxlLWpwZyxmaWxlLXRleHQsZmlsdGVyLGZpbGUtemlwLGZsYWcsZm9sZGVyLWFkZCxmaWxlLXVua25vd24sZm9sZGVyLW9wZW4sZmlyZSxmaWxlLXByb3RlY3QsZm9sZGVyLXZpZXcsZm9sZGVyLGZvcmssZm9ybWF0LXBhaW50ZXIsZnJvd24sZnVuZC1wcm9qZWN0aW9uLXNjcmVlbixnaWZ0LGdhdGV3YXksZnVuZC12aWV3LGdpZixmdW5uZWwtcGxvdCxnb2xkLGdsb2JhbCxncm91cCxoZGQsZnVuY3Rpb24saGlzdG9yeSxmaWxlLXdvcmQsaG9tZSxpZGNhcmQsaG91cmdsYXNzLGhlYXJ0LGluc2VydC1yb3ctYmVsb3csaW1wb3J0LGluc2VydC1yb3ctbGVmdCxpbnNlcnQtcm93LWFib3ZlLGluc2VydC1yb3ctcmlnaHQsa2V5LGluYm94LGluc3VyYW5jZSxsYXB0b3AsbGlrZSxsaW5lLGxpbmssbG9hZGluZy0zLXF1YXJ0ZXJzLGxvYWRpbmcsbG9jayxtYW4sbWFpbCxtYWMtY29tbWFuZCxtZWRpY2luZS1ib3gsbGF5b3V0LG1laCxpbnRlcmFjdGlvbixtZXNzYWdlLG1lbnUsbWVyZ2UtY2VsbHMsbW9iaWxlLG1vbmV5LWNvbGxlY3Qsbm9kZS1pbmRleCxtb25pdG9yLG5vZGUtZXhwYW5kLG1vcmUsbnVtYmVyLG5vdGlmaWNhdGlvbixvbmUtdG8tb25lLHBlcmNlbnRhZ2UscGhvbmUscGFwZXItY2xpcCxwYXJ0aXRpb24scGljdHVyZSxub2RlLWNvbGxhcHNlLHBsYXktc3F1YXJlLHBheS1jaXJjbGUscG91bmQscHJvZmlsZSxwcm9qZWN0LHByb3BlcnR5LXNhZmV0eSxwb3dlcm9mZixwdXNocGluLHFyY29kZSxwcmludGVyLHBvdW5kLWNpcmNsZSxwdWxsLXJlcXVlc3QscmVzdCxyZWFkLHJlbG9hZCxyZWNvbmNpbGlhdGlvbixyb2JvdCxyb2NrZXQscm90YXRlLXJpZ2h0LHNhZmV0eS1jZXJ0aWZpY2F0ZSxyZWQtZW52ZWxvcGUscm90YXRlLWxlZnQsc2F2ZSxzYWZldHksc2VhcmNoLHNlY3VyaXR5LXNjYW4sc2NhbixzZW5kLHNldHRpbmcsc2VsZWN0LHNoYWtlLHNob3BwaW5nLWNhcnQsc2lzdGVybm9kZSxzaG9wLHNob3BwaW5nLHNoYXJlLWFsdCxzY2hlZHVsZSxza2luLHNtaWxlLHNvbHV0aW9uLHNvdW5kLHNwbGl0LWNlbGxzLHN0YXIsc3Vibm9kZSx0YWdzLHRhYmxldCx0YWcsdGFibGUsc3dpdGNoZXIsc3luYyx0ZWFtLHRvb2wsdHJhZGVtYXJrLWNpcmNsZSx0aHVuZGVyYm9sdCx0by10b3AsdHJhbnNsYXRpb24sdHJhZGVtYXJrLHRyb3BoeSx1bmdyb3VwLHVubG9jayx1cGxvYWQsdHJhbnNhY3Rpb24sdXNlci1kZWxldGUsdXNiLHVzZXItYWRkLHVzZXJncm91cC1kZWxldGUsdmlkZW8tY2FtZXJhLWFkZCx2ZXJpZmllZCx1c2VyZ3JvdXAtYWRkLHVzZXIsdXNlci1zd2l0Y2gsdmlkZW8tY2FtZXJhLHdpZmksd2FsbGV0LHdoYXRzLWFwcCx3b21hbixhcHBzdG9yZScuc3BsaXQoJywnKVxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UganNvbiBleHRlbmRzIE9iamVjdCB7XHJcbiAgW2tleTogc3RyaW5nXTogYW55XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTZXJ2ZXJQYWdpbmF0aW9uU3RhbmRhcmQge1xyXG4gIGN1cnJlbnRQYWdlOiBudW1iZXI7XHJcbiAgc2hvd0NvdW50OiBudW1iZXI7XHJcbiAgdG90YWxSZXN1bHQ6IG51bWJlcjtcclxuICB0b3RhbFBhZ2U/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBIdHRwUmVzcG9uc2VEYXRhU3RhbmRhcmQge1xyXG4gIHN0YXRlOiBudW1iZXI7IC8vIOS4ujHmiY3mmK/miJDlip9cclxuICBkYXRhOiBqc29uIHwgW3t9XSB8IG9iamVjdCB8IHN0cmluZyB8IGFueTsgLy/msqHmnInlgLwgZGF0YTogJydcclxuICBtZXNzOiBzdHJpbmc7IC8v6L+U5Zue55qE5raI5oGvXHJcbiAgcGFnZT86IFNlcnZlclBhZ2luYXRpb25TdGFuZGFyZDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBIdHRwUnNlcG9uc2VUcmFuc2Zvcm1DZWxsIHtcclxuICBba2V5OiBzdHJpbmddOiBqc29uXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBIdHRwT3B0aW9ucyB7XHJcbiAgaGVhZGVycz86IHt9LFxyXG4gIGlzSnNvbkVuY29kZT86IGJvb2xlYW5cclxuICBpc1VybEVuY29kZT86IGJvb2xlYW5cclxuICBpc0F1dG9TaG93TWVzc2FnZT86IGJvb2xlYW5cclxuICBpc1dpdGhDcmVkZW50aWFscz86IGJvb2xlYW5cclxuICBpc0NvbW1vbkh0dHBIZWFkZXI/OiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFVzZXJBY3Rpb24ge1xyXG4gIEFERCxcclxuICBFRElULFxyXG4gIERFTCxcclxuICBRVUVSWSxcclxuICBTVVBQRVJBRERcclxufVxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRUNoYXJ0c09wdGlvbiB7XHJcbiAgdGl0bGU/OiBhbnksXHJcbiAgbGVnZW5kPzogYW55LFxyXG4gIGdyaWQ/OiBhbnksXHJcbiAgYnJ1c2g/OiBhbnksXHJcbiAgdG9vbGJveD86IGFueSxcclxuICB0b29sdGlwPzogYW55LFxyXG4gIGRhdGFzZXQ/OiBhbnksXHJcbiAgeEF4aXM/OiB7XHJcbiAgICB0eXBlPzogJ2NhdGVnb3J5JyxcclxuICAgIGRhdGE/OiBzdHJpbmdbXSxcclxuICAgIGJvdW5kYXJ5R2FwPzpib29sZWFuLFxyXG4gICAgc2hvdz86IGJvb2xlYW4sXHJcbiAgfSxcclxuICB5QXhpcz86IGFueSwvL3sgICAgc2hvdzpmYWxzZSwgICAgdHlwZTogJ3ZhbHVlJywgICAgbWluSW50ZXJ2YWw6IDEsfVtdXHJcbiAgc2VyaWVzPzoge1xyXG4gICAgbmFtZT86IHN0cmluZyxcclxuICAgIGRhdGE/OiBhbnlbXSxcclxuICAgIGl0ZW1TdHlsZT86IGFueSxcclxuICAgIHN0YWNrPzogYW55LFxyXG4gICAgZW1waGFzaXM/OiBhbnksXHJcbiAgICBsYWJlbD86IGFueSxcclxuICAgIHJhZGl1cz86IGFueVtdLFxyXG4gICAgc21vb3RoPzpib29sZWFuLFxyXG4gICAgc2VyaWVzTGF5b3V0Qnk/OnN0cmluZyxcclxuICAgIHR5cGU/OiAnYmFyJyB8ICdwaWUnIHwgJ2xpbmUnLFxyXG4gICAgYmFja2dyb3VuZFN0eWxlPzogYW55XHJcbiAgfVtdXHJcbn1cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0ckZvcm1PcHQge1xyXG4gIHR5cGU6ICdhZGQnIHwgJ2VkaXQnIHwgJ3ZpZXcnLFxyXG4gIGxheW91dD86IFwiZnVsbFwiIHwgJzFsMmMnIHwgJzFsMWMnLFxyXG4gIGl0ZW1zOiBBdHJGb3JtRGV0YWlsW10sLy/ooajljZXpobnnm65cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0ckZvcm1EZXRhaWwge1xyXG4gIGxhYmVsOiBzdHJpbmcsXHJcbiAgdHlwZTogJ2Nhc2NhZGVyJyB8ICdyYWRpbycgfCAndGV4dCcgfCAnaW1hZ2UnIHwgJ3NlbGVjdCcgfCAnZGF0ZScgfCAnbnVtYmVyJyB8ICd0ZWxwaG9uZScgfCAncGFzc3dvcmQnIHwgJ2NoZWNrYm94J1xyXG4gICAgfCAnZWRpdG9yJyB8ICd0ZXh0YXJlYScgfCAnZGF0ZVRpbWUnIHwgJ3RpdGxlJyB8ICdkYXRlUmFuZ2UnIHwgJ3NlbGVjdGMnIHwgJ3NlbGVjdEljb24nIHwgJ3RyZWVTZWxlY3QnLFxyXG4gIGtleTogc3RyaW5nLFxyXG4gIGlzSGlkZGVuPzogYm9vbGVhbixcclxuICBkZWZhdWx0VmFsdWU/OiBhbnksXHJcbiAgdmFsdWU/OiBhbnksLy/nvJbovpHkuIvljp/lp4vmlbDlgLxcclxuICBkaWN0Q29kZT86IHN0cmluZywvL3NlbGVjdCDmqKHlvI/kuIvphY3nva5cclxuICBzcGFuPzogbnVtYmVyLC8v5pi+56S65a695bqmXHJcbiAgdmFsaWRhdG9ycz86IEF0ckZvcm1WYWxpZFtdLC8v6aqM6K+B5p2h5Lu2XHJcbiAgaXNSZXF1aXJlZD86IGJvb2xlYW4gfCBzdHJpbmcsLy/pmpDmgKfmnaHku7Yg5peg6ZyA5aGr5YaZLCBzdHJpbmfnsbvlnovmoLzlvI/lkIxvcGVyYXRvclxyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nLFxyXG4gIGltYWdlT3B0cz86IEltYWdlT3B0cyxcclxuICBlZGl0Q29udGVudD86IHN0cmluZyxcclxuICBoZWlnaHQ/OiBudW1iZXIsLy9lZGl0b3LmnInmlYhcclxuICBkaXNhYmxlPzogYm9vbGVhbixcclxuICBsc3Bhbj86IG51bWJlcixcclxuICBjc3Bhbj86IG51bWJlcixcclxuICByb3dzPzogbnVtYmVyLC8vdGV4dGFyZWEg5pi+56S66KGM5pWwXHJcbiAgb3BlcmF0b3I/OiBzdHJpbmcsLy/mmL7npLrmk43kvZznrKYg5qC85byPIOWmgjpzdGF0dXN8ZXF8MFxyXG4gIGJ1dHRvbj86IGZvcm1CdXR0b24sXHJcbiAgcmVhZG9ubHk/OiBib29sZWFuLFxyXG4gIGRhdGVGb3JtYXQ/OiBzdHJpbmcsXHJcbiAgZGljdExpc3Q/OiBDdXNEaWN0W10sXHJcbiAgc2VsZWN0VXJsPzogeyB1cmw6IHN0cmluZywgY29udmVydD86IHN0cmluZywgdHlwZT86ICdnZXQnIHwgJ3Bvc3QnLCBob3N0PzogJ29zcycgfCAnc2VydmUnLCBpc011bHRpcGxlPzogYm9vbGVhbiB9LFxyXG4gIHRyZWVMaXN0PzogeyBrZXk6IHN0cmluZywgdGl0bGU6IHN0cmluZyB9W10sXHJcbiAgZW5kcz86IHN0cmluZyxcclxuICBwcm9wb3NhbD86IHN0cmluZyxcclxuICB0ZW1wPzogYW55LFxyXG4gIG5vdE51bGw/OiBib29sZWFuXHJcblxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQXRyRm9ybVZhbGlkIHtcclxuICB0eXBlOiAncmVxdWlyZWQnIHwgJ2VtYWlsJyB8ICd0ZWxwaG9uZScgfCAnbWF4bGVuZ3RoJyB8ICdtaW5sZW5ndGgnIHwgJ3BhdHRlcm4nIHwgJ29wZXJhdG9yJyxcclxuICBlcnJvckxhYmVsOiBzdHJpbmcsXHJcbiAgbWF4bGVuZ3RoPzogbnVtYmVyLFxyXG4gIG1pbmxlbmd0aD86IG51bWJlcixcclxuICBwYXR0ZXJuVmFsdWU/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIGZvcm1CdXR0b24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBpc1Nob3c6IGJvb2xlYW4sXHJcbiAgY29kZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBjb2xvck9wZXJhdG9yIHtcclxuICBjb2xvcjogc3RyaW5nLFxyXG4gIG9wZXJhdG9yOiBzdHJpbmcsLy/op4TliJlcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0clF1ZXlyT3B0IHtcclxuICBhY3Rpb25zPzogVGFibGVBY3Rpb25bXSxcclxuICBpc0luZGV4PzogYm9vbGVhbiwvL+aYr+WQpuaYvuekuuW6j+WPtyxcclxuICBjb2xvcj86IGNvbG9yT3BlcmF0b3IsLy/popzoibJcclxuICBjaGVja0JveD86IHtcclxuICAgIGlzU2hvd0NoZWNrYm94PzogYm9vbGVhbixcclxuICAgIGlzUmFkaW8/OiBib29sZWFuLFxyXG4gICAgaXNGb3JiaWQ/OiBib29sZWFuLC8vdHJ1ZeaXtuWPquWFgeiuuOeCueWHu+WkmumAieahhumAieaLqVxyXG4gIH0sXHJcbiAgLy8gaXNTaG93Q2hlY2tib3g/OiBib29sZWFuLFxyXG4gIHNob3dOdW0/OiBudW1iZXIsXHJcbiAgdXJsOiBzdHJpbmcsXHJcbiAgc29ydD86IHN0cmluZyxcclxuICBoZWFkZXJzPzogQXRyUXVlcnlIZWFkZXJbXSxcclxuICB0YWJsZXM6IFRhYmxlW10sXHJcbiAgaXNBdXRvUXVlcnk/OiBib29sZWFuLC8vdHJ1ZeaXtuWAmem7mOiupOinpuWPkeafpeivolxyXG4gIGRlZmF1bHRQYXJhbXM/OiBqc29uLFxyXG4gIGlzSGlkZVF1ZXJ5PzogYm9vbGVhblxyXG4gIC8vIGlzUmFkaW8/OmJvb2xlYW4sXHJcbiAgLy8gaXNGb3JiaWQ/OmJvb2xlYW4sLy90cnVl5pe25Y+q5YWB6K6454K55Ye75aSa6YCJ5qGG6YCJ5oupXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZSB7XHJcbiAgbmFtZTogc3RyaW5nLC8v6KGo5aS05ZCN56ewXHJcbiAga2V5Pzogc3RyaW5nLC8v5a6e6ZmF5pWw5o2u5a2X5q61XHJcbiAgZGVmYXVsdFZhbD86IGFueSxcclxuICBzb3J0S2V5Pzogc3RyaW5nLC8v5piv5ZCm5o6S5bqPXHJcbiAgc29ydGFibGU/OiBib29sZWFuLFxyXG4gIHR5cGU6ICd0ZXh0Y29sb3InIHwgJ2ZpeGVkVGV4dCcgfCAndGV4dCcgfCAnbGluaycgfCAnYWN0aW9uJyB8ICdpbWFnZScgfCAnZGF0ZScgfCAnZGF0ZVRpbWUnIHwgJ3NEYXRlVGltZScgfCAnZGljdCcsLy/nsbvlnovvvJog5paH5a2X44CB6ZO+5o6l44CB5pON5L2cXHJcbiAgZGljdENvZGU/OiBzdHJpbmcsXHJcbiAgaXNTaG93PzogYm9vbGVhbixcclxuICB3aWR0aD86IHN0cmluZywvLzE1MHB4XHJcbiAgYWN0aW9ucz86IFRhYmxlQWN0aW9uW10sXHJcbiAgaXNSb3dTcGFuPzogYm9vbGVhbixcclxuICBpc1JpZ2h0PzogYm9vbGVhblxyXG4gIGlzTGVmdD86IGJvb2xlYW4sXHJcbiAgY29sb3I/OiBjb2xvck9wZXJhdG9yLC8v6aKc6ImyXHJcbiAgY29sb3JTaG93Pzogc3RyaW5nLFxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQXRyUXVlcnlIZWFkZXIge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICB0eXBlOiAnY2FzY2FkZXInIHwgJ3RleHQnIHwgJ251bWJlcicgfCAnY2hlY2tib3gnIHwgJ3NlbGVjdCcgfCAnZGF0ZXBpY2tlcicgfCAnc2VsZWN0Q3VzJyB8ICdkYXRlUmFuZ2UnIHwgJ3NkYXRlJyB8ICd0cmVlU2VsZWN0JyxcclxuICBrZXk6IHN0cmluZyxcclxuICBpc1Nob3c/OiBib29sZWFuLFxyXG4gIGNvZGU/OiBzdHJpbmcsXHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmcsXHJcbiAgc3Bhbj86IG51bWJlcixcclxuICBkaWN0Q29kZT86IHN0cmluZywvL+Wtl+WFuOe8lueggVxyXG4gIGRpY3RMaXN0PzogQ3VzRGljdFtdLFxyXG4gIGRlZmF1bHRWYWw/OiBhbnkgLy8g6buY6K6k5YC8XHJcbiAgbWF4VGFnQ291bnQ/OiBudW1iZXIsXHJcbiAgbHNwYW4/OiBudW1iZXIsXHJcbiAgY3NwYW4/OiBudW1iZXIsXHJcbiAgZGlzYWJsZUNsZWFyPzogYm9vbGVhbixcclxuICB0cmVlTGlzdD86IHsga2V5OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcgfVtdXHJcbiAgLyoqXHJcbiAgICog5qC85byPXHJcbiAgICogY29udmVydDona2V5fGlkLHRpdGxlfHJlYWxOYW1lJyh0cmVlU2VsZWN0KVxyXG4gICAqICAgIHZhbHVlfGlkLGxhYmVsfG5hbWUoc2VsZWN0Q3VzKVxyXG4gICAqL1xyXG4gIHNlbGVjdFVybD86IHsgdXJsOiBzdHJpbmcsIGNvbnZlcnQ6IHN0cmluZywgaXNNdWx0aXBsZT86IGJvb2xlYW4gfSwvL2NvbnZlcnQ6IG5ld0tleXxvbGRLZXksbmV3S2V5fG9sZEtleSjmjqXlj6Pov5Tlm57nmoTlgLwpXHJcbiAgaWNvbj86IHsgaXNTaG93OiBib29sZWFuLCBjb2RlOiBzdHJpbmcsIGljb246IGFueSB9LFxyXG4gIGRhdGVNb2RlPzogJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJyxcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRhYmxlQWN0aW9uIHtcclxuICBuYW1lOiBzdHJpbmcsXHJcbiAgY29kZTogc3RyaW5nLFxyXG4gIHVybD86IHN0cmluZyxcclxuICBnVHlwZT86ICdub3JtYWwnIHwgJ3VwbG9hZCcsXHJcbiAgZGF0YT86IGFueSxcclxuICBkYXRhcz86IGFueVtdLFxyXG4gIGljb24/OiBzdHJpbmcsXHJcbiAgbnVtYmVyT2ZDaGVja2VkPzogbnVtYmVyLFxyXG4gIHR5cGU/OiAncm93cycgfCAncm93JyxcclxuICBvcGVyYXRvcj86IHN0cmluZywvL+aYvuekuuaTjeS9nOesplxyXG4gIGJ1dHRvblR5cGU/OiAncHJpbWFyeScgfCAnZGFzaGVkJyB8ICdkYW5nZXInIHwgJ2RlZmF1bHQnIHwgJ2xpbmsnLFxyXG4gIHZhbHVlPzogYW55LFxyXG4gIHdpdGhvdXRSb2xlPzogYm9vbGVhbi8v5LiN6ZyA6KaB5p2D6ZmQ5o6n5Yi2XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBGb3JtQWN0aW9uIHtcclxuICBuYW1lOiBzdHJpbmcsXHJcbiAgY29kZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWN0IHtcclxuICBpZDogc3RyaW5nLFxyXG4gIHR5cGVOYW1lOiBzdHJpbmcsXHJcblxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRGljdEdyb3VwIHtcclxuICBncm91cENvZGU6IHN0cmluZyxcclxuICBkaWN0czogRGljdFtdXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdXNEaWN0IHtcclxuICBsYWJlbDogc3RyaW5nLFxyXG4gIHZhbHVlOiBzdHJpbmcsXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJbWFnZU9wdHMge1xyXG4gIGxpbWl0PzogbnVtYmVyLFxyXG4gIHVwbG9hZERpcjogc3RyaW5nLFxyXG4gIHJlbW92ZUFjdGlvbj86IHN0cmluZyxcclxuICBpbWFnZUxpc3Q/OiBhbnlbXSxcclxuICBrZXk/OiBzdHJpbmcsXHJcbiAgbGFiZT86IHN0cmluZyxcclxuICBmaWxlTmFtZT86IHN0cmluZyxcclxuICB1cGxvYWRUeXBlPzogJ2RyYWcnIHwgJycsXHJcbiAgbnpGaWxlVHlwZT86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgZXF1aXBUZXN0RGF0YSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgaXRlbU5hbWU6IHN0cmluZ1xyXG4gIHpob3UxOiBudW1iZXJcclxuICB6aG91MjogbnVtYmVyXHJcbiAgemhvdTM6IG51bWJlclxyXG4gIHpob3U0OiBudW1iZXJcclxuICB6aG91NTogbnVtYmVyXHJcbiAgemhvdTY6IG51bWJlclxyXG4gIGlzV3JvbmcxPzogYm9vbGVhblxyXG4gIGlzV3JvbmcyPzogYm9vbGVhblxyXG4gIGlzV3JvbmczPzogYm9vbGVhblxyXG4gIGlzV3Jvbmc0PzogYm9vbGVhblxyXG4gIGlzV3Jvbmc1PzogYm9vbGVhblxyXG4gIGlzV3Jvbmc2PzogYm9vbGVhblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNlbGVjdEFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGNvZGU6IFwibmdNb2RlbENoYW5nZVwiIHwgJ256T3BlbkNoYW5nZScsXHJcbiAgZGF0YT86IGFueSxcclxuICBrZXk/OiBzdHJpbmcsXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBNZW51SWNvbiB7XHJcbiAgLyoqIFR5cGUgZm9yIGljb24gKi9cclxuICB0eXBlOiAnY2xhc3MnIHwgJ2ljb24nIHwgJ2ljb25mb250JyB8ICdpbWcnO1xyXG4gIC8qKiBWYWx1ZSBmb3IgdGhlIGljb24sIGNhbiBiZSBzZXQgQ2xhc3MgTmFtZSwgbnotaWNvbiBvZiBgbnpUeXBlYCwgaW1hZ2UgKi9cclxuICB2YWx1ZT86IHN0cmluZztcclxuICAvKiogVHlwZSBvZiB0aGUgYW50IGRlc2lnbiBpY29uLCBkZWZhdWx0OiBgb3V0bGluZWAgKi9cclxuICB0aGVtZT86ICdvdXRsaW5lJyB8ICd0d290b25lJyB8ICdmaWxsJztcclxuICAvKiogUm90YXRlIGljb24gd2l0aCBhbmltYXRpb24sIGRlZmF1bHQ6IGBmYWxzZWAgKi9cclxuICBzcGluPzogYm9vbGVhbjtcclxuICAvKiogT25seSBzdXBwb3J0IHRoZSB0d28tdG9uZSBpY29uLiBTcGVjaWZpYyB0aGUgcHJpbWFyeSBjb2xvciAqL1xyXG4gIHR3b1RvbmVDb2xvcj86IHN0cmluZztcclxuICAvKiogVHlwZSBvZiB0aGUgaWNvbiBmcm9tIGljb25mb250ICovXHJcbiAgaWNvbmZvbnQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVudSB7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICBsaW5rPzogc3RyaW5nO1xyXG4gIHJlYWxMaW5rPzpzdHJpbmc7XHJcbiAgaXNTZWxlY3RlZD86IEJvb2xlYW47XHJcbiAgaXNPcGVuPzogQm9vbGVhbjtcclxuICB0YXJnZXQ/OiAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XHJcbiAgLyoqIEljb24gZm9yIHRoZSBtZW51IGl0ZW0sIG9ubHkgdmFsaWQgZm9yIHRoZSBmaXJzdCBsZXZlbCBtZW51ICovXHJcbiAgaWNvbj86IHN0cmluZyB8IE1lbnVJY29uIHwgbnVsbDtcclxuICAvKiogQmFkZ2V0IGZvciB0aGUgbWVudSBpdGVtIHdoZW4gYGdyb3VwYCBpcyBgdHJ1ZWAgKi9cclxuICBvcGVyYXRpb24/OiBzdHJpbmc7XHJcbiAgLyoqIFdoZXRoZXIgc2hvcnRjdXQgbWVudSBpdGVtICovXHJcbiAgc2VxPzogbnVtYmVyO1xyXG4gIGxldmVsPzogbnVtYmVyO1xyXG4gIC8qKiBXaGV0ZXIgc2hvcnRjdXQgbWVudSByb290IG5vZGUgKi9cclxuICBsaW5rVHlwZT86IHN0cmluZztcclxuICAvKiogV2hldGhlciB0byBhbGxvdyByZXVzZSwgbmVlZCB0byBjb29wZXJhdGUgd2l0aCB0aGUgYHJldXNlLXRhYmAgY29tcG9uZW50ICovXHJcbiAgY2hpbGRyZW4/OiBNZW51W107XHJcbiAgaXNWaXNpYmxlPzonMCcgfCcxJ1xyXG59XHJcbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvYmFzZS9hdHItY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLElBQUksRUFBRSxHQUFHO0lBQ1Q7O09BRUc7SUFDSCxPQUFPLEVBQUMsRUFBRTtJQUNWLFVBQVUsRUFBQyxxQkFBcUI7SUFDaEMsV0FBVyxFQUFDLEtBQUs7SUFDakIsUUFBUSxFQUFDLEVBQUU7SUFDWDs7T0FFRztJQUNILFlBQVksRUFBQyxVQUFVO0lBQ3ZCLFVBQVUsRUFBQyxFQUFFO0lBQ2IsbUJBQW1CO0lBQ25CLGVBQWUsRUFBQyxLQUFLO0lBQ3JCLGVBQWUsRUFBQyxDQUFDLFFBQXFCLEVBQUMsRUFBRTtRQUN2QyxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUNGLE1BQU0sT0FBTyxXQUFXOztBQUNmLG1CQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7QUFDNUksaUJBQUssR0FBRyxxOUhBQXE5SCxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQW1Dai9ILE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIseUNBQUcsQ0FBQTtJQUNILDJDQUFJLENBQUE7SUFDSix5Q0FBRyxDQUFBO0lBQ0gsNkNBQUssQ0FBQTtJQUNMLHFEQUFTLENBQUE7QUFDWCxDQUFDLEVBTlcsVUFBVSxLQUFWLFVBQVUsUUFNckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBIZWFkZXJzfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBhdHJfc3RhdGljX2RhdGFzID0ge1xyXG4gIHRlc3Q6ICcxJyxcclxuICAvKipcclxuICAgKiBvc3PlnLDlnYDliY3nvIBcclxuICAgKi9cclxuICBPU1NfVVJMOicnLFxyXG4gIE9TU19QT0xJQ1k6J3RoaXJkL29zcy9nZXRQb2xpY3knLFxyXG4gIFNUT1JBR0VfUFJFOidEUV8nLFxyXG4gIG1lbnVfdXJsOicnLFxyXG4gIC8qKlxyXG4gICAqIOeZu+W9lei3r+eUsVxyXG4gICAqL1xyXG4gIGxvZ2luX3JvdXRlcjonL3AvbG9naW4nLFxyXG4gIFNFUlZFUl9VUkw6JycsXHJcbiAgLy9odHRwIGhlYWTmmK/lkKbpu5jorqRoZWFkXHJcbiAgbmVlZE5vcm1hbEhlYWRlOmZhbHNlLFxyXG4gIGdldE5vcm1hbEhlYWRlcjooX2hlYWRlcnM6IEh0dHBIZWFkZXJzKT0+e1xyXG4gICAgcmV0dXJuIF9oZWFkZXJzXHJcbiAgfVxyXG59O1xyXG5leHBvcnQgY2xhc3MgY29tbW9uRGF0YXMge1xyXG4gIHN0YXRpYyBsZXR0ZXJzID0gW1wiQVwiLCBcIkJcIiwgXCJDXCIsIFwiRFwiLCBcIkVcIiwgXCJGXCIsIFwiR1wiLCBcIkhcIiwgXCJJXCIsIFwiSlwiLCBcIktcIiwgXCJMXCIsIFwiTVwiLCBcIk5cIiwgXCJPXCIsIFwiUFwiLCBcIlFcIiwgXCJSXCIsIFwiU1wiLCBcIlRcIiwgXCJVXCIsIFwiVlwiLCBcIldcIiwgXCJYXCIsIFwiWVwiLCBcIlpcIl1cclxuICBzdGF0aWMgaWNvbnMgPSAnc3RlcC1iYWNrd2FyZCxzdGVwLWZvcndhcmQsZmFzdC1iYWNrd2FyZCxmYXN0LWZvcndhcmQsc2hyaW5rLGFycm93cy1hbHQsZG93bix1cCxsZWZ0LHJpZ2h0LGNhcmV0LXVwLGNhcmV0LWRvd24sY2FyZXQtbGVmdCxjYXJldC1yaWdodCx1cC1jaXJjbGUsZG93bi1jaXJjbGUsbGVmdC1jaXJjbGUscmlnaHQtY2lyY2xlLGRvdWJsZS1yaWdodCxkb3VibGUtbGVmdCx2ZXJ0aWNhbC1sZWZ0LHZlcnRpY2FsLXJpZ2h0LHZlcnRpY2FsLWFsaWduLXRvcCx2ZXJ0aWNhbC1hbGlnbi1taWRkbGUsdmVydGljYWwtYWxpZ24tYm90dG9tLGZvcndhcmQsYmFja3dhcmQscm9sbGJhY2ssZW50ZXIscmV0d2VldCxzd2FwLHN3YXAtbGVmdCxzd2FwLXJpZ2h0LGFycm93LXVwLGFycm93LWRvd24sYXJyb3ctbGVmdCxhcnJvdy1yaWdodCxwbGF5LWNpcmNsZSx1cC1zcXVhcmUsZG93bi1zcXVhcmUsbGVmdC1zcXVhcmUscmlnaHQtc3F1YXJlLGxvZ2luLGxvZ291dCxtZW51LWZvbGQsbWVudS11bmZvbGQsYm9yZGVyLWJvdHRvbSxib3JkZXItaG9yaXpvbnRhbCxib3JkZXItaW5uZXIsYm9yZGVyLW91dGVyLGJvcmRlci1sZWZ0LGJvcmRlci1yaWdodCxib3JkZXItdG9wLGJvcmRlci12ZXJ0aWNsZSxwaWMtY2VudGVyLHBpYy1sZWZ0LHBpYy1yaWdodCxyYWRpdXMtYm90dG9tbGVmdCxyYWRpdXMtYm90dG9tcmlnaHQscmFkaXVzLXVwbGVmdCxyYWRpdXMtdXByaWdodCxmdWxsc2NyZWVuLGZ1bGxzY3JlZW4tZXhpdCxxdWVzdGlvbixxdWVzdGlvbi1jaXJjbGUscGx1cyxwbHVzLWNpcmNsZSxwYXVzZSxwYXVzZS1jaXJjbGUsbWludXMsbWludXMtY2lyY2xlLHBsdXMtc3F1YXJlLG1pbnVzLXNxdWFyZSxpbmZvLGluZm8tY2lyY2xlLGV4Y2xhbWF0aW9uLGV4Y2xhbWF0aW9uLWNpcmNsZSxjbG9zZSxjbG9zZS1jaXJjbGUsY2xvc2Utc3F1YXJlLGNoZWNrLGNoZWNrLWNpcmNsZSxjaGVjay1zcXVhcmUsY2xvY2stY2lyY2xlLHdhcm5pbmcsaXNzdWVzLWNsb3NlLHN0b3AsZWRpdCxmb3JtLGNvcHksc2Npc3NvcixkZWxldGUsc25pcHBldHMsZGlmZixoaWdobGlnaHQsYWxpZ24tY2VudGVyLGFsaWduLWxlZnQsYWxpZ24tcmlnaHQsYmctY29sb3JzLGJvbGQsaXRhbGljLHVuZGVybGluZSxzdHJpa2V0aHJvdWdoLHJlZG8sdW5kbyx6b29tLWluLHpvb20tb3V0LGZvbnQtY29sb3JzLGZvbnQtc2l6ZSxsaW5lLWhlaWdodCxkYXNoLHNtYWxsLWRhc2gsc29ydC1hc2NlbmRpbmcsc29ydC1kZXNjZW5kaW5nLGRyYWcsb3JkZXJlZC1saXN0LHVub3JkZXJlZC1saXN0LHJhZGl1cy1zZXR0aW5nLGNvbHVtbi13aWR0aCxjb2x1bW4taGVpZ2h0LGFyZWEtY2hhcnQscGllLWNoYXJ0LGJhci1jaGFydCxkb3QtY2hhcnQsbGluZS1jaGFydCxyYWRhci1jaGFydCxoZWF0LW1hcCxmYWxsLHJpc2Usc3RvY2ssYm94LXBsb3QsZnVuZCxzbGlkZXJzLGFuZHJvaWQsYXBwbGUsd2luZG93cyxpZSxjaHJvbWUsZ2l0aHViLGFsaXdhbmd3YW5nLGRpbmdkaW5nLHdlaWJvLXNxdWFyZSx3ZWliby1jaXJjbGUsdGFvYmFvLWNpcmNsZSxodG1sNSx3ZWlibyx0d2l0dGVyLHdlY2hhdCx5b3V0dWJlLGFsaXBheS1jaXJjbGUsdGFvYmFvLHNreXBlLHFxLG1lZGl1bS13b3JrbWFyayxnaXRsYWIsbWVkaXVtLGxpbmtlZGluLGdvb2dsZS1wbHVzLGRyb3Bib3gsZmFjZWJvb2ssY29kZXBlbixjb2RlLXNhbmRib3gsYW1hem9uLGdvb2dsZSxjb2RlcGVuLWNpcmNsZSxhbGlwYXksYW50LWRlc2lnbixhbnQtY2xvdWQsYWxpeXVuLHpoaWh1LHNsYWNrLHNsYWNrLXNxdWFyZSxiZWhhbmNlLGJlaGFuY2Utc3F1YXJlLGRyaWJiYmxlLGRyaWJiYmxlLXNxdWFyZSxpbnN0YWdyYW0seXVxdWUsYWxpYmFiYSx5YWhvbyxyZWRkaXQsc2tldGNoLGFsZXJ0LGFpbSxhY2NvdW50LWJvb2ssYXBhcnRtZW50LGFwaSxhcHBzdG9yZSxhdWRpby1tdXRlZCxhdWRpdCxiYW5rLGJhcmNvZGUsYmFycyxibG9jayxib29rLGJlbGwsYXBwc3RvcmUtYWRkLGF1ZGlvLGJvcmRlcixib3JkZXJsZXNzLXRhYmxlLGJ1ZyxicmFuY2hlcyxjYW1lcmEsY2FsY3VsYXRvcixjYWxlbmRhcixidWlsZCxjYXJyeS1vdXQsYnVsYixjYXIsY2xlYXIsY2ksY2xvdWQtZG93bmxvYWQsY2xvdWQsY2xvdWQtc3luYyxjbG91ZC1zZXJ2ZXIsY2xvdWQtdXBsb2FkLGNvZGUsY29mZmVlLGNvbXByZXNzLGNvbXBhc3MsY29tbWVudCxjaS1jaXJjbGUsY29udGFpbmVyLGNvbnRyb2wsY29weXJpZ2h0LGNyZWRpdC1jYXJkLGNsdXN0ZXIsY3VzdG9tZXItc2VydmljZSxjb250YWN0cyxjb25zb2xlLXNxbCxkYXNoYm9hcmQsZGF0YWJhc2UsY29weXJpZ2h0LWNpcmNsZSxkZWxldGUtY29sdW1uLGRlc2t0b3AsZGVwbG95bWVudC11bml0LGRlbGl2ZXJlZC1wcm9jZWR1cmUsZGlzY29ubmVjdCxkaW5ndGFsayxkb2xsYXItY2lyY2xlLGRpc2xpa2UsZGVsZXRlLXJvdyxkb2xsYXIsY3Jvd24sZG93bmxvYWQsZWxsaXBzaXMsZW52aXJvbm1lbnQsZXVyby1jaXJjbGUsZXhjZXB0aW9uLGV4cGFuZC1hbHQsZXVybyxleHBlcmltZW50LGV4cG9ydCxleHBhbmQsZXllLWludmlzaWJsZSxleWUsZmlsZS1hZGQsZmllbGQtc3RyaW5nLGZpbGUtZXhjbGFtYXRpb24sZmlsZS1kb25lLGZpZWxkLXRpbWUsZmlsZS1leGNlbCxmaWVsZC1iaW5hcnksZmlsZS1naWYsZmlsZS1pbWFnZSxmaWxlLGZpbGUtbWFya2Rvd24sZmlsZS1wcHQsZmlsZS1wZGYsZmllbGQtbnVtYmVyLGZpbGUtc2VhcmNoLGZpbGUtc3luYyxmaWxlLWpwZyxmaWxlLXRleHQsZmlsdGVyLGZpbGUtemlwLGZsYWcsZm9sZGVyLWFkZCxmaWxlLXVua25vd24sZm9sZGVyLW9wZW4sZmlyZSxmaWxlLXByb3RlY3QsZm9sZGVyLXZpZXcsZm9sZGVyLGZvcmssZm9ybWF0LXBhaW50ZXIsZnJvd24sZnVuZC1wcm9qZWN0aW9uLXNjcmVlbixnaWZ0LGdhdGV3YXksZnVuZC12aWV3LGdpZixmdW5uZWwtcGxvdCxnb2xkLGdsb2JhbCxncm91cCxoZGQsZnVuY3Rpb24saGlzdG9yeSxmaWxlLXdvcmQsaG9tZSxpZGNhcmQsaG91cmdsYXNzLGhlYXJ0LGluc2VydC1yb3ctYmVsb3csaW1wb3J0LGluc2VydC1yb3ctbGVmdCxpbnNlcnQtcm93LWFib3ZlLGluc2VydC1yb3ctcmlnaHQsa2V5LGluYm94LGluc3VyYW5jZSxsYXB0b3AsbGlrZSxsaW5lLGxpbmssbG9hZGluZy0zLXF1YXJ0ZXJzLGxvYWRpbmcsbG9jayxtYW4sbWFpbCxtYWMtY29tbWFuZCxtZWRpY2luZS1ib3gsbGF5b3V0LG1laCxpbnRlcmFjdGlvbixtZXNzYWdlLG1lbnUsbWVyZ2UtY2VsbHMsbW9iaWxlLG1vbmV5LWNvbGxlY3Qsbm9kZS1pbmRleCxtb25pdG9yLG5vZGUtZXhwYW5kLG1vcmUsbnVtYmVyLG5vdGlmaWNhdGlvbixvbmUtdG8tb25lLHBlcmNlbnRhZ2UscGhvbmUscGFwZXItY2xpcCxwYXJ0aXRpb24scGljdHVyZSxub2RlLWNvbGxhcHNlLHBsYXktc3F1YXJlLHBheS1jaXJjbGUscG91bmQscHJvZmlsZSxwcm9qZWN0LHByb3BlcnR5LXNhZmV0eSxwb3dlcm9mZixwdXNocGluLHFyY29kZSxwcmludGVyLHBvdW5kLWNpcmNsZSxwdWxsLXJlcXVlc3QscmVzdCxyZWFkLHJlbG9hZCxyZWNvbmNpbGlhdGlvbixyb2JvdCxyb2NrZXQscm90YXRlLXJpZ2h0LHNhZmV0eS1jZXJ0aWZpY2F0ZSxyZWQtZW52ZWxvcGUscm90YXRlLWxlZnQsc2F2ZSxzYWZldHksc2VhcmNoLHNlY3VyaXR5LXNjYW4sc2NhbixzZW5kLHNldHRpbmcsc2VsZWN0LHNoYWtlLHNob3BwaW5nLWNhcnQsc2lzdGVybm9kZSxzaG9wLHNob3BwaW5nLHNoYXJlLWFsdCxzY2hlZHVsZSxza2luLHNtaWxlLHNvbHV0aW9uLHNvdW5kLHNwbGl0LWNlbGxzLHN0YXIsc3Vibm9kZSx0YWdzLHRhYmxldCx0YWcsdGFibGUsc3dpdGNoZXIsc3luYyx0ZWFtLHRvb2wsdHJhZGVtYXJrLWNpcmNsZSx0aHVuZGVyYm9sdCx0by10b3AsdHJhbnNsYXRpb24sdHJhZGVtYXJrLHRyb3BoeSx1bmdyb3VwLHVubG9jayx1cGxvYWQsdHJhbnNhY3Rpb24sdXNlci1kZWxldGUsdXNiLHVzZXItYWRkLHVzZXJncm91cC1kZWxldGUsdmlkZW8tY2FtZXJhLWFkZCx2ZXJpZmllZCx1c2VyZ3JvdXAtYWRkLHVzZXIsdXNlci1zd2l0Y2gsdmlkZW8tY2FtZXJhLHdpZmksd2FsbGV0LHdoYXRzLWFwcCx3b21hbixhcHBzdG9yZScuc3BsaXQoJywnKVxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UganNvbiBleHRlbmRzIE9iamVjdCB7XHJcbiAgW2tleTogc3RyaW5nXTogYW55XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTZXJ2ZXJQYWdpbmF0aW9uU3RhbmRhcmQge1xyXG4gIGN1cnJlbnRQYWdlOiBudW1iZXI7XHJcbiAgc2hvd0NvdW50OiBudW1iZXI7XHJcbiAgdG90YWxSZXN1bHQ6IG51bWJlcjtcclxuICB0b3RhbFBhZ2U/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBIdHRwUmVzcG9uc2VEYXRhU3RhbmRhcmQge1xyXG4gIHN0YXRlOiBudW1iZXI7IC8vIOS4ujHmiY3mmK/miJDlip9cclxuICBkYXRhOiBqc29uIHwgW3t9XSB8IG9iamVjdCB8IHN0cmluZyB8IGFueTsgLy/msqHmnInlgLwgZGF0YTogJydcclxuICBtZXNzOiBzdHJpbmc7IC8v6L+U5Zue55qE5raI5oGvXHJcbiAgcGFnZT86IFNlcnZlclBhZ2luYXRpb25TdGFuZGFyZDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBIdHRwUnNlcG9uc2VUcmFuc2Zvcm1DZWxsIHtcclxuICBba2V5OiBzdHJpbmddOiBqc29uXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBIdHRwT3B0aW9ucyB7XHJcbiAgaGVhZGVycz86IHt9LFxyXG4gIGlzSnNvbkVuY29kZT86IGJvb2xlYW5cclxuICBpc1VybEVuY29kZT86IGJvb2xlYW5cclxuICBpc0F1dG9TaG93TWVzc2FnZT86IGJvb2xlYW5cclxuICBpc1dpdGhDcmVkZW50aWFscz86IGJvb2xlYW5cclxuICBpc0NvbW1vbkh0dHBIZWFkZXI/OiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFVzZXJBY3Rpb24ge1xyXG4gIEFERCxcclxuICBFRElULFxyXG4gIERFTCxcclxuICBRVUVSWSxcclxuICBTVVBQRVJBRERcclxufVxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRUNoYXJ0c09wdGlvbiB7XHJcbiAgdGl0bGU/OiBhbnksXHJcbiAgbGVnZW5kPzogYW55LFxyXG4gIGdyaWQ/OiBhbnksXHJcbiAgYnJ1c2g/OiBhbnksXHJcbiAgdG9vbGJveD86IGFueSxcclxuICB0b29sdGlwPzogYW55LFxyXG4gIGRhdGFzZXQ/OiBhbnksXHJcbiAgeEF4aXM/OiB7XHJcbiAgICB0eXBlPzogJ2NhdGVnb3J5JyxcclxuICAgIGRhdGE/OiBzdHJpbmdbXSxcclxuICAgIGJvdW5kYXJ5R2FwPzpib29sZWFuLFxyXG4gICAgc2hvdz86IGJvb2xlYW4sXHJcbiAgfSxcclxuICB5QXhpcz86IGFueSwvL3sgICAgc2hvdzpmYWxzZSwgICAgdHlwZTogJ3ZhbHVlJywgICAgbWluSW50ZXJ2YWw6IDEsfVtdXHJcbiAgc2VyaWVzPzoge1xyXG4gICAgbmFtZT86IHN0cmluZyxcclxuICAgIGRhdGE/OiBhbnlbXSxcclxuICAgIGl0ZW1TdHlsZT86IGFueSxcclxuICAgIHN0YWNrPzogYW55LFxyXG4gICAgZW1waGFzaXM/OiBhbnksXHJcbiAgICBsYWJlbD86IGFueSxcclxuICAgIHJhZGl1cz86IGFueVtdLFxyXG4gICAgc21vb3RoPzpib29sZWFuLFxyXG4gICAgc2VyaWVzTGF5b3V0Qnk/OnN0cmluZyxcclxuICAgIHR5cGU/OiAnYmFyJyB8ICdwaWUnIHwgJ2xpbmUnLFxyXG4gICAgYmFja2dyb3VuZFN0eWxlPzogYW55XHJcbiAgfVtdXHJcbn1cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0ckZvcm1PcHQge1xyXG4gIHR5cGU6ICdhZGQnIHwgJ2VkaXQnIHwgJ3ZpZXcnLFxyXG4gIGxheW91dD86IFwiZnVsbFwiIHwgJzFsMmMnIHwgJzFsMWMnLFxyXG4gIGl0ZW1zOiBBdHJGb3JtRGV0YWlsW10sLy/ooajljZXpobnnm65cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0ckZvcm1EZXRhaWwge1xyXG4gIGxhYmVsOiBzdHJpbmcsXHJcbiAgdHlwZTogJ2Nhc2NhZGVyJyB8ICdyYWRpbycgfCAndGV4dCcgfCAnaW1hZ2UnIHwgJ3NlbGVjdCcgfCAnZGF0ZScgfCAnbnVtYmVyJyB8ICd0ZWxwaG9uZScgfCAncGFzc3dvcmQnIHwgJ2NoZWNrYm94J1xyXG4gICAgfCAnZWRpdG9yJyB8ICd0ZXh0YXJlYScgfCAnZGF0ZVRpbWUnIHwgJ3RpdGxlJyB8ICdkYXRlUmFuZ2UnIHwgJ3NlbGVjdGMnIHwgJ3NlbGVjdEljb24nIHwgJ3RyZWVTZWxlY3QnIHwgJ3N3aXRjaCcsXHJcbiAga2V5OiBzdHJpbmcsXHJcbiAgaXNIaWRkZW4/OiBib29sZWFuLFxyXG4gIGRlZmF1bHRWYWx1ZT86IGFueSxcclxuICB2YWx1ZT86IGFueSwvL+e8lui+keS4i+WOn+Wni+aVsOWAvFxyXG4gIGRpY3RDb2RlPzogc3RyaW5nLC8vc2VsZWN0IOaooeW8j+S4i+mFjee9rlxyXG4gIHNwYW4/OiBudW1iZXIsLy/mmL7npLrlrr3luqZcclxuICB2YWxpZGF0b3JzPzogQXRyRm9ybVZhbGlkW10sLy/pqozor4HmnaHku7ZcclxuICBpc1JlcXVpcmVkPzogYm9vbGVhbiB8IHN0cmluZywvL+makOaAp+adoeS7tiDml6DpnIDloavlhpksIHN0cmluZ+exu+Wei+agvOW8j+WQjG9wZXJhdG9yXHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmcsXHJcbiAgaW1hZ2VPcHRzPzogSW1hZ2VPcHRzLFxyXG4gIGVkaXRDb250ZW50Pzogc3RyaW5nLFxyXG4gIGhlaWdodD86IG51bWJlciwvL2VkaXRvcuacieaViFxyXG4gIGRpc2FibGU/OiBib29sZWFuLFxyXG4gIGxzcGFuPzogbnVtYmVyLFxyXG4gIGNzcGFuPzogbnVtYmVyLFxyXG4gIHJvd3M/OiBudW1iZXIsLy90ZXh0YXJlYSDmmL7npLrooYzmlbBcclxuICBvcGVyYXRvcj86IHN0cmluZywvL+aYvuekuuaTjeS9nOespiDmoLzlvI8g5aaCOnN0YXR1c3xlcXwwXHJcbiAgYnV0dG9uPzogZm9ybUJ1dHRvbixcclxuICByZWFkb25seT86IGJvb2xlYW4sXHJcbiAgZGF0ZUZvcm1hdD86IHN0cmluZyxcclxuICBkaWN0TGlzdD86IEN1c0RpY3RbXSxcclxuICBzZWxlY3RVcmw/OiB7IHVybDogc3RyaW5nLCBjb252ZXJ0Pzogc3RyaW5nLCB0eXBlPzogJ2dldCcgfCAncG9zdCcsIGhvc3Q/OiAnb3NzJyB8ICdzZXJ2ZScsIGlzTXVsdGlwbGU/OiBib29sZWFuIH0sXHJcbiAgdHJlZUxpc3Q/OiB7IGtleTogc3RyaW5nLCB0aXRsZTogc3RyaW5nIH1bXSxcclxuICBlbmRzPzogc3RyaW5nLFxyXG4gIHByb3Bvc2FsPzogc3RyaW5nLFxyXG4gIHRlbXA/OiBhbnksXHJcbiAgbm90TnVsbD86IGJvb2xlYW5cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJGb3JtVmFsaWQge1xyXG4gIHR5cGU6ICdyZXF1aXJlZCcgfCAnZW1haWwnIHwgJ3RlbHBob25lJyB8ICdtYXhsZW5ndGgnIHwgJ21pbmxlbmd0aCcgfCAncGF0dGVybicgfCAnb3BlcmF0b3InLFxyXG4gIGVycm9yTGFiZWw6IHN0cmluZyxcclxuICBtYXhsZW5ndGg/OiBudW1iZXIsXHJcbiAgbWlubGVuZ3RoPzogbnVtYmVyLFxyXG4gIHBhdHRlcm5WYWx1ZT86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgZm9ybUJ1dHRvbiB7XHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGlzU2hvdzogYm9vbGVhbixcclxuICBjb2RlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIGNvbG9yT3BlcmF0b3Ige1xyXG4gIGNvbG9yOiBzdHJpbmcsXHJcbiAgb3BlcmF0b3I6IHN0cmluZywvL+inhOWImVxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQXRyUXVleXJPcHQge1xyXG4gIGFjdGlvbnM/OiBUYWJsZUFjdGlvbltdLFxyXG4gIGlzSW5kZXg/OiBib29sZWFuLC8v5piv5ZCm5pi+56S65bqP5Y+3LFxyXG4gIGNvbG9yPzogY29sb3JPcGVyYXRvciwvL+minOiJslxyXG4gIGNoZWNrQm94Pzoge1xyXG4gICAgaXNTaG93Q2hlY2tib3g/OiBib29sZWFuLFxyXG4gICAgaXNSYWRpbz86IGJvb2xlYW4sXHJcbiAgICBpc0ZvcmJpZD86IGJvb2xlYW4sLy90cnVl5pe25Y+q5YWB6K6454K55Ye75aSa6YCJ5qGG6YCJ5oupXHJcbiAgfSxcclxuICAvLyBpc1Nob3dDaGVja2JveD86IGJvb2xlYW4sXHJcbiAgc2hvd051bT86IG51bWJlcixcclxuICB1cmw6IHN0cmluZyxcclxuICBzb3J0Pzogc3RyaW5nLFxyXG4gIGhlYWRlcnM/OiBBdHJRdWVyeUhlYWRlcltdLFxyXG4gIHRhYmxlczogVGFibGVbXSxcclxuICBpc0F1dG9RdWVyeT86IGJvb2xlYW4sLy90cnVl5pe25YCZ6buY6K6k6Kem5Y+R5p+l6K+iXHJcbiAgZGVmYXVsdFBhcmFtcz86IGpzb24sXHJcbiAgaXNIaWRlUXVlcnk/OiBib29sZWFuXHJcbiAgLy8gaXNSYWRpbz86Ym9vbGVhbixcclxuICAvLyBpc0ZvcmJpZD86Ym9vbGVhbiwvL3RydWXml7blj6rlhYHorrjngrnlh7vlpJrpgInmoYbpgInmi6lcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRhYmxlIHtcclxuICBuYW1lOiBzdHJpbmcsLy/ooajlpLTlkI3np7BcclxuICBrZXk/OiBzdHJpbmcsLy/lrp7pmYXmlbDmja7lrZfmrrVcclxuICBkZWZhdWx0VmFsPzogYW55LFxyXG4gIHNvcnRLZXk/OiBzdHJpbmcsLy/mmK/lkKbmjpLluo9cclxuICBzb3J0YWJsZT86IGJvb2xlYW4sXHJcbiAgdHlwZTogJ3RleHRjb2xvcicgfCAnZml4ZWRUZXh0JyB8ICd0ZXh0JyB8ICdsaW5rJyB8ICdhY3Rpb24nIHwgJ2ltYWdlJyB8ICdkYXRlJyB8ICdkYXRlVGltZScgfCAnc0RhdGVUaW1lJyB8ICdkaWN0JywvL+exu+Wei++8miDmloflrZfjgIHpk77mjqXjgIHmk43kvZxcclxuICBkaWN0Q29kZT86IHN0cmluZyxcclxuICBpc1Nob3c/OiBib29sZWFuLFxyXG4gIHdpZHRoPzogc3RyaW5nLC8vMTUwcHhcclxuICBhY3Rpb25zPzogVGFibGVBY3Rpb25bXSxcclxuICBpc1Jvd1NwYW4/OiBib29sZWFuLFxyXG4gIGlzUmlnaHQ/OiBib29sZWFuXHJcbiAgaXNMZWZ0PzogYm9vbGVhbixcclxuICBjb2xvcj86IGNvbG9yT3BlcmF0b3IsLy/popzoibJcclxuICBjb2xvclNob3c/OiBzdHJpbmcsXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJRdWVyeUhlYWRlciB7XHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIHR5cGU6ICdjYXNjYWRlcicgfCAndGV4dCcgfCAnbnVtYmVyJyB8ICdjaGVja2JveCcgfCAnc2VsZWN0JyB8ICdkYXRlcGlja2VyJyB8ICdzZWxlY3RDdXMnIHwgJ2RhdGVSYW5nZScgfCAnc2RhdGUnIHwgJ3RyZWVTZWxlY3QnLFxyXG4gIGtleTogc3RyaW5nLFxyXG4gIGlzU2hvdz86IGJvb2xlYW4sXHJcbiAgY29kZT86IHN0cmluZyxcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZyxcclxuICBzcGFuPzogbnVtYmVyLFxyXG4gIGRpY3RDb2RlPzogc3RyaW5nLC8v5a2X5YW457yW56CBXHJcbiAgZGljdExpc3Q/OiBDdXNEaWN0W10sXHJcbiAgZGVmYXVsdFZhbD86IGFueSAvLyDpu5jorqTlgLxcclxuICBtYXhUYWdDb3VudD86IG51bWJlcixcclxuICBsc3Bhbj86IG51bWJlcixcclxuICBjc3Bhbj86IG51bWJlcixcclxuICBkaXNhYmxlQ2xlYXI/OiBib29sZWFuLFxyXG4gIHRyZWVMaXN0PzogeyBrZXk6IHN0cmluZywgdGl0bGU6IHN0cmluZyB9W11cclxuICAvKipcclxuICAgKiDmoLzlvI9cclxuICAgKiBjb252ZXJ0OidrZXl8aWQsdGl0bGV8cmVhbE5hbWUnKHRyZWVTZWxlY3QpXHJcbiAgICogICAgdmFsdWV8aWQsbGFiZWx8bmFtZShzZWxlY3RDdXMpXHJcbiAgICovXHJcbiAgc2VsZWN0VXJsPzogeyB1cmw6IHN0cmluZywgY29udmVydDogc3RyaW5nLCBpc011bHRpcGxlPzogYm9vbGVhbiB9LC8vY29udmVydDogbmV3S2V5fG9sZEtleSxuZXdLZXl8b2xkS2V5KOaOpeWPo+i/lOWbnueahOWAvClcclxuICBpY29uPzogeyBpc1Nob3c6IGJvb2xlYW4sIGNvZGU6IHN0cmluZywgaWNvbjogYW55IH0sXHJcbiAgZGF0ZU1vZGU/OiAnd2VlaycgfCAnbW9udGgnIHwgJ3llYXInLFxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGFibGVBY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBjb2RlOiBzdHJpbmcsXHJcbiAgdXJsPzogc3RyaW5nLFxyXG4gIGdUeXBlPzogJ25vcm1hbCcgfCAndXBsb2FkJyxcclxuICBkYXRhPzogYW55LFxyXG4gIGRhdGFzPzogYW55W10sXHJcbiAgaWNvbj86IHN0cmluZyxcclxuICBudW1iZXJPZkNoZWNrZWQ/OiBudW1iZXIsXHJcbiAgdHlwZT86ICdyb3dzJyB8ICdyb3cnLFxyXG4gIG9wZXJhdG9yPzogc3RyaW5nLC8v5pi+56S65pON5L2c56ymXHJcbiAgYnV0dG9uVHlwZT86ICdwcmltYXJ5JyB8ICdkYXNoZWQnIHwgJ2RhbmdlcicgfCAnZGVmYXVsdCcgfCAnbGluaycsXHJcbiAgdmFsdWU/OiBhbnksXHJcbiAgd2l0aG91dFJvbGU/OiBib29sZWFuLy/kuI3pnIDopoHmnYPpmZDmjqfliLZcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEZvcm1BY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBjb2RlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIERpY3Qge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdHlwZU5hbWU6IHN0cmluZyxcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWN0R3JvdXAge1xyXG4gIGdyb3VwQ29kZTogc3RyaW5nLFxyXG4gIGRpY3RzOiBEaWN0W11cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN1c0RpY3Qge1xyXG4gIGxhYmVsOiBzdHJpbmcsXHJcbiAgdmFsdWU6IHN0cmluZyxcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEltYWdlT3B0cyB7XHJcbiAgbGltaXQ/OiBudW1iZXIsXHJcbiAgdXBsb2FkRGlyOiBzdHJpbmcsXHJcbiAgcmVtb3ZlQWN0aW9uPzogc3RyaW5nLFxyXG4gIGltYWdlTGlzdD86IGFueVtdLFxyXG4gIGtleT86IHN0cmluZyxcclxuICBsYWJlPzogc3RyaW5nLFxyXG4gIGZpbGVOYW1lPzogc3RyaW5nLFxyXG4gIHVwbG9hZFR5cGU/OiAnZHJhZycgfCAnJyxcclxuICBuekZpbGVUeXBlPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBlcXVpcFRlc3REYXRhIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBpdGVtTmFtZTogc3RyaW5nXHJcbiAgemhvdTE6IG51bWJlclxyXG4gIHpob3UyOiBudW1iZXJcclxuICB6aG91MzogbnVtYmVyXHJcbiAgemhvdTQ6IG51bWJlclxyXG4gIHpob3U1OiBudW1iZXJcclxuICB6aG91NjogbnVtYmVyXHJcbiAgaXNXcm9uZzE/OiBib29sZWFuXHJcbiAgaXNXcm9uZzI/OiBib29sZWFuXHJcbiAgaXNXcm9uZzM/OiBib29sZWFuXHJcbiAgaXNXcm9uZzQ/OiBib29sZWFuXHJcbiAgaXNXcm9uZzU/OiBib29sZWFuXHJcbiAgaXNXcm9uZzY/OiBib29sZWFuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2VsZWN0QWN0aW9uIHtcclxuICBuYW1lOiBzdHJpbmcsXHJcbiAgY29kZTogXCJuZ01vZGVsQ2hhbmdlXCIgfCAnbnpPcGVuQ2hhbmdlJyxcclxuICBkYXRhPzogYW55LFxyXG4gIGtleT86IHN0cmluZyxcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJY29uIHtcclxuICAvKiogVHlwZSBmb3IgaWNvbiAqL1xyXG4gIHR5cGU6ICdjbGFzcycgfCAnaWNvbicgfCAnaWNvbmZvbnQnIHwgJ2ltZyc7XHJcbiAgLyoqIFZhbHVlIGZvciB0aGUgaWNvbiwgY2FuIGJlIHNldCBDbGFzcyBOYW1lLCBuei1pY29uIG9mIGBuelR5cGVgLCBpbWFnZSAqL1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIC8qKiBUeXBlIG9mIHRoZSBhbnQgZGVzaWduIGljb24sIGRlZmF1bHQ6IGBvdXRsaW5lYCAqL1xyXG4gIHRoZW1lPzogJ291dGxpbmUnIHwgJ3R3b3RvbmUnIHwgJ2ZpbGwnO1xyXG4gIC8qKiBSb3RhdGUgaWNvbiB3aXRoIGFuaW1hdGlvbiwgZGVmYXVsdDogYGZhbHNlYCAqL1xyXG4gIHNwaW4/OiBib29sZWFuO1xyXG4gIC8qKiBPbmx5IHN1cHBvcnQgdGhlIHR3by10b25lIGljb24uIFNwZWNpZmljIHRoZSBwcmltYXJ5IGNvbG9yICovXHJcbiAgdHdvVG9uZUNvbG9yPzogc3RyaW5nO1xyXG4gIC8qKiBUeXBlIG9mIHRoZSBpY29uIGZyb20gaWNvbmZvbnQgKi9cclxuICBpY29uZm9udD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNZW51IHtcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIGxpbms/OiBzdHJpbmc7XHJcbiAgcmVhbExpbms/OnN0cmluZztcclxuICBpc1NlbGVjdGVkPzogQm9vbGVhbjtcclxuICBpc09wZW4/OiBCb29sZWFuO1xyXG4gIHRhcmdldD86ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcclxuICAvKiogSWNvbiBmb3IgdGhlIG1lbnUgaXRlbSwgb25seSB2YWxpZCBmb3IgdGhlIGZpcnN0IGxldmVsIG1lbnUgKi9cclxuICBpY29uPzogc3RyaW5nIHwgTWVudUljb24gfCBudWxsO1xyXG4gIC8qKiBCYWRnZXQgZm9yIHRoZSBtZW51IGl0ZW0gd2hlbiBgZ3JvdXBgIGlzIGB0cnVlYCAqL1xyXG4gIG9wZXJhdGlvbj86IHN0cmluZztcclxuICAvKiogV2hldGhlciBzaG9ydGN1dCBtZW51IGl0ZW0gKi9cclxuICBzZXE/OiBudW1iZXI7XHJcbiAgbGV2ZWw/OiBudW1iZXI7XHJcbiAgLyoqIFdoZXRlciBzaG9ydGN1dCBtZW51IHJvb3Qgbm9kZSAqL1xyXG4gIGxpbmtUeXBlPzogc3RyaW5nO1xyXG4gIC8qKiBXaGV0aGVyIHRvIGFsbG93IHJldXNlLCBuZWVkIHRvIGNvb3BlcmF0ZSB3aXRoIHRoZSBgcmV1c2UtdGFiYCBjb21wb25lbnQgKi9cclxuICBjaGlsZHJlbj86IE1lbnVbXTtcclxuICBpc1Zpc2libGU/OicwJyB8JzEnXHJcbn1cclxuIl19
@@ -3,6 +3,7 @@ import { HttpRequest, HttpEventType, HttpHeaders } from "@angular/common/http";
3
3
  import { Observable } from 'rxjs';
4
4
  import { atr_static_datas } from '../base/atr-common';
5
5
  import { LocalStorageUtil } from '../utils/localstorage.util';
6
+ import { ToolsUtil } from "../utils/ToolsUtil";
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/common/http";
8
9
  export class HttpService {
@@ -20,6 +21,7 @@ export class HttpService {
20
21
  if (options && options.hasOwnProperty('isCommonHttpHeader')) {
21
22
  _headers = this.getDefaultHeader(_headers);
22
23
  }
24
+ _headers = this.getNormalHeader(_headers);
23
25
  if (headers) {
24
26
  _headers = headers;
25
27
  }
@@ -50,6 +52,7 @@ export class HttpService {
50
52
  if (options && options.hasOwnProperty('isCommonHttpHeader')) {
51
53
  _headers = this.getDefaultHeader(_headers);
52
54
  }
55
+ _headers = this.getNormalHeader(_headers);
53
56
  let withCredentials = true;
54
57
  if (options && options.hasOwnProperty('isWithCredentials')) {
55
58
  withCredentials = options.isWithCredentials;
@@ -76,6 +79,7 @@ export class HttpService {
76
79
  if (options && options.hasOwnProperty('isCommonHttpHeader')) {
77
80
  _headers = this.getDefaultHeader(_headers);
78
81
  }
82
+ _headers = this.getNormalHeader(_headers);
79
83
  let withCredentials = false;
80
84
  if (options && options.hasOwnProperty('isWithCredentials')) {
81
85
  withCredentials = options.isWithCredentials;
@@ -208,6 +212,51 @@ export class HttpService {
208
212
  });
209
213
  };
210
214
  }
215
+ getNormalHeader(_headers) {
216
+ if (!atr_static_datas.needNormalHeade) {
217
+ return _headers;
218
+ }
219
+ return atr_static_datas.getNormalHeader(_headers);
220
+ }
221
+ postPromAll(urls, options, headers) {
222
+ let param = [];
223
+ urls.forEach(item => {
224
+ param.push(this.postProm(item.url, item.params, options, headers));
225
+ });
226
+ return Promise.all(param);
227
+ }
228
+ postProm(url, params, options, headers) {
229
+ // //console.log("aaa");
230
+ let _headers = new HttpHeaders();
231
+ if (options && options.hasOwnProperty('isCommonHttpHeader')) {
232
+ _headers = this.getDefaultHeader(_headers);
233
+ }
234
+ _headers = this.getNormalHeader(_headers);
235
+ if (headers) {
236
+ _headers = headers;
237
+ }
238
+ let withCredentials = true;
239
+ if (options && options.hasOwnProperty('isWithCredentials')) {
240
+ withCredentials = options.isWithCredentials;
241
+ }
242
+ let postParams = {};
243
+ for (const key of Object.keys(params)) {
244
+ if (params[key] !== null && params[key] !== '' && params[key] !== undefined) {
245
+ if (params.hasOwnProperty(key) && typeof params[key] === 'object') {
246
+ postParams[key] = JSON.stringify(params[key]);
247
+ }
248
+ else {
249
+ postParams[key] = params[key];
250
+ }
251
+ }
252
+ }
253
+ return this.httpClient.post(url, null, {
254
+ headers: _headers,
255
+ params: postParams,
256
+ withCredentials: withCredentials
257
+ })
258
+ .toPromise();
259
+ }
211
260
  getDefaultHeader(_headers) {
212
261
  _headers = _headers.set("x-header-atr", "manage");
213
262
  _headers = _headers.set("token", LocalStorageUtil.getUserToken());
@@ -215,10 +264,24 @@ export class HttpService {
215
264
  // _headers = _headers.set("orgCode",ToolsUtil.getOrgCode());
216
265
  return _headers;
217
266
  }
267
+ downloadXls(url, params) {
268
+ this.post("third/auth/getAuthToken", {}, ToolsUtil.getHttpOptions()).subscribe(result => {
269
+ let thridParma = {
270
+ "reqMethod": "auth",
271
+ "sign": result.data,
272
+ "x-header-atr": "web",
273
+ token: LocalStorageUtil.getUserToken(),
274
+ userId: LocalStorageUtil.getUserId()
275
+ };
276
+ params = Object.assign(params, thridParma);
277
+ ToolsUtil.downloadXls(atr_static_datas.SERVER_URL + url, params);
278
+ }, error => {
279
+ });
280
+ }
218
281
  }
219
282
  HttpService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
220
283
  HttpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpService });
221
284
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpService, decorators: [{
222
285
  type: Injectable
223
286
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS9zZXJ2aWNlcy9odHRwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBYyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFHOUQsTUFBTSxPQUFPLFdBQVc7SUFFdEIsWUFDVSxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBR2hDOzs7O1dBSUc7UUFDSCxTQUFJLEdBQUcsQ0FBQyxHQUFXLEVBQUUsTUFBVyxFQUFFLE9BQXFCLEVBQUUsT0FBcUIsRUFBbUIsRUFBRTtZQUVqRyxPQUFPLElBQUksVUFBVSxDQUFNLE9BQU8sQ0FBQyxFQUFFO2dCQUNuQyxzQkFBc0I7Z0JBQ3RCLElBQUksUUFBUSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsRUFBRTtvQkFDM0QsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDNUM7Z0JBQ0QsSUFBRyxPQUFPLEVBQUM7b0JBQ1QsUUFBUSxHQUFHLE9BQU8sQ0FBQztpQkFDcEI7Z0JBQ0QsSUFBSSxlQUFlLEdBQU8sSUFBSSxDQUFBO2dCQUM5QixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLEVB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QkFDZCxlQUFlLEVBQUUsZUFBZTtvQkFDaEMsWUFBWSxFQUFFLFlBQVksSUFBSSxNQUFNO2lCQUNyQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNyQixPQUFPLENBQUMsV0FBVyxFQUFFLENBQUE7Z0JBQ3ZCLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtvQkFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO29CQUNwQixPQUFPLENBQUMsV0FBVyxFQUFFLENBQUE7Z0JBQ3ZCLENBQUMsQ0FBQyxDQUFBO1lBRUosQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUE7SUExTkUsQ0FBQztJQXdFSixnQkFBZ0IsQ0FBQyxRQUFvQjtRQUNuQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDakUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDL0QsNkRBQTZEO1FBQzdELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7O3lHQWxGVSxXQUFXOzZHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFJlcXVlc3QsIEh0dHBFdmVudFR5cGUsIEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHthdHJfc3RhdGljX2RhdGFzLCBIdHRwT3B0aW9uc30gZnJvbSAnLi4vYmFzZS9hdHItY29tbW9uJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlVXRpbCB9IGZyb20gJy4uL3V0aWxzL2xvY2Fsc3RvcmFnZS51dGlsJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEh0dHBTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnRcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHVybFxyXG4gICAqIEBwYXJhbSBwYXJhbXNcclxuICAgKi9cclxuICBwb3N0ID0gKHVybDogc3RyaW5nLCBwYXJhbXM/OmFueSwgb3B0aW9ucz86IEh0dHBPcHRpb25zLCBoZWFkZXJzPzogSHR0cEhlYWRlcnMpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG5cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcImFhYVwiKTtcclxuICAgICAgbGV0IF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzQ29tbW9uSHR0cEhlYWRlcicpKSB7XHJcbiAgICAgICAgX2hlYWRlcnMgPSB0aGlzLmdldERlZmF1bHRIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGhlYWRlcnMpe1xyXG4gICAgICAgIF9oZWFkZXJzID0gaGVhZGVycztcclxuICAgICAgfVxyXG4gICAgICBsZXQgd2l0aENyZWRlbnRpYWxzOmFueSA9IHRydWVcclxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNXaXRoQ3JlZGVudGlhbHMnKSkge1xyXG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9IG9wdGlvbnMuaXNXaXRoQ3JlZGVudGlhbHNcclxuICAgICAgfVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyhfaGVhZGVycyk7XHJcbiAgICAgIGZvcihjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xyXG4gICAgICAgIGlmKHBhcmFtcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIHR5cGVvZiBwYXJhbXNba2V5XSAgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBwYXJhbXNba2V5XSA9IEpTT04uc3RyaW5naWZ5KHBhcmFtc1trZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgbnVsbCwgeyBoZWFkZXJzOiBfaGVhZGVycywgcGFyYW1zOiBwYXJhbXMsIHdpdGhDcmVkZW50aWFsczogd2l0aENyZWRlbnRpYWxzIH0pXHJcbiAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHJlc3VsdCk7XHJcbiAgICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgICBvYnNlcnZlLmVycm9yKGVycm9yKVxyXG4gICAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcG9zdEJvZHkgPSAodXJsOiBzdHJpbmcsIHBhcmFtcz86YW55LCBvcHRpb25zPzogSHR0cE9wdGlvbnMsIGhlYWRlcnM/OiB7fSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWFhXCIpO1xyXG4gICAgICBsZXQgX2hlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNDb21tb25IdHRwSGVhZGVyJykpIHtcclxuICAgICAgICBfaGVhZGVycyA9IHRoaXMuZ2V0RGVmYXVsdEhlYWRlcihfaGVhZGVycyk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHdpdGhDcmVkZW50aWFsczphbnkgPSB0cnVlXHJcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzV2l0aENyZWRlbnRpYWxzJykpIHtcclxuICAgICAgICB3aXRoQ3JlZGVudGlhbHMgPSBvcHRpb25zLmlzV2l0aENyZWRlbnRpYWxzXHJcbiAgICAgIH1cclxuICAgICAgLy8gY29uc29sZS5sb2coX2hlYWRlcnMpO1xyXG4gICAgICBmb3IoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHBhcmFtcykpIHtcclxuICAgICAgICBpZihwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB0eXBlb2YgcGFyYW1zW2tleV0gID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgcGFyYW1zW2tleV0gPSBKU09OLnN0cmluZ2lmeShwYXJhbXNba2V5XSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgcGFyYW1zLCB7IGhlYWRlcnM6IF9oZWFkZXJzLCBwYXJhbXM6IHt9LCB3aXRoQ3JlZGVudGlhbHM6IHdpdGhDcmVkZW50aWFscyB9KVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyZXN1bHQpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5lcnJvcihlcnJvcilcclxuICAgICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldERlZmF1bHRIZWFkZXIoX2hlYWRlcnM6SHR0cEhlYWRlcnMpOkh0dHBIZWFkZXJze1xyXG4gICAgX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJ4LWhlYWRlci1hdHJcIixcIm1hbmFnZVwiKTtcclxuICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwidG9rZW5cIixMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJUb2tlbigpKTtcclxuICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwidXNlcklkXCIsTG9jYWxTdG9yYWdlVXRpbC5nZXRVc2VySWQoKSk7XHJcbiAgICAvLyBfaGVhZGVycyA9IF9oZWFkZXJzLnNldChcIm9yZ0NvZGVcIixUb29sc1V0aWwuZ2V0T3JnQ29kZSgpKTtcclxuICAgIHJldHVybiBfaGVhZGVycztcclxuICB9XHJcbiAgZ2V0ID0gKHVybDogc3RyaW5nLCBwYXJhbXM/OiB7fSwgb3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuXHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuXHJcbiAgICAgIGxldCBfaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmhhc093blByb3BlcnR5KCdpc0NvbW1vbkh0dHBIZWFkZXInKSkge1xyXG4gICAgICAgIF9oZWFkZXJzID0gdGhpcy5nZXREZWZhdWx0SGVhZGVyKF9oZWFkZXJzKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgd2l0aENyZWRlbnRpYWxzOmFueSA9IGZhbHNlXHJcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzV2l0aENyZWRlbnRpYWxzJykpIHtcclxuICAgICAgICB3aXRoQ3JlZGVudGlhbHMgPSBvcHRpb25zLmlzV2l0aENyZWRlbnRpYWxzXHJcbiAgICAgIH1cclxuICAgICAgLy8gY29uc29sZS5sb2cob3B0aW9ucylcclxuICAgICAgLy8gY29uc29sZS5sb2coX2hlYWRlcnMpXHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQodXJsLHsgaGVhZGVyczogX2hlYWRlcnMsIHBhcmFtczogcGFyYW1zLCB3aXRoQ3JlZGVudGlhbHM6IHdpdGhDcmVkZW50aWFscyB9KS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICBvYnNlcnZlLm5leHQocmVzdWx0KTtcclxuICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIG9ic2VydmUuZXJyb3IoZXJyb3IpXHJcbiAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgIH0pXHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHVwbG9hZCA9IChtZXRob2Q6YW55LCB1cmw6YW55LCBmb3JtRGF0YTogRm9ybURhdGEsIHByb2dyZXNzOmFueSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICBsZXQgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KG1ldGhvZCwgdXJsLCBmb3JtRGF0YSwgeyByZXBvcnRQcm9ncmVzczogdHJ1ZSB9KVxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLmh0dHBDbGllbnQucmVxdWVzdChyZXEpLnN1YnNjcmliZSgoZXZlbnQ6YW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgcHJvZ3Jlc3MgPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICBldmVudFsncHJvZ3Jlc3MnXSA9IHBhcnNlSW50KGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsICogMTAwICsgJycpXHJcbiAgICAgICAgICAgIHByb2dyZXNzKGV2ZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChldmVudC5ib2R5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICBvYnNlcnZlLmVycm9yKGVycm9yKVxyXG4gICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNmb3JtU3RyaW5nID0gKG9iakl0ZW06YW55KSA9PiB7XHJcbiAgICB2YXIgbGlzdCA6YW55PSBbXTtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIG9iakl0ZW0pIHtcclxuICAgICAgdmFyIHN0ciA9ICcnO1xyXG4gICAgICBsZXQgaXRlbSA9IG9iakl0ZW1ba2V5XVxyXG4gICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgLy/mlbDnu4RcclxuICAgICAgICB2YXIgYXJyOmFueSA9IFtdO1xyXG4gICAgICAgIGl0ZW0uZm9yRWFjaCgodiwgaykgPT4ge1xyXG4gICAgICAgICAgdmFyIHMgPSBlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICdbJyArIGsgKyAnXSc7XHJcbiAgICAgICAgICBhcnIucHVzaCh0aGlzLnBhcnNlT2JqKHYsIHMpKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHN0ciA9IGFyci5qb2luKCcmJyk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgIC8vanNvblxyXG4gICAgICAgIHZhciBhcnI6YW55ID0gW107XHJcbiAgICAgICAgZm9yIChjb25zdCBrIGluIGl0ZW0pIHtcclxuICAgICAgICAgIGxldCB2ID0gaXRlbVtrXVxyXG4gICAgICAgICAgdmFyIHMgPSBlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICcuJyArIGVuY29kZVVSSUNvbXBvbmVudChrKTtcclxuICAgICAgICAgIGFyci5wdXNoKHRoaXMucGFyc2VPYmoodiwgcykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdHIgPSBhcnIuam9pbignJicpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8v5pmu6YCa57G75Z6LXHJcbiAgICAgICAgc3RyID0gZW5jb2RlVVJJQ29tcG9uZW50KGtleSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgbGlzdC5wdXNoKHN0cik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbGlzdC5qb2luKCcmJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlT2JqID0gKG9iajphbnksIHN0cjphbnkpID0+IHtcclxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAvL+aVsOe7hFxyXG4gICAgICB2YXIgYXJyOmFueSA9IFtdO1xyXG4gICAgICBvYmouZm9yRWFjaCgodiwgaykgPT4ge1xyXG4gICAgICAgIHZhciBzID0gc3RyICsgJ1snICsgayArICddJyArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2KTtcclxuICAgICAgICBhcnIucHVzaCh0aGlzLnBhcnNlT2JqKHYsIHMpKTtcclxuICAgICAgfSlcclxuICAgICAgc3RyID0gYXJyLmpvaW4oJyYnKTtcclxuICAgIH0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcbiAgICAgIC8vanNvblxyXG4gICAgICB2YXIgYXJyIDphbnk9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IGsgaW4gb2JqKSB7XHJcbiAgICAgICAgbGV0IHYgPSBvYmpba11cclxuICAgICAgICB2YXIgcyA9IHN0ciArICcuJyArIGVuY29kZVVSSUNvbXBvbmVudChrKTtcclxuICAgICAgICBhcnIucHVzaCh0aGlzLnBhcnNlT2JqKHYsIHMpKTtcclxuICAgICAgfVxyXG4gICAgICBzdHIgPSBhcnIuam9pbignJicpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy/mma7pgJrnsbvlnotcclxuICAgICAgc3RyID0gc3RyICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KG9iaik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RyO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3NzID0gKHVybDogc3RyaW5nLCBwYXJhbXM/OiB7fSwgcmVzcG9uc2VUeXBlPzphbnksIG5vRXJyb3IgPSBmYWxzZSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgICAgaWYgKHVybCA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBvYnNlcnZlLm5leHQoKTtcclxuICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhcInVybFwiLHVybClcclxuICAgICAgaWYgKCF1cmwuc3RhcnRzV2l0aChcImh0dHBcIikpIHtcclxuICAgICAgICB1cmwgPSBhdHJfc3RhdGljX2RhdGFzLk9TU19VUkwgKyB1cmw7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgIGxldCB3aXRoQ3JlZGVudGlhbHMgPSBmYWxzZVxyXG4gICAgICAvLyAvL2NvbnNvbGUubG9nKF9oZWFkZXJzKVxyXG4gICAgICBpZiAodXJsLmVuZHNXaXRoKFwiLm9cIikgJiYgIXBhcmFtcykge1xyXG4gICAgICAgIHVybCArPSBcIj92PVwiICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG5vRXJyb3IpIHtcclxuICAgICAgICBpZiAodXJsLmluZGV4T2YoJz8nKSA+IDApIHtcclxuICAgICAgICAgIHVybCArPSBcIiZub0Vycm9yXCJcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdXJsICs9IFwiP25vRXJyb3JcIlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCwge1xyXG4gICAgICAgIGhlYWRlcnM6IF9oZWFkZXJzLFxyXG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogd2l0aENyZWRlbnRpYWxzLFxyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogcmVzcG9uc2VUeXBlIHx8ICd0ZXh0J1xyXG4gICAgICB9KS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICBvYnNlcnZlLm5leHQocmVzdWx0KTtcclxuICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIG9ic2VydmUuZXJyb3IoZXJyb3IpXHJcbiAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgIH0pXHJcblxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS9zZXJ2aWNlcy9odHRwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBYyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzlELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRzdDLE1BQU0sT0FBTyxXQUFXO0lBRXRCLFlBQ1UsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVFoQzs7OztXQUlHO1FBQ0gsU0FBSSxHQUFHLENBQUMsR0FBVyxFQUFFLE1BQVcsRUFBRSxPQUFxQixFQUFFLE9BQXFCLEVBQW1CLEVBQUU7WUFFakcsT0FBTyxJQUFJLFVBQVUsQ0FBTSxPQUFPLENBQUMsRUFBRTtnQkFDbkMsc0JBQXNCO2dCQUN0QixJQUFJLFFBQVEsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7b0JBQzNELFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzVDO2dCQUNELFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxQyxJQUFHLE9BQU8sRUFBQztvQkFDVCxRQUFRLEdBQUcsT0FBTyxDQUFD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QU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzNDLFNBQVMsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuRSxDQUFDLEVBQ0QsS0FBSyxDQUFDLEVBQUU7UUFDUixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7O3lHQW5TVSxXQUFXOzZHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFJlcXVlc3QsIEh0dHBFdmVudFR5cGUsIEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHthdHJfc3RhdGljX2RhdGFzLCBIdHRwT3B0aW9uc30gZnJvbSAnLi4vYmFzZS9hdHItY29tbW9uJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlVXRpbCB9IGZyb20gJy4uL3V0aWxzL2xvY2Fsc3RvcmFnZS51dGlsJztcclxuaW1wb3J0IHtNZDV9IGZyb20gXCJ0cy1tZDVcIjtcclxuaW1wb3J0IHtlbnZpcm9ubWVudH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvY29yZS9lbnZpcm9ubWVudHNcIjtcclxuaW1wb3J0IHtUb29sc1V0aWx9IGZyb20gXCIuLi91dGlscy9Ub29sc1V0aWxcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEh0dHBTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnRcclxuICApIHt9XHJcbiAgZ2V0Tm9ybWFsSGVhZGVyKF9oZWFkZXJzOiBIdHRwSGVhZGVycyk6IEh0dHBIZWFkZXJzIHtcclxuICAgIGlmKCFhdHJfc3RhdGljX2RhdGFzLm5lZWROb3JtYWxIZWFkZSl7XHJcbiAgICAgIHJldHVybiBfaGVhZGVycztcclxuICAgIH1cclxuICAgIHJldHVybiAgYXRyX3N0YXRpY19kYXRhcy5nZXROb3JtYWxIZWFkZXIoX2hlYWRlcnMpXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHVybFxyXG4gICAqIEBwYXJhbSBwYXJhbXNcclxuICAgKi9cclxuICBwb3N0ID0gKHVybDogc3RyaW5nLCBwYXJhbXM/OmFueSwgb3B0aW9ucz86IEh0dHBPcHRpb25zLCBoZWFkZXJzPzogSHR0cEhlYWRlcnMpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG5cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcImFhYVwiKTtcclxuICAgICAgbGV0IF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzQ29tbW9uSHR0cEhlYWRlcicpKSB7XHJcbiAgICAgICAgX2hlYWRlcnMgPSB0aGlzLmdldERlZmF1bHRIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgICB9XHJcbiAgICAgIF9oZWFkZXJzID0gdGhpcy5nZXROb3JtYWxIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgICBpZihoZWFkZXJzKXtcclxuICAgICAgICBfaGVhZGVycyA9IGhlYWRlcnM7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHdpdGhDcmVkZW50aWFsczphbnkgPSB0cnVlXHJcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzV2l0aENyZWRlbnRpYWxzJykpIHtcclxuICAgICAgICB3aXRoQ3JlZGVudGlhbHMgPSBvcHRpb25zLmlzV2l0aENyZWRlbnRpYWxzXHJcbiAgICAgIH1cclxuICAgICAgLy8gY29uc29sZS5sb2coX2hlYWRlcnMpO1xyXG4gICAgICBmb3IoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHBhcmFtcykpIHtcclxuICAgICAgICBpZihwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB0eXBlb2YgcGFyYW1zW2tleV0gID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgcGFyYW1zW2tleV0gPSBKU09OLnN0cmluZ2lmeShwYXJhbXNba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmh0dHBDbGllbnQucG9zdCh1cmwsIG51bGwsIHsgaGVhZGVyczogX2hlYWRlcnMsIHBhcmFtczogcGFyYW1zLCB3aXRoQ3JlZGVudGlhbHM6IHdpdGhDcmVkZW50aWFscyB9KVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyZXN1bHQpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5lcnJvcihlcnJvcilcclxuICAgICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgfSlcclxuICB9XHJcbiAgcG9zdFByb21BbGwodXJsczogeyB1cmw6IHN0cmluZywgcGFyYW1zPzoge30sIH1bXSwgb3B0aW9ucz86IEh0dHBPcHRpb25zLCBoZWFkZXJzPzogSHR0cEhlYWRlcnMpIHtcclxuICAgIGxldCBwYXJhbTogYW55W10gPSBbXTtcclxuICAgIHVybHMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgcGFyYW0ucHVzaCh0aGlzLnBvc3RQcm9tKGl0ZW0udXJsLCBpdGVtLnBhcmFtcywgb3B0aW9ucywgaGVhZGVycykpO1xyXG4gICAgfSlcclxuXHJcblxyXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgcG9zdFByb20odXJsOiBzdHJpbmcsIHBhcmFtcz86YW55LCBvcHRpb25zPzogSHR0cE9wdGlvbnMsIGhlYWRlcnM/OiBIdHRwSGVhZGVycykge1xyXG5cclxuICAgIC8vIC8vY29uc29sZS5sb2coXCJhYWFcIik7XHJcbiAgICBsZXQgX2hlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzQ29tbW9uSHR0cEhlYWRlcicpKSB7XHJcbiAgICAgIF9oZWFkZXJzID0gdGhpcy5nZXREZWZhdWx0SGVhZGVyKF9oZWFkZXJzKTtcclxuICAgIH1cclxuICAgIF9oZWFkZXJzID0gdGhpcy5nZXROb3JtYWxIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgX2hlYWRlcnMgPSBoZWFkZXJzO1xyXG4gICAgfVxyXG4gICAgbGV0IHdpdGhDcmVkZW50aWFsczphbnkgPSB0cnVlXHJcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmhhc093blByb3BlcnR5KCdpc1dpdGhDcmVkZW50aWFscycpKSB7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFscyA9IG9wdGlvbnMuaXNXaXRoQ3JlZGVudGlhbHNcclxuICAgIH1cclxuICAgIGxldCBwb3N0UGFyYW1zOiBhbnkgPSB7fTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKSB7XHJcbiAgICAgIGlmIChwYXJhbXNba2V5XSAhPT0gbnVsbCAmJiBwYXJhbXNba2V5XSAhPT0gJycgJiYgcGFyYW1zW2tleV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB0eXBlb2YgcGFyYW1zW2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBwb3N0UGFyYW1zW2tleV0gPSBKU09OLnN0cmluZ2lmeShwYXJhbXNba2V5XSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcG9zdFBhcmFtc1trZXldID0gcGFyYW1zW2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh1cmwsIG51bGwsIHtcclxuICAgICAgaGVhZGVyczogX2hlYWRlcnMsXHJcbiAgICAgIHBhcmFtczogcG9zdFBhcmFtcyxcclxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB3aXRoQ3JlZGVudGlhbHNcclxuICAgIH0pXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuXHJcbiAgfVxyXG4gIHBvc3RCb2R5ID0gKHVybDogc3RyaW5nLCBwYXJhbXM/OmFueSwgb3B0aW9ucz86IEh0dHBPcHRpb25zLCBoZWFkZXJzPzoge30pOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG5cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcImFhYVwiKTtcclxuICAgICAgbGV0IF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzQ29tbW9uSHR0cEhlYWRlcicpKSB7XHJcbiAgICAgICAgX2hlYWRlcnMgPSB0aGlzLmdldERlZmF1bHRIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgICB9XHJcbiAgICAgIF9oZWFkZXJzID0gdGhpcy5nZXROb3JtYWxIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgICBsZXQgd2l0aENyZWRlbnRpYWxzOmFueSA9IHRydWVcclxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNXaXRoQ3JlZGVudGlhbHMnKSkge1xyXG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9IG9wdGlvbnMuaXNXaXRoQ3JlZGVudGlhbHNcclxuICAgICAgfVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyhfaGVhZGVycyk7XHJcbiAgICAgIGZvcihjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xyXG4gICAgICAgIGlmKHBhcmFtcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIHR5cGVvZiBwYXJhbXNba2V5XSAgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBwYXJhbXNba2V5XSA9IEpTT04uc3RyaW5naWZ5KHBhcmFtc1trZXldKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCBwYXJhbXMsIHsgaGVhZGVyczogX2hlYWRlcnMsIHBhcmFtczoge30sIHdpdGhDcmVkZW50aWFsczogd2l0aENyZWRlbnRpYWxzIH0pXHJcbiAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHJlc3VsdCk7XHJcbiAgICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgICBvYnNlcnZlLmVycm9yKGVycm9yKVxyXG4gICAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0RGVmYXVsdEhlYWRlcihfaGVhZGVyczpIdHRwSGVhZGVycyk6SHR0cEhlYWRlcnN7XHJcbiAgICBfaGVhZGVycyA9IF9oZWFkZXJzLnNldChcIngtaGVhZGVyLWF0clwiLFwibWFuYWdlXCIpO1xyXG4gICAgX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJ0b2tlblwiLExvY2FsU3RvcmFnZVV0aWwuZ2V0VXNlclRva2VuKCkpO1xyXG4gICAgX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJ1c2VySWRcIixMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJJZCgpKTtcclxuICAgIC8vIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwib3JnQ29kZVwiLFRvb2xzVXRpbC5nZXRPcmdDb2RlKCkpO1xyXG4gICAgcmV0dXJuIF9oZWFkZXJzO1xyXG4gIH1cclxuICBnZXQgPSAodXJsOiBzdHJpbmcsIHBhcmFtcz86IHt9LCBvcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG5cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG5cclxuICAgICAgbGV0IF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzQ29tbW9uSHR0cEhlYWRlcicpKSB7XHJcbiAgICAgICAgX2hlYWRlcnMgPSB0aGlzLmdldERlZmF1bHRIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgICB9XHJcbiAgICAgIF9oZWFkZXJzID0gdGhpcy5nZXROb3JtYWxIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgICBsZXQgd2l0aENyZWRlbnRpYWxzOmFueSA9IGZhbHNlXHJcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzV2l0aENyZWRlbnRpYWxzJykpIHtcclxuICAgICAgICB3aXRoQ3JlZGVudGlhbHMgPSBvcHRpb25zLmlzV2l0aENyZWRlbnRpYWxzXHJcbiAgICAgIH1cclxuICAgICAgLy8gY29uc29sZS5sb2cob3B0aW9ucylcclxuICAgICAgLy8gY29uc29sZS5sb2coX2hlYWRlcnMpXHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQodXJsLHsgaGVhZGVyczogX2hlYWRlcnMsIHBhcmFtczogcGFyYW1zLCB3aXRoQ3JlZGVudGlhbHM6IHdpdGhDcmVkZW50aWFscyB9KS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICBvYnNlcnZlLm5leHQocmVzdWx0KTtcclxuICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIG9ic2VydmUuZXJyb3IoZXJyb3IpXHJcbiAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgIH0pXHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHVwbG9hZCA9IChtZXRob2Q6YW55LCB1cmw6YW55LCBmb3JtRGF0YTogRm9ybURhdGEsIHByb2dyZXNzOmFueSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICBsZXQgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KG1ldGhvZCwgdXJsLCBmb3JtRGF0YSwgeyByZXBvcnRQcm9ncmVzczogdHJ1ZSB9KVxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLmh0dHBDbGllbnQucmVxdWVzdChyZXEpLnN1YnNjcmliZSgoZXZlbnQ6YW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgcHJvZ3Jlc3MgPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICBldmVudFsncHJvZ3Jlc3MnXSA9IHBhcnNlSW50KGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsICogMTAwICsgJycpXHJcbiAgICAgICAgICAgIHByb2dyZXNzKGV2ZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChldmVudC5ib2R5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICBvYnNlcnZlLmVycm9yKGVycm9yKVxyXG4gICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNmb3JtU3RyaW5nID0gKG9iakl0ZW06YW55KSA9PiB7XHJcbiAgICB2YXIgbGlzdCA6YW55PSBbXTtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIG9iakl0ZW0pIHtcclxuICAgICAgdmFyIHN0ciA9ICcnO1xyXG4gICAgICBsZXQgaXRlbSA9IG9iakl0ZW1ba2V5XVxyXG4gICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgLy/mlbDnu4RcclxuICAgICAgICB2YXIgYXJyOmFueSA9IFtdO1xyXG4gICAgICAgIGl0ZW0uZm9yRWFjaCgodiwgaykgPT4ge1xyXG4gICAgICAgICAgdmFyIHMgPSBlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICdbJyArIGsgKyAnXSc7XHJcbiAgICAgICAgICBhcnIucHVzaCh0aGlzLnBhcnNlT2JqKHYsIHMpKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHN0ciA9IGFyci5qb2luKCcmJyk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgIC8vanNvblxyXG4gICAgICAgIHZhciBhcnI6YW55ID0gW107XHJcbiAgICAgICAgZm9yIChjb25zdCBrIGluIGl0ZW0pIHtcclxuICAgICAgICAgIGxldCB2ID0gaXRlbVtrXVxyXG4gICAgICAgICAgdmFyIHMgPSBlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICcuJyArIGVuY29kZVVSSUNvbXBvbmVudChrKTtcclxuICAgICAgICAgIGFyci5wdXNoKHRoaXMucGFyc2VPYmoodiwgcykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdHIgPSBhcnIuam9pbignJicpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8v5pmu6YCa57G75Z6LXHJcbiAgICAgICAgc3RyID0gZW5jb2RlVVJJQ29tcG9uZW50KGtleSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgbGlzdC5wdXNoKHN0cik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbGlzdC5qb2luKCcmJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlT2JqID0gKG9iajphbnksIHN0cjphbnkpID0+IHtcclxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAvL+aVsOe7hFxyXG4gICAgICB2YXIgYXJyOmFueSA9IFtdO1xyXG4gICAgICBvYmouZm9yRWFjaCgodiwgaykgPT4ge1xyXG4gICAgICAgIHZhciBzID0gc3RyICsgJ1snICsgayArICddJyArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2KTtcclxuICAgICAgICBhcnIucHVzaCh0aGlzLnBhcnNlT2JqKHYsIHMpKTtcclxuICAgICAgfSlcclxuICAgICAgc3RyID0gYXJyLmpvaW4oJyYnKTtcclxuICAgIH0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcbiAgICAgIC8vanNvblxyXG4gICAgICB2YXIgYXJyIDphbnk9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IGsgaW4gb2JqKSB7XHJcbiAgICAgICAgbGV0IHYgPSBvYmpba11cclxuICAgICAgICB2YXIgcyA9IHN0ciArICcuJyArIGVuY29kZVVSSUNvbXBvbmVudChrKTtcclxuICAgICAgICBhcnIucHVzaCh0aGlzLnBhcnNlT2JqKHYsIHMpKTtcclxuICAgICAgfVxyXG4gICAgICBzdHIgPSBhcnIuam9pbignJicpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy/mma7pgJrnsbvlnotcclxuICAgICAgc3RyID0gc3RyICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KG9iaik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RyO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3NzID0gKHVybDogc3RyaW5nLCBwYXJhbXM/OiB7fSwgcmVzcG9uc2VUeXBlPzphbnksIG5vRXJyb3IgPSBmYWxzZSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgICAgaWYgKHVybCA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBvYnNlcnZlLm5leHQoKTtcclxuICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhcInVybFwiLHVybClcclxuICAgICAgaWYgKCF1cmwuc3RhcnRzV2l0aChcImh0dHBcIikpIHtcclxuICAgICAgICB1cmwgPSBhdHJfc3RhdGljX2RhdGFzLk9TU19VUkwgKyB1cmw7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgIGxldCB3aXRoQ3JlZGVudGlhbHMgPSBmYWxzZVxyXG4gICAgICAvLyAvL2NvbnNvbGUubG9nKF9oZWFkZXJzKVxyXG4gICAgICBpZiAodXJsLmVuZHNXaXRoKFwiLm9cIikgJiYgIXBhcmFtcykge1xyXG4gICAgICAgIHVybCArPSBcIj92PVwiICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG5vRXJyb3IpIHtcclxuICAgICAgICBpZiAodXJsLmluZGV4T2YoJz8nKSA+IDApIHtcclxuICAgICAgICAgIHVybCArPSBcIiZub0Vycm9yXCJcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdXJsICs9IFwiP25vRXJyb3JcIlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCwge1xyXG4gICAgICAgIGhlYWRlcnM6IF9oZWFkZXJzLFxyXG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogd2l0aENyZWRlbnRpYWxzLFxyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogcmVzcG9uc2VUeXBlIHx8ICd0ZXh0J1xyXG4gICAgICB9KS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICBvYnNlcnZlLm5leHQocmVzdWx0KTtcclxuICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIG9ic2VydmUuZXJyb3IoZXJyb3IpXHJcbiAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgIH0pXHJcblxyXG4gICAgfSlcclxuICB9XHJcbiAgZG93bmxvYWRYbHModXJsOiBzdHJpbmcsIHBhcmFtcz86IHt9KSB7XHJcbiAgICB0aGlzLnBvc3QoXCJ0aGlyZC9hdXRoL2dldEF1dGhUb2tlblwiLCB7fSwgVG9vbHNVdGlsLmdldEh0dHBPcHRpb25zKCkpLnN1YnNjcmliZShcclxuICAgICAgcmVzdWx0ID0+IHtcclxuICAgICAgICBsZXQgdGhyaWRQYXJtYSA9IHtcclxuICAgICAgICAgIFwicmVxTWV0aG9kXCI6IFwiYXV0aFwiLFxyXG4gICAgICAgICAgXCJzaWduXCI6IHJlc3VsdC5kYXRhLFxyXG4gICAgICAgICAgXCJ4LWhlYWRlci1hdHJcIjogXCJ3ZWJcIixcclxuICAgICAgICAgIHRva2VuOiBMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJUb2tlbigpLFxyXG4gICAgICAgICAgdXNlcklkOiBMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJJZCgpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhcmFtcyA9IE9iamVjdC5hc3NpZ24ocGFyYW1zLCB0aHJpZFBhcm1hKTtcclxuICAgICAgICBUb29sc1V0aWwuZG93bmxvYWRYbHMoYXRyX3N0YXRpY19kYXRhcy5TRVJWRVJfVVJMICsgdXJsLCBwYXJhbXMpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvciA9PiB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19
@@ -91,4 +91,4 @@ export class LocalStorageUtil {
91
91
  LocalStorageUtil.clearUs = () => {
92
92
  LocalStorageUtil.removeUser();
93
93
  };
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxzdG9yYWdlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb3JlL3V0aWxzL2xvY2Fsc3RvcmFnZS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBTyxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFdEMsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBZ0I7UUFDeEMsSUFBSSxPQUFPLEdBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3BDLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDcEMsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxDQUFDO1FBQzFELE9BQU8sT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakUsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTO1FBQ2QsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ3BCLElBQUksR0FBRyxFQUFFO1lBQ1AsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7UUFDRCxJQUFJLFNBQVM7WUFDWCxPQUFPLFNBQVMsQ0FB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QUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtRQUN6RixJQUFJLFFBQVEsR0FBUSxJQUFJLENBQUE7UUFDeEIsSUFBSSxHQUFHLEVBQUU7WUFDUCxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FBQTs7WUFFbEIsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVU7UUFDZixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQU1ELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBVztRQUM5QixPQUFPLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDNUMsQ0FBQzs7QUFOTSx3QkFBTyxHQUFHLEdBQUcsRUFBRTtJQUNwQixnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtBQUMvQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2F0cl9zdGF0aWNfZGF0YXMsIGpzb259IGZyb20gJy4uL2Jhc2UvYXRyLWNvbW1vbic7XHJcbmltcG9ydCB7VG9vbHNVdGlsfSBmcm9tICcuL1Rvb2xzVXRpbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlVXRpbCB7XHJcblxyXG4gIHN0YXRpYyBnZXRQcm92aW5jZUJ5VmFsdWUocHJvdmluY2U6IHN0cmluZyk6IGFueSB7XHJcbiAgICBsZXQgcmVnaW9uczogYW55ID0gdGhpcy5nZXRSZWdpb24oKTtcclxuICAgIGlmIChyZWdpb25zLmxlbmd0aCA9PSAwIHx8ICFwcm92aW5jZSkge1xyXG4gICAgICByZXR1cm4gbnVsbFxyXG4gICAgfVxyXG4gICAgcmVnaW9ucyA9IHJlZ2lvbnMuZmlsdGVyKCh2OiBhbnkpID0+IHYudmFsdWUgPT0gcHJvdmluY2UpO1xyXG4gICAgcmV0dXJuIHJlZ2lvbnMgJiYgcmVnaW9ucy5sZW5ndGggPiAwID8gcmVnaW9uc1swXS5sYWJlbCA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0UmVnaW9uKCkge1xyXG4gICAgbGV0IHN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnUkVHSU9OJykpO1xyXG4gICAgbGV0IGxvZ2luSW5mbyA9IG51bGxcclxuICAgIGlmIChzdHIpIHtcclxuICAgICAgbG9naW5JbmZvID0gSlNPTi5wYXJzZShzdHIpO1xyXG4gICAgfVxyXG4gICAgaWYgKGxvZ2luSW5mbylcclxuICAgICAgcmV0dXJuIGxvZ2luSW5mb1xyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gW11cclxuICB9XHJcblxyXG4gIHN0YXRpYyBwdXRSZWdpb24oZGlzTGlzdDogYW55W10pOiB2b2lkIHtcclxuICAgIGlmIChkaXNMaXN0KSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnUkVHSU9OJyksIEpTT04uc3RyaW5naWZ5KGRpc0xpc3QpKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIHB1dFVzZXIodXNlckluZm86IGpzb24pOiB2b2lkIHtcclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnVVNFUl9JTkZPXycpICsgVG9vbHNVdGlsLmdldE9yZ0NvZGUoKSk7XHJcbiAgICBpZiAodXNlckluZm8pIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5nZXRTdG9yYWdlS2V5KCdVU0VSX0lORk9fJykgKyBUb29sc1V0aWwuZ2V0T3JnQ29kZSgpLCBKU09OLnN0cmluZ2lmeSh1c2VySW5mbykpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcHV0TG9naW4obG9naW5JbmZvOiBqc29uKTogdm9pZCB7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmdldFN0b3JhZ2VLZXkoJ1VTRVJfSU5GT19MXycpICsgVG9vbHNVdGlsLmdldE9yZ0NvZGUoKSk7XHJcbiAgICBpZiAobG9naW5JbmZvKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnVVNFUl9JTkZPX0xfJykgKyBUb29sc1V0aWwuZ2V0T3JnQ29kZSgpLCBKU09OLnN0cmluZ2lmeShsb2dpbkluZm8pKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldExvZ2luKCk6IGFueSB7XHJcbiAgICBsZXQgc3RyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5nZXRTdG9yYWdlS2V5KCdVU0VSX0lORk9fTF8nKSArIFRvb2xzVXRpbC5nZXRPcmdDb2RlKCkpXHJcbiAgICBsZXQgbG9naW5JbmZvOiBhbnkgPSBudWxsXHJcbiAgICBpZiAoc3RyKSB7XHJcbiAgICAgIGxvZ2luSW5mbyA9IEpTT04ucGFyc2Uoc3RyKTtcclxuICAgIH1cclxuICAgIGlmIChsb2dpbkluZm8pXHJcbiAgICAgIHJldHVybiBsb2dpbkluZm9cclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIHt9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0VXNlcigpOiBhbnkge1xyXG4gICAgbGV0IHN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnVVNFUl9JTkZPXycpICsgVG9vbHNVdGlsLmdldE9yZ0NvZGUoKSlcclxuICAgIGxldCB1c2VySW5mbzogYW55ID0gbnVsbFxyXG4gICAgaWYgKHN0cikge1xyXG4gICAgICB1c2VySW5mbyA9IEpTT04ucGFyc2Uoc3RyKTtcclxuICAgIH1cclxuICAgIGlmICh1c2VySW5mbylcclxuICAgICAgcmV0dXJuIHVzZXJJbmZvXHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiB7fVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldFVzZXJUb2tlbigpOiBzdHJpbmcge1xyXG4gICAgbGV0IHN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnVVNFUl9JTkZPXycpICsgVG9vbHNVdGlsLmdldE9yZ0NvZGUoKSlcclxuICAgIGxldCB1c2VySW5mbzogYW55ID0gbnVsbFxyXG4gICAgaWYgKHN0cikge1xyXG4gICAgICB1c2VySW5mbyA9IEpTT04ucGFyc2Uoc3RyKTtcclxuICAgIH1cclxuICAgIGlmICh1c2VySW5mbyAmJiB1c2VySW5mby50b2tlbilcclxuICAgICAgcmV0dXJuIHVzZXJJbmZvLnRva2VuXHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiBcIlwiXHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0VXNlcklkKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5nZXRTdG9yYWdlS2V5KCdVU0VSX0lORk9fJykgKyBUb29sc1V0aWwuZ2V0T3JnQ29kZSgpKVxyXG4gICAgbGV0IHVzZXJJbmZvOiBhbnkgPSBudWxsXHJcbiAgICBpZiAoc3RyKSB7XHJcbiAgICAgIHVzZXJJbmZvID0gSlNPTi5wYXJzZShzdHIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHVzZXJJbmZvICYmIHVzZXJJbmZvLmlkKVxyXG4gICAgICByZXR1cm4gdXNlckluZm8uaWRcclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIFwiXCJcclxuICB9XHJcblxyXG4gIHN0YXRpYyByZW1vdmVVc2VyKCkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5nZXRTdG9yYWdlS2V5KCdVU0VSX0lORk9fJykgKyBUb29sc1V0aWwuZ2V0T3JnQ29kZSgpKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjbGVhclVzID0gKCkgPT4ge1xyXG4gICAgTG9jYWxTdG9yYWdlVXRpbC5yZW1vdmVVc2VyKClcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRTdG9yYWdlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBhdHJfc3RhdGljX2RhdGFzLlNUT1JBR0VfUFJFICsga2V5O1xyXG4gIH1cclxufVxyXG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxzdG9yYWdlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb3JlL3V0aWxzL2xvY2Fsc3RvcmFnZS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBTyxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFdEMsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBZ0I7UUFDeEMsSUFBSSxPQUFPLEdBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3BDLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDcEMsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxDQUFDO1FBQzFELE9BQU8sT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakUsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTO1FBQ2QsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ3BCLElBQUksR0FBRyxFQUFFO1lBQ1AsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7UUFDRCxJQUFJLFNBQVM7WUFDWCxPQUFPLFNBQVMsQ0FB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QUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtRQUN6RixJQUFJLFFBQVEsR0FBUSxJQUFJLENBQUE7UUFDeEIsSUFBSSxHQUFHLEVBQUU7WUFDUCxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FBQTs7WUFFbEIsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVU7UUFDZixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQU1ELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBVztRQUM5QixPQUFPLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDNUMsQ0FBQzs7QUFOTSx3QkFBTyxHQUFHLEdBQUcsRUFBRTtJQUNwQixnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtBQUMvQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2F0cl9zdGF0aWNfZGF0YXMsIGpzb259IGZyb20gJy4uL2Jhc2UvYXRyLWNvbW1vbic7XHJcbmltcG9ydCB7VG9vbHNVdGlsfSBmcm9tICcuL1Rvb2xzVXRpbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlVXRpbCB7XHJcblxyXG4gIHN0YXRpYyBnZXRQcm92aW5jZUJ5VmFsdWUocHJvdmluY2U6IHN0cmluZyk6IGFueSB7XHJcbiAgICBsZXQgcmVnaW9uczogYW55ID0gdGhpcy5nZXRSZWdpb24oKTtcclxuICAgIGlmIChyZWdpb25zLmxlbmd0aCA9PSAwIHx8ICFwcm92aW5jZSkge1xyXG4gICAgICByZXR1cm4gbnVsbFxyXG4gICAgfVxyXG4gICAgcmVnaW9ucyA9IHJlZ2lvbnMuZmlsdGVyKCh2OiBhbnkpID0+IHYudmFsdWUgPT0gcHJvdmluY2UpO1xyXG4gICAgcmV0dXJuIHJlZ2lvbnMgJiYgcmVnaW9ucy5sZW5ndGggPiAwID8gcmVnaW9uc1swXS5sYWJlbCA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0UmVnaW9uKCkge1xyXG4gICAgbGV0IHN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnUkVHSU9OJykpO1xyXG4gICAgbGV0IGxvZ2luSW5mbyA9IG51bGxcclxuICAgIGlmIChzdHIpIHtcclxuICAgICAgbG9naW5JbmZvID0gSlNPTi5wYXJzZShzdHIpO1xyXG4gICAgfVxyXG4gICAgaWYgKGxvZ2luSW5mbylcclxuICAgICAgcmV0dXJuIGxvZ2luSW5mb1xyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gW11cclxuICB9XHJcblxyXG4gIHN0YXRpYyBwdXRSZWdpb24oZGlzTGlzdDogYW55W10pOiB2b2lkIHtcclxuICAgIGlmIChkaXNMaXN0KSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnUkVHSU9OJyksIEpTT04uc3RyaW5naWZ5KGRpc0xpc3QpKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIHB1dFVzZXIodXNlckluZm86IGpzb24pOiB2b2lkIHtcclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnVVNFUl9JTkZPXycpICsgVG9vbHNVdGlsLmdldE9yZ0NvZGUoKSk7XHJcbiAgICBpZiAodXNlckluZm8pIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5nZXRTdG9yYWdlS2V5KCdVU0VSX0lORk9fJykgKyBUb29sc1V0aWwuZ2V0T3JnQ29kZSgpLCBKU09OLnN0cmluZ2lmeSh1c2VySW5mbykpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcHV0TG9naW4obG9naW5JbmZvOiBqc29uKTogdm9pZCB7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmdldFN0b3JhZ2VLZXkoJ1VTRVJfSU5GT19MXycpICsgVG9vbHNVdGlsLmdldE9yZ0NvZGUoKSk7XHJcbiAgICBpZiAobG9naW5JbmZvKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnVVNFUl9JTkZPX0xfJykgKyBUb29sc1V0aWwuZ2V0T3JnQ29kZSgpLCBKU09OLnN0cmluZ2lmeShsb2dpbkluZm8pKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldExvZ2luKCk6IGFueSB7XHJcbiAgICBsZXQgc3RyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5nZXRTdG9yYWdlS2V5KCdVU0VSX0lORk9fTF8nKSArIFRvb2xzVXRpbC5nZXRPcmdDb2RlKCkpXHJcbiAgICBsZXQgbG9naW5JbmZvOiBhbnkgPSBudWxsXHJcbiAgICBpZiAoc3RyKSB7XHJcbiAgICAgIGxvZ2luSW5mbyA9IEpTT04ucGFyc2Uoc3RyKTtcclxuICAgIH1cclxuICAgIGlmIChsb2dpbkluZm8pXHJcbiAgICAgIHJldHVybiBsb2dpbkluZm9cclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIHt9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0VXNlcigpOiBhbnkge1xyXG4gICAgbGV0IHN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnVVNFUl9JTkZPXycpICsgVG9vbHNVdGlsLmdldE9yZ0NvZGUoKSlcclxuICAgIGxldCB1c2VySW5mbzogYW55ID0gbnVsbFxyXG4gICAgaWYgKHN0cikge1xyXG4gICAgICB1c2VySW5mbyA9IEpTT04ucGFyc2Uoc3RyKTtcclxuICAgIH1cclxuICAgIGlmICh1c2VySW5mbylcclxuICAgICAgcmV0dXJuIHVzZXJJbmZvXHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiB7fVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldFVzZXJUb2tlbigpOiBzdHJpbmcge1xyXG4gICAgbGV0IHN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleSgnVVNFUl9JTkZPXycpICsgVG9vbHNVdGlsLmdldE9yZ0NvZGUoKSlcclxuICAgIGxldCB1c2VySW5mbzogYW55ID0gbnVsbFxyXG4gICAgaWYgKHN0cikge1xyXG4gICAgICB1c2VySW5mbyA9IEpTT04ucGFyc2Uoc3RyKTtcclxuICAgIH1cclxuICAgIGlmICh1c2VySW5mbyAmJiB1c2VySW5mby50b2tlbilcclxuICAgICAgcmV0dXJuIHVzZXJJbmZvLnRva2VuXHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiBcIlwiXHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0VXNlcklkKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5nZXRTdG9yYWdlS2V5KCdVU0VSX0lORk9fJykgKyBUb29sc1V0aWwuZ2V0T3JnQ29kZSgpKVxyXG4gICAgbGV0IHVzZXJJbmZvOiBhbnkgPSBudWxsXHJcbiAgICBpZiAoc3RyKSB7XHJcbiAgICAgIHVzZXJJbmZvID0gSlNPTi5wYXJzZShzdHIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHVzZXJJbmZvICYmIHVzZXJJbmZvLmlkKVxyXG4gICAgICByZXR1cm4gdXNlckluZm8uaWRcclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIFwiXCJcclxuICB9XHJcblxyXG4gIHN0YXRpYyByZW1vdmVVc2VyKCkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5nZXRTdG9yYWdlS2V5KCdVU0VSX0lORk9fJykgKyBUb29sc1V0aWwuZ2V0T3JnQ29kZSgpKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjbGVhclVzID0gKCkgPT4ge1xyXG4gICAgTG9jYWxTdG9yYWdlVXRpbC5yZW1vdmVVc2VyKClcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRTdG9yYWdlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBhdHJfc3RhdGljX2RhdGFzLlNUT1JBR0VfUFJFICsga2V5O1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==