@libs-ui/services-grid-layout 0.2.357-20 → 0.2.357-22
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.
- package/canvas/grid-layout-canvas.component.d.ts +112 -4
- package/defines/collision.define.d.ts +56 -0
- package/drag-controller.d.ts +34 -0
- package/esm2022/canvas/grid-layout-canvas.component.mjs +387 -8
- package/esm2022/defines/collision.define.mjs +329 -0
- package/esm2022/defines/gridster-config.define.mjs +4 -5
- package/esm2022/drag-controller.mjs +89 -0
- package/esm2022/grid-layout.service.mjs +245 -3
- package/esm2022/index.mjs +3 -1
- package/esm2022/interfaces/grid-layout.interface.mjs +1 -1
- package/esm2022/tree.service.mjs +20 -1
- package/fesm2022/libs-ui-services-grid-layout.mjs +1066 -14
- package/fesm2022/libs-ui-services-grid-layout.mjs.map +1 -1
- package/grid-layout.service.d.ts +100 -0
- package/index.d.ts +2 -0
- package/interfaces/grid-layout.interface.d.ts +108 -0
- package/package.json +3 -3
- package/tree.service.d.ts +4 -0
package/esm2022/index.mjs
CHANGED
|
@@ -7,4 +7,6 @@
|
|
|
7
7
|
export * from './grid-layout.service';
|
|
8
8
|
export * from './canvas/grid-layout-canvas.component';
|
|
9
9
|
export * from './interfaces/grid-layout.interface';
|
|
10
|
-
|
|
10
|
+
export * from './defines/collision.define';
|
|
11
|
+
export * from './drag-controller';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL3NlcnZpY2VzL2dyaWQtbGF5b3V0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3REFBd0Q7QUFDeEQsRUFBRTtBQUNGLHNGQUFzRjtBQUN0RixrR0FBa0c7QUFDbEcsb0dBQW9HO0FBQ3BHLDJEQUEyRDtBQUMzRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBC4buBIG3hurd0IEPDlE5HIEtIQUkg4oCUIGNo4buJIG5o4buvbmcgZ8OsIG7GoWkgZMO5bmcgdGjhuq10IHPhu7EgY+G6p24uXG4vL1xuLy8gYExpYnNVaUdyaWRMYXlvdXRUcmVlU2VydmljZWAgQ+G7kCDDnSBraMO0bmcgeHXhuqV0OiBt4buNaSB0aGFvIHTDoWMgdHLDqm4gY8OieSDEkcOjIGPDsyBt4bq3dCB0csOqblxuLy8gYExpYnNVaUdyaWRMYXlvdXRTZXJ2aWNlYCB24bubaSBjaOG7ryBrw70gZ+G7jW4gaMahbiAoa2jDtG5nIHBo4bqjaSB0cnV54buBbiBgcm9vdGAg4oCUIHRoxrAgdmnhu4duIMSRYW5nIGdp4buvIG7DsykuXG4vLyBD4bqldSBow6xuaCBncmlkc3RlciBjxaluZyBraMO0bmcgeHXhuqV0OiBuw7MgxJHDoyDEkcaw4bujYyB2w6EgdGhlbyBow6BuZyBjaOG7pWMgbOG7l2kgxJFvIHRyw6puIHPhuqNuIHBo4bqpbSB0aOG6rXQsIMSR4buDIG7GoWlcbi8vIGTDuW5nIHPhu61hIGzhuqFpIGzDoCBt4bufIMSRxrDhu51uZyBjaG8gY2jDrW5oIG5o4buvbmcgbOG7l2kgxJHDsyBxdWF5IHbhu4EuXG5leHBvcnQgKiBmcm9tICcuL2dyaWQtbGF5b3V0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jYW52YXMvZ3JpZC1sYXlvdXQtY2FudmFzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZ3JpZC1sYXlvdXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGVmaW5lcy9jb2xsaXNpb24uZGVmaW5lJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1jb250cm9sbGVyJztcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1sYXlvdXQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9zZXJ2aWNlcy9ncmlkLWxheW91dC9zcmMvaW50ZXJmYWNlcy9ncmlkLWxheW91dC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqIENo4bq/IMSR4buZIHPhuq9wIHjhur9wIGto4buRaSB0csOqbiBt4bq3dCBwaOG6s25nICovXG5leHBvcnQgY29uc3QgZW51bSBFX2dyaWRMYXlvdXRfbW9kZV9zdHJpbmcge1xuICAvKiogQsOhbSBsxrDhu5tpOiBraOG7kWkgdGjhurNuZyBow6BuZywgdOG7sSDEkeG6qXkgbmhhdSwgc+G6r3AgZ+G7jW4gxJHGsOG7o2MgKi9cbiAgZ3JpZCA9ICdncmlkJyxcbiAgLyoqIFThu7EgZG86IGto4buRaSDEkeG6t3Qg4bufIHRv4bqhIMSR4buZIGLhuqV0IGvhu7MsIGNo4buTbmcgbMOqbiBuaGF1IHRob+G6o2kgbcOhaSAqL1xuICBmcmVlID0gJ2ZyZWUnLFxufVxuXG4vKiogTeG7mXQga2jhu5FpIHRyw6puIG3hurd0IHBo4bqzbmcuIGBjaGlsZHJlbmAga2jDoWMgcuG7l25nIHRow6wga2jhu5FpIGzDoCBDT05UQUlORVIsIHJ14buZdCBuw7MgbMOgIG3hu5l0IGzGsOG7m2kgY29uLiAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X25vZGUgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBj4buZdCBi4bqvdCDEkeG6p3UgKGNo4bq/IMSR4buZIGzGsOG7m2kpIOKAlCBweCB0aGVvIHRy4bulYyBYIChjaOG6vyDEkeG7mSB04buxIGRvKSAqL1xuICB4OiBudW1iZXI7XG4gIC8qKiBow6BuZyBi4bqvdCDEkeG6p3UgKGNo4bq/IMSR4buZIGzGsOG7m2kpIOKAlCBweCB0aGVvIHRy4bulYyBZIChjaOG6vyDEkeG7mSB04buxIGRvKSAqL1xuICB5OiBudW1iZXI7XG4gIC8qKiBz4buRIGPhu5l0IGNoaeG6v20gKGNo4bq/IMSR4buZIGzGsOG7m2kpIOKAlCBweCBjaGnhu4F1IHLhu5luZyAoY2jhur8gxJHhu5kgdOG7sSBkbykgKi9cbiAgY29sczogbnVtYmVyO1xuICAvKiogc+G7kSBow6BuZyBjaGnhur9tIChjaOG6vyDEkeG7mSBsxrDhu5tpKSDigJQgcHggY2hp4buBdSBjYW8gKGNo4bq/IMSR4buZIHThu7EgZG8pICovXG4gIHJvd3M6IG51bWJlcjtcbiAgLyoqXG4gICAqIEzhu5twIGNo4buTbmcuIEhhaSBraOG7kWkgQ0jhu5JORyBuaGF1IMSRxrDhu6NjIGtoaSBraMOhYyBgbGF5ZXJJbmRleGAgdsOgIGBhbGxvd092ZXJsYXBgIGLhuq10LlxuICAgKiBC4buPIHRy4buRbmcgdGjDrCBt4buNaSBraOG7kWkgY8O5bmcgbOG7m3AgMCDigJQgY2jhu5NuZyBuaGF1IGLhu4sgY2jhurduIG5oxrAgbMaw4bubaSB0aMaw4budbmcuXG4gICAqL1xuICBsYXllckluZGV4PzogbnVtYmVyO1xuICAvKioga2jhu5FpIGNvbjsga2jDoWMgcuG7l25nIHRow6wgxJHDonkgbMOgIGNvbnRhaW5lciAqL1xuICBjaGlsZHJlbj86IEFycmF5PFRfZ3JpZExheW91dF9ub2RlPjtcbiAgLyoqXG4gICAqIENvbXBvbmVudCB24bq9IFJJw4pORyBjaG8ga2jhu5FpIG7DoHksIHRy4bqjIHbhu4EgZOG6oW5nIE9ic2VydmFibGUgxJHhu4MgTEFaWSBMT0FEIHRo4bqtdCBz4buxLlxuICAgKiBC4buPIHRy4buRbmcgdGjDrCBt4bq3dCBwaOG6s25nIGjhu49pIGBnZXRDb21wb25lbnRPdXRsZXRgIGNodW5nIGPhu6dhIGPhuqV1IGjDrG5oLlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBnZXRDb21wb25lbnRPdXRsZXQ6IChub2RlKSA9PiBmcm9tKGltcG9ydCgnLi9jaGFydC1jYXJkLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQ2hhcnRDYXJkQ29tcG9uZW50KSlcbiAgICogYGBgXG4gICAqL1xuICBnZXRDb21wb25lbnRPdXRsZXQ/OiAobm9kZTogVF9ncmlkTGF5b3V0X25vZGUpID0+IE9ic2VydmFibGU8VHlwZTx1bmtub3duPj47XG4gIC8qKiBk4buvIGxp4buHdSByacOqbmcgY+G7p2EgbsahaSBkw7luZyDigJQgdGjGsCB2aeG7h24gS0jDlE5HIMSR4buNYywgY2h1eeG7g24gbmd1ecOqbiB2w6BvIGlucHV0IGBkYXRhYCBj4bunYSBjb21wb25lbnQgKi9cbiAgZGF0YT86IHVua25vd247XG59O1xuXG4vKipcbiAqIMSQaSBrw6htIHPhu7Ega2nhu4duIGPhu6dhIG3hu5l0IE7DmlQgYnVpbHQtaW4gdHLDqm4ga2jhu5FpLlxuICpcbiAqIFRoxrAgdmnhu4duIENIxq9BIGzDoG0gZ8OsIGtoaSBi4bqvbiDigJQgbsOzIGNo4buJIGLDoW8gXCJuZ8aw4budaSBkw7luZyB24burYSBi4bqlbSBuw7p0IG7DoHlcIi4gTsahaSBkw7luZyBxdXnhur90IMSR4buLbmg6XG4gKiAtIGPhuqduIGjhu49pIHRyxrDhu5tjIChtb2RhbCB4w6FjIG5o4bqtbiwgZ+G7jWkgQVBJIGtp4buDbSB0cmEpIOKGkiBo4buPaSB4b25nIHLhu5NpIGfhu41pIGBjb25maXJtKClgO1xuICogLSBraMO0bmcgY+G6p24gaOG7j2kg4oaSIGfhu41pIGBjb25maXJtKClgIG5nYXk7XG4gKiAtIGtow7RuZyBjaG8gcGjDqXAg4oaSIGtow7RuZyBn4buNaSBnw6wgY+G6oy5cbiAqXG4gKiBgYGB0c1xuICogcHJvdGVjdGVkIGhhbmRsZXJSZW1vdmUoZXZlbnQ6IFRfZ3JpZExheW91dF9hY3Rpb25FdmVudCk6IHZvaWQge1xuICogICB0aGlzLmRpYWxvZy5jb25maXJtKCdYb8OhIGto4buRaSBuw6B5PycpLnN1YnNjcmliZSgoZG9uZ1kpID0+IGRvbmdZICYmIGV2ZW50LmNvbmZpcm0oKSk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X2FjdGlvbkV2ZW50ID0ge1xuICAvKioga2jhu5FpIG5nxrDhu51pIGTDuW5nIHbhu6thIGLhuqVtIG7DunQgKi9cbiAgbm9kZUlkOiBzdHJpbmc7XG4gIC8qKiBraOG7kWkgxJHDsywga2hpIGLhuqFuIGPhuqduIMSR4buNYyBgZGF0YWAgxJHhu4MgcXV54bq/dCDEkeG7i25oICh2ZCBraOG7kWkgxJFhbmcgY8OzIGThu68gbGnhu4d1IHRow6wgbeG7m2kgaOG7j2kpICovXG4gIG5vZGU6IFRfZ3JpZExheW91dF9ub2RlO1xuICAvKipcbiAgICogR+G7jWkgxJHhu4MgdGjGsCB2aeG7h24gdGjhu7FjIGhp4buHbiB0aGFvIHTDoWMuIEtow7RuZyBn4buNaSA9IGtow7RuZyBsw6BtIGfDrC5cbiAgICpcbiAgICogQHJldHVybnMgYGZhbHNlYCBraGkgdGhhbyB0w6FjIGtow7RuZyB0aOG7sWMgaGnhu4duIMSRxrDhu6NjIChraOG7kWkgxJHDoyBi4buLIHhvw6EsIGNo4bqhbSB0cuG6p24gbOG7k25nIGPhuqVw4oCmKS5cbiAgICovXG4gIGNvbmZpcm06ICgpID0+IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEto4buRaSBN4buaSSB0cnV54buBbiB2w6BvIGBhZGRDaGlsZGAuIEtow6FjIGBUX2dyaWRMYXlvdXRfbm9kZWAg4bufIGJhIGNo4buXIGRvIHRoxrAgdmnhu4duIHThu7EgbG86XG4gKiAtIGBpZGAgdOG7sSBzaW5oIChtw6MgbcOheSBkw7luZyDEkeG7gyB0cmEgY+G7qXUsIGtow7RuZyBwaOG6o2kgdGjhu6kgbmfGsOG7nWkgZMO5bmcgbmdoxKkgcmEpLFxuICogLSBgeGAgwrcgYHlgIHThu7EgxJHhurd0IHh14buRbmcgaMOgbmcgdHLhu5FuZyBr4bq/IHRp4bq/cC5cbiAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X25ld05vZGUgPSBPbWl0PFRfZ3JpZExheW91dF9ub2RlLCAnaWQnIHwgJ3gnIHwgJ3knPiAmIHtcbiAgLyoqIMSR4buDIHRy4buRbmcgdGjDrCB0aMawIHZp4buHbiBzaW5oOyBjaOG7iSB0cnV54buBbiBraGkgYuG6oW4gQ+G6pk4gbeG7mXQgaWQgY+G7kSDEkeG7i25oICh2ZCBraMO0aSBwaOG7pWMgdOG7qyBi4bqjbiBsxrB1KSAqL1xuICBpZD86IHN0cmluZztcbiAgeD86IG51bWJlcjtcbiAgeT86IG51bWJlcjtcbn07XG5cbi8qKlxuICogxJBpIGvDqG0gc+G7sSBraeG7h24gYuG6pW0gbsO6dCBUSMOKTSB0csOqbiBt4buZdCBjb250YWluZXIuXG4gKlxuICogS2jDoWMgYFRfZ3JpZExheW91dF9hY3Rpb25FdmVudGAg4bufIGNo4buXIGBjb25maXJtYCBuaOG6rW4ga2jhu5FpIG114buRbiB0aMOqbTogdGjGsCB2aeG7h24ga2jDtG5nIGJp4bq/dCBz4bqjbiBwaOG6qW1cbiAqIGPhu6dhIGLhuqFuIGPDsyBuaOG7r25nIGxv4bqhaSBraOG7kWkgbsOgbywgbsOqbiBi4bqhbiBt4bufIG1lbnUgY2jhu41uIGxv4bqhaSBy4buTaSB0cnV54buBbiBraOG7kWkgxJHDoyBk4buxbmcgdsOgbyDEkcOieS5cbiAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X2FkZEV2ZW50ID0ge1xuICAvKiogY29udGFpbmVyIG5nxrDhu51pIGTDuW5nIG114buRbiB0aMOqbSBraOG7kWkgdsOgbyAqL1xuICBub2RlSWQ6IHN0cmluZztcbiAgbm9kZTogVF9ncmlkTGF5b3V0X25vZGU7XG4gIC8qKiBAcmV0dXJucyBraOG7kWkgduG7q2EgdOG6oW8gKGvDqG0gYGlkYCB0aMawIHZp4buHbiBzaW5oKSwgaG/hurdjIGB1bmRlZmluZWRgIG7hur91IGtow7RuZyB0aMOqbSDEkcaw4bujYyAqL1xuICBjb25maXJtOiAoaXRlbTogVF9ncmlkTGF5b3V0X25ld05vZGUpID0+IFRfZ3JpZExheW91dF9ub2RlIHwgdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiDEkOG6p3UgdsOgbyBtw6AgdGjGsCB2aeG7h24gdHJ1eeG7gW4gY2hvIGNvbXBvbmVudCBj4bunYSBuxqFpIGTDuW5nLlxuICogQ29tcG9uZW50IELhuq5UIEJV4buYQyBraGFpIMSR4bunIGJhIGlucHV0IG7DoHkgKGTDuW5nIGBpbnB1dCgpYCksIHRoaeG6v3UgY8OhaSBuw6BvIHRow6wgYHNldElucHV0YCBuw6ltIGzhu5dpLlxuICovXG5leHBvcnQgdHlwZSBUX2dyaWRMYXlvdXRfbm9kZUlucHV0czxURGF0YSA9IHVua25vd24+ID0ge1xuICAvKiogxJHDum5nIGBub2RlLmRhdGFgIGPhu6dhIGto4buRaSDigJQgdGjhu6kgbsahaSBkw7luZyBj4bqnbiBuaOG6pXQsIG7Dqm4gxJHhu4MgxJHhuqd1ICovXG4gIGRhdGE6IFREYXRhO1xuICAvKiogY+G6oyBraOG7kWksIGtoaSBj4bqnbiBiaeG6v3QgaWQgwrcga8OtY2ggdGjGsOG7m2MgwrcgY8OzIHBo4bqjaSBjb250YWluZXIga2jDtG5nICovXG4gIG5vZGU6IFRfZ3JpZExheW91dF9ub2RlO1xuICAvKiogxJFhbmcg4bufIGNo4bq/IMSR4buZIHPhu61hIGhheSBjaOG7iSB4ZW0gKi9cbiAgaXNFZGl0TW9kZTogYm9vbGVhbjtcbiAgLyoqIMSR4buZIHPDonU6IDAgPSBn4buRYywgMSA9IGto4buRaSBj4bqlcCB0cmFuZywgMiA9IGto4buRaSB0cm9uZyBjb250YWluZXIgKi9cbiAgZGVwdGg6IG51bWJlcjtcbn07XG5cbi8qKiBD4bqldSBow6xuaCBraOG7n2kgdOG6oW8gbeG7mXQgbeG6t3QgcGjhurNuZyBrw6lvIHRo4bqjICovXG5leHBvcnQgdHlwZSBUX2dyaWRMYXlvdXRfY29uZmlnID0ge1xuICAvKipcbiAgICogSMOgbSBQSMOCTiBHSeG6okkgY29tcG9uZW50IGNobyBt4buZdCBraOG7kWkg4oCUIGNo4buXIGLhuqFuIG1hcCB04burIGThu68gbGnhu4d1IHNlcnZlciBzYW5nIGdpYW8gZGnhu4duLlxuICAgKlxuICAgKiBN4bq3dCBwaOG6s25nIGfhu41pIGjDoG0gbsOgeSBjaG8gTeG7lkkga2jhu5FpIGtow7RuZyB04buxIGtoYWkgYGdldENvbXBvbmVudE91dGxldGAuIFRy4bqjIGBPYnNlcnZhYmxlYCBuw6puXG4gICAqIGBpbXBvcnQoKWAgxJHhu5luZyBjaOG6oXkgxJHGsOG7o2M6IGLDsyBtw6MgY+G7p2EgdOG7q25nIGxv4bqhaSBraOG7kWkgY2jhu4kgdOG6o2kga2hpIG3DoG4gdGjhuq10IHPhu7EgY8OzIGto4buRaSBsb+G6oWkgxJHDsy5cbiAgICpcbiAgICogYGBgdHNcbiAgICogZ2V0Q29tcG9uZW50T3V0bGV0OiAobm9kZSkgPT4ge1xuICAgKiAgIGNvbnN0IHsgdHlwZSB9ID0gbm9kZS5kYXRhIGFzIHsgdHlwZTogc3RyaW5nIH07XG4gICAqXG4gICAqICAgaWYgKHR5cGUgPT09ICdjaGFydCcpIHtcbiAgICogICAgIHJldHVybiBmcm9tKGltcG9ydCgnLi9jaGFydC1jYXJkLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQ2hhcnRDYXJkQ29tcG9uZW50KSk7XG4gICAqICAgfVxuICAgKlxuICAgKiAgIHJldHVybiBmcm9tKGltcG9ydCgnLi90ZXh0LWNhcmQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5UZXh0Q2FyZENvbXBvbmVudCkpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgZ2V0Q29tcG9uZW50T3V0bGV0PzogKG5vZGU6IFRfZ3JpZExheW91dF9ub2RlKSA9PiBPYnNlcnZhYmxlPFR5cGU8dW5rbm93bj4+O1xuICAvKiogY8OieSBraOG7kWkgYmFuIMSR4bqndSAqL1xuICBkYXRhOiBUX2dyaWRMYXlvdXRfbm9kZTtcbiAgbW9kZT86IEVfZ3JpZExheW91dF9tb2RlX3N0cmluZztcbiAgaXNFZGl0TW9kZT86IGJvb2xlYW47XG4gIC8qKiBz4buRIGPhu5l0IGPhu6dhIGzGsOG7m2kgKGNo4bq/IMSR4buZIGzGsOG7m2kpLiBN4bq3YyDEkeG7i25oIDEyICovXG4gIGNvbHM/OiBudW1iZXI7XG4gIC8qKiBjaGnhu4F1IGNhbyBt4buZdCBow6BuZywgcHggKGNo4bq/IMSR4buZIGzGsOG7m2kpLiBN4bq3YyDEkeG7i25oIDU2ICovXG4gIHJvd0hlaWdodD86IG51bWJlcjtcbiAgLyoqIGtoZSBnaeG7r2EgaGFpIGto4buRaSDhu58gbMaw4bubaSBD4bqkUCBUUkFORywgcHguIE3hurdjIMSR4buLbmggMTIgKi9cbiAgbWFyZ2luPzogbnVtYmVyO1xuICAvKioga2hlIGdp4buvYSBoYWkga2jhu5FpIGLDqm4gVFJPTkcgY29udGFpbmVyLCBweC4gTeG6t2MgxJHhu4tuaCAyIOKAlCBraOG7kWkgY29uIGzDoCBkw7JuZyB0aMO0bmcgdGluIGPhu6dhIGPDuW5nXG4gICAqICBt4buZdCBjYXJkLCBraGUgcuG7mW5nIGzDoG0gY2jDum5nIHRyw7RuZyBuaMawIGNhcmQgcuG7nWkgbmhhdSAqL1xuICBuZXN0ZWRNYXJnaW4/OiBudW1iZXI7XG4gIC8qKiBjaGnhu4F1IGNhbyBt4buZdCBow6BuZyBiw6puIFRST05HIGNvbnRhaW5lciwgcHguIE3hurdjIMSR4buLbmggMTYg4oCUIGjDoG5nIG5o4buPIGNobyBixrDhu5tjIGvDqW8gbeG7i24gKi9cbiAgbmVzdGVkUm93SGVpZ2h0PzogbnVtYmVyO1xuICAvKipcbiAgICogTOG7gSB0cm9uZyBj4bunYSBDT05UQUlORVIsIHB4IOKAlCDDoXAgxJHhu4F1IGLhu5FuIGNoaeG7gXUuIE3hurdjIMSR4buLbmggMTIuXG4gICAqXG4gICAqIENo4buJIGNvbnRhaW5lciBjw7MgbOG7gSBuw6B5OyBraOG7kWkgxJHGoW4ga2jDtG5nIGPDsywgdsOsIG7DsyBraMO0bmcgY2jhu6lhIGfDrCBiw6puIHRyb25nLlxuICAgKlxuICAgKiDwn5S0IEtIw5RORyBuw6puIMSR4buDIDA6IHRheSBj4bqnbSDEkeG7lWkga8OtY2ggdGjGsOG7m2MgY+G7p2Ega2jhu5FpIGNvbiBu4bqxbSBzw6F0IGJpw6puIGNvbnRhaW5lciwga2jDtG5nIGNo4burYSBs4buBXG4gICAqIHRow6wgY2h14buZdCBraMO0bmcgdHLDum5nIMSRxrDhu6NjIG7DsyB2w6Aga2jhu5FpIGNvbiBt4bqldCBsdcO0biBraOG6oyBuxINuZyByZXNpemUuXG4gICAqL1xuICBjb250YWluZXJQYWRkaW5nPzogbnVtYmVyO1xuICAvKiogdmnhu4FuIG5nb8OgaSBxdWFuaCBsxrDhu5tpIGPhuqVwIHRyYW5nLiBN4bq3YyDEkeG7i25oIGLhuq10ICovXG4gIG91dGVyTWFyZ2luPzogYm9vbGVhbjtcbiAgLyoqIGNo4burYSB0aMOqbSBiYW8gbmhpw6p1IHB4IGTGsOG7m2kgxJHDoXkgbMaw4bubaSBj4bqlcCB0cmFuZy4gTeG6t2MgxJHhu4tuaCA0MCAqL1xuICBvdXRlck1hcmdpbkJvdHRvbT86IG51bWJlcjtcbiAgLyoqIHPhu5EgaMOgbmcgdOG7kWkgdGhp4buDdSBt4buZdCBraOG7kWkgxJHGsOG7o2MgY28gbOG6oWkuIE3hurdjIMSR4buLbmggMiAqL1xuICBtaW5JdGVtUm93cz86IG51bWJlcjtcbiAgLyoqIGvDrWNoIHRoxrDhu5tjIG3hurdjIMSR4buLbmggY+G7p2Ega2jhu5FpIG3hu5tpLCB0w61uaCB0aGVvIMO0IGzGsOG7m2kuIE3hurdjIMSR4buLbmggMyBj4buZdCDDlyAyIGjDoG5nICovXG4gIGRlZmF1bHRJdGVtQ29scz86IG51bWJlcjtcbiAgZGVmYXVsdEl0ZW1Sb3dzPzogbnVtYmVyO1xuICAvKipcbiAgICogQ2hvIHBow6lwIGhhaSBraOG7kWkgS0jDgUMgYGxheWVySW5kZXhgIG7hurFtIGNo4buTbmcgbmhhdS5cbiAgICogQ2jhur8gxJHhu5kgYHR1RG9gIGx1w7RuIGLhuq10LCBraMO0bmcgxJHhu41jIGPhu50gbsOgeS5cbiAgICovXG4gIGFsbG93T3ZlcmxhcD86IGJvb2xlYW47XG4gIC8qKiB0cuG6p24gc+G7kSBj4bqlcCBjb250YWluZXIgbOG7k25nIG5oYXUuIE3hurdjIMSR4buLbmggMSAoY29udGFpbmVyIGtow7RuZyBjaOG7qWEgY29udGFpbmVyKSAqL1xuICBtYXhDb250YWluZXJEZXB0aD86IG51bWJlcjtcbn07XG5cbi8qKiBT4buxIGtp4buHbiB0aMawIHZp4buHbiBi4bqvbiByYSBraGkgYuG7kSBj4bulYyDEkeG7lWkgKi9cbmV4cG9ydCB0eXBlIFRfZ3JpZExheW91dF9jaGFuZ2VFdmVudCA9IHtcbiAgcm9vdDogVF9ncmlkTGF5b3V0X25vZGU7XG4gIC8qKiBraOG7kWkgduG7q2EgYuG7iyB0w6FjIMSR4buZbmc7IGLhu48gdHLhu5FuZyBraGkgxJHhu5VpIGRp4buHbiBy4buZbmcgKHPhuq9wIGfhu41uLCBu4bqhcCBs4bqhaSkgKi9cbiAgbm9kZUlkPzogc3RyaW5nO1xufTtcbiJdfQ==
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1sYXlvdXQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9zZXJ2aWNlcy9ncmlkLWxheW91dC9zcmMvaW50ZXJmYWNlcy9ncmlkLWxheW91dC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqIENo4bq/IMSR4buZIHPhuq9wIHjhur9wIGto4buRaSB0csOqbiBt4bq3dCBwaOG6s25nICovXG5leHBvcnQgY29uc3QgZW51bSBFX2dyaWRMYXlvdXRfbW9kZV9zdHJpbmcge1xuICAvKiogQsOhbSBsxrDhu5tpOiBraOG7kWkgdGjhurNuZyBow6BuZywgdOG7sSDEkeG6qXkgbmhhdSwgc+G6r3AgZ+G7jW4gxJHGsOG7o2MgKi9cbiAgZ3JpZCA9ICdncmlkJyxcbiAgLyoqIFThu7EgZG86IGto4buRaSDEkeG6t3Qg4bufIHRv4bqhIMSR4buZIGLhuqV0IGvhu7MsIGNo4buTbmcgbMOqbiBuaGF1IHRob+G6o2kgbcOhaSAqL1xuICBmcmVlID0gJ2ZyZWUnLFxufVxuXG4vKiogTeG7mXQga2jhu5FpIHRyw6puIG3hurd0IHBo4bqzbmcuIGBjaGlsZHJlbmAga2jDoWMgcuG7l25nIHRow6wga2jhu5FpIGzDoCBDT05UQUlORVIsIHJ14buZdCBuw7MgbMOgIG3hu5l0IGzGsOG7m2kgY29uLiAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X25vZGUgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBj4buZdCBi4bqvdCDEkeG6p3UgKGNo4bq/IMSR4buZIGzGsOG7m2kpIOKAlCBweCB0aGVvIHRy4bulYyBYIChjaOG6vyDEkeG7mSB04buxIGRvKSAqL1xuICB4OiBudW1iZXI7XG4gIC8qKiBow6BuZyBi4bqvdCDEkeG6p3UgKGNo4bq/IMSR4buZIGzGsOG7m2kpIOKAlCBweCB0aGVvIHRy4bulYyBZIChjaOG6vyDEkeG7mSB04buxIGRvKSAqL1xuICB5OiBudW1iZXI7XG4gIC8qKiBz4buRIGPhu5l0IGNoaeG6v20gKGNo4bq/IMSR4buZIGzGsOG7m2kpIOKAlCBweCBjaGnhu4F1IHLhu5luZyAoY2jhur8gxJHhu5kgdOG7sSBkbykgKi9cbiAgY29sczogbnVtYmVyO1xuICAvKiogc+G7kSBow6BuZyBjaGnhur9tIChjaOG6vyDEkeG7mSBsxrDhu5tpKSDigJQgcHggY2hp4buBdSBjYW8gKGNo4bq/IMSR4buZIHThu7EgZG8pICovXG4gIHJvd3M6IG51bWJlcjtcbiAgLyoqXG4gICAqIEzhu5twIGNo4buTbmcuIEhhaSBraOG7kWkgQ0jhu5JORyBuaGF1IMSRxrDhu6NjIGtoaSBraMOhYyBgbGF5ZXJJbmRleGAgdsOgIGBhbGxvd092ZXJsYXBgIGLhuq10LlxuICAgKiBC4buPIHRy4buRbmcgdGjDrCBt4buNaSBraOG7kWkgY8O5bmcgbOG7m3AgMCDigJQgY2jhu5NuZyBuaGF1IGLhu4sgY2jhurduIG5oxrAgbMaw4bubaSB0aMaw4budbmcuXG4gICAqL1xuICBsYXllckluZGV4PzogbnVtYmVyO1xuICAvKioga2jhu5FpIGNvbjsga2jDoWMgcuG7l25nIHRow6wgxJHDonkgbMOgIGNvbnRhaW5lciAqL1xuICBjaGlsZHJlbj86IEFycmF5PFRfZ3JpZExheW91dF9ub2RlPjtcbiAgLyoqXG4gICAqIENvbXBvbmVudCB24bq9IFJJw4pORyBjaG8ga2jhu5FpIG7DoHksIHRy4bqjIHbhu4EgZOG6oW5nIE9ic2VydmFibGUgxJHhu4MgTEFaWSBMT0FEIHRo4bqtdCBz4buxLlxuICAgKiBC4buPIHRy4buRbmcgdGjDrCBt4bq3dCBwaOG6s25nIGjhu49pIGBnZXRDb21wb25lbnRPdXRsZXRgIGNodW5nIGPhu6dhIGPhuqV1IGjDrG5oLlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBnZXRDb21wb25lbnRPdXRsZXQ6IChub2RlKSA9PiBmcm9tKGltcG9ydCgnLi9jaGFydC1jYXJkLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQ2hhcnRDYXJkQ29tcG9uZW50KSlcbiAgICogYGBgXG4gICAqL1xuICBnZXRDb21wb25lbnRPdXRsZXQ/OiAobm9kZTogVF9ncmlkTGF5b3V0X25vZGUpID0+IE9ic2VydmFibGU8VHlwZTx1bmtub3duPj47XG4gIC8qKiBk4buvIGxp4buHdSByacOqbmcgY+G7p2EgbsahaSBkw7luZyDigJQgdGjGsCB2aeG7h24gS0jDlE5HIMSR4buNYywgY2h1eeG7g24gbmd1ecOqbiB2w6BvIGlucHV0IGBkYXRhYCBj4bunYSBjb21wb25lbnQgKi9cbiAgZGF0YT86IHVua25vd247XG59O1xuXG4vKipcbiAqIMSQaSBrw6htIHPhu7Ega2nhu4duIGPhu6dhIG3hu5l0IE7DmlQgYnVpbHQtaW4gdHLDqm4ga2jhu5FpLlxuICpcbiAqIFRoxrAgdmnhu4duIENIxq9BIGzDoG0gZ8OsIGtoaSBi4bqvbiDigJQgbsOzIGNo4buJIGLDoW8gXCJuZ8aw4budaSBkw7luZyB24burYSBi4bqlbSBuw7p0IG7DoHlcIi4gTsahaSBkw7luZyBxdXnhur90IMSR4buLbmg6XG4gKiAtIGPhuqduIGjhu49pIHRyxrDhu5tjIChtb2RhbCB4w6FjIG5o4bqtbiwgZ+G7jWkgQVBJIGtp4buDbSB0cmEpIOKGkiBo4buPaSB4b25nIHLhu5NpIGfhu41pIGBjb25maXJtKClgO1xuICogLSBraMO0bmcgY+G6p24gaOG7j2kg4oaSIGfhu41pIGBjb25maXJtKClgIG5nYXk7XG4gKiAtIGtow7RuZyBjaG8gcGjDqXAg4oaSIGtow7RuZyBn4buNaSBnw6wgY+G6oy5cbiAqXG4gKiBgYGB0c1xuICogcHJvdGVjdGVkIGhhbmRsZXJSZW1vdmUoZXZlbnQ6IFRfZ3JpZExheW91dF9hY3Rpb25FdmVudCk6IHZvaWQge1xuICogICB0aGlzLmRpYWxvZy5jb25maXJtKCdYb8OhIGto4buRaSBuw6B5PycpLnN1YnNjcmliZSgoZG9uZ1kpID0+IGRvbmdZICYmIGV2ZW50LmNvbmZpcm0oKSk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X2FjdGlvbkV2ZW50ID0ge1xuICAvKioga2jhu5FpIG5nxrDhu51pIGTDuW5nIHbhu6thIGLhuqVtIG7DunQgKi9cbiAgbm9kZUlkOiBzdHJpbmc7XG4gIC8qKiBraOG7kWkgxJHDsywga2hpIGLhuqFuIGPhuqduIMSR4buNYyBgZGF0YWAgxJHhu4MgcXV54bq/dCDEkeG7i25oICh2ZCBraOG7kWkgxJFhbmcgY8OzIGThu68gbGnhu4d1IHRow6wgbeG7m2kgaOG7j2kpICovXG4gIG5vZGU6IFRfZ3JpZExheW91dF9ub2RlO1xuICAvKipcbiAgICogR+G7jWkgxJHhu4MgdGjGsCB2aeG7h24gdGjhu7FjIGhp4buHbiB0aGFvIHTDoWMuIEtow7RuZyBn4buNaSA9IGtow7RuZyBsw6BtIGfDrC5cbiAgICpcbiAgICogQHJldHVybnMgYGZhbHNlYCBraGkgdGhhbyB0w6FjIGtow7RuZyB0aOG7sWMgaGnhu4duIMSRxrDhu6NjIChraOG7kWkgxJHDoyBi4buLIHhvw6EsIGNo4bqhbSB0cuG6p24gbOG7k25nIGPhuqVw4oCmKS5cbiAgICovXG4gIGNvbmZpcm06ICgpID0+IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEto4buRaSBN4buaSSB0cnV54buBbiB2w6BvIGBhZGRDaGlsZGAuIEtow6FjIGBUX2dyaWRMYXlvdXRfbm9kZWAg4bufIGJhIGNo4buXIGRvIHRoxrAgdmnhu4duIHThu7EgbG86XG4gKiAtIGBpZGAgdOG7sSBzaW5oIChtw6MgbcOheSBkw7luZyDEkeG7gyB0cmEgY+G7qXUsIGtow7RuZyBwaOG6o2kgdGjhu6kgbmfGsOG7nWkgZMO5bmcgbmdoxKkgcmEpLFxuICogLSBgeGAgwrcgYHlgIHThu7EgxJHhurd0IHh14buRbmcgaMOgbmcgdHLhu5FuZyBr4bq/IHRp4bq/cC5cbiAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X25ld05vZGUgPSBPbWl0PFRfZ3JpZExheW91dF9ub2RlLCAnaWQnIHwgJ3gnIHwgJ3knPiAmIHtcbiAgLyoqIMSR4buDIHRy4buRbmcgdGjDrCB0aMawIHZp4buHbiBzaW5oOyBjaOG7iSB0cnV54buBbiBraGkgYuG6oW4gQ+G6pk4gbeG7mXQgaWQgY+G7kSDEkeG7i25oICh2ZCBraMO0aSBwaOG7pWMgdOG7qyBi4bqjbiBsxrB1KSAqL1xuICBpZD86IHN0cmluZztcbiAgeD86IG51bWJlcjtcbiAgeT86IG51bWJlcjtcbn07XG5cbi8qKlxuICogxJBpIGvDqG0gc+G7sSBraeG7h24gYuG6pW0gbsO6dCBUSMOKTSB0csOqbiBt4buZdCBjb250YWluZXIuXG4gKlxuICogS2jDoWMgYFRfZ3JpZExheW91dF9hY3Rpb25FdmVudGAg4bufIGNo4buXIGBjb25maXJtYCBuaOG6rW4ga2jhu5FpIG114buRbiB0aMOqbTogdGjGsCB2aeG7h24ga2jDtG5nIGJp4bq/dCBz4bqjbiBwaOG6qW1cbiAqIGPhu6dhIGLhuqFuIGPDsyBuaOG7r25nIGxv4bqhaSBraOG7kWkgbsOgbywgbsOqbiBi4bqhbiBt4bufIG1lbnUgY2jhu41uIGxv4bqhaSBy4buTaSB0cnV54buBbiBraOG7kWkgxJHDoyBk4buxbmcgdsOgbyDEkcOieS5cbiAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X2FkZEV2ZW50ID0ge1xuICAvKiogY29udGFpbmVyIG5nxrDhu51pIGTDuW5nIG114buRbiB0aMOqbSBraOG7kWkgdsOgbyAqL1xuICBub2RlSWQ6IHN0cmluZztcbiAgbm9kZTogVF9ncmlkTGF5b3V0X25vZGU7XG4gIC8qKiBAcmV0dXJucyBraOG7kWkgduG7q2EgdOG6oW8gKGvDqG0gYGlkYCB0aMawIHZp4buHbiBzaW5oKSwgaG/hurdjIGB1bmRlZmluZWRgIG7hur91IGtow7RuZyB0aMOqbSDEkcaw4bujYyAqL1xuICBjb25maXJtOiAoaXRlbTogVF9ncmlkTGF5b3V0X25ld05vZGUpID0+IFRfZ3JpZExheW91dF9ub2RlIHwgdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiDEkOG6p3UgdsOgbyBtw6AgdGjGsCB2aeG7h24gdHJ1eeG7gW4gY2hvIGNvbXBvbmVudCBj4bunYSBuxqFpIGTDuW5nLlxuICogQ29tcG9uZW50IELhuq5UIEJV4buYQyBraGFpIMSR4bunIGJhIGlucHV0IG7DoHkgKGTDuW5nIGBpbnB1dCgpYCksIHRoaeG6v3UgY8OhaSBuw6BvIHRow6wgYHNldElucHV0YCBuw6ltIGzhu5dpLlxuICovXG5leHBvcnQgdHlwZSBUX2dyaWRMYXlvdXRfbm9kZUlucHV0czxURGF0YSA9IHVua25vd24+ID0ge1xuICAvKiogxJHDum5nIGBub2RlLmRhdGFgIGPhu6dhIGto4buRaSDigJQgdGjhu6kgbsahaSBkw7luZyBj4bqnbiBuaOG6pXQsIG7Dqm4gxJHhu4MgxJHhuqd1ICovXG4gIGRhdGE6IFREYXRhO1xuICAvKiogY+G6oyBraOG7kWksIGtoaSBj4bqnbiBiaeG6v3QgaWQgwrcga8OtY2ggdGjGsOG7m2MgwrcgY8OzIHBo4bqjaSBjb250YWluZXIga2jDtG5nICovXG4gIG5vZGU6IFRfZ3JpZExheW91dF9ub2RlO1xuICAvKiogxJFhbmcg4bufIGNo4bq/IMSR4buZIHPhu61hIGhheSBjaOG7iSB4ZW0gKi9cbiAgaXNFZGl0TW9kZTogYm9vbGVhbjtcbiAgLyoqIMSR4buZIHPDonU6IDAgPSBn4buRYywgMSA9IGto4buRaSBj4bqlcCB0cmFuZywgMiA9IGto4buRaSB0cm9uZyBjb250YWluZXIgKi9cbiAgZGVwdGg6IG51bWJlcjtcbn07XG5cbi8qKiBD4bqldSBow6xuaCBraOG7n2kgdOG6oW8gbeG7mXQgbeG6t3QgcGjhurNuZyBrw6lvIHRo4bqjICovXG5leHBvcnQgdHlwZSBUX2dyaWRMYXlvdXRfY29uZmlnID0ge1xuICAvKipcbiAgICogSMOgbSBQSMOCTiBHSeG6okkgY29tcG9uZW50IGNobyBt4buZdCBraOG7kWkg4oCUIGNo4buXIGLhuqFuIG1hcCB04burIGThu68gbGnhu4d1IHNlcnZlciBzYW5nIGdpYW8gZGnhu4duLlxuICAgKlxuICAgKiBN4bq3dCBwaOG6s25nIGfhu41pIGjDoG0gbsOgeSBjaG8gTeG7lkkga2jhu5FpIGtow7RuZyB04buxIGtoYWkgYGdldENvbXBvbmVudE91dGxldGAuIFRy4bqjIGBPYnNlcnZhYmxlYCBuw6puXG4gICAqIGBpbXBvcnQoKWAgxJHhu5luZyBjaOG6oXkgxJHGsOG7o2M6IGLDsyBtw6MgY+G7p2EgdOG7q25nIGxv4bqhaSBraOG7kWkgY2jhu4kgdOG6o2kga2hpIG3DoG4gdGjhuq10IHPhu7EgY8OzIGto4buRaSBsb+G6oWkgxJHDsy5cbiAgICpcbiAgICogYGBgdHNcbiAgICogZ2V0Q29tcG9uZW50T3V0bGV0OiAobm9kZSkgPT4ge1xuICAgKiAgIGNvbnN0IHsgdHlwZSB9ID0gbm9kZS5kYXRhIGFzIHsgdHlwZTogc3RyaW5nIH07XG4gICAqXG4gICAqICAgaWYgKHR5cGUgPT09ICdjaGFydCcpIHtcbiAgICogICAgIHJldHVybiBmcm9tKGltcG9ydCgnLi9jaGFydC1jYXJkLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQ2hhcnRDYXJkQ29tcG9uZW50KSk7XG4gICAqICAgfVxuICAgKlxuICAgKiAgIHJldHVybiBmcm9tKGltcG9ydCgnLi90ZXh0LWNhcmQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5UZXh0Q2FyZENvbXBvbmVudCkpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgZ2V0Q29tcG9uZW50T3V0bGV0PzogKG5vZGU6IFRfZ3JpZExheW91dF9ub2RlKSA9PiBPYnNlcnZhYmxlPFR5cGU8dW5rbm93bj4+O1xuICAvKiogY8OieSBraOG7kWkgYmFuIMSR4bqndSAqL1xuICBkYXRhOiBUX2dyaWRMYXlvdXRfbm9kZTtcbiAgbW9kZT86IEVfZ3JpZExheW91dF9tb2RlX3N0cmluZztcbiAgaXNFZGl0TW9kZT86IGJvb2xlYW47XG4gIC8qKiBz4buRIGPhu5l0IGPhu6dhIGzGsOG7m2kgKGNo4bq/IMSR4buZIGzGsOG7m2kpLiBN4bq3YyDEkeG7i25oIDEyICovXG4gIGNvbHM/OiBudW1iZXI7XG4gIC8qKiBjaGnhu4F1IGNhbyBt4buZdCBow6BuZywgcHggKGNo4bq/IMSR4buZIGzGsOG7m2kpLiBN4bq3YyDEkeG7i25oIDU2ICovXG4gIHJvd0hlaWdodD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFPhu5EgaMOgbmcgVOG7kEkgVEhJ4buCVSBj4bunYSBsxrDhu5tpIEPhuqRQIFRSQU5HLiBN4bq3YyDEkeG7i25oIDIuXG4gICAqXG4gICAqIMSQ4bq3dCBs4bubbiBoxqFuIGtoaSBtdeG7kW4gw7QgbGkgcGjhu6cga8OtbiBtw6BuIGjDrG5oIG5nYXkgY+G6oyBsw7pjIGLhu5EgY+G7pWMgY8OybiDDrXQga2jhu5FpIOKAlCBsxrDhu5tpIGNo4buJIGNhbyBi4bqxbmdcbiAgICoga2jhu5FpIGN14buRaSBjw7luZyB0aMOsIHBo4bqnbiBkxrDhu5tpIHRy4buRbmcgdHLGoW4sIG5nxrDhu51pIGTDuW5nIGtow7RuZyBiaeG6v3QgY8OybiB0aOG6oyDEkcaw4bujYyB2w6BvIMSRw6J1LlxuICAgKi9cbiAgbWluUm93cz86IG51bWJlcjtcbiAgLyoqIFPhu5EgaMOgbmcgVOG7kEkgVEhJ4buCVSBj4bunYSBsxrDhu5tpIGLDqm4gVFJPTkcgY29udGFpbmVyLiBN4bq3YyDEkeG7i25oIDEgKi9cbiAgbmVzdGVkTWluUm93cz86IG51bWJlcjtcbiAgLyoqXG4gICAqIENobyBsxrDhu5tpIEzhu5JORyB04buxIMSRbyBs4bqhaSBraGkga2h1bmcgY2jhu6lhIG7DsyDEkeG7lWkgYuG7gSBy4buZbmcuIE3hurdjIMSR4buLbmggQuG6rFQuXG4gICAqXG4gICAqIFThuq90IMSRaSB0aMOsIGzDumMga8OpbyBtw6lwIGto4buRaSBjaGEsIHRo4bq7IGNvbiDEkeG7qW5nIGltIHThu5tpIGtoaSB0aOG6oyB0YXkg4oCUIGNo4buJIHThuq90IG7hur91IG7GoWkgZMO5bmcgdOG7sSBsb1xuICAgKiB2aeG7h2MgxJFvIGzhuqFpLlxuICAgKi9cbiAgYXV0b1Jlc2l6ZU5lc3RlZEdyaWRzPzogYm9vbGVhbjtcbiAgLyoqIGtoZSBnaeG7r2EgaGFpIGto4buRaSDhu58gbMaw4bubaSBD4bqkUCBUUkFORywgcHguIE3hurdjIMSR4buLbmggMTIgKi9cbiAgbWFyZ2luPzogbnVtYmVyO1xuICAvKioga2hlIGdp4buvYSBoYWkga2jhu5FpIGLDqm4gVFJPTkcgY29udGFpbmVyLCBweC4gTeG6t2MgxJHhu4tuaCAyIOKAlCBraOG7kWkgY29uIGzDoCBkw7JuZyB0aMO0bmcgdGluIGPhu6dhIGPDuW5nXG4gICAqICBt4buZdCBjYXJkLCBraGUgcuG7mW5nIGzDoG0gY2jDum5nIHRyw7RuZyBuaMawIGNhcmQgcuG7nWkgbmhhdSAqL1xuICBuZXN0ZWRNYXJnaW4/OiBudW1iZXI7XG4gIC8qKiBjaGnhu4F1IGNhbyBt4buZdCBow6BuZyBiw6puIFRST05HIGNvbnRhaW5lciwgcHguIE3hurdjIMSR4buLbmggMTYg4oCUIGjDoG5nIG5o4buPIGNobyBixrDhu5tjIGvDqW8gbeG7i24gKi9cbiAgbmVzdGVkUm93SGVpZ2h0PzogbnVtYmVyO1xuICAvKipcbiAgICogTOG7gSB0cm9uZyBj4bunYSBDT05UQUlORVIsIHB4IOKAlCDDoXAgxJHhu4F1IGLhu5FuIGNoaeG7gXUuIE3hurdjIMSR4buLbmggMTIuXG4gICAqXG4gICAqIENo4buJIGNvbnRhaW5lciBjw7MgbOG7gSBuw6B5OyBraOG7kWkgxJHGoW4ga2jDtG5nIGPDsywgdsOsIG7DsyBraMO0bmcgY2jhu6lhIGfDrCBiw6puIHRyb25nLlxuICAgKlxuICAgKiDwn5S0IEtIw5RORyBuw6puIMSR4buDIDA6IHRheSBj4bqnbSDEkeG7lWkga8OtY2ggdGjGsOG7m2MgY+G7p2Ega2jhu5FpIGNvbiBu4bqxbSBzw6F0IGJpw6puIGNvbnRhaW5lciwga2jDtG5nIGNo4burYSBs4buBXG4gICAqIHRow6wgY2h14buZdCBraMO0bmcgdHLDum5nIMSRxrDhu6NjIG7DsyB2w6Aga2jhu5FpIGNvbiBt4bqldCBsdcO0biBraOG6oyBuxINuZyByZXNpemUuXG4gICAqL1xuICBjb250YWluZXJQYWRkaW5nPzogbnVtYmVyO1xuICAvKiogdmnhu4FuIG5nb8OgaSBxdWFuaCBsxrDhu5tpIGPhuqVwIHRyYW5nLiBN4bq3YyDEkeG7i25oIGLhuq10ICovXG4gIG91dGVyTWFyZ2luPzogYm9vbGVhbjtcbiAgLyoqIGNo4burYSB0aMOqbSBiYW8gbmhpw6p1IHB4IGTGsOG7m2kgxJHDoXkgbMaw4bubaSBj4bqlcCB0cmFuZy4gTeG6t2MgxJHhu4tuaCA0MCAqL1xuICBvdXRlck1hcmdpbkJvdHRvbT86IG51bWJlcjtcbiAgLyoqIHPhu5EgaMOgbmcgdOG7kWkgdGhp4buDdSBt4buZdCBraOG7kWkgxJHGsOG7o2MgY28gbOG6oWkuIE3hurdjIMSR4buLbmggMiAqL1xuICBtaW5JdGVtUm93cz86IG51bWJlcjtcbiAgLyoqIGvDrWNoIHRoxrDhu5tjIG3hurdjIMSR4buLbmggY+G7p2Ega2jhu5FpIG3hu5tpLCB0w61uaCB0aGVvIMO0IGzGsOG7m2kuIE3hurdjIMSR4buLbmggMyBj4buZdCDDlyAyIGjDoG5nICovXG4gIGRlZmF1bHRJdGVtQ29scz86IG51bWJlcjtcbiAgZGVmYXVsdEl0ZW1Sb3dzPzogbnVtYmVyO1xuICAvKipcbiAgICogQ2hvIHBow6lwIGhhaSBraOG7kWkgS0jDgUMgYGxheWVySW5kZXhgIG7hurFtIGNo4buTbmcgbmhhdS5cbiAgICogQ2jhur8gxJHhu5kgYHR1RG9gIGx1w7RuIGLhuq10LCBraMO0bmcgxJHhu41jIGPhu50gbsOgeS5cbiAgICovXG4gIGFsbG93T3ZlcmxhcD86IGJvb2xlYW47XG4gIC8qKiB0cuG6p24gc+G7kSBj4bqlcCBjb250YWluZXIgbOG7k25nIG5oYXUuIE3hurdjIMSR4buLbmggMSAoY29udGFpbmVyIGtow7RuZyBjaOG7qWEgY29udGFpbmVyKSAqL1xuICBtYXhDb250YWluZXJEZXB0aD86IG51bWJlcjtcbiAgLyoqIELhuq10IHTDrW5oIG7Eg25nIHRodSBwaMOzbmcgKHpvb20pIGNhbnZhcy4gTeG6t2MgxJHhu4tuaCBmYWxzZSAqL1xuICBlbmFibGVab29tPzogYm9vbGVhbjtcbiAgLyoqIFThu7cgbOG7hyB0aHUgcGjDs25nIGJhbiDEkeG6p3UuIE3hurdjIMSR4buLbmggMSAoMTAwJSkgKi9cbiAgaW5pdGlhbFpvb20/OiBudW1iZXI7XG4gIC8qKiBHaeG7m2kgaOG6oW4gdGh1IHBow7NuZyB04buRaSB0aGnhu4N1LiBN4bq3YyDEkeG7i25oIDAuNCAoNDAlKSAqL1xuICB6b29tTWluPzogbnVtYmVyO1xuICAvKiogR2nhu5tpIGjhuqFuIHRodSBwaMOzbmcgdOG7kWkgxJFhLiBN4bq3YyDEkeG7i25oIDEuNSAoMTUwJSkgKi9cbiAgem9vbU1heD86IG51bWJlcjtcbiAgLyoqIELGsOG7m2MgbmjhuqN5IG3hu5dpIGzhuqduIHTEg25nL2dp4bqjbSB0aHUgcGjDs25nLiBN4bq3YyDEkeG7i25oIDAuMDUgKDUlKSAqL1xuICB6b29tU3RlcD86IG51bWJlcjtcbiAgLyoqIENoaeG7gXUgcuG7mW5nIGNodeG6qW4gY+G7p2EgY2FudmFzIHN0YWdlLCBweC4gTeG6t2MgxJHhu4tuaCAxNjY4ICovXG4gIHN0YWdlV2lkdGg/OiBudW1iZXI7XG4gIC8qKiBDaGnhu4F1IGNhbyB04buRaSB0aGnhu4N1IGPhu6dhIGNhbnZhcyBzdGFnZSwgcHguIE3hurdjIMSR4buLbmggOTM3ICovXG4gIHN0YWdlTWluSGVpZ2h0PzogbnVtYmVyO1xuICAvKiogS2jDs2EgbMawdSB04bu3IGzhu4cgdGh1IHBow7NuZyB2w6BvIGxvY2FsU3RvcmFnZSAodmQgJ29jYl9iaV9jYW52YXNfem9vbScpICovXG4gIHN0b3JhZ2VLZXk/OiBzdHJpbmc7XG4gIC8qKiBU4buxIMSR4buZbmcgduG7q2EgbcOgbiBow6xuaCBraGkgdOG6o2kgdHJhbmcgbOG6p24gxJHhuqd1IG7hur91IGtodW5nIG5ow6xuIG5o4buPIGjGoW4gc3RhZ2UuIE3hurdjIMSR4buLbmggdHJ1ZSAqL1xuICBhdXRvRml0T25Mb2FkPzogYm9vbGVhbjtcbn07XG5cbi8qKiBM4buxYSBjaOG7jW4gdOG7tyBs4buHIHRodSBwaMOzbmcgdHLDqm4gbWVudSBkcm9wZG93biAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X3pvb21QcmVzZXQgPSB7XG4gIC8qKiBLaG/DoSBpMThuLCBLSMOUTkcgcGjhuqNpIGNo4buvIGhp4buDbiB0aOG7iyDigJQgdGVtcGxhdGUgZOG7i2NoIHF1YSBgdHJhbnNsYXRlYCBwaXBlLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xufTtcblxuLyoqIFPhu7Ega2nhu4duIHRoxrAgdmnhu4duIGLhuq9uIHJhIGtoaSBi4buRIGPhu6VjIMSR4buVaSAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X2NoYW5nZUV2ZW50ID0ge1xuICByb290OiBUX2dyaWRMYXlvdXRfbm9kZTtcbiAgLyoqIGto4buRaSB24burYSBi4buLIHTDoWMgxJHhu5luZzsgYuG7jyB0cuG7kW5nIGtoaSDEkeG7lWkgZGnhu4duIHLhu5luZyAoc+G6r3AgZ+G7jW4sIG7huqFwIGzhuqFpKSAqL1xuICBub2RlSWQ/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIELhu5FpIGPhuqNuaCB0cnV54buBbiB2w6BvIGB0ZW1wbGF0ZVRvb2xiYXJgIOKAlCB0ZW1wbGF0ZSB04buxIHbhur0gdGhhbmggY8O0bmcgY+G7pSB0aGF5IGLhu5kgbsO6dCBt4bq3YyDEkeG7i25oLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxuZy10ZW1wbGF0ZSAjdG9vbGJhciBsZXQtbm9kZSBsZXQtY3R4PVwiY3R4XCI+XG4gKiAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b25cbiAqICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLXJlbW92ZSdcIlxuICogICAgIChvdXRDbGljayk9XCJjdHgucmVtb3ZlKClcIiAvPlxuICogPC9uZy10ZW1wbGF0ZT5cbiAqIGBgYFxuICovXG5leHBvcnQgdHlwZSBUX2dyaWRMYXlvdXRfdG9vbGJhckNvbnRleHQgPSB7XG4gIC8qKiBraOG7kWkgxJFhbmcgduG6vSDigJQgZMO5bmcgYGxldC1ub2RlYCB0cm9uZyB0ZW1wbGF0ZSAqL1xuICAkaW1wbGljaXQ6IFRfZ3JpZExheW91dF9ub2RlO1xuICAvKioga2jhu5FpIG7DoHkgbMOgIGNvbnRhaW5lciAoY8OzIHJ14buZdCkgaGF5IGto4buRaSDEkcahbiAqL1xuICBpc0NvbnRhaW5lcjogYm9vbGVhbjtcbiAgLyoqIGPDsm4gdGjDqm0gxJHGsOG7o2Mga2jhu5FpIHbDoG8gdHJvbmcga2jDtG5nIChjaMawYSBjaOG6oW0gdHLhuqduIGzhu5NuZyBj4bqlcCkgKi9cbiAgY2FuQWRkSW5zaWRlOiBib29sZWFuO1xuICAvKiogxJHhu5VpIMSRxrDhu6NjIGdp4buvYSBraOG7kWkgxJHGoW4g4oaUIGto4buRaSBnaMOpcCBraMO0bmcgKi9cbiAgY2FuVG9nZ2xlVHlwZTogYm9vbGVhbjtcbiAgLyoqIGfhu41pIMSR4buDIHRoxrAgdmnhu4duIHBow6F0IGBvdXRSZW1vdmVOb2RlYCBuaMawIGtoaSBi4bqlbSBuw7p0IHhvw6EgbeG6t2MgxJHhu4tuaCAqL1xuICByZW1vdmU6ICgpID0+IHZvaWQ7XG4gIC8qKiBn4buNaSDEkeG7gyB0aMawIHZp4buHbiBwaMOhdCBgb3V0QWRkQmxvY2tJbnNpZGVgICovXG4gIGFkZEluc2lkZTogKCkgPT4gdm9pZDtcbiAgLyoqIGfhu41pIMSR4buDIHRoxrAgdmnhu4duIHBow6F0IGBvdXRUb2dnbGVUeXBlYCAqL1xuICB0b2dnbGVUeXBlOiAoKSA9PiB2b2lkO1xufTtcblxuLyoqIEtodW5nIHhlbSB0csaw4bubYyAoZ2hvc3QgcHJldmlldykga2hpIGvDqW8gdGjhursgdOG7qyBiw6puIG5nb8OgaSB2w6BvIGNhbnZhcyAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X2Ryb3BHaG9zdCA9IHtcbiAgY29sOiBudW1iZXI7XG4gIHJvdzogbnVtYmVyO1xuICBjb2xzOiBudW1iZXI7XG4gIHJvd3M6IG51bWJlcjtcbiAgcGl4ZWxMZWZ0OiBudW1iZXI7XG4gIHBpeGVsVG9wOiBudW1iZXI7XG4gIHBpeGVsV2lkdGg6IG51bWJlcjtcbiAgcGl4ZWxIZWlnaHQ6IG51bWJlcjtcbiAgaXNJbnNpZGVHcm91cDogYm9vbGVhbjtcbiAgdGFyZ2V0UGFyZW50SWQ/OiBzdHJpbmc7XG4gIGdyb3VwVGl0bGU/OiBzdHJpbmc7XG4gIGNhcmRUaXRsZTogc3RyaW5nO1xuICBjYXJkSWNvblRleHQ/OiBzdHJpbmc7XG4gIGNhcmRJY29uQ2xhc3M/OiBzdHJpbmc7XG4gIGhvdmVyZWRHcmlkc3Rlcj86IEhUTUxFbGVtZW50O1xufTtcblxuLyoqIFPhu7Ega2nhu4duIHBow6F0IHJhIGtoaSB0aOG6oyBt4buZdCB0aOG6uyBt4bubaSB04burIGLDqm4gbmdvw6BpIHbDoG8gY2FudmFzICovXG5leHBvcnQgdHlwZSBUX2dyaWRMYXlvdXRfZHJvcEV2ZW50ID0ge1xuICBub2RlOiBUX2dyaWRMYXlvdXRfbm9kZTtcbiAgcGFyZW50SWQ/OiBzdHJpbmc7XG4gIGNvbDogbnVtYmVyO1xuICByb3c6IG51bWJlcjtcbiAgY29sczogbnVtYmVyO1xuICByb3dzOiBudW1iZXI7XG4gIHJhd0V2ZW50OiBEcmFnRXZlbnQ7XG4gIHBheWxvYWQ/OiB1bmtub3duO1xufTtcblxuLyoqIEThu68gbGnhu4d1IGPhu6dhIHRo4bq7IGvDqW8gdOG7qyBiw6puIG5nb8OgaSB2w6BvIGNhbnZhcyAqL1xuZXhwb3J0IHR5cGUgVF9ncmlkTGF5b3V0X2V4dGVybmFsRHJhZ1BheWxvYWQgPSB7XG4gIGtpbmQ/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBjb2xzPzogbnVtYmVyO1xuICByb3dzPzogbnVtYmVyO1xuICBpY29uVGV4dD86IHN0cmluZztcbiAgaWNvbkNsYXNzPzogc3RyaW5nO1xuICBkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59O1xuXG4iXX0=
|
package/esm2022/tree.service.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { uuid } from '@libs-ui/utils';
|
|
3
|
+
import { resolveCollisionsAndInsert } from './defines/collision.define';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* Thao tác trên cây khối: tìm, thêm, xoá, dồn khít, chặn lồng cấp quá sâu.
|
|
@@ -53,6 +54,24 @@ export class LibsUiGridLayoutTreeService {
|
|
|
53
54
|
// Trả về khối vừa tạo để nơi dùng biết `id` thư viện vừa sinh.
|
|
54
55
|
return node;
|
|
55
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Thêm khối vào vị trí (x, y) cụ thể và tự động đẩy các khối va chạm xuống dưới.
|
|
59
|
+
*/
|
|
60
|
+
insertWithCollision(root, parentId, item, targetCol = 0, targetRow = 0) {
|
|
61
|
+
const targetParent = parentId ? this.findById(root, parentId) : root;
|
|
62
|
+
if (!targetParent) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
targetParent.children = targetParent.children ?? [];
|
|
66
|
+
const node = {
|
|
67
|
+
...item,
|
|
68
|
+
id: item.id ?? uuid(),
|
|
69
|
+
x: targetCol,
|
|
70
|
+
y: targetRow,
|
|
71
|
+
};
|
|
72
|
+
resolveCollisionsAndInsert(targetParent.children, node);
|
|
73
|
+
return node;
|
|
74
|
+
}
|
|
56
75
|
/** Xoá một khối khỏi cây. Không cho xoá gốc. */
|
|
57
76
|
removeById(root, id) {
|
|
58
77
|
if (root.id === id) {
|
|
@@ -177,4 +196,4 @@ export class LibsUiGridLayoutTreeService {
|
|
|
177
196
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiGridLayoutTreeService, decorators: [{
|
|
178
197
|
type: Injectable
|
|
179
198
|
}] });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9zZXJ2aWNlcy9ncmlkLWxheW91dC9zcmMvdHJlZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd0Qzs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxRQUFRLENBQUMsSUFBdUIsRUFBRSxFQUFVO1FBQzFDLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFLENBQUM7WUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFdkMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUF1QixFQUFFLEVBQVU7UUFDNUMsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFekMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixPQUFPLEtBQUssQ0FBQztZQUNmLENB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QyxHQUFHLENBQUMsQ0FBQztZQUV0RCxJQUFJLFdBQVcsSUFBSSxjQUFjLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQzlDLFVBQVUsSUFBSSxDQUFDLENBQUM7Z0JBRWhCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQztvQkFDeEMsVUFBVSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDL0QsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsQ0FBQztnQkFFRCxTQUFTO1lBQ1gsQ0FBQztZQUVELFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNuRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUV2QixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQWtDO1FBQ3BELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7d0dBaE5VLDJCQUEyQjs0R0FBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdXVpZCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IFRfZ3JpZExheW91dF9uZXdOb2RlLCBUX2dyaWRMYXlvdXRfbm9kZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9ncmlkLWxheW91dC5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFRoYW8gdMOhYyB0csOqbiBjw6J5IGto4buRaTogdMOsbSwgdGjDqm0sIHhvw6EsIGThu5NuIGtow610LCBjaOG6t24gbOG7k25nIGPhuqVwIHF1w6Egc8OidS5cbiAqXG4gKiDwn5S0IE7hu5hJIELhu5ggdGjGsCB2aeG7h24g4oCUIGtow7RuZyB4deG6pXQgcmEgbmdvw6BpLiBOxqFpIGTDuW5nIMSRaSBxdWEgYExpYnNVaUdyaWRMYXlvdXRTZXJ2aWNlYCwg4bufIMSRw7MgbeG7l2lcbiAqIHRoYW8gdMOhYyBz4butYSBi4buRIGPhu6VjIHbhu6thIHbhur0gbOG6oWkgduG7q2EgYuG6r24gYG91dENoYW5nZWAgxJHDum5nIE3hu5hUIGzhuqduLiBDw6FjIGjDoG0g4bufIMSRw6J5IGPhu5EgdMOsbmggS0jDlE5HIHThu7FcbiAqIHbhur0gbOG6oWk6IMSR4buDIGNow7puZyB04buxIGfhu41pIHRow6wgbeG7l2kgdGhhbyB0w6FjIHbhur0gaGFpIGzGsOG7o3QgdsOgIGLhuq9uIGhhaSBz4buxIGtp4buHbiAobmfGsOG7nWkgZMO5bmcgY2jhu5F0XG4gKiAyOC8wOC8yMDI2OiBcIsSR4bq3dCDEkcO6bmcgY8OhYyDEkWnhu4NtIG3DoCBsw6BtIGNobyBsYXlvdXQgY8OzIHRo4buDIHRoYXkgxJHhu5VpIHRow7RpXCIpLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGlic1VpR3JpZExheW91dFRyZWVTZXJ2aWNlIHtcbiAgZmluZEJ5SWQobm9kZTogVF9ncmlkTGF5b3V0X25vZGUsIGlkOiBzdHJpbmcpOiBUX2dyaWRMYXlvdXRfbm9kZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKG5vZGUuaWQgPT09IGlkKSB7XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4gPz8gW10pIHtcbiAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5maW5kQnlJZChjaGlsZCwgaWQpO1xuXG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBmaW5kUGFyZW50KG5vZGU6IFRfZ3JpZExheW91dF9ub2RlLCBpZDogc3RyaW5nKTogVF9ncmlkTGF5b3V0X25vZGUgfCB1bmRlZmluZWQge1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbiA/PyBbXSkge1xuICAgICAgaWYgKGNoaWxkLmlkID09PSBpZCkge1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZm91bmQgPSB0aGlzLmZpbmRQYXJlbnQoY2hpbGQsIGlkKTtcblxuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRow6ptIGto4buRaSB2w6BvIGN14buRaSBt4buZdCBjb250YWluZXIuIFRoxrAgdmnhu4duIHThu7Egc2luaCBgaWRgIHbDoCB04buxIMSR4bq3dCBgeGAgwrcgYHlgIHh14buRbmcgaMOgbmcgdHLhu5FuZy5cbiAgICpcbiAgICogQHJldHVybnMga2jhu5FpIHbhu6thIHThuqFvIChrw6htIGBpZGAgduG7q2Egc2luaCksIGhv4bq3YyBgdW5kZWZpbmVkYCBraGkga2jDtG5nIHTDrG0gdGjhuqV5IGNvbnRhaW5lci5cbiAgICovXG4gIGFkZENoaWxkKHJvb3Q6IFRfZ3JpZExheW91dF9ub2RlLCBwYXJlbnRJZDogc3RyaW5nLCBpdGVtOiBUX2dyaWRMYXlvdXRfbmV3Tm9kZSk6IFRfZ3JpZExheW91dF9ub2RlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmZpbmRCeUlkKHJvb3QsIHBhcmVudElkKTtcblxuICAgIGlmICghcGFyZW50KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHBhcmVudC5jaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbiA/PyBbXTtcbiAgICAvLyDwn5S0IFRoxrAgdmnhu4duIHThu7Egc2luaCBgaWRgLiDEkMOieSBsw6AgbcOjIG3DoXkgZMO5bmcgxJHhu4MgdHJhIGPhu6l1LCBraMO0bmcgcGjhuqNpIHRo4bupIG5nxrDhu51pIGTDuW5nIG5naMSpIHJhIOKAlFxuICAgIC8vIGLhuq90IGjhu40gdOG7sSDEkeG6t3QgbMOgIG3hu51pIGjhu40gdOG6oW8gdHLDuW5nLCBtw6AgdHLDuW5nIGlkIHRow6wgYGZpbmRCeUlkYCB0cuG6oyBuaOG6p20ga2jhu5FpIHbDoCBj4bqjIGPDonkgaOG7j25nXG4gICAgLy8gaW0gbOG6t25nIChuZ8aw4budaSBkw7luZyBjaOG7kXQgMjgvMDgvMjAyNikuXG4gICAgY29uc3Qgbm9kZTogVF9ncmlkTGF5b3V0X25vZGUgPSB7IC4uLml0ZW0sIGlkOiBpdGVtLmlkID8/IHV1aWQoKSwgeDogMCwgeTogdGhpcy5uZXh0RnJlZVJvdyhwYXJlbnQuY2hpbGRyZW4pIH07XG5cbiAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChub2RlKTtcblxuICAgIC8vIFRy4bqjIHbhu4Ega2jhu5FpIHbhu6thIHThuqFvIMSR4buDIG7GoWkgZMO5bmcgYmnhur90IGBpZGAgdGjGsCB2aeG7h24gduG7q2Egc2luaC5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIC8qKiBYb8OhIG3hu5l0IGto4buRaSBraOG7j2kgY8OieS4gS2jDtG5nIGNobyB4b8OhIGfhu5FjLiAqL1xuICByZW1vdmVCeUlkKHJvb3Q6IFRfZ3JpZExheW91dF9ub2RlLCBpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHJvb3QuaWQgPT09IGlkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5maW5kUGFyZW50KHJvb3QsIGlkKTtcblxuICAgIGlmICghcGFyZW50Py5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHBhcmVudC5jaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbi5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgIT09IGlkKTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENodXnhu4NuIG3hu5l0IGto4buRaSDEkcahbiB0aMOgbmggQ09OVEFJTkVSOiBu4buZaSBkdW5nIGPFqSB0cuG7nyB0aMOgbmgga2jhu5FpIGNvbiDEkeG6p3UgdGnDqm4uXG4gICAqXG4gICAqIEtow7RuZyBt4bqldCBk4buvIGxp4buHdSDigJQgYGRhdGFgIGPhu6dhIGto4buRaSDEkcaw4bujYyBtYW5nIHRoZW8geHXhu5FuZyBraOG7kWkgY29uLlxuICAgKlxuICAgKiBAcmV0dXJucyBgZmFsc2VgIGtoaSBraMO0bmcgdMOsbSB0aOG6pXkga2jhu5FpLCBob+G6t2Mga2jhu5FpIMSRw6MgbMOgIGNvbnRhaW5lciBy4buTaS5cbiAgICovXG4gIHRvQ29udGFpbmVyKHJvb3Q6IFRfZ3JpZExheW91dF9ub2RlLCBpZDogc3RyaW5nLCBjb2xDb3VudDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZmluZEJ5SWQocm9vdCwgaWQpO1xuXG4gICAgaWYgKCFub2RlIHx8IChub2RlLmNoaWxkcmVuPy5sZW5ndGggPz8gMCkgPiAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbm9kZS5jaGlsZHJlbiA9IFt7IC4uLm5vZGUsIGlkOiB1dWlkKCksIHg6IDAsIHk6IDAsIGNvbHM6IGNvbENvdW50LCByb3dzOiA0LCBjaGlsZHJlbjogW10gfV07XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaHV54buDbiBt4buZdCBDT05UQUlORVIgduG7gSBraOG7kWkgxJHGoW46IGPDoWMga2jhu5FpIGNvbiDEkcaw4bujYyBOw4JORyBsw6puIGPhuqVwIHRyw6puLCBraMO0bmcgYuG7iyB4b8OhLlxuICAgKlxuICAgKiBAcmV0dXJucyBgZmFsc2VgIGtoaSBraMO0bmcgdMOsbSB0aOG6pXkga2jhu5FpLCBob+G6t2Mga2jhu5FpIHbhu5FuIGtow7RuZyBwaOG6o2kgY29udGFpbmVyLlxuICAgKi9cbiAgdG9TaW5nbGUocm9vdDogVF9ncmlkTGF5b3V0X25vZGUsIGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5maW5kQnlJZChyb290LCBpZCk7XG5cbiAgICBpZiAoIW5vZGUgfHwgKG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCA/PyAwKSA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudChyb290LCBpZCk7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4gPz8gW10pIHtcbiAgICAgIHBhcmVudD8uY2hpbGRyZW4/LnB1c2goeyAuLi5jaGlsZCwgY29sczogbm9kZS5jb2xzLCByb3dzOiAyIH0pO1xuICAgIH1cblxuICAgIG5vZGUuY2hpbGRyZW4gPSBbXTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEzDoG0gcGjhurNuZyBt4buNaSBjb250YWluZXIgbOG7k25nIHbGsOG7o3QgdHLhuqduLlxuICAgKlxuICAgKiDwn5S0IEPhuqduIHRoaeG6v3QgdsOsIGLhu5EgY+G7pWMgxJDDgyBMxq9VIGtow7RuZyDEkWkgcXVhIGx14bqtdCBjaOG6t24gbsOgbyBj4bunYSBnaWFvIGRp4buHbi4gTeG7mXQgYuG6o24gbMawdSBjxakg4oCUIHNpbmhcbiAgICogdHLGsOG7m2Mga2hpIGPDsyB0cuG6p24sIGhv4bq3YyBkbyB0aGFvIHTDoWMgbOG7l2kg4oCUIHbhuqtuIG7huqFwIHRo4bqzbmcgdsOgbyB2w6AgaGnhu4duIGNvbnRhaW5lciBs4buTbmcgY29udGFpbmVyLlxuICAgKiBDb250YWluZXIgdsaw4bujdCB0cuG6p24gYuG7iyBo4bqhIHRow6BuaCBraOG7kWkgdGjGsOG7nW5nLCBjb24gY+G7p2EgbsOzIG7Dom5nIGzDqm4gY+G6pXAgdHLDqm46IEtIw5RORyBt4bqldCBk4buvIGxp4buHdS5cbiAgICpcbiAgICogQHJldHVybnMgc+G7kSBjb250YWluZXIgxJHDoyBsw6BtIHBo4bqzbmdcbiAgICovXG4gIGZsYXR0ZW5PdmVyRGVwdGhDb250YWluZXJzKG5vZGU6IFRfZ3JpZExheW91dF9ub2RlLCBtYXhEZXB0aDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy53YWxrRmxhdHRlbihub2RlLCAwLCBtYXhEZXB0aCk7XG4gIH1cblxuICAvKipcbiAgICogROG7k24ga2jhu5FpIGtow610IGzDqm4gdHLDqm4gdGhlbyB0aOG7qSB04buxIMSR4buNYywgbOG6pXAgaOG6v3QgY2jhu5cgdHLhu5FuZy5cbiAgICpcbiAgICog8J+UtCBLSMOUTkcgc+G7rWEgYG5vZGUucm93c2AgY+G7p2EgY29udGFpbmVyLiBDaGnhu4F1IGNhbyBjb250YWluZXIgdMOtbmggdGhlbyDEkcahbiB24buLIGjDoG5nIGPhu6dhIGzGsOG7m2kgQ0hBLFxuICAgKiBjw7JuIGBjdXJyZW50Um93YCDEkeG6v20gdGhlbyDEkcahbiB24buLIGjDoG5nIGPhu6dhIGzGsOG7m2kgQ09OIOKAlCB0cuG7mW4gaGFpIHRoYW5nIMSRbyBsw6AgY29udGFpbmVyIHBow6xuaCBsw6puXG4gICAqIGfhuqVwIG3huqV5IGzhuqduLlxuICAgKi9cbiAgY29tcGFjdChub2RlOiBUX2dyaWRMYXlvdXRfbm9kZSwgY29sQ291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMud2Fsa0NvbXBhY3Qobm9kZSwgY29sQ291bnQpO1xuICB9XG5cbiAgcHJpdmF0ZSB3YWxrQ29tcGFjdChub2RlOiBUX2dyaWRMYXlvdXRfbm9kZSwgY29sQ291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjtcblxuICAgIGlmICghY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGluUmVhZGluZ09yZGVyID0gWy4uLmNoaWxkcmVuXS5zb3J0KChhLCBiKSA9PiBhLnkgLSBiLnkgfHwgYS54IC0gYi54KTtcbiAgICBsZXQgY3VycmVudFJvdyA9IDA7XG4gICAgbGV0IHVzZWRDb2xzID0gMDtcbiAgICBsZXQgdGFsbGVzdEluUm93ID0gMDtcblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpblJlYWRpbmdPcmRlcikge1xuICAgICAgY29uc3Qgd2lkdGggPSBNYXRoLm1pbihpdGVtLmNvbHMsIGNvbENvdW50KTtcblxuICAgICAgaWYgKHVzZWRDb2xzID4gMCAmJiB1c2VkQ29scyArIHdpZHRoID4gY29sQ291bnQpIHtcbiAgICAgICAgY3VycmVudFJvdyArPSB0YWxsZXN0SW5Sb3c7XG4gICAgICAgIHVzZWRDb2xzID0gMDtcbiAgICAgICAgdGFsbGVzdEluUm93ID0gMDtcbiAgICAgIH1cblxuICAgICAgaXRlbS54ID0gdXNlZENvbHM7XG4gICAgICBpdGVtLnkgPSBjdXJyZW50Um93O1xuICAgICAgaXRlbS5jb2xzID0gd2lkdGg7XG4gICAgICB1c2VkQ29scyArPSB3aWR0aDtcbiAgICAgIHRhbGxlc3RJblJvdyA9IE1hdGgubWF4KHRhbGxlc3RJblJvdywgaXRlbS5yb3dzKTtcblxuICAgICAgaWYgKChpdGVtLmNoaWxkcmVuPy5sZW5ndGggPz8gMCkgPiAwKSB7XG4gICAgICAgIHRoaXMud2Fsa0NvbXBhY3QoaXRlbSwgY29sQ291bnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgd2Fsa0ZsYXR0ZW4obm9kZTogVF9ncmlkTGF5b3V0X25vZGUsIGNvbnRhaW5lckRlcHRoOiBudW1iZXIsIG1heERlcHRoOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjtcblxuICAgIGlmICghY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgbGV0IGZpeGVkQ291bnQgPSAwO1xuICAgIGNvbnN0IHJlc3VsdDogQXJyYXk8VF9ncmlkTGF5b3V0X25vZGU+ID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBpc0NvbnRhaW5lciA9IChjaGlsZC5jaGlsZHJlbj8ubGVuZ3RoID8/IDApID4gMDtcblxuICAgICAgaWYgKGlzQ29udGFpbmVyICYmIGNvbnRhaW5lckRlcHRoID49IG1heERlcHRoKSB7XG4gICAgICAgIGZpeGVkQ291bnQgKz0gMTtcblxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY2hpbGQuY2hpbGRyZW4gPz8gW10pIHtcbiAgICAgICAgICBmaXhlZENvdW50ICs9IHRoaXMud2Fsa0ZsYXR0ZW4oaXRlbSwgY29udGFpbmVyRGVwdGgsIG1heERlcHRoKTtcbiAgICAgICAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBmaXhlZENvdW50ICs9IHRoaXMud2Fsa0ZsYXR0ZW4oY2hpbGQsIGlzQ29udGFpbmVyID8gY29udGFpbmVyRGVwdGggKyAxIDogY29udGFpbmVyRGVwdGgsIG1heERlcHRoKTtcbiAgICAgIHJlc3VsdC5wdXNoKGNoaWxkKTtcbiAgICB9XG5cbiAgICBub2RlLmNoaWxkcmVuID0gcmVzdWx0O1xuXG4gICAgcmV0dXJuIGZpeGVkQ291bnQ7XG4gIH1cblxuICBwcml2YXRlIG5leHRGcmVlUm93KGNoaWxkcmVuOiBBcnJheTxUX2dyaWRMYXlvdXRfbm9kZT4pOiBudW1iZXIge1xuICAgIHJldHVybiBjaGlsZHJlbi5yZWR1Y2UoKG1heCwgY2hpbGQpID0+IE1hdGgubWF4KG1heCwgY2hpbGQueSArIGNoaWxkLnJvd3MpLCAwKTtcbiAgfVxufVxuIl19
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9zZXJ2aWNlcy9ncmlkLWxheW91dC9zcmMvdHJlZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUV4RTs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxRQUFRLENBQUMsSUFBdUIsRUFBRSxFQUFVO1FBQzFDLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFLENBQUM7WUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFdkMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUF1QixFQUFFLEVBQVU7UUFDNUMsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFekMsSUFB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QUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNuRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUV2QixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQWtDO1FBQ3BELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7d0dBN09VLDJCQUEyQjs0R0FBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdXVpZCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IFRfZ3JpZExheW91dF9uZXdOb2RlLCBUX2dyaWRMYXlvdXRfbm9kZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9ncmlkLWxheW91dC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgcmVzb2x2ZUNvbGxpc2lvbnNBbmRJbnNlcnQgfSBmcm9tICcuL2RlZmluZXMvY29sbGlzaW9uLmRlZmluZSc7XG5cbi8qKlxuICogVGhhbyB0w6FjIHRyw6puIGPDonkga2jhu5FpOiB0w6xtLCB0aMOqbSwgeG/DoSwgZOG7k24ga2jDrXQsIGNo4bq3biBs4buTbmcgY+G6pXAgcXXDoSBzw6J1LlxuICpcbiAqIPCflLQgTuG7mEkgQuG7mCB0aMawIHZp4buHbiDigJQga2jDtG5nIHh14bqldCByYSBuZ2/DoGkuIE7GoWkgZMO5bmcgxJFpIHF1YSBgTGlic1VpR3JpZExheW91dFNlcnZpY2VgLCDhu58gxJHDsyBt4buXaVxuICogdGhhbyB0w6FjIHPhu61hIGLhu5EgY+G7pWMgduG7q2EgduG6vSBs4bqhaSB24burYSBi4bqvbiBgb3V0Q2hhbmdlYCDEkcO6bmcgTeG7mFQgbOG6p24uIEPDoWMgaMOgbSDhu58gxJHDonkgY+G7kSB0w6xuaCBLSMOUTkcgdOG7sVxuICogduG6vSBs4bqhaTogxJHhu4MgY2jDum5nIHThu7EgZ+G7jWkgdGjDrCBt4buXaSB0aGFvIHTDoWMgduG6vSBoYWkgbMaw4bujdCB2w6AgYuG6r24gaGFpIHPhu7Ega2nhu4duIChuZ8aw4budaSBkw7luZyBjaOG7kXRcbiAqIDI4LzA4LzIwMjY6IFwixJHhurd0IMSRw7puZyBjw6FjIMSRaeG7g20gbcOgIGzDoG0gY2hvIGxheW91dCBjw7MgdGjhu4MgdGhheSDEkeG7lWkgdGjDtGlcIikuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMaWJzVWlHcmlkTGF5b3V0VHJlZVNlcnZpY2Uge1xuICBmaW5kQnlJZChub2RlOiBUX2dyaWRMYXlvdXRfbm9kZSwgaWQ6IHN0cmluZyk6IFRfZ3JpZExheW91dF9ub2RlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAobm9kZS5pZCA9PT0gaWQpIHtcbiAgICAgIHJldHVybiBub2RlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbiA/PyBbXSkge1xuICAgICAgY29uc3QgZm91bmQgPSB0aGlzLmZpbmRCeUlkKGNoaWxkLCBpZCk7XG5cbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGZpbmRQYXJlbnQobm9kZTogVF9ncmlkTGF5b3V0X25vZGUsIGlkOiBzdHJpbmcpOiBUX2dyaWRMYXlvdXRfbm9kZSB8IHVuZGVmaW5lZCB7XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuID8/IFtdKSB7XG4gICAgICBpZiAoY2hpbGQuaWQgPT09IGlkKSB7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmb3VuZCA9IHRoaXMuZmluZFBhcmVudChjaGlsZCwgaWQpO1xuXG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGjDqm0ga2jhu5FpIHbDoG8gY3Xhu5FpIG3hu5l0IGNvbnRhaW5lci4gVGjGsCB2aeG7h24gdOG7sSBzaW5oIGBpZGAgdsOgIHThu7EgxJHhurd0IGB4YCDCtyBgeWAgeHXhu5FuZyBow6BuZyB0cuG7kW5nLlxuICAgKlxuICAgKiBAcmV0dXJucyBraOG7kWkgduG7q2EgdOG6oW8gKGvDqG0gYGlkYCB24burYSBzaW5oKSwgaG/hurdjIGB1bmRlZmluZWRgIGtoaSBraMO0bmcgdMOsbSB0aOG6pXkgY29udGFpbmVyLlxuICAgKi9cbiAgYWRkQ2hpbGQocm9vdDogVF9ncmlkTGF5b3V0X25vZGUsIHBhcmVudElkOiBzdHJpbmcsIGl0ZW06IFRfZ3JpZExheW91dF9uZXdOb2RlKTogVF9ncmlkTGF5b3V0X25vZGUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZEJ5SWQocm9vdCwgcGFyZW50SWQpO1xuXG4gICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcGFyZW50LmNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuID8/IFtdO1xuICAgIC8vIPCflLQgVGjGsCB2aeG7h24gdOG7sSBzaW5oIGBpZGAuIMSQw6J5IGzDoCBtw6MgbcOheSBkw7luZyDEkeG7gyB0cmEgY+G7qXUsIGtow7RuZyBwaOG6o2kgdGjhu6kgbmfGsOG7nWkgZMO5bmcgbmdoxKkgcmEg4oCUXG4gICAgLy8gYuG6r3QgaOG7jSB04buxIMSR4bq3dCBsw6AgbeG7nWkgaOG7jSB04bqhbyB0csO5bmcsIG3DoCB0csO5bmcgaWQgdGjDrCBgZmluZEJ5SWRgIHRy4bqjIG5o4bqnbSBraOG7kWkgdsOgIGPhuqMgY8OieSBo4buPbmdcbiAgICAvLyBpbSBs4bq3bmcgKG5nxrDhu51pIGTDuW5nIGNo4buRdCAyOC8wOC8yMDI2KS5cbiAgICBjb25zdCBub2RlOiBUX2dyaWRMYXlvdXRfbm9kZSA9IHsgLi4uaXRlbSwgaWQ6IGl0ZW0uaWQgPz8gdXVpZCgpLCB4OiAwLCB5OiB0aGlzLm5leHRGcmVlUm93KHBhcmVudC5jaGlsZHJlbikgfTtcblxuICAgIHBhcmVudC5jaGlsZHJlbi5wdXNoKG5vZGUpO1xuXG4gICAgLy8gVHLhuqMgduG7gSBraOG7kWkgduG7q2EgdOG6oW8gxJHhu4MgbsahaSBkw7luZyBiaeG6v3QgYGlkYCB0aMawIHZp4buHbiB24burYSBzaW5oLlxuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRow6ptIGto4buRaSB2w6BvIHbhu4sgdHLDrSAoeCwgeSkgY+G7pSB0aOG7gyB2w6AgdOG7sSDEkeG7mW5nIMSR4bqpeSBjw6FjIGto4buRaSB2YSBjaOG6oW0geHXhu5FuZyBkxrDhu5tpLlxuICAgKi9cbiAgaW5zZXJ0V2l0aENvbGxpc2lvbihcbiAgICByb290OiBUX2dyaWRMYXlvdXRfbm9kZSxcbiAgICBwYXJlbnRJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGl0ZW06IFRfZ3JpZExheW91dF9uZXdOb2RlLFxuICAgIHRhcmdldENvbCA9IDAsXG4gICAgdGFyZ2V0Um93ID0gMCxcbiAgKTogVF9ncmlkTGF5b3V0X25vZGUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHRhcmdldFBhcmVudCA9IHBhcmVudElkID8gdGhpcy5maW5kQnlJZChyb290LCBwYXJlbnRJZCkgOiByb290O1xuXG4gICAgaWYgKCF0YXJnZXRQYXJlbnQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdGFyZ2V0UGFyZW50LmNoaWxkcmVuID0gdGFyZ2V0UGFyZW50LmNoaWxkcmVuID8/IFtdO1xuICAgIGNvbnN0IG5vZGU6IFRfZ3JpZExheW91dF9ub2RlID0ge1xuICAgICAgLi4uaXRlbSxcbiAgICAgIGlkOiBpdGVtLmlkID8/IHV1aWQoKSxcbiAgICAgIHg6IHRhcmdldENvbCxcbiAgICAgIHk6IHRhcmdldFJvdyxcbiAgICB9O1xuXG4gICAgcmVzb2x2ZUNvbGxpc2lvbnNBbmRJbnNlcnQodGFyZ2V0UGFyZW50LmNoaWxkcmVuLCBub2RlKTtcblxuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgLyoqIFhvw6EgbeG7mXQga2jhu5FpIGto4buPaSBjw6J5LiBLaMO0bmcgY2hvIHhvw6EgZ+G7kWMuICovXG4gIHJlbW92ZUJ5SWQocm9vdDogVF9ncmlkTGF5b3V0X25vZGUsIGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAocm9vdC5pZCA9PT0gaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmZpbmRQYXJlbnQocm9vdCwgaWQpO1xuXG4gICAgaWYgKCFwYXJlbnQ/LmNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcGFyZW50LmNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5pZCAhPT0gaWQpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2h1eeG7g24gbeG7mXQga2jhu5FpIMSRxqFuIHRow6BuaCBDT05UQUlORVI6IG7hu5lpIGR1bmcgY8WpIHRy4bufIHRow6BuaCBraOG7kWkgY29uIMSR4bqndSB0acOqbi5cbiAgICpcbiAgICogS2jDtG5nIG3huqV0IGThu68gbGnhu4d1IOKAlCBgZGF0YWAgY+G7p2Ega2jhu5FpIMSRxrDhu6NjIG1hbmcgdGhlbyB4deG7kW5nIGto4buRaSBjb24uXG4gICAqXG4gICAqIEByZXR1cm5zIGBmYWxzZWAga2hpIGtow7RuZyB0w6xtIHRo4bqleSBraOG7kWksIGhv4bq3YyBraOG7kWkgxJHDoyBsw6AgY29udGFpbmVyIHLhu5NpLlxuICAgKi9cbiAgdG9Db250YWluZXIocm9vdDogVF9ncmlkTGF5b3V0X25vZGUsIGlkOiBzdHJpbmcsIGNvbENvdW50OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5maW5kQnlJZChyb290LCBpZCk7XG5cbiAgICBpZiAoIW5vZGUgfHwgKG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCA/PyAwKSA+IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBub2RlLmNoaWxkcmVuID0gW3sgLi4ubm9kZSwgaWQ6IHV1aWQoKSwgeDogMCwgeTogMCwgY29sczogY29sQ291bnQsIHJvd3M6IDQsIGNoaWxkcmVuOiBbXSB9XTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENodXnhu4NuIG3hu5l0IENPTlRBSU5FUiB24buBIGto4buRaSDEkcahbjogY8OhYyBraOG7kWkgY29uIMSRxrDhu6NjIE7Dgk5HIGzDqm4gY+G6pXAgdHLDqm4sIGtow7RuZyBi4buLIHhvw6EuXG4gICAqXG4gICAqIEByZXR1cm5zIGBmYWxzZWAga2hpIGtow7RuZyB0w6xtIHRo4bqleSBraOG7kWksIGhv4bq3YyBraOG7kWkgduG7kW4ga2jDtG5nIHBo4bqjaSBjb250YWluZXIuXG4gICAqL1xuICB0b1NpbmdsZShyb290OiBUX2dyaWRMYXlvdXRfbm9kZSwgaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmZpbmRCeUlkKHJvb3QsIGlkKTtcblxuICAgIGlmICghbm9kZSB8fCAobm9kZS5jaGlsZHJlbj8ubGVuZ3RoID8/IDApID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5maW5kUGFyZW50KHJvb3QsIGlkKTtcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbiA/PyBbXSkge1xuICAgICAgcGFyZW50Py5jaGlsZHJlbj8ucHVzaCh7IC4uLmNoaWxkLCBjb2xzOiBub2RlLmNvbHMsIHJvd3M6IDIgfSk7XG4gICAgfVxuXG4gICAgbm9kZS5jaGlsZHJlbiA9IFtdO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogTMOgbSBwaOG6s25nIG3hu41pIGNvbnRhaW5lciBs4buTbmcgdsaw4bujdCB0cuG6p24uXG4gICAqXG4gICAqIPCflLQgQ+G6p24gdGhp4bq/dCB2w6wgYuG7kSBj4bulYyDEkMODIEzGr1Uga2jDtG5nIMSRaSBxdWEgbHXhuq10IGNo4bq3biBuw6BvIGPhu6dhIGdpYW8gZGnhu4duLiBN4buZdCBi4bqjbiBsxrB1IGPFqSDigJQgc2luaFxuICAgKiB0csaw4bubYyBraGkgY8OzIHRy4bqnbiwgaG/hurdjIGRvIHRoYW8gdMOhYyBs4buXaSDigJQgduG6q24gbuG6oXAgdGjhurNuZyB2w6BvIHbDoCBoaeG7h24gY29udGFpbmVyIGzhu5NuZyBjb250YWluZXIuXG4gICAqIENvbnRhaW5lciB2xrDhu6N0IHRy4bqnbiBi4buLIGjhuqEgdGjDoG5oIGto4buRaSB0aMaw4budbmcsIGNvbiBj4bunYSBuw7MgbsOibmcgbMOqbiBj4bqlcCB0csOqbjogS0jDlE5HIG3huqV0IGThu68gbGnhu4d1LlxuICAgKlxuICAgKiBAcmV0dXJucyBz4buRIGNvbnRhaW5lciDEkcOjIGzDoG0gcGjhurNuZ1xuICAgKi9cbiAgZmxhdHRlbk92ZXJEZXB0aENvbnRhaW5lcnMobm9kZTogVF9ncmlkTGF5b3V0X25vZGUsIG1heERlcHRoOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLndhbGtGbGF0dGVuKG5vZGUsIDAsIG1heERlcHRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBE4buTbiBraOG7kWkga2jDrXQgbMOqbiB0csOqbiB0aGVvIHRo4bupIHThu7EgxJHhu41jLCBs4bqlcCBo4bq/dCBjaOG7lyB0cuG7kW5nLlxuICAgKlxuICAgKiDwn5S0IEtIw5RORyBz4butYSBgbm9kZS5yb3dzYCBj4bunYSBjb250YWluZXIuIENoaeG7gXUgY2FvIGNvbnRhaW5lciB0w61uaCB0aGVvIMSRxqFuIHbhu4sgaMOgbmcgY+G7p2EgbMaw4bubaSBDSEEsXG4gICAqIGPDsm4gYGN1cnJlbnRSb3dgIMSR4bq/bSB0aGVvIMSRxqFuIHbhu4sgaMOgbmcgY+G7p2EgbMaw4bubaSBDT04g4oCUIHRy4buZbiBoYWkgdGhhbmcgxJFvIGzDoCBjb250YWluZXIgcGjDrG5oIGzDqm5cbiAgICogZ+G6pXAgbeG6pXkgbOG6p24uXG4gICAqL1xuICBjb21wYWN0KG5vZGU6IFRfZ3JpZExheW91dF9ub2RlLCBjb2xDb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy53YWxrQ29tcGFjdChub2RlLCBjb2xDb3VudCk7XG4gIH1cblxuICBwcml2YXRlIHdhbGtDb21wYWN0KG5vZGU6IFRfZ3JpZExheW91dF9ub2RlLCBjb2xDb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuO1xuXG4gICAgaWYgKCFjaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5SZWFkaW5nT3JkZXIgPSBbLi4uY2hpbGRyZW5dLnNvcnQoKGEsIGIpID0+IGEueSAtIGIueSB8fCBhLnggLSBiLngpO1xuICAgIGxldCBjdXJyZW50Um93ID0gMDtcbiAgICBsZXQgdXNlZENvbHMgPSAwO1xuICAgIGxldCB0YWxsZXN0SW5Sb3cgPSAwO1xuXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGluUmVhZGluZ09yZGVyKSB7XG4gICAgICBjb25zdCB3aWR0aCA9IE1hdGgubWluKGl0ZW0uY29scywgY29sQ291bnQpO1xuXG4gICAgICBpZiAodXNlZENvbHMgPiAwICYmIHVzZWRDb2xzICsgd2lkdGggPiBjb2xDb3VudCkge1xuICAgICAgICBjdXJyZW50Um93ICs9IHRhbGxlc3RJblJvdztcbiAgICAgICAgdXNlZENvbHMgPSAwO1xuICAgICAgICB0YWxsZXN0SW5Sb3cgPSAwO1xuICAgICAgfVxuXG4gICAgICBpdGVtLnggPSB1c2VkQ29scztcbiAgICAgIGl0ZW0ueSA9IGN1cnJlbnRSb3c7XG4gICAgICBpdGVtLmNvbHMgPSB3aWR0aDtcbiAgICAgIHVzZWRDb2xzICs9IHdpZHRoO1xuICAgICAgdGFsbGVzdEluUm93ID0gTWF0aC5tYXgodGFsbGVzdEluUm93LCBpdGVtLnJvd3MpO1xuXG4gICAgICBpZiAoKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA/PyAwKSA+IDApIHtcbiAgICAgICAgdGhpcy53YWxrQ29tcGFjdChpdGVtLCBjb2xDb3VudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3YWxrRmxhdHRlbihub2RlOiBUX2dyaWRMYXlvdXRfbm9kZSwgY29udGFpbmVyRGVwdGg6IG51bWJlciwgbWF4RGVwdGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuO1xuXG4gICAgaWYgKCFjaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBsZXQgZml4ZWRDb3VudCA9IDA7XG4gICAgY29uc3QgcmVzdWx0OiBBcnJheTxUX2dyaWRMYXlvdXRfbm9kZT4gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGlzQ29udGFpbmVyID0gKGNoaWxkLmNoaWxkcmVuPy5sZW5ndGggPz8gMCkgPiAwO1xuXG4gICAgICBpZiAoaXNDb250YWluZXIgJiYgY29udGFpbmVyRGVwdGggPj0gbWF4RGVwdGgpIHtcbiAgICAgICAgZml4ZWRDb3VudCArPSAxO1xuXG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBjaGlsZC5jaGlsZHJlbiA/PyBbXSkge1xuICAgICAgICAgIGZpeGVkQ291bnQgKz0gdGhpcy53YWxrRmxhdHRlbihpdGVtLCBjb250YWluZXJEZXB0aCwgbWF4RGVwdGgpO1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGZpeGVkQ291bnQgKz0gdGhpcy53YWxrRmxhdHRlbihjaGlsZCwgaXNDb250YWluZXIgPyBjb250YWluZXJEZXB0aCArIDEgOiBjb250YWluZXJEZXB0aCwgbWF4RGVwdGgpO1xuICAgICAgcmVzdWx0LnB1c2goY2hpbGQpO1xuICAgIH1cblxuICAgIG5vZGUuY2hpbGRyZW4gPSByZXN1bHQ7XG5cbiAgICByZXR1cm4gZml4ZWRDb3VudDtcbiAgfVxuXG4gIHByaXZhdGUgbmV4dEZyZWVSb3coY2hpbGRyZW46IEFycmF5PFRfZ3JpZExheW91dF9ub2RlPik6IG51bWJlciB7XG4gICAgcmV0dXJuIGNoaWxkcmVuLnJlZHVjZSgobWF4LCBjaGlsZCkgPT4gTWF0aC5tYXgobWF4LCBjaGlsZC55ICsgY2hpbGQucm93cyksIDApO1xuICB9XG59XG4iXX0=
|