diff --git a/cmd/devp2p/nodesetcmd.go b/cmd/devp2p/nodesetcmd.go index 848288c9cfa324df5ee937754a18b73d2a7433ea..3291171c26c0b916b4dbf7a8b72171e7a79b282a 100644 --- a/cmd/devp2p/nodesetcmd.go +++ b/cmd/devp2p/nodesetcmd.go @@ -235,6 +235,8 @@ func ethFilter(args []string) (nodeFilter, error) { filter = forkid.NewStaticFilter(params.GoerliChainConfig, params.GoerliGenesisHash) case "ropsten": filter = forkid.NewStaticFilter(params.RopstenChainConfig, params.RopstenGenesisHash) + case "mumbai": + filter = forkid.NewStaticFilter(params.MumbaiChainConfig, params.MumbaiGenesisHash) default: return nil, fmt.Errorf("unknown network %q", args[0]) } diff --git a/cmd/faucet/faucet.go b/cmd/faucet/faucet.go index bb5375384f89252dc21e57b8f0d5656538cd2da5..981b7b6afc5c5857657c55d636720016254ecc82 100644 --- a/cmd/faucet/faucet.go +++ b/cmd/faucet/faucet.go @@ -88,6 +88,7 @@ var ( goerliFlag = flag.Bool("goerli", false, "Initializes the faucet with Görli network config") rinkebyFlag = flag.Bool("rinkeby", false, "Initializes the faucet with Rinkeby network config") + mumbaiFlag = flag.Bool("mumbai", false, "Initializes the faucet with Mumbai network config") ) var ( @@ -147,7 +148,7 @@ func main() { log.Crit("Failed to render the faucet template", "err", err) } // Load and parse the genesis block requested by the user - genesis, err := getGenesis(genesisFlag, *goerliFlag, *rinkebyFlag) + genesis, err := getGenesis(genesisFlag, *goerliFlag, *rinkebyFlag, *mumbaiFlag) if err != nil { log.Crit("Failed to parse genesis config", "err", err) } @@ -886,7 +887,7 @@ func authNoAuth(url string) (string, string, common.Address, error) { } // getGenesis returns a genesis based on input args -func getGenesis(genesisFlag *string, goerliFlag bool, rinkebyFlag bool) (*core.Genesis, error) { +func getGenesis(genesisFlag *string, goerliFlag bool, rinkebyFlag bool, mumbaiFlag bool) (*core.Genesis, error) { switch { case genesisFlag != nil: var genesis core.Genesis @@ -896,6 +897,8 @@ func getGenesis(genesisFlag *string, goerliFlag bool, rinkebyFlag bool) (*core.G return core.DefaultGoerliGenesisBlock(), nil case rinkebyFlag: return core.DefaultRinkebyGenesisBlock(), nil + case mumbaiFlag: + return core.DefaultMumbaiGenesisBlock(), nil default: return nil, fmt.Errorf("no genesis flag provided") } diff --git a/cmd/geth/chaincmd.go b/cmd/geth/chaincmd.go index 8c460c3b5b6a53e804bba29143a0e1ae65e7a4f5..664320700115d649bf7be38cd0da99d6b31b3470 100644 --- a/cmd/geth/chaincmd.go +++ b/cmd/geth/chaincmd.go @@ -68,6 +68,7 @@ It expects the genesis file as argument.`, utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, }, Category: "BLOCKCHAIN COMMANDS", Description: ` diff --git a/cmd/geth/consolecmd.go b/cmd/geth/consolecmd.go index 0e156fde9a5096a9a2792db99064745a11f792ba..e508bc0797e8c12612084c39aa822b49816269dd 100644 --- a/cmd/geth/consolecmd.go +++ b/cmd/geth/consolecmd.go @@ -134,6 +134,8 @@ func remoteConsole(ctx *cli.Context) error { path = filepath.Join(path, "rinkeby") } else if ctx.GlobalBool(utils.GoerliFlag.Name) { path = filepath.Join(path, "goerli") + } else if ctx.GlobalBool(utils.MumbaiFlag.Name) { + path = filepath.Join(path, "mumbai") } } endpoint = fmt.Sprintf("%s/geth.ipc", path) diff --git a/cmd/geth/dbcmd.go b/cmd/geth/dbcmd.go index 54ada408902bb8c919e1e80340586df406dfbfc4..36a9b44a9d8647c0fd828447214fd262455c5c8b 100644 --- a/cmd/geth/dbcmd.go +++ b/cmd/geth/dbcmd.go @@ -75,6 +75,7 @@ Remove blockchain and state databases`, utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, }, Usage: "Inspect the storage size for each type of data in the database", Description: `This commands iterates the entire database. If the optional 'prefix' and 'start' arguments are provided, then the iteration is limited to the given subset of data.`, @@ -90,6 +91,7 @@ Remove blockchain and state databases`, utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, }, } dbCompactCmd = cli.Command{ @@ -103,6 +105,7 @@ Remove blockchain and state databases`, utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, utils.CacheFlag, utils.CacheDatabaseFlag, }, @@ -122,6 +125,7 @@ corruption if it is aborted during execution'!`, utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, }, Description: "This command looks up the specified database key from the database.", } @@ -137,6 +141,7 @@ corruption if it is aborted during execution'!`, utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, }, Description: `This command deletes the specified database key from the database. WARNING: This is a low-level operation which may cause database corruption!`, @@ -153,6 +158,7 @@ WARNING: This is a low-level operation which may cause database corruption!`, utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, }, Description: `This command sets a given database key to the given value. WARNING: This is a low-level operation which may cause database corruption!`, @@ -169,6 +175,7 @@ WARNING: This is a low-level operation which may cause database corruption!`, utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, }, Description: "This command looks up the specified database key from the database.", } @@ -184,6 +191,7 @@ WARNING: This is a low-level operation which may cause database corruption!`, utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, }, Description: "This command displays information about the freezer index.", } diff --git a/cmd/geth/main.go b/cmd/geth/main.go index 0954debff94c0301869ba5e0afa4be3a069681f3..4b0d8835e0971ba6a7fd553e5dc9aa20ff986888 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -140,6 +140,7 @@ var ( utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, utils.VMEnableDebugFlag, utils.NetworkIdFlag, utils.EthStatsURLFlag, @@ -282,6 +283,9 @@ func prepare(ctx *cli.Context) { case ctx.GlobalIsSet(utils.GoerliFlag.Name): log.Info("Starting Geth on Görli testnet...") + case ctx.GlobalIsSet(utils.MumbaiFlag.Name): + log.Info("Starting Geth on Mumbai testnet...") + case ctx.GlobalIsSet(utils.DeveloperFlag.Name): log.Info("Starting Geth in ephemeral dev mode...") @@ -291,7 +295,7 @@ func prepare(ctx *cli.Context) { // If we're a full node on mainnet without --cache specified, bump default cache allowance if ctx.GlobalString(utils.SyncModeFlag.Name) != "light" && !ctx.GlobalIsSet(utils.CacheFlag.Name) && !ctx.GlobalIsSet(utils.NetworkIdFlag.Name) { // Make sure we're not on any supported preconfigured testnet either - if !ctx.GlobalIsSet(utils.RopstenFlag.Name) && !ctx.GlobalIsSet(utils.RinkebyFlag.Name) && !ctx.GlobalIsSet(utils.GoerliFlag.Name) && !ctx.GlobalIsSet(utils.DeveloperFlag.Name) { + if !ctx.GlobalIsSet(utils.RopstenFlag.Name) && !ctx.GlobalIsSet(utils.RinkebyFlag.Name) && !ctx.GlobalIsSet(utils.GoerliFlag.Name) && !ctx.GlobalIsSet(utils.MumbaiFlag.Name) && !ctx.GlobalIsSet(utils.DeveloperFlag.Name) { // Nope, we're really on mainnet. Bump that cache up! log.Info("Bumping default cache on mainnet", "provided", ctx.GlobalInt(utils.CacheFlag.Name), "updated", 4096) ctx.GlobalSet(utils.CacheFlag.Name, strconv.Itoa(4096)) diff --git a/cmd/geth/snapshot.go b/cmd/geth/snapshot.go index 9976db49f601673689394bb3d949b8728bdcbde6..7d0f9969362341449acfd00fcd45da90a95f89e9 100644 --- a/cmd/geth/snapshot.go +++ b/cmd/geth/snapshot.go @@ -63,6 +63,7 @@ var ( utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, utils.CacheTrieJournalFlag, utils.BloomFilterSizeFlag, }, @@ -93,6 +94,7 @@ the trie clean cache with default directory will be deleted. utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, }, Description: ` geth snapshot verify-state <state-root> @@ -113,6 +115,7 @@ In other words, this command does the snapshot to trie conversion. utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, }, Description: ` geth snapshot traverse-state <state-root> @@ -135,6 +138,7 @@ It's also usable without snapshot enabled. utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, }, Description: ` geth snapshot traverse-rawstate <state-root> @@ -158,6 +162,7 @@ It's also usable without snapshot enabled. utils.RopstenFlag, utils.RinkebyFlag, utils.GoerliFlag, + utils.MumbaiFlag, utils.ExcludeCodeFlag, utils.ExcludeStorageFlag, utils.StartKeyFlag, diff --git a/cmd/geth/usage.go b/cmd/geth/usage.go index f39e4f402fcaf97cf2763595830c4fc8e931d841..52c9f609a09850af75009ae45a69a4b7fe931beb 100644 --- a/cmd/geth/usage.go +++ b/cmd/geth/usage.go @@ -43,6 +43,7 @@ var AppHelpFlagGroups = []flags.FlagGroup{ utils.NetworkIdFlag, utils.MainnetFlag, utils.GoerliFlag, + utils.MumbaiFlag, utils.RinkebyFlag, utils.RopstenFlag, utils.SyncModeFlag, diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 366be6db6560ee48b9b7ebc2cb592f475f79459a..1c19542b38167b56135dbbb0e676d6cc139677fd 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -155,6 +155,10 @@ var ( Name: "ropsten", Usage: "Ropsten network: pre-configured proof-of-work test network", } + MumbaiFlag = cli.BoolFlag{ + Name: "mumbai", + Usage: "Mumbai network: pre-configured proof-of-stake test network", + } DeveloperFlag = cli.BoolFlag{ Name: "dev", Usage: "Ephemeral proof-of-authority network with a pre-funded developer account, mining enabled", @@ -797,6 +801,9 @@ func MakeDataDir(ctx *cli.Context) string { if ctx.GlobalBool(GoerliFlag.Name) { return filepath.Join(path, "goerli") } + if ctx.GlobalBool(MumbaiFlag.Name) { + return filepath.Join(path, "mumbai") + } return path } Fatalf("Cannot determine default data directory, please set manually (--datadir)") @@ -849,6 +856,8 @@ func setBootstrapNodes(ctx *cli.Context, cfg *p2p.Config) { urls = params.RinkebyBootnodes case ctx.GlobalBool(GoerliFlag.Name): urls = params.GoerliBootnodes + case ctx.GlobalBool(MumbaiFlag.Name): + urls = params.MumbaiBootnodes case cfg.BootstrapNodes != nil: return // already set, don't apply defaults. } @@ -1292,6 +1301,8 @@ func setDataDir(ctx *cli.Context, cfg *node.Config) { cfg.DataDir = filepath.Join(node.DefaultDataDir(), "rinkeby") case ctx.GlobalBool(GoerliFlag.Name) && cfg.DataDir == node.DefaultDataDir(): cfg.DataDir = filepath.Join(node.DefaultDataDir(), "goerli") + case ctx.GlobalBool(MumbaiFlag.Name) && cfg.DataDir == node.DefaultDataDir(): + cfg.DataDir = filepath.Join(node.DefaultDataDir(), "mumbai") } } @@ -1477,7 +1488,7 @@ func CheckExclusive(ctx *cli.Context, args ...interface{}) { // SetEthConfig applies eth-related command line flags to the config. func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) { // Avoid conflicting network flags - CheckExclusive(ctx, MainnetFlag, DeveloperFlag, RopstenFlag, RinkebyFlag, GoerliFlag) + CheckExclusive(ctx, MainnetFlag, DeveloperFlag, RopstenFlag, RinkebyFlag, MumbaiFlag) CheckExclusive(ctx, LightServeFlag, SyncModeFlag, "light") CheckExclusive(ctx, DeveloperFlag, ExternalSignerFlag) // Can't use both ephemeral unlocked and external signer if ctx.GlobalString(GCModeFlag.Name) == "archive" && ctx.GlobalUint64(TxLookupLimitFlag.Name) != 0 { @@ -1503,7 +1514,7 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) { cfg.BorLogs = ctx.GlobalBool(BorLogsFlag.Name) } - // Cap the cache allowance and tune the garbage collector + // Cap the cache allowance and tune the garbage collector mem, err := gopsutil.VirtualMemory() if err == nil { if 32<<(^uintptr(0)>>63) == 32 && mem.Total > 2*1024*1024*1024 { @@ -1634,6 +1645,12 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) { } cfg.Genesis = core.DefaultGoerliGenesisBlock() SetDNSDiscoveryDefaults(cfg, params.GoerliGenesisHash) + case ctx.GlobalBool(MumbaiFlag.Name): + if !ctx.GlobalIsSet(NetworkIdFlag.Name) { + cfg.NetworkId = 80001 + } + cfg.Genesis = core.DefaultMumbaiGenesisBlock() + SetDNSDiscoveryDefaults(cfg, params.MumbaiGenesisHash) case ctx.GlobalBool(DeveloperFlag.Name): if !ctx.GlobalIsSet(NetworkIdFlag.Name) { cfg.NetworkId = 1337 @@ -1854,6 +1871,8 @@ func MakeGenesis(ctx *cli.Context) *core.Genesis { genesis = core.DefaultRinkebyGenesisBlock() case ctx.GlobalBool(GoerliFlag.Name): genesis = core.DefaultGoerliGenesisBlock() + case ctx.GlobalBool(MumbaiFlag.Name): + genesis = core.DefaultMumbaiGenesisBlock() case ctx.GlobalBool(DeveloperFlag.Name): Fatalf("Developer chains are ephemeral") } diff --git a/core/genesis.go b/core/genesis.go index c1f226c34a3901e996f1d0fe5a1613de835a6b9a..f90af0e66119b199a400488a85f6d7545d4a1dc2 100644 --- a/core/genesis.go +++ b/core/genesis.go @@ -248,6 +248,8 @@ func (g *Genesis) configOrDefault(ghash common.Hash) *params.ChainConfig { return params.RinkebyChainConfig case ghash == params.GoerliGenesisHash: return params.GoerliChainConfig + case ghash == params.MumbaiGenesisHash: + return params.MumbaiChainConfig default: return params.AllEthashProtocolChanges } @@ -397,6 +399,20 @@ func DefaultGoerliGenesisBlock() *Genesis { } } +// DefaultMumbaiGenesisBlock returns the Mumbai network genesis block. +func DefaultMumbaiGenesisBlock() *Genesis { + return &Genesis{ + Config: params.MumbaiChainConfig, + Nonce: 0, + Timestamp: 1558348305, + GasLimit: 10000000, + Difficulty: big.NewInt(1), + Mixhash: common.HexToHash("0x0000000000000000000000000000000000000000000000000000000000000000"), + Coinbase: common.HexToAddress("0x0000000000000000000000000000000000000000"), + Alloc: decodePrealloc(mumbaiAllocData), + } +} + // DeveloperGenesisBlock returns the 'geth --dev' genesis block. func DeveloperGenesisBlock(period uint64, faucet common.Address) *Genesis { // Override the default period to the user requested one @@ -429,7 +445,10 @@ func DeveloperGenesisBlock(period uint64, faucet common.Address) *Genesis { } func decodePrealloc(data string) GenesisAlloc { - var p []struct{ Addr, Balance *big.Int } + var p []struct { + Addr, Balance *big.Int + Code []byte + } if err := rlp.NewStream(strings.NewReader(data), 0).Decode(&p); err != nil { panic(err) } diff --git a/core/genesis_alloc.go b/core/genesis_alloc.go index ee542334b5c8682ede7a9ab14cc3f23b148bbf6e..293a29ad7a44f08065c0d583778be2942245e4a8 100644 --- a/core/genesis_alloc.go +++ b/core/genesis_alloc.go @@ -26,3 +26,4 @@ const ropstenAllocData = "\xf9\x03\xa4\u0080\x01\xc2\x01\x01\xc2\x02\x01\xc2\x03 const rinkebyAllocData = "\xf9\x03\xb7\u0080\x01\xc2\x01\x01\xc2\x02\x01\xc2\x03\x01\xc2\x04\x01\xc2\x05\x01\xc2\x06\x01\xc2\a\x01\xc2\b\x01\xc2\t\x01\xc2\n\x01\xc2\v\x01\xc2\f\x01\xc2\r\x01\xc2\x0e\x01\xc2\x0f\x01\xc2\x10\x01\xc2\x11\x01\xc2\x12\x01\xc2\x13\x01\xc2\x14\x01\xc2\x15\x01\xc2\x16\x01\xc2\x17\x01\xc2\x18\x01\xc2\x19\x01\xc2\x1a\x01\xc2\x1b\x01\xc2\x1c\x01\xc2\x1d\x01\xc2\x1e\x01\xc2\x1f\x01\xc2 \x01\xc2!\x01\xc2\"\x01\xc2#\x01\xc2$\x01\xc2%\x01\xc2&\x01\xc2'\x01\xc2(\x01\xc2)\x01\xc2*\x01\xc2+\x01\xc2,\x01\xc2-\x01\xc2.\x01\xc2/\x01\xc20\x01\xc21\x01\xc22\x01\xc23\x01\xc24\x01\xc25\x01\xc26\x01\xc27\x01\xc28\x01\xc29\x01\xc2:\x01\xc2;\x01\xc2<\x01\xc2=\x01\xc2>\x01\xc2?\x01\xc2@\x01\xc2A\x01\xc2B\x01\xc2C\x01\xc2D\x01\xc2E\x01\xc2F\x01\xc2G\x01\xc2H\x01\xc2I\x01\xc2J\x01\xc2K\x01\xc2L\x01\xc2M\x01\xc2N\x01\xc2O\x01\xc2P\x01\xc2Q\x01\xc2R\x01\xc2S\x01\xc2T\x01\xc2U\x01\xc2V\x01\xc2W\x01\xc2X\x01\xc2Y\x01\xc2Z\x01\xc2[\x01\xc2\\\x01\xc2]\x01\xc2^\x01\xc2_\x01\xc2`\x01\xc2a\x01\xc2b\x01\xc2c\x01\xc2d\x01\xc2e\x01\xc2f\x01\xc2g\x01\xc2h\x01\xc2i\x01\xc2j\x01\xc2k\x01\xc2l\x01\xc2m\x01\xc2n\x01\xc2o\x01\xc2p\x01\xc2q\x01\xc2r\x01\xc2s\x01\xc2t\x01\xc2u\x01\xc2v\x01\xc2w\x01\xc2x\x01\xc2y\x01\xc2z\x01\xc2{\x01\xc2|\x01\xc2}\x01\xc2~\x01\xc2\u007f\x01\u00c1\x80\x01\u00c1\x81\x01\u00c1\x82\x01\u00c1\x83\x01\u00c1\x84\x01\u00c1\x85\x01\u00c1\x86\x01\u00c1\x87\x01\u00c1\x88\x01\u00c1\x89\x01\u00c1\x8a\x01\u00c1\x8b\x01\u00c1\x8c\x01\u00c1\x8d\x01\u00c1\x8e\x01\u00c1\x8f\x01\u00c1\x90\x01\u00c1\x91\x01\u00c1\x92\x01\u00c1\x93\x01\u00c1\x94\x01\u00c1\x95\x01\u00c1\x96\x01\u00c1\x97\x01\u00c1\x98\x01\u00c1\x99\x01\u00c1\x9a\x01\u00c1\x9b\x01\u00c1\x9c\x01\u00c1\x9d\x01\u00c1\x9e\x01\u00c1\x9f\x01\u00c1\xa0\x01\u00c1\xa1\x01\u00c1\xa2\x01\u00c1\xa3\x01\u00c1\xa4\x01\u00c1\xa5\x01\u00c1\xa6\x01\u00c1\xa7\x01\u00c1\xa8\x01\u00c1\xa9\x01\u00c1\xaa\x01\u00c1\xab\x01\u00c1\xac\x01\u00c1\xad\x01\u00c1\xae\x01\u00c1\xaf\x01\u00c1\xb0\x01\u00c1\xb1\x01\u00c1\xb2\x01\u00c1\xb3\x01\u00c1\xb4\x01\u00c1\xb5\x01\u00c1\xb6\x01\u00c1\xb7\x01\u00c1\xb8\x01\u00c1\xb9\x01\u00c1\xba\x01\u00c1\xbb\x01\u00c1\xbc\x01\u00c1\xbd\x01\u00c1\xbe\x01\u00c1\xbf\x01\u00c1\xc0\x01\u00c1\xc1\x01\u00c1\xc2\x01\u00c1\xc3\x01\u00c1\xc4\x01\u00c1\xc5\x01\u00c1\xc6\x01\u00c1\xc7\x01\u00c1\xc8\x01\u00c1\xc9\x01\u00c1\xca\x01\u00c1\xcb\x01\u00c1\xcc\x01\u00c1\xcd\x01\u00c1\xce\x01\u00c1\xcf\x01\u00c1\xd0\x01\u00c1\xd1\x01\u00c1\xd2\x01\u00c1\xd3\x01\u00c1\xd4\x01\u00c1\xd5\x01\u00c1\xd6\x01\u00c1\xd7\x01\u00c1\xd8\x01\u00c1\xd9\x01\u00c1\xda\x01\u00c1\xdb\x01\u00c1\xdc\x01\u00c1\xdd\x01\u00c1\xde\x01\u00c1\xdf\x01\u00c1\xe0\x01\u00c1\xe1\x01\u00c1\xe2\x01\u00c1\xe3\x01\u00c1\xe4\x01\u00c1\xe5\x01\u00c1\xe6\x01\u00c1\xe7\x01\u00c1\xe8\x01\u00c1\xe9\x01\u00c1\xea\x01\u00c1\xeb\x01\u00c1\xec\x01\u00c1\xed\x01\u00c1\xee\x01\u00c1\xef\x01\u00c1\xf0\x01\u00c1\xf1\x01\u00c1\xf2\x01\u00c1\xf3\x01\u00c1\xf4\x01\u00c1\xf5\x01\u00c1\xf6\x01\u00c1\xf7\x01\u00c1\xf8\x01\u00c1\xf9\x01\u00c1\xfa\x01\u00c1\xfb\x01\u00c1\xfc\x01\u00c1\xfd\x01\u00c1\xfe\x01\u00c1\xff\x01\xf6\x941\xb9\x8d\x14\x00{\xde\xe67)\x80\x86\x98\x8a\v\xbd1\x18E#\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" const goerliAllocData = "\xf9\x04\x06\u0080\x01\xc2\x01\x01\xc2\x02\x01\xc2\x03\x01\xc2\x04\x01\xc2\x05\x01\xc2\x06\x01\xc2\a\x01\xc2\b\x01\xc2\t\x01\xc2\n\x01\xc2\v\x01\xc2\f\x01\xc2\r\x01\xc2\x0e\x01\xc2\x0f\x01\xc2\x10\x01\xc2\x11\x01\xc2\x12\x01\xc2\x13\x01\xc2\x14\x01\xc2\x15\x01\xc2\x16\x01\xc2\x17\x01\xc2\x18\x01\xc2\x19\x01\xc2\x1a\x01\xc2\x1b\x01\xc2\x1c\x01\xc2\x1d\x01\xc2\x1e\x01\xc2\x1f\x01\xc2 \x01\xc2!\x01\xc2\"\x01\xc2#\x01\xc2$\x01\xc2%\x01\xc2&\x01\xc2'\x01\xc2(\x01\xc2)\x01\xc2*\x01\xc2+\x01\xc2,\x01\xc2-\x01\xc2.\x01\xc2/\x01\xc20\x01\xc21\x01\xc22\x01\xc23\x01\xc24\x01\xc25\x01\xc26\x01\xc27\x01\xc28\x01\xc29\x01\xc2:\x01\xc2;\x01\xc2<\x01\xc2=\x01\xc2>\x01\xc2?\x01\xc2@\x01\xc2A\x01\xc2B\x01\xc2C\x01\xc2D\x01\xc2E\x01\xc2F\x01\xc2G\x01\xc2H\x01\xc2I\x01\xc2J\x01\xc2K\x01\xc2L\x01\xc2M\x01\xc2N\x01\xc2O\x01\xc2P\x01\xc2Q\x01\xc2R\x01\xc2S\x01\xc2T\x01\xc2U\x01\xc2V\x01\xc2W\x01\xc2X\x01\xc2Y\x01\xc2Z\x01\xc2[\x01\xc2\\\x01\xc2]\x01\xc2^\x01\xc2_\x01\xc2`\x01\xc2a\x01\xc2b\x01\xc2c\x01\xc2d\x01\xc2e\x01\xc2f\x01\xc2g\x01\xc2h\x01\xc2i\x01\xc2j\x01\xc2k\x01\xc2l\x01\xc2m\x01\xc2n\x01\xc2o\x01\xc2p\x01\xc2q\x01\xc2r\x01\xc2s\x01\xc2t\x01\xc2u\x01\xc2v\x01\xc2w\x01\xc2x\x01\xc2y\x01\xc2z\x01\xc2{\x01\xc2|\x01\xc2}\x01\xc2~\x01\xc2\u007f\x01\u00c1\x80\x01\u00c1\x81\x01\u00c1\x82\x01\u00c1\x83\x01\u00c1\x84\x01\u00c1\x85\x01\u00c1\x86\x01\u00c1\x87\x01\u00c1\x88\x01\u00c1\x89\x01\u00c1\x8a\x01\u00c1\x8b\x01\u00c1\x8c\x01\u00c1\x8d\x01\u00c1\x8e\x01\u00c1\x8f\x01\u00c1\x90\x01\u00c1\x91\x01\u00c1\x92\x01\u00c1\x93\x01\u00c1\x94\x01\u00c1\x95\x01\u00c1\x96\x01\u00c1\x97\x01\u00c1\x98\x01\u00c1\x99\x01\u00c1\x9a\x01\u00c1\x9b\x01\u00c1\x9c\x01\u00c1\x9d\x01\u00c1\x9e\x01\u00c1\x9f\x01\u00c1\xa0\x01\u00c1\xa1\x01\u00c1\xa2\x01\u00c1\xa3\x01\u00c1\xa4\x01\u00c1\xa5\x01\u00c1\xa6\x01\u00c1\xa7\x01\u00c1\xa8\x01\u00c1\xa9\x01\u00c1\xaa\x01\u00c1\xab\x01\u00c1\xac\x01\u00c1\xad\x01\u00c1\xae\x01\u00c1\xaf\x01\u00c1\xb0\x01\u00c1\xb1\x01\u00c1\xb2\x01\u00c1\xb3\x01\u00c1\xb4\x01\u00c1\xb5\x01\u00c1\xb6\x01\u00c1\xb7\x01\u00c1\xb8\x01\u00c1\xb9\x01\u00c1\xba\x01\u00c1\xbb\x01\u00c1\xbc\x01\u00c1\xbd\x01\u00c1\xbe\x01\u00c1\xbf\x01\u00c1\xc0\x01\u00c1\xc1\x01\u00c1\xc2\x01\u00c1\xc3\x01\u00c1\xc4\x01\u00c1\xc5\x01\u00c1\xc6\x01\u00c1\xc7\x01\u00c1\xc8\x01\u00c1\xc9\x01\u00c1\xca\x01\u00c1\xcb\x01\u00c1\xcc\x01\u00c1\xcd\x01\u00c1\xce\x01\u00c1\xcf\x01\u00c1\xd0\x01\u00c1\xd1\x01\u00c1\xd2\x01\u00c1\xd3\x01\u00c1\xd4\x01\u00c1\xd5\x01\u00c1\xd6\x01\u00c1\xd7\x01\u00c1\xd8\x01\u00c1\xd9\x01\u00c1\xda\x01\u00c1\xdb\x01\u00c1\xdc\x01\u00c1\xdd\x01\u00c1\xde\x01\u00c1\xdf\x01\u00c1\xe0\x01\u00c1\xe1\x01\u00c1\xe2\x01\u00c1\xe3\x01\u00c1\xe4\x01\u00c1\xe5\x01\u00c1\xe6\x01\u00c1\xe7\x01\u00c1\xe8\x01\u00c1\xe9\x01\u00c1\xea\x01\u00c1\xeb\x01\u00c1\xec\x01\u00c1\xed\x01\u00c1\xee\x01\u00c1\xef\x01\u00c1\xf0\x01\u00c1\xf1\x01\u00c1\xf2\x01\u00c1\xf3\x01\u00c1\xf4\x01\u00c1\xf5\x01\u00c1\xf6\x01\u00c1\xf7\x01\u00c1\xf8\x01\u00c1\xf9\x01\u00c1\xfa\x01\u00c1\xfb\x01\u00c1\xfc\x01\u00c1\xfd\x01\u00c1\xfe\x01\u00c1\xff\x01\xe0\x94L*\xe4\x82Y5\x05\xf0\x16<\xde\xfc\a>\x81\xc6<\xdaA\a\x8a\x15-\x02\xc7\xe1J\xf6\x80\x00\x00\xe0\x94\xa8\xe8\xf1G2e\x8eKQ\xe8q\x191\x05:\x8ai\xba\xf2\xb1\x8a\x15-\x02\xc7\xe1J\xf6\x80\x00\x00\xe1\x94\u0665\x17\x9f\t\x1d\x85\x05\x1d<\x98'\x85\xef\xd1E\\\uc199\x8b\bE\x95\x16\x14\x01HJ\x00\x00\x00\xe1\x94\u08bdBX\xd2v\x887\xba\xa2j(\xfeq\xdc\a\x9f\x84\u01cbJG\xe3\xc1$H\xf4\xad\x00\x00\x00" const calaverasAllocData = "\xf9\x06\x14\u0080\x01\xc2\x01\x01\xc2\x02\x01\xc2\x03\x01\xc2\x04\x01\xc2\x05\x01\xc2\x06\x01\xc2\a\x01\xc2\b\x01\xc2\t\x01\xc2\n\x01\xc2\v\x01\xc2\f\x01\xc2\r\x01\xc2\x0e\x01\xc2\x0f\x01\xc2\x10\x01\xc2\x11\x01\xc2\x12\x01\xc2\x13\x01\xc2\x14\x01\xc2\x15\x01\xc2\x16\x01\xc2\x17\x01\xc2\x18\x01\xc2\x19\x01\xc2\x1a\x01\xc2\x1b\x01\xc2\x1c\x01\xc2\x1d\x01\xc2\x1e\x01\xc2\x1f\x01\xc2 \x01\xc2!\x01\xc2\"\x01\xc2#\x01\xc2$\x01\xc2%\x01\xc2&\x01\xc2'\x01\xc2(\x01\xc2)\x01\xc2*\x01\xc2+\x01\xc2,\x01\xc2-\x01\xc2.\x01\xc2/\x01\xc20\x01\xc21\x01\xc22\x01\xc23\x01\xc24\x01\xc25\x01\xc26\x01\xc27\x01\xc28\x01\xc29\x01\xc2:\x01\xc2;\x01\xc2<\x01\xc2=\x01\xc2>\x01\xc2?\x01\xc2@\x01\xc2A\x01\xc2B\x01\xc2C\x01\xc2D\x01\xc2E\x01\xc2F\x01\xc2G\x01\xc2H\x01\xc2I\x01\xc2J\x01\xc2K\x01\xc2L\x01\xc2M\x01\xc2N\x01\xc2O\x01\xc2P\x01\xc2Q\x01\xc2R\x01\xc2S\x01\xc2T\x01\xc2U\x01\xc2V\x01\xc2W\x01\xc2X\x01\xc2Y\x01\xc2Z\x01\xc2[\x01\xc2\\\x01\xc2]\x01\xc2^\x01\xc2_\x01\xc2`\x01\xc2a\x01\xc2b\x01\xc2c\x01\xc2d\x01\xc2e\x01\xc2f\x01\xc2g\x01\xc2h\x01\xc2i\x01\xc2j\x01\xc2k\x01\xc2l\x01\xc2m\x01\xc2n\x01\xc2o\x01\xc2p\x01\xc2q\x01\xc2r\x01\xc2s\x01\xc2t\x01\xc2u\x01\xc2v\x01\xc2w\x01\xc2x\x01\xc2y\x01\xc2z\x01\xc2{\x01\xc2|\x01\xc2}\x01\xc2~\x01\xc2\u007f\x01\u00c1\x80\x01\u00c1\x81\x01\u00c1\x82\x01\u00c1\x83\x01\u00c1\x84\x01\u00c1\x85\x01\u00c1\x86\x01\u00c1\x87\x01\u00c1\x88\x01\u00c1\x89\x01\u00c1\x8a\x01\u00c1\x8b\x01\u00c1\x8c\x01\u00c1\x8d\x01\u00c1\x8e\x01\u00c1\x8f\x01\u00c1\x90\x01\u00c1\x91\x01\u00c1\x92\x01\u00c1\x93\x01\u00c1\x94\x01\u00c1\x95\x01\u00c1\x96\x01\u00c1\x97\x01\u00c1\x98\x01\u00c1\x99\x01\u00c1\x9a\x01\u00c1\x9b\x01\u00c1\x9c\x01\u00c1\x9d\x01\u00c1\x9e\x01\u00c1\x9f\x01\u00c1\xa0\x01\u00c1\xa1\x01\u00c1\xa2\x01\u00c1\xa3\x01\u00c1\xa4\x01\u00c1\xa5\x01\u00c1\xa6\x01\u00c1\xa7\x01\u00c1\xa8\x01\u00c1\xa9\x01\u00c1\xaa\x01\u00c1\xab\x01\u00c1\xac\x01\u00c1\xad\x01\u00c1\xae\x01\u00c1\xaf\x01\u00c1\xb0\x01\u00c1\xb1\x01\u00c1\xb2\x01\u00c1\xb3\x01\u00c1\xb4\x01\u00c1\xb5\x01\u00c1\xb6\x01\u00c1\xb7\x01\u00c1\xb8\x01\u00c1\xb9\x01\u00c1\xba\x01\u00c1\xbb\x01\u00c1\xbc\x01\u00c1\xbd\x01\u00c1\xbe\x01\u00c1\xbf\x01\u00c1\xc0\x01\u00c1\xc1\x01\u00c1\xc2\x01\u00c1\xc3\x01\u00c1\xc4\x01\u00c1\xc5\x01\u00c1\xc6\x01\u00c1\xc7\x01\u00c1\xc8\x01\u00c1\xc9\x01\u00c1\xca\x01\u00c1\xcb\x01\u00c1\xcc\x01\u00c1\xcd\x01\u00c1\xce\x01\u00c1\xcf\x01\u00c1\xd0\x01\u00c1\xd1\x01\u00c1\xd2\x01\u00c1\xd3\x01\u00c1\xd4\x01\u00c1\xd5\x01\u00c1\xd6\x01\u00c1\xd7\x01\u00c1\xd8\x01\u00c1\xd9\x01\u00c1\xda\x01\u00c1\xdb\x01\u00c1\xdc\x01\u00c1\xdd\x01\u00c1\xde\x01\u00c1\xdf\x01\u00c1\xe0\x01\u00c1\xe1\x01\u00c1\xe2\x01\u00c1\xe3\x01\u00c1\xe4\x01\u00c1\xe5\x01\u00c1\xe6\x01\u00c1\xe7\x01\u00c1\xe8\x01\u00c1\xe9\x01\u00c1\xea\x01\u00c1\xeb\x01\u00c1\xec\x01\u00c1\xed\x01\u00c1\xee\x01\u00c1\xef\x01\u00c1\xf0\x01\u00c1\xf1\x01\u00c1\xf2\x01\u00c1\xf3\x01\u00c1\xf4\x01\u00c1\xf5\x01\u00c1\xf6\x01\u00c1\xf7\x01\u00c1\xf8\x01\u00c1\xf9\x01\u00c1\xfa\x01\u00c1\xfb\x01\u00c1\xfc\x01\u00c1\xfd\x01\u00c1\xfe\x01\u00c1\xff\x01\xf6\x94\x0e\x89\xe2\xae\xdb\x1c\xfc\u06d4$\xd4\x1a\x1f!\x8fA2s\x81r\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x94\x10A\xaf\xbc\xb3Y\u0568\xdcX\xc1[/\xf5\x13T\xff\x8a!}\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x94#o\xf1\xe9t\x19\xae\x93\xad\x80\xca\xfb\xaa!\"\f]x\xfb}\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x94`\xad\xc0\xf8\x9aA\xaf#|\xe75T\xed\xe1p\xd73\xec\x14\xe0\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x94y\x9d2\x9e_X4\x19\x16|\xd7\"\x96$\x85\x92n3\x8fJ\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x94|\xf5\xb7\x9b\xfe)\x1ag\xab\x02\xb3\x93\xe4V\xcc\xc4\xc2f\xf7S\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x94\x8a\x8e\xaf\xb1\xcfb\xbf\xbe\xb1t\x17i\xda\xe1\xa9\xddG\x99a\x92\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x94\x8b\xa1\xf1\tU\x1b\xd42\x800\x12dZ\xc16\xdd\xd6M\xbar\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x94\xb0*.\xda\x1b1\u007f\xbd\x16v\x01(\x83k\n\u015bV\x0e\x9d\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x94\xba\xdc\r\xe9\xe0yK\x04\x9b^\xa6<>\x1ei\x8a4v\xc1r\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x94\xf00\v\ue24a\xe2r\xeb4~\x83i\xac\fv\xdfB\xc9?\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x94\xfe;U~\x8f\xb6+\x89\xf4\x91kr\x1b\xe5\\\ub08d\xbds\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" +const mumbaiAllocData = "\xf9`\xfd\xf97\"\x82\x10\x00\x80\xb97\x1b`\x80`@R4\x80\x15a\x00\x10W`\x00\x80\xfd[P`\x046\x10a\x01\xf0W`\x005`\xe0\x1c\x80c`\xc8aM\x11a\x01\x0fW\x80c\xaf&\xaa\x96\x11a\x00\xa2W\x80c\u0578D\xeb\x11a\x00qW\x80c\u0578D\xeb\x14a\x06fW\x80c\xdc\xf2y:\x14a\x06\x84W\x80c\xe3\xb7\xc9$\x14a\x06\xb6W\x80c\xf5\x9c\xf5e\x14a\x06\xd4Wa\x01\xf0V[\x80c\xaf&\xaa\x96\x14a\x05\xc7W\x80c\xb7\x1dzi\x14a\x05\xe7W\x80c\xb7\xabM\xb5\x14a\x06\x17W\x80c\xc1\xb3\xc9\x19\x14a\x066Wa\x01\xf0V[\x80cp\xbaW\a\x11a\x00\xdeW\x80cp\xbaW\a\x14a\x05+W\x80c\x98\xab+b\x14a\x05[W\x80c\x9d\x11\xb8\a\x14a\x05yW\x80c\xaeudQ\x14a\x05\xa9Wa\x01\xf0V[\x80c`\xc8aM\x14a\x04\x9cW\x80ce\xb3\xa1\xe2\x14a\x04\xbcW\x80cf3#T\x14a\x04\xdbW\x80chz\x9b\xd6\x14a\x04\xf9Wa\x01\xf0V[\x80c44s_\x11a\x01\x87W\x80cD\xd6R\x8f\x11a\x01VW\x80cD\xd6R\x8f\x14a\x03\xeeW\x80cM\xbc\x95\x9f\x14a\x04\x1eW\x80cUaO\xcc\x14a\x04<W\x80cX*\x8d\b\x14a\x04lWa\x01\xf0V[\x80c44s_\x14a\x03RW\x80c5\xdd\xfe\xea\x14a\x03pW\x80cC\xee\x82\x13\x14a\x03\xa0W\x80cD\xc1\\\xb1\x14a\x03\xbeWa\x01\xf0V[\x80c#\xf2\xa7?\x11a\x01\xc3W\x80c#\xf2\xa7?\x14a\x02\xa4W\x80c+\xc0ed\x14a\x02\xd4W\x80c-\u3840\x14a\x02\xf2W\x80c.\xdd\xf3R\x14a\x03\"Wa\x01\xf0V[\x80c\x04zl[\x14a\x01\xf5W\x80c\f5\xb1\xcb\x14a\x02'W\x80c\x12p\xb5t\x14a\x02XW\x80c#\u00a2\xb4\x14a\x02\x88W[`\x00\x80\xfd[a\x02\x0f`\x04\x806\x03a\x02\n\x91\x90\x81\x01\x90a+$V[a\a\x06V[`@Qa\x02\x1e\x93\x92\x91\x90a4cV[`@Q\x80\x91\x03\x90\xf3[a\x02A`\x04\x806\x03a\x02<\x91\x90\x81\x01\x90a+$V[a\a]V[`@Qa\x02O\x92\x91\x90a2\x84V[`@Q\x80\x91\x03\x90\xf3[a\x02r`\x04\x806\x03a\x02m\x91\x90\x81\x01\x90a+MV[a\t9V[`@Qa\x02\u007f\x91\x90a2\xbbV[`@Q\x80\x91\x03\x90\xf3[a\x02\xa2`\x04\x806\x03a\x02\x9d\x91\x90\x81\x01\x90a,,V[a\n\x91V[\x00[a\x02\xbe`\x04\x806\x03a\x02\xb9\x91\x90\x81\x01\x90a+MV[a\x11*V[`@Qa\x02\u02d1\x90a2\xbbV[`@Q\x80\x91\x03\x90\xf3[a\x02\xdca\x12\x81V[`@Qa\x02\u9450a4\x11V[`@Q\x80\x91\x03\x90\xf3[a\x03\f`\x04\x806\x03a\x03\a\x91\x90\x81\x01\x90a*\x81V[a\x12\x86V[`@Qa\x03\x19\x91\x90a2\xd6V[`@Q\x80\x91\x03\x90\xf3[a\x03<`\x04\x806\x03a\x037\x91\x90\x81\x01\x90a+$V[a\x13\aV[`@Qa\x03I\x91\x90a4\x11V[`@Q\x80\x91\x03\x90\xf3[a\x03Za\x147V[`@Qa\x03g\x91\x90a2iV[`@Q\x80\x91\x03\x90\xf3[a\x03\x8a`\x04\x806\x03a\x03\x85\x91\x90\x81\x01\x90a*\xbdV[a\x14OV[`@Qa\x03\x97\x91\x90a2\xbbV[`@Q\x80\x91\x03\x90\xf3[a\x03\xa8a\x15\x1aV[`@Qa\x03\xb5\x91\x90a2\xd6V[`@Q\x80\x91\x03\x90\xf3[a\x03\xd8`\x04\x806\x03a\x03\u04d1\x90\x81\x01\x90a+\x89V[a\x151V[`@Qa\x03\u5450a4\x11V[`@Q\x80\x91\x03\x90\xf3[a\x04\b`\x04\x806\x03a\x04\x03\x91\x90\x81\x01\x90a+MV[a\x16\x19V[`@Qa\x04\x15\x91\x90a3\xf6V[`@Q\x80\x91\x03\x90\xf3[a\x04&a\x17\x81V[`@Qa\x043\x91\x90a4\x11V[`@Q\x80\x91\x03\x90\xf3[a\x04V`\x04\x806\x03a\x04Q\x91\x90\x81\x01\x90a*\x06V[a\x17\x91V[`@Qa\x04c\x91\x90a2\xbbV[`@Q\x80\x91\x03\x90\xf3[a\x04\x86`\x04\x806\x03a\x04\x81\x91\x90\x81\x01\x90a*/V[a\x17\xabV[`@Qa\x04\x93\x91\x90a2\xd6V[`@Q\x80\x91\x03\x90\xf3[a\x04\xa4a\x18)V[`@Qa\x04\xb3\x93\x92\x91\x90a4cV[`@Q\x80\x91\x03\x90\xf3[a\x04\xc4a\x18\x9dV[`@Qa\x04\u0492\x91\x90a2\x84V[`@Q\x80\x91\x03\x90\xf3[a\x04\xe3a\x1bnV[`@Qa\x04\xf0\x91\x90a4\x11V[`@Q\x80\x91\x03\x90\xf3[a\x05\x13`\x04\x806\x03a\x05\x0e\x91\x90\x81\x01\x90a+\xf0V[a\x1bsV[`@Qa\x05\"\x93\x92\x91\x90a4,V[`@Q\x80\x91\x03\x90\xf3[a\x05E`\x04\x806\x03a\x05@\x91\x90\x81\x01\x90a*\x06V[a\x1b\xd7V[`@Qa\x05R\x91\x90a2\xbbV[`@Q\x80\x91\x03\x90\xf3[a\x05ca\x1b\xf1V[`@Qa\x05p\x91\x90a2\xd6V[`@Q\x80\x91\x03\x90\xf3[a\x05\x93`\x04\x806\x03a\x05\x8e\x91\x90\x81\x01\x90a+$V[a\x1c\bV[`@Qa\x05\xa0\x91\x90a4\x11V[`@Q\x80\x91\x03\x90\xf3[a\x05\xb1a\x1d9V[`@Qa\x05\xbe\x91\x90a2\xd6V[`@Q\x80\x91\x03\x90\xf3[a\x05\xcfa\x1dPV[`@Qa\x05\u0793\x92\x91\x90a4cV[`@Q\x80\x91\x03\x90\xf3[a\x06\x01`\x04\x806\x03a\x05\xfc\x91\x90\x81\x01\x90a+$V[a\x1d\xb1V[`@Qa\x06\x0e\x91\x90a4\x11V[`@Q\x80\x91\x03\x90\xf3[a\x06\x1fa\x1e\xb1V[`@Qa\x06-\x92\x91\x90a2\x84V[`@Q\x80\x91\x03\x90\xf3[a\x06P`\x04\x806\x03a\x06K\x91\x90\x81\x01\x90a+$V[a\x1e\xc5V[`@Qa\x06]\x91\x90a4\x11V[`@Q\x80\x91\x03\x90\xf3[a\x06na\x1e\xe6V[`@Qa\x06{\x91\x90a4\x9aV[`@Q\x80\x91\x03\x90\xf3[a\x06\x9e`\x04\x806\x03a\x06\x99\x91\x90\x81\x01\x90a+\xf0V[a\x1e\xebV[`@Qa\x06\xad\x93\x92\x91\x90a4,V[`@Q\x80\x91\x03\x90\xf3[a\x06\xbea\x1fOV[`@Qa\x06\u02d1\x90a4\x11V[`@Q\x80\x91\x03\x90\xf3[a\x06\xee`\x04\x806\x03a\x06\u9450\x81\x01\x90a+$V[a\x1faV[`@Qa\x06\xfd\x93\x92\x91\x90a4cV[`@Q\x80\x91\x03\x90\xf3[`\x00\x80`\x00`\x02`\x00\x85\x81R` \x01\x90\x81R` \x01`\x00 `\x00\x01T`\x02`\x00\x86\x81R` \x01\x90\x81R` \x01`\x00 `\x01\x01T`\x02`\x00\x87\x81R` \x01\x90\x81R` \x01`\x00 `\x02\x01T\x92P\x92P\x92P\x91\x93\x90\x92PV[``\x80`\xff\x83\x11a\ayWa\apa\x18\x9dV[\x91P\x91Pa\t4V[`\x00a\a\x84\x84a\x1d\xb1V[\x90P```\x01`\x00\x83\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x90P`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\a\xcdW\x81` \x01` \x82\x02\x808\x839\x80\x82\x01\x91PP\x90P[P\x90P```\x01`\x00\x84\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x90P`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\b\x17W\x81` \x01` \x82\x02\x808\x839\x80\x82\x01\x91PP\x90P[P\x90P`\x00\x80\x90P[`\x01`\x00\x85\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x90P\x81\x10\x15a\t)W`\x01`\x00\x85\x81R` \x01\x90\x81R` \x01`\x00 \x81\x81T\x81\x10a\b\\W\xfe[\x90`\x00R` `\x00 \x90`\x03\x02\x01`\x02\x01`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x83\x82\x81Q\x81\x10a\b\x9aW\xfe[` \x02` \x01\x01\x90s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RPP`\x01`\x00\x85\x81R` \x01\x90\x81R` \x01`\x00 \x81\x81T\x81\x10a\b\xf2W\xfe[\x90`\x00R` `\x00 \x90`\x03\x02\x01`\x01\x01T\x82\x82\x81Q\x81\x10a\t\x10W\xfe[` \x02` \x01\x01\x81\x81RPP\x80\x80`\x01\x01\x91PPa\b V[P\x81\x81\x94P\x94PPPP[\x91P\x91V[`\x00```\x01`\x00\x85\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01`\x00\x90[\x82\x82\x10\x15a\n\fW\x83\x82\x90`\x00R` `\x00 \x90`\x03\x02\x01`@Q\x80``\x01`@R\x90\x81`\x00\x82\x01T\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RPP\x81R` \x01\x90`\x01\x01\x90a\tpV[PPPP\x90P`\x00\x80\x90P[\x81Q\x81\x10\x15a\n\x84W\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x82\x82\x81Q\x81\x10a\nDW\xfe[` \x02` \x01\x01Q`@\x01Qs\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x14\x15a\nwW`\x01\x92PPPa\n\x8bV[\x80\x80`\x01\x01\x91PPa\n\x18V[P`\x00\x91PP[\x92\x91PPV[s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfes\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x163s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x14a\v\x13W`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01a\v\n\x90a3\xd6V[`@Q\x80\x91\x03\x90\xfd[`\x00a\v\x1da\x17\x81V[\x90P`\x00\x81\x14\x15a\v1Wa\v0a\x1f\x8bV[[a\vE`\x01\x82a\"\xac\x90\x91\x90c\xff\xff\xff\xff\x16V[\x88\x14a\v\x86W`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01a\v}\x90a3VV[`@Q\x80\x91\x03\x90\xfd[\x86\x86\x11a\v\xc8W`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01a\v\xbf\x90a3\xb6V[`@Q\x80\x91\x03\x90\xfd[`\x00`@`\x01\x89\x89\x03\x01\x81a\v\xd9W\xfe[\x06\x14a\f\x1aW`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01a\f\x11\x90a3\x96V[`@Q\x80\x91\x03\x90\xfd[\x86`\x02`\x00\x83\x81R` \x01\x90\x81R` \x01`\x00 `\x01\x01T\x11\x15a\fsW`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01a\fj\x90a36V[`@Q\x80\x91\x03\x90\xfd[`\x00`\x02`\x00\x8a\x81R` \x01\x90\x81R` \x01`\x00 `\x00\x01T\x14a\f\xccW`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01a\f\u00d0a3vV[`@Q\x80\x91\x03\x90\xfd[`@Q\x80``\x01`@R\x80\x89\x81R` \x01\x88\x81R` \x01\x87\x81RP`\x02`\x00\x8a\x81R` \x01\x90\x81R` \x01`\x00 `\x00\x82\x01Q\x81`\x00\x01U` \x82\x01Q\x81`\x01\x01U`@\x82\x01Q\x81`\x02\x01U\x90PP`\x03\x88\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP\x90`\x01\x82\x03\x90`\x00R` `\x00 \x01`\x00\x90\x91\x92\x90\x91\x90\x91PUP`\x00\x80`\x00\x8a\x81R` \x01\x90\x81R` \x01`\x00 \x81a\rf\x91\x90a(\x00V[P`\x00`\x01`\x00\x8a\x81R` \x01\x90\x81R` \x01`\x00 \x81a\r\x87\x91\x90a(\x00V[P``a\r\xdfa\r\u0687\x87\x80\x80`\x1f\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\x00\x81\x84\x01R`\x1f\x19`\x1f\x82\x01\x16\x90P\x80\x83\x01\x92PPPPPPPa\"\xcbV[a\"\xf9V[\x90P`\x00\x80\x90P[\x81Q\x81\x10\x15a\x0fQW``a\x0e\x0e\x83\x83\x81Q\x81\x10a\x0e\x01W\xfe[` \x02` \x01\x01Qa\"\xf9V[\x90P`\x00\x80\x8c\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x80\x91\x90`\x01\x01a\x0e4\x91\x90a(\x00V[P`@Q\x80``\x01`@R\x80a\x0e]\x83`\x00\x81Q\x81\x10a\x0ePW\xfe[` \x02` \x01\x01Qa#\xd6V[\x81R` \x01a\x0e\u007f\x83`\x01\x81Q\x81\x10a\x0erW\xfe[` \x02` \x01\x01Qa#\xd6V[\x81R` \x01a\x0e\xa1\x83`\x02\x81Q\x81\x10a\x0e\x94W\xfe[` \x02` \x01\x01Qa$GV[s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RP`\x00\x80\x8d\x81R` \x01\x90\x81R` \x01`\x00 \x83\x81T\x81\x10a\x0e\xd7W\xfe[\x90`\x00R` `\x00 \x90`\x03\x02\x01`\x00\x82\x01Q\x81`\x00\x01U` \x82\x01Q\x81`\x01\x01U`@\x82\x01Q\x81`\x02\x01`\x00a\x01\x00\n\x81T\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x19\x16\x90\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x02\x17\x90UP\x90PPP\x80\x80`\x01\x01\x91PPa\r\xe7V[P``a\x0f\xa9a\x0f\xa4\x86\x86\x80\x80`\x1f\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\x00\x81\x84\x01R`\x1f\x19`\x1f\x82\x01\x16\x90P\x80\x83\x01\x92PPPPPPPa\"\xcbV[a\"\xf9V[\x90P`\x00\x80\x90P[\x81Q\x81\x10\x15a\x11\x1dW``a\x0f\u0603\x83\x81Q\x81\x10a\x0f\xcbW\xfe[` \x02` \x01\x01Qa\"\xf9V[\x90P`\x01`\x00\x8d\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x80\x91\x90`\x01\x01a\x0f\xff\x91\x90a(\x00V[P`@Q\x80``\x01`@R\x80a\x10(\x83`\x00\x81Q\x81\x10a\x10\x1bW\xfe[` \x02` \x01\x01Qa#\xd6V[\x81R` \x01a\x10J\x83`\x01\x81Q\x81\x10a\x10=W\xfe[` \x02` \x01\x01Qa#\xd6V[\x81R` \x01a\x10l\x83`\x02\x81Q\x81\x10a\x10_W\xfe[` \x02` \x01\x01Qa$GV[s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RP`\x01`\x00\x8e\x81R` \x01\x90\x81R` \x01`\x00 \x83\x81T\x81\x10a\x10\xa3W\xfe[\x90`\x00R` `\x00 \x90`\x03\x02\x01`\x00\x82\x01Q\x81`\x00\x01U` \x82\x01Q\x81`\x01\x01U`@\x82\x01Q\x81`\x02\x01`\x00a\x01\x00\n\x81T\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x19\x16\x90\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x02\x17\x90UP\x90PPP\x80\x80`\x01\x01\x91PPa\x0f\xb1V[PPPPPPPPPPPV[`\x00```\x00\x80\x85\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01`\x00\x90[\x82\x82\x10\x15a\x11\xfcW\x83\x82\x90`\x00R` `\x00 \x90`\x03\x02\x01`@Q\x80``\x01`@R\x90\x81`\x00\x82\x01T\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RPP\x81R` \x01\x90`\x01\x01\x90a\x11`V[PPPP\x90P`\x00\x80\x90P[\x81Q\x81\x10\x15a\x12tW\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x82\x82\x81Q\x81\x10a\x124W\xfe[` \x02` \x01\x01Q`@\x01Qs\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x14\x15a\x12gW`\x01\x92PPPa\x12{V[\x80\x80`\x01\x01\x91PPa\x12\bV[P`\x00\x91PP[\x92\x91PPV[`@\x81V[`\x00`\x02`\x01`\xf8\x1b\x84\x84`@Q` \x01a\x12\xa3\x93\x92\x91\x90a1\xd6V[`@Q` \x81\x83\x03\x03\x81R\x90`@R`@Qa\x12\xbf\x91\x90a2\x13V[` `@Q\x80\x83\x03\x81\x85Z\xfa\x15\x80\x15a\x12\xdcW=`\x00\x80>=`\x00\xfd[PPP`@Q=`\x1f\x19`\x1f\x82\x01\x16\x82\x01\x80`@RPa\x12\xff\x91\x90\x81\x01\x90a*XV[\x90P\x92\x91PPV[`\x00```\x00\x80\x84\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01`\x00\x90[\x82\x82\x10\x15a\x13\xd9W\x83\x82\x90`\x00R` `\x00 \x90`\x03\x02\x01`@Q\x80``\x01`@R\x90\x81`\x00\x82\x01T\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RPP\x81R` \x01\x90`\x01\x01\x90a\x13=V[PPPP\x90P`\x00\x80\x90P`\x00\x80\x90P[\x82Q\x81\x10\x15a\x14,Wa\x14\x1d\x83\x82\x81Q\x81\x10a\x14\x02W\xfe[` \x02` \x01\x01Q` \x01Q\x83a\"\xac\x90\x91\x90c\xff\xff\xff\xff\x16V[\x91P\x80\x80`\x01\x01\x91PPa\x13\xeaV[P\x80\x92PPP\x91\x90PV[s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\x81V[`\x00\x80`\x00\x80\x85\x90P`\x00`!\x80\x87Q\x81a\x14fW\xfe[\x04\x02\x90P`\x00\x81\x11\x15a\x14\u007fWa\x14|\x87a\x17\xabV[\x91P[`\x00`!\x90P[\x81\x81\x11a\x15\tW`\x00`\x01\x82\x03\x88\x01Q\x90P\x81\x88\x01Q\x95P\x80`\x00` \x81\x10a\x14\xabW\xfe[\x1a`\xf8\x1b\x94P`\x00`\xf8\x1b\x85~\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x16\x14\x15a\x14\xf0Wa\x14\u9185a\x12\x86V[\x93Pa\x14\xfdV[a\x14\xfa\x84\x87a\x12\x86V[\x93P[P`!\x81\x01\x90Pa\x14\x86V[P\x87\x82\x14\x94PPPPP\x93\x92PPPV[`@Qa\x15&\x90a2TV[`@Q\x80\x91\x03\x90 \x81V[`\x00\x80`\x00\x90P`\x00\x80\x90P`\x00\x80\x90P[\x84Q\x81g\xff\xff\xff\xff\xff\xff\xff\xff\x16\x10\x15a\x16\fW``a\x15n\x86\x83g\xff\xff\xff\xff\xff\xff\xff\xff\x16`Aa$jV[\x90P`\x00a\x15\x85\x82\x89a$\xf6\x90\x91\x90c\xff\xff\xff\xff\x16V[\x90Pa\x15\x8fa(2V[a\x15\x99\x8a\x83a\x16\x19V[\x90Pa\x15\xa5\x8a\x83a\x11*V[\x80\x15a\x15\xdcWP\x84s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x11[\x15a\x15\xfeW\x81\x94Pa\x15\xfb\x81` \x01Q\x87a\"\xac\x90\x91\x90c\xff\xff\xff\xff\x16V[\x95P[PPP`A\x81\x01\x90Pa\x15CV[P\x81\x92PPP\x93\x92PPPV[a\x16!a(2V[```\x00\x80\x85\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01`\x00\x90[\x82\x82\x10\x15a\x16\xf1W\x83\x82\x90`\x00R` `\x00 \x90`\x03\x02\x01`@Q\x80``\x01`@R\x90\x81`\x00\x82\x01T\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RPP\x81R` \x01\x90`\x01\x01\x90a\x16UV[PPPP\x90P`\x00\x80\x90P[\x81Q\x81\x10\x15a\x17yW\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x82\x82\x81Q\x81\x10a\x17)W\xfe[` \x02` \x01\x01Q`@\x01Qs\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x14\x15a\x17lW\x81\x81\x81Q\x81\x10a\x17]W\xfe[` \x02` \x01\x01Q\x92Pa\x17yV[\x80\x80`\x01\x01\x91PPa\x16\xfdV[PP\x92\x91PPV[`\x00a\x17\x8cCa\x1d\xb1V[\x90P\x90V[`\x00a\x17\xa4a\x17\x9ea\x17\x81V[\x83a\x11*V[\x90P\x91\x90PV[`\x00`\x02`\x00`\xf8\x1b\x83`@Q` \x01a\x17\u0192\x91\x90a1\xaaV[`@Q` \x81\x83\x03\x03\x81R\x90`@R`@Qa\x17\u2450a2\x13V[` `@Q\x80\x83\x03\x81\x85Z\xfa\x15\x80\x15a\x17\xffW=`\x00\x80>=`\x00\xfd[PPP`@Q=`\x1f\x19`\x1f\x82\x01\x16\x82\x01\x80`@RPa\x18\"\x91\x90\x81\x01\x90a*XV[\x90P\x91\x90PV[`\x00\x80`\x00\x80a\x18J`\x01a\x18<a\x17\x81V[a\"\xac\x90\x91\x90c\xff\xff\xff\xff\x16V[\x90P`\x02`\x00\x82\x81R` \x01\x90\x81R` \x01`\x00 `\x00\x01T`\x02`\x00\x83\x81R` \x01\x90\x81R` \x01`\x00 `\x01\x01T`\x02`\x00\x84\x81R` \x01\x90\x81R` \x01`\x00 `\x02\x01T\x93P\x93P\x93PP\x90\x91\x92V[``\x80```\x05`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x18\xd2W\x81` \x01` \x82\x02\x808\x839\x80\x82\x01\x91PP\x90P[P\x90Ps\xc2h\x80\xa0\xaf.\xa0\xc7\xe8\x13\x0en\xc4z\xf7VFTR\xe8\x81`\x00\x81Q\x81\x10a\x18\xf7W\xfe[` \x02` \x01\x01\x90s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RPPs\xbe\x18\x8dfA\u8d80t:H\x15\u07e0\xf6 \x808\x96\x0f\x81`\x01\x81Q\x81\x10a\x19SW\xfe[` \x02` \x01\x01\x90s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RPPs\xc2u\u070b\xe3\x9fP\xd1/f\xb6\xa66)\u00dd\xa5\xba\u5f41`\x02\x81Q\x81\x10a\x19\xafW\xfe[` \x02` \x01\x01\x90s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RPPs\xf9\x03\xba\x9e\x00a\x93\xc1R{\xfb\xe6_\xe2\x127\x04\xea?\x99\x81`\x03\x81Q\x81\x10a\x1a\vW\xfe[` \x02` \x01\x01\x90s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RPPs\x92\x8e\u05a3\xe9D7\xbb\xd3\x16\u032dxG\x9f\x1d\x16:j\x8c\x81`\x04\x81Q\x81\x10a\x1agW\xfe[` \x02` \x01\x01\x90s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RPP```\x05`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x1a\xd3W\x81` \x01` \x82\x02\x808\x839\x80\x82\x01\x91PP\x90P[P\x90Pa'\x10\x81`\x00\x81Q\x81\x10a\x1a\xe6W\xfe[` \x02` \x01\x01\x81\x81RPPa'\x10\x81`\x01\x81Q\x81\x10a\x1b\x02W\xfe[` \x02` \x01\x01\x81\x81RPPa'\x10\x81`\x02\x81Q\x81\x10a\x1b\x1eW\xfe[` \x02` \x01\x01\x81\x81RPPa'\x10\x81`\x03\x81Q\x81\x10a\x1b:W\xfe[` \x02` \x01\x01\x81\x81RPPa'\x10\x81`\x04\x81Q\x81\x10a\x1bVW\xfe[` \x02` \x01\x01\x81\x81RPP\x81\x81\x93P\x93PPP\x90\x91V[`\xff\x81V[`\x01` R\x81`\x00R`@`\x00 \x81\x81T\x81\x10a\x1b\x8cW\xfe[\x90`\x00R` `\x00 \x90`\x03\x02\x01`\x00\x91P\x91PP\x80`\x00\x01T\x90\x80`\x01\x01T\x90\x80`\x02\x01`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90P\x83V[`\x00a\x1b\xeaa\x1b\xe4a\x17\x81V[\x83a\t9V[\x90P\x91\x90PV[`@Qa\x1b\xfd\x90a2*V[`@Q\x80\x91\x03\x90 \x81V[`\x00```\x01`\x00\x84\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01`\x00\x90[\x82\x82\x10\x15a\x1c\xdbW\x83\x82\x90`\x00R` `\x00 \x90`\x03\x02\x01`@Q\x80``\x01`@R\x90\x81`\x00\x82\x01T\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RPP\x81R` \x01\x90`\x01\x01\x90a\x1c?V[PPPP\x90P`\x00\x80\x90P`\x00\x80\x90P[\x82Q\x81\x10\x15a\x1d.Wa\x1d\x1f\x83\x82\x81Q\x81\x10a\x1d\x04W\xfe[` \x02` \x01\x01Q` \x01Q\x83a\"\xac\x90\x91\x90c\xff\xff\xff\xff\x16V[\x91P\x80\x80`\x01\x01\x91PPa\x1c\xecV[P\x80\x92PPP\x91\x90PV[`@Qa\x1dE\x90a2?V[`@Q\x80\x91\x03\x90 \x81V[`\x00\x80`\x00\x80a\x1d^a\x17\x81V[\x90P`\x02`\x00\x82\x81R` \x01\x90\x81R` \x01`\x00 `\x00\x01T`\x02`\x00\x83\x81R` \x01\x90\x81R` \x01`\x00 `\x01\x01T`\x02`\x00\x84\x81R` \x01\x90\x81R` \x01`\x00 `\x02\x01T\x93P\x93P\x93PP\x90\x91\x92V[`\x00\x80`\x03\x80T\x90P\x90P[`\x00\x81\x11\x15a\x1eqWa\x1d\xcea(iV[`\x02`\x00`\x03`\x01\x85\x03\x81T\x81\x10a\x1d\xe2W\xfe[\x90`\x00R` `\x00 \x01T\x81R` \x01\x90\x81R` \x01`\x00 `@Q\x80``\x01`@R\x90\x81`\x00\x82\x01T\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01T\x81RPP\x90P\x83\x81` \x01Q\x11\x15\x80\x15a\x1e?WP`\x00\x81`@\x01Q\x14\x15[\x80\x15a\x1eOWP\x80`@\x01Q\x84\x11\x15[\x15a\x1ebW\x80`\x00\x01Q\x92PPPa\x1e\xacV[P\x80\x80`\x01\x90\x03\x91PPa\x1d\xbdV[P`\x00`\x03\x80T\x90P\x11\x15a\x1e\xa7W`\x03`\x01`\x03\x80T\x90P\x03\x81T\x81\x10a\x1e\x95W\xfe[\x90`\x00R` `\x00 \x01T\x90Pa\x1e\xacV[`\x00\x90P[\x91\x90PV[``\x80a\x1e\xbdCa\a]V[\x91P\x91P\x90\x91V[`\x03\x81\x81T\x81\x10a\x1e\xd2W\xfe[\x90`\x00R` `\x00 \x01`\x00\x91P\x90PT\x81V[`\x02\x81V[`\x00` R\x81`\x00R`@`\x00 \x81\x81T\x81\x10a\x1f\x04W\xfe[\x90`\x00R` `\x00 \x90`\x03\x02\x01`\x00\x91P\x91PP\x80`\x00\x01T\x90\x80`\x01\x01T\x90\x80`\x02\x01`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90P\x83V[`\x00`@C\x81a\x1f[W\xfe[\x04\x90P\x90V[`\x02` R\x80`\x00R`@`\x00 `\x00\x91P\x90P\x80`\x00\x01T\x90\x80`\x01\x01T\x90\x80`\x02\x01T\x90P\x83V[``\x80a\x1f\x96a\x18\x9dV[\x80\x92P\x81\x93PPP`\x00\x80\x90P`@Q\x80``\x01`@R\x80\x82\x81R` \x01`\x00\x81R` \x01`\xff\x81RP`\x02`\x00\x83\x81R` \x01\x90\x81R` \x01`\x00 `\x00\x82\x01Q\x81`\x00\x01U` \x82\x01Q\x81`\x01\x01U`@\x82\x01Q\x81`\x02\x01U\x90PP`\x03\x81\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP\x90`\x01\x82\x03\x90`\x00R` `\x00 \x01`\x00\x90\x91\x92\x90\x91\x90\x91PUP`\x00\x80`\x00\x83\x81R` \x01\x90\x81R` \x01`\x00 \x81a ?\x91\x90a(\x00V[P`\x00`\x01`\x00\x83\x81R` \x01\x90\x81R` \x01`\x00 \x81a `\x91\x90a(\x00V[P`\x00\x80\x90P[\x83Q\x81\x10\x15a!\x82W`\x00\x80\x83\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x80\x91\x90`\x01\x01a \x94\x91\x90a(\x00V[P`@Q\x80``\x01`@R\x80\x82\x81R` \x01\x84\x83\x81Q\x81\x10a \xb2W\xfe[` \x02` \x01\x01Q\x81R` \x01\x85\x83\x81Q\x81\x10a \xcbW\xfe[` \x02` \x01\x01Qs\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RP`\x00\x80\x84\x81R` \x01\x90\x81R` \x01`\x00 \x82\x81T\x81\x10a!\tW\xfe[\x90`\x00R` `\x00 \x90`\x03\x02\x01`\x00\x82\x01Q\x81`\x00\x01U` \x82\x01Q\x81`\x01\x01U`@\x82\x01Q\x81`\x02\x01`\x00a\x01\x00\n\x81T\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x19\x16\x90\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x02\x17\x90UP\x90PP\x80\x80`\x01\x01\x91PPa gV[P`\x00\x80\x90P[\x83Q\x81\x10\x15a\"\xa6W`\x01`\x00\x83\x81R` \x01\x90\x81R` \x01`\x00 \x80T\x80\x91\x90`\x01\x01a!\xb7\x91\x90a(\x00V[P`@Q\x80``\x01`@R\x80\x82\x81R` \x01\x84\x83\x81Q\x81\x10a!\xd5W\xfe[` \x02` \x01\x01Q\x81R` \x01\x85\x83\x81Q\x81\x10a!\xeeW\xfe[` \x02` \x01\x01Qs\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RP`\x01`\x00\x84\x81R` \x01\x90\x81R` \x01`\x00 \x82\x81T\x81\x10a\"-W\xfe[\x90`\x00R` `\x00 \x90`\x03\x02\x01`\x00\x82\x01Q\x81`\x00\x01U` \x82\x01Q\x81`\x01\x01U`@\x82\x01Q\x81`\x02\x01`\x00a\x01\x00\n\x81T\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x19\x16\x90\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x02\x17\x90UP\x90PP\x80\x80`\x01\x01\x91PPa!\x89V[PPPPV[`\x00\x80\x82\x84\x01\x90P\x83\x81\x10\x15a\"\xc1W`\x00\x80\xfd[\x80\x91PP\x92\x91PPV[a\"\xd3a(\x8aV[`\x00` \x83\x01\x90P`@Q\x80`@\x01`@R\x80\x84Q\x81R` \x01\x82\x81RP\x91PP\x91\x90PV[``a#\x04\x82a&\x00V[a#\rW`\x00\x80\xfd[`\x00a#\x18\x83a&NV[\x90P``\x81`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a#VW\x81` \x01[a#Ca(\xa4V[\x81R` \x01\x90`\x01\x90\x03\x90\x81a#;W\x90P[P\x90P`\x00a#h\x85` \x01Qa&\xbfV[\x85` \x01Q\x01\x90P`\x00\x80`\x00\x90P[\x84\x81\x10\x15a#\xc9Wa#\x89\x83a'HV[\x91P`@Q\x80`@\x01`@R\x80\x83\x81R` \x01\x84\x81RP\x84\x82\x81Q\x81\x10a#\xacW\xfe[` \x02` \x01\x01\x81\x90RP\x81\x83\x01\x92P\x80\x80`\x01\x01\x91PPa#xV[P\x82\x94PPPPP\x91\x90PV[`\x00\x80\x82`\x00\x01Q\x11\x80\x15a#\xf0WP`!\x82`\x00\x01Q\x11\x15[a#\xf9W`\x00\x80\xfd[`\x00a$\b\x83` \x01Qa&\xbfV[\x90P`\x00\x81\x84`\x00\x01Q\x03\x90P`\x00\x80\x83\x86` \x01Q\x01\x90P\x80Q\x91P` \x83\x10\x15a$;W\x82` \x03a\x01\x00\n\x82\x04\x91P[\x81\x94PPPPP\x91\x90PV[`\x00`\x15\x82`\x00\x01Q\x14a$ZW`\x00\x80\xfd[a$c\x82a#\xd6V[\x90P\x91\x90PV[``\x81\x83\x01\x84Q\x10\x15a$|W`\x00\x80\xfd[``\x82\x15`\x00\x81\x14a$\x99W`@Q\x91P` \x82\x01`@Ra$\xeaV[`@Q\x91P`\x1f\x84\x16\x80\x15` \x02\x81\x84\x01\x01\x85\x81\x01\x87\x83\x15` \x02\x84\x8b\x01\x01\x01[\x81\x83\x10\x15a$\xd7W\x80Q\x83R` \x83\x01\x92P` \x81\x01\x90Pa$\xbaV[P\x86\x85R`\x1f\x19`\x1f\x83\x01\x16`@RPPP[P\x80\x91PP\x93\x92PPPV[`\x00\x80`\x00\x80`A\x85Q\x14a%\x11W`\x00\x93PPPPa%\xfaV[` \x85\x01Q\x92P`@\x85\x01Q\x91P`\xff`A\x86\x01Q\x16\x90P`\x1b\x81`\xff\x16\x10\x15a%<W`\x1b\x81\x01\x90P[`\x1b\x81`\xff\x16\x14\x15\x80\x15a%TWP`\x1c\x81`\xff\x16\x14\x15[\x15a%eW`\x00\x93PPPPa%\xfaV[`\x00`\x01\x87\x83\x86\x86`@Q`\x00\x81R` \x01`@R`@Qa%\x8a\x94\x93\x92\x91\x90a2\xf1V[` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xfa\x15\x80\x15a%\xacW=`\x00\x80>=`\x00\xfd[PPP` `@Q\x03Q\x90P`\x00s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x14\x15a%\xf2W`\x00\x80\xfd[\x80\x94PPPPP[\x92\x91PPV[`\x00\x80\x82`\x00\x01Q\x14\x15a&\x17W`\x00\x90Pa&IV[`\x00\x80\x83` \x01Q\x90P\x80Q`\x00\x1a\x91P`\xc0`\xff\x16\x82`\xff\x16\x10\x15a&BW`\x00\x92PPPa&IV[`\x01\x92PPP[\x91\x90PV[`\x00\x80\x82`\x00\x01Q\x14\x15a&eW`\x00\x90Pa&\xbaV[`\x00\x80\x90P`\x00a&y\x84` \x01Qa&\xbfV[\x84` \x01Q\x01\x90P`\x00\x84`\x00\x01Q\x85` \x01Q\x01\x90P[\x80\x82\x10\x15a&\xb3Wa&\xa2\x82a'HV[\x82\x01\x91P\x82\x80`\x01\x01\x93PPa&\x91V[\x82\x93PPPP[\x91\x90PV[`\x00\x80\x82Q`\x00\x1a\x90P`\x80`\xff\x16\x81\x10\x15a&\xdfW`\x00\x91PPa'CV[`\xb8`\xff\x16\x81\x10\x80a'\x04WP`\xc0`\xff\x16\x81\x10\x15\x80\x15a'\x03WP`\xf8`\xff\x16\x81\x10[[\x15a'\x13W`\x01\x91PPa'CV[`\xc0`\xff\x16\x81\x10\x15a'3W`\x01\x80`\xb8\x03`\xff\x16\x82\x03\x01\x91PPa'CV[`\x01\x80`\xf8\x03`\xff\x16\x82\x03\x01\x91PP[\x91\x90PV[`\x00\x80`\x00\x83Q`\x00\x1a\x90P`\x80`\xff\x16\x81\x10\x15a'iW`\x01\x91Pa'\xf6V[`\xb8`\xff\x16\x81\x10\x15a'\x86W`\x01`\x80`\xff\x16\x82\x03\x01\x91Pa'\xf5V[`\xc0`\xff\x16\x81\x10\x15a'\xb6W`\xb7\x81\x03`\x01\x85\x01\x94P\x80` \x03a\x01\x00\n\x85Q\x04`\x01\x82\x01\x81\x01\x93PPPa'\xf4V[`\xf8`\xff\x16\x81\x10\x15a'\xd3W`\x01`\xc0`\xff\x16\x82\x03\x01\x91Pa'\xf3V[`\xf7\x81\x03`\x01\x85\x01\x94P\x80` \x03a\x01\x00\n\x85Q\x04`\x01\x82\x01\x81\x01\x93PPP[[[[\x81\x92PPP\x91\x90PV[\x81T\x81\x83U\x81\x81\x11\x15a(-W`\x03\x02\x81`\x03\x02\x83`\x00R` `\x00 \x91\x82\x01\x91\x01a(,\x91\x90a(\xbeV[[PPPV[`@Q\x80``\x01`@R\x80`\x00\x81R` \x01`\x00\x81R` \x01`\x00s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81RP\x90V[`@Q\x80``\x01`@R\x80`\x00\x81R` \x01`\x00\x81R` \x01`\x00\x81RP\x90V[`@Q\x80`@\x01`@R\x80`\x00\x81R` \x01`\x00\x81RP\x90V[`@Q\x80`@\x01`@R\x80`\x00\x81R` \x01`\x00\x81RP\x90V[a)\x11\x91\x90[\x80\x82\x11\x15a)\rW`\x00\x80\x82\x01`\x00\x90U`\x01\x82\x01`\x00\x90U`\x02\x82\x01`\x00a\x01\x00\n\x81T\x90s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x19\x16\x90UP`\x03\x01a(\xc4V[P\x90V[\x90V[`\x00\x815\x90Pa)#\x81a6\x93V[\x92\x91PPV[`\x00\x815\x90Pa)8\x81a6\xaaV[\x92\x91PPV[`\x00\x81Q\x90Pa)M\x81a6\xaaV[\x92\x91PPV[`\x00\x80\x83`\x1f\x84\x01\x12a)eW`\x00\x80\xfd[\x825\x90Pg\xff\xff\xff\xff\xff\xff\xff\xff\x81\x11\x15a)~W`\x00\x80\xfd[` \x83\x01\x91P\x83`\x01\x82\x02\x83\x01\x11\x15a)\x96W`\x00\x80\xfd[\x92P\x92\x90PV[`\x00\x82`\x1f\x83\x01\x12a)\xaeW`\x00\x80\xfd[\x815a)\xc1a)\xbc\x82a4\xe2V[a4\xb5V[\x91P\x80\x82R` \x83\x01` \x83\x01\x85\x83\x83\x01\x11\x15a)\xddW`\x00\x80\xfd[a)\u80c2\x84a6=V[PPP\x92\x91PPV[`\x00\x815\x90Pa*\x00\x81a6\xc1V[\x92\x91PPV[`\x00` \x82\x84\x03\x12\x15a*\x18W`\x00\x80\xfd[`\x00a*&\x84\x82\x85\x01a)\x14V[\x91PP\x92\x91PPV[`\x00` \x82\x84\x03\x12\x15a*AW`\x00\x80\xfd[`\x00a*O\x84\x82\x85\x01a))V[\x91PP\x92\x91PPV[`\x00` \x82\x84\x03\x12\x15a*jW`\x00\x80\xfd[`\x00a*x\x84\x82\x85\x01a)>V[\x91PP\x92\x91PPV[`\x00\x80`@\x83\x85\x03\x12\x15a*\x94W`\x00\x80\xfd[`\x00a*\xa2\x85\x82\x86\x01a))V[\x92PP` a*\xb3\x85\x82\x86\x01a))V[\x91PP\x92P\x92\x90PV[`\x00\x80`\x00``\x84\x86\x03\x12\x15a*\xd2W`\x00\x80\xfd[`\x00a*\xe0\x86\x82\x87\x01a))V[\x93PP` a*\U00046087\x01a))V[\x92PP`@\x84\x015g\xff\xff\xff\xff\xff\xff\xff\xff\x81\x11\x15a+\x0eW`\x00\x80\xfd[a+\x1a\x86\x82\x87\x01a)\x9dV[\x91PP\x92P\x92P\x92V[`\x00` \x82\x84\x03\x12\x15a+6W`\x00\x80\xfd[`\x00a+D\x84\x82\x85\x01a)\xf1V[\x91PP\x92\x91PPV[`\x00\x80`@\x83\x85\x03\x12\x15a+`W`\x00\x80\xfd[`\x00a+n\x85\x82\x86\x01a)\xf1V[\x92PP` a+\u007f\x85\x82\x86\x01a)\x14V[\x91PP\x92P\x92\x90PV[`\x00\x80`\x00``\x84\x86\x03\x12\x15a+\x9eW`\x00\x80\xfd[`\x00a+\xac\x86\x82\x87\x01a)\xf1V[\x93PP` a+\xbd\x86\x82\x87\x01a))V[\x92PP`@\x84\x015g\xff\xff\xff\xff\xff\xff\xff\xff\x81\x11\x15a+\xdaW`\x00\x80\xfd[a+\u6182\x87\x01a)\x9dV[\x91PP\x92P\x92P\x92V[`\x00\x80`@\x83\x85\x03\x12\x15a,\x03W`\x00\x80\xfd[`\x00a,\x11\x85\x82\x86\x01a)\xf1V[\x92PP` a,\"\x85\x82\x86\x01a)\xf1V[\x91PP\x92P\x92\x90PV[`\x00\x80`\x00\x80`\x00\x80`\x00`\xa0\x88\x8a\x03\x12\x15a,GW`\x00\x80\xfd[`\x00a,U\x8a\x82\x8b\x01a)\xf1V[\x97PP` a,f\x8a\x82\x8b\x01a)\xf1V[\x96PP`@a,w\x8a\x82\x8b\x01a)\xf1V[\x95PP``\x88\x015g\xff\xff\xff\xff\xff\xff\xff\xff\x81\x11\x15a,\x94W`\x00\x80\xfd[a,\xa0\x8a\x82\x8b\x01a)SV[\x94P\x94PP`\x80\x88\x015g\xff\xff\xff\xff\xff\xff\xff\xff\x81\x11\x15a,\xbfW`\x00\x80\xfd[a,\u02ca\x82\x8b\x01a)SV[\x92P\x92PP\x92\x95\x98\x91\x94\x97P\x92\x95PV[`\x00a,\u80c3a-\fV[` \x83\x01\x90P\x92\x91PPV[`\x00a-\x00\x83\x83a1}V[` \x83\x01\x90P\x92\x91PPV[a-\x15\x81a5\xb2V[\x82RPPV[a-$\x81a5\xb2V[\x82RPPV[`\x00a-5\x82a5.V[a-?\x81\x85a5iV[\x93Pa-J\x83a5\x0eV[\x80`\x00[\x83\x81\x10\x15a-{W\x81Qa-b\x88\x82a,\xdcV[\x97Pa-m\x83a5OV[\x92PP`\x01\x81\x01\x90Pa-NV[P\x85\x93PPPP\x92\x91PPV[`\x00a-\x93\x82a59V[a-\x9d\x81\x85a5zV[\x93Pa-\xa8\x83a5\x1eV[\x80`\x00[\x83\x81\x10\x15a-\xd9W\x81Qa-\xc0\x88\x82a,\xf4V[\x97Pa-\u02c3a5\\V[\x92PP`\x01\x81\x01\x90Pa-\xacV[P\x85\x93PPPP\x92\x91PPV[a-\xef\x81a5\xc4V[\x82RPPV[a.\x06a.\x01\x82a5\xd0V[a6\u007fV[\x82RPPV[a.\x15\x81a5\xfcV[\x82RPPV[a.,a.'\x82a5\xfcV[a6\x89V[\x82RPPV[`\x00a.=\x82a5DV[a.G\x81\x85a5\x8bV[\x93Pa.W\x81\x85` \x86\x01a6LV[\x80\x84\x01\x91PP\x92\x91PPV[`\x00a.p`\x04\x83a5\xa7V[\x91P\u007fvote\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`\x00\x83\x01R`\x04\x82\x01\x90P\x91\x90PV[`\x00a.\xb0`-\x83a5\x96V[\x91P\u007fStart block must be greater than`\x00\x83\x01R\u007f current span\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00` \x83\x01R`@\x82\x01\x90P\x91\x90PV[`\x00a/\x16`\x0f\x83a5\x96V[\x91P\u007fInvalid span id\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`\x00\x83\x01R` \x82\x01\x90P\x91\x90PV[`\x00a/V`\x13\x83a5\x96V[\x91P\u007fSpan already exists\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`\x00\x83\x01R` \x82\x01\x90P\x91\x90PV[`\x00a/\x96`E\x83a5\x96V[\x91P\u007fDifference between start and end`\x00\x83\x01R\u007f block must be in multiples of s` \x83\x01R\u007fprint\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`@\x83\x01R``\x82\x01\x90P\x91\x90PV[`\x00a0\"`*\x83a5\x96V[\x91P\u007fEnd block must be greater than s`\x00\x83\x01R\u007ftart block\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00` \x83\x01R`@\x82\x01\x90P\x91\x90PV[`\x00a0\x88`\x12\x83a5\x96V[\x91P\u007fNot System Addess!\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`\x00\x83\x01R` \x82\x01\x90P\x91\x90PV[`\x00a0\xc8`\x05\x83a5\xa7V[\x91P\u007f80001\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`\x00\x83\x01R`\x05\x82\x01\x90P\x91\x90PV[`\x00a1\b`\x0e\x83a5\xa7V[\x91P\u007fheimdall-80001\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`\x00\x83\x01R`\x0e\x82\x01\x90P\x91\x90PV[``\x82\x01`\x00\x82\x01Qa1Q`\x00\x85\x01\x82a1}V[P` \x82\x01Qa1d` \x85\x01\x82a1}V[P`@\x82\x01Qa1w`@\x85\x01\x82a-\fV[PPPPV[a1\x86\x81a6&V[\x82RPPV[a1\x95\x81a6&V[\x82RPPV[a1\xa4\x81a60V[\x82RPPV[`\x00a1\xb6\x82\x85a-\xf5V[`\x01\x82\x01\x91Pa1\u0182\x84a.\x1bV[` \x82\x01\x91P\x81\x90P\x93\x92PPPV[`\x00a1\u2086a-\xf5V[`\x01\x82\x01\x91Pa1\xf2\x82\x85a.\x1bV[` \x82\x01\x91Pa2\x02\x82\x84a.\x1bV[` \x82\x01\x91P\x81\x90P\x94\x93PPPPV[`\x00a2\x1f\x82\x84a.2V[\x91P\x81\x90P\x92\x91PPV[`\x00a25\x82a.cV[\x91P\x81\x90P\x91\x90PV[`\x00a2J\x82a0\xbbV[\x91P\x81\x90P\x91\x90PV[`\x00a2_\x82a0\xfbV[\x91P\x81\x90P\x91\x90PV[`\x00` \x82\x01\x90Pa2~`\x00\x83\x01\x84a-\x1bV[\x92\x91PPV[`\x00`@\x82\x01\x90P\x81\x81\x03`\x00\x83\x01Ra2\x9e\x81\x85a-*V[\x90P\x81\x81\x03` \x83\x01Ra2\xb2\x81\x84a-\x88V[\x90P\x93\x92PPPV[`\x00` \x82\x01\x90Pa2\xd0`\x00\x83\x01\x84a-\xe6V[\x92\x91PPV[`\x00` \x82\x01\x90Pa2\xeb`\x00\x83\x01\x84a.\fV[\x92\x91PPV[`\x00`\x80\x82\x01\x90Pa3\x06`\x00\x83\x01\x87a.\fV[a3\x13` \x83\x01\x86a1\x9bV[a3 `@\x83\x01\x85a.\fV[a3-``\x83\x01\x84a.\fV[\x95\x94PPPPPV[`\x00` \x82\x01\x90P\x81\x81\x03`\x00\x83\x01Ra3O\x81a.\xa3V[\x90P\x91\x90PV[`\x00` \x82\x01\x90P\x81\x81\x03`\x00\x83\x01Ra3o\x81a/\tV[\x90P\x91\x90PV[`\x00` \x82\x01\x90P\x81\x81\x03`\x00\x83\x01Ra3\x8f\x81a/IV[\x90P\x91\x90PV[`\x00` \x82\x01\x90P\x81\x81\x03`\x00\x83\x01Ra3\xaf\x81a/\x89V[\x90P\x91\x90PV[`\x00` \x82\x01\x90P\x81\x81\x03`\x00\x83\x01Ra3\u03c1a0\x15V[\x90P\x91\x90PV[`\x00` \x82\x01\x90P\x81\x81\x03`\x00\x83\x01Ra3\xef\x81a0{V[\x90P\x91\x90PV[`\x00``\x82\x01\x90Pa4\v`\x00\x83\x01\x84a1;V[\x92\x91PPV[`\x00` \x82\x01\x90Pa4&`\x00\x83\x01\x84a1\x8cV[\x92\x91PPV[`\x00``\x82\x01\x90Pa4A`\x00\x83\x01\x86a1\x8cV[a4N` \x83\x01\x85a1\x8cV[a4[`@\x83\x01\x84a-\x1bV[\x94\x93PPPPV[`\x00``\x82\x01\x90Pa4x`\x00\x83\x01\x86a1\x8cV[a4\x85` \x83\x01\x85a1\x8cV[a4\x92`@\x83\x01\x84a1\x8cV[\x94\x93PPPPV[`\x00` \x82\x01\x90Pa4\xaf`\x00\x83\x01\x84a1\x9bV[\x92\x91PPV[`\x00`@Q\x90P\x81\x81\x01\x81\x81\x10g\xff\xff\xff\xff\xff\xff\xff\xff\x82\x11\x17\x15a4\xd8W`\x00\x80\xfd[\x80`@RP\x91\x90PV[`\x00g\xff\xff\xff\xff\xff\xff\xff\xff\x82\x11\x15a4\xf9W`\x00\x80\xfd[`\x1f\x19`\x1f\x83\x01\x16\x90P` \x81\x01\x90P\x91\x90PV[`\x00\x81\x90P` \x82\x01\x90P\x91\x90PV[`\x00\x81\x90P` \x82\x01\x90P\x91\x90PV[`\x00\x81Q\x90P\x91\x90PV[`\x00\x81Q\x90P\x91\x90PV[`\x00\x81Q\x90P\x91\x90PV[`\x00` \x82\x01\x90P\x91\x90PV[`\x00` \x82\x01\x90P\x91\x90PV[`\x00\x82\x82R` \x82\x01\x90P\x92\x91PPV[`\x00\x82\x82R` \x82\x01\x90P\x92\x91PPV[`\x00\x81\x90P\x92\x91PPV[`\x00\x82\x82R` \x82\x01\x90P\x92\x91PPV[`\x00\x81\x90P\x92\x91PPV[`\x00a5\xbd\x82a6\x06V[\x90P\x91\x90PV[`\x00\x81\x15\x15\x90P\x91\x90PV[`\x00\u007f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x16\x90P\x91\x90PV[`\x00\x81\x90P\x91\x90PV[`\x00s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x16\x90P\x91\x90PV[`\x00\x81\x90P\x91\x90PV[`\x00`\xff\x82\x16\x90P\x91\x90PV[\x82\x81\x837`\x00\x83\x83\x01RPPPV[`\x00[\x83\x81\x10\x15a6jW\x80\x82\x01Q\x81\x84\x01R` \x81\x01\x90Pa6OV[\x83\x81\x11\x15a6yW`\x00\x84\x84\x01R[PPPPV[`\x00\x81\x90P\x91\x90PV[`\x00\x81\x90P\x91\x90PV[a6\x9c\x81a5\xb2V[\x81\x14a6\xa7W`\x00\x80\xfd[PV[a6\xb3\x81a5\xfcV[\x81\x14a6\xbeW`\x00\x80\xfd[PV[a6\u0281a6&V[\x81\x14a6\xd5W`\x00\x80\xfd[PV\xfe\xa3ebzzr1X \x8fR\xee\ac\x0f\xfeR<\u01ad>\x15\xf47\xf9s\xdc\xfa6r\x9c\u0597\xf9\xb0\xfcJ\x14ZH\xf0lexperimental\xf5dsolcC\x00\x05\v\x00@\xf9\t\xb3\x82\x10\x01\x80\xb9\t\xac`\x80`@R4\x80\x15a\x00\x10W`\x00\x80\xfd[P`\x046\x10a\x00AW`\x005`\xe0\x1c\x80c\x19IJ\x17\x14a\x00FW\x80c44s_\x14a\x00\xe1W\x80cT\a\xcag\x14a\x01+W[`\x00\x80\xfd[a\x00\xc7`\x04\x806\x03`@\x81\x10\x15a\x00\\W`\x00\x80\xfd[\x81\x01\x90\x80\x805\x90` \x01\x90\x92\x91\x90\x805\x90` \x01\x90d\x01\x00\x00\x00\x00\x81\x11\x15a\x00\x83W`\x00\x80\xfd[\x82\x01\x83` \x82\x01\x11\x15a\x00\x95W`\x00\x80\xfd[\x805\x90` \x01\x91\x84`\x01\x83\x02\x84\x01\x11d\x01\x00\x00\x00\x00\x83\x11\x17\x15a\x00\xb7W`\x00\x80\xfd[\x90\x91\x92\x93\x91\x92\x93\x90PPPa\x01IV[`@Q\x80\x82\x15\x15\x15\x15\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[a\x00\xe9a\x04zV[`@Q\x80\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[a\x013a\x04\x92V[`@Q\x80\x82\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[`\x00s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfes\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x163s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x14a\x02\x00W`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01\x80\x80` \x01\x82\x81\x03\x82R`\x12\x81R` \x01\x80\u007fNot System Addess!\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81RP` \x01\x91PP`@Q\x80\x91\x03\x90\xfd[``a\x02Wa\x02R\x85\x85\x80\x80`\x1f\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\x00\x81\x84\x01R`\x1f\x19`\x1f\x82\x01\x16\x90P\x80\x83\x01\x92PPPPPPPa\x04\x98V[a\x04\xc6V[\x90P`\x00a\x02x\x82`\x00\x81Q\x81\x10a\x02kW\xfe[` \x02` \x01\x01Qa\x05\xa3V[\x90P\x80`\x01`\x00T\x01\x14a\x02\xf4W`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01\x80\x80` \x01\x82\x81\x03\x82R`\x1b\x81R` \x01\x80\u007fStateIds are not sequential\x00\x00\x00\x00\x00\x81RP` \x01\x91PP`@Q\x80\x91\x03\x90\xfd[`\x00\x80\x81T\x80\x92\x91\x90`\x01\x01\x91\x90PUP`\x00a\x03$\x83`\x01\x81Q\x81\x10a\x03\x17W\xfe[` \x02` \x01\x01Qa\x06\x14V[\x90P``a\x03E\x84`\x02\x81Q\x81\x10a\x038W\xfe[` \x02` \x01\x01Qa\x067V[\x90Pa\x03P\x82a\x06\xc3V[\x15a\x04oW`\x00bLK@\x90P``\x84\x83`@Q`$\x01\x80\x83\x81R` \x01\x80` \x01\x82\x81\x03\x82R\x83\x81\x81Q\x81R` \x01\x91P\x80Q\x90` \x01\x90\x80\x83\x83`\x00[\x83\x81\x10\x15a\x03\xaaW\x80\x82\x01Q\x81\x84\x01R` \x81\x01\x90Pa\x03\x8fV[PPPP\x90P\x90\x81\x01\x90`\x1f\x16\x80\x15a\x03\xd7W\x80\x82\x03\x80Q`\x01\x83` \x03a\x01\x00\n\x03\x19\x16\x81R` \x01\x91P[P\x93PPPP`@Q` \x81\x83\x03\x03\x81R\x90`@R\u007f&\xc5;\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00{\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x16` \x82\x01\x80Q{\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x81\x83\x16\x17\x83RPPPP\x90P`\x00\x80\x82Q` \x84\x01`\x00\x88\x87\xf1\x96PPP[PPPP\x93\x92PPPV[s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\x81V[`\x00T\x81V[a\x04\xa0a\tCV[`\x00` \x83\x01\x90P`@Q\x80`@\x01`@R\x80\x84Q\x81R` \x01\x82\x81RP\x91PP\x91\x90PV[``a\x04\u0442a\x06\xdcV[a\x04\xdaW`\x00\x80\xfd[`\x00a\x04\xe5\x83a\a*V[\x90P``\x81`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x05#W\x81` \x01[a\x05\x10a\t]V[\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x05\bW\x90P[P\x90P`\x00a\x055\x85` \x01Qa\a\x9bV[\x85` \x01Q\x01\x90P`\x00\x80`\x00\x90P[\x84\x81\x10\x15a\x05\x96Wa\x05V\x83a\b$V[\x91P`@Q\x80`@\x01`@R\x80\x83\x81R` \x01\x84\x81RP\x84\x82\x81Q\x81\x10a\x05yW\xfe[` \x02` \x01\x01\x81\x90RP\x81\x83\x01\x92P\x80\x80`\x01\x01\x91PPa\x05EV[P\x82\x94PPPPP\x91\x90PV[`\x00\x80\x82`\x00\x01Q\x11\x80\x15a\x05\xbdWP`!\x82`\x00\x01Q\x11\x15[a\x05\xc6W`\x00\x80\xfd[`\x00a\x05\u0543` \x01Qa\a\x9bV[\x90P`\x00\x81\x84`\x00\x01Q\x03\x90P`\x00\x80\x83\x86` \x01Q\x01\x90P\x80Q\x91P` \x83\x10\x15a\x06\bW\x82` \x03a\x01\x00\n\x82\x04\x91P[\x81\x94PPPPP\x91\x90PV[`\x00`\x15\x82`\x00\x01Q\x14a\x06'W`\x00\x80\xfd[a\x060\x82a\x05\xa3V[\x90P\x91\x90PV[```\x00\x82`\x00\x01Q\x11a\x06JW`\x00\x80\xfd[`\x00a\x06Y\x83` \x01Qa\a\x9bV[\x90P`\x00\x81\x84`\x00\x01Q\x03\x90P``\x81`@Q\x90\x80\x82R\x80`\x1f\x01`\x1f\x19\x16` \x01\x82\x01`@R\x80\x15a\x06\x9bW\x81` \x01`\x01\x82\x02\x808\x839\x80\x82\x01\x91PP\x90P[P\x90P`\x00\x81` \x01\x90Pa\x06\xb7\x84\x87` \x01Q\x01\x82\x85a\b\xdcV[\x81\x94PPPPP\x91\x90PV[`\x00\x80\x82;\x90P`\x00\x81c\xff\xff\xff\xff\x16\x11\x91PP\x91\x90PV[`\x00\x80\x82`\x00\x01Q\x14\x15a\x06\xf3W`\x00\x90Pa\a%V[`\x00\x80\x83` \x01Q\x90P\x80Q`\x00\x1a\x91P`\xc0`\xff\x16\x82`\xff\x16\x10\x15a\a\x1eW`\x00\x92PPPa\a%V[`\x01\x92PPP[\x91\x90PV[`\x00\x80\x82`\x00\x01Q\x14\x15a\aAW`\x00\x90Pa\a\x96V[`\x00\x80\x90P`\x00a\aU\x84` \x01Qa\a\x9bV[\x84` \x01Q\x01\x90P`\x00\x84`\x00\x01Q\x85` \x01Q\x01\x90P[\x80\x82\x10\x15a\a\x8fWa\a~\x82a\b$V[\x82\x01\x91P\x82\x80`\x01\x01\x93PPa\amV[\x82\x93PPPP[\x91\x90PV[`\x00\x80\x82Q`\x00\x1a\x90P`\x80`\xff\x16\x81\x10\x15a\a\xbbW`\x00\x91PPa\b\x1fV[`\xb8`\xff\x16\x81\x10\x80a\a\xe0WP`\xc0`\xff\x16\x81\x10\x15\x80\x15a\a\xdfWP`\xf8`\xff\x16\x81\x10[[\x15a\a\xefW`\x01\x91PPa\b\x1fV[`\xc0`\xff\x16\x81\x10\x15a\b\x0fW`\x01\x80`\xb8\x03`\xff\x16\x82\x03\x01\x91PPa\b\x1fV[`\x01\x80`\xf8\x03`\xff\x16\x82\x03\x01\x91PP[\x91\x90PV[`\x00\x80`\x00\x83Q`\x00\x1a\x90P`\x80`\xff\x16\x81\x10\x15a\bEW`\x01\x91Pa\b\xd2V[`\xb8`\xff\x16\x81\x10\x15a\bbW`\x01`\x80`\xff\x16\x82\x03\x01\x91Pa\b\xd1V[`\xc0`\xff\x16\x81\x10\x15a\b\x92W`\xb7\x81\x03`\x01\x85\x01\x94P\x80` \x03a\x01\x00\n\x85Q\x04`\x01\x82\x01\x81\x01\x93PPPa\b\xd0V[`\xf8`\xff\x16\x81\x10\x15a\b\xafW`\x01`\xc0`\xff\x16\x82\x03\x01\x91Pa\b\xcfV[`\xf7\x81\x03`\x01\x85\x01\x94P\x80` \x03a\x01\x00\n\x85Q\x04`\x01\x82\x01\x81\x01\x93PPP[[[[\x81\x92PPP\x91\x90PV[`\x00\x81\x14\x15a\b\xeaWa\t>V[[` `\xff\x16\x81\x10a\t\x1aW\x82Q\x82R` `\xff\x16\x83\x01\x92P` `\xff\x16\x82\x01\x91P` `\xff\x16\x81\x03\x90Pa\b\xebV[`\x00`\x01\x82` `\xff\x16\x03a\x01\x00\n\x03\x90P\x80\x19\x84Q\x16\x81\x84Q\x16\x81\x81\x17\x85RPPP[PPPV[`@Q\x80`@\x01`@R\x80`\x00\x81R` \x01`\x00\x81RP\x90V[`@Q\x80`@\x01`@R\x80`\x00\x81R` \x01`\x00\x81RP\x90V\xfe\xa2ebzzr1X \x83\xfb\xda\xcbv\xf3+A\x12\xd0\xf7\u06daYi7\x92X$y\x8a\x00&\xba\x0222#\x90\xb5&7dsolcC\x00\x05\v\x002\xf9\x1fz\x82\x10\x10\x8c O\xcdO14\x9d\x83\xb6\xe0\x00\x00\xb9\x1fg`\x80`@R`\x046\x10a\x01\x9cW`\x005`\xe0\x1c\x80cw\xd3.\x94\x11a\x00\xecW\x80c\xac\xd0l\xb3\x11a\x00\x8aW\x80c\xe3\x06\xf7y\x11a\x00dW\x80c\xe3\x06\xf7y\x14a\n{W\x80c\xe6\x14\xd0\xd6\x14a\n\xa6W\x80c\xf2\xfd\xe3\x8b\x14a\n\xd1W\x80c\xfc\fTj\x14a\v\"Wa\x01\x9cV[\x80c\xac\xd0l\xb3\x14a\tzW\x80c\xb7\x89T<\x14a\t\xcdW\x80c\xccy\xf9{\x14a\nPWa\x01\x9cV[\x80c\x90%\xe6L\x11a\x00\xc6W\x80c\x90%\xe6L\x14a\a\xc9W\x80c\x95\u061bA\x14a\bYW\x80c\xa9\x05\x9c\xbb\x14a\b\xe9W\x80c\xab\xce\xeb\xa2\x14a\tOWa\x01\x9cV[\x80cw\xd3.\x94\x14a\x061W\x80c\x8d\xa5\xcb[\x14a\aCW\x80c\x8f2\u055b\x14a\a\x9aWa\x01\x9cV[\x80cG\xe7\xef$\x11a\x01YW\x80cp\x19\xd4\x1a\x11a\x013W\x80cp\x19\xd4\x1a\x14a\x053W\x80cp\xa0\x821\x14a\x05\x8aW\x80cqP\x18\xa6\x14a\x05\xefW\x80cw\x12\x82\xf6\x14a\x06\x06Wa\x01\x9cV[\x80cG\xe7\xef$\x14a\x04\x10W\x80cH\\\xc9U\x14a\x04kW\x80c`\xf9j\x8f\x14a\x04\xdcWa\x01\x9cV[\x80c\x06\xfd\xde\x03\x14a\x01\xa1W\x80c\x14\x99\u0152\x14a\x021W\x80c\x18\x16\r\xdd\x14a\x02\x82W\x80c\x19\xd2}\x9c\x14a\x02\xadW\x80c.\x1a}M\x14a\x03\xb1W\x80c1<\xe5g\x14a\x03\xdfW[`\x00\x80\xfd[4\x80\x15a\x01\xadW`\x00\x80\xfd[Pa\x01\xb6a\vyV[`@Q\x80\x80` \x01\x82\x81\x03\x82R\x83\x81\x81Q\x81R` \x01\x91P\x80Q\x90` \x01\x90\x80\x83\x83`\x00[\x83\x81\x10\x15a\x01\xf6W\x80\x82\x01Q\x81\x84\x01R` \x81\x01\x90Pa\x01\xdbV[PPPP\x90P\x90\x81\x01\x90`\x1f\x16\x80\x15a\x02#W\x80\x82\x03\x80Q`\x01\x83` \x03a\x01\x00\n\x03\x19\x16\x81R` \x01\x91P[P\x92PPP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\x02=W`\x00\x80\xfd[Pa\x02\x80`\x04\x806\x03` \x81\x10\x15a\x02TW`\x00\x80\xfd[\x81\x01\x90\x80\x805s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90` \x01\x90\x92\x91\x90PPPa\v\xb6V[\x00[4\x80\x15a\x02\x8eW`\x00\x80\xfd[Pa\x02\x97a\f$V[`@Q\x80\x82\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\x02\xb9W`\x00\x80\xfd[Pa\x03o`\x04\x806\x03`\xa0\x81\x10\x15a\x02\xd0W`\x00\x80\xfd[\x81\x01\x90\x80\x805\x90` \x01\x90d\x01\x00\x00\x00\x00\x81\x11\x15a\x02\xedW`\x00\x80\xfd[\x82\x01\x83` \x82\x01\x11\x15a\x02\xffW`\x00\x80\xfd[\x805\x90` \x01\x91\x84`\x01\x83\x02\x84\x01\x11d\x01\x00\x00\x00\x00\x83\x11\x17\x15a\x03!W`\x00\x80\xfd[\x90\x91\x92\x93\x91\x92\x93\x90\x805\x90` \x01\x90\x92\x91\x90\x805\x90` \x01\x90\x92\x91\x90\x805\x90` \x01\x90\x92\x91\x90\x805s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90` \x01\x90\x92\x91\x90PPPa\f:V[`@Q\x80\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[a\x03\xdd`\x04\x806\x03` \x81\x10\x15a\x03\xc7W`\x00\x80\xfd[\x81\x01\x90\x80\x805\x90` \x01\x90\x92\x91\x90PPPa\x0e\x06V[\x00[4\x80\x15a\x03\xebW`\x00\x80\xfd[Pa\x03\xf4a\x0fXV[`@Q\x80\x82`\xff\x16`\xff\x16\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\x04\x1cW`\x00\x80\xfd[Pa\x04i`\x04\x806\x03`@\x81\x10\x15a\x043W`\x00\x80\xfd[\x81\x01\x90\x80\x805s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90` \x01\x90\x92\x91\x90\x805\x90` \x01\x90\x92\x91\x90PPPa\x0faV[\x00[4\x80\x15a\x04wW`\x00\x80\xfd[Pa\x04\xda`\x04\x806\x03`@\x81\x10\x15a\x04\x8eW`\x00\x80\xfd[\x81\x01\x90\x80\x805s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90` \x01\x90\x92\x91\x90\x805s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90` \x01\x90\x92\x91\x90PPPa\x11\x1dV[\x00[4\x80\x15a\x04\xe8W`\x00\x80\xfd[Pa\x04\xf1a\x11\xecV[`@Q\x80\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\x05?W`\x00\x80\xfd[Pa\x05Ha\x12\x12V[`@Q\x80\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\x05\x96W`\x00\x80\xfd[Pa\x05\xd9`\x04\x806\x03` \x81\x10\x15a\x05\xadW`\x00\x80\xfd[\x81\x01\x90\x80\x805s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90` \x01\x90\x92\x91\x90PPPa\x128V[`@Q\x80\x82\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\x05\xfbW`\x00\x80\xfd[Pa\x06\x04a\x12YV[\x00[4\x80\x15a\x06\x12W`\x00\x80\xfd[Pa\x06\x1ba\x13)V[`@Q\x80\x82\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\x06=W`\x00\x80\xfd[Pa\a\x01`\x04\x806\x03`@\x81\x10\x15a\x06TW`\x00\x80\xfd[\x81\x01\x90\x80\x805\x90` \x01\x90\x92\x91\x90\x805\x90` \x01\x90d\x01\x00\x00\x00\x00\x81\x11\x15a\x06{W`\x00\x80\xfd[\x82\x01\x83` \x82\x01\x11\x15a\x06\x8dW`\x00\x80\xfd[\x805\x90` \x01\x91\x84`\x01\x83\x02\x84\x01\x11d\x01\x00\x00\x00\x00\x83\x11\x17\x15a\x06\xafW`\x00\x80\xfd[\x91\x90\x80\x80`\x1f\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\x00\x81\x84\x01R`\x1f\x19`\x1f\x82\x01\x16\x90P\x80\x83\x01\x92PPPPPPP\x91\x92\x91\x92\x90PPPa\x13/V[`@Q\x80\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\aOW`\x00\x80\xfd[Pa\aXa\x14\xb4V[`@Q\x80\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\a\xa6W`\x00\x80\xfd[Pa\a\xafa\x14\xddV[`@Q\x80\x82\x15\x15\x15\x15\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\a\xd5W`\x00\x80\xfd[Pa\a\xdea\x154V[`@Q\x80\x80` \x01\x82\x81\x03\x82R\x83\x81\x81Q\x81R` \x01\x91P\x80Q\x90` \x01\x90\x80\x83\x83`\x00[\x83\x81\x10\x15a\b\x1eW\x80\x82\x01Q\x81\x84\x01R` \x81\x01\x90Pa\b\x03V[PPPP\x90P\x90\x81\x01\x90`\x1f\x16\x80\x15a\bKW\x80\x82\x03\x80Q`\x01\x83` \x03a\x01\x00\n\x03\x19\x16\x81R` \x01\x91P[P\x92PPP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\beW`\x00\x80\xfd[Pa\bna\x15mV[`@Q\x80\x80` \x01\x82\x81\x03\x82R\x83\x81\x81Q\x81R` \x01\x91P\x80Q\x90` \x01\x90\x80\x83\x83`\x00[\x83\x81\x10\x15a\b\xaeW\x80\x82\x01Q\x81\x84\x01R` \x81\x01\x90Pa\b\x93V[PPPP\x90P\x90\x81\x01\x90`\x1f\x16\x80\x15a\b\xdbW\x80\x82\x03\x80Q`\x01\x83` \x03a\x01\x00\n\x03\x19\x16\x81R` \x01\x91P[P\x92PPP`@Q\x80\x91\x03\x90\xf3[a\t5`\x04\x806\x03`@\x81\x10\x15a\b\xffW`\x00\x80\xfd[\x81\x01\x90\x80\x805s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90` \x01\x90\x92\x91\x90\x805\x90` \x01\x90\x92\x91\x90PPPa\x15\xaaV[`@Q\x80\x82\x15\x15\x15\x15\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\t[W`\x00\x80\xfd[Pa\tda\x15\xd0V[`@Q\x80\x82\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\t\x86W`\x00\x80\xfd[Pa\t\xb3`\x04\x806\x03` \x81\x10\x15a\t\x9dW`\x00\x80\xfd[\x81\x01\x90\x80\x805\x90` \x01\x90\x92\x91\x90PPPa\x16]V[`@Q\x80\x82\x15\x15\x15\x15\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\t\xd9W`\x00\x80\xfd[Pa\n:`\x04\x806\x03`\x80\x81\x10\x15a\t\xf0W`\x00\x80\xfd[\x81\x01\x90\x80\x805s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90` \x01\x90\x92\x91\x90\x805\x90` \x01\x90\x92\x91\x90\x805\x90` \x01\x90\x92\x91\x90\x805\x90` \x01\x90\x92\x91\x90PPPa\x16}V[`@Q\x80\x82\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\n\\W`\x00\x80\xfd[Pa\nea\x16\x9dV[`@Q\x80\x82\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\n\x87W`\x00\x80\xfd[Pa\n\x90a\x16\xa4V[`@Q\x80\x82\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\n\xb2W`\x00\x80\xfd[Pa\n\xbba\x16\xaaV[`@Q\x80\x82\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[4\x80\x15a\n\xddW`\x00\x80\xfd[Pa\v `\x04\x806\x03` \x81\x10\x15a\n\xf4W`\x00\x80\xfd[\x81\x01\x90\x80\x805s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90` \x01\x90\x92\x91\x90PPPa\x177V[\x00[4\x80\x15a\v.W`\x00\x80\xfd[Pa\v7a\x17TV[`@Q\x80\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xf3[```@Q\x80`@\x01`@R\x80`\v\x81R` \x01\u007fMatic Token\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81RP\x90P\x90V[`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01\x80\x80` \x01\x82\x81\x03\x82R`\x10\x81R` \x01\x80\u007fDisabled feature\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81RP` \x01\x91PP`@Q\x80\x91\x03\x90\xfd[`\x00`\x12`\xff\x16`\n\nd\x02T\v\xe4\x00\x02\x90P\x90V[`\x00\x80\x85\x11a\fHW`\x00\x80\xfd[`\x00\x83\x14\x80a\fWWP\x82C\x11\x15[a\f\xc9W`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01\x80\x80` \x01\x82\x81\x03\x82R`\x14\x81R` \x01\x80\u007fSignature is expired\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81RP` \x01\x91PP`@Q\x80\x91\x03\x90\xfd[`\x00a\f\xd73\x87\x87\x87a\x16}V[\x90P`\x00\x15\x15`\x05`\x00\x83\x81R` \x01\x90\x81R` \x01`\x00 `\x00\x90T\x90a\x01\x00\n\x90\x04`\xff\x16\x15\x15\x14a\rsW`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01\x80\x80` \x01\x82\x81\x03\x82R`\x0f\x81R` \x01\x80\u007fSig deactivated\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81RP` \x01\x91PP`@Q\x80\x91\x03\x90\xfd[`\x01`\x05`\x00\x83\x81R` \x01\x90\x81R` \x01`\x00 `\x00a\x01\x00\n\x81T\x81`\xff\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UPa\r\ud049\x89\x80\x80`\x1f\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\x00\x81\x84\x01R`\x1f\x19`\x1f\x82\x01\x16\x90P\x80\x83\x01\x92PPPPPPPa\x13/V[\x91Pa\r\xfa\x82\x84\x88a\x17zV[PP\x96\x95PPPPPPV[`\x003\x90P`\x00a\x0e\x16\x82a\x128V[\x90Pa\x0e-\x83`\x06Ta\x1b7\x90\x91\x90c\xff\xff\xff\xff\x16V[`\x06\x81\x90UP`\x00\x83\x11\x80\x15a\x0eBWP\x824\x14[a\x0e\xb4W`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01\x80\x80` \x01\x82\x81\x03\x82R`\x13\x81R` \x01\x80\u007fInsufficient amount\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81RP` \x01\x91PP`@Q\x80\x91\x03\x90\xfd[\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16`\x02`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\u007f\xeb\xff&\x02\xb3\xf4h%\x9e\x1e\x99\xf6\x13\xfe\xd6i\x1f:e&\xef\xfen\xf3\xe7h\xbaz\xe7\xa3lO\x85\x84a\x0f0\x87a\x128V[`@Q\x80\x84\x81R` \x01\x83\x81R` \x01\x82\x81R` \x01\x93PPPP`@Q\x80\x91\x03\x90\xa3PPPV[`\x00`\x12\x90P\x90V[a\x0fia\x14\xddV[a\x0frW`\x00\x80\xfd[`\x00\x81\x11\x80\x15a\x0f\xafWP`\x00s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x14\x15[a\x10\x04W`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01\x80\x80` \x01\x82\x81\x03\x82R`#\x81R` \x01\x80a\x1ec`#\x919`@\x01\x91PP`@Q\x80\x91\x03\x90\xfd[`\x00a\x10\x0f\x83a\x128V[\x90P`\x00\x83\x90P\x80s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16a\b\xfc\x84\x90\x81\x15\x02\x90`@Q`\x00`@Q\x80\x83\x03\x81\x85\x88\x88\xf1\x93PPPP\x15\x80\x15a\x10\\W=`\x00\x80>=`\x00\xfd[Pa\x10r\x83`\x06Ta\x1bW\x90\x91\x90c\xff\xff\xff\xff\x16V[`\x06\x81\x90UP\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16`\x02`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\u007fN,\xa0Q^\u046e\xf19_f\xb50;\xb5\xd6\xf1\xbf\x9da\xa3S\xfaS\xf7?\x8a\u0257?\xa9\xf6\x85\x85a\x10\xf4\x89a\x128V[`@Q\x80\x84\x81R` \x01\x83\x81R` \x01\x82\x81R` \x01\x93PPPP`@Q\x80\x91\x03\x90\xa3PPPPV[`\a`\x00\x90T\x90a\x01\x00\n\x90\x04`\xff\x16\x15a\x11\x83W`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01\x80\x80` \x01\x82\x81\x03\x82R`#\x81R` \x01\x80a\x1e@`#\x919`@\x01\x91PP`@Q\x80\x91\x03\x90\xfd[`\x01`\a`\x00a\x01\x00\n\x81T\x81`\xff\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP\x80`\x02`\x00a\x01\x00\n\x81T\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x19\x16\x90\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x02\x17\x90UPa\x11\xe8\x82a\x1bvV[PPV[`\x03`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81V[`\x04`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81V[`\x00\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x161\x90P\x91\x90PV[a\x12aa\x14\xddV[a\x12jW`\x00\x80\xfd[`\x00s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16`\x00\x80\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\u007f\x8b\xe0\a\x9cS\x16Y\x14\x13D\xcd\x1f\u0424\xf2\x84\x19I\u007f\x97\"\xa3\u06af\xe3\xb4\x18okdW\xe0`@Q`@Q\x80\x91\x03\x90\xa3`\x00\x80`\x00a\x01\x00\n\x81T\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x19\x16\x90\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x02\x17\x90UPV[`\x06T\x81V[`\x00\x80`\x00\x80`A\x85Q\x14a\x13JW`\x00\x93PPPPa\x14\xaeV[` \x85\x01Q\x92P`@\x85\x01Q\x91P`\xff`A\x86\x01Q\x16\x90P`\x1b\x81`\xff\x16\x10\x15a\x13uW`\x1b\x81\x01\x90P[`\x1b\x81`\xff\x16\x14\x15\x80\x15a\x13\x8dWP`\x1c\x81`\xff\x16\x14\x15[\x15a\x13\x9eW`\x00\x93PPPPa\x14\xaeV[`\x01\x86\x82\x85\x85`@Q`\x00\x81R` \x01`@R`@Q\x80\x85\x81R` \x01\x84`\xff\x16`\xff\x16\x81R` \x01\x83\x81R` \x01\x82\x81R` \x01\x94PPPPP` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xfa\x15\x80\x15a\x13\xfbW=`\x00\x80>=`\x00\xfd[PPP` `@Q\x03Q\x93P`\x00s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x84s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x14\x15a\x14\xaaW`@Q\u007f\b\xc3y\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R`\x04\x01\x80\x80` \x01\x82\x81\x03\x82R`\x12\x81R` \x01\x80\u007fError in ecrecover\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81RP` \x01\x91PP`@Q\x80\x91\x03\x90\xfd[PPP[\x92\x91PPV[`\x00\x80`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x90P\x90V[`\x00\x80`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x163s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x14\x90P\x90V[`@Q\x80`@\x01`@R\x80`\x03\x81R` \x01\u007f\x018\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81RP\x81V[```@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\u007fMATIC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81RP\x90P\x90V[`\x00\x814\x14a\x15\xbcW`\x00\x90Pa\x15\xcaV[a\x15\xc73\x84\x84a\x17zV[\x90P[\x92\x91PPV[`@Q\x80`\x80\x01`@R\x80`[\x81R` \x01a\x1e\xd8`[\x919`@Q` \x01\x80\x82\x80Q\x90` \x01\x90\x80\x83\x83[` \x83\x10a\x16\x1fW\x80Q\x82R` \x82\x01\x91P` \x81\x01\x90P` \x83\x03\x92Pa\x15\xfcV[`\x01\x83` \x03a\x01\x00\n\x03\x80\x19\x82Q\x16\x81\x84Q\x16\x80\x82\x17\x85RPPPPPP\x90P\x01\x91PP`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x81V[`\x05` R\x80`\x00R`@`\x00 `\x00\x91PT\x90a\x01\x00\n\x90\x04`\xff\x16\x81V[`\x00a\x16\x93a\x16\x8e\x86\x86\x86\x86a\x1cnV[a\x1dDV[\x90P\x94\x93PPPPV[b\x018\x81\x81V[`\x01T\x81V[`@Q\x80`\x80\x01`@R\x80`R\x81R` \x01a\x1e\x86`R\x919`@Q` \x01\x80\x82\x80Q\x90` \x01\x90\x80\x83\x83[` \x83\x10a\x16\xf9W\x80Q\x82R` \x82\x01\x91P` \x81\x01\x90P` \x83\x03\x92Pa\x16\xd6V[`\x01\x83` \x03a\x01\x00\n\x03\x80\x19\x82Q\x16\x81\x84Q\x16\x80\x82\x17\x85RPPPPPP\x90P\x01\x91PP`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x81V[a\x17?a\x14\xddV[a\x17HW`\x00\x80\xfd[a\x17Q\x81a\x1bvV[PV[`\x02`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81V[`\x00\x800s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16cp\xa0\x821\x86`@Q\x82c\xff\xff\xff\xff\x16`\xe0\x1b\x81R`\x04\x01\x80\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81R` \x01\x91PP` `@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x17\xfaW`\x00\x80\xfd[PZ\xfa\x15\x80\x15a\x18\x0eW=`\x00\x80>=`\x00\xfd[PPPP`@Q=` \x81\x10\x15a\x18$W`\x00\x80\xfd[\x81\x01\x90\x80\x80Q\x90` \x01\x90\x92\x91\x90PPP\x90P`\x000s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16cp\xa0\x821\x86`@Q\x82c\xff\xff\xff\xff\x16`\xe0\x1b\x81R`\x04\x01\x80\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81R` \x01\x91PP` `@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x18\xb6W`\x00\x80\xfd[PZ\xfa\x15\x80\x15a\x18\xcaW=`\x00\x80>=`\x00\xfd[PPPP`@Q=` \x81\x10\x15a\x18\xe0W`\x00\x80\xfd[\x81\x01\x90\x80\x80Q\x90` \x01\x90\x92\x91\x90PPP\x90Pa\x18\xfe\x86\x86\x86a\x1d\x8eV[\x84s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x86s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16`\x02`\x00\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\u007f\xe6I~>\xe5H\xa37!6\xaf/\xcb\x06\x96\xdb1\xfcl\xf2\x02`pvE\x06\x8b\xd3\xfe\x97\xf3\u0107\x86\x860s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16cp\xa0\x821\x8e`@Q\x82c\xff\xff\xff\xff\x16`\xe0\x1b\x81R`\x04\x01\x80\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81R` \x01\x91PP` `@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x1a\x06W`\x00\x80\xfd[PZ\xfa\x15\x80\x15a\x1a\x1aW=`\x00\x80>=`\x00\xfd[PPPP`@Q=` \x81\x10\x15a\x1a0W`\x00\x80\xfd[\x81\x01\x90\x80\x80Q\x90` \x01\x90\x92\x91\x90PPP0s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16cp\xa0\x821\x8e`@Q\x82c\xff\xff\xff\xff\x16`\xe0\x1b\x81R`\x04\x01\x80\x82s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81R` \x01\x91PP` `@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x1a\xbeW`\x00\x80\xfd[PZ\xfa\x15\x80\x15a\x1a\xd2W=`\x00\x80>=`\x00\xfd[PPPP`@Q=` \x81\x10\x15a\x1a\xe8W`\x00\x80\xfd[\x81\x01\x90\x80\x80Q\x90` \x01\x90\x92\x91\x90PPP`@Q\x80\x86\x81R` \x01\x85\x81R` \x01\x84\x81R` \x01\x83\x81R` \x01\x82\x81R` \x01\x95PPPPPP`@Q\x80\x91\x03\x90\xa4`\x01\x92PPP\x93\x92PPPV[`\x00\x82\x82\x11\x15a\x1bFW`\x00\x80\xfd[`\x00\x82\x84\x03\x90P\x80\x91PP\x92\x91PPV[`\x00\x80\x82\x84\x01\x90P\x83\x81\x10\x15a\x1blW`\x00\x80\xfd[\x80\x91PP\x92\x91PPV[`\x00s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x14\x15a\x1b\xb0W`\x00\x80\xfd[\x80s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16`\x00\x80\x90T\x90a\x01\x00\n\x90\x04s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\u007f\x8b\xe0\a\x9cS\x16Y\x14\x13D\xcd\x1f\u0424\xf2\x84\x19I\u007f\x97\"\xa3\u06af\xe3\xb4\x18okdW\xe0`@Q`@Q\x80\x91\x03\x90\xa3\x80`\x00\x80a\x01\x00\n\x81T\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x19\x16\x90\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x02\x17\x90UPPV[`\x00\x80`@Q\x80`\x80\x01`@R\x80`[\x81R` \x01a\x1e\xd8`[\x919`@Q` \x01\x80\x82\x80Q\x90` \x01\x90\x80\x83\x83[` \x83\x10a\x1c\xc0W\x80Q\x82R` \x82\x01\x91P` \x81\x01\x90P` \x83\x03\x92Pa\x1c\x9dV[`\x01\x83` \x03a\x01\x00\n\x03\x80\x19\x82Q\x16\x81\x84Q\x16\x80\x82\x17\x85RPPPPPP\x90P\x01\x91PP`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`@Q\x81\x81Rs\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x16` \x82\x01R\x85`@\x82\x01R\x84``\x82\x01R\x83`\x80\x82\x01R`\xa0\x81 \x92PP\x81\x91PP\x94\x93PPPPV[`\x00\x80`\x01T\x90P`@Q\u007f\x19\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81R\x81`\x02\x82\x01R\x83`\"\x82\x01R`B\x81 \x92PP\x81\x91PP\x91\x90PV[\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16a\b\xfc\x82\x90\x81\x15\x02\x90`@Q`\x00`@Q\x80\x83\x03\x81\x85\x88\x88\xf1\x93PPPP\x15\x80\x15a\x1d\xd4W=`\x00\x80>=`\x00\xfd[P\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x83s\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\u007f\xdd\xf2R\xad\x1b\xe2\u021bi\u00b0h\xfc7\x8d\xaa\x95+\xa7\xf1c\u0121\x16(\xf5ZM\xf5#\xb3\xef\x83`@Q\x80\x82\x81R` \x01\x91PP`@Q\x80\x91\x03\x90\xa3PPPV\xfeThe contract is already initializedInsufficient amount or invalid userEIP712Domain(string name,string version,uint256 chainId,address verifyingContract)TokenTransferOrder(address spender,uint256 tokenIdOrAmount,bytes32 data,uint256 expiration)\xa2ebzzr1X \x8f\x81p\x013s\x8dvj\xe3\u058a\xf5\x91\xadX\x8b\x01%\xbd\x91D\x91\x92\x17\x9fF\b\x93\xf7\x9fkdsolcC\x00\x05\v\x002\xe0\x94\x92\x8e\u05a3\xe9D7\xbb\xd3\x16\u032dxG\x9f\x1d\x16:j\x8c\x8965\u026d\xc5\u07a0\x00\x00\x80\xe0\x94\xbe\x18\x8dfA\u8d80t:H\x15\u07e0\xf6 \x808\x96\x0f\x8965\u026d\xc5\u07a0\x00\x00\x80\xe0\x94\xc2h\x80\xa0\xaf.\xa0\xc7\xe8\x13\x0en\xc4z\xf7VFTR\xe8\x8965\u026d\xc5\u07a0\x00\x00\x80\xe0\x94\xc2u\u070b\xe3\x9fP\xd1/f\xb6\xa66)\u00dd\xa5\xba\u5f4965\u026d\xc5\u07a0\x00\x00\x80\xe0\x94\xf9\x03\xba\x9e\x00a\x93\xc1R{\xfb\xe6_\xe2\x127\x04\xea?\x99\x8965\u026d\xc5\u07a0\x00\x00\x80" diff --git a/mobile/geth.go b/mobile/geth.go index 704d432e0440db09aa1acad40e2edf36ab95059c..3923c02a375615c3089ccfd75be4368923663434 100644 --- a/mobile/geth.go +++ b/mobile/geth.go @@ -179,6 +179,13 @@ func NewNode(datadir string, config *NodeConfig) (stack *Node, _ error) { config.EthereumNetworkID = 5 } } + // If we have the Mumbai testnet, hard code the chain configs too + if config.EthereumGenesis == MumbaiGenesis() { + genesis.Config = params.MumbaiChainConfig + if config.EthereumNetworkID == 1 { + config.EthereumNetworkID = 80001 + } + } } // Register the Ethereum protocol if requested if config.EthereumEnabled { diff --git a/mobile/params.go b/mobile/params.go index 0fc197c9e5089cb252e38c784234a1b0c8ad2812..44b348f45ba914bc4c266c43fe3cb237426d3017 100644 --- a/mobile/params.go +++ b/mobile/params.go @@ -59,6 +59,15 @@ func GoerliGenesis() string { return string(enc) } +// MumbaiGenesis returns the JSON spec to use for the Mumbai test network +func MumbaiGenesis() string { + enc, err := json.Marshal(core.DefaultMumbaiGenesisBlock()) + if err != nil { + panic(err) + } + return string(enc) +} + // FoundationBootnodes returns the enode URLs of the P2P bootstrap nodes operated // by the foundation running the V5 discovery protocol. func FoundationBootnodes() *Enodes { diff --git a/params/bootnodes.go b/params/bootnodes.go index bc291449e285845a02714063ce42fbfe67f86731..20136ca422cafd7eefdff1b12d585b61a8baf2cd 100644 --- a/params/bootnodes.go +++ b/params/bootnodes.go @@ -67,6 +67,12 @@ var GoerliBootnodes = []string{ "enode://a59e33ccd2b3e52d578f1fbd70c6f9babda2650f0760d6ff3b37742fdcdfdb3defba5d56d315b40c46b70198c7621e63ffa3f987389c7118634b0fefbbdfa7fd@51.15.119.157:40303", } +// MumbaiBootnodes are the enode URLs of the P2P bootstrap nodes running on the +// Mumbai test network. +var MumbaiBootnodes = []string{ + "enode://320553cda00dfc003f499a3ce9598029f364fbb3ed1222fdc20a94d97dcc4d8ba0cd0bfa996579dcc6d17a534741fb0a5da303a90579431259150de66b597251@54.147.31.250:30303", +} + var V5Bootnodes = []string{ // Teku team's bootnode "enr:-KG4QOtcP9X1FbIMOe17QNMKqDxCpm14jcX5tiOE4_TyMrFqbmhPZHK_ZPG2Gxb1GE2xdtodOfx9-cgvNtxnRyHEmC0ghGV0aDKQ9aX9QgAAAAD__________4JpZIJ2NIJpcIQDE8KdiXNlY3AyNTZrMaEDhpehBDbZjM_L9ek699Y7vhUJ-eAdMyQW_Fil522Y0fODdGNwgiMog3VkcIIjKA", @@ -101,6 +107,8 @@ func KnownDNSNetwork(genesis common.Hash, protocol string) string { net = "rinkeby" case GoerliGenesisHash: net = "goerli" + case MumbaiGenesisHash: + net = "mumbai" default: return "" } diff --git a/params/config.go b/params/config.go index 1cacea5d5517053a5d5330123a04b02da4567bfd..2a442e9bfb0437f97d632abf5302d6e5d0bc36e1 100644 --- a/params/config.go +++ b/params/config.go @@ -31,6 +31,7 @@ var ( RopstenGenesisHash = common.HexToHash("0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d") RinkebyGenesisHash = common.HexToHash("0x6341fd3daf94b748c72ced5a5b26028f2474f5f00d824504e4fa37a75767e177") GoerliGenesisHash = common.HexToHash("0xbf7e331f7f7c1dd2e05159666b3bf8bc7a8a3a9eb1d518969eab529dd9b88c1a") + MumbaiGenesisHash = common.HexToHash("0x7b66506a9ebdbf30d32b43c5f15a3b1216269a1ec3a75aa3182b86176a2b1ca7") ) // TrustedCheckpoints associates each known checkpoint with the genesis hash of @@ -40,6 +41,7 @@ var TrustedCheckpoints = map[common.Hash]*TrustedCheckpoint{ RopstenGenesisHash: RopstenTrustedCheckpoint, RinkebyGenesisHash: RinkebyTrustedCheckpoint, GoerliGenesisHash: GoerliTrustedCheckpoint, + MumbaiGenesisHash: MumbaiTrustedCheckpoint, } // CheckpointOracles associates each known checkpoint oracles with the genesis hash of @@ -49,6 +51,7 @@ var CheckpointOracles = map[common.Hash]*CheckpointOracleConfig{ RopstenGenesisHash: RopstenCheckpointOracle, RinkebyGenesisHash: RinkebyCheckpointOracle, GoerliGenesisHash: GoerliCheckpointOracle, + MumbaiGenesisHash: MumbaiCheckpointOracle, } var ( @@ -220,6 +223,53 @@ var ( Threshold: 2, } + // MumbaiChainConfig contains the chain parameters to run a node on the Mumbai test network. + MumbaiChainConfig = &ChainConfig{ + ChainID: big.NewInt(80001), + HomesteadBlock: big.NewInt(0), + DAOForkBlock: nil, + DAOForkSupport: true, + EIP150Hash: common.HexToHash("0x0000000000000000000000000000000000000000000000000000000000000000"), + EIP150Block: big.NewInt(0), + EIP155Block: big.NewInt(0), + EIP158Block: big.NewInt(0), + ByzantiumBlock: big.NewInt(0), + ConstantinopleBlock: big.NewInt(0), + PetersburgBlock: big.NewInt(0), + IstanbulBlock: big.NewInt(2722000), + MuirGlacierBlock: big.NewInt(2722000), + BerlinBlock: big.NewInt(13996000), + Bor: &BorConfig{ + Period: 2, + ProducerDelay: 6, + Sprint: 64, + BackupMultiplier: 2, + ValidatorContract: "0x0000000000000000000000000000000000001000", + StateReceiverContract: "0x0000000000000000000000000000000000001001", + }, + } + + // MumbaiTrustedCheckpoint contains the light client trusted checkpoint for the Mumbai test network. + MumbaiTrustedCheckpoint = &TrustedCheckpoint{ + SectionIndex: 160, + SectionHead: common.HexToHash("0xb5a666c790dc35a5613d04ebba8ba47a850b45a15d9b95ad7745c35ae034b5a5"), + CHTRoot: common.HexToHash("0x6b4e00df52bdc38fa6c26c8ef595c2ad6184963ea36ab08ee744af460aa735e1"), + BloomRoot: common.HexToHash("0x8fa88f5e50190cb25243aeee262a1a9e4434a06f8d455885dcc1b5fc48c33836"), + } + + // MumbaiCheckpointOracle contains a set of configs for the Mumbai test network oracle. + MumbaiCheckpointOracle = &CheckpointOracleConfig{ + Address: common.HexToAddress("0x18CA0E045F0D772a851BC7e48357Bcaab0a0795D"), + Signers: []common.Address{ + common.HexToAddress("0x4769bcaD07e3b938B7f43EB7D278Bc7Cb9efFb38"), // Peter + common.HexToAddress("0x78d1aD571A1A09D60D9BBf25894b44e4C8859595"), // Martin + common.HexToAddress("0x286834935f4A8Cfb4FF4C77D5770C2775aE2b0E7"), // Zsolt + common.HexToAddress("0xb86e2B0Ab5A4B1373e40c51A7C712c70Ba2f9f8E"), // Gary + common.HexToAddress("0x0DF8fa387C602AE62559cC4aFa4972A7045d6707"), // Guillaume + }, + Threshold: 2, + } + // AllEthashProtocolChanges contains every protocol change (EIPs) introduced // and accepted by the Ethereum core developers into the Ethash consensus. //