Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@rosen-chains/abstract-chain

Package Overview
Dependencies
Maintainers
0
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rosen-chains/abstract-chain - npm Package Compare versions

Comparing version 9.0.0 to 9.0.1

6

CHANGELOG.md
# @rosen-chains/abstract-chain
## 9.0.1
### Patch Changes
- update rosen-extractor version
## 9.0.0

@@ -4,0 +10,0 @@

8

dist/tests/ChainUtils.spec.js

@@ -558,3 +558,3 @@ import { TokenMap } from '@rosen-bridge/tokens';

/**
* @target ChainUtils.wrapAssetBalance should unwrap all values successfully
* @target ChainUtils.wrapAssetBalance should wrap all values successfully
* @dependencies

@@ -568,3 +568,3 @@ * @scenario

*/
it('should unwrap all values successfully', () => {
it('should wrap all values successfully', () => {
// mock an AssetBalance

@@ -587,3 +587,3 @@ const tokenMap = new TokenMap(testTokenMap);

* @expected
* - it should return the expected wrapped values
* - it should return the expected unwrapped values
*/

@@ -600,2 +600,2 @@ it('should unwrap all values successfully', () => {

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhaW5VdGlscy5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdHMvQ2hhaW5VdGlscy5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQWdCLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUQsT0FBTyxFQUNMLGFBQWEsRUFDYixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGNBQWMsR0FDZixNQUFNLFlBQVksQ0FBQztBQUVwQixRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUMxQixRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO1FBQ25DOzs7Ozs7Ozs7O1dBVUc7UUFDSCxFQUFFLENBQUMsMENBQTBDLEVBQUUsR0FBRyxFQUFFO1lBQ2xELHVCQUF1QjtZQUN2QixNQUFNLENBQUMsR0FBaUI7Z0JBQ3RCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixNQUFNLEVBQUU7b0JBQ047d0JBQ0UsRUFBRSxFQUFFLEtBQUs7d0JBQ1QsS0FBSyxFQUFFLEdBQUc7cUJBQ1g7b0JBQ0Q7d0JBQ0UsRUFBRSxFQUFFLEtBQUs7d0JBQ1QsS0FBSyxFQUFFLEdBQUc7cUJBQ1g7aUJBQ0Y7YUFDRixDQUFDO1lBQ0YsTUFBTSxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTdCLFdBQVc7WUFDWCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRXBELHVCQUF1QjtZQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUg7Ozs7Ozs7Ozs7V0FVRztRQUNILEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7WUFDNUQsMERB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YXAgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Rva2Vucyc7XG5pbXBvcnQgeyBBc3NldEJhbGFuY2UsIENoYWluVXRpbHMsIFZhbHVlRXJyb3IgfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHtcbiAgYWN0dWFsQmFsYW5jZSxcbiAgdGVzdFRva2VuTWFwLFxuICB1bndyYXBwZWRCYWxhbmNlLFxuICB3cmFwcGVkQmFsYW5jZSxcbn0gZnJvbSAnLi90ZXN0RGF0YSc7XG5cbmRlc2NyaWJlKCdDaGFpblV0aWxzJywgKCkgPT4ge1xuICBkZXNjcmliZSgnaXNFcXVhbEFzc2V0QmFsYW5jZScsICgpID0+IHtcbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMuaXNFcXVhbEFzc2V0QmFsYW5jZSBzaG91bGQgcmV0dXJuIHRydWUgd2hlbiBhc3NldHMgYXJlXG4gICAgICogZXF1YWxcbiAgICAgKiBAZGVwZW5kZW5jaWVzXG4gICAgICogQHNjZW5hcmlvXG4gICAgICogLSBtb2NrIGFuIEFzc2V0QmFsYW5jZVxuICAgICAqIC0gcnVuIHRlc3RcbiAgICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIHRydWVcbiAgICAgKi9cbiAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gYXNzZXRzIGFyZSBlcXVhbCcsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgYW4gQXNzZXRCYWxhbmNlXG4gICAgICBjb25zdCBhOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDInLFxuICAgICAgICAgICAgdmFsdWU6IDIwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGIgPSBzdHJ1Y3R1cmVkQ2xvbmUoYSk7XG5cbiAgICAgIC8vIHJ1biB0ZXN0XG4gICAgICBjb25zdCByZXN1bHQgPSBDaGFpblV0aWxzLmlzRXF1YWxBc3NldEJhbGFuY2UoYSwgYik7XG5cbiAgICAgIC8vIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQHRhcmdldCBDaGFpblV0aWxzLmlzRXF1YWxBc3NldEJhbGFuY2Ugc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuXG4gICAgICogbmF0aXZlIHRva2VuIGlzIE5PVCBlcXVhbFxuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSB3aXRoIGRpZmZlcmVudCBuYXRpdmUgdG9rZW4gdmFsdWVcbiAgICAgKiAtIHJ1biB0ZXN0XG4gICAgICogLSBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gaXQgc2hvdWxkIHJldHVybiBmYWxzZVxuICAgICAqL1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gbmF0aXZlIHRva2VuIGlzIE5PVCBlcXVhbCcsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSB3aXRoIGRpZmZlcmVudCBuYXRpdmUgdG9rZW4gdmFsdWVcbiAgICAgIGNvbnN0IGE6IEFzc2V0QmFsYW5jZSA9IHtcbiAgICAgICAgbmF0aXZlVG9rZW46IDEwMG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiAxMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMicsXG4gICAgICAgICAgICB2YWx1ZTogMjBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYiA9IHN0cnVjdHVyZWRDbG9uZShhKTtcbiAgICAgIGIubmF0aXZlVG9rZW4gPSAxbjtcblxuICAgICAgLy8gcnVuIHRlc3RcbiAgICAgIGNvbnN0IHJlc3VsdCA9IENoYWluVXRpbHMuaXNFcXVhbEFzc2V0QmFsYW5jZShhLCBiKTtcblxuICAgICAgLy8gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQHRhcmdldCBDaGFpblV0aWxzLmlzRXF1YWxBc3NldEJhbGFuY2Ugc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIGEgdG9rZW5cbiAgICAgKiBpcyBtaXNzaW5nIGluIGZpcnN0IG9iamVjdFxuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSAoc2Vjb25kIG9iamVjdCBoYXMgMSBtb3JlIHRva2VuKVxuICAgICAqIC0gcnVuIHRlc3RcbiAgICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIGZhbHNlXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2Ugd2hlbiBhIHRva2VuIGlzIG1pc3NpbmcgaW4gZmlyc3Qgb2JqZWN0JywgKCkgPT4ge1xuICAgICAgLy8gbW9jayB0d28gQXNzZXRCYWxhbmNlIChzZWNvbmQgb2JqZWN0IGhhcyAxIG1vcmUgdG9rZW4pXG4gICAgICBjb25zdCBhOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYjogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIC8vIHJ1biB0ZXN0XG4gICAgICBjb25zdCByZXN1bHQgPSBDaGFpblV0aWxzLmlzRXF1YWxBc3NldEJhbGFuY2UoYSwgYik7XG5cbiAgICAgIC8vIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEB0YXJnZXQgQ2hhaW5VdGlscy5pc0VxdWFsQXNzZXRCYWxhbmNlIHNob3VsZCByZXR1cm4gZmFsc2Ugd2hlbiBhIHRva2VuXG4gICAgICogaXMgbWlzc2luZyBpbiBzZWNvbmQgb2JqZWN0XG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gbW9jayB0d28gQXNzZXRCYWxhbmNlIChmaXJzdCBvYmplY3QgaGFzIDEgbW9yZSB0b2tlbilcbiAgICAgKiAtIHJ1biB0ZXN0XG4gICAgICogLSBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gaXQgc2hvdWxkIHJldHVybiBmYWxzZVxuICAgICAqL1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gYSB0b2tlbiBpcyBtaXNzaW5nIGluIHNlY29uZCBvYmplY3QnLCAoKSA9PiB7XG4gICAgICAvLyBtb2NrIHR3byBBc3NldEJhbGFuY2UgKGZpcnN0IG9iamVjdCBoYXMgMSBtb3JlIHRva2VuKVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICAvLyBydW4gdGVzdFxuICAgICAgY29uc3QgcmVzdWx0ID0gQ2hhaW5VdGlscy5pc0VxdWFsQXNzZXRCYWxhbmNlKGEsIGIpO1xuXG4gICAgICAvLyBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMuaXNFcXVhbEFzc2V0QmFsYW5jZSBzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gYSB0b2tlblxuICAgICAqIHZhbHVlIGlzIG5vdCBlcXVhbFxuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSB3aXRoIGRpZmZlcmVudCB0b2tlbiB2YWx1ZVxuICAgICAqIC0gcnVuIHRlc3RcbiAgICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIGZhbHNlXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2Ugd2hlbiBhIHRva2VuIHZhbHVlIGlzIG5vdCBlcXVhbCcsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSB3aXRoIGRpZmZlcmVudCB0b2tlbiB2YWx1ZVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiID0gc3RydWN0dXJlZENsb25lKGEpO1xuICAgICAgYi50b2tlbnNbMV0udmFsdWUgPSAybjtcblxuICAgICAgLy8gcnVuIHRlc3RcbiAgICAgIGNvbnN0IHJlc3VsdCA9IENoYWluVXRpbHMuaXNFcXVhbEFzc2V0QmFsYW5jZShhLCBiKTtcblxuICAgICAgLy8gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc3VtQXNzZXRCYWxhbmNlJywgKCkgPT4ge1xuICAgIC8qKlxuICAgICAqIEB0YXJnZXQgQ2hhaW5VdGlscy5zdW1Bc3NldEJhbGFuY2Ugc2hvdWxkIHJldHVybiBhZ2dyZWdhdGVkIGFzc2V0c1xuICAgICAqIHN1Y2Nlc3NmdWxseVxuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZVxuICAgICAqIC0gcnVuIHRlc3RcbiAgICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIGFnZ3JlZ2F0ZWQgYXNzZXRzXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gYWdncmVnYXRlZCBhc3NldHMgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgICAgLy8gbW9jayB0d28gQXNzZXRCYWxhbmNlXG4gICAgICBjb25zdCBhOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogNW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMicsXG4gICAgICAgICAgICB2YWx1ZTogMjBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYjogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMjAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDVuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDMnLFxuICAgICAgICAgICAgdmFsdWU6IDMwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgLy8gcnVuIHRlc3RcbiAgICAgIGNvbnN0IHJlc3VsdCA9IENoYWluVXRpbHMuc3VtQXNzZXRCYWxhbmNlKGEsIGIpO1xuXG4gICAgICAvLyBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAzMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDInLFxuICAgICAgICAgICAgdmFsdWU6IDIwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQzJyxcbiAgICAgICAgICAgIHZhbHVlOiAzMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQHRhcmdldCBDaGFpblV0aWxzLnN1bUFzc2V0QmFsYW5jZSBzaG91bGQgTk9UIG1pdGlnYXRlIG9yaWdpbmFsIG9iamVjdHNcbiAgICAgKiBAZGVwZW5kZW5jaWVzXG4gICAgICogQHNjZW5hcmlvXG4gICAgICogLSBtb2NrIHR3byBBc3NldEJhbGFuY2VcbiAgICAgKiAtIHJ1biB0ZXN0XG4gICAgICogLSBjaGVjayBwYXNzZWQgb2JqZWN0c1xuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gcGFzc2VkIG9iamVjdHMgc2hvdWxkIGJlIHRoZSBzYW1lXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCBOT1QgbWl0aWdhdGUgb3JpZ2luYWwgb2JqZWN0cycsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgdHdvIEFzc2V0QmFsYW5jZVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDVuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYjogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMjAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDInLFxuICAgICAgICAgICAgdmFsdWU6IDIwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgLy8gcnVuIHRlc3RcbiAgICAgIENoYWluVXRpbHMuc3VtQXNzZXRCYWxhbmNlKGEsIGIpO1xuXG4gICAgICAvLyBjaGVjayBwYXNzZWQgb2JqZWN0c1xuICAgICAgZXhwZWN0KGEpLnRvRXF1YWwoe1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDVuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChiKS50b0VxdWFsKHtcbiAgICAgICAgbmF0aXZlVG9rZW46IDIwMG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncmVkdWNlQXNzZXRCYWxhbmNlJywgKCkgPT4ge1xuICAgIC8qKlxuICAgICAqIEB0YXJnZXQgQ2hhaW5VdGlscy5yZWR1Y2VBc3NldEJhbGFuY2Ugc2hvdWxkIHJldHVybiByZW1haW5pbmcgYXNzZXRzXG4gICAgICogc3VjY2Vzc2Z1bGx5XG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gbW9jayB0d28gQXNzZXRCYWxhbmNlXG4gICAgICogLSBydW4gdGVzdFxuICAgICAqIC0gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICAgKiBAZXhwZWN0ZWRcbiAgICAgKiAtIGl0IHNob3VsZCByZXR1cm4gYWdncmVnYXRlZCBhc3NldHNcbiAgICAgKi9cbiAgICBpdCgnc2hvdWxkIHJldHVybiByZW1haW5pbmcgYXNzZXRzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgdHdvIEFzc2V0QmFsYW5jZVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiA1MG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiA1bixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgLy8gcnVuIHRlc3RcbiAgICAgIGNvbnN0IHJlc3VsdCA9IENoYWluVXRpbHMuc3VidHJhY3RBc3NldEJhbGFuY2UoYSwgYik7XG5cbiAgICAgIC8vIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgbmF0aXZlVG9rZW46IDUwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDVuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDInLFxuICAgICAgICAgICAgdmFsdWU6IDIwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMucmVkdWNlQXNzZXRCYWxhbmNlIHNob3VsZCB0aHJvdyBleGNlcHRpb24gd2hlblxuICAgICAqIG5hdGl2ZSB0b2tlbiBpcyBub3QgZW5vdWdoXG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gbW9jayB0d28gQXNzZXRCYWxhbmNlIChzZWNvbmQgb2JqZWN0IGhhcyBtb3JlIG5hdGl2ZSB0b2tlbilcbiAgICAgKiAtIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gaXQgc2hvdWxkIHJldHVybiBhZ2dyZWdhdGVkIGFzc2V0c1xuICAgICAqL1xuICAgIGl0KCdzaG91bGQgdGhyb3cgZXhjZXB0aW9uIHdoZW4gbmF0aXZlIHRva2VuIGlzIG5vdCBlbm91Z2gnLCAoKSA9PiB7XG4gICAgICAvLyBtb2NrIHR3byBBc3NldEJhbGFuY2UgKHNlY29uZCBvYmplY3QgaGFzIG1vcmUgbmF0aXZlIHRva2VuKVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiA1MDBuLFxuICAgICAgICB0b2tlbnM6IFtdLFxuICAgICAgfTtcblxuICAgICAgLy8gcnVuIHRlc3QgJiBjaGVjayB0aHJvd24gZXhjZXB0aW9uXG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBDaGFpblV0aWxzLnN1YnRyYWN0QXNzZXRCYWxhbmNlKGEsIGIpO1xuICAgICAgfSkudG9UaHJvdyhWYWx1ZUVycm9yKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEB0YXJnZXQgQ2hhaW5VdGlscy5yZWR1Y2VBc3NldEJhbGFuY2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbiB3aGVuXG4gICAgICogYSB0b2tlbiBpcyBub3QgZW5vdWdoXG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gbW9jayB0d28gQXNzZXRCYWxhbmNlIChzZWNvbmQgb2JqZWN0IGhhcyBtb3JlIHZhbHVlIGZvciBhIHRva2VuKVxuICAgICAqIC0gcnVuIHRlc3QgJiBjaGVjayB0aHJvd24gZXhjZXB0aW9uXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIGFnZ3JlZ2F0ZWQgYXNzZXRzXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBleGNlcHRpb24gd2hlbiBhIHRva2VuIHZhbHVlIGlzIG5vdCBlbm91Z2gnLCAoKSA9PiB7XG4gICAgICAvLyBtb2NrIHR3byBBc3NldEJhbGFuY2UgKHNlY29uZCBvYmplY3QgaGFzIG1vcmUgdmFsdWUgZm9yIGEgdG9rZW4pXG4gICAgICBjb25zdCBhOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogNW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiA1MG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiAxMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIC8vIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgQ2hhaW5VdGlscy5zdWJ0cmFjdEFzc2V0QmFsYW5jZShhLCBiKTtcbiAgICAgIH0pLnRvVGhyb3coVmFsdWVFcnJvcik7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMucmVkdWNlQXNzZXRCYWxhbmNlIHNob3VsZCB0aHJvdyBleGNlcHRpb24gd2hlblxuICAgICAqIGEgdG9rZW4gaXMgbWlzc2luZ1xuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSAoc2Vjb25kIG9iamVjdCBoYXMgYSB0b2tlbiBpcyBtaXNzaW5nIGluIGZpcnN0IG9iamVjdClcbiAgICAgKiAtIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gaXQgc2hvdWxkIHJldHVybiBhZ2dyZWdhdGVkIGFzc2V0c1xuICAgICAqL1xuICAgIGl0KCdzaG91bGQgdGhyb3cgZXhjZXB0aW9uIHdoZW4gbmF0aXZlIHRva2VuIGlzIG1pc3NpbmcnLCAoKSA9PiB7XG4gICAgICAvLyBtb2NrIHR3byBBc3NldEJhbGFuY2UgKHNlY29uZCBvYmplY3QgaGFzIGEgdG9rZW4gaXMgbWlzc2luZyBpbiBmaXJzdCBvYmplY3QpXG4gICAgICBjb25zdCBhOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogNTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYjogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogNTBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDInLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgLy8gcnVuIHRlc3QgJiBjaGVjayB0aHJvd24gZXhjZXB0aW9uXG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBDaGFpblV0aWxzLnN1YnRyYWN0QXNzZXRCYWxhbmNlKGEsIGIpO1xuICAgICAgfSkudG9UaHJvdyhWYWx1ZUVycm9yKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEB0YXJnZXQgQ2hhaW5VdGlscy5yZWR1Y2VBc3NldEJhbGFuY2Ugc2hvdWxkIE5PVCBtaXRpZ2F0ZSBvcmlnaW5hbCBvYmplY3RzXG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gbW9jayB0d28gQXNzZXRCYWxhbmNlXG4gICAgICogLSBydW4gdGVzdFxuICAgICAqIC0gY2hlY2sgcGFzc2VkIG9iamVjdHNcbiAgICAgKiBAZXhwZWN0ZWRcbiAgICAgKiAtIHBhc3NlZCBvYmplY3RzIHNob3VsZCBiZSB0aGUgc2FtZVxuICAgICAqL1xuICAgIGl0KCdzaG91bGQgTk9UIG1pdGlnYXRlIG9yaWdpbmFsIG9iamVjdHMnLCAoKSA9PiB7XG4gICAgICAvLyBtb2NrIHR3byBBc3NldEJhbGFuY2VcbiAgICAgIGNvbnN0IGE6IEFzc2V0QmFsYW5jZSA9IHtcbiAgICAgICAgbmF0aXZlVG9rZW46IDMwMG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiA1MG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAyMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMjBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICAvLyBydW4gdGVzdFxuICAgICAgQ2hhaW5VdGlscy5zdWJ0cmFjdEFzc2V0QmFsYW5jZShhLCBiKTtcblxuICAgICAgLy8gY2hlY2sgcGFzc2VkIG9iamVjdHNcbiAgICAgIGV4cGVjdChhKS50b0VxdWFsKHtcbiAgICAgICAgbmF0aXZlVG9rZW46IDMwMG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiA1MG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGIpLnRvRXF1YWwoe1xuICAgICAgICBuYXRpdmVUb2tlbjogMjAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDIwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMucmVkdWNlQXNzZXRCYWxhbmNlIHNob3VsZCByZXR1cm4gcmVtYWluaW5nIHRva2Vuc1xuICAgICAqIHdpdGggMCBuYXRpdmUgdG9rZW4gd2hlbiBuZWdhdGl2ZSBuYXRpdmUgdG9rZW4gaXMgYWxsb3dlZFxuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZVxuICAgICAqIC0gcnVuIHRlc3RcbiAgICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIGFnZ3JlZ2F0ZWQgdG9rZW5zIHdpdGggMCBuYXRpdmUgdG9rZW5cbiAgICAgKi9cbiAgICBpdCgnc2hvdWxkIHJldHVybiByZW1haW5pbmcgdG9rZW5zIHdpdGggMCBuYXRpdmUgdG9rZW4gd2hlbiBuZWdhdGl2ZSBuYXRpdmUgdG9rZW4gaXMgYWxsb3dlZCcsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgdHdvIEFzc2V0QmFsYW5jZVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiA1MDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogNW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIC8vIHJ1biB0ZXN0XG4gICAgICBjb25zdCByZXN1bHQgPSBDaGFpblV0aWxzLnN1YnRyYWN0QXNzZXRCYWxhbmNlKGEsIGIsIDBuLCB0cnVlKTtcblxuICAgICAgLy8gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICBuYXRpdmVUb2tlbjogMG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiA1bixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnd3JhcEFzc2V0QmFsYW5jZScsICgpID0+IHtcbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMud3JhcEFzc2V0QmFsYW5jZSBzaG91bGQgdW53cmFwIGFsbCB2YWx1ZXMgc3VjY2Vzc2Z1bGx5XG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gZ2VuZXJhdGUgdG9rZW5NYXAgb2JqZWN0IHdpdGggbXVsdGkgZGVjaW1hbHNcbiAgICAgKiAtIHJ1biB0ZXN0XG4gICAgICogLSBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gaXQgc2hvdWxkIHJldHVybiB0aGUgZXhwZWN0ZWQgd3JhcHBlZCB2YWx1ZXNcbiAgICAgKi9cbiAgICBpdCgnc2hvdWxkIHVud3JhcCBhbGwgdmFsdWVzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgYW4gQXNzZXRCYWxhbmNlXG4gICAgICBjb25zdCB0b2tlbk1hcCA9IG5ldyBUb2tlbk1hcCh0ZXN0VG9rZW5NYXApO1xuXG4gICAgICAvLyBydW4gdGVzdFxuICAgICAgY29uc3QgcmVzdWx0ID0gQ2hhaW5VdGlscy53cmFwQXNzZXRCYWxhbmNlKFxuICAgICAgICBhY3R1YWxCYWxhbmNlLFxuICAgICAgICB0b2tlbk1hcCxcbiAgICAgICAgJ3Rlc3QtbmF0aXZlLXRva2VuJyxcbiAgICAgICAgJ3Rlc3QnXG4gICAgICApO1xuXG4gICAgICAvLyBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh3cmFwcGVkQmFsYW5jZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd1bndyYXBBc3NldEJhbGFuY2UnLCAoKSA9PiB7XG4gICAgLyoqXG4gICAgICogQHRhcmdldCBDaGFpblV0aWxzLnVud3JhcEFzc2V0QmFsYW5jZSBzaG91bGQgdW53cmFwIGFsbCB2YWx1ZXMgc3VjY2Vzc2Z1bGx5XG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gZ2VuZXJhdGUgdG9rZW5NYXAgb2JqZWN0IHdpdGggbXVsdGkgZGVjaW1hbHNcbiAgICAgKiAtIHJ1biB0ZXN0XG4gICAgICogLSBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gaXQgc2hvdWxkIHJldHVybiB0aGUgZXhwZWN0ZWQgd3JhcHBlZCB2YWx1ZXNcbiAgICAgKi9cbiAgICBpdCgnc2hvdWxkIHVud3JhcCBhbGwgdmFsdWVzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgYW4gQXNzZXRCYWxhbmNlXG4gICAgICBjb25zdCB0b2tlbk1hcCA9IG5ldyBUb2tlbk1hcCh0ZXN0VG9rZW5NYXApO1xuXG4gICAgICAvLyBydW4gdGVzdFxuICAgICAgY29uc3QgcmVzdWx0ID0gQ2hhaW5VdGlscy51bndyYXBBc3NldEJhbGFuY2UoXG4gICAgICAgIHdyYXBwZWRCYWxhbmNlLFxuICAgICAgICB0b2tlbk1hcCxcbiAgICAgICAgJ3Rlc3QtbmF0aXZlLXRva2VuJyxcbiAgICAgICAgJ3Rlc3QnXG4gICAgICApO1xuXG4gICAgICAvLyBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh1bndyYXBwZWRCYWxhbmNlKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhaW5VdGlscy5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdHMvQ2hhaW5VdGlscy5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQWdCLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUQsT0FBTyxFQUNMLGFBQWEsRUFDYixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGNBQWMsR0FDZixNQUFNLFlBQVksQ0FBQztBQUVwQixRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUMxQixRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO1FBQ25DOzs7Ozs7Ozs7O1dBVUc7UUFDSCxFQUFFLENBQUMsMENBQTBDLEVBQUUsR0FBRyxFQUFFO1lBQ2xELHVCQUF1QjtZQUN2QixNQUFNLENBQUMsR0FBaUI7Z0JBQ3RCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixNQUFNLEVBQUU7b0JBQ047d0JBQ0UsRUFBRSxFQUFFLEtBQUs7d0JBQ1QsS0FBSyxFQUFFLEdBQUc7cUJBQ1g7b0JBQ0Q7d0JBQ0UsRUFBRSxFQUFFLEtBQUs7d0JBQ1QsS0FBSyxFQUFFLEdBQUc7cUJBQ1g7aUJBQ0Y7YUFDRixDQUFDO1lBQ0YsTUFBTSxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTdCLFdBQVc7WUFDWCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRXBELHVCQUF1QjtZQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUg7Ozs7Ozs7Ozs7V0FVRztRQUNILEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7WUFDNUQsMERB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YXAgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Rva2Vucyc7XG5pbXBvcnQgeyBBc3NldEJhbGFuY2UsIENoYWluVXRpbHMsIFZhbHVlRXJyb3IgfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHtcbiAgYWN0dWFsQmFsYW5jZSxcbiAgdGVzdFRva2VuTWFwLFxuICB1bndyYXBwZWRCYWxhbmNlLFxuICB3cmFwcGVkQmFsYW5jZSxcbn0gZnJvbSAnLi90ZXN0RGF0YSc7XG5cbmRlc2NyaWJlKCdDaGFpblV0aWxzJywgKCkgPT4ge1xuICBkZXNjcmliZSgnaXNFcXVhbEFzc2V0QmFsYW5jZScsICgpID0+IHtcbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMuaXNFcXVhbEFzc2V0QmFsYW5jZSBzaG91bGQgcmV0dXJuIHRydWUgd2hlbiBhc3NldHMgYXJlXG4gICAgICogZXF1YWxcbiAgICAgKiBAZGVwZW5kZW5jaWVzXG4gICAgICogQHNjZW5hcmlvXG4gICAgICogLSBtb2NrIGFuIEFzc2V0QmFsYW5jZVxuICAgICAqIC0gcnVuIHRlc3RcbiAgICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIHRydWVcbiAgICAgKi9cbiAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gYXNzZXRzIGFyZSBlcXVhbCcsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgYW4gQXNzZXRCYWxhbmNlXG4gICAgICBjb25zdCBhOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDInLFxuICAgICAgICAgICAgdmFsdWU6IDIwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGIgPSBzdHJ1Y3R1cmVkQ2xvbmUoYSk7XG5cbiAgICAgIC8vIHJ1biB0ZXN0XG4gICAgICBjb25zdCByZXN1bHQgPSBDaGFpblV0aWxzLmlzRXF1YWxBc3NldEJhbGFuY2UoYSwgYik7XG5cbiAgICAgIC8vIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQHRhcmdldCBDaGFpblV0aWxzLmlzRXF1YWxBc3NldEJhbGFuY2Ugc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuXG4gICAgICogbmF0aXZlIHRva2VuIGlzIE5PVCBlcXVhbFxuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSB3aXRoIGRpZmZlcmVudCBuYXRpdmUgdG9rZW4gdmFsdWVcbiAgICAgKiAtIHJ1biB0ZXN0XG4gICAgICogLSBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gaXQgc2hvdWxkIHJldHVybiBmYWxzZVxuICAgICAqL1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gbmF0aXZlIHRva2VuIGlzIE5PVCBlcXVhbCcsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSB3aXRoIGRpZmZlcmVudCBuYXRpdmUgdG9rZW4gdmFsdWVcbiAgICAgIGNvbnN0IGE6IEFzc2V0QmFsYW5jZSA9IHtcbiAgICAgICAgbmF0aXZlVG9rZW46IDEwMG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiAxMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMicsXG4gICAgICAgICAgICB2YWx1ZTogMjBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYiA9IHN0cnVjdHVyZWRDbG9uZShhKTtcbiAgICAgIGIubmF0aXZlVG9rZW4gPSAxbjtcblxuICAgICAgLy8gcnVuIHRlc3RcbiAgICAgIGNvbnN0IHJlc3VsdCA9IENoYWluVXRpbHMuaXNFcXVhbEFzc2V0QmFsYW5jZShhLCBiKTtcblxuICAgICAgLy8gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQHRhcmdldCBDaGFpblV0aWxzLmlzRXF1YWxBc3NldEJhbGFuY2Ugc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIGEgdG9rZW5cbiAgICAgKiBpcyBtaXNzaW5nIGluIGZpcnN0IG9iamVjdFxuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSAoc2Vjb25kIG9iamVjdCBoYXMgMSBtb3JlIHRva2VuKVxuICAgICAqIC0gcnVuIHRlc3RcbiAgICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIGZhbHNlXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2Ugd2hlbiBhIHRva2VuIGlzIG1pc3NpbmcgaW4gZmlyc3Qgb2JqZWN0JywgKCkgPT4ge1xuICAgICAgLy8gbW9jayB0d28gQXNzZXRCYWxhbmNlIChzZWNvbmQgb2JqZWN0IGhhcyAxIG1vcmUgdG9rZW4pXG4gICAgICBjb25zdCBhOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYjogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIC8vIHJ1biB0ZXN0XG4gICAgICBjb25zdCByZXN1bHQgPSBDaGFpblV0aWxzLmlzRXF1YWxBc3NldEJhbGFuY2UoYSwgYik7XG5cbiAgICAgIC8vIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEB0YXJnZXQgQ2hhaW5VdGlscy5pc0VxdWFsQXNzZXRCYWxhbmNlIHNob3VsZCByZXR1cm4gZmFsc2Ugd2hlbiBhIHRva2VuXG4gICAgICogaXMgbWlzc2luZyBpbiBzZWNvbmQgb2JqZWN0XG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gbW9jayB0d28gQXNzZXRCYWxhbmNlIChmaXJzdCBvYmplY3QgaGFzIDEgbW9yZSB0b2tlbilcbiAgICAgKiAtIHJ1biB0ZXN0XG4gICAgICogLSBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gaXQgc2hvdWxkIHJldHVybiBmYWxzZVxuICAgICAqL1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gYSB0b2tlbiBpcyBtaXNzaW5nIGluIHNlY29uZCBvYmplY3QnLCAoKSA9PiB7XG4gICAgICAvLyBtb2NrIHR3byBBc3NldEJhbGFuY2UgKGZpcnN0IG9iamVjdCBoYXMgMSBtb3JlIHRva2VuKVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICAvLyBydW4gdGVzdFxuICAgICAgY29uc3QgcmVzdWx0ID0gQ2hhaW5VdGlscy5pc0VxdWFsQXNzZXRCYWxhbmNlKGEsIGIpO1xuXG4gICAgICAvLyBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMuaXNFcXVhbEFzc2V0QmFsYW5jZSBzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gYSB0b2tlblxuICAgICAqIHZhbHVlIGlzIG5vdCBlcXVhbFxuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSB3aXRoIGRpZmZlcmVudCB0b2tlbiB2YWx1ZVxuICAgICAqIC0gcnVuIHRlc3RcbiAgICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIGZhbHNlXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2Ugd2hlbiBhIHRva2VuIHZhbHVlIGlzIG5vdCBlcXVhbCcsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSB3aXRoIGRpZmZlcmVudCB0b2tlbiB2YWx1ZVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiID0gc3RydWN0dXJlZENsb25lKGEpO1xuICAgICAgYi50b2tlbnNbMV0udmFsdWUgPSAybjtcblxuICAgICAgLy8gcnVuIHRlc3RcbiAgICAgIGNvbnN0IHJlc3VsdCA9IENoYWluVXRpbHMuaXNFcXVhbEFzc2V0QmFsYW5jZShhLCBiKTtcblxuICAgICAgLy8gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc3VtQXNzZXRCYWxhbmNlJywgKCkgPT4ge1xuICAgIC8qKlxuICAgICAqIEB0YXJnZXQgQ2hhaW5VdGlscy5zdW1Bc3NldEJhbGFuY2Ugc2hvdWxkIHJldHVybiBhZ2dyZWdhdGVkIGFzc2V0c1xuICAgICAqIHN1Y2Nlc3NmdWxseVxuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZVxuICAgICAqIC0gcnVuIHRlc3RcbiAgICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIGFnZ3JlZ2F0ZWQgYXNzZXRzXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gYWdncmVnYXRlZCBhc3NldHMgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgICAgLy8gbW9jayB0d28gQXNzZXRCYWxhbmNlXG4gICAgICBjb25zdCBhOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogNW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMicsXG4gICAgICAgICAgICB2YWx1ZTogMjBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYjogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMjAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDVuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDMnLFxuICAgICAgICAgICAgdmFsdWU6IDMwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgLy8gcnVuIHRlc3RcbiAgICAgIGNvbnN0IHJlc3VsdCA9IENoYWluVXRpbHMuc3VtQXNzZXRCYWxhbmNlKGEsIGIpO1xuXG4gICAgICAvLyBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAzMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDInLFxuICAgICAgICAgICAgdmFsdWU6IDIwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQzJyxcbiAgICAgICAgICAgIHZhbHVlOiAzMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQHRhcmdldCBDaGFpblV0aWxzLnN1bUFzc2V0QmFsYW5jZSBzaG91bGQgTk9UIG1pdGlnYXRlIG9yaWdpbmFsIG9iamVjdHNcbiAgICAgKiBAZGVwZW5kZW5jaWVzXG4gICAgICogQHNjZW5hcmlvXG4gICAgICogLSBtb2NrIHR3byBBc3NldEJhbGFuY2VcbiAgICAgKiAtIHJ1biB0ZXN0XG4gICAgICogLSBjaGVjayBwYXNzZWQgb2JqZWN0c1xuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gcGFzc2VkIG9iamVjdHMgc2hvdWxkIGJlIHRoZSBzYW1lXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCBOT1QgbWl0aWdhdGUgb3JpZ2luYWwgb2JqZWN0cycsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgdHdvIEFzc2V0QmFsYW5jZVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDVuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYjogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMjAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDInLFxuICAgICAgICAgICAgdmFsdWU6IDIwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgLy8gcnVuIHRlc3RcbiAgICAgIENoYWluVXRpbHMuc3VtQXNzZXRCYWxhbmNlKGEsIGIpO1xuXG4gICAgICAvLyBjaGVjayBwYXNzZWQgb2JqZWN0c1xuICAgICAgZXhwZWN0KGEpLnRvRXF1YWwoe1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDVuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChiKS50b0VxdWFsKHtcbiAgICAgICAgbmF0aXZlVG9rZW46IDIwMG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncmVkdWNlQXNzZXRCYWxhbmNlJywgKCkgPT4ge1xuICAgIC8qKlxuICAgICAqIEB0YXJnZXQgQ2hhaW5VdGlscy5yZWR1Y2VBc3NldEJhbGFuY2Ugc2hvdWxkIHJldHVybiByZW1haW5pbmcgYXNzZXRzXG4gICAgICogc3VjY2Vzc2Z1bGx5XG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gbW9jayB0d28gQXNzZXRCYWxhbmNlXG4gICAgICogLSBydW4gdGVzdFxuICAgICAqIC0gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICAgKiBAZXhwZWN0ZWRcbiAgICAgKiAtIGl0IHNob3VsZCByZXR1cm4gYWdncmVnYXRlZCBhc3NldHNcbiAgICAgKi9cbiAgICBpdCgnc2hvdWxkIHJldHVybiByZW1haW5pbmcgYXNzZXRzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgdHdvIEFzc2V0QmFsYW5jZVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiA1MG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiA1bixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgLy8gcnVuIHRlc3RcbiAgICAgIGNvbnN0IHJlc3VsdCA9IENoYWluVXRpbHMuc3VidHJhY3RBc3NldEJhbGFuY2UoYSwgYik7XG5cbiAgICAgIC8vIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgbmF0aXZlVG9rZW46IDUwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDVuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDInLFxuICAgICAgICAgICAgdmFsdWU6IDIwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMucmVkdWNlQXNzZXRCYWxhbmNlIHNob3VsZCB0aHJvdyBleGNlcHRpb24gd2hlblxuICAgICAqIG5hdGl2ZSB0b2tlbiBpcyBub3QgZW5vdWdoXG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gbW9jayB0d28gQXNzZXRCYWxhbmNlIChzZWNvbmQgb2JqZWN0IGhhcyBtb3JlIG5hdGl2ZSB0b2tlbilcbiAgICAgKiAtIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gaXQgc2hvdWxkIHJldHVybiBhZ2dyZWdhdGVkIGFzc2V0c1xuICAgICAqL1xuICAgIGl0KCdzaG91bGQgdGhyb3cgZXhjZXB0aW9uIHdoZW4gbmF0aXZlIHRva2VuIGlzIG5vdCBlbm91Z2gnLCAoKSA9PiB7XG4gICAgICAvLyBtb2NrIHR3byBBc3NldEJhbGFuY2UgKHNlY29uZCBvYmplY3QgaGFzIG1vcmUgbmF0aXZlIHRva2VuKVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiA1MDBuLFxuICAgICAgICB0b2tlbnM6IFtdLFxuICAgICAgfTtcblxuICAgICAgLy8gcnVuIHRlc3QgJiBjaGVjayB0aHJvd24gZXhjZXB0aW9uXG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBDaGFpblV0aWxzLnN1YnRyYWN0QXNzZXRCYWxhbmNlKGEsIGIpO1xuICAgICAgfSkudG9UaHJvdyhWYWx1ZUVycm9yKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEB0YXJnZXQgQ2hhaW5VdGlscy5yZWR1Y2VBc3NldEJhbGFuY2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbiB3aGVuXG4gICAgICogYSB0b2tlbiBpcyBub3QgZW5vdWdoXG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gbW9jayB0d28gQXNzZXRCYWxhbmNlIChzZWNvbmQgb2JqZWN0IGhhcyBtb3JlIHZhbHVlIGZvciBhIHRva2VuKVxuICAgICAqIC0gcnVuIHRlc3QgJiBjaGVjayB0aHJvd24gZXhjZXB0aW9uXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIGFnZ3JlZ2F0ZWQgYXNzZXRzXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBleGNlcHRpb24gd2hlbiBhIHRva2VuIHZhbHVlIGlzIG5vdCBlbm91Z2gnLCAoKSA9PiB7XG4gICAgICAvLyBtb2NrIHR3byBBc3NldEJhbGFuY2UgKHNlY29uZCBvYmplY3QgaGFzIG1vcmUgdmFsdWUgZm9yIGEgdG9rZW4pXG4gICAgICBjb25zdCBhOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogNW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiA1MG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiAxMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIC8vIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgQ2hhaW5VdGlscy5zdWJ0cmFjdEFzc2V0QmFsYW5jZShhLCBiKTtcbiAgICAgIH0pLnRvVGhyb3coVmFsdWVFcnJvcik7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMucmVkdWNlQXNzZXRCYWxhbmNlIHNob3VsZCB0aHJvdyBleGNlcHRpb24gd2hlblxuICAgICAqIGEgdG9rZW4gaXMgbWlzc2luZ1xuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZSAoc2Vjb25kIG9iamVjdCBoYXMgYSB0b2tlbiBpcyBtaXNzaW5nIGluIGZpcnN0IG9iamVjdClcbiAgICAgKiAtIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgICAqIEBleHBlY3RlZFxuICAgICAqIC0gaXQgc2hvdWxkIHJldHVybiBhZ2dyZWdhdGVkIGFzc2V0c1xuICAgICAqL1xuICAgIGl0KCdzaG91bGQgdGhyb3cgZXhjZXB0aW9uIHdoZW4gbmF0aXZlIHRva2VuIGlzIG1pc3NpbmcnLCAoKSA9PiB7XG4gICAgICAvLyBtb2NrIHR3byBBc3NldEJhbGFuY2UgKHNlY29uZCBvYmplY3QgaGFzIGEgdG9rZW4gaXMgbWlzc2luZyBpbiBmaXJzdCBvYmplY3QpXG4gICAgICBjb25zdCBhOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAxMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogNTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYjogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogNTBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMTBuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDInLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgLy8gcnVuIHRlc3QgJiBjaGVjayB0aHJvd24gZXhjZXB0aW9uXG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBDaGFpblV0aWxzLnN1YnRyYWN0QXNzZXRCYWxhbmNlKGEsIGIpO1xuICAgICAgfSkudG9UaHJvdyhWYWx1ZUVycm9yKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEB0YXJnZXQgQ2hhaW5VdGlscy5yZWR1Y2VBc3NldEJhbGFuY2Ugc2hvdWxkIE5PVCBtaXRpZ2F0ZSBvcmlnaW5hbCBvYmplY3RzXG4gICAgICogQGRlcGVuZGVuY2llc1xuICAgICAqIEBzY2VuYXJpb1xuICAgICAqIC0gbW9jayB0d28gQXNzZXRCYWxhbmNlXG4gICAgICogLSBydW4gdGVzdFxuICAgICAqIC0gY2hlY2sgcGFzc2VkIG9iamVjdHNcbiAgICAgKiBAZXhwZWN0ZWRcbiAgICAgKiAtIHBhc3NlZCBvYmplY3RzIHNob3VsZCBiZSB0aGUgc2FtZVxuICAgICAqL1xuICAgIGl0KCdzaG91bGQgTk9UIG1pdGlnYXRlIG9yaWdpbmFsIG9iamVjdHMnLCAoKSA9PiB7XG4gICAgICAvLyBtb2NrIHR3byBBc3NldEJhbGFuY2VcbiAgICAgIGNvbnN0IGE6IEFzc2V0QmFsYW5jZSA9IHtcbiAgICAgICAgbmF0aXZlVG9rZW46IDMwMG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiA1MG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiAyMDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogMjBuLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICAvLyBydW4gdGVzdFxuICAgICAgQ2hhaW5VdGlscy5zdWJ0cmFjdEFzc2V0QmFsYW5jZShhLCBiKTtcblxuICAgICAgLy8gY2hlY2sgcGFzc2VkIG9iamVjdHNcbiAgICAgIGV4cGVjdChhKS50b0VxdWFsKHtcbiAgICAgICAgbmF0aXZlVG9rZW46IDMwMG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiA1MG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGIpLnRvRXF1YWwoe1xuICAgICAgICBuYXRpdmVUb2tlbjogMjAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDIwbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMucmVkdWNlQXNzZXRCYWxhbmNlIHNob3VsZCByZXR1cm4gcmVtYWluaW5nIHRva2Vuc1xuICAgICAqIHdpdGggMCBuYXRpdmUgdG9rZW4gd2hlbiBuZWdhdGl2ZSBuYXRpdmUgdG9rZW4gaXMgYWxsb3dlZFxuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIG1vY2sgdHdvIEFzc2V0QmFsYW5jZVxuICAgICAqIC0gcnVuIHRlc3RcbiAgICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIGFnZ3JlZ2F0ZWQgdG9rZW5zIHdpdGggMCBuYXRpdmUgdG9rZW5cbiAgICAgKi9cbiAgICBpdCgnc2hvdWxkIHJldHVybiByZW1haW5pbmcgdG9rZW5zIHdpdGggMCBuYXRpdmUgdG9rZW4gd2hlbiBuZWdhdGl2ZSBuYXRpdmUgdG9rZW4gaXMgYWxsb3dlZCcsICgpID0+IHtcbiAgICAgIC8vIG1vY2sgdHdvIEFzc2V0QmFsYW5jZVxuICAgICAgY29uc3QgYTogQXNzZXRCYWxhbmNlID0ge1xuICAgICAgICBuYXRpdmVUb2tlbjogMTAwbixcbiAgICAgICAgdG9rZW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgICAgdmFsdWU6IDEwbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBiOiBBc3NldEJhbGFuY2UgPSB7XG4gICAgICAgIG5hdGl2ZVRva2VuOiA1MDBuLFxuICAgICAgICB0b2tlbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgICB2YWx1ZTogNW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIC8vIHJ1biB0ZXN0XG4gICAgICBjb25zdCByZXN1bHQgPSBDaGFpblV0aWxzLnN1YnRyYWN0QXNzZXRCYWxhbmNlKGEsIGIsIDBuLCB0cnVlKTtcblxuICAgICAgLy8gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICBuYXRpdmVUb2tlbjogMG4sXG4gICAgICAgIHRva2VuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQxJyxcbiAgICAgICAgICAgIHZhbHVlOiA1bixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICAgIHZhbHVlOiAyMG4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnd3JhcEFzc2V0QmFsYW5jZScsICgpID0+IHtcbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMud3JhcEFzc2V0QmFsYW5jZSBzaG91bGQgd3JhcCBhbGwgdmFsdWVzIHN1Y2Nlc3NmdWxseVxuICAgICAqIEBkZXBlbmRlbmNpZXNcbiAgICAgKiBAc2NlbmFyaW9cbiAgICAgKiAtIGdlbmVyYXRlIHRva2VuTWFwIG9iamVjdCB3aXRoIG11bHRpIGRlY2ltYWxzXG4gICAgICogLSBydW4gdGVzdFxuICAgICAqIC0gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICAgKiBAZXhwZWN0ZWRcbiAgICAgKiAtIGl0IHNob3VsZCByZXR1cm4gdGhlIGV4cGVjdGVkIHdyYXBwZWQgdmFsdWVzXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCB3cmFwIGFsbCB2YWx1ZXMgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgICAgLy8gbW9jayBhbiBBc3NldEJhbGFuY2VcbiAgICAgIGNvbnN0IHRva2VuTWFwID0gbmV3IFRva2VuTWFwKHRlc3RUb2tlbk1hcCk7XG5cbiAgICAgIC8vIHJ1biB0ZXN0XG4gICAgICBjb25zdCByZXN1bHQgPSBDaGFpblV0aWxzLndyYXBBc3NldEJhbGFuY2UoXG4gICAgICAgIGFjdHVhbEJhbGFuY2UsXG4gICAgICAgIHRva2VuTWFwLFxuICAgICAgICAndGVzdC1uYXRpdmUtdG9rZW4nLFxuICAgICAgICAndGVzdCdcbiAgICAgICk7XG5cbiAgICAgIC8vIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHdyYXBwZWRCYWxhbmNlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Vud3JhcEFzc2V0QmFsYW5jZScsICgpID0+IHtcbiAgICAvKipcbiAgICAgKiBAdGFyZ2V0IENoYWluVXRpbHMudW53cmFwQXNzZXRCYWxhbmNlIHNob3VsZCB1bndyYXAgYWxsIHZhbHVlcyBzdWNjZXNzZnVsbHlcbiAgICAgKiBAZGVwZW5kZW5jaWVzXG4gICAgICogQHNjZW5hcmlvXG4gICAgICogLSBnZW5lcmF0ZSB0b2tlbk1hcCBvYmplY3Qgd2l0aCBtdWx0aSBkZWNpbWFsc1xuICAgICAqIC0gcnVuIHRlc3RcbiAgICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAgICogQGV4cGVjdGVkXG4gICAgICogLSBpdCBzaG91bGQgcmV0dXJuIHRoZSBleHBlY3RlZCB1bndyYXBwZWQgdmFsdWVzXG4gICAgICovXG4gICAgaXQoJ3Nob3VsZCB1bndyYXAgYWxsIHZhbHVlcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgICAvLyBtb2NrIGFuIEFzc2V0QmFsYW5jZVxuICAgICAgY29uc3QgdG9rZW5NYXAgPSBuZXcgVG9rZW5NYXAodGVzdFRva2VuTWFwKTtcblxuICAgICAgLy8gcnVuIHRlc3RcbiAgICAgIGNvbnN0IHJlc3VsdCA9IENoYWluVXRpbHMudW53cmFwQXNzZXRCYWxhbmNlKFxuICAgICAgICB3cmFwcGVkQmFsYW5jZSxcbiAgICAgICAgdG9rZW5NYXAsXG4gICAgICAgICd0ZXN0LW5hdGl2ZS10b2tlbicsXG4gICAgICAgICd0ZXN0J1xuICAgICAgKTtcblxuICAgICAgLy8gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwodW53cmFwcGVkQmFsYW5jZSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
{
"name": "@rosen-chains/abstract-chain",
"version": "9.0.0",
"version": "9.0.1",
"description": "this project contains abstract classes to implement any chain for Rosen-bridge",

@@ -26,3 +26,3 @@ "main": "dist/lib/index.js",

"@rosen-bridge/minimum-fee": "^2.1.0",
"@rosen-bridge/rosen-extractor": "^6.1.0",
"@rosen-bridge/rosen-extractor": "^6.1.1",
"@rosen-bridge/tokens": "^1.2.1",

@@ -29,0 +29,0 @@ "blakejs": "^1.2.1"

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc