From 4b58ce3220498975002e550508de42eb55069451 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Thu, 26 Sep 2019 10:24:57 +0200 Subject: [PATCH] CC2 (#164) --- CHANGELOG.md | 7 ++++++- packages/extension-chains/src/index.ts | 5 +++-- packages/extension-chains/src/kusama-cc2.ts | 19 +++++++++++++++++++ packages/extension-ui/package.json | 4 ++-- yarn.lock | 4 ++-- 5 files changed, 32 insertions(+), 7 deletions(-) create mode 100644 packages/extension-chains/src/kusama-cc2.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index c9fa59c6..6fa28aba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 0.12.0-beta.x + +- Support for Kusama CC2 +- Update to latest stable dependencies + # 0.11.1 - Cleanup metadata handling, when outdated for a node, transparently handle parsing errors @@ -5,7 +10,7 @@ - Display addresses correctly formatted based on the ss58 chain identifiers - Display identity icons based on chain types for known chains - Integrate latest @polkadot/util, @polkadot-js/ui & @polkadot/api dependencies -- Updated to babe 7.6 (build and runtime improvememnts) +- Updated to Babel 7.6 (build and runtime improvements) # 0.10.1 diff --git a/packages/extension-chains/src/index.ts b/packages/extension-chains/src/index.ts index ecad647a..fd38400a 100644 --- a/packages/extension-chains/src/index.ts +++ b/packages/extension-chains/src/index.ts @@ -6,13 +6,14 @@ import { Metadata } from '@polkadot/types'; import { Chain } from './types'; // imports chain details, generally metadata. For the generation of these, -// inside the api, run `yarn chain:info [--ws ]` +// inside the api, run `yarn chain:info --ws ` import alexander from './alexander'; import edgeware from './edgeware'; import kusamaCC1 from './kusama-cc1'; +import kusamaCC2 from './kusama-cc2'; const chains: Map = new Map( - [alexander, edgeware, kusamaCC1].map( + [alexander, edgeware, kusamaCC1, kusamaCC2].map( ({ chain, genesisHash, icon, metaCalls, specVersion, ss58Format, tokenDecimals, tokenSymbol, types }): [string, Chain] => [ genesisHash, { diff --git a/packages/extension-chains/src/kusama-cc2.ts b/packages/extension-chains/src/kusama-cc2.ts new file mode 100644 index 00000000..ba33215f --- /dev/null +++ b/packages/extension-chains/src/kusama-cc2.ts @@ -0,0 +1,19 @@ +// Copyright 2019 @polkadot/extension-chains authors & contributors +// This software may be modified and distributed under the terms +// of the Apache-2.0 license. See the LICENSE file for details. + +// Generated via (in api) `yarn chain:info wss://serinus-5.kusama.network/` + +export default { + chain: 'Kusama CC2', + genesisHash: '0x2c9249c6ade20d0969db0db0b4b8aeff752c43191cfe3a374d99309e5b3b26d5', + icon: 'polkadot', + specVersion: 1003, + ss58Format: 2, + tokenDecimals: 12, + tokenSymbol: 'KSM', + types: { + Keys: 'SessionKeysPolkadot' + }, + metaCalls: 'bWV0YQdcGFN5c3RlbQABGChmaWxsX2Jsb2NrAAQhASBBIGJpZyBkaXNwYXRjaCB0aGF0IHdpbGwgZGlzYWxsb3cgYW55IG90aGVyIHRyYW5zYWN0aW9uIHRvIGJlIGluY2x1ZGVkLhhyZW1hcmsEHF9yZW1hcmsUQnl0ZXMEbCBNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrLjhzZXRfaGVhcF9wYWdlcwQUcGFnZXMMdTY0BPwgU2V0IHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIFdlYkFzc2VtYmx5IGVudmlyb25tZW50J3MgaGVhcC4gc2V0X2NvZGUEDG5ldxRCeXRlcwRIIFNldCB0aGUgbmV3IGNvZGUuLHNldF9zdG9yYWdlBBRpdGVtczRWZWM8S2V5VmFsdWU+BGwgU2V0IHNvbWUgaXRlbXMgb2Ygc3RvcmFnZS4wa2lsbF9zdG9yYWdlBBBrZXlzIFZlYzxLZXk+BHggS2lsbCBzb21lIGl0ZW1zIGZyb20gc3RvcmFnZS4AABBCYWJlAAEAAAAkVGltZXN0YW1wAAEEDHNldAQMbm93PENvbXBhY3Q8TW9tZW50PiRYIFNldCB0aGUgY3VycmVudCB0aW1lLgBZASBUaGlzIGNhbGwgc2hvdWxkIGJlIGludm9rZWQgZXhhY3RseSBvbmNlIHBlciBibG9jay4gSXQgd2lsbCBwYW5pYyBhdCB0aGUgZmluYWxpemF0aW9u2CBwaGFzZSwgaWYgdGhpcyBjYWxsIGhhc24ndCBiZWVuIGludm9rZWQgYnkgdGhhdCB0aW1lLgBFASBUaGUgdGltZXN0YW1wIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZSBieSB0aGUgYW1vdW50IHNwZWNpZmllZCBieUQgYE1pbmltdW1QZXJpb2RgLgDYIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBJbmhlcmVudGAuAAAcSW5kaWNlcwABAAAAIEJhbGFuY2VzAAEMIHRyYW5zZmVyCBBkZXN0HEFkZHJlc3MUdmFsdWVAQ29tcGFjdDxCYWxhbmNlPlzYIFRyYW5zZmVyIHNvbWUgbGlxdWlkIGZyZWUgYmFsYW5jZSB0byBhbm90aGVyIGFjY291bnQuAAkBIGB0cmFuc2ZlcmAgd2lsbCBzZXQgdGhlIGBGcmVlQmFsYW5jZWAgb2YgdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIuIQEgSXQgd2lsbCBkZWNyZWFzZSB0aGUgdG90YWwgaXNzdWFuY2Ugb2YgdGhlIHN5c3RlbSBieSB0aGUgYFRyYW5zZmVyRmVlYC4VASBJZiB0aGUgc2VuZGVyJ3MgYWNjb3VudCBpcyBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdLQgb2YgdGhlIHRyYW5zZmVyLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AGQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlIHRyYW5zYWN0b3IuACwgIyA8d2VpZ2h0PjEBIC0gRGVwZW5kZW50IG9uIGFyZ3VtZW50cyBidXQgbm90IGNyaXRpY2FsLCBnaXZlbiBwcm9wZXIgaW1wbGVtZW50YXRpb25zIGZvcswgICBpbnB1dCBjb25maWcgdHlwZXMuIFNlZSByZWxhdGVkIGZ1bmN0aW9ucyBiZWxvdy5pASAtIEl0IGNvbnRhaW5zIGEgbGltaXRlZCBudW1iZXIgb2YgcmVhZHMgYW5kIHdyaXRlcyBpbnRlcm5hbGx5IGFuZCBubyBjb21wbGV4IGNvbXB1dGF0aW9uLgBMIFJlbGF0ZWQgZnVuY3Rpb25zOgBRASAgIC0gYGVuc3VyZV9jYW5fd2l0aGRyYXdgIGlzIGFsd2F5cyBjYWxsZWQgaW50ZXJuYWxseSBidXQgaGFzIGEgYm91bmRlZCBjb21wbGV4aXR5Li0BICAgLSBUcmFuc2ZlcnJpbmcgYmFsYW5jZXMgdG8gYWNjb3VudHMgdGhhdCBkaWQgbm90IGV4aXN0IGJlZm9yZSB3aWxsIGNhdXNl1CAgICAgIGBUOjpPbk5ld0FjY291bnQ6Om9uX25ld19hY2NvdW50YCB0byBiZSBjYWxsZWQu3CAgIC0gUmVtb3ZpbmcgZW5vdWdoIGZ1bmRzIGZyb20gYW4gYWNjb3VudCB3aWxsIHRyaWdnZXJZASAgICAgYFQ6OkR1c3RSZW1vdmFsOjpvbl91bmJhbGFuY2VkYCBhbmQgYFQ6Ok9uRnJlZUJhbGFuY2VaZXJvOjpvbl9mcmVlX2JhbGFuY2VfemVyb2AuADAgIyA8L3dlaWdodD4sc2V0X2JhbGFuY2UMDHdobxxBZGRyZXNzIG5ld19mcmVlQENvbXBhY3Q8QmFsYW5jZT4wbmV3X3Jlc2VydmVkQENvbXBhY3Q8QmFsYW5jZT40lCBTZXQgdGhlIGJhbGFuY2VzIG9mIGEgZ2l2ZW4gYWNjb3VudC4AIQEgVGhpcyB3aWxsIGFsdGVyIGBGcmVlQmFsYW5jZWAgYW5kIGBSZXNlcnZlZEJhbGFuY2VgIGluIHN0b3JhZ2UuIGl0IHdpbGwJASBhbHNvIGRlY3JlYXNlIHRoZSB0b3RhbCBpc3N1YW5jZSBvZiB0aGUgc3lzdGVtIChgVG90YWxJc3N1YW5jZWApLhkBIElmIHRoZSBuZXcgZnJlZSBvciByZXNlcnZlZCBiYWxhbmNlIGlzIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0LOggaXQgd2lsbCByZXNldCB0aGUgYWNjb3VudCBub25jZSAoYHN5c3RlbTo6QWNjb3VudE5vbmNlYCkuALQgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIGlzIGByb290YC4ALCAjIDx3ZWlnaHQ+gCAtIEluZGVwZW5kZW50IG9mIHRoZSBhcmd1bWVudHMuxCAtIENvbnRhaW5zIGEgbGltaXRlZCBudW1iZXIgb2YgcmVhZHMgYW5kIHdyaXRlcy4wICMgPC93ZWlnaHQ+OGZvcmNlX3RyYW5zZmVyDBhzb3VyY2UcQWRkcmVzcxBkZXN0HEFkZHJlc3MUdmFsdWVAQ29tcGFjdDxCYWxhbmNlPghRASBFeGFjdGx5IGFzIGB0cmFuc2ZlcmAsIGV4Y2VwdCB0aGUgb3JpZ2luIG11c3QgYmUgcm9vdCBhbmQgdGhlIHNvdXJjZSBhY2NvdW50IG1heSBiZSwgc3BlY2lmaWVkLgAAKEF1dGhvcnNoaXAAAQQoc2V0X3VuY2xlcwQobmV3X3VuY2xlcyxWZWM8SGVhZGVyPgRkIFByb3ZpZGUgYSBzZXQgb2YgdW5jbGVzLgAAHFN0YWtpbmcAATQQYm9uZAwoY29udHJvbGxlchxBZGRyZXNzFHZhbHVlSENvbXBhY3Q8QmFsYW5jZU9mPhRwYXllZURSZXdhcmREZXN0aW5hdGlvbjxlASBUYWtlIHRoZSBvcmlnaW4gYWNjb3VudCBhcyBhIHN0YXNoIGFuZCBsb2NrIHVwIGB2YWx1ZWAgb2YgaXRzIGJhbGFuY2UuIGBjb250cm9sbGVyYCB3aWxshCBiZSB0aGUgYWNjb3VudCB0aGF0IGNvbnRyb2xzIGl0LgAxASBgdmFsdWVgIG11c3QgYmUgbW9yZSB0aGFuIHRoZSBgbWluaW11bV9iYWxhbmNlYCBzcGVjaWZpZWQgYnkgYFQ6OkN1cnJlbmN5YC4AJQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIHN0YXNoIGFjY291bnQuACwgIyA8d2VpZ2h0PtQgLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBNb2RlcmF0ZSBjb21wbGV4aXR5LiAgLSBPKDEpLmggLSBUaHJlZSBleHRyYSBEQiBlbnRyaWVzLgBtASBOT1RFOiBUd28gb2YgdGhlIHN0b3JhZ2Ugd3JpdGVzIChgU2VsZjo6Ym9uZGVkYCwgYFNlbGY6OnBheWVlYCkgYXJlIF9uZXZlcl8gY2xlYW5lZCB1bmxlc3MlASB0aGUgYG9yaWdpbmAgZmFsbHMgYmVsb3cgX2V4aXN0ZW50aWFsIGRlcG9zaXRfIGFuZCBnZXRzIHJlbW92ZWQgYXMgZHVzdC4wICMgPC93ZWlnaHQ+KGJvbmRfZXh0cmEEOG1heF9hZGRpdGlvbmFsSENvbXBhY3Q8QmFsYW5jZU9mPjhlASBBZGQgc29tZSBleHRyYSBhbW91bnQgdGhhdCBoYXZlIGFwcGVhcmVkIGluIHRoZSBzdGFzaCBgZnJlZV9iYWxhbmNlYCBpbnRvIHRoZSBiYWxhbmNlIHVwNCBmb3Igc3Rha2luZy4AUQEgVXNlIHRoaXMgaWYgdGhlcmUgYXJlIGFkZGl0aW9uYWwgZnVuZHMgaW4geW91ciBzdGFzaCBhY2NvdW50IHRoYXQgeW91IHdpc2ggdG8gYm9uZC5lASBVbmxpa2UgW2Bib25kYF0gb3IgW2B1bmJvbmRgXSB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGltcG9zZSBhbnkgbGltaXRhdGlvbiBvbiB0aGUgYW1vdW50TCB0aGF0IGNhbiBiZSBhZGRlZC4AVQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIHN0YXNoLCBub3QgdGhlIGNvbnRyb2xsZXIuACwgIyA8d2VpZ2h0PuggLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBJbnNpZ25pZmljYW50IGNvbXBsZXhpdHkuICAtIE8oMSkuQCAtIE9uZSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+GHVuYm9uZAQUdmFsdWVIQ29tcGFjdDxCYWxhbmNlT2Y+XFUBIFNjaGVkdWxlIGEgcG9ydGlvbiBvZiB0aGUgc3Rhc2ggdG8gYmUgdW5sb2NrZWQgcmVhZHkgZm9yIHRyYW5zZmVyIG91dCBhZnRlciB0aGUgYm9uZAEBIHBlcmlvZCBlbmRzLiBJZiB0aGlzIGxlYXZlcyBhbiBhbW91bnQgYWN0aXZlbHkgYm9uZGVkIGxlc3MgdGhhbiUBIFQ6OkN1cnJlbmN5OjptaW5pbXVtX2JhbGFuY2UoKSwgdGhlbiBpdCBpcyBpbmNyZWFzZWQgdG8gdGhlIGZ1bGwgYW1vdW50LgBJASBPbmNlIHRoZSB1bmxvY2sgcGVyaW9kIGlzIGRvbmUsIHlvdSBjYW4gY2FsbCBgd2l0aGRyYXdfdW5ib25kZWRgIHRvIGFjdHVhbGx5IG1vdmXAIHRoZSBmdW5kcyBvdXQgb2YgbWFuYWdlbWVudCByZWFkeSBmb3IgdHJhbnNmZXIuAD0BIE5vIG1vcmUgdGhhbiBhIGxpbWl0ZWQgbnVtYmVyIG9mIHVubG9ja2luZyBjaHVua3MgKHNlZSBgTUFYX1VOTE9DS0lOR19DSFVOS1NgKT0BIGNhbiBjby1leGlzdHMgYXQgdGhlIHNhbWUgdGltZS4gSW4gdGhhdCBjYXNlLCBbYENhbGw6OndpdGhkcmF3X3VuYm9uZGVkYF0gbmVlZPwgdG8gYmUgY2FsbGVkIGZpcnN0IHRvIHJlbW92ZSBzb21lIG9mIHRoZSBjaHVua3MgKGlmIHBvc3NpYmxlKS4AVQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guAJggU2VlIGFsc28gW2BDYWxsOjp3aXRoZHJhd191bmJvbmRlZGBdLgAsICMgPHdlaWdodD5BASAtIEluZGVwZW5kZW50IG9mIHRoZSBhcmd1bWVudHMuIExpbWl0ZWQgYnV0IHBvdGVudGlhbGx5IGV4cGxvaXRhYmxlIGNvbXBsZXhpdHkumCAtIENvbnRhaW5zIGEgbGltaXRlZCBudW1iZXIgb2YgcmVhZHMuZQEgLSBFYWNoIGNhbGwgKHJlcXVpcmVzIHRoZSByZW1haW5kZXIgb2YgdGhlIGJvbmRlZCBiYWxhbmNlIHRvIGJlIGFib3ZlIGBtaW5pbXVtX2JhbGFuY2VgKXEBICAgd2lsbCBjYXVzZSBhIG5ldyBlbnRyeSB0byBiZSBpbnNlcnRlZCBpbnRvIGEgdmVjdG9yIChgTGVkZ2VyLnVubG9ja2luZ2ApIGtlcHQgaW4gc3RvcmFnZS6lASAgIFRoZSBvbmx5IHdheSB0byBjbGVhbiB0aGUgYWZvcmVtZW50aW9uZWQgc3RvcmFnZSBpdGVtIGlzIGFsc28gdXNlci1jb250cm9sbGVkIHZpYSBgd2l0aGRyYXdfdW5ib25kZWRgLkAgLSBPbmUgREIgZW50cnkuKCA8L3dlaWdodD5Ed2l0aGRyYXdfdW5ib25kZWQAQC0BIFJlbW92ZSBhbnkgdW5sb2NrZWQgY2h1bmtzIGZyb20gdGhlIGB1bmxvY2tpbmdgIHF1ZXVlIGZyb20gb3VyIG1hbmFnZW1lbnQuADUBIFRoaXMgZXNzZW50aWFsbHkgZnJlZXMgdXAgdGhhdCBiYWxhbmNlIHRvIGJlIHVzZWQgYnkgdGhlIHN0YXNoIGFjY291bnQgdG8gZG9MIHdoYXRldmVyIGl0IHdhbnRzLgBVASBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgY29udHJvbGxlciwgbm90IHRoZSBzdGFzaC4AbCBTZWUgYWxzbyBbYENhbGw6OnVuYm9uZGBdLgAsICMgPHdlaWdodD5VASAtIENvdWxkIGJlIGRlcGVuZGVudCBvbiB0aGUgYG9yaWdpbmAgYXJndW1lbnQgYW5kIGhvdyBtdWNoIGB1bmxvY2tpbmdgIGNodW5rcyBleGlzdC5FASAgSXQgaW1wbGllcyBgY29uc29saWRhdGVfdW5sb2NrZWRgIHdoaWNoIGxvb3BzIG92ZXIgYExlZGdlci51bmxvY2tpbmdgLCB3aGljaCBpc/QgIGluZGlyZWN0bHkgdXNlci1jb250cm9sbGVkLiBTZWUgW2B1bmJvbmRgXSBmb3IgbW9yZSBkZXRhaWwueQEgLSBDb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzLCB5ZXQgdGhlIHNpemUgb2Ygd2hpY2ggY291bGQgYmUgbGFyZ2UgYmFzZWQgb24gYGxlZGdlcmAuyCAtIFdyaXRlcyBhcmUgbGltaXRlZCB0byB0aGUgYG9yaWdpbmAgYWNjb3VudCBrZXkuMCAjIDwvd2VpZ2h0PiB2YWxpZGF0ZQQUcHJlZnM4VmFsaWRhdG9yUHJlZnMs6CBEZWNsYXJlIHRoZSBkZXNpcmUgdG8gdmFsaWRhdGUgZm9yIHRoZSBvcmlnaW4gY29udHJvbGxlci4A3CBFZmZlY3RzIHdpbGwgYmUgZmVsdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGVyYS4AVQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guACwgIyA8d2VpZ2h0PuggLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBJbnNpZ25pZmljYW50IGNvbXBsZXhpdHkumCAtIENvbnRhaW5zIGEgbGltaXRlZCBudW1iZXIgb2YgcmVhZHMuyCAtIFdyaXRlcyBhcmUgbGltaXRlZCB0byB0aGUgYG9yaWdpbmAgYWNjb3VudCBrZXkuMCAjIDwvd2VpZ2h0PiBub21pbmF0ZQQcdGFyZ2V0czBWZWM8QWRkcmVzcz4sEQEgRGVjbGFyZSB0aGUgZGVzaXJlIHRvIG5vbWluYXRlIGB0YXJnZXRzYCBmb3IgdGhlIG9yaWdpbiBjb250cm9sbGVyLgDcIEVmZmVjdHMgd2lsbCBiZSBmZWx0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgZXJhLgBVASBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgY29udHJvbGxlciwgbm90IHRoZSBzdGFzaC4ALCAjIDx3ZWlnaHQ+JQEgLSBUaGUgdHJhbnNhY3Rpb24ncyBjb21wbGV4aXR5IGlzIHByb3BvcnRpb25hbCB0byB0aGUgc2l6ZSBvZiBgdGFyZ2V0c2AsmCB3aGljaCBpcyBjYXBwZWQgYXQgYE1BWF9OT01JTkFUSU9OU2Au2CAtIEJvdGggdGhlIHJlYWRzIGFuZCB3cml0ZXMgZm9sbG93IGEgc2ltaWxhciBwYXR0ZXJuLjAgIyA8L3dlaWdodD4UY2hpbGwALMggRGVjbGFyZSBubyBkZXNpcmUgdG8gZWl0aGVyIHZhbGlkYXRlIG9yIG5vbWluYXRlLgDcIEVmZmVjdHMgd2lsbCBiZSBmZWx0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgZXJhLgBVASBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgY29udHJvbGxlciwgbm90IHRoZSBzdGFzaC4ALCAjIDx3ZWlnaHQ+6CAtIEluZGVwZW5kZW50IG9mIHRoZSBhcmd1bWVudHMuIEluc2lnbmlmaWNhbnQgY29tcGxleGl0eS5UIC0gQ29udGFpbnMgb25lIHJlYWQuyCAtIFdyaXRlcyBhcmUgbGltaXRlZCB0byB0aGUgYG9yaWdpbmAgYWNjb3VudCBrZXkuMCAjIDwvd2VpZ2h0PiRzZXRfcGF5ZWUEFHBheWVlRFJld2FyZERlc3RpbmF0aW9uLLggKFJlLSlzZXQgdGhlIHBheW1lbnQgdGFyZ2V0IGZvciBhIGNvbnRyb2xsZXIuANwgRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAFUBIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBjb250cm9sbGVyLCBub3QgdGhlIHN0YXNoLgAsICMgPHdlaWdodD7oIC0gSW5kZXBlbmRlbnQgb2YgdGhlIGFyZ3VtZW50cy4gSW5zaWduaWZpY2FudCBjb21wbGV4aXR5LpggLSBDb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzLsggLSBXcml0ZXMgYXJlIGxpbWl0ZWQgdG8gdGhlIGBvcmlnaW5gIGFjY291bnQga2V5LjAgIyA8L3dlaWdodD44c2V0X2NvbnRyb2xsZXIEKGNvbnRyb2xsZXIcQWRkcmVzcyyQIChSZS0pc2V0IHRoZSBjb250cm9sbGVyIG9mIGEgc3Rhc2guANwgRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAFUBIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBzdGFzaCwgbm90IHRoZSBjb250cm9sbGVyLgAsICMgPHdlaWdodD7oIC0gSW5kZXBlbmRlbnQgb2YgdGhlIGFyZ3VtZW50cy4gSW5zaWduaWZpY2FudCBjb21wbGV4aXR5LpggLSBDb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzLsggLSBXcml0ZXMgYXJlIGxpbWl0ZWQgdG8gdGhlIGBvcmlnaW5gIGFjY291bnQga2V5LjAgIyA8L3dlaWdodD5Mc2V0X3ZhbGlkYXRvcl9jb3VudAQMbmV3MENvbXBhY3Q8dTMyPgSAIFRoZSBpZGVhbCBudW1iZXIgb2YgdmFsaWRhdG9ycy40Zm9yY2Vfbm9fZXJhcwAUsCBGb3JjZSB0aGVyZSB0byBiZSBubyBuZXcgZXJhcyBpbmRlZmluaXRlbHkuACwgIyA8d2VpZ2h0PkAgLSBObyBhcmd1bWVudHMuMCAjIDwvd2VpZ2h0PjRmb3JjZV9uZXdfZXJhABhNASBGb3JjZSB0aGVyZSB0byBiZSBhIG5ldyBlcmEgYXQgdGhlIGVuZCBvZiB0aGUgbmV4dCBzZXNzaW9uLiBBZnRlciB0aGlzLCBpdCB3aWxsIGJloCByZXNldCB0byBub3JtYWwgKG5vbi1mb3JjZWQpIGJlaGF2aW91ci4ALCAjIDx3ZWlnaHQ+QCAtIE5vIGFyZ3VtZW50cy4wICMgPC93ZWlnaHQ+RHNldF9pbnZ1bG5lcmFibGVzBCh2YWxpZGF0b3JzOFZlYzxBY2NvdW50SWQ+BMwgU2V0IHRoZSB2YWxpZGF0b3JzIHdobyBjYW5ub3QgYmUgc2xhc2hlZCAoaWYgYW55KS4AACBPZmZlbmNlcwABAAAAHFNlc3Npb24AAQQgc2V0X2tleXMIEGtleXMQS2V5cxRwcm9vZhRCeXRlcyjkIFNldHMgdGhlIHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIgdG8gYGtleWAuIQEgQWxsb3dzIGFuIGFjY291bnQgdG8gc2V0IGl0cyBzZXNzaW9uIGtleSBwcmlvciB0byBiZWNvbWluZyBhIHZhbGlkYXRvci7EIFRoaXMgZG9lc24ndCB0YWtlIGVmZmVjdCB1bnRpbCB0aGUgbmV4dCBzZXNzaW9uLgDUIFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIHNpZ25lZC4ALCAjIDx3ZWlnaHQ+iCAtIE8obG9nIG4pIGluIG51bWJlciBvZiBhY2NvdW50cy5YIC0gT25lIGV4dHJhIERCIGVudHJ5LjAgIyA8L3dlaWdodD4AADxGaW5hbGl0eVRyYWNrZXIAAQQoZmluYWxfaGludAQQaGludFBDb21wYWN0PEJsb2NrTnVtYmVyPgj0IEhpbnQgdGhhdCB0aGUgYXV0aG9yIG9mIHRoaXMgYmxvY2sgdGhpbmtzIHRoZSBiZXN0IGZpbmFsaXplZGwgYmxvY2sgaXMgdGhlIGdpdmVuIG51bWJlci4AABxHcmFuZHBhAAEESHJlcG9ydF9taXNiZWhhdmlvcgQcX3JlcG9ydBRCeXRlcwRkIFJlcG9ydCBzb21lIG1pc2JlaGF2aW9yLgAAIEltT25saW5lAAEEJGhlYXJ0YmVhdAgkaGVhcnRiZWF0JEhlYXJ0YmVhdCRzaWduYXR1cmUkU2lnbmF0dXJlAAAAJERlbW9jcmFjeQABRBxwcm9wb3NlCCBwcm9wb3NhbCBQcm9wb3NhbBR2YWx1ZUhDb21wYWN0PEJhbGFuY2VPZj4YoCBQcm9wb3NlIGEgc2Vuc2l0aXZlIGFjdGlvbiB0byBiZSB0YWtlbi4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkugCAtIFR3byBEQiBjaGFuZ2VzLCBvbmUgREIgZW50cnkuMCAjIDwvd2VpZ2h0PhhzZWNvbmQEIHByb3Bvc2FsSENvbXBhY3Q8UHJvcEluZGV4PhigIFByb3Bvc2UgYSBzZW5zaXRpdmUgYWN0aW9uIHRvIGJlIHRha2VuLgAsICMgPHdlaWdodD4gIC0gTygxKS5AIC0gT25lIERCIGVudHJ5LjAgIyA8L3dlaWdodD4Qdm90ZQgkcmVmX2luZGV4YENvbXBhY3Q8UmVmZXJlbmR1bUluZGV4PhB2b3RlEFZvdGUcNQEgVm90ZSBpbiBhIHJlZmVyZW5kdW0uIElmIGB2b3RlLmlzX2F5ZSgpYCwgdGhlIHZvdGUgaXMgdG8gZW5hY3QgdGhlIHByb3Bvc2FsO7wgb3RoZXJ3aXNlIGl0IGlzIGEgdm90ZSB0byBrZWVwIHRoZSBzdGF0dXMgcXVvLgAsICMgPHdlaWdodD4gIC0gTygxKS58IC0gT25lIERCIGNoYW5nZSwgb25lIERCIGVudHJ5LjAgIyA8L3dlaWdodD4ocHJveHlfdm90ZQgkcmVmX2luZGV4YENvbXBhY3Q8UmVmZXJlbmR1bUluZGV4PhB2b3RlEFZvdGUcUQEgVm90ZSBpbiBhIHJlZmVyZW5kdW0gb24gYmVoYWxmIG9mIGEgc3Rhc2guIElmIGB2b3RlLmlzX2F5ZSgpYCwgdGhlIHZvdGUgaXMgdG8gZW5hY3T4IHRoZSBwcm9wb3NhbDsgIG90aGVyd2lzZSBpdCBpcyBhIHZvdGUgdG8ga2VlcCB0aGUgc3RhdHVzIHF1by4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkufCAtIE9uZSBEQiBjaGFuZ2UsIG9uZSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+QGVtZXJnZW5jeV9jYW5jZWwEJHJlZl9pbmRleDxSZWZlcmVuZHVtSW5kZXgIUQEgU2NoZWR1bGUgYW4gZW1lcmdlbmN5IGNhbmNlbGxhdGlvbiBvZiBhIHJlZmVyZW5kdW0uIENhbm5vdCBoYXBwZW4gdHdpY2UgdG8gdGhlIHNhbWUwIHJlZmVyZW5kdW0uQGV4dGVybmFsX3Byb3Bvc2UEIHByb3Bvc2FsIFByb3Bvc2FsCDEBIFNjaGVkdWxlIGEgcmVmZXJlbmR1bSB0byBiZSB0YWJsZWQgb25jZSBpdCBpcyBsZWdhbCB0byBzY2hlZHVsZSBhbiBleHRlcm5hbDAgcmVmZXJlbmR1bS5kZXh0ZXJuYWxfcHJvcG9zZV9tYWpvcml0eQQgcHJvcG9zYWwgUHJvcG9zYWwUWQEgU2NoZWR1bGUgYSBtYWpvcml0eS1jYXJyaWVzIHJlZmVyZW5kdW0gdG8gYmUgdGFibGVkIG5leHQgb25jZSBpdCBpcyBsZWdhbCB0byBzY2hlZHVsZWAgYW4gZXh0ZXJuYWwgcmVmZXJlbmR1bS4ATQEgVW5saWtlIGBleHRlcm5hbF9wcm9wb3NlYCwgYmxhY2tsaXN0aW5nIGhhcyBubyBlZmZlY3Qgb24gdGhpcyBhbmQgaXQgbWF5IHJlcGxhY2UgYZwgcHJlLXNjaGVkdWxlZCBgZXh0ZXJuYWxfcHJvcG9zZWAgY2FsbC5gZXh0ZXJuYWxfcHJvcG9zZV9kZWZhdWx0BCBwcm9wb3NhbCBQcm9wb3NhbBRJASBTY2hlZHVsZSBhIG5lZ2F0aXZlLXR1cm5vdXQtYmlhcyByZWZlcmVuZHVtIHRvIGJlIHRhYmxlZCBuZXh0IG9uY2UgaXQgaXMgbGVnYWwgdG+EIHNjaGVkdWxlIGFuIGV4dGVybmFsIHJlZmVyZW5kdW0uAE0BIFVubGlrZSBgZXh0ZXJuYWxfcHJvcG9zZWAsIGJsYWNrbGlzdGluZyBoYXMgbm8gZWZmZWN0IG9uIHRoaXMgYW5kIGl0IG1heSByZXBsYWNlIGGcIHByZS1zY2hlZHVsZWQgYGV4dGVybmFsX3Byb3Bvc2VgIGNhbGwuKGZhc3RfdHJhY2sMNHByb3Bvc2FsX2hhc2gQSGFzaDR2b3RpbmdfcGVyaW9kLEJsb2NrTnVtYmVyFGRlbGF5LEJsb2NrTnVtYmVyIFEBIFNjaGVkdWxlIHRoZSBjdXJyZW50bHkgZXh0ZXJuYWxseS1wcm9wb3NlZCBtYWpvcml0eS1jYXJyaWVzIHJlZmVyZW5kdW0gdG8gYmUgdGFibGVkZQEgaW1tZWRpYXRlbHkuIElmIHRoZXJlIGlzIG5vIGV4dGVybmFsbHktcHJvcG9zZWQgcmVmZXJlbmR1bSBjdXJyZW50bHksIG9yIGlmIHRoZXJlIGlzIG9uZewgYnV0IGl0IGlzIG5vdCBhIG1ham9yaXR5LWNhcnJpZXMgcmVmZXJlbmR1bSB0aGVuIGl0IGZhaWxzLgD4IC0gYHByb3Bvc2FsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY3VycmVudCBleHRlcm5hbCBwcm9wb3NhbC4tASAtIGB2b3RpbmdfcGVyaW9kYDogVGhlIHBlcmlvZCB0aGF0IGlzIGFsbG93ZWQgZm9yIHZvdGluZyBvbiB0aGlzIHByb3Bvc2FsLlUBIC0gYGRlbGF5YDogVGhlIG51bWJlciBvZiBibG9jayBhZnRlciB2b3RpbmcgaGFzIGVuZGVkIGluIGFwcHJvdmFsIGFuZCB0aGlzIHNob3VsZCBiZfAgICBlbmFjdGVkLiBJbmNyZWFzZWQgdG8gYEVtZXJnZW5jeVZvdGluZ1BlcmlvZGAgaWYgdG9vIGxvdy40dmV0b19leHRlcm5hbAQ0cHJvcG9zYWxfaGFzaBBIYXNoBLwgVmV0byBhbmQgYmxhY2tsaXN0IHRoZSBleHRlcm5hbCBwcm9wb3NhbCBoYXNoLkRjYW5jZWxfcmVmZXJlbmR1bQQkcmVmX2luZGV4YENvbXBhY3Q8UmVmZXJlbmR1bUluZGV4PgRUIFJlbW92ZSBhIHJlZmVyZW5kdW0uNGNhbmNlbF9xdWV1ZWQMEHdoZW5QQ29tcGFjdDxCbG9ja051bWJlcj4Ud2hpY2gwQ29tcGFjdDx1MzI+EHdoYXRgQ29tcGFjdDxSZWZlcmVuZHVtSW5kZXg+BKAgQ2FuY2VsIGEgcHJvcG9zYWwgcXVldWVkIGZvciBlbmFjdG1lbnQuJHNldF9wcm94eQQUcHJveHkkQWNjb3VudElkFJggU3BlY2lmeSBhIHByb3h5LiBDYWxsZWQgYnkgdGhlIHN0YXNoLgAsICMgPHdlaWdodD5YIC0gT25lIGV4dHJhIERCIGVudHJ5LjAgIyA8L3dlaWdodD4wcmVzaWduX3Byb3h5ABSYIENsZWFyIHRoZSBwcm94eS4gQ2FsbGVkIGJ5IHRoZSBwcm94eS4ALCAjIDx3ZWlnaHQ+QCAtIE9uZSBEQiBjbGVhci4wICMgPC93ZWlnaHQ+MHJlbW92ZV9wcm94eQQUcHJveHkkQWNjb3VudElkFJggQ2xlYXIgdGhlIHByb3h5LiBDYWxsZWQgYnkgdGhlIHN0YXNoLgAsICMgPHdlaWdodD5AIC0gT25lIERCIGNsZWFyLjAgIyA8L3dlaWdodD4gZGVsZWdhdGUICHRvJEFjY291bnRJZChjb252aWN0aW9uKENvbnZpY3Rpb24UPCBEZWxlZ2F0ZSB2b3RlLgAsICMgPHdlaWdodD5YIC0gT25lIGV4dHJhIERCIGVudHJ5LjAgIyA8L3dlaWdodD4odW5kZWxlZ2F0ZQAURCBVbmRlbGVnYXRlIHZvdGUuACwgIyA8d2VpZ2h0PiAgLSBPKDEpLjAgIyA8L3dlaWdodD4AABxDb3VuY2lsAAEQLHNldF9tZW1iZXJzBCxuZXdfbWVtYmVyczhWZWM8QWNjb3VudElkPhBRASBTZXQgdGhlIGNvbGxlY3RpdmUncyBtZW1iZXJzaGlwIG1hbnVhbGx5IHRvIGBuZXdfbWVtYmVyc2AuIEJlIG5pY2UgdG8gdGhlIGNoYWluIGFuZFwgcHJvdmlkZSBpdCBwcmUtc29ydGVkLgBYIFJlcXVpcmVzIHJvb3Qgb3JpZ2luLhxleGVjdXRlBCBwcm9wb3NhbCBQcm9wb3NhbAz0IERpc3BhdGNoIGEgcHJvcG9zYWwgZnJvbSBhIG1lbWJlciB1c2luZyB0aGUgYE1lbWJlcmAgb3JpZ2luLgCsIE9yaWdpbiBtdXN0IGJlIGEgbWVtYmVyIG9mIHRoZSBjb2xsZWN0aXZlLhxwcm9wb3NlCCR0aHJlc2hvbGRQQ29tcGFjdDxNZW1iZXJDb3VudD4gcHJvcG9zYWwgUHJvcG9zYWwQLCAjIDx3ZWlnaHQ+kCAtIEJvdW5kZWQgc3RvcmFnZSByZWFkcyBhbmQgd3JpdGVzLrggLSBBcmd1bWVudCBgdGhyZXNob2xkYCBoYXMgYmVhcmluZyBvbiB3ZWlnaHQuMCAjIDwvd2VpZ2h0PhB2b3RlDCBwcm9wb3NhbBBIYXNoFGluZGV4WENvbXBhY3Q8UHJvcG9zYWxJbmRleD4cYXBwcm92ZRBib29sECwgIyA8d2VpZ2h0PowgLSBCb3VuZGVkIHN0b3JhZ2UgcmVhZCBhbmQgd3JpdGVzLlUBIC0gV2lsbCBiZSBzbGlnaHRseSBoZWF2aWVyIGlmIHRoZSBwcm9wb3NhbCBpcyBhcHByb3ZlZCAvIGRpc2FwcHJvdmVkIGFmdGVyIHRoZSB2b3RlLjAgIyA8L3dlaWdodD4AAEhUZWNobmljYWxDb21taXR0ZWUAARAsc2V0X21lbWJlcnMELG5ld19tZW1iZXJzOFZlYzxBY2NvdW50SWQ+EFEBIFNldCB0aGUgY29sbGVjdGl2ZSdzIG1lbWJlcnNoaXAgbWFudWFsbHkgdG8gYG5ld19tZW1iZXJzYC4gQmUgbmljZSB0byB0aGUgY2hhaW4gYW5kXCBwcm92aWRlIGl0IHByZS1zb3J0ZWQuAFggUmVxdWlyZXMgcm9vdCBvcmlnaW4uHGV4ZWN1dGUEIHByb3Bvc2FsIFByb3Bvc2FsDPQgRGlzcGF0Y2ggYSBwcm9wb3NhbCBmcm9tIGEgbWVtYmVyIHVzaW5nIHRoZSBgTWVtYmVyYCBvcmlnaW4uAKwgT3JpZ2luIG11c3QgYmUgYSBtZW1iZXIgb2YgdGhlIGNvbGxlY3RpdmUuHHByb3Bvc2UIJHRocmVzaG9sZFBDb21wYWN0PE1lbWJlckNvdW50PiBwcm9wb3NhbCBQcm9wb3NhbBAsICMgPHdlaWdodD6QIC0gQm91bmRlZCBzdG9yYWdlIHJlYWRzIGFuZCB3cml0ZXMuuCAtIEFyZ3VtZW50IGB0aHJlc2hvbGRgIGhhcyBiZWFyaW5nIG9uIHdlaWdodC4wICMgPC93ZWlnaHQ+EHZvdGUMIHByb3Bvc2FsEEhhc2gUaW5kZXhYQ29tcGFjdDxQcm9wb3NhbEluZGV4PhxhcHByb3ZlEGJvb2wQLCAjIDx3ZWlnaHQ+jCAtIEJvdW5kZWQgc3RvcmFnZSByZWFkIGFuZCB3cml0ZXMuVQEgLSBXaWxsIGJlIHNsaWdodGx5IGhlYXZpZXIgaWYgdGhlIHByb3Bvc2FsIGlzIGFwcHJvdmVkIC8gZGlzYXBwcm92ZWQgYWZ0ZXIgdGhlIHZvdGUuMCAjIDwvd2VpZ2h0PgAAJEVsZWN0aW9ucwABKDRzZXRfYXBwcm92YWxzEBR2b3RlcyRWZWM8Ym9vbD4UaW5kZXhIQ29tcGFjdDxWb3RlSW5kZXg+EGhpbnQgU2V0SW5kZXgUdmFsdWUkQmFsYW5jZU9mYGEBIFNldCBjYW5kaWRhdGUgYXBwcm92YWxzLiBBcHByb3ZhbCBzbG90cyBzdGF5IHZhbGlkIGFzIGxvbmcgYXMgY2FuZGlkYXRlcyBpbiB0aG9zZSBzbG90c0AgYXJlIHJlZ2lzdGVyZWQuAE0BIExvY2tzIGB2YWx1ZWAgZnJvbSB0aGUgYmFsYW5jZSBvZiBgb3JpZ2luYCBpbmRlZmluaXRlbHkuIE9ubHkgW2ByZXRyYWN0X3ZvdGVyYF0gb3LAIFtgcmVhcF9pbmFjdGl2ZV92b3RlcmBdIGNhbiB1bmxvY2sgdGhlIGJhbGFuY2UuANQgYGhpbnRgIGFyZ3VtZW50IGlzIGludGVycHJldGVkIGRpZmZlcmVudGx5IGJhc2VkIG9uOlUBIC0gaWYgYG9yaWdpbmAgaXMgc2V0dGluZyBhcHByb3ZhbHMgZm9yIHRoZSBmaXJzdCB0aW1lOiBUaGUgaW5kZXggd2lsbCBiZSBjaGVja2VkIGZvcqggICBiZWluZyBhIHZhbGlkIF9ob2xlXyBpbiB0aGUgdm90ZXIgbGlzdC5NASAgIC0gaWYgdGhlIGhpbnQgaXMgY29ycmVjdGx5IHBvaW50aW5nIHRvIGEgaG9sZSwgbm8gZmVlIGlzIGRlZHVjdGVkIGZyb20gYG9yaWdpbmAuXQEgICAtIE90aGVyd2lzZSwgdGhlIGNhbGwgd2lsbCBzdWNjZWVkIGJ1dCB0aGUgaW5kZXggaXMgaWdub3JlZCBhbmQgc2ltcGx5IGEgcHVzaCB0byB0aGVFASAgICAgbGFzdCBjaHVuayB3aXRoIGZyZWUgc3BhY2UgaGFwcGVucy4gSWYgdGhlIG5ldyBwdXNoIGNhdXNlcyBhIG5ldyBjaHVuayB0byBiZewgICAgIGNyZWF0ZWQsIGEgZmVlIGluZGljYXRlZCBieSBbYFZvdGluZ0ZlZWBdIGlzIGRlZHVjdGVkLl0BIC0gaWYgYG9yaWdpbmAgaXMgYWxyZWFkeSBhIHZvdGVyOiB0aGUgaW5kZXggX19tdXN0X18gYmUgdmFsaWQgYW5kIHBvaW50IHRvIHRoZSBjb3JyZWN03CAgIHBvc2l0aW9uIG9mIHRoZSBgb3JpZ2luYCBpbiB0aGUgY3VycmVudCB2b3RlcnMgbGlzdC4AUQEgTm90ZSB0aGF0IGFueSB0cmFpbGluZyBgZmFsc2VgIHZvdGVzIGluIGB2b3Rlc2AgaXMgaWdub3JlZDsgSW4gYXBwcm92YWwgdm90aW5nLCBub3TQIHZvdGluZyBmb3IgYSBjYW5kaWRhdGUgYW5kIHZvdGluZyBmYWxzZSwgYXJlIGVxdWFsLgAsICMgPHdlaWdodD4gIC0gTygxKS6cIC0gVHdvIGV4dHJhIERCIGVudHJpZXMsIG9uZSBEQiBjaGFuZ2UuBQEgLSBBcmd1bWVudCBgdm90ZXNgIGlzIGxpbWl0ZWQgaW4gbGVuZ3RoIHRvIG51bWJlciBvZiBjYW5kaWRhdGVzLjAgIyA8L3dlaWdodD5McHJveHlfc2V0X2FwcHJvdmFscxAUdm90ZXMkVmVjPGJvb2w+FGluZGV4SENvbXBhY3Q8Vm90ZUluZGV4PhBoaW50IFNldEluZGV4FHZhbHVlJEJhbGFuY2VPZhhlASBTZXQgY2FuZGlkYXRlIGFwcHJvdmFscyBmcm9tIGEgcHJveHkuIEFwcHJvdmFsIHNsb3RzIHN0YXkgdmFsaWQgYXMgbG9uZyBhcyBjYW5kaWRhdGVzIGlucCB0aG9zZSBzbG90cyBhcmUgcmVnaXN0ZXJlZC4ALCAjIDx3ZWlnaHQ+8CAtIFNhbWUgYXMgYHNldF9hcHByb3ZhbHNgIHdpdGggb25lIGFkZGl0aW9uYWwgc3RvcmFnZSByZWFkLjAgIyA8L3dlaWdodD5McmVhcF9pbmFjdGl2ZV92b3RlchA4cmVwb3J0ZXJfaW5kZXgwQ29tcGFjdDx1MzI+DHdobxxBZGRyZXNzJHdob19pbmRleDBDb21wYWN0PHUzMj5IYXNzdW1lZF92b3RlX2luZGV4SENvbXBhY3Q8Vm90ZUluZGV4PjBhASBSZW1vdmUgYSB2b3Rlci4gRm9yIGl0IG5vdCB0byBiZSBhIGJvbmQtY29uc3VtaW5nIG5vLW9wLCBhbGwgYXBwcm92ZWQgY2FuZGlkYXRlIGluZGljZXNZASBtdXN0IG5vdyBiZSBlaXRoZXIgdW5yZWdpc3RlcmVkIG9yIHJlZ2lzdGVyZWQgdG8gYSBjYW5kaWRhdGUgdGhhdCByZWdpc3RlcmVkIHRoZSBzbG90uCBhZnRlciB0aGUgdm90ZXIgZ2F2ZSB0aGVpciBsYXN0IGFwcHJvdmFsIHNldC4AFQEgQm90aCBpbmRpY2VzIG11c3QgYmUgcHJvdmlkZWQgYXMgZXhwbGFpbmVkIGluIFtgdm90ZXJfYXRgXSBmdW5jdGlvbi4AAQEgTWF5IGJlIGNhbGxlZCBieSBhbnlvbmUuIFJldHVybnMgdGhlIHZvdGVyIGRlcG9zaXQgdG8gYHNpZ25lZGAuACwgIyA8d2VpZ2h0PiAgLSBPKDEpLpwgLSBUd28gZmV3ZXIgREIgZW50cmllcywgb25lIERCIGNoYW5nZS4wICMgPC93ZWlnaHQ+NHJldHJhY3Rfdm90ZXIEFGluZGV4MENvbXBhY3Q8dTMyPigtASBSZW1vdmUgYSB2b3Rlci4gQWxsIHZvdGVzIGFyZSBjYW5jZWxsZWQgYW5kIHRoZSB2b3RlciBkZXBvc2l0IGlzIHJldHVybmVkLgAJASBUaGUgaW5kZXggbXVzdCBiZSBwcm92aWRlZCBhcyBleHBsYWluZWQgaW4gW2B2b3Rlcl9hdGBdIGZ1bmN0aW9uLgA9ASBBbHNvIHJlbW92ZXMgdGhlIGxvY2sgb24gdGhlIGJhbGFuY2Ugb2YgdGhlIHZvdGVyLiBTZWUgW2Bkb19zZXRfYXBwcm92YWxzKClgXS4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkunCAtIFR3byBmZXdlciBEQiBlbnRyaWVzLCBvbmUgREIgY2hhbmdlLjAgIyA8L3dlaWdodD5Ac3VibWl0X2NhbmRpZGFjeQQQc2xvdDBDb21wYWN0PHUzMj40eCBTdWJtaXQgb25lc2VsZiBmb3IgY2FuZGlkYWN5LgARASBBY2NvdW50IG11c3QgaGF2ZSBlbm91Z2ggdHJhbnNmZXJyYWJsZSBmdW5kcyBpbiBpdCB0byBwYXkgdGhlIGJvbmQuACEBIE5PVEU6IGlmIGBvcmlnaW5gIGhhcyBhbHJlYWR5IGFzc2lnbmVkIGFwcHJvdmFscyB2aWEgW2BzZXRfYXBwcm92YWxzYF0sRQEgaXQgd2lsbCBOT1QgaGF2ZSBhbnkgdXNhYmxlIGZ1bmRzIHRvIHBhc3MgY2FuZGlkYWN5IGJvbmQgYW5kIG11c3QgZmlyc3QgcmV0cmFjdC4xASBOb3RlIHRoYXQgc2V0dGluZyBhcHByb3ZhbHMgd2lsbCBsb2NrIHRoZSBlbnRpcmUgYmFsYW5jZSBvZiB0aGUgdm90ZXIgdW50aWx4IHJldHJhY3Rpb24gb3IgYmVpbmcgcmVwb3J0ZWQuACwgIyA8d2VpZ2h0PmAgLSBJbmRlcGVuZGVudCBvZiBpbnB1dC5QIC0gVGhyZWUgREIgY2hhbmdlcy4wICMgPC93ZWlnaHQ+OHByZXNlbnRfd2lubmVyDCRjYW5kaWRhdGUcQWRkcmVzcxR0b3RhbEhDb21wYWN0PEJhbGFuY2VPZj4UaW5kZXhIQ29tcGFjdDxWb3RlSW5kZXg+JGEBIENsYWltIHRoYXQgYGNhbmRpZGF0ZWAgaXMgb25lIG9mIHRoZSB0b3AgYGNhcnJ5X2NvdW50ICsgZGVzaXJlZF9zZWF0c2AgY2FuZGlkYXRlcy4gT25seWEBIHdvcmtzIGlmZiB0aGUgcHJlc2VudGF0aW9uIHBlcmlvZCBpcyBhY3RpdmUuIGBjYW5kaWRhdGVgIHNob3VsZCBoYXZlIGF0IGxlYXN0IGNvbGxlY3RlZF0BIHNvbWUgbm9uLXplcm8gYHRvdGFsYCB2b3RlcyBhbmQgYG9yaWdpbmAgbXVzdCBoYXZlIGVub3VnaCBmdW5kcyB0byBwYXkgZm9yIGEgcG90ZW50aWFsHCBzbGFzaC4ALCAjIDx3ZWlnaHQ+VCAtIE8odm90ZXJzKSBjb21wdXRlLkQgLSBPbmUgREIgY2hhbmdlLjAgIyA8L3dlaWdodD5Ec2V0X2Rlc2lyZWRfc2VhdHMEFGNvdW50MENvbXBhY3Q8dTMyPgxlASBTZXQgdGhlIGRlc2lyZWQgbWVtYmVyIGNvdW50OyBpZiBsb3dlciB0aGFuIHRoZSBjdXJyZW50IGNvdW50LCB0aGVuIHNlYXRzIHdpbGwgbm90IGJlIHVwSQEgZWxlY3Rpb24gd2hlbiB0aGV5IGV4cGlyZS4gSWYgbW9yZSwgdGhlbiBhIG5ldyB2b3RlIHdpbGwgYmUgc3RhcnRlZCBpZiBvbmUgaXMgbm90VCBhbHJlYWR5IGluIHByb2dyZXNzLjRyZW1vdmVfbWVtYmVyBAx3aG8cQWRkcmVzcxAhASBSZW1vdmUgYSBwYXJ0aWN1bGFyIG1lbWJlciBmcm9tIHRoZSBzZXQuIFRoaXMgaXMgZWZmZWN0aXZlIGltbWVkaWF0ZWx5LgAhASBOb3RlOiBBIHRhbGx5IHNob3VsZCBoYXBwZW4gaW5zdGFudGx5IChpZiBub3QgYWxyZWFkeSBpbiBhIHByZXNlbnRhdGlvbkEBIHBlcmlvZCkgdG8gZmlsbCB0aGUgc2VhdCBpZiByZW1vdmFsIG1lYW5zIHRoYXQgdGhlIGRlc2lyZWQgbWVtYmVycyBhcmUgbm90IG1ldC5kc2V0X3ByZXNlbnRhdGlvbl9kdXJhdGlvbgQUY291bnRQQ29tcGFjdDxCbG9ja051bWJlcj4IWQEgU2V0IHRoZSBwcmVzZW50YXRpb24gZHVyYXRpb24uIElmIHRoZXJlIGlzIGN1cnJlbnRseSBhIHZvdGUgYmVpbmcgcHJlc2VudGVkIGZvciwgd2lsbGAgaW52b2tlIGBmaW5hbGl6ZV92b3RlYC5Ec2V0X3Rlcm1fZHVyYXRpb24EFGNvdW50UENvbXBhY3Q8QmxvY2tOdW1iZXI+CFEBIFNldCB0aGUgcHJlc2VudGF0aW9uIGR1cmF0aW9uLiBJZiB0aGVyZSBpcyBjdXJyZW50IGEgdm90ZSBiZWluZyBwcmVzZW50ZWQgZm9yLCB3aWxsYCBpbnZva2UgYGZpbmFsaXplX3ZvdGVgLgAATFRlY2huaWNhbE1lbWJlcnNoaXAAARAoYWRkX21lbWJlcgQMd2hvJEFjY291bnRJZAx8IEFkZCBhIG1lbWJlciBgd2hvYCB0byB0aGUgc2V0LgC0IE1heSBvbmx5IGJlIGNhbGxlZCBmcm9tIGBBZGRPcmlnaW5gIG9yIHJvb3QuNHJlbW92ZV9tZW1iZXIEDHdobyRBY2NvdW50SWQMkCBSZW1vdmUgYSBtZW1iZXIgYHdob2AgZnJvbSB0aGUgc2V0LgDAIE1heSBvbmx5IGJlIGNhbGxlZCBmcm9tIGBSZW1vdmVPcmlnaW5gIG9yIHJvb3QuLHN3YXBfbWVtYmVyCBhyZW1vdmUkQWNjb3VudElkDGFkZCRBY2NvdW50SWQMwCBTd2FwIG91dCBvbmUgbWVtYmVyIGByZW1vdmVgIGZvciBhbm90aGVyIGBhZGRgLgC4IE1heSBvbmx5IGJlIGNhbGxlZCBmcm9tIGBTd2FwT3JpZ2luYCBvciByb290LjRyZXNldF9tZW1iZXJzBBxtZW1iZXJzOFZlYzxBY2NvdW50SWQ+EFkBIENoYW5nZSB0aGUgbWVtYmVyc2hpcCB0byBhIG5ldyBzZXQsIGRpc3JlZ2FyZGluZyB0aGUgZXhpc3RpbmcgbWVtYmVyc2hpcC4gQmUgbmljZSBhbmRsIHBhc3MgYG1lbWJlcnNgIHByZS1zb3J0ZWQuALwgTWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gYFJlc2V0T3JpZ2luYCBvciByb290LgAAIFRyZWFzdXJ5AAEMNHByb3Bvc2Vfc3BlbmQIFHZhbHVlSENvbXBhY3Q8QmFsYW5jZU9mPixiZW5lZmljaWFyeRxBZGRyZXNzJC0BIFB1dCBmb3J3YXJkIGEgc3VnZ2VzdGlvbiBmb3Igc3BlbmRpbmcuIEEgZGVwb3NpdCBwcm9wb3J0aW9uYWwgdG8gdGhlIHZhbHVlNQEgaXMgcmVzZXJ2ZWQgYW5kIHNsYXNoZWQgaWYgdGhlIHByb3Bvc2FsIGlzIHJlamVjdGVkLiBJdCBpcyByZXR1cm5lZCBvbmNlIHRoZVQgcHJvcG9zYWwgaXMgYXdhcmRlZC4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkuZCAtIExpbWl0ZWQgc3RvcmFnZSByZWFkcy6UIC0gT25lIERCIGNoYW5nZSwgb25lIGV4dHJhIERCIGVudHJ5LjAgIyA8L3dlaWdodD48cmVqZWN0X3Byb3Bvc2FsBCxwcm9wb3NhbF9pZFhDb21wYWN0PFByb3Bvc2FsSW5kZXg+HPwgUmVqZWN0IGEgcHJvcG9zZWQgc3BlbmQuIFRoZSBvcmlnaW5hbCBkZXBvc2l0IHdpbGwgYmUgc2xhc2hlZC4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkuZCAtIExpbWl0ZWQgc3RvcmFnZSByZWFkcy5AIC0gT25lIERCIGNsZWFyLjAgIyA8L3dlaWdodD5AYXBwcm92ZV9wcm9wb3NhbAQscHJvcG9zYWxfaWRYQ29tcGFjdDxQcm9wb3NhbEluZGV4PiBdASBBcHByb3ZlIGEgcHJvcG9zYWwuIEF0IGEgbGF0ZXIgdGltZSwgdGhlIHByb3Bvc2FsIHdpbGwgYmUgYWxsb2NhdGVkIHRvIHRoZSBiZW5lZmljaWFyeawgYW5kIHRoZSBvcmlnaW5hbCBkZXBvc2l0IHdpbGwgYmUgcmV0dXJuZWQuACwgIyA8d2VpZ2h0PiAgLSBPKDEpLmQgLSBMaW1pdGVkIHN0b3JhZ2UgcmVhZHMuRCAtIE9uZSBEQiBjaGFuZ2UuMCAjIDwvd2VpZ2h0PgAAGENsYWltcwABBBRjbGFpbQgQZGVzdCRBY2NvdW50SWRIZXRoZXJldW1fc2lnbmF0dXJlOEVjZHNhU2lnbmF0dXJlBDggTWFrZSBhIGNsYWltLgAAKFBhcmFjaGFpbnMAAQwkc2V0X2hlYWRzBBRoZWFkc1hWZWM8QXR0ZXN0ZWRDYW5kaWRhdGU+BBUBIFByb3ZpZGUgY2FuZGlkYXRlIHJlY2VpcHRzIGZvciBwYXJhY2hhaW5zLCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgaWQuSHJlZ2lzdGVyX3BhcmFjaGFpbgwIaWQYUGFyYUlkEGNvZGUUQnl0ZXNEaW5pdGlhbF9oZWFkX2RhdGEUQnl0ZXMImCBSZWdpc3RlciBhIHBhcmFjaGFpbiB3aXRoIGdpdmVuIGNvZGUujCBGYWlscyBpZiBnaXZlbiBJRCBpcyBhbHJlYWR5IHVzZWQuUGRlcmVnaXN0ZXJfcGFyYWNoYWluBAhpZBhQYXJhSWQElCBEZXJlZ2lzdGVyIGEgcGFyYWNoYWluIHdpdGggZ2l2ZW4gaWQAADBBdHRlc3RhdGlvbnMAAQREbW9yZV9hdHRlc3RhdGlvbnMEFF9tb3JlQE1vcmVBdHRlc3RhdGlvbnMEFQEgUHJvdmlkZSBjYW5kaWRhdGUgcmVjZWlwdHMgZm9yIHBhcmFjaGFpbnMsIGluIGFzY2VuZGluZyBvcmRlciBieSBpZC4AABRTbG90cwABGCxuZXdfYXVjdGlvbgggZHVyYXRpb25QQ29tcGFjdDxCbG9ja051bWJlcj5IbGVhc2VfcGVyaW9kX2luZGV4WENvbXBhY3Q8TGVhc2VQZXJpb2RPZj4UWCBDcmVhdGUgYSBuZXcgYXVjdGlvbi4AVQEgVGhpcyBjYW4gb25seSBoYXBwZW4gd2hlbiB0aGVyZSBpc24ndCBhbHJlYWR5IGFuIGF1Y3Rpb24gaW4gcHJvZ3Jlc3MgYW5kIG1heSBvbmx5IGJlKQEgY2FsbGVkIGJ5IHRoZSByb290IG9yaWdpbi4gQWNjZXB0cyB0aGUgYGR1cmF0aW9uYCBvZiB0aGlzIGF1Y3Rpb24gYW5kIHRoZV0BIGBsZWFzZV9wZXJpb2RfaW5kZXhgIG9mIHRoZSBpbml0aWFsIGxlYXNlIHBlcmlvZCBvZiB0aGUgZm91ciB0aGF0IGFyZSB0byBiZSBhdWN0aW9uZWQuDGJpZBQMc3ViOENvbXBhY3Q8U3ViSWQ+NGF1Y3Rpb25faW5kZXhUQ29tcGFjdDxBdWN0aW9uSW5kZXg+KGZpcnN0X3Nsb3RYQ29tcGFjdDxMZWFzZVBlcmlvZE9mPiRsYXN0X3Nsb3RYQ29tcGFjdDxMZWFzZVBlcmlvZE9mPhhhbW91bnRIQ29tcGFjdDxCYWxhbmNlT2Y+QE0BIE1ha2UgYSBuZXcgYmlkIGZyb20gYW4gYWNjb3VudCAoaW5jbHVkaW5nIGEgcGFyYWNoYWluIGFjY291bnQpIGZvciBkZXBsb3lpbmcgYSBuZXcsIHBhcmFjaGFpbi4AXQEgTXVsdGlwbGUgc2ltdWx0YW5lb3VzIGJpZHMgZnJvbSB0aGUgc2FtZSBiaWRkZXIgYXJlIGFsbG93ZWQgb25seSBhcyBsb25nIGFzIGFsbCBhY3RpdmVBASBiaWRzIG92ZXJsYXAgZWFjaCBvdGhlciAoaS5lLiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlKS4gQmlkcyBjYW5ub3QgYmUgcmVkYWN0ZWQuAFkBIC0gYHN1YmAgaXMgdGhlIHN1Yi1iaWRkZXIgSUQsIGFsbG93aW5nIGZvciBtdWx0aXBsZSBjb21wZXRpbmcgYmlkcyB0byBiZSBtYWRlIGJ5IChhbmR0IGZ1bmRlZCBieSkgdGhlIHNhbWUgYWNjb3VudC5RASAtIGBhdWN0aW9uX2luZGV4YCBpcyB0aGUgaW5kZXggb2YgdGhlIGF1Y3Rpb24gdG8gYmlkIG9uLiBTaG91bGQganVzdCBiZSB0aGUgcHJlc2VudGwgdmFsdWUgb2YgYEF1Y3Rpb25Db3VudGVyYC5NASAtIGBmaXJzdF9zbG90YCBpcyB0aGUgZmlyc3QgbGVhc2UgcGVyaW9kIGluZGV4IG9mIHRoZSByYW5nZSB0byBiaWQgb24uIFRoaXMgaXMgdGhlDQEgYWJzb2x1dGUgbGVhc2UgcGVyaW9kIGluZGV4IHZhbHVlLCBub3QgYW4gYXVjdGlvbi1zcGVjaWZpYyBvZmZzZXQuRQEgLSBgbGFzdF9zbG90YCBpcyB0aGUgbGFzdCBsZWFzZSBwZXJpb2QgaW5kZXggb2YgdGhlIHJhbmdlIHRvIGJpZCBvbi4gVGhpcyBpcyB0aGUNASBhYnNvbHV0ZSBsZWFzZSBwZXJpb2QgaW5kZXggdmFsdWUsIG5vdCBhbiBhdWN0aW9uLXNwZWNpZmljIG9mZnNldC5NASAtIGBhbW91bnRgIGlzIHRoZSBhbW91bnQgdG8gYmlkIHRvIGJlIGhlbGQgYXMgZGVwb3NpdCBmb3IgdGhlIHBhcmFjaGFpbiBzaG91bGQgdGhlzCBiaWQgd2luLiBUaGlzIGFtb3VudCBpcyBoZWxkIHRocm91Z2hvdXQgdGhlIHJhbmdlLiRiaWRfcmVuZXcQNGF1Y3Rpb25faW5kZXhUQ29tcGFjdDxBdWN0aW9uSW5kZXg+KGZpcnN0X3Nsb3RYQ29tcGFjdDxMZWFzZVBlcmlvZE9mPiRsYXN0X3Nsb3RYQ29tcGFjdDxMZWFzZVBlcmlvZE9mPhhhbW91bnRIQ29tcGFjdDxCYWxhbmNlT2Y+PFEBIE1ha2UgYSBuZXcgYmlkIGZyb20gYSBwYXJhY2hhaW4gYWNjb3VudCBmb3IgcmVuZXdpbmcgdGhhdCAocHJlLWV4aXN0aW5nKSBwYXJhY2hhaW4uAKggVGhlIG9yaWdpbiAqbXVzdCogYmUgYSBwYXJhY2hhaW4gYWNjb3VudC4AXQEgTXVsdGlwbGUgc2ltdWx0YW5lb3VzIGJpZHMgZnJvbSB0aGUgc2FtZSBiaWRkZXIgYXJlIGFsbG93ZWQgb25seSBhcyBsb25nIGFzIGFsbCBhY3RpdmVBASBiaWRzIG92ZXJsYXAgZWFjaCBvdGhlciAoaS5lLiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlKS4gQmlkcyBjYW5ub3QgYmUgcmVkYWN0ZWQuAFEBIC0gYGF1Y3Rpb25faW5kZXhgIGlzIHRoZSBpbmRleCBvZiB0aGUgYXVjdGlvbiB0byBiaWQgb24uIFNob3VsZCBqdXN0IGJlIHRoZSBwcmVzZW50bCB2YWx1ZSBvZiBgQXVjdGlvbkNvdW50ZXJgLk0BIC0gYGZpcnN0X3Nsb3RgIGlzIHRoZSBmaXJzdCBsZWFzZSBwZXJpb2QgaW5kZXggb2YgdGhlIHJhbmdlIHRvIGJpZCBvbi4gVGhpcyBpcyB0aGUNASBhYnNvbHV0ZSBsZWFzZSBwZXJpb2QgaW5kZXggdmFsdWUsIG5vdCBhbiBhdWN0aW9uLXNwZWNpZmljIG9mZnNldC5FASAtIGBsYXN0X3Nsb3RgIGlzIHRoZSBsYXN0IGxlYXNlIHBlcmlvZCBpbmRleCBvZiB0aGUgcmFuZ2UgdG8gYmlkIG9uLiBUaGlzIGlzIHRoZQ0BIGFic29sdXRlIGxlYXNlIHBlcmlvZCBpbmRleCB2YWx1ZSwgbm90IGFuIGF1Y3Rpb24tc3BlY2lmaWMgb2Zmc2V0Lk0BIC0gYGFtb3VudGAgaXMgdGhlIGFtb3VudCB0byBiaWQgdG8gYmUgaGVsZCBhcyBkZXBvc2l0IGZvciB0aGUgcGFyYWNoYWluIHNob3VsZCB0aGXMIGJpZCB3aW4uIFRoaXMgYW1vdW50IGlzIGhlbGQgdGhyb3VnaG91dCB0aGUgcmFuZ2UuPHNldF9vZmZib2FyZGluZwQQZGVzdBxBZGRyZXNzFMggU2V0IHRoZSBvZmYtYm9hcmRpbmcgaW5mb3JtYXRpb24gZm9yIGEgcGFyYWNoYWluLgCoIFRoZSBvcmlnaW4gKm11c3QqIGJlIGEgcGFyYWNoYWluIGFjY291bnQuACEBIC0gYGRlc3RgIGlzIHRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IHRvIHJlY2VpdmUgdGhlIHBhcmFjaGFpbidzIGRlcG9zaXQuPGZpeF9kZXBsb3lfZGF0YRAMc3ViOENvbXBhY3Q8U3ViSWQ+HHBhcmFfaWREQ29tcGFjdDxQYXJhSWRPZj4kY29kZV9oYXNoEEhhc2hEaW5pdGlhbF9oZWFkX2RhdGEUQnl0ZXMcLQEgU2V0IHRoZSBkZXBsb3kgaW5mb3JtYXRpb24gZm9yIGEgc3VjY2Vzc2Z1bCBiaWQgdG8gZGVwbG95IGEgbmV3IHBhcmFjaGFpbi4AyCAtIGBvcmlnaW5gIG11c3QgYmUgdGhlIHN1Y2Nlc3NmdWwgYmlkZGVyIGFjY291bnQusCAtIGBzdWJgIGlzIHRoZSBzdWItYmlkZGVyIElEIG9mIHRoZSBiaWRkZXIuAQEgLSBgcGFyYV9pZGAgaXMgdGhlIHBhcmFjaGFpbiBJRCBhbGxvdHRlZCB0byB0aGUgd2lubmluZyBiaWRkZXIuHQEgLSBgY29kZV9oYXNoYCBpcyB0aGUgaGFzaCBvZiB0aGUgcGFyYWNoYWluJ3MgV2FzbSB2YWxpZGF0aW9uIGZ1bmN0aW9uLvAgLSBgaW5pdGlhbF9oZWFkX2RhdGFgIGlzIHRoZSBwYXJhY2hhaW4ncyBpbml0aWFsIGhlYWQgZGF0YS5UZWxhYm9yYXRlX2RlcGxveV9kYXRhCBxwYXJhX2lkRENvbXBhY3Q8UGFyYUlkT2Y+EGNvZGUUQnl0ZXMwdCBOb3RlIGEgbmV3IHBhcmFjaGFpbidzIGNvZGUuAE0BIFRoaXMgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgYGZpeF9kZXBsb3lfZGF0YWAgYW5kIGBjb2RlYCBtdXN0IGJlIHRoZSBwcmVpbWFnZSBvZiB0aGXEIGBjb2RlX2hhc2hgIHBhc3NlZCB0aGVyZSBmb3IgdGhlIHNhbWUgYHBhcmFfaWRgLgBhASBUaGlzIG1heSBiZSBjYWxsZWQgYmVmb3JlIG9yIGFmdGVyIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHBhcmFjaGFpbidzIGZpcnN0IGxlYXNlIHBlcmlvZC5FASBJZiBjYWxsZWQgYmVmb3JlIHRoZW4gdGhlIHBhcmFjaGFpbiB3aWxsIGJlY29tZSBhY3RpdmUgYXQgdGhlIGZpcnN0IGJsb2NrIG9mIGl0c2UBIHN0YXJ0aW5nIGxlYXNlIHBlcmlvZC4gSWYgYWZ0ZXIsIHRoZW4gaXQgd2lsbCBiZWNvbWUgYWN0aXZlIGltbWVkaWF0ZWx5IGFmdGVyIHRoaXMgY2FsbC4AbCAtIGBfb3JpZ2luYCBpcyBpcnJlbGV2YW50LvwgLSBgcGFyYV9pZGAgaXMgdGhlIHBhcmFjaGFpbiBJRCB3aG9zZSBjb2RlIHdpbGwgYmUgZWxhYm9yYXRlZC4VASAtIGBjb2RlYCBpcyB0aGUgcHJlaW1hZ2Ugb2YgdGhlIHJlZ2lzdGVyZWQgYGNvZGVfaGFzaGAgb2YgYHBhcmFfaWRgLgAAEFN1ZG8AAQwQc3VkbwQgcHJvcG9zYWwgUHJvcG9zYWwoOQEgQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFJvb3RgIG9yaWdpbi4A0CBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkuZCAtIExpbWl0ZWQgc3RvcmFnZSByZWFkcy5gIC0gT25lIERCIHdyaXRlIChldmVudCku1CAtIFVua25vd24gd2VpZ2h0IG9mIGRlcml2YXRpdmUgYHByb3Bvc2FsYCBleGVjdXRpb24uMCAjIDwvd2VpZ2h0PhxzZXRfa2V5BAxuZXccQWRkcmVzcyR1ASBBdXRoZW50aWNhdGVzIHRoZSBjdXJyZW50IHN1ZG8ga2V5IGFuZCBzZXRzIHRoZSBnaXZlbiBBY2NvdW50SWQgKGBuZXdgKSBhcyB0aGUgbmV3IHN1ZG8ga2V5LgDQIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsICMgPHdlaWdodD4gIC0gTygxKS5kIC0gTGltaXRlZCBzdG9yYWdlIHJlYWRzLkQgLSBPbmUgREIgY2hhbmdlLjAgIyA8L3dlaWdodD4cc3Vkb19hcwgMd2hvHEFkZHJlc3MgcHJvcG9zYWwgUHJvcG9zYWwsUQEgQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFNpZ25lZGAgb3JpZ2luIGZyb21EIGEgZ2l2ZW4gYWNjb3VudC4A0CBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkuZCAtIExpbWl0ZWQgc3RvcmFnZSByZWFkcy5gIC0gT25lIERCIHdyaXRlIChldmVudCku1CAtIFVua25vd24gd2VpZ2h0IG9mIGRlcml2YXRpdmUgYHByb3Bvc2FsYCBleGVjdXRpb24uMCAjIDwvd2VpZ2h0PgAA' +}; diff --git a/packages/extension-ui/package.json b/packages/extension-ui/package.json index c7ca65b1..571e981a 100644 --- a/packages/extension-ui/package.json +++ b/packages/extension-ui/package.json @@ -6,8 +6,8 @@ "license": "Apache-2", "dependencies": { "@babel/runtime": "^7.6.2", - "@polkadot/react-identicon": "^0.45.0-beta.13", - "@polkadot/react-qr": "^0.45.0-beta.13", + "@polkadot/react-identicon": "^0.45.0-beta.14", + "@polkadot/react-qr": "^0.45.0-beta.14", "@types/react-router": "^5.1.0", "@types/react-router-dom": "^5.1.0", "react-router": "^5.1.0", diff --git a/yarn.lock b/yarn.lock index 1c50bcc3..417dd2a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2118,7 +2118,7 @@ "@polkadot/util" "^1.5.1" "@polkadot/util-crypto" "^1.5.1" -"@polkadot/react-identicon@^0.45.0-beta.13": +"@polkadot/react-identicon@^0.45.0-beta.14": version "0.45.0-beta.14" resolved "https://registry.yarnpkg.com/@polkadot/react-identicon/-/react-identicon-0.45.0-beta.14.tgz#e33cb3622c38feda200cdb773373af0561ed3859" integrity sha512-2ziJUmW/79dqlc9aVIEiF7Kp4gkZQXXxE+3lsYlcdrziguFX3km/zn8N44cLb6Br00iy6P9RjR+FYYJqNES1GQ== @@ -2133,7 +2133,7 @@ react-copy-to-clipboard "^5.0.1" styled-components "^4.4.0" -"@polkadot/react-qr@^0.45.0-beta.13": +"@polkadot/react-qr@^0.45.0-beta.14": version "0.45.0-beta.14" resolved "https://registry.yarnpkg.com/@polkadot/react-qr/-/react-qr-0.45.0-beta.14.tgz#12c876001778ebff57376b6840d150dea3c1c318" integrity sha512-IoaCx8riqwVLdsZs3ZsB97dtBdx83kwd0y5I4qdFtxWNx7mtovbY744ydDCtJSXPCLnNZ4zO98fuSM1zc8qlDQ==