@rosen-bridge/watcher-data-extractor 13.0.7 → 14.0.0-d7a97532

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 +1 @@
1
- {"version":3,"file":"permitExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/permitExtractor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAkC,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAEnD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,cAAM,eAAgB,SAAQ,iBAAiB,CAAC,WAAW,EAAE,YAAY,CAAC;IACxE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,QAAQ,CAAC,WAAW;;oDAtBqB,CAAC;gEAIJ,CAAC;gEAEmB,CAAC;8CAG5B,CAAC;+CAGF,CAAA;;mCAMO,CAAC;;;qEAepC,CAAF;oEAMI,CAAC;;;2EAY0C,CAAC;oDAO/B,CAAC;4DAKL,CAAC;;;;;;;;;;;;;;iFAiCJ,CADL;;;;;;;gEA4CyB,CAAC;yDAIzB,CAAH;;0DAI+D,CAAC;sEAIL,CAAC;iEAMvD,CAAC;6EAGiD,CAAC;yDAOrD,CAAC;2EAM6B,CAAC;gEAI7B,CAAR;;0IAmBA,CAJC;yHAQqB,CAAC;kHAInB,CAAA;mCASY,CAAC;;;;mCAYO,CAAC;;;gEASL,CAAC;oEAUgB,CAAC;;mCAUD,CAAC;;0CAOD,CAAC;;gDAQ9B,CAAN;;uEAUM,CAAL;;;;;;;MAjQkB;gBAGnB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,cAAc;IAiBzB,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,GACjB,KAAK,KAAK,CAAC,WAAW,CAAC,EACvB,OAAO,SAAS,KACf,OAAO,CAAC,OAAO,CAAC,CAoEjB;IAEF,SAAS,GAAU,MAAM,MAAM,mBAE7B;IAEF;;OAEG;IACH,cAAc,GAAU,cAAc,SAAS,mBA0B7C;IAEF;;;;;OAKG;IACH,wBAAwB,GACtB,uBAAuB,KAAK,CAAC,MAAM,CAAC,EACpC,eAAe,MAAM,mBAmBrB;IAEF;;;OAGG;IACH,kBAAkB,GAChB,OAAO,MAAM,KACZ,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAQrC;IAEF;;;;OAIG;IACH,oBAAoB,GAClB,eAAe,MAAM,KACpB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAuBhC;IAEF;;;OAGG;IACH,UAAU,GAAU,MAAM,MAAM;;;OAM9B;IAEF;;;;;;;OAOG;IACH,iBAAiB,GAAU,OAAO,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,gCA4BpD;IAEF;;;;;OAKG;IACH,qBAAqB,QAAO,kBAAkB,CAAC,YAAY,CAAC,CACT;CACpD;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"permitExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/permitExtractor.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,cAAM,eAAgB,SAAQ,wBAAwB,CACpD,eAAe,EACf,YAAY,CACb;IACC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAG3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,CAAC,EAAE,cAAc;IAezB;;OAEG;IACH,KAAK,eAAsB;IAE3B;;;;OAIG;IACH,UAAU,GAAI,KAAK,SAAS,KAAG,OAAO,CAYpC;IAEF;;;;;;;OAOG;IACH,cAAc,GAAI,KAAK,SAAS,KAAG,eAAe,GAAG,SAAS,CAc5D;CACH;AAED,eAAe,eAAe,CAAC"}
@@ -1,192 +1,43 @@
1
1
  import { Buffer } from 'buffer';
2
2
  import * as wasm from 'ergo-lib-wasm-nodejs';
3
- import * as ergoLib from 'ergo-lib-wasm-nodejs';
4
- import { difference } from 'lodash-es';
5
- import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
3
+ import { AbstractErgoBoxExtractor, } from '@rosen-bridge/abstract-extractor';
6
4
  import { DummyLogger } from '@rosen-bridge/abstract-logger';
7
- import ergoExplorerClientFactory from '@rosen-clients/ergo-explorer';
8
5
  import PermitAction from '../actions/permitAction';
9
- import { DefaultApiLimit } from '../constants';
10
6
  import { JsonBI } from '../utils';
11
- class PermitExtractor extends AbstractExtractor {
12
- logger;
7
+ class PermitExtractor extends AbstractErgoBoxExtractor {
13
8
  id;
14
- dataSource;
15
9
  actions;
16
10
  permitErgoTree;
17
11
  RWT;
18
- explorerApi;
19
- constructor(id, dataSource, address, RWT, explorerUrl, logger) {
20
- super();
12
+ constructor(id, dataSource, address, RWT, initializeOptions, logger) {
13
+ super(initializeOptions, logger);
21
14
  this.id = id;
22
- this.dataSource = dataSource;
23
15
  this.permitErgoTree = wasm.Address.from_base58(address)
24
16
  .to_ergo_tree()
25
17
  .to_base16_bytes();
26
18
  this.RWT = RWT;
27
19
  this.logger = logger ? logger : new DummyLogger();
28
20
  this.actions = new PermitAction(dataSource, this.logger.child('PermitAction'));
29
- this.explorerApi = ergoExplorerClientFactory(explorerUrl);
30
21
  }
31
- getId = () => this.id;
32
22
  /**
33
- * gets block id and transactions corresponding to the block and saves if they are valid rosen
34
- * transactions and in case of success return true and in case of failure returns false
35
- * @param block
36
- * @param txs
23
+ * get Id for current extractor
37
24
  */
38
- processTransactions = (txs, block) => {
39
- return new Promise((resolve, reject) => {
40
- try {
41
- const boxes = [];
42
- const spendIds = [];
43
- txs.forEach((transaction) => {
44
- for (const output of transaction.outputs) {
45
- try {
46
- if (output.additionalRegisters &&
47
- output.additionalRegisters.R4 &&
48
- output.assets &&
49
- output.assets.length > 0 &&
50
- output.assets[0].tokenId === this.RWT &&
51
- output.ergoTree === this.permitErgoTree) {
52
- const boxOutput = wasm.ErgoBox.from_json(JsonBI.stringify(output));
53
- const r4 = boxOutput.register_value(wasm.NonMandatoryRegisterId.R4);
54
- if (r4) {
55
- const R4Serialized = r4.to_byte_array();
56
- if (R4Serialized.length >= 1) {
57
- boxes.push({
58
- boxId: output.boxId,
59
- boxSerialized: Buffer.from(boxOutput.sigma_serialize_bytes()).toString('base64'),
60
- WID: Buffer.from(R4Serialized).toString('hex'),
61
- txId: output.transactionId,
62
- });
63
- }
64
- }
65
- }
66
- }
67
- catch {
68
- // empty
69
- }
70
- }
71
- // process inputs
72
- for (const input of transaction.inputs) {
73
- spendIds.push(input.boxId);
74
- }
75
- });
76
- this.actions
77
- .storePermits(boxes, block, this.getId())
78
- .then(() => {
79
- this.actions
80
- .spendPermits(spendIds, block, this.getId())
81
- .then(() => {
82
- resolve(true);
83
- });
84
- })
85
- .catch((e) => {
86
- this.logger.error(`Error in storing permits of the block ${block}: ${e}`);
87
- reject(e);
88
- });
89
- }
90
- catch (e) {
91
- this.logger.error(`block ${block} doesn't save in the database with error: ${e}`);
92
- reject(e);
93
- }
94
- });
95
- };
96
- forkBlock = async (hash) => {
97
- await this.actions.deleteBlock(hash, this.getId());
98
- };
25
+ getId = () => `${this.id}`;
99
26
  /**
100
- * Initializes the database with older permits related to the address
27
+ * check proper data format in the box
28
+ * @param box
29
+ * @return true if the box has the required data and false otherwise
101
30
  */
102
- initializeData = async (initialBlock) => {
103
- let allStoredBoxIds = await this.actions.getAllPermitBoxIds(this.getId());
104
- // Extract unspent permits
105
- const unspentPermits = await this.getAllUnspentPermits(initialBlock.height);
106
- const unspentBoxIds = unspentPermits.map((box) => box.boxId);
107
- // Storing extracted permits
108
- for (const permit of unspentPermits) {
109
- if (allStoredBoxIds.includes(permit.boxId)) {
110
- await this.actions.updatePermit(permit, this.getId());
111
- this.logger.info(`Updated the existing unspent permit with boxId, [${permit.boxId}]`);
112
- this.logger.debug(`Updated permit [${JSON.stringify(permit)}]`);
113
- }
114
- else {
115
- await this.actions.insertPermit(permit, this.getId());
116
- this.logger.info(`Inserted new unspent permit with boxId, [${permit.boxId}]`);
117
- this.logger.debug(`Inserted permit [${JSON.stringify(permit)}]`);
118
- }
31
+ hasBoxData = (box) => {
32
+ if (box.additionalRegisters &&
33
+ box.additionalRegisters.R4 &&
34
+ box.assets &&
35
+ box.assets.length > 0 &&
36
+ box.assets[0].tokenId === this.RWT &&
37
+ box.ergoTree === this.permitErgoTree) {
38
+ return false;
119
39
  }
120
- // Remove updated permits from existing permits in database
121
- allStoredBoxIds = difference(allStoredBoxIds, unspentBoxIds);
122
- // Validating remained permits
123
- // TODO: Fix validation process
124
- // await this.validateOldStoredPermits(allStoredBoxIds, initialHeight);
125
- };
126
- /**
127
- * Validate all remaining permits in the database
128
- * update the correct ones and remove the invalid ones
129
- * @param unchangedStoredBoxIds
130
- * @param initialHeight
131
- */
132
- validateOldStoredPermits = async (unchangedStoredBoxIds, initialHeight) => {
133
- for (const boxId of unchangedStoredBoxIds) {
134
- const permit = await this.getPermitWithBoxId(boxId);
135
- if (permit && permit.spendBlock && permit.spendHeight) {
136
- if (permit.spendHeight < initialHeight)
137
- await this.actions.updateSpendBlock(boxId, this.getId(), permit.spendBlock, permit.spendHeight);
138
- }
139
- else {
140
- await this.actions.removePermit(boxId, this.getId());
141
- this.logger.info(`Removed invalid box [${boxId}] in initialization validation`);
142
- }
143
- }
144
- };
145
- /**
146
- * Return extracted permit from a box
147
- * @param boxId
148
- */
149
- getPermitWithBoxId = async (boxId) => {
150
- try {
151
- const box = await this.explorerApi.v1.getApiV1BoxesP1(boxId);
152
- return (await this.extractPermitData([box]))[0];
153
- }
154
- catch {
155
- this.logger.warn(`Permit with boxId ${boxId} does not exist`);
156
- return undefined;
157
- }
158
- };
159
- /**
160
- * Return all unspent permits
161
- * @param initialHeight
162
- * @returns
163
- */
164
- getAllUnspentPermits = async (initialHeight) => {
165
- let extractedBoxes = [];
166
- let offset = 0, total = DefaultApiLimit;
167
- while (offset < total) {
168
- const boxes = await this.explorerApi.v1.getApiV1BoxesUnspentByergotreeP1(this.permitErgoTree, { offset: offset, limit: DefaultApiLimit });
169
- if (!boxes.items) {
170
- this.logger.warn('Explorer api output items should not be undefined.');
171
- throw new Error('Incorrect explorer api output');
172
- }
173
- const filteredBoxes = await this.extractPermitData(boxes.items.filter((box) => box.creationHeight && box.creationHeight < initialHeight));
174
- extractedBoxes = [...extractedBoxes, ...filteredBoxes];
175
- total = boxes.total;
176
- offset += DefaultApiLimit;
177
- }
178
- return extractedBoxes;
179
- };
180
- /**
181
- * Returns block information of tx
182
- * @param txId
183
- */
184
- getTxBlock = async (txId) => {
185
- const tx = await this.explorerApi.v1.getApiV1TransactionsP1(txId);
186
- return {
187
- id: tx.blockId,
188
- height: tx.inclusionHeight,
189
- };
40
+ return true;
190
41
  };
191
42
  /**
192
43
  * Extract permit data from json boxes
@@ -196,40 +47,19 @@ class PermitExtractor extends AbstractExtractor {
196
47
  * @param heightDifference
197
48
  * @returns extracted permit
198
49
  */
199
- extractPermitData = async (boxes) => {
200
- const extractedBoxes = [];
201
- for (const boxJson of boxes) {
202
- const box = ergoLib.ErgoBox.from_json(JsonBI.stringify(boxJson));
203
- const r4 = box.register_value(4);
204
- if (r4) {
205
- const R4Serialized = r4.to_byte_array();
206
- let spendBlock, spendHeight;
207
- if (boxJson.spentTransactionId) {
208
- const block = await this.getTxBlock(boxJson.spentTransactionId);
209
- spendBlock = block.id;
210
- spendHeight = block.height;
211
- }
212
- extractedBoxes.push({
213
- boxId: box.box_id().to_str(),
214
- boxSerialized: Buffer.from(box.sigma_serialize_bytes()).toString('base64'),
215
- block: boxJson.blockId,
216
- height: boxJson.settlementHeight,
217
- WID: Buffer.from(R4Serialized).toString('hex'),
218
- txId: box.tx_id().to_str(),
219
- spendBlock: spendBlock,
220
- spendHeight: spendHeight,
221
- });
222
- }
223
- }
224
- return extractedBoxes;
50
+ extractBoxData = (box) => {
51
+ const ergoBox = wasm.ErgoBox.from_json(JsonBI.stringify(box));
52
+ const r4 = ergoBox
53
+ .register_value(wasm.NonMandatoryRegisterId.R4)
54
+ ?.to_byte_array();
55
+ const wid = Buffer.from(r4).toString('hex');
56
+ return {
57
+ identifier: ergoBox.box_id().to_str(),
58
+ serialized: Buffer.from(ergoBox.sigma_serialize_bytes()).toString('base64'),
59
+ txId: box.transactionId,
60
+ WID: wid,
61
+ };
225
62
  };
226
- /**
227
- * Builds a query that returns used blocks by selecting the `block` column from the `PermitEntity` repository,
228
- * filtered by the provided `extractorId`
229
- *
230
- * @returns A query builder selecting used blocks
231
- */
232
- createUsedBlocksQuery = () => this.actions.createUsedBlocksQuery(this.getId());
233
63
  }
234
64
  export default PermitExtractor;
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0RXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9wZXJtaXRFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEtBQUssSUFBSSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzVFLE9BQU8seUJBQWlDLE1BQU0sOEJBQThCLENBQUM7QUFFN0UsT0FBTyxZQUFZLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE1BQU0sZUFBZ0IsU0FBUSxpQkFBNEM7SUFDL0QsTUFBTSxDQUFpQjtJQUNoQyxFQUFFLENBQVM7SUFDTSxVQUFVLENBQWE7SUFDL0IsT0FBTyxDQUFlO0lBQ2QsY0FBYyxDQUFTO0lBQ3ZCLEdBQUcsQ0FBUztJQUNwQixXQUFXLENBQUM7SUFFckIsWUFDRSxFQUFVLEVBQ1YsVUFBc0IsRUFDdEIsT0FBZSxFQUNmLEdBQVcsRUFDWCxXQUFtQixFQUNuQixNQUF1QjtRQUV2QixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7YUFD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QUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxRQUFRLENBQzlELFFBQVEsQ0FDVDtvQkFDRCxLQUFLLEVBQUUsT0FBTyxDQUFDLE9BQU87b0JBQ3RCLE1BQU0sRUFBRSxPQUFPLENBQUMsZ0JBQWdCO29CQUNoQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO29CQUM5QyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRTtvQkFDMUIsVUFBVSxFQUFFLFVBQVU7b0JBQ3RCLFdBQVcsRUFBRSxXQUFXO2lCQUN6QixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gscUJBQXFCLEdBQUcsR0FBcUMsRUFBRSxDQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0NBQ3BEO0FBRUQsZUFBZSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0ICogYXMgd2FzbSBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgKiBhcyBlcmdvTGliIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcbmltcG9ydCB7IGRpZmZlcmVuY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IERhdGFTb3VyY2UsIFNlbGVjdFF1ZXJ5QnVpbGRlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5pbXBvcnQgeyBCbG9ja0luZm8sIFRyYW5zYWN0aW9uIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuaW1wb3J0IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnksIHsgVjEgfSBmcm9tICdAcm9zZW4tY2xpZW50cy9lcmdvLWV4cGxvcmVyJztcblxuaW1wb3J0IFBlcm1pdEFjdGlvbiBmcm9tICcuLi9hY3Rpb25zL3Blcm1pdEFjdGlvbic7XG5pbXBvcnQgeyBEZWZhdWx0QXBpTGltaXQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IFBlcm1pdEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9wZXJtaXRFbnRpdHknO1xuaW1wb3J0IHsgRXh0cmFjdGVkUGVybWl0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRQZXJtaXQnO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jbGFzcyBQZXJtaXRFeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvbiwgUGVybWl0RW50aXR5PiB7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcmVhZG9ubHkgYWN0aW9uczogUGVybWl0QWN0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IHBlcm1pdEVyZ29UcmVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgUldUOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGV4cGxvcmVyQXBpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgUldUOiBzdHJpbmcsXG4gICAgZXhwbG9yZXJVcmw6IHN0cmluZyxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLnBlcm1pdEVyZ29UcmVlID0gd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpXG4gICAgICAudG9fZXJnb190cmVlKClcbiAgICAgIC50b19iYXNlMTZfYnl0ZXMoKTtcbiAgICB0aGlzLlJXVCA9IFJXVDtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/IGxvZ2dlciA6IG5ldyBEdW1teUxvZ2dlcigpO1xuICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBQZXJtaXRBY3Rpb24oXG4gICAgICBkYXRhU291cmNlLFxuICAgICAgdGhpcy5sb2dnZXIuY2hpbGQoJ1Blcm1pdEFjdGlvbicpLFxuICAgICk7XG4gICAgdGhpcy5leHBsb3JlckFwaSA9IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnkoZXhwbG9yZXJVcmwpO1xuICB9XG5cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSB0eHNcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvbj4sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJveGVzOiBBcnJheTxFeHRyYWN0ZWRQZXJtaXQ+ID0gW107XG4gICAgICAgIGNvbnN0IHNwZW5kSWRzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIHRyYW5zYWN0aW9uLm91dHB1dHMpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWRkaXRpb25hbFJlZ2lzdGVycyAmJlxuICAgICAgICAgICAgICAgIG91dHB1dC5hZGRpdGlvbmFsUmVnaXN0ZXJzLlI0ICYmXG4gICAgICAgICAgICAgICAgb3V0cHV0LmFzc2V0cyAmJlxuICAgICAgICAgICAgICAgIG91dHB1dC5hc3NldHMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICAgIG91dHB1dC5hc3NldHNbMF0udG9rZW5JZCA9PT0gdGhpcy5SV1QgJiZcbiAgICAgICAgICAgICAgICBvdXRwdXQuZXJnb1RyZWUgPT09IHRoaXMucGVybWl0RXJnb1RyZWVcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYm94T3V0cHV0ID0gd2FzbS5FcmdvQm94LmZyb21fanNvbihcbiAgICAgICAgICAgICAgICAgIEpzb25CSS5zdHJpbmdpZnkob3V0cHV0KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHI0ID0gYm94T3V0cHV0LnJlZ2lzdGVyX3ZhbHVlKFxuICAgICAgICAgICAgICAgICAgd2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKHI0KSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBSNFNlcmlhbGl6ZWQgPSByNC50b19ieXRlX2FycmF5KCk7XG4gICAgICAgICAgICAgICAgICBpZiAoUjRTZXJpYWxpemVkLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJveGVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94SWQsXG4gICAgICAgICAgICAgICAgICAgICAgYm94U2VyaWFsaXplZDogQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgICBib3hPdXRwdXQuc2lnbWFfc2VyaWFsaXplX2J5dGVzKCksXG4gICAgICAgICAgICAgICAgICAgICAgKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgICAgICAgICAgICAgICAgV0lEOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWQpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgICAgICAgICAgICAgICB0eElkOiBvdXRwdXQudHJhbnNhY3Rpb25JZCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgLy8gZW1wdHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gcHJvY2VzcyBpbnB1dHNcbiAgICAgICAgICBmb3IgKGNvbnN0IGlucHV0IG9mIHRyYW5zYWN0aW9uLmlucHV0cykge1xuICAgICAgICAgICAgc3BlbmRJZHMucHVzaChpbnB1dC5ib3hJZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAuc3RvcmVQZXJtaXRzKGJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uc1xuICAgICAgICAgICAgICAuc3BlbmRQZXJtaXRzKHNwZW5kSWRzLCBibG9jaywgdGhpcy5nZXRJZCgpKVxuICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICBgRXJyb3IgaW4gc3RvcmluZyBwZXJtaXRzIG9mIHRoZSBibG9jayAke2Jsb2NrfTogJHtlfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICBgYmxvY2sgJHtibG9ja30gZG9lc24ndCBzYXZlIGluIHRoZSBkYXRhYmFzZSB3aXRoIGVycm9yOiAke2V9YCxcbiAgICAgICAgKTtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpID0+IHtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2soaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhdGFiYXNlIHdpdGggb2xkZXIgcGVybWl0cyByZWxhdGVkIHRvIHRoZSBhZGRyZXNzXG4gICAqL1xuICBpbml0aWFsaXplRGF0YSA9IGFzeW5jIChpbml0aWFsQmxvY2s6IEJsb2NrSW5mbykgPT4ge1xuICAgIGxldCBhbGxTdG9yZWRCb3hJZHMgPSBhd2FpdCB0aGlzLmFjdGlvbnMuZ2V0QWxsUGVybWl0Qm94SWRzKHRoaXMuZ2V0SWQoKSk7XG4gICAgLy8gRXh0cmFjdCB1bnNwZW50IHBlcm1pdHNcbiAgICBjb25zdCB1bnNwZW50UGVybWl0cyA9IGF3YWl0IHRoaXMuZ2V0QWxsVW5zcGVudFBlcm1pdHMoaW5pdGlhbEJsb2NrLmhlaWdodCk7XG4gICAgY29uc3QgdW5zcGVudEJveElkcyA9IHVuc3BlbnRQZXJtaXRzLm1hcCgoYm94KSA9PiBib3guYm94SWQpO1xuICAgIC8vIFN0b3JpbmcgZXh0cmFjdGVkIHBlcm1pdHNcbiAgICBmb3IgKGNvbnN0IHBlcm1pdCBvZiB1bnNwZW50UGVybWl0cykge1xuICAgICAgaWYgKGFsbFN0b3JlZEJveElkcy5pbmNsdWRlcyhwZXJtaXQuYm94SWQpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9ucy51cGRhdGVQZXJtaXQocGVybWl0LCB0aGlzLmdldElkKCkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBVcGRhdGVkIHRoZSBleGlzdGluZyB1bnNwZW50IHBlcm1pdCB3aXRoIGJveElkLCBbJHtwZXJtaXQuYm94SWR9XWAsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBVcGRhdGVkIHBlcm1pdCBbJHtKU09OLnN0cmluZ2lmeShwZXJtaXQpfV1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5pbnNlcnRQZXJtaXQocGVybWl0LCB0aGlzLmdldElkKCkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBJbnNlcnRlZCBuZXcgdW5zcGVudCBwZXJtaXQgd2l0aCBib3hJZCwgWyR7cGVybWl0LmJveElkfV1gLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgSW5zZXJ0ZWQgcGVybWl0IFske0pTT04uc3RyaW5naWZ5KHBlcm1pdCl9XWApO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBSZW1vdmUgdXBkYXRlZCBwZXJtaXRzIGZyb20gZXhpc3RpbmcgcGVybWl0cyBpbiBkYXRhYmFzZVxuICAgIGFsbFN0b3JlZEJveElkcyA9IGRpZmZlcmVuY2UoYWxsU3RvcmVkQm94SWRzLCB1bnNwZW50Qm94SWRzKTtcbiAgICAvLyBWYWxpZGF0aW5nIHJlbWFpbmVkIHBlcm1pdHNcbiAgICAvLyBUT0RPOiBGaXggdmFsaWRhdGlvbiBwcm9jZXNzXG4gICAgLy8gYXdhaXQgdGhpcy52YWxpZGF0ZU9sZFN0b3JlZFBlcm1pdHMoYWxsU3RvcmVkQm94SWRzLCBpbml0aWFsSGVpZ2h0KTtcbiAgfTtcblxuICAvKipcbiAgICogVmFsaWRhdGUgYWxsIHJlbWFpbmluZyBwZXJtaXRzIGluIHRoZSBkYXRhYmFzZVxuICAgKiB1cGRhdGUgdGhlIGNvcnJlY3Qgb25lcyBhbmQgcmVtb3ZlIHRoZSBpbnZhbGlkIG9uZXNcbiAgICogQHBhcmFtIHVuY2hhbmdlZFN0b3JlZEJveElkc1xuICAgKiBAcGFyYW0gaW5pdGlhbEhlaWdodFxuICAgKi9cbiAgdmFsaWRhdGVPbGRTdG9yZWRQZXJtaXRzID0gYXN5bmMgKFxuICAgIHVuY2hhbmdlZFN0b3JlZEJveElkczogQXJyYXk8c3RyaW5nPixcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXIsXG4gICkgPT4ge1xuICAgIGZvciAoY29uc3QgYm94SWQgb2YgdW5jaGFuZ2VkU3RvcmVkQm94SWRzKSB7XG4gICAgICBjb25zdCBwZXJtaXQgPSBhd2FpdCB0aGlzLmdldFBlcm1pdFdpdGhCb3hJZChib3hJZCk7XG4gICAgICBpZiAocGVybWl0ICYmIHBlcm1pdC5zcGVuZEJsb2NrICYmIHBlcm1pdC5zcGVuZEhlaWdodCkge1xuICAgICAgICBpZiAocGVybWl0LnNwZW5kSGVpZ2h0IDwgaW5pdGlhbEhlaWdodClcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbnMudXBkYXRlU3BlbmRCbG9jayhcbiAgICAgICAgICAgIGJveElkLFxuICAgICAgICAgICAgdGhpcy5nZXRJZCgpLFxuICAgICAgICAgICAgcGVybWl0LnNwZW5kQmxvY2ssXG4gICAgICAgICAgICBwZXJtaXQuc3BlbmRIZWlnaHQsXG4gICAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5yZW1vdmVQZXJtaXQoYm94SWQsIHRoaXMuZ2V0SWQoKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYFJlbW92ZWQgaW52YWxpZCBib3ggWyR7Ym94SWR9XSBpbiBpbml0aWFsaXphdGlvbiB2YWxpZGF0aW9uYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBleHRyYWN0ZWQgcGVybWl0IGZyb20gYSBib3hcbiAgICogQHBhcmFtIGJveElkXG4gICAqL1xuICBnZXRQZXJtaXRXaXRoQm94SWQgPSBhc3luYyAoXG4gICAgYm94SWQ6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxFeHRyYWN0ZWRQZXJtaXQgfCB1bmRlZmluZWQ+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm94ID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMUJveGVzUDEoYm94SWQpO1xuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmV4dHJhY3RQZXJtaXREYXRhKFtib3hdKSlbMF07XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKGBQZXJtaXQgd2l0aCBib3hJZCAke2JveElkfSBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgdW5zcGVudCBwZXJtaXRzXG4gICAqIEBwYXJhbSBpbml0aWFsSGVpZ2h0XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRBbGxVbnNwZW50UGVybWl0cyA9IGFzeW5jIChcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXIsXG4gICk6IFByb21pc2U8QXJyYXk8RXh0cmFjdGVkUGVybWl0Pj4gPT4ge1xuICAgIGxldCBleHRyYWN0ZWRCb3hlczogQXJyYXk8RXh0cmFjdGVkUGVybWl0PiA9IFtdO1xuICAgIGxldCBvZmZzZXQgPSAwLFxuICAgICAgdG90YWwgPSBEZWZhdWx0QXBpTGltaXQ7XG4gICAgd2hpbGUgKG9mZnNldCA8IHRvdGFsKSB7XG4gICAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkudjEuZ2V0QXBpVjFCb3hlc1Vuc3BlbnRCeWVyZ290cmVlUDEoXG4gICAgICAgIHRoaXMucGVybWl0RXJnb1RyZWUsXG4gICAgICAgIHsgb2Zmc2V0OiBvZmZzZXQsIGxpbWl0OiBEZWZhdWx0QXBpTGltaXQgfSxcbiAgICAgICk7XG4gICAgICBpZiAoIWJveGVzLml0ZW1zKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0V4cGxvcmVyIGFwaSBvdXRwdXQgaXRlbXMgc2hvdWxkIG5vdCBiZSB1bmRlZmluZWQuJyk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGV4cGxvcmVyIGFwaSBvdXRwdXQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZpbHRlcmVkQm94ZXMgPSBhd2FpdCB0aGlzLmV4dHJhY3RQZXJtaXREYXRhKFxuICAgICAgICBib3hlcy5pdGVtcy5maWx0ZXIoXG4gICAgICAgICAgKGJveCkgPT4gYm94LmNyZWF0aW9uSGVpZ2h0ICYmIGJveC5jcmVhdGlvbkhlaWdodCA8IGluaXRpYWxIZWlnaHQsXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgZXh0cmFjdGVkQm94ZXMgPSBbLi4uZXh0cmFjdGVkQm94ZXMsIC4uLmZpbHRlcmVkQm94ZXNdO1xuICAgICAgdG90YWwgPSBib3hlcy50b3RhbDtcbiAgICAgIG9mZnNldCArPSBEZWZhdWx0QXBpTGltaXQ7XG4gICAgfVxuICAgIHJldHVybiBleHRyYWN0ZWRCb3hlcztcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyBibG9jayBpbmZvcm1hdGlvbiBvZiB0eFxuICAgKiBAcGFyYW0gdHhJZFxuICAgKi9cbiAgZ2V0VHhCbG9jayA9IGFzeW5jICh0eElkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkudjEuZ2V0QXBpVjFUcmFuc2FjdGlvbnNQMSh0eElkKTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHR4LmJsb2NrSWQsXG4gICAgICBoZWlnaHQ6IHR4LmluY2x1c2lvbkhlaWdodCxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IHBlcm1pdCBkYXRhIGZyb20ganNvbiBib3hlc1xuICAgKiBhbmQgZmlsdGVyIHRvIGZpdCBpbiBhIHNwZWNpZmllZCBoZWlnaHQgcmFuZ2VcbiAgICogQHBhcmFtIGJveGVzXG4gICAqIEBwYXJhbSB0b0hlaWdodFxuICAgKiBAcGFyYW0gaGVpZ2h0RGlmZmVyZW5jZVxuICAgKiBAcmV0dXJucyBleHRyYWN0ZWQgcGVybWl0XG4gICAqL1xuICBleHRyYWN0UGVybWl0RGF0YSA9IGFzeW5jIChib3hlczogQXJyYXk8VjEuT3V0cHV0SW5mbz4pID0+IHtcbiAgICBjb25zdCBleHRyYWN0ZWRCb3hlczogQXJyYXk8RXh0cmFjdGVkUGVybWl0PiA9IFtdO1xuICAgIGZvciAoY29uc3QgYm94SnNvbiBvZiBib3hlcykge1xuICAgICAgY29uc3QgYm94ID0gZXJnb0xpYi5FcmdvQm94LmZyb21fanNvbihKc29uQkkuc3RyaW5naWZ5KGJveEpzb24pKTtcbiAgICAgIGNvbnN0IHI0ID0gYm94LnJlZ2lzdGVyX3ZhbHVlKDQpO1xuICAgICAgaWYgKHI0KSB7XG4gICAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHI0LnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgICAgbGV0IHNwZW5kQmxvY2ssIHNwZW5kSGVpZ2h0O1xuICAgICAgICBpZiAoYm94SnNvbi5zcGVudFRyYW5zYWN0aW9uSWQpIHtcbiAgICAgICAgICBjb25zdCBibG9jayA9IGF3YWl0IHRoaXMuZ2V0VHhCbG9jayhib3hKc29uLnNwZW50VHJhbnNhY3Rpb25JZCk7XG4gICAgICAgICAgc3BlbmRCbG9jayA9IGJsb2NrLmlkO1xuICAgICAgICAgIHNwZW5kSGVpZ2h0ID0gYmxvY2suaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGV4dHJhY3RlZEJveGVzLnB1c2goe1xuICAgICAgICAgIGJveElkOiBib3guYm94X2lkKCkudG9fc3RyKCksXG4gICAgICAgICAgYm94U2VyaWFsaXplZDogQnVmZmVyLmZyb20oYm94LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpKS50b1N0cmluZyhcbiAgICAgICAgICAgICdiYXNlNjQnLFxuICAgICAgICAgICksXG4gICAgICAgICAgYmxvY2s6IGJveEpzb24uYmxvY2tJZCxcbiAgICAgICAgICBoZWlnaHQ6IGJveEpzb24uc2V0dGxlbWVudEhlaWdodCxcbiAgICAgICAgICBXSUQ6IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZCkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICAgIHR4SWQ6IGJveC50eF9pZCgpLnRvX3N0cigpLFxuICAgICAgICAgIHNwZW5kQmxvY2s6IHNwZW5kQmxvY2ssXG4gICAgICAgICAgc3BlbmRIZWlnaHQ6IHNwZW5kSGVpZ2h0LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV4dHJhY3RlZEJveGVzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBxdWVyeSB0aGF0IHJldHVybnMgdXNlZCBibG9ja3MgYnkgc2VsZWN0aW5nIHRoZSBgYmxvY2tgIGNvbHVtbiBmcm9tIHRoZSBgUGVybWl0RW50aXR5YCByZXBvc2l0b3J5LFxuICAgKiBmaWx0ZXJlZCBieSB0aGUgcHJvdmlkZWQgYGV4dHJhY3RvcklkYFxuICAgKlxuICAgKiBAcmV0dXJucyBBIHF1ZXJ5IGJ1aWxkZXIgc2VsZWN0aW5nIHVzZWQgYmxvY2tzXG4gICAqL1xuICBjcmVhdGVVc2VkQmxvY2tzUXVlcnkgPSAoKTogU2VsZWN0UXVlcnlCdWlsZGVyPFBlcm1pdEVudGl0eT4gPT5cbiAgICB0aGlzLmFjdGlvbnMuY3JlYXRlVXNlZEJsb2Nrc1F1ZXJ5KHRoaXMuZ2V0SWQoKSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBlcm1pdEV4dHJhY3RvcjtcbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0RXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9wZXJtaXRFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEtBQUssSUFBSSxNQUFNLHNCQUFzQixDQUFDO0FBRTdDLE9BQU8sRUFDTCx3QkFBd0IsR0FFekIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSTVFLE9BQU8sWUFBWSxNQUFNLHlCQUF5QixDQUFDO0FBR25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxlQUFnQixTQUFRLHdCQUc3QjtJQUNrQixFQUFFLENBQVM7SUFDbkIsT0FBTyxDQUFlO0lBQ2QsY0FBYyxDQUFTO0lBQ3ZCLEdBQUcsQ0FBUztJQUU3QixZQUNFLEVBQVUsRUFDVixVQUFzQixFQUN0QixPQUFlLEVBQ2YsR0FBVyxFQUNYLGlCQUFvQyxFQUNwQyxNQUF1QjtRQUV2QixLQUFLLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQzthQUNwRCxZQUFZLEVBQUU7YUFDZCxlQUFlLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFlBQVksQ0FDN0IsVUFBVSxFQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBRTNCOzs7O09BSUc7SUFDSCxVQUFVLEdBQUcsQ0FBQyxHQUFjLEVBQVcsRUFBRTtRQUN2QyxJQUNFLEdBQUcsQ0FBQyxtQkFBbUI7WUFDdkIsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDMUIsR0FBRyxDQUFDLE1BQU07WUFDVixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ3JCLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxHQUFHO1lBQ2xDLEdBQUcsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFDcEMsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUY7Ozs7Ozs7T0FPRztJQUNILGNBQWMsR0FBRyxDQUFDLEdBQWMsRUFBK0IsRUFBRTtRQUMvRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxFQUFFLEdBQUcsT0FBTzthQUNmLGNBQWMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1lBQy9DLEVBQUUsYUFBYSxFQUFFLENBQUM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsT0FBTztZQUNMLFVBQVUsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQ3JDLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUMvRCxRQUFRLENBQ1Q7WUFDRCxJQUFJLEVBQUUsR0FBRyxDQUFDLGFBQWE7WUFDdkIsR0FBRyxFQUFFLEdBQUc7U0FDVCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgKiBhcyB3YXNtIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RFcmdvQm94RXh0cmFjdG9yLFxuICBJbml0aWFsaXplT3B0aW9ucyxcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5pbXBvcnQgeyBPdXRwdXRCb3ggfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCBQZXJtaXRBY3Rpb24gZnJvbSAnLi4vYWN0aW9ucy9wZXJtaXRBY3Rpb24nO1xuaW1wb3J0IFBlcm1pdEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9wZXJtaXRFbnRpdHknO1xuaW1wb3J0IHsgRXh0cmFjdGVkUGVybWl0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRQZXJtaXQnO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jbGFzcyBQZXJtaXRFeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEVyZ29Cb3hFeHRyYWN0b3I8XG4gIEV4dHJhY3RlZFBlcm1pdCxcbiAgUGVybWl0RW50aXR5XG4+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBhY3Rpb25zOiBQZXJtaXRBY3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgcGVybWl0RXJnb1RyZWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBSV1Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpZDogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIFJXVDogc3RyaW5nLFxuICAgIGluaXRpYWxpemVPcHRpb25zOiBJbml0aWFsaXplT3B0aW9ucyxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcixcbiAgKSB7XG4gICAgc3VwZXIoaW5pdGlhbGl6ZU9wdGlvbnMsIGxvZ2dlcik7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMucGVybWl0RXJnb1RyZWUgPSB3YXNtLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICAgIHRoaXMuUldUID0gUldUO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IFBlcm1pdEFjdGlvbihcbiAgICAgIGRhdGFTb3VyY2UsXG4gICAgICB0aGlzLmxvZ2dlci5jaGlsZCgnUGVybWl0QWN0aW9uJyksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgSWQgZm9yIGN1cnJlbnQgZXh0cmFjdG9yXG4gICAqL1xuICBnZXRJZCA9ICgpID0+IGAke3RoaXMuaWR9YDtcblxuICAvKipcbiAgICogY2hlY2sgcHJvcGVyIGRhdGEgZm9ybWF0IGluIHRoZSBib3hcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGJveCBoYXMgdGhlIHJlcXVpcmVkIGRhdGEgYW5kIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgaGFzQm94RGF0YSA9IChib3g6IE91dHB1dEJveCk6IGJvb2xlYW4gPT4ge1xuICAgIGlmIChcbiAgICAgIGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzICYmXG4gICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNCAmJlxuICAgICAgYm94LmFzc2V0cyAmJlxuICAgICAgYm94LmFzc2V0cy5sZW5ndGggPiAwICYmXG4gICAgICBib3guYXNzZXRzWzBdLnRva2VuSWQgPT09IHRoaXMuUldUICYmXG4gICAgICBib3guZXJnb1RyZWUgPT09IHRoaXMucGVybWl0RXJnb1RyZWVcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgcGVybWl0IGRhdGEgZnJvbSBqc29uIGJveGVzXG4gICAqIGFuZCBmaWx0ZXIgdG8gZml0IGluIGEgc3BlY2lmaWVkIGhlaWdodCByYW5nZVxuICAgKiBAcGFyYW0gYm94ZXNcbiAgICogQHBhcmFtIHRvSGVpZ2h0XG4gICAqIEBwYXJhbSBoZWlnaHREaWZmZXJlbmNlXG4gICAqIEByZXR1cm5zIGV4dHJhY3RlZCBwZXJtaXRcbiAgICovXG4gIGV4dHJhY3RCb3hEYXRhID0gKGJveDogT3V0cHV0Qm94KTogRXh0cmFjdGVkUGVybWl0IHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBlcmdvQm94ID0gd2FzbS5FcmdvQm94LmZyb21fanNvbihKc29uQkkuc3RyaW5naWZ5KGJveCkpO1xuICAgIGNvbnN0IHI0ID0gZXJnb0JveFxuICAgICAgLnJlZ2lzdGVyX3ZhbHVlKHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNClcbiAgICAgID8udG9fYnl0ZV9hcnJheSgpO1xuICAgIGNvbnN0IHdpZCA9IEJ1ZmZlci5mcm9tKHI0ISkudG9TdHJpbmcoJ2hleCcpO1xuICAgIHJldHVybiB7XG4gICAgICBpZGVudGlmaWVyOiBlcmdvQm94LmJveF9pZCgpLnRvX3N0cigpLFxuICAgICAgc2VyaWFsaXplZDogQnVmZmVyLmZyb20oZXJnb0JveC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKSkudG9TdHJpbmcoXG4gICAgICAgICdiYXNlNjQnLFxuICAgICAgKSxcbiAgICAgIHR4SWQ6IGJveC50cmFuc2FjdGlvbklkLFxuICAgICAgV0lEOiB3aWQsXG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGVybWl0RXh0cmFjdG9yO1xuIl19
@@ -1,12 +1,9 @@
1
- interface ExtractedPermit {
2
- boxId: string;
3
- boxSerialized: string;
1
+ import { AbstractEntityData } from '@rosen-bridge/abstract-extractor';
2
+ interface ExtractedPermit extends AbstractEntityData {
4
3
  WID: string;
5
4
  txId: string;
6
- block?: string;
7
- height?: number;
8
- spendBlock?: string;
9
- spendHeight?: number;
5
+ spendBlock?: string | null;
6
+ spendHeight?: number | null;
10
7
  }
11
8
  export { ExtractedPermit };
12
9
  //# sourceMappingURL=extractedPermit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractedPermit.d.ts","sourceRoot":"","sources":["../../lib/interfaces/extractedPermit.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"extractedPermit.d.ts","sourceRoot":"","sources":["../../lib/interfaces/extractedPermit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,UAAU,eAAgB,SAAQ,kBAAkB;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdGVkUGVybWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2ludGVyZmFjZXMvZXh0cmFjdGVkUGVybWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgRXh0cmFjdGVkUGVybWl0IHtcbiAgYm94SWQ6IHN0cmluZztcbiAgYm94U2VyaWFsaXplZDogc3RyaW5nO1xuICBXSUQ6IHN0cmluZztcbiAgdHhJZDogc3RyaW5nO1xuICBibG9jaz86IHN0cmluZztcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBzcGVuZEJsb2NrPzogc3RyaW5nO1xuICBzcGVuZEhlaWdodD86IG51bWJlcjtcbn1cblxuZXhwb3J0IHsgRXh0cmFjdGVkUGVybWl0IH07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdGVkUGVybWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2ludGVyZmFjZXMvZXh0cmFjdGVkUGVybWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdEVudGl0eURhdGEgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWV4dHJhY3Rvcic7XG5cbmludGVyZmFjZSBFeHRyYWN0ZWRQZXJtaXQgZXh0ZW5kcyBBYnN0cmFjdEVudGl0eURhdGEge1xuICBXSUQ6IHN0cmluZztcbiAgdHhJZDogc3RyaW5nO1xuICBzcGVuZEJsb2NrPzogc3RyaW5nIHwgbnVsbDtcbiAgc3BlbmRIZWlnaHQ/OiBudW1iZXIgfCBudWxsO1xufVxuXG5leHBvcnQgeyBFeHRyYWN0ZWRQZXJtaXQgfTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAS5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAW1E,eAAO,MAAM,UAAU;;;CAwBtB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAU5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAY1E,eAAO,MAAM,UAAU;;;CA0BtB,CAAC"}
@@ -7,6 +7,7 @@ import { Migration1737785036299 } from './postgres/1737785036299-migration';
7
7
  import { migration1746354253000 } from './postgres/1746354253000-migration';
8
8
  import { Migration1758958886549 } from './postgres/1758958886549-migration';
9
9
  import { Migration1766843825000 } from './postgres/1766843825000-migration';
10
+ import { Migration1782948062354 } from './postgres/1782948062354-migration';
10
11
  import { migration1688555766601 } from './sqlite/1688555766601-migration';
11
12
  import { migration1689175103163 } from './sqlite/1689175103163-migration';
12
13
  import { migration1699872205117 } from './sqlite/1699872205117-migration';
@@ -17,6 +18,7 @@ import { migration1746354254000 } from './sqlite/1746354254000-migration';
17
18
  import { migration1761774736153 } from './sqlite/1761774736153-migration';
18
19
  import { Migration1762768664031 } from './sqlite/1762768664031-migration';
19
20
  import { Migration1766843824000 } from './sqlite/1766843824000-migration';
21
+ import { Migration1782948174639 } from './sqlite/1782948174639-migration';
20
22
  export const migrations = {
21
23
  sqlite: [
22
24
  migration1688555766601,
@@ -29,6 +31,7 @@ export const migrations = {
29
31
  migration1761774736153,
30
32
  Migration1762768664031,
31
33
  Migration1766843824000,
34
+ Migration1782948174639,
32
35
  ],
33
36
  postgres: [
34
37
  migration1688554842087,
@@ -40,6 +43,7 @@ export const migrations = {
40
43
  migration1746354253000,
41
44
  Migration1758958886549,
42
45
  Migration1766843825000,
46
+ Migration1782948062354,
43
47
  ],
44
48
  };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxFQUFFO1FBQ04sc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO0tBQ3ZCO0lBQ0QsUUFBUSxFQUFFO1FBQ1Isc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7S0FDdkI7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWlncmF0aW9uMTY4ODU1NDg0MjA4NyB9IGZyb20gJy4vcG9zdGdyZXMvMTY4ODU1NDg0MjA4Ny1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTY4OTE3NTk3NDI1NyB9IGZyb20gJy4vcG9zdGdyZXMvMTY4OTE3NTk3NDI1Ny1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTY5OTg3NDQ0NzkyOCB9IGZyb20gJy4vcG9zdGdyZXMvMTY5OTg3NDQ0NzkyOC1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTcwNjYxMDc3MzMxNSB9IGZyb20gJy4vcG9zdGdyZXMvMTcwNjYxMDc3MzMxNS1taWdyYXRpb24nO1xuaW1wb3J0IHsgTWlncmF0aW9uMTcwOTM4ODQ4MjI3NSB9IGZyb20gJy4vcG9zdGdyZXMvMTcwOTM4ODQ4MjI3NS1taWdyYXRpb24nO1xuaW1wb3J0IHsgTWlncmF0aW9uMTczNzc4NTAzNjI5OSB9IGZyb20gJy4vcG9zdGdyZXMvMTczNzc4NTAzNjI5OS1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTc0NjM1NDI1MzAwMCB9IGZyb20gJy4vcG9zdGdyZXMvMTc0NjM1NDI1MzAwMC1taWdyYXRpb24nO1xuaW1wb3J0IHsgTWlncmF0aW9uMTc1ODk1ODg4NjU0OSB9IGZyb20gJy4vcG9zdGdyZXMvMTc1ODk1ODg4NjU0OS1taWdyYXRpb24nO1xuaW1wb3J0IHsgTWlncmF0aW9uMTc2Njg0MzgyNTAwMCB9IGZyb20gJy4vcG9zdGdyZXMvMTc2Njg0MzgyNTAwMC1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTY4ODU1NTc2NjYwMSB9IGZyb20gJy4vc3FsaXRlLzE2ODg1NTU3NjY2MDEtbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2ODkxNzUxMDMxNjMgfSBmcm9tICcuL3NxbGl0ZS8xNjg5MTc1MTAzMTYzLW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNjk5ODcyMjA1MTE3IH0gZnJvbSAnLi9zcWxpdGUvMTY5OTg3MjIwNTExNy1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTcwNjYxMDc3MzE3NiB9IGZyb20gJy4vc3FsaXRlLzE3MDY2MTA3NzMxNzYtbWlncmF0aW9uJztcbmltcG9ydCB7IE1pZ3JhdGlvbjE3MDkzODgxMzQ5NzUgfSBmcm9tICcuL3NxbGl0ZS8xNzA5Mzg4MTM0OTc1LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBNaWdyYXRpb24xNzM3NTQ3NzQzMTc3IH0gZnJvbSAnLi9zcWxpdGUvMTczNzU0Nzc0MzE3Ny1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTc0NjM1NDI1NDAwMCB9IGZyb20gJy4vc3FsaXRlLzE3NDYzNTQyNTQwMDAtbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE3NjE3NzQ3MzYxNTMgfSBmcm9tICcuL3NxbGl0ZS8xNzYxNzc0NzM2MTUzLW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBNaWdyYXRpb24xNzYyNzY4NjY0MDMxIH0gZnJvbSAnLi9zcWxpdGUvMTc2Mjc2ODY2NDAzMS1taWdyYXRpb24nO1xuaW1wb3J0IHsgTWlncmF0aW9uMTc2Njg0MzgyNDAwMCB9IGZyb20gJy4vc3FsaXRlLzE3NjY4NDM4MjQwMDAtbWlncmF0aW9uJztcblxuZXhwb3J0IGNvbnN0IG1pZ3JhdGlvbnMgPSB7XG4gIHNxbGl0ZTogW1xuICAgIG1pZ3JhdGlvbjE2ODg1NTU3NjY2MDEsXG4gICAgbWlncmF0aW9uMTY4OTE3NTEwMzE2MyxcbiAgICBtaWdyYXRpb24xNjk5ODcyMjA1MTE3LFxuICAgIG1pZ3JhdGlvbjE3MDY2MTA3NzMxNzYsXG4gICAgTWlncmF0aW9uMTcwOTM4ODEzNDk3NSxcbiAgICBNaWdyYXRpb24xNzM3NTQ3NzQzMTc3LFxuICAgIG1pZ3JhdGlvbjE3NDYzNTQyNTQwMDAsXG4gICAgbWlncmF0aW9uMTc2MTc3NDczNjE1MyxcbiAgICBNaWdyYXRpb24xNzYyNzY4NjY0MDMxLFxuICAgIE1pZ3JhdGlvbjE3NjY4NDM4MjQwMDAsXG4gIF0sXG4gIHBvc3RncmVzOiBbXG4gICAgbWlncmF0aW9uMTY4ODU1NDg0MjA4NyxcbiAgICBtaWdyYXRpb24xNjg5MTc1OTc0MjU3LFxuICAgIG1pZ3JhdGlvbjE2OTk4NzQ0NDc5MjgsXG4gICAgbWlncmF0aW9uMTcwNjYxMDc3MzMxNSxcbiAgICBNaWdyYXRpb24xNzA5Mzg4NDgyMjc1LFxuICAgIE1pZ3JhdGlvbjE3Mzc3ODUwMzYyOTksXG4gICAgbWlncmF0aW9uMTc0NjM1NDI1MzAwMCxcbiAgICBNaWdyYXRpb24xNzU4OTU4ODg2NTQ5LFxuICAgIE1pZ3JhdGlvbjE3NjY4NDM4MjUwMDAsXG4gIF0sXG59O1xuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxFQUFFO1FBQ04sc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtLQUN2QjtJQUNELFFBQVEsRUFBRTtRQUNSLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtLQUN2QjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaWdyYXRpb24xNjg4NTU0ODQyMDg3IH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNjg4NTU0ODQyMDg3LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNjg5MTc1OTc0MjU3IH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNjg5MTc1OTc0MjU3LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNjk5ODc0NDQ3OTI4IH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNjk5ODc0NDQ3OTI4LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNzA2NjEwNzczMzE1IH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNzA2NjEwNzczMzE1LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBNaWdyYXRpb24xNzA5Mzg4NDgyMjc1IH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNzA5Mzg4NDgyMjc1LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBNaWdyYXRpb24xNzM3Nzg1MDM2Mjk5IH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNzM3Nzg1MDM2Mjk5LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNzQ2MzU0MjUzMDAwIH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNzQ2MzU0MjUzMDAwLW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBNaWdyYXRpb24xNzU4OTU4ODg2NTQ5IH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNzU4OTU4ODg2NTQ5LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBNaWdyYXRpb24xNzY2ODQzODI1MDAwIH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNzY2ODQzODI1MDAwLW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBNaWdyYXRpb24xNzgyOTQ4MDYyMzU0IH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNzgyOTQ4MDYyMzU0LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNjg4NTU1NzY2NjAxIH0gZnJvbSAnLi9zcWxpdGUvMTY4ODU1NTc2NjYwMS1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTY4OTE3NTEwMzE2MyB9IGZyb20gJy4vc3FsaXRlLzE2ODkxNzUxMDMxNjMtbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2OTk4NzIyMDUxMTcgfSBmcm9tICcuL3NxbGl0ZS8xNjk5ODcyMjA1MTE3LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNzA2NjEwNzczMTc2IH0gZnJvbSAnLi9zcWxpdGUvMTcwNjYxMDc3MzE3Ni1taWdyYXRpb24nO1xuaW1wb3J0IHsgTWlncmF0aW9uMTcwOTM4ODEzNDk3NSB9IGZyb20gJy4vc3FsaXRlLzE3MDkzODgxMzQ5NzUtbWlncmF0aW9uJztcbmltcG9ydCB7IE1pZ3JhdGlvbjE3Mzc1NDc3NDMxNzcgfSBmcm9tICcuL3NxbGl0ZS8xNzM3NTQ3NzQzMTc3LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNzQ2MzU0MjU0MDAwIH0gZnJvbSAnLi9zcWxpdGUvMTc0NjM1NDI1NDAwMC1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTc2MTc3NDczNjE1MyB9IGZyb20gJy4vc3FsaXRlLzE3NjE3NzQ3MzYxNTMtbWlncmF0aW9uJztcbmltcG9ydCB7IE1pZ3JhdGlvbjE3NjI3Njg2NjQwMzEgfSBmcm9tICcuL3NxbGl0ZS8xNzYyNzY4NjY0MDMxLW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBNaWdyYXRpb24xNzY2ODQzODI0MDAwIH0gZnJvbSAnLi9zcWxpdGUvMTc2Njg0MzgyNDAwMC1taWdyYXRpb24nO1xuaW1wb3J0IHsgTWlncmF0aW9uMTc4Mjk0ODE3NDYzOSB9IGZyb20gJy4vc3FsaXRlLzE3ODI5NDgxNzQ2MzktbWlncmF0aW9uJztcblxuZXhwb3J0IGNvbnN0IG1pZ3JhdGlvbnMgPSB7XG4gIHNxbGl0ZTogW1xuICAgIG1pZ3JhdGlvbjE2ODg1NTU3NjY2MDEsXG4gICAgbWlncmF0aW9uMTY4OTE3NTEwMzE2MyxcbiAgICBtaWdyYXRpb24xNjk5ODcyMjA1MTE3LFxuICAgIG1pZ3JhdGlvbjE3MDY2MTA3NzMxNzYsXG4gICAgTWlncmF0aW9uMTcwOTM4ODEzNDk3NSxcbiAgICBNaWdyYXRpb24xNzM3NTQ3NzQzMTc3LFxuICAgIG1pZ3JhdGlvbjE3NDYzNTQyNTQwMDAsXG4gICAgbWlncmF0aW9uMTc2MTc3NDczNjE1MyxcbiAgICBNaWdyYXRpb24xNzYyNzY4NjY0MDMxLFxuICAgIE1pZ3JhdGlvbjE3NjY4NDM4MjQwMDAsXG4gICAgTWlncmF0aW9uMTc4Mjk0ODE3NDYzOSxcbiAgXSxcbiAgcG9zdGdyZXM6IFtcbiAgICBtaWdyYXRpb24xNjg4NTU0ODQyMDg3LFxuICAgIG1pZ3JhdGlvbjE2ODkxNzU5NzQyNTcsXG4gICAgbWlncmF0aW9uMTY5OTg3NDQ0NzkyOCxcbiAgICBtaWdyYXRpb24xNzA2NjEwNzczMzE1LFxuICAgIE1pZ3JhdGlvbjE3MDkzODg0ODIyNzUsXG4gICAgTWlncmF0aW9uMTczNzc4NTAzNjI5OSxcbiAgICBtaWdyYXRpb24xNzQ2MzU0MjUzMDAwLFxuICAgIE1pZ3JhdGlvbjE3NTg5NTg4ODY1NDksXG4gICAgTWlncmF0aW9uMTc2Njg0MzgyNTAwMCxcbiAgICBNaWdyYXRpb24xNzgyOTQ4MDYyMzU0LFxuICBdLFxufTtcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from '@rosen-bridge/extended-typeorm';
2
+ export declare class Migration1782948062354 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1782948062354-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1782948062354-migration.d.ts","sourceRoot":"","sources":["../../../lib/migrations/postgres/1782948062354-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CA2B3D"}
@@ -0,0 +1,50 @@
1
+ export class Migration1782948062354 {
2
+ name = 'Migration1782948062354';
3
+ async up(queryRunner) {
4
+ await queryRunner.query(`
5
+ ALTER TABLE "permit_entity" RENAME COLUMN "boxId" TO "identifier"
6
+ `);
7
+ await queryRunner.query(`
8
+ ALTER TABLE "permit_entity" RENAME COLUMN "boxSerialized" TO "serialized"
9
+ `);
10
+ await queryRunner.query(`
11
+ ALTER TABLE "permit_entity" DROP COLUMN "spendBlock"
12
+ `);
13
+ await queryRunner.query(`
14
+ ALTER TABLE "permit_entity"
15
+ ADD "spendBlock" character varying
16
+ `);
17
+ await queryRunner.query(`
18
+ ALTER TABLE "permit_entity"
19
+ ADD CONSTRAINT "UQ_205c6c8499dff192ec078910956" UNIQUE ("identifier", "extractor")
20
+ `);
21
+ }
22
+ async down(queryRunner) {
23
+ await queryRunner.query(`
24
+ ALTER TABLE "permit_entity" DROP COLUMN "spendBlock"
25
+ `);
26
+ await queryRunner.query(`
27
+ ALTER TABLE "permit_entity"
28
+ ADD "spendBlock" text
29
+ `);
30
+ await queryRunner.query(`
31
+ ALTER TABLE "permit_entity" DROP COLUMN "serialized"
32
+ `);
33
+ await queryRunner.query(`
34
+ ALTER TABLE "permit_entity" DROP COLUMN "identifier"
35
+ `);
36
+ await queryRunner.query(`
37
+ ALTER TABLE "permit_entity"
38
+ ADD "boxSerialized" character varying NOT NULL
39
+ `);
40
+ await queryRunner.query(`
41
+ ALTER TABLE "permit_entity"
42
+ ADD "boxId" character varying NOT NULL
43
+ `);
44
+ await queryRunner.query(`
45
+ ALTER TABLE "permit_entity"
46
+ ADD CONSTRAINT "UQ_d3226602b909b64bcaeadc39c3c" UNIQUE ("extractor", "boxId")
47
+ `);
48
+ }
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTc4Mjk0ODA2MjM1NC1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9wb3N0Z3Jlcy8xNzgyOTQ4MDYyMzU0LW1pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO1FBQ3RDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7O1NBR25CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7O1NBR25CLENBQUMsQ0FBQztJQUNULENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO1FBQ3hDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7U0FHbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7O1NBR25CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7O1NBR25CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7O1NBR25CLENBQUMsQ0FBQztJQUNULENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1pZ3JhdGlvbkludGVyZmFjZSxcbiAgUXVlcnlSdW5uZXIsXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5cbmV4cG9ydCBjbGFzcyBNaWdyYXRpb24xNzgyOTQ4MDYyMzU0IGltcGxlbWVudHMgTWlncmF0aW9uSW50ZXJmYWNlIHtcbiAgbmFtZSA9ICdNaWdyYXRpb24xNzgyOTQ4MDYyMzU0JztcblxuICBwdWJsaWMgYXN5bmMgdXAocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJwZXJtaXRfZW50aXR5XCIgUkVOQU1FIENPTFVNTiBcImJveElkXCIgVE8gXCJpZGVudGlmaWVyXCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJwZXJtaXRfZW50aXR5XCIgUkVOQU1FIENPTFVNTiBcImJveFNlcmlhbGl6ZWRcIiAgVE8gXCJzZXJpYWxpemVkXCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJwZXJtaXRfZW50aXR5XCIgRFJPUCBDT0xVTU4gXCJzcGVuZEJsb2NrXCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJwZXJtaXRfZW50aXR5XCJcbiAgICAgICAgICAgIEFERCBcInNwZW5kQmxvY2tcIiBjaGFyYWN0ZXIgdmFyeWluZ1xuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInBlcm1pdF9lbnRpdHlcIlxuICAgICAgICAgICAgQUREIENPTlNUUkFJTlQgXCJVUV8yMDVjNmM4NDk5ZGZmMTkyZWMwNzg5MTA5NTZcIiBVTklRVUUgKFwiaWRlbnRpZmllclwiLCBcImV4dHJhY3RvclwiKVxuICAgICAgICBgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb3duKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwicGVybWl0X2VudGl0eVwiIERST1AgQ09MVU1OIFwic3BlbmRCbG9ja1wiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwicGVybWl0X2VudGl0eVwiXG4gICAgICAgICAgICBBREQgXCJzcGVuZEJsb2NrXCIgdGV4dFxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInBlcm1pdF9lbnRpdHlcIiBEUk9QIENPTFVNTiBcInNlcmlhbGl6ZWRcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInBlcm1pdF9lbnRpdHlcIiBEUk9QIENPTFVNTiBcImlkZW50aWZpZXJcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInBlcm1pdF9lbnRpdHlcIlxuICAgICAgICAgICAgQUREIFwiYm94U2VyaWFsaXplZFwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwicGVybWl0X2VudGl0eVwiXG4gICAgICAgICAgICBBREQgXCJib3hJZFwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwicGVybWl0X2VudGl0eVwiXG4gICAgICAgICAgICBBREQgQ09OU1RSQUlOVCBcIlVRX2QzMjI2NjAyYjkwOWI2NGJjYWVhZGMzOWMzY1wiIFVOSVFVRSAoXCJleHRyYWN0b3JcIiwgXCJib3hJZFwiKVxuICAgICAgICBgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from '@rosen-bridge/extended-typeorm';
2
+ export declare class Migration1782948174639 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1782948174639-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1782948174639-migration.d.ts","sourceRoot":"","sources":["../../../lib/migrations/sqlite/1782948174639-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAkD3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAkD3D"}
@@ -0,0 +1,103 @@
1
+ export class Migration1782948174639 {
2
+ name = 'Migration1782948174639';
3
+ async up(queryRunner) {
4
+ await queryRunner.query(`
5
+ CREATE TABLE "temporary_permit_entity" (
6
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
7
+ "identifier" varchar NOT NULL,
8
+ "block" varchar NOT NULL,
9
+ "height" integer NOT NULL,
10
+ "txId" varchar NOT NULL,
11
+ "serialized" varchar NOT NULL,
12
+ "WID" varchar NOT NULL,
13
+ "spendBlock" varchar,
14
+ "spendHeight" integer,
15
+ "extractor" varchar NOT NULL,
16
+ CONSTRAINT "UQ_2c1e30eb6bd637e71efd9ca683e" UNIQUE ("identifier", "extractor")
17
+ )
18
+ `);
19
+ await queryRunner.query(`
20
+ INSERT INTO "temporary_permit_entity"(
21
+ "id",
22
+ "identifier",
23
+ "txId",
24
+ "block",
25
+ "height",
26
+ "serialized",
27
+ "WID",
28
+ "spendBlock",
29
+ "spendHeight",
30
+ "extractor"
31
+ )
32
+ SELECT "id",
33
+ "boxId",
34
+ "txId",
35
+ "block",
36
+ "height",
37
+ "boxSerialized",
38
+ "WID",
39
+ "spendBlock",
40
+ "spendHeight",
41
+ "extractor"
42
+ FROM "collateral_entity"
43
+ `);
44
+ await queryRunner.query(`
45
+ DROP TABLE "permit_entity"
46
+ `);
47
+ await queryRunner.query(`
48
+ ALTER TABLE "temporary_permit_entity"
49
+ RENAME TO "permit_entity"
50
+ `);
51
+ }
52
+ async down(queryRunner) {
53
+ await queryRunner.query(`
54
+ ALTER TABLE "permit_entity"
55
+ RENAME TO "temporary_permit_entity"
56
+ `);
57
+ await queryRunner.query(`
58
+ CREATE TABLE "permit_entity" (
59
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
60
+ "extractor" varchar NOT NULL,
61
+ "boxId" varchar NOT NULL,
62
+ "boxSerialized" varchar NOT NULL,
63
+ "WID" varchar NOT NULL,
64
+ "txId" varchar NOT NULL,
65
+ "block" varchar NOT NULL,
66
+ "height" integer NOT NULL,
67
+ "spendBlock" varchar,
68
+ "spendHeight" integer,
69
+ "spendTxId" varchar,
70
+ CONSTRAINT "UQ_2d4abc2071df9a2300a5e1b4616" UNIQUE ("boxId", "extractor")
71
+ )
72
+ `);
73
+ await queryRunner.query(`
74
+ INSERT INTO "permit_entity"(
75
+ "id",
76
+ "boxId",
77
+ "boxSerialized",
78
+ "WID",
79
+ "txId",
80
+ "block",
81
+ "height",
82
+ "spendBlock",
83
+ "spendHeight",
84
+ "extractor"
85
+ )
86
+ SELECT "id",
87
+ "identifier",
88
+ "serialized",
89
+ "WID",
90
+ "txId",
91
+ "block",
92
+ "height",
93
+ "spendBlock",
94
+ "spendHeight",
95
+ "extractor"
96
+ FROM "temporary_permit_entity"
97
+ `);
98
+ await queryRunner.query(`
99
+ DROP TABLE "temporary_permit_entity"
100
+ `);
101
+ }
102
+ }
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTc4Mjk0ODE3NDYzOS1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9zcWxpdGUvMTc4Mjk0ODE3NDYzOS1taWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxJQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtRQUN0QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7O1NBY25CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBd0JuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7O1NBR25CLENBQUMsQ0FBQztJQUNULENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO1FBQ3hDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7O1NBR25CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O1NBZW5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBd0JuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztJQUNULENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1pZ3JhdGlvbkludGVyZmFjZSxcbiAgUXVlcnlSdW5uZXIsXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5cbmV4cG9ydCBjbGFzcyBNaWdyYXRpb24xNzgyOTQ4MTc0NjM5IGltcGxlbWVudHMgTWlncmF0aW9uSW50ZXJmYWNlIHtcbiAgbmFtZSA9ICdNaWdyYXRpb24xNzgyOTQ4MTc0NjM5JztcblxuICBwdWJsaWMgYXN5bmMgdXAocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIFwidGVtcG9yYXJ5X3Blcm1pdF9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImlkZW50aWZpZXJcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic2VyaWFsaXplZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJXSURcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHZhcmNoYXIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJleHRyYWN0b3JcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgXCJVUV8yYzFlMzBlYjZiZDYzN2U3MWVmZDljYTY4M2VcIiBVTklRVUUgKFwiaWRlbnRpZmllclwiLCBcImV4dHJhY3RvclwiKVxuICAgICAgICAgICAgKVxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBJTlNFUlQgSU5UTyBcInRlbXBvcmFyeV9wZXJtaXRfZW50aXR5XCIoXG4gICAgICAgICAgICAgICAgICAgIFwiaWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJpZGVudGlmaWVyXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwic2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIldJRFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgU0VMRUNUIFwiaWRcIixcbiAgICAgICAgICAgICAgICBcImJveElkXCIsXG4gICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgXCJXSURcIixcbiAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICBcInNwZW5kSGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJleHRyYWN0b3JcIlxuICAgICAgICAgICAgRlJPTSBcImNvbGxhdGVyYWxfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgRFJPUCBUQUJMRSBcInBlcm1pdF9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInRlbXBvcmFyeV9wZXJtaXRfZW50aXR5XCJcbiAgICAgICAgICAgICAgICBSRU5BTUUgVE8gXCJwZXJtaXRfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG93bihxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInBlcm1pdF9lbnRpdHlcIlxuICAgICAgICAgICAgICAgIFJFTkFNRSBUTyBcInRlbXBvcmFyeV9wZXJtaXRfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIFwicGVybWl0X2VudGl0eVwiIChcbiAgICAgICAgICAgICAgICBcImlkXCIgaW50ZWdlciBQUklNQVJZIEtFWSBBVVRPSU5DUkVNRU5UIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiV0lEXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIiB2YXJjaGFyLFxuICAgICAgICAgICAgICAgIFwic3BlbmRIZWlnaHRcIiBpbnRlZ2VyLFxuICAgICAgICAgICAgICAgIFwic3BlbmRUeElkXCIgdmFyY2hhcixcbiAgICAgICAgICAgICAgICBDT05TVFJBSU5UIFwiVVFfMmQ0YWJjMjA3MWRmOWEyMzAwYTVlMWI0NjE2XCIgVU5JUVVFIChcImJveElkXCIsIFwiZXh0cmFjdG9yXCIpXG4gICAgICAgICAgICApXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIElOU0VSVCBJTlRPIFwicGVybWl0X2VudGl0eVwiKFxuICAgICAgICAgICAgICAgICAgICBcImlkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiV0lEXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kSGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBTRUxFQ1QgXCJpZFwiLFxuICAgICAgICAgICAgICAgIFwiaWRlbnRpZmllclwiLFxuICAgICAgICAgICAgICAgIFwic2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgIFwiV0lEXCIsXG4gICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCJcbiAgICAgICAgICAgIEZST00gXCJ0ZW1wb3JhcnlfcGVybWl0X2VudGl0eVwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIERST1AgVEFCTEUgXCJ0ZW1wb3JhcnlfcGVybWl0X2VudGl0eVwiXG4gICAgICAgIGApO1xuICB9XG59XG4iXX0=