crx-monkey-next 0.2.3 → 0.3.1
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/dist/client/main.d.ts +7 -0
- package/dist/client/tsconfig.client.tsbuildinfo +1 -1
- package/dist/node/exports.d.ts +14 -5
- package/dist/node/exports.js +167 -348
- package/dist/node/main.js +328 -235
- package/package.json +1 -1
package/dist/node/main.js
CHANGED
|
@@ -10,15 +10,15 @@ import esbuild from 'esbuild';
|
|
|
10
10
|
import fs, { promises, watch, readFile } from 'fs';
|
|
11
11
|
import chalk from 'chalk';
|
|
12
12
|
import moment from 'moment';
|
|
13
|
+
import { WebSocketServer } from 'ws';
|
|
14
|
+
import MurmurHash3 from 'murmurhash3js';
|
|
13
15
|
import fsExtra from 'fs-extra/esm';
|
|
14
16
|
import consola from 'consola';
|
|
15
|
-
import MurmurHash3 from 'murmurhash3js';
|
|
16
17
|
import prettier from 'prettier';
|
|
17
18
|
import { parse, Node } from 'node-html-parser';
|
|
18
|
-
import { WebSocketServer } from 'ws';
|
|
19
19
|
import express from 'express';
|
|
20
20
|
|
|
21
|
-
var version = "0.
|
|
21
|
+
var version = "0.3.1";
|
|
22
22
|
var packageJson = {
|
|
23
23
|
version: version};
|
|
24
24
|
|
|
@@ -298,6 +298,7 @@ const TYPES = {
|
|
|
298
298
|
BuildID: Symbol.for('BuildID'),
|
|
299
299
|
CacheDir: Symbol.for('CacheDir'),
|
|
300
300
|
IsWatch: Symbol.for('IsWatch'),
|
|
301
|
+
Hmr: Symbol.for('Hmr'),
|
|
301
302
|
};
|
|
302
303
|
|
|
303
304
|
/**
|
|
@@ -565,19 +566,187 @@ Logger = __decorate([
|
|
|
565
566
|
__metadata("design:paramtypes", [ConfigLoader])
|
|
566
567
|
], Logger);
|
|
567
568
|
|
|
569
|
+
/**
|
|
570
|
+
* The websocket server of manage auto reload.
|
|
571
|
+
*/
|
|
572
|
+
let SockServer = class SockServer {
|
|
573
|
+
configLoader;
|
|
574
|
+
logger;
|
|
575
|
+
_wserver = null;
|
|
576
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
577
|
+
listeners = [];
|
|
578
|
+
_host;
|
|
579
|
+
_port;
|
|
580
|
+
get host() {
|
|
581
|
+
return this._host;
|
|
582
|
+
}
|
|
583
|
+
get port() {
|
|
584
|
+
return this._port;
|
|
585
|
+
}
|
|
586
|
+
/**
|
|
587
|
+
* Start and setup server.
|
|
588
|
+
* @param host
|
|
589
|
+
* @param port
|
|
590
|
+
*/
|
|
591
|
+
constructor(configLoader, logger) {
|
|
592
|
+
this.configLoader = configLoader;
|
|
593
|
+
this.logger = logger;
|
|
594
|
+
const { server: { host, websocket }, } = this.configLoader.useConfig();
|
|
595
|
+
if (host === undefined || websocket === undefined) {
|
|
596
|
+
throw new Error('host or port was undefined');
|
|
597
|
+
}
|
|
598
|
+
this._host = host;
|
|
599
|
+
this._port = websocket;
|
|
600
|
+
//this.setup();
|
|
601
|
+
}
|
|
602
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unnecessary-type-constraint
|
|
603
|
+
addMsgListener(listener) {
|
|
604
|
+
this.listeners.push(listener);
|
|
605
|
+
}
|
|
606
|
+
dispatch(msg, target) {
|
|
607
|
+
this.listeners.forEach((l) => {
|
|
608
|
+
l(msg, (response) => {
|
|
609
|
+
this.sendMsg(target, response);
|
|
610
|
+
});
|
|
611
|
+
});
|
|
612
|
+
}
|
|
613
|
+
setup() {
|
|
614
|
+
this._wserver = new WebSocketServer({
|
|
615
|
+
port: this._port,
|
|
616
|
+
host: this._host,
|
|
617
|
+
});
|
|
618
|
+
this._wserver.addListener('connection', (socket) => {
|
|
619
|
+
this.sendMsg(socket, {
|
|
620
|
+
type: 'connected',
|
|
621
|
+
content: null,
|
|
622
|
+
});
|
|
623
|
+
socket.addEventListener('message', (e) => {
|
|
624
|
+
if (typeof e.data === 'string') {
|
|
625
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
626
|
+
const data = JSON.parse(e.data);
|
|
627
|
+
this.dispatch(data, e.target);
|
|
628
|
+
}
|
|
629
|
+
this.sendMsg(socket, {
|
|
630
|
+
type: 'send_ok',
|
|
631
|
+
content: e.data,
|
|
632
|
+
});
|
|
633
|
+
});
|
|
634
|
+
});
|
|
635
|
+
}
|
|
636
|
+
/**
|
|
637
|
+
* Send reload signal to websocket client.
|
|
638
|
+
* @param token
|
|
639
|
+
*/
|
|
640
|
+
reload(token, data) {
|
|
641
|
+
if (this._wserver === null) {
|
|
642
|
+
throw new Error('Websocket server has never been setuped');
|
|
643
|
+
}
|
|
644
|
+
this._wserver.clients.forEach((client) => {
|
|
645
|
+
this.sendMsg(client, {
|
|
646
|
+
type: 'reload',
|
|
647
|
+
content: { reloadType: token, data },
|
|
648
|
+
});
|
|
649
|
+
});
|
|
650
|
+
this.logger.dispatchDebug(`🔃 Dispatch reload ${chalk.gray('"' + token + '"')}`);
|
|
651
|
+
}
|
|
652
|
+
sendMsg(socket, data) {
|
|
653
|
+
socket.send(JSON.stringify(data));
|
|
654
|
+
}
|
|
655
|
+
dispose() {
|
|
656
|
+
if (this._wserver === null) {
|
|
657
|
+
throw new Error('Websocket server has never been setuped');
|
|
658
|
+
}
|
|
659
|
+
this._wserver.close();
|
|
660
|
+
}
|
|
661
|
+
};
|
|
662
|
+
SockServer = __decorate([
|
|
663
|
+
injectable(),
|
|
664
|
+
__param(0, inject(TYPES.ConfigLoader)),
|
|
665
|
+
__param(1, inject(TYPES.Logger)),
|
|
666
|
+
__metadata("design:paramtypes", [ConfigLoader,
|
|
667
|
+
Logger])
|
|
668
|
+
], SockServer);
|
|
669
|
+
|
|
670
|
+
let HMR = class HMR {
|
|
671
|
+
sockServer;
|
|
672
|
+
configLoader;
|
|
673
|
+
// Record<entryPoint, buildResult>
|
|
674
|
+
storedResults = {};
|
|
675
|
+
constructor(sockServer, configLoader) {
|
|
676
|
+
this.sockServer = sockServer;
|
|
677
|
+
this.configLoader = configLoader;
|
|
678
|
+
}
|
|
679
|
+
setup() {
|
|
680
|
+
this.sockServer.addMsgListener((msg, sendResponse) => {
|
|
681
|
+
if (msg.type === 'request_result') {
|
|
682
|
+
// A HMR client requests being sent the build result.
|
|
683
|
+
const { content: { entryPoint }, } = msg;
|
|
684
|
+
if (this.storedResults[entryPoint] === undefined) {
|
|
685
|
+
throw new Error(`The build result of "${entryPoint}" does not found`);
|
|
686
|
+
}
|
|
687
|
+
const decoder = new TextDecoder();
|
|
688
|
+
const text = decoder.decode(this.storedResults[entryPoint]);
|
|
689
|
+
// Response build result to client
|
|
690
|
+
const response = {
|
|
691
|
+
type: 'request_result_response',
|
|
692
|
+
content: {
|
|
693
|
+
js: text,
|
|
694
|
+
},
|
|
695
|
+
};
|
|
696
|
+
sendResponse(response);
|
|
697
|
+
}
|
|
698
|
+
});
|
|
699
|
+
}
|
|
700
|
+
async dispatchResult(entry, buildResult) {
|
|
701
|
+
const { output: { chrome }, } = this.configLoader.useConfig();
|
|
702
|
+
if (chrome === undefined) {
|
|
703
|
+
throw new Error('chrome');
|
|
704
|
+
}
|
|
705
|
+
const cacheFileName = this.getCacheFileName(entry);
|
|
706
|
+
const decoder = new TextDecoder();
|
|
707
|
+
const decodedResult = decoder.decode(buildResult);
|
|
708
|
+
this.storedResults[entry] = buildResult;
|
|
709
|
+
await fse.outputFile(resolve(chrome, cacheFileName), decodedResult);
|
|
710
|
+
this.sockServer.reload('HMR_' + entry, {
|
|
711
|
+
js: decodedResult,
|
|
712
|
+
fileName: cacheFileName,
|
|
713
|
+
});
|
|
714
|
+
}
|
|
715
|
+
getCacheFileName(entry) {
|
|
716
|
+
const endemicHash = MurmurHash3.x86.hash32(entry).toString();
|
|
717
|
+
const cacheFileName = `hmr_cache_${endemicHash}.js`;
|
|
718
|
+
return cacheFileName;
|
|
719
|
+
}
|
|
720
|
+
get websocketAddress() {
|
|
721
|
+
return `ws://${this.sockServer.host}:${this.sockServer.port}`;
|
|
722
|
+
}
|
|
723
|
+
};
|
|
724
|
+
HMR = __decorate([
|
|
725
|
+
injectable(),
|
|
726
|
+
__param(0, inject(TYPES.SockServer)),
|
|
727
|
+
__param(1, inject(TYPES.ConfigLoader)),
|
|
728
|
+
__metadata("design:paramtypes", [SockServer,
|
|
729
|
+
ConfigLoader])
|
|
730
|
+
], HMR);
|
|
731
|
+
|
|
568
732
|
/**
|
|
569
733
|
* Manage all bundler
|
|
570
734
|
*/
|
|
571
735
|
let CrxmBundler = class CrxmBundler {
|
|
572
736
|
configLoader;
|
|
573
737
|
logger;
|
|
738
|
+
_hmr;
|
|
574
739
|
_targets = {};
|
|
575
740
|
_compileResults = {};
|
|
576
741
|
watchers = [];
|
|
577
742
|
updateHandlers = [];
|
|
578
|
-
constructor(configLoader, logger) {
|
|
743
|
+
constructor(configLoader, logger, _hmr) {
|
|
579
744
|
this.configLoader = configLoader;
|
|
580
745
|
this.logger = logger;
|
|
746
|
+
this._hmr = _hmr;
|
|
747
|
+
}
|
|
748
|
+
get hmr() {
|
|
749
|
+
return this._hmr;
|
|
581
750
|
}
|
|
582
751
|
get compileResults() {
|
|
583
752
|
return this._compileResults;
|
|
@@ -665,7 +834,7 @@ let CrxmBundler = class CrxmBundler {
|
|
|
665
834
|
Object.entries(hashs).map(async ([, hash]) => {
|
|
666
835
|
const filePath = absolutePaths[hash];
|
|
667
836
|
this.logger.dispatchDebug(filePath);
|
|
668
|
-
const onEndFirstBuild = () => {
|
|
837
|
+
const onEndFirstBuild = (result) => {
|
|
669
838
|
const newHashs = notSucceedFirstBuildHashs.filter((h) => h !== hash);
|
|
670
839
|
notSucceedFirstBuildHashs = newHashs;
|
|
671
840
|
if (notSucceedFirstBuildHashs.length == 0) {
|
|
@@ -679,7 +848,7 @@ let CrxmBundler = class CrxmBundler {
|
|
|
679
848
|
}
|
|
680
849
|
async watchFile(hash, onEndFirstBuild) {
|
|
681
850
|
const absolutePaths = await this.getTargetAbsolutePaths();
|
|
682
|
-
const absolutePath = resolveFilePath(absolutePaths[hash]);
|
|
851
|
+
const absolutePath = resolveFilePath(absolutePaths[hash].absolute);
|
|
683
852
|
const { usingPlugin } = this._targets[hash];
|
|
684
853
|
if (await fse.exists(absolutePath)) {
|
|
685
854
|
const { plugin, name } = usingPlugin.watch;
|
|
@@ -694,9 +863,12 @@ let CrxmBundler = class CrxmBundler {
|
|
|
694
863
|
});
|
|
695
864
|
if (isFirst) {
|
|
696
865
|
isFirst = false;
|
|
697
|
-
onEndFirstBuild();
|
|
866
|
+
onEndFirstBuild(result);
|
|
698
867
|
}
|
|
699
868
|
};
|
|
869
|
+
if (typeof plugin !== 'function') {
|
|
870
|
+
throw new Error(`Plugin "${name}" is not function.`);
|
|
871
|
+
}
|
|
700
872
|
const watcher = await plugin(absolutePath, resultSender, this);
|
|
701
873
|
this.watchers.push(watcher);
|
|
702
874
|
this.logger.dispatchDebugStack(`🩹 [${name}] Registered plugin for ${chalk.gray('"' + absolutePath + '"')}`);
|
|
@@ -711,7 +883,7 @@ let CrxmBundler = class CrxmBundler {
|
|
|
711
883
|
throw new Error(this.logger.dispatchErr(`hash "${hash}" is not registered with Bundler."`));
|
|
712
884
|
}
|
|
713
885
|
const absolutePaths = await this.getTargetAbsolutePaths();
|
|
714
|
-
const absolutePath = resolveFilePath(absolutePaths[hash]);
|
|
886
|
+
const absolutePath = resolveFilePath(absolutePaths[hash].absolute);
|
|
715
887
|
this._compileResults[hash] = await target.usingPlugin.build.plugin(absolutePath, this);
|
|
716
888
|
return target;
|
|
717
889
|
}
|
|
@@ -722,7 +894,7 @@ let CrxmBundler = class CrxmBundler {
|
|
|
722
894
|
const compileResults = {};
|
|
723
895
|
const absolutePaths = await this.getTargetAbsolutePaths();
|
|
724
896
|
await Promise.all(Object.keys(absolutePaths).map(async (hash) => {
|
|
725
|
-
const absolutePath = resolveFilePath(absolutePaths[hash]);
|
|
897
|
+
const absolutePath = resolveFilePath(absolutePaths[hash].absolute);
|
|
726
898
|
const { usingPlugin } = this._targets[hash];
|
|
727
899
|
if (await fse.exists(absolutePath)) {
|
|
728
900
|
compileResults[hash] = await usingPlugin.build.plugin(absolutePath, this);
|
|
@@ -745,7 +917,7 @@ let CrxmBundler = class CrxmBundler {
|
|
|
745
917
|
const paths = {};
|
|
746
918
|
Object.keys(this._targets).map((hash) => {
|
|
747
919
|
const { entryPoint } = this._targets[hash];
|
|
748
|
-
paths[hash] = resolve(projectDir, entryPoint);
|
|
920
|
+
paths[hash] = { absolute: resolve(projectDir, entryPoint), entryPoint };
|
|
749
921
|
});
|
|
750
922
|
return paths;
|
|
751
923
|
}
|
|
@@ -754,8 +926,10 @@ CrxmBundler = __decorate([
|
|
|
754
926
|
injectable(),
|
|
755
927
|
__param(0, inject(TYPES.ConfigLoader)),
|
|
756
928
|
__param(1, inject(TYPES.Logger)),
|
|
929
|
+
__param(2, inject(TYPES.Hmr)),
|
|
757
930
|
__metadata("design:paramtypes", [ConfigLoader,
|
|
758
|
-
Logger
|
|
931
|
+
Logger,
|
|
932
|
+
HMR])
|
|
759
933
|
], CrxmBundler);
|
|
760
934
|
|
|
761
935
|
/**
|
|
@@ -1098,6 +1272,16 @@ let ManifestFactory = class ManifestFactory {
|
|
|
1098
1272
|
}
|
|
1099
1273
|
return result;
|
|
1100
1274
|
}
|
|
1275
|
+
setCsp(value) {
|
|
1276
|
+
if (this.workspace.content_security_policy === undefined) {
|
|
1277
|
+
this.workspace.content_security_policy = {
|
|
1278
|
+
extension_pages: value,
|
|
1279
|
+
};
|
|
1280
|
+
}
|
|
1281
|
+
else {
|
|
1282
|
+
this.workspace.content_security_policy.extension_pages = value;
|
|
1283
|
+
}
|
|
1284
|
+
}
|
|
1101
1285
|
};
|
|
1102
1286
|
ManifestFactory = __decorate([
|
|
1103
1287
|
injectable(),
|
|
@@ -1535,7 +1719,7 @@ function developSw(host, sockPort) {
|
|
|
1535
1719
|
websocket.addEventListener('message', ({ data }) => {
|
|
1536
1720
|
const response = JSON.parse(data);
|
|
1537
1721
|
if (response.type === 'reload') {
|
|
1538
|
-
switch (response.content) {
|
|
1722
|
+
switch (response.content.reloadType) {
|
|
1539
1723
|
case 'RELOAD_CONTENT_SCRIPT':
|
|
1540
1724
|
case 'RELOAD_SW':
|
|
1541
1725
|
case 'RELOAD_CSS':
|
|
@@ -1564,7 +1748,7 @@ function userjs(host, port, websocketPort, bindGM, disableSock, buildId, popup,
|
|
|
1564
1748
|
websocket.addEventListener('message', ({ data }) => {
|
|
1565
1749
|
const { type, content } = JSON.parse(data);
|
|
1566
1750
|
if (type === 'reload') {
|
|
1567
|
-
switch (content) {
|
|
1751
|
+
switch (content.reloadType) {
|
|
1568
1752
|
case 'RELOAD_CSS':
|
|
1569
1753
|
case 'RELOAD_CONTENT_SCRIPT':
|
|
1570
1754
|
console.log('[crxm] reloading...');
|
|
@@ -1710,7 +1894,7 @@ function developmentContentScript(crxContentBuildId, host, websocketPort) {
|
|
|
1710
1894
|
websocket.addEventListener('message', ({ data }) => {
|
|
1711
1895
|
const response = JSON.parse(data);
|
|
1712
1896
|
if (response.type === 'reload') {
|
|
1713
|
-
switch (response.content) {
|
|
1897
|
+
switch (response.content.reloadType) {
|
|
1714
1898
|
case 'RELOAD_CSS':
|
|
1715
1899
|
case 'RELOAD_CONTENT_SCRIPT':
|
|
1716
1900
|
setTimeout(() => {
|
|
@@ -1771,6 +1955,44 @@ function developmentContentScript(crxContentBuildId, host, websocketPort) {
|
|
|
1771
1955
|
});
|
|
1772
1956
|
}
|
|
1773
1957
|
|
|
1958
|
+
/**
|
|
1959
|
+
* Nice visibility stack trace.
|
|
1960
|
+
* @param e
|
|
1961
|
+
*/
|
|
1962
|
+
function errorHandler(e) {
|
|
1963
|
+
const logger = container.get(TYPES.Logger); /*
|
|
1964
|
+
dispatchErr(`${chalk.bgRed(` CRXM ${e.name} `)} ${chalk.bold(e.message)}`);
|
|
1965
|
+
|
|
1966
|
+
const stack = e.stack?.split('\n');
|
|
1967
|
+
stack?.shift();
|
|
1968
|
+
console.error(stack?.map((l) => chalk.gray(l)).join('\n'));*/
|
|
1969
|
+
const msg = `❌ ${chalk.bold(e.name + ':')} ${chalk.bold(e.message)}`;
|
|
1970
|
+
const stack = e.stack?.split('\n');
|
|
1971
|
+
stack?.shift();
|
|
1972
|
+
const stackStr = stack?.map((l) => chalk.gray(l)).join('\n');
|
|
1973
|
+
logger.dispatchErr(msg, stackStr);
|
|
1974
|
+
}
|
|
1975
|
+
/**
|
|
1976
|
+
* Stringify a function that binded args.
|
|
1977
|
+
* @param target function
|
|
1978
|
+
* @param args args
|
|
1979
|
+
* @returns A function stringified.
|
|
1980
|
+
*/
|
|
1981
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1982
|
+
function stringifyFunction(target, args) {
|
|
1983
|
+
const raw = target.toString();
|
|
1984
|
+
const newArgs = args.map((arg) => {
|
|
1985
|
+
if (typeof arg === 'string') {
|
|
1986
|
+
return `'${arg}'`;
|
|
1987
|
+
}
|
|
1988
|
+
else {
|
|
1989
|
+
return String(arg);
|
|
1990
|
+
}
|
|
1991
|
+
});
|
|
1992
|
+
const code = `(${raw})(${newArgs.join(', ')});`;
|
|
1993
|
+
return code;
|
|
1994
|
+
}
|
|
1995
|
+
|
|
1774
1996
|
let CreateDevClient = class CreateDevClient {
|
|
1775
1997
|
configLoader;
|
|
1776
1998
|
bundler;
|
|
@@ -1856,26 +2078,6 @@ CreateDevClient = __decorate([
|
|
|
1856
2078
|
UserscriptHeaderFactory,
|
|
1857
2079
|
ManifestFactory, String, Object])
|
|
1858
2080
|
], CreateDevClient);
|
|
1859
|
-
/**
|
|
1860
|
-
* Stringify a function that binded args.
|
|
1861
|
-
* @param target function
|
|
1862
|
-
* @param args args
|
|
1863
|
-
* @returns A function stringified.
|
|
1864
|
-
*/
|
|
1865
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1866
|
-
function stringifyFunction(target, args) {
|
|
1867
|
-
const raw = target.toString();
|
|
1868
|
-
const newArgs = args.map((arg) => {
|
|
1869
|
-
if (typeof arg === 'string') {
|
|
1870
|
-
return `'${arg}'`;
|
|
1871
|
-
}
|
|
1872
|
-
else {
|
|
1873
|
-
return String(arg);
|
|
1874
|
-
}
|
|
1875
|
-
});
|
|
1876
|
-
const code = `(${raw})(${newArgs.join(', ')});`;
|
|
1877
|
-
return code;
|
|
1878
|
-
}
|
|
1879
2081
|
|
|
1880
2082
|
function isolatedConnector(crxContentBuildId, config) {
|
|
1881
2083
|
const messageListeners = {};
|
|
@@ -1964,34 +2166,28 @@ function isolatedConnector(crxContentBuildId, config) {
|
|
|
1964
2166
|
* However, due to design changes to support UserJS popups, the plugin no longer handles transpilation.
|
|
1965
2167
|
* Instead, the HTML is now processed internally via popup/Popup.ts.
|
|
1966
2168
|
*/
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
2169
|
+
function htmlBundler() {
|
|
2170
|
+
return {
|
|
2171
|
+
name: 'HTML File loader',
|
|
2172
|
+
plugin: async (filePath) => {
|
|
2173
|
+
return new Promise((resolve, reject) => {
|
|
2174
|
+
readFile(filePath, (err, data) => {
|
|
2175
|
+
if (err !== null) {
|
|
2176
|
+
reject(err);
|
|
2177
|
+
}
|
|
2178
|
+
else {
|
|
2179
|
+
resolve(data);
|
|
2180
|
+
}
|
|
2181
|
+
});
|
|
1978
2182
|
});
|
|
1979
|
-
}
|
|
1980
|
-
}
|
|
1981
|
-
}
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
if (err !== null) {
|
|
1988
|
-
throw err;
|
|
1989
|
-
}
|
|
1990
|
-
else {
|
|
1991
|
-
sendResult(data);
|
|
1992
|
-
}
|
|
1993
|
-
});
|
|
1994
|
-
watcher.addListener('change', async () => {
|
|
2183
|
+
},
|
|
2184
|
+
};
|
|
2185
|
+
}
|
|
2186
|
+
function htmlBundlerWatch() {
|
|
2187
|
+
return {
|
|
2188
|
+
name: 'HTML File loader watch',
|
|
2189
|
+
plugin: async (filePath, sendResult) => {
|
|
2190
|
+
const watcher = watch(filePath);
|
|
1995
2191
|
readFile(filePath, (err, data) => {
|
|
1996
2192
|
if (err !== null) {
|
|
1997
2193
|
throw err;
|
|
@@ -2000,14 +2196,24 @@ const htmlBundlerWatch = {
|
|
|
2000
2196
|
sendResult(data);
|
|
2001
2197
|
}
|
|
2002
2198
|
});
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
}
|
|
2199
|
+
watcher.addListener('change', async () => {
|
|
2200
|
+
readFile(filePath, (err, data) => {
|
|
2201
|
+
if (err !== null) {
|
|
2202
|
+
throw err;
|
|
2203
|
+
}
|
|
2204
|
+
else {
|
|
2205
|
+
sendResult(data);
|
|
2206
|
+
}
|
|
2207
|
+
});
|
|
2208
|
+
});
|
|
2209
|
+
return {
|
|
2210
|
+
stop: async () => {
|
|
2211
|
+
watcher.close();
|
|
2212
|
+
},
|
|
2213
|
+
};
|
|
2214
|
+
},
|
|
2215
|
+
};
|
|
2216
|
+
}
|
|
2011
2217
|
|
|
2012
2218
|
let Popup = class Popup {
|
|
2013
2219
|
bundler;
|
|
@@ -2024,6 +2230,7 @@ let Popup = class Popup {
|
|
|
2024
2230
|
};
|
|
2025
2231
|
entry = null;
|
|
2026
2232
|
diff = null;
|
|
2233
|
+
scriptReplaces = [];
|
|
2027
2234
|
constructor(bundler, manifestFactory, configLoader, logger) {
|
|
2028
2235
|
this.bundler = bundler;
|
|
2029
2236
|
this.manifestFactory = manifestFactory;
|
|
@@ -2111,7 +2318,8 @@ let Popup = class Popup {
|
|
|
2111
2318
|
this.applyCssForUserjsPopup();
|
|
2112
2319
|
await this.injectEncodedAssetesToInline();
|
|
2113
2320
|
const data = this.parser.userjs.toString();
|
|
2114
|
-
|
|
2321
|
+
const replaced = this.replaceRealScript(data);
|
|
2322
|
+
return replaced;
|
|
2115
2323
|
}
|
|
2116
2324
|
/**
|
|
2117
2325
|
* Register the style to be specified for the userjs popup
|
|
@@ -2163,39 +2371,6 @@ let Popup = class Popup {
|
|
|
2163
2371
|
};
|
|
2164
2372
|
});
|
|
2165
2373
|
}
|
|
2166
|
-
/**
|
|
2167
|
-
* Output resources used in the extension popup
|
|
2168
|
-
*/
|
|
2169
|
-
async outputExtensionResources() {
|
|
2170
|
-
await Promise.all(this.syncResults.map(async ({ hash, entry }) => {
|
|
2171
|
-
const target = this.bundler.targets[hash];
|
|
2172
|
-
let result = this.bundler.compileResults[hash];
|
|
2173
|
-
if (result === undefined) {
|
|
2174
|
-
await this.bundler.compileForce(hash);
|
|
2175
|
-
result = this.bundler.compileResults[hash];
|
|
2176
|
-
if (result === undefined) {
|
|
2177
|
-
throw new Error(`The result of "${hash}" is undefined.\nEntryPoint: "${target.entryPoint}"`);
|
|
2178
|
-
}
|
|
2179
|
-
}
|
|
2180
|
-
if (target.flag === 'html_script' || target.flag === 'html_href') {
|
|
2181
|
-
const extChanged = target.flag === 'html_script'
|
|
2182
|
-
? this.changeExt(target.entryPoint, 'js')
|
|
2183
|
-
: this.changeExt(target.entryPoint, 'css');
|
|
2184
|
-
const endemicHash = MurmurHash3.x86.hash32(target.entryPoint).toString();
|
|
2185
|
-
const fileName = endemicHash + '_' + extChanged;
|
|
2186
|
-
const outputPath = resolve(this.outputDir, fileName);
|
|
2187
|
-
await fse.outputFile(outputPath, result);
|
|
2188
|
-
this.logger.dispatchDebug(`👋 An asset loaded by popup has been outputed. ${chalk.gray(`"${target.entryPoint}" -> "${outputPath}"`)}`);
|
|
2189
|
-
if (target.flag === 'html_script') {
|
|
2190
|
-
this.resolveAttr(entry, fileName, 'script', 'src', this.parser.extension);
|
|
2191
|
-
}
|
|
2192
|
-
else {
|
|
2193
|
-
this.resolveAttr(entry, fileName, 'link', 'href', this.parser.extension);
|
|
2194
|
-
this.resolveAttr(entry, fileName, 'a', 'href', this.parser.extension);
|
|
2195
|
-
}
|
|
2196
|
-
}
|
|
2197
|
-
}));
|
|
2198
|
-
}
|
|
2199
2374
|
/**
|
|
2200
2375
|
* Copy media resources used in extension pop-ups
|
|
2201
2376
|
*/
|
|
@@ -2224,7 +2399,7 @@ let Popup = class Popup {
|
|
|
2224
2399
|
}),
|
|
2225
2400
|
...this.diff.srcFiles.delete.map(async (filePath) => {
|
|
2226
2401
|
const baseFileName = basename(filePath);
|
|
2227
|
-
const absolutedNewFilePath = resolve(this.outputDir, '
|
|
2402
|
+
const absolutedNewFilePath = resolve(this.outputDir, 'public', baseFileName);
|
|
2228
2403
|
await fse.remove(absolutedNewFilePath);
|
|
2229
2404
|
}),
|
|
2230
2405
|
]);
|
|
@@ -2250,6 +2425,31 @@ let Popup = class Popup {
|
|
|
2250
2425
|
this.resolveAttr(filePath, content, 'iframe', 'src', this.parser.userjs);
|
|
2251
2426
|
}));
|
|
2252
2427
|
}
|
|
2428
|
+
/**
|
|
2429
|
+
* After inlining the HTML using this.resolveInline(),
|
|
2430
|
+
* replaces the inline script placeholders
|
|
2431
|
+
* `__CRXM_REPLACED_SCRIPT_${index}` with their corresponding
|
|
2432
|
+
* stored bundle outputs.
|
|
2433
|
+
*
|
|
2434
|
+
* Since node-html-parser cannot correctly handle inline
|
|
2435
|
+
* script contents, this method performs the replacement
|
|
2436
|
+
* via external string manipulation after the parser has
|
|
2437
|
+
* completed all DOM operations.
|
|
2438
|
+
*/
|
|
2439
|
+
replaceRealScript(rawScript) {
|
|
2440
|
+
this.scriptReplaces.forEach((scriptStr, i) => {
|
|
2441
|
+
rawScript = rawScript.replace(`__CRXM_REPLACED_SCRIPT_${i}`, scriptStr);
|
|
2442
|
+
});
|
|
2443
|
+
return rawScript;
|
|
2444
|
+
}
|
|
2445
|
+
/**
|
|
2446
|
+
* Inlines the CSS files referenced in the HTML.
|
|
2447
|
+
*
|
|
2448
|
+
* For each script element that loads an external script,
|
|
2449
|
+
* replaces its inner content with the placeholder string
|
|
2450
|
+
* `__CRXM_REPLACED_SCRIPT_${index}`, and stores the bundled
|
|
2451
|
+
* result of that script using the corresponding index.
|
|
2452
|
+
*/
|
|
2253
2453
|
resolveInline() {
|
|
2254
2454
|
const parser = this.parser?.userjs;
|
|
2255
2455
|
if (parser === undefined) {
|
|
@@ -2260,11 +2460,17 @@ let Popup = class Popup {
|
|
|
2260
2460
|
const result = this.bundler.compileResults[hash];
|
|
2261
2461
|
const decoder = new TextDecoder();
|
|
2262
2462
|
const resultStr = decoder.decode(result);
|
|
2463
|
+
const escaped = resultStr
|
|
2464
|
+
.replaceAll('\\', '\\\\')
|
|
2465
|
+
.replaceAll('`', '\\`')
|
|
2466
|
+
.replaceAll('$', '\\$');
|
|
2263
2467
|
if (target.flag === 'html_script') {
|
|
2264
2468
|
const nodes = parser.querySelectorAll(`script[src="${entry}"]`);
|
|
2469
|
+
const i = this.scriptReplaces.length;
|
|
2470
|
+
this.scriptReplaces[i] = escaped;
|
|
2265
2471
|
nodes.forEach((node) => {
|
|
2266
2472
|
node.removeAttribute('src');
|
|
2267
|
-
node.
|
|
2473
|
+
node.set_content(`__CRXM_REPLACED_SCRIPT_${i}`);
|
|
2268
2474
|
});
|
|
2269
2475
|
}
|
|
2270
2476
|
if (target.flag === 'html_href') {
|
|
@@ -2354,8 +2560,8 @@ let Popup = class Popup {
|
|
|
2354
2560
|
async syncBundler(htmlEntry, diff) {
|
|
2355
2561
|
// register html
|
|
2356
2562
|
this.bundler.addTarget(htmlEntry, {
|
|
2357
|
-
build: htmlBundler,
|
|
2358
|
-
watch: htmlBundlerWatch,
|
|
2563
|
+
build: htmlBundler(),
|
|
2564
|
+
watch: htmlBundlerWatch(),
|
|
2359
2565
|
}, 'html');
|
|
2360
2566
|
// register script or css
|
|
2361
2567
|
const result = [];
|
|
@@ -2397,13 +2603,14 @@ let Popup = class Popup {
|
|
|
2397
2603
|
* @returns
|
|
2398
2604
|
*/
|
|
2399
2605
|
getAppropriatePlugin(filePath, type) {
|
|
2606
|
+
let _plugin = null;
|
|
2400
2607
|
for (const [pattern, plugin] of Object.entries(this.plugins[type])) {
|
|
2401
2608
|
const regex = new RegExp(pattern);
|
|
2402
2609
|
if (regex.test(filePath)) {
|
|
2403
|
-
|
|
2610
|
+
_plugin = plugin;
|
|
2404
2611
|
}
|
|
2405
2612
|
}
|
|
2406
|
-
return
|
|
2613
|
+
return _plugin;
|
|
2407
2614
|
}
|
|
2408
2615
|
changeExt(filePath, newExt) {
|
|
2409
2616
|
const rawFileNameSplited = basename(filePath).split('.');
|
|
@@ -2850,8 +3057,8 @@ let BundlerRegisterer = class BundlerRegisterer {
|
|
|
2850
3057
|
// Register sources to bundler without html.
|
|
2851
3058
|
for (const [flag, paths] of addTargetGroups) {
|
|
2852
3059
|
for (const path of paths) {
|
|
2853
|
-
const buildPlugin = this.
|
|
2854
|
-
const watchPlugin = this.
|
|
3060
|
+
const buildPlugin = this.getAppropriatePlugin(path, 'build');
|
|
3061
|
+
const watchPlugin = this.getAppropriatePlugin(path, 'watch');
|
|
2855
3062
|
if (!buildPlugin) {
|
|
2856
3063
|
console.error(`Could not find the appropriate plugin for building "${path}"`);
|
|
2857
3064
|
continue;
|
|
@@ -2909,35 +3116,16 @@ let BundlerRegisterer = class BundlerRegisterer {
|
|
|
2909
3116
|
});
|
|
2910
3117
|
}
|
|
2911
3118
|
}
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
*/
|
|
2917
|
-
getAppropriateBuildPlugin(filePath) {
|
|
2918
|
-
const { build } = this.configLoader.useConfig();
|
|
2919
|
-
for (const [pattern, plugin] of Object.entries(build)) {
|
|
2920
|
-
const regex = new RegExp(pattern);
|
|
2921
|
-
if (regex.test(filePath)) {
|
|
2922
|
-
return plugin;
|
|
2923
|
-
}
|
|
2924
|
-
}
|
|
2925
|
-
return null;
|
|
2926
|
-
}
|
|
2927
|
-
/**
|
|
2928
|
-
* Get watch plugin
|
|
2929
|
-
* @param filePath
|
|
2930
|
-
* @returns
|
|
2931
|
-
*/
|
|
2932
|
-
getAppropriateWatchPlugin(filePath) {
|
|
2933
|
-
const { watch } = this.configLoader.useConfig();
|
|
2934
|
-
for (const [pattern, plugin] of Object.entries(watch)) {
|
|
3119
|
+
getAppropriatePlugin(filePath, type) {
|
|
3120
|
+
const { build, watch } = this.configLoader.useConfig();
|
|
3121
|
+
let _plugin = null;
|
|
3122
|
+
for (const [pattern, plugin] of Object.entries({ build, watch }[type])) {
|
|
2935
3123
|
const regex = new RegExp(pattern);
|
|
2936
3124
|
if (regex.test(filePath)) {
|
|
2937
|
-
|
|
3125
|
+
_plugin = plugin;
|
|
2938
3126
|
}
|
|
2939
3127
|
}
|
|
2940
|
-
return
|
|
3128
|
+
return _plugin;
|
|
2941
3129
|
}
|
|
2942
3130
|
/**
|
|
2943
3131
|
* Compare file change.
|
|
@@ -3288,86 +3476,6 @@ UserscriptRegisterer = __decorate([
|
|
|
3288
3476
|
ConfigLoader])
|
|
3289
3477
|
], UserscriptRegisterer);
|
|
3290
3478
|
|
|
3291
|
-
/**
|
|
3292
|
-
* The websocket server of manage auto reload.
|
|
3293
|
-
*/
|
|
3294
|
-
let SockServer = class SockServer {
|
|
3295
|
-
configLoader;
|
|
3296
|
-
logger;
|
|
3297
|
-
wserver;
|
|
3298
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3299
|
-
listeners = [];
|
|
3300
|
-
/**
|
|
3301
|
-
* Start and setup server.
|
|
3302
|
-
* @param host
|
|
3303
|
-
* @param port
|
|
3304
|
-
*/
|
|
3305
|
-
constructor(configLoader, logger) {
|
|
3306
|
-
this.configLoader = configLoader;
|
|
3307
|
-
this.logger = logger;
|
|
3308
|
-
const { server: { host, websocket }, } = this.configLoader.useConfig();
|
|
3309
|
-
this.wserver = new WebSocketServer({
|
|
3310
|
-
port: websocket,
|
|
3311
|
-
host: host,
|
|
3312
|
-
});
|
|
3313
|
-
//this.setup();
|
|
3314
|
-
}
|
|
3315
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unnecessary-type-constraint
|
|
3316
|
-
addMsgListener(listener) {
|
|
3317
|
-
this.listeners.push(listener);
|
|
3318
|
-
}
|
|
3319
|
-
dispatch(msg) {
|
|
3320
|
-
this.listeners.forEach((l) => {
|
|
3321
|
-
l(msg);
|
|
3322
|
-
});
|
|
3323
|
-
}
|
|
3324
|
-
setup() {
|
|
3325
|
-
this.wserver.addListener('connection', (socket) => {
|
|
3326
|
-
this.sendMsg(socket, {
|
|
3327
|
-
type: 'connected',
|
|
3328
|
-
content: null,
|
|
3329
|
-
});
|
|
3330
|
-
socket.addEventListener('message', (e) => {
|
|
3331
|
-
if (typeof e.data === 'string') {
|
|
3332
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3333
|
-
const data = JSON.parse(e.data);
|
|
3334
|
-
this.dispatch(data);
|
|
3335
|
-
}
|
|
3336
|
-
this.sendMsg(socket, {
|
|
3337
|
-
type: 'send_ok',
|
|
3338
|
-
content: null,
|
|
3339
|
-
});
|
|
3340
|
-
});
|
|
3341
|
-
});
|
|
3342
|
-
}
|
|
3343
|
-
/**
|
|
3344
|
-
* Send reload signal to websocket client.
|
|
3345
|
-
* @param token
|
|
3346
|
-
*/
|
|
3347
|
-
reload(token) {
|
|
3348
|
-
this.wserver.clients.forEach((client) => {
|
|
3349
|
-
this.sendMsg(client, {
|
|
3350
|
-
type: 'reload',
|
|
3351
|
-
content: token,
|
|
3352
|
-
});
|
|
3353
|
-
});
|
|
3354
|
-
this.logger.dispatchDebug(`🔃 Dispatch reload ${chalk.gray('"' + token + '"')}`);
|
|
3355
|
-
}
|
|
3356
|
-
sendMsg(socket, data) {
|
|
3357
|
-
socket.send(JSON.stringify(data));
|
|
3358
|
-
}
|
|
3359
|
-
dispose() {
|
|
3360
|
-
this.wserver.close();
|
|
3361
|
-
}
|
|
3362
|
-
};
|
|
3363
|
-
SockServer = __decorate([
|
|
3364
|
-
injectable(),
|
|
3365
|
-
__param(0, inject(TYPES.ConfigLoader)),
|
|
3366
|
-
__param(1, inject(TYPES.Logger)),
|
|
3367
|
-
__metadata("design:paramtypes", [ConfigLoader,
|
|
3368
|
-
Logger])
|
|
3369
|
-
], SockServer);
|
|
3370
|
-
|
|
3371
3479
|
/*
|
|
3372
3480
|
/**
|
|
3373
3481
|
* The server of send to script code.
|
|
@@ -3473,6 +3581,7 @@ container
|
|
|
3473
3581
|
container.bind(TYPES.SockServer).to(SockServer).inSingletonScope();
|
|
3474
3582
|
container.bind(TYPES.CreateDevClient).to(CreateDevClient).inSingletonScope();
|
|
3475
3583
|
container.bind(TYPES.FileServer).to(FileServer).inSingletonScope();
|
|
3584
|
+
container.bind(TYPES.Hmr).to(HMR).inSingletonScope();
|
|
3476
3585
|
/**
|
|
3477
3586
|
* Values
|
|
3478
3587
|
*/
|
|
@@ -3504,6 +3613,7 @@ async function dev() {
|
|
|
3504
3613
|
const userscriptHeaderFactory = container.get(TYPES.UserscriptHeaderFactory);
|
|
3505
3614
|
const userscriptBundler = container.get(TYPES.UserscriptBundler);
|
|
3506
3615
|
const sockServer = container.get(TYPES.SockServer);
|
|
3616
|
+
const hmr = container.get(TYPES.Hmr);
|
|
3507
3617
|
const createDevClient = container.get(TYPES.CreateDevClient);
|
|
3508
3618
|
const fileServer = container.get(TYPES.FileServer);
|
|
3509
3619
|
await distributior.cleanupDist();
|
|
@@ -3511,6 +3621,7 @@ async function dev() {
|
|
|
3511
3621
|
// The websocket server for hotreload.
|
|
3512
3622
|
sockServer.setup();
|
|
3513
3623
|
fileServer.start();
|
|
3624
|
+
hmr.setup();
|
|
3514
3625
|
// Register all build targets for bundler from manifest.
|
|
3515
3626
|
await registerer.registerAll();
|
|
3516
3627
|
userscriptBundler.initialize();
|
|
@@ -3587,24 +3698,6 @@ async function dev() {
|
|
|
3587
3698
|
watcher.start();
|
|
3588
3699
|
}
|
|
3589
3700
|
|
|
3590
|
-
/**
|
|
3591
|
-
* Nice visibility stack trace.
|
|
3592
|
-
* @param e
|
|
3593
|
-
*/
|
|
3594
|
-
function errorHandler(e) {
|
|
3595
|
-
const logger = container.get(TYPES.Logger); /*
|
|
3596
|
-
dispatchErr(`${chalk.bgRed(` CRXM ${e.name} `)} ${chalk.bold(e.message)}`);
|
|
3597
|
-
|
|
3598
|
-
const stack = e.stack?.split('\n');
|
|
3599
|
-
stack?.shift();
|
|
3600
|
-
console.error(stack?.map((l) => chalk.gray(l)).join('\n'));*/
|
|
3601
|
-
const msg = `❌ ${chalk.bold(e.name + ':')} ${chalk.bold(e.message)}`;
|
|
3602
|
-
const stack = e.stack?.split('\n');
|
|
3603
|
-
stack?.shift();
|
|
3604
|
-
const stackStr = stack?.map((l) => chalk.gray(l)).join('\n');
|
|
3605
|
-
logger.dispatchErr(msg, stackStr);
|
|
3606
|
-
}
|
|
3607
|
-
|
|
3608
3701
|
/**
|
|
3609
3702
|
* Build extension.
|
|
3610
3703
|
*/
|
|
@@ -3669,4 +3762,4 @@ if (cli.matchedCommand === undefined) {
|
|
|
3669
3762
|
else {
|
|
3670
3763
|
await cli.runMatchedCommand();
|
|
3671
3764
|
}
|
|
3672
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIi4uLy4uL3NyYy9ub2RlL2ZpbGUudHMiLCIuLi8uLi9zcmMvbm9kZS9Db25maWdMb2FkZXIudHMiLCIuLi8uLi9zcmMvbm9kZS90eXBlcy50cyIsIi4uLy4uL3NyYy9ub2RlL21hbmlmZXN0L01hbmlmZXN0TG9hZGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFuaWZlc3QvTWFuaWZlc3RQYXJzZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9Mb2dnZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9DcnhtQnVuZGxlci50cyIsIi4uLy4uL3NyYy9ub2RlL1dhdGNoZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9tYW5pZmVzdC9pMThuLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFuaWZlc3QvTWFuaWZlc3RGYWN0b3J5LnRzIiwiLi4vLi4vc3JjL25vZGUvdXNlcnNjcmlwdC9Db2RlQmxvY2sudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L0NvZGVJbmplY3Rvci50cyIsIi4uLy4uL3NyYy9ub2RlL3VzZXJzY3JpcHQvVXNlcnNjcmlwdEhlYWRlci50cyIsIi4uLy4uL3NyYy9ub2RlL3VzZXJzY3JpcHQvVXNlcnNjcmlwdEJ1bmRsZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9kZXZlbG9wbWVudC9jb2Rlcy9zdy50cyIsIi4uLy4uL3NyYy9ub2RlL2RldmVsb3BtZW50L2NvZGVzL3VzZXJqcy50cyIsIi4uLy4uL3NyYy9ub2RlL2RldmVsb3BtZW50L2NvZGVzL2V4dGVuc2lvbi50cyIsIi4uLy4uL3NyYy9ub2RlL2RldmVsb3BtZW50L0NyZWF0ZURldkNsaWVudC50cyIsIi4uLy4uL3NyYy9ub2RlL2lzb2xhdGVkQ29ubmVjdG9yLnRzIiwiLi4vLi4vc3JjL25vZGUvcGx1Z2lucy9odG1sQnVuZGxlci50cyIsIi4uLy4uL3NyYy9ub2RlL3BvcHVwL1BvcHVwLnRzIiwiLi4vLi4vc3JjL25vZGUvRGlzdHJpYnV0aW9yLnRzIiwiLi4vLi4vc3JjL25vZGUvQnVuZGxlclJlZ2lzdGVyZXIudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L1VzZXJzY3JpcHRSZWdpc3RlcmVyLnRzIiwiLi4vLi4vc3JjL25vZGUvc2VydmVyL1NvY2tTZXJ2ZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9zZXJ2ZXIvRmlsZVNlcnZlci50cyIsIi4uLy4uL3NyYy9ub2RlL2ludmVyc2lmeS5jb25maWcudHMiLCIuLi8uLi9zcmMvbm9kZS9kZXYudHMiLCIuLi8uLi9zcmMvbm9kZS91dGlscy50cyIsIi4uLy4uL3NyYy9ub2RlL2J1aWxkLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xyXG4gICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2RlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XHJcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcclxuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XHJcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19lc0RlY29yYXRlKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7XHJcbiAgICBmdW5jdGlvbiBhY2NlcHQoZikgeyBpZiAoZiAhPT0gdm9pZCAwICYmIHR5cGVvZiBmICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJGdW5jdGlvbiBleHBlY3RlZFwiKTsgcmV0dXJuIGY7IH1cclxuICAgIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XHJcbiAgICB2YXIgdGFyZ2V0ID0gIWRlc2NyaXB0b3JJbiAmJiBjdG9yID8gY29udGV4dEluW1wic3RhdGljXCJdID8gY3RvciA6IGN0b3IucHJvdG90eXBlIDogbnVsbDtcclxuICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pO1xyXG4gICAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcclxuICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTtcclxuICAgICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyID0gZnVuY3Rpb24gKGYpIHsgaWYgKGRvbmUpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWRcIik7IGV4dHJhSW5pdGlhbGl6ZXJzLnB1c2goYWNjZXB0KGYgfHwgbnVsbCkpOyB9O1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xyXG4gICAgICAgIGlmIChraW5kID09PSBcImFjY2Vzc29yXCIpIHtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdm9pZCAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuZ2V0KSkgZGVzY3JpcHRvci5nZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XHJcbiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7XHJcbiAgICBkb25lID0gdHJ1ZTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3J1bkluaXRpYWxpemVycyh0aGlzQXJnLCBpbml0aWFsaXplcnMsIHZhbHVlKSB7XHJcbiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFsdWUgPSB1c2VWYWx1ZSA/IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcsIHZhbHVlKSA6IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZVZhbHVlID8gdmFsdWUgOiB2b2lkIDA7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wcm9wS2V5KHgpIHtcclxuICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJzeW1ib2xcIiA/IHggOiBcIlwiLmNvbmNhdCh4KTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NldEZ1bmN0aW9uTmFtZShmLCBuYW1lLCBwcmVmaXgpIHtcclxuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcclxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgXCJuYW1lXCIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gXCJcIi5jb25jYXQocHJlZml4LCBcIiBcIiwgbmFtZSkgOiBuYW1lIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xyXG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XHJcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XHJcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19jcmVhdGVCaW5kaW5nID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcclxuICAgIGlmICghZGVzYyB8fCAoXCJnZXRcIiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7XHJcbiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXHJcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXHJcbiAgICAgICAgICAgIHJba10gPSBhW2pdO1xyXG4gICAgcmV0dXJuIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5KHRvLCBmcm9tLCBwYWNrKSB7XHJcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcclxuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcclxuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEFzeW5jSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSksIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiwgYXdhaXRSZXR1cm4pLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiBhd2FpdFJldHVybihmKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZiwgcmVqZWN0KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlmIChnW25dKSB7IGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IGlmIChmKSBpW25dID0gZihpW25dKTsgfSB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cclxuICAgIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xyXG4gICAgdmFyIGksIHA7XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogZmFsc2UgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XHJcbn0pIDogZnVuY3Rpb24obywgdikge1xyXG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xyXG59O1xyXG5cclxudmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XHJcbiAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gKG8pIHtcclxuICAgICAgICB2YXIgYXIgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xyXG4gICAgICAgIHJldHVybiBhcjtcclxuICAgIH07XHJcbiAgICByZXR1cm4gb3duS2V5cyhvKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcclxuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRJbihzdGF0ZSwgcmVjZWl2ZXIpIHtcclxuICAgIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xyXG4gICAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlKGVudiwgdmFsdWUsIGFzeW5jKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgZXhwZWN0ZWQuXCIpO1xyXG4gICAgICAgIHZhciBkaXNwb3NlLCBpbm5lcjtcclxuICAgICAgICBpZiAoYXN5bmMpIHtcclxuICAgICAgICAgICAgaWYgKCFTeW1ib2wuYXN5bmNEaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICAgICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xyXG4gICAgICAgICAgICBpZiAoIVN5bWJvbC5kaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgICAgICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2VdO1xyXG4gICAgICAgICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xyXG4gICAgICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhc3luYykge1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgYXN5bmM6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcblxyXG59XHJcblxyXG52YXIgX1N1cHByZXNzZWRFcnJvciA9IHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGlzcG9zZVJlc291cmNlcyhlbnYpIHtcclxuICAgIGZ1bmN0aW9uIGZhaWwoZSkge1xyXG4gICAgICAgIGVudi5lcnJvciA9IGVudi5oYXNFcnJvciA/IG5ldyBfU3VwcHJlc3NlZEVycm9yKGUsIGVudi5lcnJvciwgXCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuXCIpIDogZTtcclxuICAgICAgICBlbnYuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdmFyIHIsIHMgPSAwO1xyXG4gICAgZnVuY3Rpb24gbmV4dCgpIHtcclxuICAgICAgICB3aGlsZSAociA9IGVudi5zdGFjay5wb3AoKSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyLmFzeW5jICYmIHMgPT09IDEpIHJldHVybiBzID0gMCwgZW52LnN0YWNrLnB1c2gociksIFByb21pc2UucmVzb2x2ZSgpLnRoZW4obmV4dCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoci5kaXNwb3NlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyLmFzeW5jKSByZXR1cm4gcyB8PSAyLCBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHMgfD0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgZmFpbChlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocyA9PT0gMSkgcmV0dXJuIGVudi5oYXNFcnJvciA/IFByb21pc2UucmVqZWN0KGVudi5lcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV4dCgpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24ocGF0aCwgcHJlc2VydmVKc3gpIHtcclxuICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcLlxcLj9cXC8vLnRlc3QocGF0aCkpIHtcclxuICAgICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC4odHN4KSR8KCg/OlxcLmQpPykoKD86XFwuW14uL10rPyk/KVxcLihbY21dPyl0cyQvaSwgZnVuY3Rpb24gKG0sIHRzeCwgZCwgZXh0LCBjbSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHN4ID8gcHJlc2VydmVKc3ggPyBcIi5qc3hcIiA6IFwiLmpzXCIgOiBkICYmICghZXh0IHx8ICFjbSkgPyBtIDogKGQgKyBleHQgKyBcIi5cIiArIGNtLnRvTG93ZXJDYXNlKCkgKyBcImpzXCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICAgIF9fZXh0ZW5kczogX19leHRlbmRzLFxyXG4gICAgX19hc3NpZ246IF9fYXNzaWduLFxyXG4gICAgX19yZXN0OiBfX3Jlc3QsXHJcbiAgICBfX2RlY29yYXRlOiBfX2RlY29yYXRlLFxyXG4gICAgX19wYXJhbTogX19wYXJhbSxcclxuICAgIF9fZXNEZWNvcmF0ZTogX19lc0RlY29yYXRlLFxyXG4gICAgX19ydW5Jbml0aWFsaXplcnM6IF9fcnVuSW5pdGlhbGl6ZXJzLFxyXG4gICAgX19wcm9wS2V5OiBfX3Byb3BLZXksXHJcbiAgICBfX3NldEZ1bmN0aW9uTmFtZTogX19zZXRGdW5jdGlvbk5hbWUsXHJcbiAgICBfX21ldGFkYXRhOiBfX21ldGFkYXRhLFxyXG4gICAgX19hd2FpdGVyOiBfX2F3YWl0ZXIsXHJcbiAgICBfX2dlbmVyYXRvcjogX19nZW5lcmF0b3IsXHJcbiAgICBfX2NyZWF0ZUJpbmRpbmc6IF9fY3JlYXRlQmluZGluZyxcclxuICAgIF9fZXhwb3J0U3RhcjogX19leHBvcnRTdGFyLFxyXG4gICAgX192YWx1ZXM6IF9fdmFsdWVzLFxyXG4gICAgX19yZWFkOiBfX3JlYWQsXHJcbiAgICBfX3NwcmVhZDogX19zcHJlYWQsXHJcbiAgICBfX3NwcmVhZEFycmF5czogX19zcHJlYWRBcnJheXMsXHJcbiAgICBfX3NwcmVhZEFycmF5OiBfX3NwcmVhZEFycmF5LFxyXG4gICAgX19hd2FpdDogX19hd2FpdCxcclxuICAgIF9fYXN5bmNHZW5lcmF0b3I6IF9fYXN5bmNHZW5lcmF0b3IsXHJcbiAgICBfX2FzeW5jRGVsZWdhdG9yOiBfX2FzeW5jRGVsZWdhdG9yLFxyXG4gICAgX19hc3luY1ZhbHVlczogX19hc3luY1ZhbHVlcyxcclxuICAgIF9fbWFrZVRlbXBsYXRlT2JqZWN0OiBfX21ha2VUZW1wbGF0ZU9iamVjdCxcclxuICAgIF9faW1wb3J0U3RhcjogX19pbXBvcnRTdGFyLFxyXG4gICAgX19pbXBvcnREZWZhdWx0OiBfX2ltcG9ydERlZmF1bHQsXHJcbiAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LFxyXG4gICAgX19jbGFzc1ByaXZhdGVGaWVsZFNldDogX19jbGFzc1ByaXZhdGVGaWVsZFNldCxcclxuICAgIF9fY2xhc3NQcml2YXRlRmllbGRJbjogX19jbGFzc1ByaXZhdGVGaWVsZEluLFxyXG4gICAgX19hZGREaXNwb3NhYmxlUmVzb3VyY2U6IF9fYWRkRGlzcG9zYWJsZVJlc291cmNlLFxyXG4gICAgX19kaXNwb3NlUmVzb3VyY2VzOiBfX2Rpc3Bvc2VSZXNvdXJjZXMsXHJcbiAgICBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbjogX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24sXHJcbn07XHJcbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbF0sIm5hbWVzIjpbImNyeXB0byIsInBhY2thZ2VKIiwiZnNFeHRyYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFzQ0E7QUFDTyxTQUFTLFVBQVUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDMUQsSUFBSSxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7QUFDakksSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ25JLFNBQVMsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FB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
|
|
3765
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIi4uLy4uL3NyYy9ub2RlL2ZpbGUudHMiLCIuLi8uLi9zcmMvbm9kZS9Db25maWdMb2FkZXIudHMiLCIuLi8uLi9zcmMvbm9kZS90eXBlcy50cyIsIi4uLy4uL3NyYy9ub2RlL21hbmlmZXN0L01hbmlmZXN0TG9hZGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFuaWZlc3QvTWFuaWZlc3RQYXJzZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9Mb2dnZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9zZXJ2ZXIvU29ja1NlcnZlci50cyIsIi4uLy4uL3NyYy9ub2RlL0htci50cyIsIi4uLy4uL3NyYy9ub2RlL0NyeG1CdW5kbGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvV2F0Y2hlci50cyIsIi4uLy4uL3NyYy9ub2RlL21hbmlmZXN0L2kxOG4udHMiLCIuLi8uLi9zcmMvbm9kZS9tYW5pZmVzdC9NYW5pZmVzdEZhY3RvcnkudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L0NvZGVCbG9jay50cyIsIi4uLy4uL3NyYy9ub2RlL3VzZXJzY3JpcHQvQ29kZUluamVjdG9yLnRzIiwiLi4vLi4vc3JjL25vZGUvdXNlcnNjcmlwdC9Vc2Vyc2NyaXB0SGVhZGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvdXNlcnNjcmlwdC9Vc2Vyc2NyaXB0QnVuZGxlci50cyIsIi4uLy4uL3NyYy9ub2RlL2RldmVsb3BtZW50L2NvZGVzL3N3LnRzIiwiLi4vLi4vc3JjL25vZGUvZGV2ZWxvcG1lbnQvY29kZXMvdXNlcmpzLnRzIiwiLi4vLi4vc3JjL25vZGUvZGV2ZWxvcG1lbnQvY29kZXMvZXh0ZW5zaW9uLnRzIiwiLi4vLi4vc3JjL25vZGUvdXRpbHMudHMiLCIuLi8uLi9zcmMvbm9kZS9kZXZlbG9wbWVudC9DcmVhdGVEZXZDbGllbnQudHMiLCIuLi8uLi9zcmMvbm9kZS9pc29sYXRlZENvbm5lY3Rvci50cyIsIi4uLy4uL3NyYy9ub2RlL3BsdWdpbnMvaHRtbEJ1bmRsZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9wb3B1cC9Qb3B1cC50cyIsIi4uLy4uL3NyYy9ub2RlL0Rpc3RyaWJ1dGlvci50cyIsIi4uLy4uL3NyYy9ub2RlL0J1bmRsZXJSZWdpc3RlcmVyLnRzIiwiLi4vLi4vc3JjL25vZGUvdXNlcnNjcmlwdC9Vc2Vyc2NyaXB0UmVnaXN0ZXJlci50cyIsIi4uLy4uL3NyYy9ub2RlL3NlcnZlci9GaWxlU2VydmVyLnRzIiwiLi4vLi4vc3JjL25vZGUvaW52ZXJzaWZ5LmNvbmZpZy50cyIsIi4uLy4uL3NyYy9ub2RlL2Rldi50cyIsIi4uLy4uL3NyYy9ub2RlL2J1aWxkLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xyXG4gICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2RlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XHJcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcclxuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XHJcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19lc0RlY29yYXRlKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7XHJcbiAgICBmdW5jdGlvbiBhY2NlcHQoZikgeyBpZiAoZiAhPT0gdm9pZCAwICYmIHR5cGVvZiBmICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJGdW5jdGlvbiBleHBlY3RlZFwiKTsgcmV0dXJuIGY7IH1cclxuICAgIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XHJcbiAgICB2YXIgdGFyZ2V0ID0gIWRlc2NyaXB0b3JJbiAmJiBjdG9yID8gY29udGV4dEluW1wic3RhdGljXCJdID8gY3RvciA6IGN0b3IucHJvdG90eXBlIDogbnVsbDtcclxuICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pO1xyXG4gICAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcclxuICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTtcclxuICAgICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyID0gZnVuY3Rpb24gKGYpIHsgaWYgKGRvbmUpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWRcIik7IGV4dHJhSW5pdGlhbGl6ZXJzLnB1c2goYWNjZXB0KGYgfHwgbnVsbCkpOyB9O1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xyXG4gICAgICAgIGlmIChraW5kID09PSBcImFjY2Vzc29yXCIpIHtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdm9pZCAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuZ2V0KSkgZGVzY3JpcHRvci5nZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XHJcbiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7XHJcbiAgICBkb25lID0gdHJ1ZTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3J1bkluaXRpYWxpemVycyh0aGlzQXJnLCBpbml0aWFsaXplcnMsIHZhbHVlKSB7XHJcbiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFsdWUgPSB1c2VWYWx1ZSA/IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcsIHZhbHVlKSA6IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZVZhbHVlID8gdmFsdWUgOiB2b2lkIDA7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wcm9wS2V5KHgpIHtcclxuICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJzeW1ib2xcIiA/IHggOiBcIlwiLmNvbmNhdCh4KTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NldEZ1bmN0aW9uTmFtZShmLCBuYW1lLCBwcmVmaXgpIHtcclxuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcclxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgXCJuYW1lXCIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gXCJcIi5jb25jYXQocHJlZml4LCBcIiBcIiwgbmFtZSkgOiBuYW1lIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xyXG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XHJcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XHJcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19jcmVhdGVCaW5kaW5nID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcclxuICAgIGlmICghZGVzYyB8fCAoXCJnZXRcIiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7XHJcbiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXHJcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXHJcbiAgICAgICAgICAgIHJba10gPSBhW2pdO1xyXG4gICAgcmV0dXJuIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5KHRvLCBmcm9tLCBwYWNrKSB7XHJcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcclxuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcclxuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEFzeW5jSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSksIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiwgYXdhaXRSZXR1cm4pLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiBhd2FpdFJldHVybihmKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZiwgcmVqZWN0KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlmIChnW25dKSB7IGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IGlmIChmKSBpW25dID0gZihpW25dKTsgfSB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cclxuICAgIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xyXG4gICAgdmFyIGksIHA7XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogZmFsc2UgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XHJcbn0pIDogZnVuY3Rpb24obywgdikge1xyXG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xyXG59O1xyXG5cclxudmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XHJcbiAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gKG8pIHtcclxuICAgICAgICB2YXIgYXIgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xyXG4gICAgICAgIHJldHVybiBhcjtcclxuICAgIH07XHJcbiAgICByZXR1cm4gb3duS2V5cyhvKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcclxuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRJbihzdGF0ZSwgcmVjZWl2ZXIpIHtcclxuICAgIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xyXG4gICAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlKGVudiwgdmFsdWUsIGFzeW5jKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgZXhwZWN0ZWQuXCIpO1xyXG4gICAgICAgIHZhciBkaXNwb3NlLCBpbm5lcjtcclxuICAgICAgICBpZiAoYXN5bmMpIHtcclxuICAgICAgICAgICAgaWYgKCFTeW1ib2wuYXN5bmNEaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICAgICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xyXG4gICAgICAgICAgICBpZiAoIVN5bWJvbC5kaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgICAgICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2VdO1xyXG4gICAgICAgICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xyXG4gICAgICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhc3luYykge1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgYXN5bmM6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcblxyXG59XHJcblxyXG52YXIgX1N1cHByZXNzZWRFcnJvciA9IHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGlzcG9zZVJlc291cmNlcyhlbnYpIHtcclxuICAgIGZ1bmN0aW9uIGZhaWwoZSkge1xyXG4gICAgICAgIGVudi5lcnJvciA9IGVudi5oYXNFcnJvciA/IG5ldyBfU3VwcHJlc3NlZEVycm9yKGUsIGVudi5lcnJvciwgXCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuXCIpIDogZTtcclxuICAgICAgICBlbnYuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdmFyIHIsIHMgPSAwO1xyXG4gICAgZnVuY3Rpb24gbmV4dCgpIHtcclxuICAgICAgICB3aGlsZSAociA9IGVudi5zdGFjay5wb3AoKSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyLmFzeW5jICYmIHMgPT09IDEpIHJldHVybiBzID0gMCwgZW52LnN0YWNrLnB1c2gociksIFByb21pc2UucmVzb2x2ZSgpLnRoZW4obmV4dCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoci5kaXNwb3NlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyLmFzeW5jKSByZXR1cm4gcyB8PSAyLCBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHMgfD0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgZmFpbChlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocyA9PT0gMSkgcmV0dXJuIGVudi5oYXNFcnJvciA/IFByb21pc2UucmVqZWN0KGVudi5lcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV4dCgpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24ocGF0aCwgcHJlc2VydmVKc3gpIHtcclxuICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcLlxcLj9cXC8vLnRlc3QocGF0aCkpIHtcclxuICAgICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC4odHN4KSR8KCg/OlxcLmQpPykoKD86XFwuW14uL10rPyk/KVxcLihbY21dPyl0cyQvaSwgZnVuY3Rpb24gKG0sIHRzeCwgZCwgZXh0LCBjbSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHN4ID8gcHJlc2VydmVKc3ggPyBcIi5qc3hcIiA6IFwiLmpzXCIgOiBkICYmICghZXh0IHx8ICFjbSkgPyBtIDogKGQgKyBleHQgKyBcIi5cIiArIGNtLnRvTG93ZXJDYXNlKCkgKyBcImpzXCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICAgIF9fZXh0ZW5kczogX19leHRlbmRzLFxyXG4gICAgX19hc3NpZ246IF9fYXNzaWduLFxyXG4gICAgX19yZXN0OiBfX3Jlc3QsXHJcbiAgICBfX2RlY29yYXRlOiBfX2RlY29yYXRlLFxyXG4gICAgX19wYXJhbTogX19wYXJhbSxcclxuICAgIF9fZXNEZWNvcmF0ZTogX19lc0RlY29yYXRlLFxyXG4gICAgX19ydW5Jbml0aWFsaXplcnM6IF9fcnVuSW5pdGlhbGl6ZXJzLFxyXG4gICAgX19wcm9wS2V5OiBfX3Byb3BLZXksXHJcbiAgICBfX3NldEZ1bmN0aW9uTmFtZTogX19zZXRGdW5jdGlvbk5hbWUsXHJcbiAgICBfX21ldGFkYXRhOiBfX21ldGFkYXRhLFxyXG4gICAgX19hd2FpdGVyOiBfX2F3YWl0ZXIsXHJcbiAgICBfX2dlbmVyYXRvcjogX19nZW5lcmF0b3IsXHJcbiAgICBfX2NyZWF0ZUJpbmRpbmc6IF9fY3JlYXRlQmluZGluZyxcclxuICAgIF9fZXhwb3J0U3RhcjogX19leHBvcnRTdGFyLFxyXG4gICAgX192YWx1ZXM6IF9fdmFsdWVzLFxyXG4gICAgX19yZWFkOiBfX3JlYWQsXHJcbiAgICBfX3NwcmVhZDogX19zcHJlYWQsXHJcbiAgICBfX3NwcmVhZEFycmF5czogX19zcHJlYWRBcnJheXMsXHJcbiAgICBfX3NwcmVhZEFycmF5OiBfX3NwcmVhZEFycmF5LFxyXG4gICAgX19hd2FpdDogX19hd2FpdCxcclxuICAgIF9fYXN5bmNHZW5lcmF0b3I6IF9fYXN5bmNHZW5lcmF0b3IsXHJcbiAgICBfX2FzeW5jRGVsZWdhdG9yOiBfX2FzeW5jRGVsZWdhdG9yLFxyXG4gICAgX19hc3luY1ZhbHVlczogX19hc3luY1ZhbHVlcyxcclxuICAgIF9fbWFrZVRlbXBsYXRlT2JqZWN0OiBfX21ha2VUZW1wbGF0ZU9iamVjdCxcclxuICAgIF9faW1wb3J0U3RhcjogX19pbXBvcnRTdGFyLFxyXG4gICAgX19pbXBvcnREZWZhdWx0OiBfX2ltcG9ydERlZmF1bHQsXHJcbiAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LFxyXG4gICAgX19jbGFzc1ByaXZhdGVGaWVsZFNldDogX19jbGFzc1ByaXZhdGVGaWVsZFNldCxcclxuICAgIF9fY2xhc3NQcml2YXRlRmllbGRJbjogX19jbGFzc1ByaXZhdGVGaWVsZEluLFxyXG4gICAgX19hZGREaXNwb3NhYmxlUmVzb3VyY2U6IF9fYWRkRGlzcG9zYWJsZVJlc291cmNlLFxyXG4gICAgX19kaXNwb3NlUmVzb3VyY2VzOiBfX2Rpc3Bvc2VSZXNvdXJjZXMsXHJcbiAgICBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbjogX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24sXHJcbn07XHJcbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSwibmFtZXMiOlsiY3J5cHRvIiwicGFja2FnZUoiLCJmc0V4dHJhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXNDQTtBQUNPLFNBQVMsVUFBVSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtBQUMxRCxJQUFJLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNqSSxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkksU0FBUyxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFB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
|